Contao\BackendConfirm::run PHP Метод

run() публичный Метод

Run the controller
public run ( ) : Response
Результат Symfony\Component\HttpFoundation\Response
    public function run()
    {
        /** @var SessionInterface $objSession */
        $objSession = \System::getContainer()->get('session');
        // Redirect to the back end home page
        if (\Input::post('FORM_SUBMIT') == 'invalid_token_url') {
            list($strUrl) = explode('?', $objSession->get('INVALID_TOKEN_URL'));
            $this->redirect($strUrl);
        }
        /** @var BackendTemplate|object $objTemplate */
        $objTemplate = new \BackendTemplate('be_confirm');
        // Prepare the URL
        $url = preg_replace('/(\\?|&)rt=[^&]*/', '', $objSession->get('INVALID_TOKEN_URL'));
        $objTemplate->href = ampersand($url . (strpos($url, '?') !== false ? '&rt=' : '?rt=') . REQUEST_TOKEN);
        $vars = array();
        list(, $request) = explode('?', $url, 2);
        // Extract the arguments
        foreach (explode('&', $request) as $arg) {
            list($key, $value) = explode('=', $arg, 2);
            $vars[$key] = $value;
        }
        $arrInfo = array();
        // Provide more information about the link (see #4007)
        foreach ($vars as $k => $v) {
            switch ($k) {
                default:
                    $arrInfo[$k] = $v;
                    break;
                case 'do':
                    $arrInfo['do'] = $GLOBALS['TL_LANG']['MOD'][$v][0];
                    break;
                case 'id':
                    $arrInfo['id'] = 'ID ' . $v;
                    break;
            }
        }
        // Use the first table if none is given
        if (!isset($arrInfo['table'])) {
            foreach ($GLOBALS['BE_MOD'] as $category => $modules) {
                if (isset($GLOBALS['BE_MOD'][$category][$vars['do']])) {
                    $arrInfo['table'] = $GLOBALS['BE_MOD'][$category][$vars['do']]['tables'][0];
                    break;
                }
            }
        }
        \System::loadLanguageFile($arrInfo['table']);
        // Override the action label
        if (isset($arrInfo['clipboard'])) {
            $arrInfo['act'] = $GLOBALS['TL_LANG']['MSC']['clearClipboard'];
        } elseif (isset($arrInfo['mode']) && !isset($arrInfo['act'])) {
            if ($arrInfo['mode'] == 'create') {
                $arrInfo['act'] = $GLOBALS['TL_LANG'][$arrInfo['table']]['new'][0];
            } elseif ($arrInfo['mode'] == 'cut' || $arrInfo['mode'] == 'copy') {
                $arrInfo['act'] = $GLOBALS['TL_LANG'][$arrInfo['table']][$arrInfo['mode']][0];
            }
        } else {
            $arrInfo['act'] = $GLOBALS['TL_LANG'][$arrInfo['table']][$arrInfo['act']][0];
        }
        unset($arrInfo['pid']);
        unset($arrInfo['clipboard']);
        unset($arrInfo['ref']);
        unset($arrInfo['mode']);
        // Template variables
        $objTemplate->confirm = true;
        $objTemplate->link = \StringUtil::specialchars($url);
        $objTemplate->info = $arrInfo;
        $objTemplate->labels = $GLOBALS['TL_LANG']['CONFIRM'];
        $objTemplate->explain = $GLOBALS['TL_LANG']['ERR']['invalidTokenUrl'];
        $objTemplate->cancel = $GLOBALS['TL_LANG']['MSC']['cancelBT'];
        $objTemplate->continue = $GLOBALS['TL_LANG']['MSC']['continue'];
        $objTemplate->theme = \Backend::getTheme();
        $objTemplate->base = \Environment::get('base');
        $objTemplate->language = $GLOBALS['TL_LANGUAGE'];
        $objTemplate->title = \StringUtil::specialchars($GLOBALS['TL_LANG']['MSC']['invalidTokenUrl']);
        $objTemplate->charset = \Config::get('characterSet');
        return $objTemplate->getResponse();
    }

Usage Example

Пример #1
0
 /**
  * Renders the "invalid request token" screen.
  *
  * @return Response
  *
  * @Route("/confirm", name="contao_backend_confirm")
  */
 public function confirmAction()
 {
     $this->container->get('contao.framework')->initialize();
     $controller = new BackendConfirm();
     return $controller->run();
 }
BackendConfirm