require_once DIR . '/includes/blog_functions_usercp.php'; $blockinfo = verify_blog_customblock($vbulletin->GPC['cp'], 'page'); if ($blockinfo['type'] == 'block' and !$blockinfo['userinfo']['permissions']['vbblog_customblocks'] or $blockinfo['type'] == 'page' and !$blockinfo['userinfo']['permissions']['vbblog_custompages']) { if (!can_moderate_blog('caneditcustomblocks')) { print_no_permission(); } $show['reportlink'] = false; } else { $show['reportlink'] = true; } track_blog_visit($blockinfo['userinfo']['userid']); $show['reportlink'] = ($show['reportlink'] and $vbulletin->userinfo['userid'] and ($vbulletin->options['rpforumid'] or $vbulletin->options['enableemail'] and $vbulletin->options['rpemail'])); $show['edit'] = (can_moderate_blog('caneditcustomblocks') or $vbulletin->userinfo['userid'] == $blockinfo['userid']); // Parse Content here require_once DIR . '/includes/class_bbcode_blog.php'; $bbcode = new vB_BbCodeParser_Blog($vbulletin, fetch_tag_list()); $bbcode->set_parse_userinfo($blockinfo['userinfo'], $blockinfo['userinfo']['permissions']); $blockinfo['page'] = $bbcode->parse($blockinfo['pagetext'], 'blog_user', $blockinfo['allowsmilie'] ? 1 : 0); $blogheader = parse_blog_description($blockinfo['userinfo'], $blockinfo); $sidebar =& build_user_sidebar($blockinfo['userinfo']); $navbits[] = $blockinfo['title']; $templater = vB_Template::create('blog_custompage'); $templater->register('blogheader', $blogheader); $templater->register('blockinfo', $blockinfo); $content = $templater->render(); } // build navbar if (empty($navbits)) { $navbits = array('blog.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['blogs'], '' => ''); } else { $navbits = array_merge(array('blog.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['blogs']), $navbits);
/** * Parse message content for preview * * @param array Message and disablesmilies options * @param string Parse Type (user, post or comment) */ function process_blog_preview($blog, $type, $attachments = NULL) { global $vbulletin, $vbphrase, $show; require_once(DIR . '/includes/class_bbcode_blog.php'); $bbcode_parser = new vB_BbCodeParser_Blog($vbulletin, fetch_tag_list()); $bbcode_parser->set_parse_userinfo($vbulletin->userinfo, $vbulletin->userinfo['permissions']); $bbcode_parser->attachments = $attachments; $postpreview = ''; if ($previewmessage = $bbcode_parser->parse( $blog['message'], 'blog_' . $type, $blog['disablesmilies'] ? 0 : 1, false, '', 3, false, $blog['htmlstate'] )) { switch ($type) { case 'user': $templater = vB_Template::create('blog_cp_modify_profile_preview'); $templater->register('errorlist', $errorlist); $templater->register('newpost', $newpost); $templater->register('previewmessage', $previewmessage); $postpreview = $templater->render(); break; case 'entry': case 'comment': case 'usercomment': $templater = vB_Template::create('blog_entry_editor_preview'); $templater->register('blog', $blog); $templater->register('previewmessage', $previewmessage); $postpreview = $templater->render(); break; } } return $postpreview; }
/** * Parses the user's blog description * * @param array $userinfo array from fetch_userinfo() * * @return array */ function parse_blog_description(&$userinfo, $blockinfo = null) { global $vbphrase, $vbulletin, $show; $blogheader = array(); require_once(DIR . '/includes/class_bbcode_blog.php'); $bbcode = new vB_BbCodeParser_Blog($vbulletin, fetch_tag_list()); $bbcode->set_parse_userinfo($userinfo, $userinfo['permissions']); $blogheader['title'] = $userinfo['blog_title']; $blogheader['userid'] = $userinfo['bloguserid']; if (!empty($userinfo['blog_description'])) { require_once(DIR . '/includes/class_blog_response.php'); $blogheader['description'] = $bbcode->parse($userinfo['blog_description'], 'blog_user', $userinfo['blog_allowsmilie'] ? 1 : 0); } if (!empty($userinfo['custompages']['top']) AND $userinfo['permissions']['vbblog_custompages']) { $count = 1; foreach ($userinfo['custompages']['top'] AS $page) { $show['cplink'] = (!$blockinfo OR $blockinfo['customblockid'] != $page['i']); if (!$show['cplink']) { $show['cpbloglink'] = true; } $show['divider'] = ($count != count($userinfo['custompages']['top'])); $templater = vB_Template::create('blog_header_custompage_link'); $templater->register('page', $page); $blogheader['custompages'] .= $templater->render(); $count++; } } return $blogheader; }
/** * Parses out specific white space before or after certain tags and does nl2br * This function is extended to handle creating snippets when bbcode is disabled. * * @param string Text to process * @param bool Whether to translate newlines to <br /> tags * * @return string Processed text */ function parse_whitespace_newlines($text, $do_nl2br) { $text = parent::parse_whitespace_newlines($text, $do_nl2br); $do_bbcode = ($this->parse_userinfo['permissions']['vbblog_entry_permissions'] & $this->registry->bf_ugp_vbblog_entry_permissions['blog_allowbbcode']); if (!$do_bbcode AND $this->snippet_length > 0 AND ($length = strlen($text)) > $this->snippet_length) { $last_char_pos = $this->snippet_length - 1; if (preg_match('#\s#s', $text, $match, PREG_OFFSET_CAPTURE, $last_char_pos)) { $text = substr($text, 0, $match[0][1]); // chop to offset of whitespace } else { $text = substr($text, 0, $this->snippet_length); } if (substr($text, -3) == '<br') { // we cut off a <br /> code, so just take this out $text = substr($text, 0, -3); } $this->createdsnippet = true; } else { $this->createdsnippet = false; } return $text; }