public static function controller_post_dispatch(XenForo_Controller $controller, $controllerResponse, $controllerName, $action) { $type = $controller->getInput()->filterSingle('type', XenForo_Input::STRING); if (empty($type)) { $type = $controller->getInput()->filterSingle('t', XenForo_Input::STRING); } if ('team' == $type) { $controller->getRouteMatch()->setSections(TEAM_ROUTE_ACTION); } }
public static function controllerPreDispatch(XenForo_Controller $controller, $action) { $controllerPreDispatch = new ThemeHouse_AgreeTerms_Listener_ControllerPreDispatch($controller, $action); $controllerPreDispatch->run(); $visitor = XenForo_Visitor::getInstance(); if (empty($visitor['agree_terms_th'])) { self::$redirectToTerms = false; } if ($controller instanceof XenForo_ControllerPublic_Account && strtolower($action) == 'terms') { self::$redirectToTerms = false; } if (self::$redirectToTerms && $controller instanceof XenForo_ControllerPublic_Abstract) { self::$redirectToTerms = false; $controller->getRouteMatch()->setSections('account'); throw new XenForo_ControllerResponse_Exception($controller->responseReroute('XenForo_ControllerPublic_Account', 'terms')); } }
/** * * @param string $action */ protected function _upgradeAddOns() { $template = new XenForo_Template_Admin('PAGE_CONTAINER_SIMPLE', array('jQuerySource' => XenForo_Dependencies_Abstract::getJquerySource(), 'xenOptions' => XenForo_Application::get('options')->getOptions(), '_styleModifiedDate' => XenForo_Application::get('adminStyleModifiedDate'))); $template->setLanguageId(1); $template->setParam('title', 'Upgrading Add-ons...'); $addOns = array_keys(self::getUpgradeAddOns(true)); $addOnModel = XenForo_Model::create('XenForo_Model_AddOn'); $nextAddOnId = ''; if (count($addOns)) { $next = self::$_controller->getInput()->filterSingle('next', XenForo_Input::STRING); if ($next) { $addOn = $next; } else { $addOn = reset($addOns); } for ($i = 0; $i < count($addOns); $i++) { if ($addOns[$i] != $addOn) { unset($addOns[$i]); continue; } break; } $fileName = XenForo_Application::getInstance()->getRootDir() . '/install/data/addon-' . $addOn . '.xml'; try { $caches = $addOnModel->installAddOnXmlFromFile($fileName, $addOn); $template->setParam('contents', '<form action="' . XenForo_Link::buildAdminLink('add-ons/upgrade-all-from-xml') . '" class="xenForm formOverlay CacheRebuild" method="post"> <p id="ProgressText">Upgrading... <span class="RebuildMessage"></span> <span class="DetailedMessage"></span></p> <p id="ErrorText" style="display: none">' . new XenForo_Phrase('error_occurred_or_request_stopped') . '</p> <input type="submit" class="button" value="Continue Upgrading" /> <input type="hidden" name="_xfToken" value="' . XenForo_Visitor::getInstance()->get('csrf_token_page') . '" /> </form>'); } catch (Exception $e) { if (count($addOns) == 1) { $template->setParam('contents', 'Upgrade error (' . $addOn . '). Please use the <a href="' . XenForo_Link::buildAdminLink('add-ons/upgrade', array('addon_id' => $addOn)) . '">standard upgrade tool</a> and report any error messages to the developer.'); } else { unset($addOns[array_search($addOn, $addOns)]); $nextAddOnId = reset($addOns); $template->setParam('contents', '<form action="' . XenForo_Link::buildAdminLink('add-ons/upgrade-all-from-xml') . '" class="xenForm formOverlay CacheRebuild" method="post"> <p id="ProgressText">Upgrading... <span class="RebuildMessage"></span> <span class="DetailedMessage"></span></p> <p id="ErrorText" style="display: none">' . new XenForo_Phrase('error_occurred_or_request_stopped') . '</p> <input type="submit" class="button" value="Continue Upgrading" /> <input type="hidden" name="next" value="' . $nextAddOnId . '" /> <input type="hidden" name="_xfToken" value="' . XenForo_Visitor::getInstance()->get('csrf_token_page') . '" /> </form>'); } } } else { $caches = $addOnModel->rebuildAddOnCaches(); } if (!count($addOns) && (isset($caches) || XenForo_Application::$versionId > 1020000)) { if (self::$_controller->getRouteMatch()->getResponseType() == 'json') { header('Content-Type: application/json; charset=UTF-8'); echo json_encode(array('_redirectTarget' => XenForo_Link::buildAdminLink('index'))); } else { header('Location: ' . XenForo_Link::buildAdminLink('index')); } } elseif (count($addOns) == 1 && (isset($caches) || XenForo_Application::$versionId > 1020000)) { if (XenForo_Application::$versionId > 1020000) { $url = XenForo_Link::buildAdminLink('tools/run-deferred'); } else { $url = XenForo_Link::buildAdminLink('tools/cache-rebuild', null, array('caches' => json_encode($caches))); } if (self::$_controller->getRouteMatch()->getResponseType() == 'json') { header('Content-Type: application/json; charset=UTF-8'); echo json_encode(array('_redirectTarget' => $url)); } else { header('Location: ' . $url); } } else { if (self::$_controller->getRouteMatch()->getResponseType() == 'json') { echo json_encode(array('_redirectTarget' => XenForo_Link::buildAdminLink('add-ons/upgrade-all-from-xml', array(), array('next' => $nextAddOnId)))); } else { $output = $template->render(); $output = str_replace("<!--XenForo_Require:JS-->", '<script src="js/xenforo/cache_rebuild.js"></script>', $output); echo $output; } } exit; }
protected function _generateControllerResponse(XenForo_Controller $controller, OAuth2\Response $response) { if ($response->isRedirection()) { return $controller->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, $response->getHttpHeader('Location')); } $params = $response->getParameters(); $params['_statusCode'] = $response->getStatusCode(); $params['_headers'] = $response->getHttpHeaders(); if ($controller instanceof bdApi_ControllerApi_Abstract) { return $controller->responseData('bdApi_ViewApi_OAuth', $params); } else { if ($response->isClientError()) { return $controller->responseError($response->getParameter('error_description'), $response->getStatusCode()); } else { $controller->getRouteMatch()->setResponseType('json'); return $controller->responseView('bdApi_ViewPublic_OAuth', '', $params); } } }