public function fetchTemplate($templatename, $activity, $skipgroup = false, $fetchphrase = false) { $postinfo =& $this->content['cms_post'][$activity['contentid']]; $nodeinfo =& $this->content['cms_node'][$postinfo['nodeid']]; $articleinfo =& $this->content['cms_article'][$nodeinfo['contentid']]; $activity['postdate'] = vbdate(vB::$vbulletin->options['dateformat'], $activity['dateline'], true); $activity['posttime'] = vbdate(vB::$vbulletin->options['timeformat'], $activity['dateline']); $preview = strip_quotes($postinfo['pagetext']); $articleinfo['preview'] = htmlspecialchars_uni(fetch_censored_text(fetch_trimmed_title(strip_bbcode($preview, false, true, true, true), vb::$vbulletin->options['as_snippet']))); $articleinfo['fullurl'] = vB_Route::create('vBCms_Route_Content', $nodeinfo['nodeid'] . ($nodeinfo['url'] == '' ? '' : '-' . $nodeinfo['url']))->getCurrentURL(); $nodeinfo['parenturl'] = $this->fetchParentUrl($nodeinfo['parentnode']); $nodeinfo['parenttitle'] = $this->fetchParentTitle($nodeinfo['parentnode']); $userinfo = $this->fetchUser($activity['userid'], $postinfo['username']); if ($fetchphrase) { if ($userinfo['userid']) { $phrase = construct_phrase($this->vbphrase['x_commented_on_an_article_y_in_z'], fetch_seo_url('member', $userinfo), $userinfo['username'], $articleinfo['fullurl'], $nodeinfo['title'], $nodeinfo['parenturl'], $nodeinfo['parenttitle']); } else { $phrase = construct_phrase($this->vbphrase['guest_x_commented_on_an_article_y_in_z'], $userinfo['username'], $articleinfo['fullurl'], $nodeinfo['title'], $nodeinfo['parenturl'], $nodeinfo['parenttitle']); } return array('phrase' => $phrase, 'userinfo' => $userinfo, 'activity' => $activity); } else { $templater = vB_Template::create($templatename); $templater->register('userinfo', $userinfo); $templater->register('postinfo', $postinfo); $templater->register('activity', $activity); $templater->register('nodeinfo', $nodeinfo); $templater->register('articleinfo', $articleinfo); return $templater->render(); } }
function checkLoginData() { $this->load->model("user_model"); $postUsername = strip_quotes($this->input->post('username')); $postPassword = $this->security->xss_clean($this->input->post('password')); $dataLogin = $this->user_model->getDataLogin($postUsername); if ($dataLogin->num_rows() > 0) { $dataLogin = $dataLogin->row(); if (md5($dataLogin->PASSWORD) == md5($postPassword)) { $ua = $_SERVER['HTTP_USER_AGENT']; if (strpos($ua, 'MSIE') != false && strpos($ua, 'Opera') === false) { if (strpos($ua, 'Windows NT 5.2') != false) { if (strpos($ua, '.NET CLR') === false) { return; } } if (substr($ua, strpos($ua, 'MSIE') + 5, 1) < 7) { redirect('change-your-browser', 'location'); } } $sessionData = array('siku_user_username' => $postUsername, 'siku_user_id' => $dataLogin->ID); $this->session->set_userdata($sessionData); return TRUE; } else { return FALSE; } } else { return FALSE; } }
public function fetchTemplate($templatename, $activity, $skipgroup = false, $fetchphrase = false) { $commentinfo =& $this->content['album_picturecomment'][$activity['contentid']]; $albuminfo =& $this->content['album'][$commentinfo['albumid']]; $activity['postdate'] = vbdate(vB::$vbulletin->options['dateformat'], $activity['dateline'], true); $activity['posttime'] = vbdate(vB::$vbulletin->options['timeformat'], $activity['dateline']); $preview = strip_quotes($commentinfo['pagetext']); $commentinfo['preview'] = htmlspecialchars_uni(fetch_censored_text(fetch_trimmed_title(strip_bbcode($preview, false, true, true, true), vb::$vbulletin->options['as_snippet']))); $userinfo = $this->fetchUser($activity['userid'], $commentinfo['postusername']); $userinfo2 = $this->fetchUser($albuminfo['userid']); if ($fetchphrase) { if ($userinfo['userid']) { $phrase = construct_phrase($this->vbphrase['x_commented_on_a_photo_in_album_y'], fetch_seo_url('member', $userinfo), $userinfo['username'], fetch_seo_url('member', $userinfo2), $userinfo2['username'], vB::$vbulletin->session->vars['sessionurl'], $albuminfo['albumid'], $albuminfo['title']); } else { $phrase = construct_phrase($this->vbphrase['guest_x_commented_on_a_photo_in_album_y'], $userinfo['username'], fetch_seo_url('member', $userinfo2), $userinfo2['username'], vB::$vbulletin->session->vars['sessionurl'], $albuminfo['albumid'], $albuminfo['title']); } return array('phrase' => $phrase, 'userinfo' => $userinfo, 'activity' => $activity); } else { $templater = vB_Template::create($templatename); $templater->register('userinfo', $userinfo); $templater->register('userinfo2', $userinfo2); $templater->register('activity', $activity); $templater->register('commentinfo', $commentinfo); $templater->register('albuminfo', $albuminfo); return $templater->render(); } }
public function fetchTemplate($templatename, $activity, $skipgroup = false, $fetchphrase = false) { $messageinfo =& $this->content['visitormessage'][$activity['contentid']]; $activity['postdate'] = vbdate(vB::$vbulletin->options['dateformat'], $activity['dateline'], true); $activity['posttime'] = vbdate(vB::$vbulletin->options['timeformat'], $activity['dateline']); $userinfo2 =& $this->content['user'][$messageinfo['userid']]; $messageinfo['preview'] = strip_quotes($messageinfo['pagetext']); $messageinfo['preview'] = htmlspecialchars_uni(fetch_censored_text(fetch_trimmed_title(strip_bbcode($messageinfo['preview'], false, true, true, true), vb::$vbulletin->options['as_snippet']))); $userinfo = $this->fetchUser($activity['userid'], $messageinfo['postusername']); if ($fetchphrase) { if ($userinfo['userid']) { $phrase = construct_phrase($this->vbphrase['x_created_a_visitormessage_y_in_z'], fetch_seo_url('member', $userinfo), $userinfo['username'], fetch_seo_url('member', $userinfo2, $linkinfo), $messageinfo['vmid'], fetch_seo_url('member', $userinfo2), $userinfo2['username']); } else { $phrase = construct_phrase($this->vbphrase['guest_x_created_a_visitormessage_y_in_z'], $userinfo['username'], fetch_seo_url('member', $userinfo2, $linkinfo), $messageinfo['vmid'], fetch_seo_url('member', $userinfo2), $userinfo2['username']); } return array('phrase' => $phrase, 'userinfo' => $userinfo, 'activity' => $activity); } else { $templater = vB_Template::create($templatename); $templater->register('userinfo', $userinfo); $templater->register('userinfo2', $userinfo2); $templater->register('linkinfo', array('vmid' => $messageinfo['vmid'])); $templater->register('linkinfo2', array('tab' => 'visitor_messaging')); $templater->register('activity', $activity); $templater->register('messageinfo', $messageinfo); return $templater->render(); } }
public function test_strip_quotes() { $strs = array('"me oh my!"' => 'me oh my!', "it's a winner!" => 'its a winner!'); foreach ($strs as $str => $expect) { $this->assertEquals($expect, strip_quotes($str)); } }
function mobiquo_chop($string) { global $stylevar, $vbulletin; $string = preg_replace('/<br \\/\\>/', '', $string); $string = preg_replace('/(^\\s+)|(\\s+$)/', '', $string); $string = preg_replace('/\\n/', '', $string); $string = preg_replace('/\\r/', '', $string); $string = strip_quotes($string); $string = htmlspecialchars_uni(fetch_censored_text(fetch_trimmed_title(strip_bbcode($string, false, true), 200))); return $string; }
/** * Initial startup function * to register session, create database and imap connections * * @todo Remove global vars $DB, $USER */ private function startup() { $config_all = $this->config->all(); // initialize syslog if ($this->config->get('log_driver') == 'syslog') { $syslog_id = $this->config->get('syslog_id', 'roundcube'); $syslog_facility = $this->config->get('syslog_facility', LOG_USER); openlog($syslog_id, LOG_ODELAY, $syslog_facility); } // set task and action properties $this->set_task(strip_quotes(get_input_value('_task', RCUBE_INPUT_GPC))); $this->action = asciiwords(get_input_value('_action', RCUBE_INPUT_GPC)); // connect to database $GLOBALS['DB'] = $this->get_dbh(); // use database for storing session data include_once 'include/session.inc'; // set session domain if (!empty($config_all['session_domain'])) { ini_set('session.cookie_domain', $config_all['session_domain']); } // set session garbage collecting time according to session_lifetime if (!empty($config_all['session_lifetime'])) { ini_set('session.gc_maxlifetime', $config_all['session_lifetime'] * 120); } // start PHP session (if not in CLI mode) if ($_SERVER['REMOTE_ADDR']) { session_start(); } // set initial session vars if (!isset($_SESSION['auth_time'])) { $_SESSION['auth_time'] = time(); $_SESSION['temp'] = true; } // create user object $this->set_user(new rcube_user($_SESSION['user_id'])); // reset some session parameters when changing task if ($_SESSION['task'] != $this->task) { unset($_SESSION['page']); } // set current task to session $_SESSION['task'] = $this->task; // create IMAP object if ($this->task == 'mail') { $this->imap_init(); } }
public function fetchTemplate($templatename, $activity, $skipgroup = false, $fetchphrase = false) { $userinfo =& $this->content['user'][$activity['userid']]; $bloginfo =& $this->content['blog'][$activity['contentid']]; $activity['postdate'] = vbdate(vB::$vbulletin->options['dateformat'], $activity['dateline'], true); $activity['posttime'] = vbdate(vB::$vbulletin->options['timeformat'], $activity['dateline']); $preview = strip_quotes($bloginfo['pagetext']); $bloginfo['preview'] = htmlspecialchars_uni(fetch_censored_text(fetch_trimmed_title(strip_bbcode($preview, false, true, true, true), vb::$vbulletin->options['as_snippet']))); if ($fetchphrase) { return array('phrase' => construct_phrase($this->vbphrase['x_created_a_blog_entry_y_in_z'], fetch_seo_url('member', $userinfo), $userinfo['username'], fetch_seo_url('entry', $bloginfo), $bloginfo['title'], fetch_seo_url('blog', $bloginfo), $bloginfo['blog_title']), 'userinfo' => $userinfo, 'activity' => $activity); } else { $templater = vB_Template::create($templatename); $templater->register('userinfo', $userinfo); $templater->register('activity', $activity); $templater->register('bloginfo', $bloginfo); return $templater->render(); } }
function checkLoginData() { $dataLogin = $this->user_model->getDataLogin(strip_quotes($this->input->post('username'))); if ($dataLogin->num_rows() > 0) { $dataLogin = $dataLogin->row(); if ($dataLogin->PASSWORD == md5($this->security->xss_clean($this->input->post('password')))) { $this->browser_check->checkUserAgent(); $viewKontrolData = $this->system_model->getViewKontrolData($dataLogin->PRODI); $sessionData = array('siamunp_user' => $this->security->xss_clean($this->input->post('username')), 'siamunp_user_status' => $dataLogin->STATUS, 'siamunp_user_prodi' => $dataLogin->PRODI, 'siamunp_user_nama' => $dataLogin->NAMA, 'siamunp_user_nim' => $dataLogin->NIM, 'siamunp_user_namaprodi' => $dataLogin->NAMA_PRODI, 'system_semester' => $viewKontrolData->KODE_SEMESTER, 'system_tahun_ajaran' => $viewKontrolData->KODE_TAHUN, 'system_status' => $viewKontrolData->KODE_STATUS); $this->session->set_userdata($sessionData); return TRUE; } else { return FALSE; } } else { return FALSE; } }
/** * Display employee adjustments * * @param int $employeenumber * @return mixed */ public function adjustment_listing($employeenumber) { $params = array('header' => $this->_adjheaders, 'class' => array('table table-striped table-bordered dt-table')); $empty[] = array('No results found.', '', '', '', '', '', '', ''); $this->_ci->load->library('MY_table', $params, 'adjustments'); $this->_ci->employeedisputes->EmployeeNumber = $employeenumber; $adjustments = $this->_ci->employeedisputes->get(); if (isset($adjustments) && !empty($adjustments)) { for ($i = 0; $i < count($adjustments); $i++) { $tabledata[] = array($this->_empdispute_modal('adjustments/view/', $adjustments[$i]->ID), sprintf('%01.2f', $adjustments[$i]->AdjustmentAmt), $this->_adjtypes[$adjustments[$i]->Type], convert_date($adjustments[$i]->DateOccurred, 'M d, Y'), convert_date($adjustments[$i]->PeriodStart, 'M d, Y'), convert_date($adjustments[$i]->PeriodEnd, 'M d, Y'), strip_quotes(substr($adjustments[$i]->Remarks, 0, 12)), $this->_adjstatus[$adjustments[$i]->Status]); } if (isset($tabledata) && !empty($tabledata)) { return $this->_ci->adjustments->generate($tabledata); } else { return $this->_ci->adjustments->generate($empty); } } else { return $this->_ci->adjustments->generate($empty); } }
function checkLoginData() { $this->load->model("user_model"); $postUsername = strip_quotes($this->input->post('username')); $postPassword = $this->security->xss_clean($this->input->post('password')); $dataLogin = $this->user_model->getDataLogin($postUsername); if ($dataLogin->num_rows() > 0) { $dataLogin = $dataLogin->row(); if (md5($dataLogin->PASSWORD) == md5($postPassword)) { $viewKontrolData = $this->user_model->getViewKontrolData($dataLogin->PRODI); $sessionData = array('siab_user_username' => $postUsername, 'siab_user_kode_prodi' => $dataLogin->PRODI, 'siab_user_nama_prodi' => $dataLogin->NAMA_PRODI, 'siab_user_level' => $dataLogin->LEVEL, 'siab_system_semester' => $viewKontrolData->KODE_SEMESTER, 'siab_system_tahun_ajaran' => $viewKontrolData->KODE_TAHUN, 'siab_system_status' => $viewKontrolData->KODE_STATUS); $this->session->set_userdata($sessionData); return TRUE; } else { return FALSE; } } else { return FALSE; } }
public function fetchTemplate($templatename, $activity, $skipgroup = false, $fetchphrase = false) { global $show; $postinfo =& $this->content['post'][$activity['contentid']]; $threadinfo =& $this->content['thread'][$postinfo['threadid']]; $foruminfo =& vB::$vbulletin->forumcache[$threadinfo['forumid']]; $threadinfo['prefix_plain_html'] = htmlspecialchars_uni($this->vbphrase["prefix_{$threadinfo['prefixid']}_title_plain"]); $threadinfo['prefix_rich'] = $this->vbphrase["prefix_{$threadinfo['prefixid']}_title_rich"]; $activity['postdate'] = vbdate(vB::$vbulletin->options['dateformat'], $activity['dateline'], true); $activity['posttime'] = vbdate(vB::$vbulletin->options['timeformat'], $activity['dateline']); $preview = strip_quotes($postinfo['pagetext']); $postinfo['preview'] = htmlspecialchars_uni(fetch_censored_text(fetch_trimmed_title(strip_bbcode($preview, false, true, true, true), vb::$vbulletin->options['as_snippet']))); $forumperms = fetch_permissions($threadinfo['forumid']); $show['threadcontent'] = $forumperms & vB::$vbulletin->bf_ugp_forumpermissions['canviewthreads'] ? true : false; $userinfo = $this->fetchUser($activity['userid'], $postinfo['username']); if ($fetchphrase) { if ($threadinfo['pollid']) { if ($userinfo['userid']) { $phrase = construct_phrase($this->vbphrase['x_replied_to_a_poll_y_in_z'], fetch_seo_url('member', $userinfo), $userinfo['username'], fetch_seo_url('thread', $threadinfo), $threadinfo['prefix_rich'], $threadinfo['title'], fetch_seo_url('forum', $foruminfo), $foruminfo['title']); } else { $phrase = construct_phrase($this->vbphrase['guest_x_replied_to_a_poll_y_in_z'], $userinfo['username'], fetch_seo_url('thread', $threadinfo), $threadinfo['prefix_rich'], $threadinfo['title'], fetch_seo_url('forum', $foruminfo), $foruminfo['title']); } } else { if ($userinfo['userid']) { $phrase = construct_phrase($this->vbphrase['x_replied_to_a_thread_y_in_z'], fetch_seo_url('member', $userinfo), $userinfo['username'], fetch_seo_url('thread', $threadinfo), $threadinfo['prefix_rich'], $threadinfo['title'], fetch_seo_url('forum', $foruminfo), $foruminfo['title']); } else { $phrase = construct_phrase($this->vbphrase['guest_x_replied_to_a_thread_y_in_z'], $userinfo['username'], fetch_seo_url('thread', $threadinfo), $threadinfo['prefix_rich'], $threadinfo['title'], fetch_seo_url('forum', $foruminfo), $foruminfo['title']); } } return array('phrase' => $phrase, 'userinfo' => $userinfo, 'activity' => $activity); } else { $templater = vB_Template::create($templatename); $templater->register('userinfo', $userinfo); $templater->register('activity', $activity); $templater->register('threadinfo', $threadinfo); $templater->register('postinfo', $postinfo); $templater->register('pageinfo', array('p' => $postinfo['postid'])); $templater->register('foruminfo', $foruminfo); return $templater->render(); } }
function section_list($attrib) { $no_override = array_flip(rcube::get_instance()->config->get('sauserprefs_dont_override')); // add id to message list table if not specified if (!strlen($attrib['id'])) { $attrib['id'] = 'rcmsectionslist'; } $sections = array(); $blocks = $attrib['sections'] ? preg_split('/[\\s,;]+/', strip_quotes($attrib['sections'])) : array_keys($this->sections); foreach ($blocks as $block) { if (!isset($no_override['{' . $block . '}'])) { $sections[$block] = $this->sections[$block]; } } // create XHTML table $out = rcube::get_instance()->table_output($attrib, $sections, array('section'), 'id'); // set client env $this->api->output->add_gui_object('sectionslist', $attrib['id']); $this->api->output->include_script('list.js'); return $out; }
private function create_link($key, $value, $title) { $proto = ""; // some headers have multiple targets $targets = explode(',', $value); // only use 1 of the targets $target = strip_quotes($targets[0]); // first strip angle brackets $link = trim($target, "<>"); if (preg_match('/^(mailto|http|https)(:\\/\\/|:)(.*)$/', $link, $matches)) { $proto = $matches[1]; $target = $matches[3]; } // use RC for emailing instead of relying on the mailto header if ($proto == "mailto") { $onclick = "return rcmail.command('compose','{$target}',this)"; } else { $onclick = ""; } $a = html::a(array('href' => $link, 'target' => '_blank', 'onclick' => $onclick), $title); return $a; }
} $forum_active_cache["{$current_forum['forumid']}"] = true; $current_forum = $vbulletin->forumcache["{$current_forum['parentid']}"]; } } if (!$forum_active_cache["{$simthread['forumid']}"]) { continue; } $fperms = fetch_permissions($simthread['forumid']); if ($fperms & $vbulletin->bf_ugp_forumpermissions['canview'] and ($fperms & $vbulletin->bf_ugp_forumpermissions['canviewothers'] or $vbulletin->userinfo['userid'] != 0 and $simthread['postuserid'] == $vbulletin->userinfo['userid'])) { // format thread preview if there is one if (isset($ignore["{$simthread['postuserid']}"])) { $simthread['preview'] = ''; } else { if (isset($simthread['preview']) and $vbulletin->options['threadpreview'] > 0) { $simthread['preview'] = strip_quotes($simthread['preview']); $simthread['preview'] = htmlspecialchars_uni(fetch_trimmed_title(strip_bbcode($simthread['preview'], false, true), $vbulletin->options['threadpreview'])); } } $simthread['lastreplydate'] = vbdate($vbulletin->options['dateformat'], $simthread['lastpost'], true); $simthread['lastreplytime'] = vbdate($vbulletin->options['timeformat'], $simthread['lastpost']); if ($simthread['prefixid']) { $simthread['prefix_plain_html'] = htmlspecialchars_uni($vbphrase["prefix_{$simthread['prefixid']}_title_plain"]); $simthread['prefix_rich'] = $vbphrase["prefix_{$simthread['prefixid']}_title_rich"]; } else { $simthread['prefix_plain_html'] = ''; $simthread['prefix_rich'] = ''; } $simthread['title'] = fetch_censored_text($simthread['title']); ($hook = vBulletinHook::fetch_hook('showthread_similarthreadbit')) ? eval($hook) : false; $templater = vB_Template::create('showthread_similarthreadbit');
$first = $itemcount + 1; if ($db->num_rows($getevents)) { $show['haveevents'] = true; while ($event = $db->fetch_array($getevents)) { if (empty($reminders["{$event['reminder']}"])) { $event['reminder'] = 3600; } $event['reminder'] = $vbphrase[$reminders[$event['reminder']]]; $offset = $event['dst'] ? $vbulletin->userinfo['timezoneoffset'] : $vbulletin->userinfo['tzoffset']; $event = array_merge($event, convert_bits_to_array($event['options'], $vbulletin->bf_misc_useroptions)); $event = array_merge($event, convert_bits_to_array($event['adminoptions'], $vbulletin->bf_misc_adminoptions)); cache_permissions($event, false); fetch_avatar_from_userinfo($event, true); $event['dateline_from_user'] = $event['dateline_from'] + $offset * 3600; $event['dateline_to_user'] = $event['dateline_to'] + $offset * 3600; $event['preview'] = htmlspecialchars_uni(strip_bbcode(fetch_trimmed_title(strip_quotes($event['event']), 300), false, true)); $event = fetch_event_date_time($event); $event['calendar'] = $calendarcache["{$event['calendarid']}"]; $show['singleday'] = !empty($event['singleday']) ? true : false; ($hook = vBulletinHook::fetch_hook('calendar_viewreminder_event')) ? eval($hook) : false; $oppositesort = $sortorder == 'asc' ? 'desc' : 'asc'; $templater = vB_Template::create('calendar_reminder_eventbit'); $templater->register('date1', $date1); $templater->register('date2', $date2); $templater->register('daterange', $daterange); $templater->register('event', $event); $templater->register('eventdate', $eventdate); $templater->register('recurcriteria', $recurcriteria); $templater->register('time1', $time1); $templater->register('time2', $time2); $eventbits .= $templater->render();
cacti_log("Host[$host_id] DS[$data_source] WARNING: Result from CMD not valid. Partial Result: " . substr($output, 0, $strout), $print_data_to_stdout); $output = "U"; } if (read_config_option("log_verbosity") >= POLLER_VERBOSITY_MEDIUM) { cacti_log("Host[$host_id] DS[$data_source] CMD: " . $item["arg1"] . ", output: $output",$print_data_to_stdout); } break; case POLLER_ACTION_SCRIPT_PHP: /* script (php script server) */ if ($using_proc_function == true) { $output = trim(str_replace("\n", "", exec_poll_php($item["arg1"], $using_proc_function, $pipes, $cactiphp))); /* remove any quotes from string */ $output = strip_quotes($output); if (!validate_result($output)) { if (strlen($output) > 20) { $strout = 20; } else { $strout = strlen($output); } cacti_log("Host[$host_id] DS[$data_source] WARNING: Result from SERVER not valid. Partial Result: " . substr($output, 0, $strout), $print_data_to_stdout); $output = "U"; } if (read_config_option("log_verbosity") >= POLLER_VERBOSITY_MEDIUM) { cacti_log("Host[$host_id] DS[$data_source] SERVER: " . $item["arg1"] . ", output: $output", $print_data_to_stdout); }
<meta name="description" content="<?php echo strip_quotes($description_for_layout); ?> " /> <meta name="keywords" content="<?php echo strip_quotes($keyword_for_layout); ?> " /> <meta name="ROBOTS" content="index, follow" /> <meta property="og:title" content="<?php echo $title_for_layout; ?> "> <meta property="og:type" content="website"> <meta property="og:description" content="<?php echo strip_quotes($description_for_layout); ?> " /> <meta property="fb:app_id" content="<?php echo FACEBOOK_APP_ID; ?> " /> <meta property="og:image" content="<?php echo $image_for_layout; ?> " /> <meta property="og:site_name" content="<?php echo SITE_NAME; ?> " /> <meta property="og:url" content="<?php
function append_port($host, &$port) { $host = trim($host); // empty port or zero-length host if (!nonempty($port) || !strlen($host)) { return $host; } $port = trim(strval($port)); $s = strip_quotes($port); if (strlen($s) && is_num($s)) { $s = ":" . $s; } else { $s = ""; } return $host . $s; }
function do_get_post() { global $vbulletin, $db, $foruminfo, $threadinfo, $postid, $postinfo; $vbulletin->input->clean_array_gpc('r', array('type' => TYPE_STR)); $type = 'html'; if ($vbulletin->GPC['type']) { $type = $vbulletin->GPC['type']; } if (!$postinfo['postid']) { standard_error(fetch_error('invalidid', $vbphrase['post'], $vbulletin->options['contactuslink'])); } if ((!$postinfo['visible'] or $postinfo['isdeleted']) and !can_moderate($threadinfo['forumid'])) { standard_error(fetch_error('invalidid', $vbphrase['post'], $vbulletin->options['contactuslink'])); } if ((!$threadinfo['visible'] or $threadinfo['isdeleted']) and !can_moderate($threadinfo['forumid'])) { standard_error(fetch_error('invalidid', $vbphrase['thread'], $vbulletin->options['contactuslink'])); } $forumperms = fetch_permissions($threadinfo['forumid']); if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) or !($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewthreads'])) { json_error(ERR_NO_PERMISSION); } if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) and ($threadinfo['postuserid'] != $vbulletin->userinfo['userid'] or $vbulletin->userinfo['userid'] == 0)) { json_error(ERR_NO_PERMISSION); } // check if there is a forum password and if so, ensure the user has it set verify_forum_password($foruminfo['forumid'], $foruminfo['password']); $postbit_factory = new vB_Postbit_Factory(); $postbit_factory->registry =& $vbulletin; $postbit_factory->forum =& $foruminfo; $postbit_factory->cache = array(); $postbit_factory->bbcode_parser = new vB_BbCodeParser($vbulletin, fetch_tag_list()); $post = $db->query_first_slave("\n\tSELECT\n\tpost.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted,\n\t user.*, userfield.*, usertextfield.*,\n\t " . iif($foruminfo['allowicons'], 'icon.title as icontitle, icon.iconpath,') . "\n\t IF(user.displaygroupid=0, user.usergroupid, user.displaygroupid) AS displaygroupid, infractiongroupid,\n\t\t" . iif($vbulletin->options['avatarenabled'], 'avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight,') . "\n\t\t" . ((can_moderate($threadinfo['forumid'], 'canmoderateposts') or can_moderate($threadinfo['forumid'], 'candeleteposts')) ? 'spamlog.postid AS spamlog_postid,' : '') . "\n\t\teditlog.userid AS edit_userid, editlog.username AS edit_username, editlog.dateline AS edit_dateline, editlog.reason AS edit_reason, editlog.hashistory,\n\t\tpostparsed.pagetext_html, postparsed.hasimages,\n\t\tsigparsed.signatureparsed, sigparsed.hasimages AS sighasimages,\n\t\tsigpic.userid AS sigpic, sigpic.dateline AS sigpicdateline, sigpic.width AS sigpicwidth, sigpic.height AS sigpicheight\n\t\t" . iif(!($permissions['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canseehiddencustomfields']), $vbulletin->profilefield['hidden']) . "\n\t\t{$hook_query_fields}\n\t\tFROM " . TABLE_PREFIX . "post AS post\n\t\tLEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = post.userid)\n\t\tLEFT JOIN " . TABLE_PREFIX . "userfield AS userfield ON(userfield.userid = user.userid)\n\t\tLEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield ON(usertextfield.userid = user.userid)\n\t\t" . iif($foruminfo['allowicons'], "LEFT JOIN " . TABLE_PREFIX . "icon AS icon ON(icon.iconid = post.iconid)") . "\n\t\t" . iif($vbulletin->options['avatarenabled'], "LEFT JOIN " . TABLE_PREFIX . "avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN " . TABLE_PREFIX . "customavatar AS customavatar ON(customavatar.userid = user.userid)") . "\n\t\t" . ((can_moderate($threadinfo['forumid'], 'canmoderateposts') or can_moderate($threadinfo['forumid'], 'candeleteposts')) ? "LEFT JOIN " . TABLE_PREFIX . "spamlog AS spamlog ON(spamlog.postid = post.postid)" : '') . "\n\t\tLEFT JOIN " . TABLE_PREFIX . "editlog AS editlog ON(editlog.postid = post.postid)\n\t\tLEFT JOIN " . TABLE_PREFIX . "postparsed AS postparsed ON(postparsed.postid = post.postid AND postparsed.styleid = " . intval(STYLEID) . " AND postparsed.languageid = " . intval(LANGUAGEID) . ")\n\t\tLEFT JOIN " . TABLE_PREFIX . "sigparsed AS sigparsed ON(sigparsed.userid = user.userid AND sigparsed.styleid = " . intval(STYLEID) . " AND sigparsed.languageid = " . intval(LANGUAGEID) . ")\n\t\tLEFT JOIN " . TABLE_PREFIX . "sigpic AS sigpic ON(sigpic.userid = post.userid)\n\t\t{$hook_query_joins}\n\t\tWHERE post.postid = {$postid}\n "); $types = vB_Types::instance(); $contenttypeid = $types->getContentTypeID('vBForum_Post'); $attachments = $db->query_read_slave("\n\t\tSELECT\n\t\t\tfd.thumbnail_dateline, fd.filesize, IF(fd.thumbnail_filesize > 0, 1, 0) AS hasthumbnail, fd.thumbnail_filesize,\n\t\t\ta.dateline, a.state, a.attachmentid, a.counter, a.contentid AS postid, a.filename,\n\t\t\ttype.contenttypes\n\t\tFROM " . TABLE_PREFIX . "attachment AS a\n\t\tINNER JOIN " . TABLE_PREFIX . "filedata AS fd ON (a.filedataid = fd.filedataid)\n\t\tLEFT JOIN " . TABLE_PREFIX . "attachmenttype AS type ON (fd.extension = type.extension)\n\t\tWHERE\n\t\t\ta.contentid = {$postid}\n\t\t\t\tAND\n\t\t\ta.contenttypeid = {$contenttypeid}\n\t\tORDER BY a.attachmentid\n\t"); $fr_images = array(); while ($attachment = $db->fetch_array($attachments)) { $lfilename = strtolower($attachment['filename']); if (strpos($lfilename, '.jpe') !== false || strpos($lfilename, '.png') !== false || strpos($lfilename, '.gif') !== false || strpos($lfilename, '.jpg') !== false || strpos($lfilename, '.jpeg') !== false) { $tmp = array('img' => $vbulletin->options['bburl'] . '/attachment.php?attachmentid=' . $attachment['attachmentid']); if ($vbulletin->options['attachthumbs']) { $tmp['tmb'] = $vbulletin->options['bburl'] . '/attachment.php?attachmentid=' . $attachment['attachmentid'] . '&stc=1&thumb=1'; } $fr_images[] = $tmp; } } $postbits = ''; $postbit_obj =& $postbit_factory->fetch_postbit('post'); $postbit_obj->cachable = $post_cachable; $postbits .= $postbit_obj->construct_postbit($post); if ($type == 'html') { $bbcode_parser = new vB_BbCodeParser($vbulletin, fetch_tag_list()); $vbulletin->templatecache['bbcode_quote'] = ' <div style=\\"margin:0px; margin-top:0px;\\"> <table cellpadding=\\"$stylevar[cellpadding]\\" cellspacing=\\"0\\" border=\\"0\\" width=\\"100%\\"> <tr> <td class=\\"alt2\\" style=\\"border:1px solid #777777;\\"> ".(($show[\'username\']) ? (" <div> " . construct_phrase("$vbphrase[originally_posted_by_x]", "$username") . " </div> <div style=\\"font-style:italic\\">$message</div> ") : (" $message "))." </td> </tr> </table> </div> '; $css = <<<EOF <style type="text/css"> body { margin: 0; padding: 3; font: 13px Arial, Helvetica, sans-serif; } .alt2 { background-color: #e6edf5; font: 13px Arial, Helvetica, sans-serif; } html { -webkit-text-size-adjust: none; } </style> EOF; $html = $css . $bbcode_parser->parse($post['pagetext']); $image = ''; } else { if ($type == 'facebook') { $html = fetch_censored_text(strip_bbcode(strip_quotes($post['pagetext']), false, true)); if (count($fr_images)) { $image = $fr_images[0]['img']; } } } // Figure out if we can post $canpost = true; if ($threadinfo['isdeleted'] or !$threadinfo['visible'] and !can_moderate($threadinfo['forumid'], 'canmoderateposts')) { $canpost = false; } if (!$foruminfo['allowposting'] or $foruminfo['link'] or !$foruminfo['cancontainthreads']) { $canpost = false; } if (!$threadinfo['open']) { if (!can_moderate($threadinfo['forumid'], 'canopenclose')) { $canpost = false; } } if (($vbulletin->userinfo['userid'] != $threadinfo['postuserid'] or !$vbulletin->userinfo['userid']) and (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) or !($forumperms & $vbulletin->bf_ugp_forumpermissions['canreplyothers']))) { $canpost = false; } if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) or !($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewthreads']) or !($forumperms & $vbulletin->bf_ugp_forumpermissions['canreplyown']) and $vbulletin->userinfo['userid'] == $threadinfo['postuserid']) { $canpost = false; } // Avatar work $avatarurl = ''; if ($post['avatarurl']) { $avatarurl = process_avatarurl($post['avatarurl']); } // Get post date/time $postdate = vbdate($vbulletin->options['dateformat'], $post['dateline'], 1); $posttime = vbdate($vbulletin->options['timeformat'], $post['dateline']); // Parse the post for quotes and inline images list($text, $nuked_quotes, $images) = parse_post($post['pagetext'], $post['allowsmilie'] && $usesmilies); $out = array('html' => prepare_utf8_string($html), 'post_id' => $post['postid'], 'thread_id' => $post['threadid'], 'forum_id' => $foruminfo['forumid'], 'forum_title' => prepare_utf8_string($foruminfo['title_clean']), 'username' => prepare_utf8_string(strip_tags($post['username'])), 'joindate' => prepare_utf8_string($post['joindate']), 'usertitle' => prepare_utf8_string(strip_tags($post['usertitle'])), 'numposts' => $post['posts'] ? (string) $post['posts'] : '0', 'userid' => $post['userid'], 'title' => prepare_utf8_string($post['title']), 'post_timestamp' => prepare_utf8_string(date_trunc($postdate) . ' ' . $posttime), 'canpost' => $canpost, 'quotable' => $nuked_quotes, 'canattach' => $forumperms & $vbulletin->bf_ugp_forumpermissions['canpostattachment'] and $vbulletin->userinfo['userid'], 'edittext' => prepare_utf8_string($post['pagetext'])); if ($avatarurl != '') { $out['avatarurl'] = $avatarurl; } if ($post['editlink']) { $out['canedit'] = true; } if ($image != '') { $out['image'] = $image; } return $out; }
/** * возвращает "показатель полезности" сообщения используемый для автоудаления коротких сообщений типа "спасибо", "круто" и т.д. */ function get_words_rate($text) { $this->words_rate = 127; // максимальное значение по умолчанию $this->deleted_words = array(); $this->del_text_hl = $text; // длинное сообщение if (strlen($text) > 600) { return $this->words_rate; } // вырезаем цитаты если содержит +1 if (preg_match('#\\+\\d+#', $text)) { $text = strip_quotes($text); } // содержит ссылку if (strpos($text, '://')) { return $this->words_rate; } // вопрос if ($questions = preg_match_all('#\\w\\?+#', $text, $m)) { if ($questions >= 1) { return $this->words_rate; } } if ($this->dbg_mode) { preg_match_all($this->words_del_exp, $text, $this->deleted_words); $text_dbg = preg_replace($this->words_del_exp, '<span class="del-word">$0</span>', $text); $this->del_text_hl = '<div class="prune-post">' . $text_dbg . '</div>'; } $text = preg_replace($this->words_del_exp, '', $text); // удаление смайлов $text = preg_replace('#:\\w+:#', '', $text); // удаление bbcode тегов $text = preg_replace('#\\[\\S+\\]#', '', $text); $words_count = preg_match_all($this->words_cnt_exp, $text, $m); if ($words_count !== false && $words_count < 127) { $this->words_rate = $words_count == 0 ? 1 : $words_count; } return $this->words_rate; }
function convert_ids_to_titles() { global $vbulletin; global $albumids, $attachmentids, $calendarids, $eventids, $forumids, $infractionids, $pmids, $postids, $searchids, $socialgroupids, $threadids, $userids; global $wol_album, $wol_attachment, $wol_calendar, $wol_event, $wol_inf, $wol_pm, $wol_post, $wol_search, $wol_socialgroup, $wol_thread, $wol_user; if ($attachmentids) { $postidquery = $vbulletin->db->query_read_slave("\n\t\t\tSELECT postid, attachmentid\n\t\t\tFROM " . TABLE_PREFIX . "attachment\n\t\t\tWHERE attachmentid IN (0{$attachmentids})\n\t\t"); while ($postidqueryr = $vbulletin->db->fetch_array($postidquery)) { $postids .= ',' . $postidqueryr['postid']; $wol_attachment["{$postidqueryr['attachmentid']}"] = $postidqueryr['postid']; } } if ($postids) { $postidquery = $vbulletin->db->query_read_slave("\n\t\t\tSELECT threadid, postid\n\t\t\tFROM " . TABLE_PREFIX . "post\n\t\t\tWHERE postid IN (0{$postids})\n\t\t"); while ($postidqueryr = $vbulletin->db->fetch_array($postidquery)) { $threadids .= ',' . $postidqueryr['threadid']; $wol_post["{$postidqueryr['postid']}"] = $postidqueryr['threadid']; } } if ($socialgroupids) { $socialgroups = $vbulletin->db->query_read_slave("\n\t\t\tSELECT name, groupid\n\t\t\tFROM " . TABLE_PREFIX . "socialgroup\n\t\t\tWHERE groupid IN (0{$socialgroupids})\n\t\t"); while ($socialgroup = $vbulletin->db->fetch_array($socialgroups)) { $wol_socialgroup["{$socialgroup['groupid']}"]['name'] = $socialgroup['name']; } } if ($albumids) { $albums = $vbulletin->db->query_read_slave("\n\t\t\tSELECT title, albumid, state, userid\n\t\t\tFROM " . TABLE_PREFIX . "album\n\t\t\tWHERE albumid IN (0{$albumids})\n\t\t"); while ($album = $vbulletin->db->fetch_array($albums)) { $wol_album["{$album['albumid']}"] = $album; } } if ($threadids) { $threadresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT thread.title, thread.prefixid, thread.threadid, thread.forumid, thread.postuserid, thread.visible\n\t\t\t" . iif($vbulletin->options['threadpreview'] > 0, ",post.pagetext AS preview") . "\n\t\t\t" . iif($vbulletin->options['threadsubscribed'] and $vbulletin->userinfo['userid'], ", NOT ISNULL(subscribethread.subscribethreadid) AS issubscribed") . "\n\t\t\tFROM " . TABLE_PREFIX . "thread AS thread\n\t\t\t" . iif($vbulletin->options['threadpreview'] > 0, "LEFT JOIN " . TABLE_PREFIX . "post AS post ON(post.postid = thread.firstpostid)") . "\n\t\t\t" . iif($vbulletin->options['threadsubscribed'] and $vbulletin->userinfo['userid'], " LEFT JOIN " . TABLE_PREFIX . "subscribethread AS subscribethread ON(subscribethread.threadid = thread.threadid AND subscribethread.userid = " . $vbulletin->userinfo['userid'] . " AND canview = 1)") . "\n\t\t\tWHERE thread.threadid IN (0{$threadids})\n\t\t"); while ($threadresult = $vbulletin->db->fetch_array($threadresults)) { $wol_thread["{$threadresult['threadid']}"]['title'] = $threadresult['title']; $wol_thread["{$threadresult['threadid']}"]['prefixid'] = $threadresult['prefixid']; $wol_thread["{$threadresult['threadid']}"]['forumid'] = $threadresult['forumid']; $wol_thread["{$threadresult['threadid']}"]['postuserid'] = $threadresult['postuserid']; $wol_thread["{$threadresult['threadid']}"]['isdeleted'] = $threadresult['visible'] == 2 ? true : false; $wol_thread["{$threadresult['threadid']}"]['visible'] = $threadresult['visible'] == 1 ? true : false; $wol_thread["{$threadresult['threadid']}"]['issubscribed'] = $threadresult['issubscribed']; // format thread preview if there is one $userperms = fetch_permissions($threadresult['forumid']); if (!empty($threadresult['preview']) and $vbulletin->options['threadpreview'] > 0 and $userperms & $vbulletin->bf_ugp_forumpermissions['canviewthreads']) { // Get Buddy List $buddy = array(); if (trim($vbulletin->userinfo['buddylist'])) { $buddylist = preg_split('/( )+/', trim($vbulletin->userinfo['buddylist']), -1, PREG_SPLIT_NO_EMPTY); foreach ($buddylist as $buddyuserid) { $buddy["{$buddyuserid}"] = 1; } } DEVDEBUG('buddies: ' . implode(', ', array_keys($buddy))); // Get Ignore Users $ignore = array(); if (trim($vbulletin->userinfo['ignorelist'])) { $ignorelist = preg_split('/( )+/', trim($vbulletin->userinfo['ignorelist']), -1, PREG_SPLIT_NO_EMPTY); foreach ($ignorelist as $ignoreuserid) { if (!$buddy["{$ignoreuserid}"]) { $ignore["{$ignoreuserid}"] = 1; } } } DEVDEBUG('ignored users: ' . implode(', ', array_keys($ignore))); if (!$ignore["{$threadresult['postuserid']}"]) { $threadresult['preview'] = strip_quotes($threadresult['preview']); $threadresult['preview'] = htmlspecialchars_uni(strip_bbcode(fetch_trimmed_title($threadresult['preview'], $vbulletin->options['threadpreview']), false, true)); $wol_thread["{$threadresult['threadid']}"]['preview'] = $threadresult['preview']; } } } } if ($calendarids) { $calendarresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT calendarid, title\n\t\t\tFROM " . TABLE_PREFIX . "calendar\n\t\t\tWHERE calendarid IN (0{$calendarids})\n\t\t"); while ($calendarresult = $vbulletin->db->fetch_array($calendarresults)) { $wol_calendar["{$calendarresult['calendarid']}"] = $calendarresult['title']; } } if ($infractionids) { $infractions = $vbulletin->db->query_read_slave("\n\t\t\tSELECT infractionid, userid\n\t\t\tFROM " . TABLE_PREFIX . "infraction\n\t\t\tWHERE infractionid IN (0{$infractionids})\n\t\t"); while ($infraction = $vbulletin->db->fetch_array($infractions)) { $wol_inf["{$infraction['infractionid']}"]['userid'] = $infraction['userid']; $userids .= ',' . $infraction['userid']; } } if ($eventids) { $eventresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT eventid, title, userid, calendarid\n\t\t\tFROM " . TABLE_PREFIX . "event\n\t\t\tWHERE eventid IN (0{$eventids})\n\t\t"); while ($eventresult = $vbulletin->db->fetch_array($eventresults)) { $wol_event["{$eventresult['eventid']}"]['title'] = $eventresult['title']; $wol_event["{$eventresult['eventid']}"]['calendarid'] = $eventresult['calendarid']; $wol_event["{$eventresult['eventid']}"]['postuserid'] = $eventresult['userid']; } } if ($pmids and $vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull']) { $pmresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT pmtext.fromuserid, pm.pmid\n\t\t\tFROM " . TABLE_PREFIX . "pm AS pm\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "pmtext AS pmtext ON (pm.pmtextid = pmtext.pmtextid)\n\t\t\tWHERE pmid IN (0{$pmids})\n\t\t\t"); while ($pmresult = $vbulletin->db->fetch_array($pmresults)) { $wol_pm["{$pmresult['pmid']}"] = $pmresult['fromuserid']; $userids .= ',' . intval($pmresult['fromuserid']); } } if ($searchids and $vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull']) { $searchresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT searchid, search.userid, query, searchuser, user.userid AS targetuserid\n\t\t\tFROM " . TABLE_PREFIX . "search AS search\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.username = search.searchuser)\n\t\t\tWHERE searchid IN (0{$searchids})\n\t\t"); while ($searchresult = $vbulletin->db->fetch_array($searchresults)) { if ($searchresult['searchuser']) { if (!$searchresult['targetuserid']) { $result = $vbulletin->db->query_first_slave("\n\t\t\t\t\t\tSELECT userid AS targetuserid\n\t\t\t\t\t\tFROM " . TABLE_PREFIX . "user\n\t\t\t\t\t\tWHERE username = '******'searchuser'])) . "'\n\t\t\t\t\t"); } if ($result['targetuserid']) { $searchresult['targetuserid'] = $result['targetuserid']; } if ($searchresult['targetuserid']) { $userids .= ",{$searchresult['targetuserid']}"; } } $wol_search["{$searchresult['searchid']}"] = $searchresult; } } if ($userids and $vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull']) { $userresults = $vbulletin->db->query_read_slave("\n\t\t\tSELECT userid, username, IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid\n\t\t\tFROM " . TABLE_PREFIX . "user AS user\n\t\t\tWHERE userid IN (0{$userids})\n\t\t"); while ($userresult = $vbulletin->db->fetch_array($userresults)) { fetch_musername($userresult); $wol_user["{$userresult['userid']}"] = $userresult['musername']; } } ($hook = vBulletinHook::fetch_hook('online_ids_titles')) ? eval($hook) : false; }
/** * Fetches and prepares posts for quoting. Returned text is BB code. * * @param array Array of post IDs to pull from * @param integer The ID of the thread that is being quoted into * @param integer Returns the number of posts that were unquoted because of the value of the next argument * @param array Returns the IDs of the posts that were actually quoted * @param string Controls what posts are successfully quoted: all, only (only the thread ID), other (only other thread IDs) * @param boolean Whether to undo the htmlspecialchars calls; useful when returning HTML to be entered via JS */ function fetch_quotable_posts($quote_postids, $threadid, &$unquoted_posts, &$quoted_post_ids, $limit_thread = 'only', $unhtmlspecialchars = false) { global $vbulletin; $unquoted_posts = 0; $quoted_post_ids = array(); $quote_postids = array_diff_assoc(array_unique(array_map('intval', $quote_postids)), array(0)); // limit to X number of posts if ($vbulletin->options['mqlimit'] > 0) { $quote_postids = array_slice($quote_postids, 0, $vbulletin->options['mqlimit']); } if (empty($quote_postids)) { // nothing to quote return ''; } $hook_query_fields = $hook_query_joins = ''; ($hook = vBulletinHook::fetch_hook('quotable_posts_query')) ? eval($hook) : false; $quote_post_data = $vbulletin->db->query_read_slave("\n\t\tSELECT post.postid, post.title, post.pagetext, post.dateline, post.userid, post.visible AS postvisible,\n\t\t\tIF(user.username <> '', user.username, post.username) AS username,\n\t\t\tthread.threadid, thread.title AS threadtitle, thread.postuserid, thread.visible AS threadvisible,\n\t\t\tforum.forumid, forum.password\n\t\t\t{$hook_query_fields}\n\t\tFROM " . TABLE_PREFIX . "post AS post\n\t\tLEFT JOIN " . TABLE_PREFIX . "user AS user ON (post.userid = user.userid)\n\t\tINNER JOIN " . TABLE_PREFIX . "thread AS thread ON (post.threadid = thread.threadid)\n\t\tINNER JOIN " . TABLE_PREFIX . "forum AS forum ON (thread.forumid = forum.forumid)\n\t\t{$hook_query_joins}\n\t\tWHERE post.postid IN (" . implode(',', $quote_postids) . ")\n\t"); $quote_posts = array(); while ($quote_post = $vbulletin->db->fetch_array($quote_post_data)) { if ((!$quote_post['postvisible'] or $quote_post['postvisible'] == 2) and !can_moderate($quote_post['forumid']) or (!$quote_post['threadvisible'] or $quote_post['threadvisible'] == 2) and !can_moderate($quote_post['forumid'])) { // no permission to view this post continue; } $forumperms = fetch_permissions($quote_post['forumid']); if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) or !($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewthreads']) or !($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) and ($quote_post['postuserid'] != $vbulletin->userinfo['userid'] or $vbulletin->userinfo['userid'] == 0) or !verify_forum_password($quote_post['forumid'], $quote_post['password'], false) or in_coventry($quote_post['postuserid']) and !can_moderate($quote_post['forumid']) or in_coventry($quote_post['userid']) and !can_moderate($quote_post['forumid'])) { // no permission to view this post continue; } if ($limit_thread == 'only' and $quote_post['threadid'] != $threadid or $limit_thread == 'other' and $quote_post['threadid'] == $threadid or $limit_thread == 'all') { $unquoted_posts++; continue; } $skip_post = false; ($hook = vBulletinHook::fetch_hook('quotable_posts_logic')) ? eval($hook) : false; if ($skip_post) { continue; } $quote_posts["{$quote_post['postid']}"] = $quote_post; } $message = ''; foreach ($quote_postids as $quote_postid) { if (!isset($quote_posts["{$quote_postid}"])) { continue; } $quote_post =& $quote_posts["{$quote_postid}"]; $originalposter = fetch_quote_username($quote_post['username'] . ";{$quote_post['postid']}"); $postdate = vbdate($vbulletin->options['dateformat'], $quote_post['dateline']); $posttime = vbdate($vbulletin->options['timeformat'], $quote_post['dateline']); $pagetext = htmlspecialchars_uni($quote_post['pagetext']); $pagetext = trim(strip_quotes($pagetext)); ($hook = vBulletinHook::fetch_hook('newreply_quote')) ? eval($hook) : false; eval('$message .= "' . fetch_template('newpost_quote', 0, false) . '\\n";'); $quoted_post_ids[] = $quote_postid; } if ($unhtmlspecialchars) { $message = unhtmlspecialchars($message); } return $message; }
<?php } ?> </div> <div class="acord-right summary col-md-9 col-sm-9 col-xs-9"> <p> <?php echo word_limiter(nl2br($events->description), 200); ?> <a href="<?php echo ROOTPATH; ?> /events/eventDetail/<?php echo urlencode(strip_quotes($eventName)); ?> /<?php echo $events->id; ?> " class="download">Read more</a> </p> </div> </div> </div> <div id="head" class="row <?php echo $divStyleHead; ?> ">
} else { $show['bcclink'] = true; } $pm['message'] = htmlspecialchars_uni($pm['message']); construct_checkboxes($pm); } else { $vbulletin->input->clean_array_gpc('r', array('stripquote' => TYPE_BOOL, 'forward' => TYPE_BOOL, 'userid' => TYPE_NOCLEAN)); // set up for PM reply / forward if ($vbulletin->GPC['pmid']) { if ($pm = $db->query_first_slave("\n\t\t\t\tSELECT pm.*, pmtext.*\n\t\t\t\tFROM " . TABLE_PREFIX . "pm AS pm\n\t\t\t\tLEFT JOIN " . TABLE_PREFIX . "pmtext AS pmtext ON(pmtext.pmtextid = pm.pmtextid)\n\t\t\t\tWHERE pm.userid=" . $vbulletin->userinfo['userid'] . " AND pm.pmid=" . $vbulletin->GPC['pmid'] . "\n\t\t\t")) { // quote reply $originalposter = fetch_quote_username($pm['fromusername']); // allow quotes to remain with an optional request variable // this will fix a problem with forwarded PMs and replying to them if ($vbulletin->GPC['stripquote']) { $pagetext = strip_quotes($pm['message']); } else { // this is now the default behavior -- leave quotes, like vB2 $pagetext = $pm['message']; } $pagetext = trim(htmlspecialchars_uni($pagetext)); eval('$pm[\'message\'] = "' . fetch_template('newpost_quote', 0, false) . '";'); // work out FW / RE bits if (preg_match('#^' . preg_quote($vbphrase['forward_prefix'], '#') . '(\\s+)?#i', $pm['title'], $matches)) { $pm['title'] = substr($pm['title'], strlen($vbphrase['forward_prefix']) + (isset($matches[1]) ? strlen($matches[1]) : 0)); } else { if (preg_match('#^' . preg_quote($vbphrase['reply_prefix'], '#') . '(\\s+)?#i', $pm['title'], $matches)) { $pm['title'] = substr($pm['title'], strlen($vbphrase['reply_prefix']) + (isset($matches[1]) ? strlen($matches[1]) : 0)); } else { $pm['title'] = preg_replace('#^[a-z]{2}:#i', '', $pm['title']); }
function convert_ids_to_titles() { global $vbulletin; global $albumids, $attachmentids, $calendarids, $eventids, $forumids, $infractionids, $pmids, $postids, $searchids, $socialgroupids, $threadids, $userids; global $wol_album, $wol_attachment, $wol_calendar, $wol_event, $wol_inf, $wol_pm, $wol_post, $wol_search, $wol_socialgroup, $wol_thread, $wol_user; /* if ($attachmentids) { $postidquery = $vbulletin->db->query_read_slave(" SELECT postid, attachmentid FROM " . TABLE_PREFIX . "attachment WHERE attachmentid IN (0$attachmentids) "); while ($postidqueryr = $vbulletin->db->fetch_array($postidquery)) { $postids .= ',' . $postidqueryr['postid']; $wol_attachment["$postidqueryr[attachmentid]"] = $postidqueryr['postid']; } } */ if ($postids) { $postidquery = $vbulletin->db->query_read_slave(" SELECT threadid, postid FROM " . TABLE_PREFIX . "post WHERE postid IN (0$postids) "); while ($postidqueryr = $vbulletin->db->fetch_array($postidquery)) { $threadids .= ',' . $postidqueryr['threadid']; $wol_post["$postidqueryr[postid]"] = $postidqueryr['threadid']; } } if ($socialgroupids) { $socialgroups = $vbulletin->db->query_read_slave(" SELECT name, groupid FROM " . TABLE_PREFIX . "socialgroup WHERE groupid IN (0$socialgroupids) "); while ($socialgroup = $vbulletin->db->fetch_array($socialgroups)) { $wol_socialgroup["$socialgroup[groupid]"]['name'] = $socialgroup['name']; } } if ($albumids) { $albums = $vbulletin->db->query_read_slave(" SELECT album.title, album.albumid, album.state, album.userid FROM " . TABLE_PREFIX . "album AS album LEFT JOIN " . TABLE_PREFIX . "profileblockprivacy AS profileblockprivacy ON (profileblockprivacy.userid = album.userid AND profileblockprivacy.blockid = 'albums') WHERE album.albumid IN (0$albumids) AND (profileblockprivacy.requirement = 0 OR profileblockprivacy.requirement IS NULL) "); while ($album = $vbulletin->db->fetch_array($albums)) { $wol_album["$album[albumid]"] = $album; } } if ($threadids) { $threadresults = $vbulletin->db->query_read_slave(" SELECT thread.title, thread.prefixid, thread.threadid, thread.forumid, thread.postuserid, thread.visible " . iif($vbulletin->options['threadpreview'] > 0, ",post.pagetext AS preview") . " " . iif($vbulletin->options['threadsubscribed'] AND $vbulletin->userinfo['userid'], ", NOT ISNULL(subscribethread.subscribethreadid) AS issubscribed") . " FROM " . TABLE_PREFIX . "thread AS thread " . iif($vbulletin->options['threadpreview'] > 0, "LEFT JOIN " . TABLE_PREFIX . "post AS post ON(post.postid = thread.firstpostid)") . " " . iif($vbulletin->options['threadsubscribed'] AND $vbulletin->userinfo['userid'], " LEFT JOIN " . TABLE_PREFIX . "subscribethread AS subscribethread ON(subscribethread.threadid = thread.threadid AND subscribethread.userid = " . $vbulletin->userinfo['userid'] . " AND canview = 1)") . " WHERE thread.threadid IN (0$threadids) "); while ($threadresult = $vbulletin->db->fetch_array($threadresults)) { $wol_thread["$threadresult[threadid]"]['title'] = $threadresult['title']; $wol_thread["$threadresult[threadid]"]['prefixid'] = $threadresult['prefixid']; $wol_thread["$threadresult[threadid]"]['forumid'] = $threadresult['forumid']; $wol_thread["$threadresult[threadid]"]['postuserid'] = $threadresult['postuserid']; $wol_thread["$threadresult[threadid]"]['isdeleted'] = ($threadresult['visible'] == 2) ? true : false; $wol_thread["$threadresult[threadid]"]['visible'] = ($threadresult['visible'] == 1) ? true : false; $wol_thread["$threadresult[threadid]"]['issubscribed'] = $threadresult['issubscribed']; // format thread preview if there is one $userperms = fetch_permissions($threadresult['forumid']); if (!empty($threadresult['preview']) AND $vbulletin->options['threadpreview'] > 0 AND ($userperms & $vbulletin->bf_ugp_forumpermissions['canviewthreads'])) { // Get Buddy List $buddy = array(); if (trim($vbulletin->userinfo['buddylist'])) { $buddylist = preg_split('/( )+/', trim($vbulletin->userinfo['buddylist']), -1, PREG_SPLIT_NO_EMPTY); foreach ($buddylist AS $buddyuserid) { $buddy["$buddyuserid"] = 1; } } DEVDEBUG('buddies: ' . implode(', ', array_keys($buddy))); // Get Ignore Users $ignore = array(); if (trim($vbulletin->userinfo['ignorelist'])) { $ignorelist = preg_split('/( )+/', trim($vbulletin->userinfo['ignorelist']), -1, PREG_SPLIT_NO_EMPTY); foreach ($ignorelist AS $ignoreuserid) { if (!$buddy["$ignoreuserid"]) { $ignore["$ignoreuserid"] = 1; } } } DEVDEBUG('ignored users: ' . implode(', ', array_keys($ignore))); if (!$ignore["$threadresult[postuserid]"]) { $threadresult['preview'] = strip_quotes($threadresult['preview']); $threadresult['preview'] = htmlspecialchars_uni(strip_bbcode(fetch_trimmed_title($threadresult['preview'], $vbulletin->options['threadpreview']), false, true)); $wol_thread["$threadresult[threadid]"]['preview'] = $threadresult['preview']; } } } } if ($calendarids) { $calendarresults = $vbulletin->db->query_read_slave(" SELECT calendarid, title FROM " . TABLE_PREFIX . "calendar WHERE calendarid IN (0$calendarids) "); while ($calendarresult = $vbulletin->db->fetch_array($calendarresults)) { $wol_calendar["$calendarresult[calendarid]"] = $calendarresult['title']; } } if ($infractionids) { $infractions = $vbulletin->db->query_read_slave(" SELECT infractionid, userid FROM " . TABLE_PREFIX . "infraction WHERE infractionid IN (0$infractionids) "); while ($infraction = $vbulletin->db->fetch_array($infractions)) { $wol_inf["$infraction[infractionid]"]['userid'] = $infraction['userid']; $userids .= ',' . $infraction['userid']; } } if ($eventids) { $eventresults = $vbulletin->db->query_read_slave(" SELECT eventid, title, userid, calendarid FROM " . TABLE_PREFIX . "event WHERE eventid IN (0$eventids) "); while ($eventresult = $vbulletin->db->fetch_array($eventresults)) { $wol_event["$eventresult[eventid]"]['title'] = $eventresult['title']; $wol_event["$eventresult[eventid]"]['calendarid'] = $eventresult['calendarid']; $wol_event["$eventresult[eventid]"]['postuserid'] = $eventresult['userid']; } } if ($pmids AND ($vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull'])) { $pmresults = $vbulletin->db->query_read_slave(" SELECT pmtext.fromuserid, pm.pmid FROM " . TABLE_PREFIX . "pm AS pm LEFT JOIN " . TABLE_PREFIX . "pmtext AS pmtext ON (pm.pmtextid = pmtext.pmtextid) WHERE pmid IN (0$pmids) "); while ($pmresult = $vbulletin->db->fetch_array($pmresults)) { $wol_pm["$pmresult[pmid]"] = $pmresult['fromuserid']; $userids .= ',' . intval($pmresult['fromuserid']); } } if ($searchids AND ($vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull'])) { //rework this to get what the code assumes the array looks like from the new search code. //in particular the searchuser value has been changed from a string to a bool based on usage //and the fact that we don't really have it. require_once(DIR . "/vb/search/core.php"); require_once(DIR . '/vb/search/criteria.php'); $searchresults = $vbulletin->db->query_read_slave(" SELECT searchlog.searchlogid AS searchid, searchlog.userid, searchlog.criteria FROM " . TABLE_PREFIX . "searchlog AS searchlog WHERE searchlog.searchlogid IN (0$searchids) "); while ($searchresult = $vbulletin->db->fetch_array($searchresults)) { if ($searchresult['criteria']) { $criteria = unserialize($searchresult['criteria']); $targetuserid = $criteria->get_target_userid(); if ($targetuserid) { $userids .= ",userid"; } $searchresult['targetuserid'] = $targetuserid; $searchresult['searchuser'] = (bool) $targetuserid; $searchresult['query'] = $criteria->get_raw_keywords(); unset($searchresult['criteria']); } $wol_search["$searchresult[searchid]"] = $searchresult; } } if ($userids AND ($vbulletin->userinfo['permissions']['wolpermissions'] & $vbulletin->bf_ugp_wolpermissions['canwhosonlinefull'])) { $userresults = $vbulletin->db->query_read_slave(" SELECT userid, username, IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid FROM " . TABLE_PREFIX . "user AS user WHERE userid IN (0$userids) "); while ($userresult = $vbulletin->db->fetch_array($userresults)) { fetch_musername($userresult); $wol_user["$userresult[userid]"]['musername'] = $userresult['musername']; $wol_user["$userresult[userid]"]['username'] = $userresult['username']; } } ($hook = vBulletinHook::fetch_hook('online_ids_titles')) ? eval($hook) : false; }
function cache_events($range) { global $vbulletin, $calendarinfo, $vbphrase, $serveroffset; $numdays = date('j', mktime(0, 0, 0, $range['nextmonth'] + 1, 1, $range['nextyear']) - 1); $beginday = gmmktime(0, 0, 0, $range['frommonth'], 1, $range['fromyear']) + -12 * 3600; $endday = gmmktime(24, 0, 0, $range['nextmonth'], $numdays, $range['nextyear']) + 12 * 3600; $event = array(); $eventids = array(); if ($calendarinfo['showholidays']) { // Holidays show across all calendars that a user has access to. $holidays = $vbulletin->db->query_read_slave("\n\t\t\tSELECT *\n\t\t\tFROM " . TABLE_PREFIX . "holiday\n\t\t"); if ($vbulletin->db->num_rows($holidays)) { while ($ev = $vbulletin->db->fetch_array($holidays)) { $ev['visible'] = 1; $ev['title'] =& $vbphrase['holiday' . $ev['holidayid'] . '_title']; $ev['event'] =& $vbphrase['holiday' . $ev['holidayid'] . '_desc']; $ev['preview'] = strip_quotes($ev['event']); $ev['preview'] = htmlspecialchars_uni(strip_bbcode(fetch_trimmed_title($ev['preview'], 300), false, true)); if ($ev['recurring'] == 6) { $event['holiday1']["{$ev['recuroption']}"][] = $ev; } else { $ev['dateline_from'] = $beginday; $ev['dateline_to'] = $endday; $offset = $vbulletin->userinfo['timezoneoffset'] ? $vbulletin->userinfo['tzoffset'] : $vbulletin->userinfo['timezoneoffset']; $ev['dateline_from_user'] = $ev['dateline_from'] + $offset * 3600; $ev['dateline_to_user'] = $ev['dateline_to'] + $offset * 3600; $recuroption = substr($ev['recuroption'], 2); $event['holiday2']["{$recuroption}"][] = $ev; } } } } $events = $vbulletin->db->query_read_slave("\n\t\tSELECT event.*,\n\t\tuser.username, IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid,\n\t\tIF(dateline_to = 0, 1, 0) AS singleday\n\t\t" . iif($vbulletin->userinfo['userid'], ", subscribeevent.eventid AS subscribed") . "\n\t\tFROM " . TABLE_PREFIX . "event AS event\n\t\tLEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = event.userid)\n\t\t" . iif($vbulletin->userinfo['userid'], "LEFT JOIN " . TABLE_PREFIX . "subscribeevent AS subscribeevent ON (subscribeevent.eventid = event.eventid AND subscribeevent.userid = " . $vbulletin->userinfo['userid'] . ")") . "\n\t\tWHERE calendarid = {$calendarinfo['calendarid']} AND\n\t\t\t((dateline_to >= {$beginday} AND dateline_from < {$endday}) OR (dateline_to = 0 AND dateline_from >= {$beginday} AND dateline_from <= {$endday} ))\tAND\n\t\t\tvisible = 1\n\t\tORDER BY dateline_from\n\t"); // Cache Events if ($vbulletin->db->num_rows($events)) { while ($ev = $vbulletin->db->fetch_array($events)) { if ($ev['userid'] != $vbulletin->userinfo['userid'] and !($vbulletin->userinfo['calendarpermissions']["{$calendarinfo['calendarid']}"] & $vbulletin->bf_ugp_calendarpermissions['canviewothersevent'])) { continue; } $ev['preview'] = strip_quotes($ev['event']); $ev['preview'] = htmlspecialchars_uni(strip_bbcode(fetch_trimmed_title($ev['preview'], 300), false, true)); $offset = $ev['dst'] ? $vbulletin->userinfo['timezoneoffset'] : $vbulletin->userinfo['tzoffset']; $ev['dateline_from_user'] = $ev['dateline_from'] + $offset * 3600; $ev['dateline_to_user'] = $ev['dateline_to'] + $offset * 3600; fetch_musername($ev); if (!$ev['recurring']) { if ($ev['singleday']) { $event['singleday']["{$ev['dateline_from']}"][] = $ev; } else { $found = false; $date = explode('-', gmdate('n-j-Y', $ev['dateline_from_user'])); $beginday = gmmktime(0, 0, 0, $date[0], $date[1], $date[2]); while ($beginday <= $ev['dateline_to_user']) { if (!$found) { $event['ranged']["{$beginday}"][] = $ev; $count = count($event['ranged']["{$beginday}"]) - 1; $tempevent =& $event['ranged']["{$beginday}"]["{$count}"]; $found = true; } else { // if event ends at the start of the day, don't display it for that day if ($ev['dateline_to_user'] != $beginday) { $event['ranged']["{$beginday}"][] =& $tempevent; } } $beginday += 86400; } } } else { $event['recurring'][] = $ev; } } } return $event; }
protected function process_ini($value) { if (!strlen($value)) { return; } $parsed_ini = parse_ini($value); foreach ($parsed_ini as $section) { if (!is_array($section)) { continue; } if (nonempty($section["host"]) && nonempty($section["uid"]) && nonempty($section["pwd"])) { // detect connection type $conntype = assign($section["conntype"]); switch ($conntype) { //case "3": $conntype = "ftpes://"; break; case "4": $conntype = "sftp://"; break; //case "5": $conntype = "ftps://"; break; //case "5": $conntype = "ftps://"; break; default: $conntype = "ftp://"; break; } $host = strip_quotes($section["host"]); $user = strip_quotes($section["uid"]); $pass = $this->decrypt(strip_quotes($section["pwd"])); $this->add_ftp($conntype . append_port_dir($host, $section["port"], $section["dir"]), $user, $pass); } } }
/** * returns a BenchmarkDb object based on command line arguments. returns NULL * if there are any problems with the command line arguments * @return BenchmarkDb */ public static function &getDb() { $db = NULL; $options = parse_args(array('db:', 'db_and_csv:', 'db_callback_header:', 'db_host:', 'db_librato_aggregate', 'db_librato_color:', 'db_librato_count:', 'db_librato_description:', 'db_librato_display_max:', 'db_librato_display_min:', 'db_librato_display_name:', 'db_librato_display_units_long:', 'db_librato_display_units_short:', 'db_librato_display_stacked', 'db_librato_display_transform:', 'db_librato_max:', 'db_librato_min:', 'db_librato_measure_time:', 'db_librato_name:', 'db_librato_period:', 'db_librato_source:', 'db_librato_sum:', 'db_librato_summarize_function:', 'db_librato_sum_squares:', 'db_librato_type:', 'db_librato_value:', 'db_mysql_engine:', 'db_name:', 'db_port:', 'db_pswd:', 'db_prefix:', 'db_suffix:', 'db_user:'******'output:', 'params_file:', 'remove:', 'skip_validations', 'store:', 'v' => 'verbose'), $aparams = array('db_librato_aggregate', 'db_librato_color', 'db_librato_count', 'db_librato_description', 'db_librato_display_max', 'db_librato_display_min', 'db_librato_display_name', 'db_librato_display_units_long', 'db_librato_display_units_short', 'db_librato_display_stacked', 'db_librato_display_transform', 'db_librato_max', 'db_librato_min', 'db_librato_measure_time', 'db_librato_name', 'db_librato_period', 'db_librato_source', 'db_librato_sum', 'db_librato_summarize_function', 'db_librato_sum_squares', 'db_librato_type', 'db_librato_value', 'remove'), 'save_'); // merge settings with config file $cfile = BenchmarkDb::BENCHMARK_DB_CONFIG_FILE; if (isset($options['params_file']) && !file_exists($options['params_file']) && !file_exists($options['params_file'] = trim(shell_exec('pwd')) . '/' . $options['params_file'])) { print_msg(sprintf('--params_file %s is not a valid file', $options['params_file']), TRUE, __FILE__, __LINE__, TRUE); } else { if (isset($options['params_file'])) { $cfile = $options['params_file']; } } merge_options_with_config($options, $cfile); // convert array parameters found in config file foreach ($aparams as $aparam) { if (isset($options[$aparam]) && !is_array($options[$aparam])) { $p = array(); foreach (explode(',', $options[$aparam]) as $v) { if (preg_match('/^"(.*)"$/', $v) || preg_match("/^'(.*)'\$/", $v)) { $p[] = strip_quotes($v); } else { foreach (explode(' ', trim($v)) as $v) { $p[] = trim($v); } } } $options[$aparam] = $p; } } if (!isset($options['remove'])) { $options['remove'] = array(); } // output directory if (!isset($options['output'])) { $options['output'] = trim(shell_exec('pwd')); } // default table suffix if (!isset($options['db_suffix']) && ($ini = get_benchmark_ini()) && isset($ini['meta-version'])) { $options['db_suffix'] = '_' . str_replace('.', '_', $ini['meta-version']); } $impl = 'BenchmarkDb'; if (isset($options['db'])) { switch ($options['db']) { case 'bigquery': $impl .= 'BigQuery'; break; case 'callback': $impl .= 'Callback'; break; case 'librato': $impl .= 'Librato'; break; case 'mysql': $impl .= 'MySql'; break; case 'postgresql': $impl .= 'PostgreSql'; break; default: $err = '--db ' . $options['db'] . ' is not valid'; break; } // invalid --db argument if (isset($err)) { print_msg($err, isset($options['verbose']), __FILE__, __LINE__, TRUE); return $db; } } if ($impl != 'BenchmarkDb') { require_once sprintf('%s/%s.php', dirname(__FILE__), $impl); } $db = new $impl($options); $db->options = $options; $db->dir = $options['output']; if (!$db->validateDependencies()) { $db = NULL; } else { if (!isset($options['skip_validations']) && !$db->validate()) { $db = NULL; } } if ($db && isset($options['store'])) { require_once 'BenchmarkArchiver.php'; $db->archiver =& BenchmarkArchiver::getArchiver(); if (!$db->archiver) { $db = NULL; } } return $db; }
/** * Prepares pm array for use in replies. * * @param integer $pmid - The pm being replied to * @returns array mixed - The normalized pm info array */ function fetch_privatemessage_reply($pm) { global $vbulletin, $vbphrase; if ($pm) { ($hook = vBulletinHook::fetch_hook('private_fetchreply_start')) ? eval($hook) : false; // quote reply $originalposter = fetch_quote_username($pm['fromusername']); // allow quotes to remain with an optional request variable // this will fix a problem with forwarded PMs and replying to them if ($vbulletin->GPC['stripquote']) { $pagetext = strip_quotes($pm['message']); } else { // this is now the default behavior -- leave quotes, like vB2 $pagetext = $pm['message']; } $pagetext = trim(htmlspecialchars_uni($pagetext)); $templater = vB_Template::create('newpost_quote'); $templater->register('originalposter', $originalposter); $templater->register('pagetext', $pagetext); $pm['message'] = $templater->render(true); // work out FW / RE bits if (preg_match('#^' . preg_quote($vbphrase['forward_prefix'], '#') . '(\\s+)?#i', $pm['title'], $matches)) { $pm['title'] = substr($pm['title'], strlen($vbphrase['forward_prefix']) + (isset($matches[1]) ? strlen($matches[1]) : 0)); } else { if (preg_match('#^' . preg_quote($vbphrase['reply_prefix'], '#') . '(\\s+)?#i', $pm['title'], $matches)) { $pm['title'] = substr($pm['title'], strlen($vbphrase['reply_prefix']) + (isset($matches[1]) ? strlen($matches[1]) : 0)); } else { $pm['title'] = preg_replace('#^[a-z]{2}:#i', '', $pm['title']); } } $pm['title'] = trim($pm['title']); if ($vbulletin->GPC['forward']) { $pm['title'] = $vbphrase['forward_prefix'] . " {$pm['title']}"; $pm['recipients'] = ''; $pm['forward'] = 1; } else { $pm['title'] = $vbphrase['reply_prefix'] . " {$pm['title']}"; $pm['recipients'] = $pm['fromusername'] . ' ; '; $pm['forward'] = 0; } ($hook = vBulletinHook::fetch_hook('private_newpm_reply')) ? eval($hook) : false; } else { eval(standard_error(fetch_error('invalidid', $vbphrase['private_message'], $vbulletin->options['contactuslink']))); } return $pm; }