Example #1
0
     $postpreview =& $preview;
     $pm['recipients'] =& htmlspecialchars_uni($pm['recipients']);
     if (!empty($pm['bccrecipients'])) {
         $pm['bccrecipients'] =& htmlspecialchars_uni($pm['bccrecipients']);
     } 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)) {
Example #2
0
/**
* 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;
}
Example #3
0
		$newpost['message'] = convert_wysiwyg_html_to_bbcode($vbulletin->GPC['message'], $foruminfo['allowhtml']);
	}
	else
	{
		$newpost['message'] = $vbulletin->GPC['message'];
	}

	if ($vbulletin->GPC['ajax'])
	{
		// posting via ajax so we need to handle those %u0000 entries
		$newpost['message'] = convert_urlencoded_unicode($newpost['message']);
	}

	if ($vbulletin->GPC['quickreply'])
	{
		$originalposter = fetch_quote_username($postinfo['username'] . ";$postinfo[postid]");
		$pagetext = trim(strip_quotes($postinfo['pagetext']));

		($hook = vBulletinHook::fetch_hook('newreply_post_quote')) ? eval($hook) : false;

		$templater = vB_Template::create('newpost_quote');
			$templater->register('originalposter', $originalposter);
			$templater->register('pagetext', $pagetext);
		$quotemessage = $templater->render(true);

		$newpost['message'] = trim($quotemessage) . "\n$newpost[message]";
	}

	if ($vbulletin->GPC['fromquickreply'])
	{
		// We only add notifications to threads that don't have one if the user defaults to it, do nothing else!
Example #4
0
/**
 * 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;
}
Example #5
0
     standard_error(fetch_error('session_timed_out_login'), '', false, 'STANDARD_ERROR_LOGIN');
 }
 ($hook = vBulletinHook::fetch_hook('newreply_post_start')) ? eval($hook) : false;
 // ### PREP INPUT ###
 if ($vbulletin->GPC['wysiwyg']) {
     require_once DIR . '/includes/functions_wysiwyg.php';
     $newpost['message'] = convert_wysiwyg_html_to_bbcode($vbulletin->GPC['message'], $foruminfo['allowhtml']);
 } else {
     $newpost['message'] = $vbulletin->GPC['message'];
 }
 if ($vbulletin->GPC['ajax']) {
     // posting via ajax so we need to handle those %u0000 entries
     $newpost['message'] = convert_urlencoded_unicode($newpost['message']);
 }
 if ($vbulletin->GPC['quickreply']) {
     $originalposter = fetch_quote_username($postinfo['username'] . ";{$postinfo['postid']}");
     $pagetext = trim(strip_quotes($postinfo['pagetext']));
     ($hook = vBulletinHook::fetch_hook('newreply_post_quote')) ? eval($hook) : false;
     eval('$quotemessage = "' . fetch_template('newpost_quote', 0, false) . '";');
     $newpost['message'] = trim($quotemessage) . "\n{$newpost['message']}";
 }
 if ($vbulletin->GPC['fromquickreply']) {
     // We only add notifications to threads that don't have one if the user defaults to it, do nothing else!
     if ($vbulletin->userinfo['autosubscribe'] != -1 and !$threadinfo['issubscribed']) {
         $vbulletin->GPC['folderid'] = 0;
         $vbulletin->GPC['emailupdate'] = $vbulletin->userinfo['autosubscribe'];
     } else {
         if ($threadinfo['issubscribed']) {
             // Don't alter current settings
             $vbulletin->GPC['folderid'] = $threadinfo['folderid'];
             $vbulletin->GPC['emailupdate'] = $threadinfo['emailupdate'];
Example #6
0
/**
* Fetches the note to be quoted and modifies it as appropriate. Determines
* if this message should be private based on the quoted note.
*
* @param	integer	Note to quote
* @param	integer	Issue being responded to/issue the note is in
* @param	array	Permissions for this issue
* @param	bool	(Output) Whether the quoted note is private
*
* @return	string	Quoted note (ready for passing into editor functions)
*/
function fetch_pt_quoted_note($quotenoteid, $issueid, $issueperms, &$quoted_private)
{
    global $vbulletin, $db, $show, $stylevar, $vbphrase, $template_hook;
    $viewable_note_types = fetch_viewable_note_types($issueperms, $private_text);
    $quotenote = $db->query_first("\r\n\t\tSELECT *\r\n\t\tFROM " . TABLE_PREFIX . "pt_issuenote AS issuenote\r\n\t\tWHERE issuenoteid = {$quotenoteid}\r\n\t\t\tAND issueid = {$issueid}\r\n\t\t\tAND (visible IN (" . implode(',', $viewable_note_types) . "){$private_text})\r\n\t\t\tAND type IN ('user', 'petition')\r\n\t");
    if ($quotenote) {
        // new post with a quote
        $quoted_private = $quotenote['visible'] == 'private';
        require_once DIR . '/includes/functions_newpost.php';
        $originalposter = fetch_quote_username($quotenote['username']);
        $quote_text = trim(strip_quotes($quotenote['pagetext']));
        eval('$pagetext = "' . fetch_template('pt_postreply_quote', 0, false) . '\\n";');
        return $pagetext;
    } else {
        $quoted_private = false;
        return '';
    }
}
Example #7
0
function do_post_reply()
{
    global $vbulletin, $db, $foruminfo, $forumperms, $threadinfo, $postinfo, $vbphrase;
    global $permissions;
    if (!$threadinfo && !$postinfo) {
        json_error(ERR_INVALID_TOP, RV_POST_ERROR);
    }
    if (!$foruminfo['forumid']) {
        json_error(ERR_INVALID_FORUM, RV_POST_ERROR);
    }
    // ### CHECK IF ALLOWED TO POST ###
    if ($threadinfo['isdeleted'] or !$threadinfo['visible'] and !can_moderate($threadinfo['forumid'], 'canmoderateposts')) {
        json_error(strip_tags(fetch_error('invalidid', $vbphrase['thread'], $vbulletin->options['contactuslink'])), RV_POST_ERROR);
    }
    if (!$foruminfo['allowposting'] or $foruminfo['link'] or !$foruminfo['cancontainthreads']) {
        eval(standard_error(fetch_error('forumclosed')));
    }
    if (!$threadinfo['open']) {
        if (!can_moderate($threadinfo['forumid'], 'canopenclose')) {
            eval(standard_error(fetch_error('threadclosed')));
        }
    }
    $forumperms = fetch_permissions($foruminfo['forumid']);
    if (($vbulletin->userinfo['userid'] != $threadinfo['postuserid'] or !$vbulletin->userinfo['userid']) and (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) or !($forumperms & $vbulletin->bf_ugp_forumpermissions['canreplyothers']))) {
        json_error(ERR_NO_PERMISSION, RV_POST_ERROR);
    }
    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']) {
        json_error(ERR_NO_PERMISSION, RV_POST_ERROR);
    }
    // check if there is a forum password and if so, ensure the user has it set
    verify_forum_password($foruminfo['forumid'], $foruminfo['password']);
    // *********************************************************************************
    // Tachy goes to coventry
    if (in_coventry($threadinfo['postuserid']) and !can_moderate($threadinfo['forumid'])) {
        json_error(strip_tags(fetch_error('invalidid', $vbphrase['thread'], $vbulletin->options['contactuslink'])), RV_POST_ERROR);
    }
    ($hook = vBulletinHook::fetch_hook('newreply_start')) ? eval($hook) : false;
    // Variables reused in templates
    $poststarttime =& $vbulletin->input->clean_gpc('r', poststarttime, TYPE_UINT);
    $posthash = md5($vbulletin->GPC['poststarttime'] . $vbulletin->userinfo['userid'] . $vbulletin->userinfo['salt']);
    $vbulletin->input->clean_array_gpc('p', array('wysiwyg' => TYPE_BOOL, 'message' => TYPE_STR, 'quickreply' => TYPE_BOOL, 'fromquickreply' => TYPE_BOOL, 'ajaxqrfailed' => TYPE_BOOL, 'folderid' => TYPE_UINT, 'emailupdate' => TYPE_UINT, 'subscribe' => TYPE_BOOL, 'title' => TYPE_STR, 'iconid' => TYPE_UINT, 'parseurl' => TYPE_BOOL, 'signature' => TYPE_BOOL, 'preview' => TYPE_STR, 'disablesmilies' => TYPE_BOOL, 'username' => TYPE_STR, 'rate' => TYPE_BOOL, 'rating' => TYPE_UINT, 'stickunstick' => TYPE_BOOL, 'openclose' => TYPE_BOOL, 'ajax' => TYPE_BOOL, 'ajax_lastpost' => TYPE_INT, 'loggedinuser' => TYPE_INT, 'humanverify' => TYPE_ARRAY, 'multiquoteempty' => TYPE_NOHTML, 'specifiedpost' => TYPE_BOOL, 'return_node' => TYPE_INT, 'sig' => TYPE_STR));
    if ($vbulletin->GPC['message']) {
        $vbulletin->GPC['message'] = prepare_remote_utf8_string($vbulletin->GPC['message']);
    }
    if ($vbulletin->GPC['subject']) {
        $vbulletin->GPC['subject'] = prepare_remote_utf8_string($vbulletin->GPC['subject']);
    }
    if ($vbulletin->userinfo['autosubscribe'] != -1 and !$threadinfo['issubscribed']) {
        $vbulletin->GPC['folderid'] = 0;
        $vbulletin->GPC_exists['folderid'] = true;
        $vbulletin->GPC['emailupdate'] = $vbulletin->userinfo['autosubscribe'];
        $vbulletin->GPC_exists['emailupdate'] = true;
    } else {
        if ($threadinfo['issubscribed']) {
            // Don't alter current settings
            $vbulletin->GPC['folderid'] = $threadinfo['folderid'];
            $vbulletin->GPC_exists['folderid'] = true;
            $vbulletin->GPC['emailupdate'] = $threadinfo['emailupdate'];
            $vbulletin->GPC_exists['emailupdate'] = true;
        } else {
            // Don't don't add!
            $vbulletin->GPC['emailupdate'] = 9999;
            $vbulletin->GPC_exists['emailupdate'] = true;
        }
    }
    if ($vbulletin->options['forumrunner_signature'] && $vbulletin->GPC['sig']) {
        $vbulletin->GPC['message'] .= "\n\n" . prepare_remote_utf8_string($vbulletin->GPC['sig']);
    }
    $vbulletin->GPC['signature'] = $vbulletin->GPC_exists['signature'] = true;
    if ($vbulletin->GPC['loggedinuser'] != 0 and $vbulletin->userinfo['userid'] == 0) {
        // User was logged in when writing post but isn't now. If we got this
        // far, guest posts are allowed, but they didn't enter a username so
        // they'll get an error. Force them to log back in.
        json_error(ERR_LOGGED_OUT, RV_POST_ERROR);
    }
    ($hook = vBulletinHook::fetch_hook('newreply_post_start')) ? eval($hook) : false;
    // ### PREP INPUT ###
    if ($vbulletin->GPC['wysiwyg']) {
        require_once DIR . '/includes/functions_wysiwyg.php';
        $newpost['message'] = convert_wysiwyg_html_to_bbcode($vbulletin->GPC['message'], $foruminfo['allowhtml']);
    } else {
        $newpost['message'] = $vbulletin->GPC['message'];
    }
    if ($vbulletin->GPC['ajax']) {
        // posting via ajax so we need to handle those %u0000 entries
        $newpost['message'] = convert_urlencoded_unicode($newpost['message']);
    }
    if ($vbulletin->GPC['quickreply']) {
        $originalposter = fetch_quote_username($postinfo['username'] . ";{$postinfo['postid']}");
        $pagetext = trim(strip_quotes($postinfo['pagetext']));
        ($hook = vBulletinHook::fetch_hook('newreply_post_quote')) ? eval($hook) : false;
        $templater = vB_Template::create('newpost_quote');
        $templater->register('originalposter', $originalposter);
        $templater->register('pagetext', $pagetext);
        $quotemessage = $templater->render(true);
        $newpost['message'] = trim($quotemessage) . "\n{$newpost['message']}";
    }
    if (isset($vbulletin->options['vbcmsforumid']) and $foruminfo['forumid'] == $vbulletin->options['vbcmsforumid']) {
        $expire_cache = array('cms_comments_change');
        if ($threadinfo['threadid']) {
            $expire_cache[] = 'cms_comments_thread_' . intval($threadinfo['threadid']);
        }
        vB_Cache::instance()->event($expire_cache);
        vB_Cache::instance()->event('cms_comments_change_' . $threadinfo['threadid']);
        vB_Cache::instance()->cleanNow();
    }
    $newpost['title'] =& $vbulletin->GPC['title'];
    $newpost['iconid'] =& $vbulletin->GPC['iconid'];
    $newpost['parseurl'] = ($vbulletin->options['allowedbbcodes'] & ALLOW_BBCODE_URL and $foruminfo['allowbbcode']);
    $newpost['signature'] =& $vbulletin->GPC['signature'];
    $newpost['preview'] =& $vbulletin->GPC['preview'];
    $newpost['disablesmilies'] =& $vbulletin->GPC['disablesmilies'];
    $newpost['rating'] =& $vbulletin->GPC['rating'];
    $newpost['rate'] =& $newpost['rating'];
    $newpost['username'] =& $vbulletin->GPC['username'];
    $newpost['folderid'] =& $vbulletin->GPC['folderid'];
    $newpost['quickreply'] =& $vbulletin->GPC['quickreply'];
    $newpost['poststarttime'] =& $poststarttime;
    $newpost['posthash'] =& $posthash;
    $newpost['humanverify'] =& $vbulletin->GPC['humanverify'];
    // moderation options
    $newpost['stickunstick'] =& $vbulletin->GPC['stickunstick'];
    $newpost['openclose'] =& $vbulletin->GPC['openclose'];
    $newpost['subscribe'] =& $vbulletin->GPC['subscribe'];
    $newpost['ajaxqrfailed'] = $vbulletin->GPC['ajaxqrfailed'];
    if ($vbulletin->GPC['ajax'] and $newpost['username']) {
        if ($newpost['username']) {
            $newpost['username'] = convert_urlencoded_unicode($newpost['username']);
        }
    }
    if ($vbulletin->GPC_exists['emailupdate']) {
        $newpost['emailupdate'] =& $vbulletin->GPC['emailupdate'];
    } else {
        $newpost['emailupdate'] = array_pop($array = array_keys(fetch_emailchecked($threadinfo, $vbulletin->userinfo)));
    }
    if ($vbulletin->GPC['specifiedpost'] and $postinfo) {
        $postinfo['specifiedpost'] = true;
    }
    fr_build_new_post('reply', $foruminfo, $threadinfo, $postinfo, $newpost, $errors);
    if (sizeof($errors) > 0) {
        fr_standard_error($errors[0]);
    }
    return array('success' => true);
}
Example #8
0
			$notification = array($bloginfo['emailupdate'] => 'selected="selected"');
		}
		else
		{
			$notification = array($vbulletin->userinfo['blog_subscribeothers'] => 'selected="selected"');
		}

		// Handle Quote
		if ($blogtextinfo)
		{
			$title = unhtmlspecialchars($blogtextinfo['title']);
			$title = preg_replace('#^(' . preg_quote($vbphrase['reply_prefix'], '#') . '\s*)+#i', '', $title);
			$title = htmlspecialchars_uni(vbchop($title, $vbulletin->options['titlemaxchars']));

			require_once(DIR . '/includes/functions_newpost.php');
			$originalposter = fetch_quote_username($blogtextinfo['username'] . ";bt$blogtextinfo[blogtextid]");
			$pagetext = trim(strip_quotes(htmlspecialchars_uni($blogtextinfo['pagetext'])));

			$templater = vB_Template::create('blog_blogpost_quote');
				$templater->register('originalposter', $originalposter);
				$templater->register('pagetext', $pagetext);
			$blog['message'] = $templater->render(true);
		}
		unset($blogtextinfo);
	}

	($hook = vBulletinHook::fetch_hook('blog_post_comment_start')) ? eval($hook) : false;

	$bloginfo['title_trimmed'] = fetch_trimmed_title($bloginfo['title']);

	$editorid = construct_edit_toolbar(
Example #9
0
     $notification = array($vbulletin->GPC['emailupdate'] => 'selected="selected"');
     $previewpost = true;
 } else {
     // defaults in here if we're doing a quote etc
     if ($bloginfo['issubscribed']) {
         $notification = array($bloginfo['emailupdate'] => 'selected="selected"');
     } else {
         $notification = array($vbulletin->userinfo['blog_subscribeothers'] => 'selected="selected"');
     }
     // Handle Quote
     if ($blogtextinfo) {
         $title = unhtmlspecialchars($blogtextinfo['title']);
         $title = preg_replace('#^(' . preg_quote($vbphrase['reply_prefix'], '#') . '\\s*)+#i', '', $title);
         $title = htmlspecialchars_uni(vbchop($title, $vbulletin->options['titlemaxchars']));
         require_once DIR . '/includes/functions_newpost.php';
         $originalposter = fetch_quote_username($blogtextinfo['username'] . ";bt{$blogtextinfo['blogtextid']}");
         $pagetext = trim(strip_quotes(htmlspecialchars_uni($blogtextinfo['pagetext'])));
         $templater = vB_Template::create('blog_blogpost_quote');
         $templater->register('originalposter', $originalposter);
         $templater->register('pagetext', $pagetext);
         $blog['message'] = $templater->render(true);
     }
     unset($blogtextinfo);
 }
 ($hook = vBulletinHook::fetch_hook('blog_post_comment_start')) ? eval($hook) : false;
 $bloginfo['title_trimmed'] = fetch_trimmed_title($bloginfo['title']);
 $editorid = construct_edit_toolbar($blog['message'], false, 'blog_comment', $vbulletin->userinfo['permissions']['vbblog_comment_permissions'] & $vbulletin->bf_ugp_vbblog_comment_permissions['blog_allowsmilies'], true, false, 'fe');
 $usernamecode = vB_Template::create('newpost_usernamecode')->render();
 // image verification
 $human_verify = '';
 if (fetch_require_hvcheck('post')) {