/** * Main entry point for the controller. * * @return string - The final page output */ public function getResponse() { // Register the templater to be used for XHTML vB_View::registerTemplater(vB_View::OT_XHTML, new vB_Templater_vB()); $error = vB_Router::getSegment('error'); // Resolve rerouted error $error = in_array($error, array('403', '404', '409', '500')) ? $error : '404'; $current_page = $_SERVER['SCRIPT_NAME'] . ($_SERVER['SCRIPT_NAME'] == '' ? '' : '?' . $_SERVER['QUERY_STRING']); if ('403' == $error) { define('WOLPATH', '403|cpglobal|403_error|' . new vB_Phrase('wol', 'viewing_no_permission_message')); vB::$vbulletin->session->set('location', $current_page); print_no_permission(); } else if ('409' == $error) { $message = ($message = vB_Router::getRerouteMessage()) ? $message : new vB_Phrase('error', 'error_409_description', vB_Router::getInitialURL(), vB_Router::getBaseURL(), vB::$vbulletin->options['contactuslink']); define('WOLPATH', '409|wol|' . new vB_Phrase('cpglobal', 'error') . "|$message"); vB::$vbulletin->session->set('location', $current_page); standard_error($message); } else if ('500' == $error) { $message = new vB_Phrase('error', 'error_500_description', vB_Router::getInitialURL(), vB_Router::getBaseURL(), vB::$vbulletin->options['contactuslink']); define('WOLPATH', '500|wol|' . new vB_Phrase('cpglobal', 'error') . "|$message"); vB::$vbulletin->session->set('location', $current_page); standard_error($message); } else { $message = new vB_Phrase('error', 'error_404_description', vB_Router::getBaseURL(), vB::$vbulletin->options['contactuslink']); define('WOLPATH', '404|wol|' . new vB_Phrase('cpglobal', 'error') . "|$message"); vB::$vbulletin->session->set('location', $current_page); } // Create the page view $page_view = new vB_View_Page('page'); $title = new vB_Phrase('error', 'error_404'); $page_view->setPageTitle($title); // Create the body view $error_view = new vB_View('error_message'); $subtitle = ($title != ($subtitle = vB_Router::getRerouteMessage())) ? $subtitle : false; $error_view->title = $title; $error_view->subtitle = $subtitle; $error_view->message = new vB_Phrase('error', 'error_404_description', vB_Router::getBaseURL(), vB::$vbulletin->options['contactuslink']); $page_view->setBodyView($error_view); // Add general page info $page_view->setPageTitle($title); return $page_view->render(); }
/** * Prepares the legacy output. * Registers the globals required for the legacy output such as the header, * footer and navbar. */ protected function prepareLegacyPage() { // Make the legacy globals available to the template global $headinclude, $header, $navbar, $footer, $style; $this->headinclude = $headinclude; $this->header = $header; $this->footer = $footer; $this->style = $style; $this->_properties['pagetitle'] = (vB::$vbulletin->options['cmstitle'] ? vB::$vbulletin->options['cmstitle'] : vB::$vbulletin->options['bbtitle']) . ' - ' . $this->pagetitle; $this->_properties['head_views'] = $this->head_views; $this->_properties['body_views'] = $this->body_views; $this->_properties['body'] = $this->body_view; $this->base_url = vB_Router::getBaseURL(); // Add the navbar as a view $this->navbar = new vB_View_NavBar('navbar'); $this->navbar->navbits = $this->navbits; unset($this->navbits); $this->headinclude_bottom = new vB_View('headinclude_bottom'); }