Exemple #1
0
 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'));
     }
 }
Exemple #3
0
    /**
     *
     * @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;
    }
Exemple #4
0
 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);
         }
     }
 }