public function getPageTitle() { if (!$this->pagelist) { $bbcode_parser = new vBCms_BBCode_HTML(vB::$vbulletin, vBCms_BBCode_HTML::fetchCmsTags()); $bbcode_parser->setOutputPage($this->parameters['page']); $this->pagelist = $bbcode_parser->getPageTitles(); } if ((count($this->pagelist) > 1) AND isset($this->pagelist[$this->parameters['page']])) { return $this->content->getHtmlTitle() . '--' . $this->pagelist[$this->parameters['page']]; } return $this->content->getHtmlTitle(); }
public function getRendered($forceload = false) { $context = new vB_Context($this->package . '_' . $this->class . '_pagetext_' , array( 'nodeid' => $this->nodeid, 'permissions' => vB::$vbulletin->userinfo['permissions']['cms'])); $hashkey = strval($context); if (!$forceload AND ($rendered = vB_Cache::instance()->read($hashkey, true, true))) { return $rendered; } $this->Load(self::INFO_CONTENT); $bbcode_parser = new vBCms_BBCode_HTML(vB::$vbulletin, vBCms_BBCode_HTML::fetchCmsTags()); $bbcode_parser->setCanDownload($this->canDownload()); $pages = array(); // Articles will generally have an attachment but they should still keep a counter so that this query isn't always running require_once(DIR . '/packages/vbattach/attach.php'); if ($this->canDownload()) { $viewinfo = array(); $attach = new vB_Attach_Display_Content(vB::$vbulletin, 'vBCms_Article'); $attachments = $attach->fetch_postattach(0, $this->nodeid); $bbcode_parser->attachments = $attachments; $bbcode_parser->unsetattach = true; } $validpage = true; $pageno = 1; require_once DIR . '/includes/functions.php'; while($validpage) { $bbcode_parser->setOutputPage($pageno); $pagetext = fetch_censored_text($bbcode_parser->do_parse( $this->pagetext, vBCMS_Permissions::canUseHtml($this->nodeid, $this->contenttypeid, $this->userid), $this->htmlstate )); $validpage = $bbcode_parser->fetchedValidPage(); if ($pageno == 1) { $pagelist = $bbcode_parser->getPageTitles(); } if ($validpage) { $pages[$pageno] = $pagetext; } $pageno++; } if ($this->canDownload()) { $attach->process_attachments($viewinfo, $bbcode_parser->attachments, false, false, true, false, true); } $rendered = array('pages' => $pages, 'attachments' => $bbcode_parser->attachments, 'viewinfo' => $viewinfo, 'pagelist' => $pagelist); vB_Cache::instance()->write($hashkey , $rendered, 1440, array_merge($this->getCacheEvents(), array($this->getContentCacheEvent()))); //If we updated the page text we need to also update the preview. $this->getPreviewText(true); return $rendered; }