public function generate() { \System::loadLanguageFile('iso_upgrade'); $this->Template = new \BackendTemplate($this->strTemplate); $this->Template->base = \Environment::get('base'); $this->Template->action = \Environment::get('request'); $this->Template->slabel = $GLOBALS['TL_LANG']['UPG']['submit']; $this->compile(); $this->Template->output(); exit; }
/** * Run the controller and parse the login template */ public function run() { /** @var \BackendTemplate|object $objTemplate */ $objTemplate = new \BackendTemplate('be_login'); // Show a cookie warning if (\Input::get('referer', true) != '' && empty($_COOKIE)) { $objTemplate->noCookies = $GLOBALS['TL_LANG']['MSC']['noCookies']; } $strHeadline = sprintf($GLOBALS['TL_LANG']['MSC']['loginTo'], \Config::get('websiteTitle')); $objTemplate->theme = \Backend::getTheme(); $objTemplate->messages = \Message::generate(); $objTemplate->base = \Environment::get('base'); $objTemplate->language = $GLOBALS['TL_LANGUAGE']; $objTemplate->languages = \System::getLanguages(true); $objTemplate->title = specialchars($strHeadline); $objTemplate->charset = \Config::get('characterSet'); $objTemplate->action = ampersand(\Environment::get('request')); $objTemplate->userLanguage = $GLOBALS['TL_LANG']['tl_user']['language'][0]; $objTemplate->headline = $strHeadline; $objTemplate->curLanguage = \Input::post('language') ?: str_replace('-', '_', $GLOBALS['TL_LANGUAGE']); $objTemplate->curUsername = \Input::post('username') ?: ''; $objTemplate->uClass = $_POST && empty($_POST['username']) ? ' class="login_error"' : ''; $objTemplate->pClass = $_POST && empty($_POST['password']) ? ' class="login_error"' : ''; $objTemplate->loginButton = specialchars($GLOBALS['TL_LANG']['MSC']['loginBT']); $objTemplate->username = $GLOBALS['TL_LANG']['tl_user']['username'][0]; $objTemplate->password = $GLOBALS['TL_LANG']['MSC']['password'][0]; $objTemplate->feLink = $GLOBALS['TL_LANG']['MSC']['feLink']; $objTemplate->frontendFile = \Environment::get('base'); $objTemplate->disableCron = \Config::get('disableCron'); $objTemplate->ie6warning = sprintf($GLOBALS['TL_LANG']['ERR']['ie6warning'], '<a href="http://ie6countdown.com">', '</a>'); $objTemplate->default = $GLOBALS['TL_LANG']['MSC']['default']; $objTemplate->output(); }
/** * Run the controller and parse the template */ public function run() { /** @var \BackendTemplate|object $objTemplate */ $objTemplate = new \BackendTemplate('be_preview'); $objTemplate->base = \Environment::get('base'); $objTemplate->language = $GLOBALS['TL_LANGUAGE']; $objTemplate->title = specialchars($GLOBALS['TL_LANG']['MSC']['fePreview']); $objTemplate->charset = \Config::get('characterSet'); $objTemplate->site = \Input::get('site', true); if (\Input::get('url')) { $objTemplate->url = \Environment::get('base') . \Input::get('url'); } elseif (\Input::get('page')) { $objTemplate->url = $this->redirectToFrontendPage(\Input::get('page'), \Input::get('article'), true); } else { $objTemplate->url = \Environment::get('base'); } // Switch to a particular member (see #6546) if (\Input::get('user') && $this->User->isAdmin) { $objUser = \MemberModel::findByUsername(\Input::get('user')); if ($objUser !== null) { $strHash = sha1(session_id() . (!\Config::get('disableIpCheck') ? \Environment::get('ip') : '') . 'FE_USER_AUTH'); // Remove old sessions $this->Database->prepare("DELETE FROM tl_session WHERE tstamp<? OR hash=?")->execute(time() - \Config::get('sessionTimeout'), $strHash); // Insert the new session $this->Database->prepare("INSERT INTO tl_session (pid, tstamp, name, sessionID, ip, hash) VALUES (?, ?, ?, ?, ?, ?)")->execute($objUser->id, time(), 'FE_USER_AUTH', session_id(), \Environment::get('ip'), $strHash); // Set the cookie $this->setCookie('FE_USER_AUTH', $strHash, time() + \Config::get('sessionTimeout'), null, null, false, true); $objTemplate->user = \Input::post('user'); } } \Config::set('debugMode', false); $objTemplate->output(); }
/** * Output the template file and exit */ protected function outputAndExit() { $this->Template->theme = \Backend::getTheme(); $this->Template->base = \Environment::get('base'); $this->Template->language = $GLOBALS['TL_LANGUAGE']; $this->Template->charset = \Config::get('characterSet'); $this->Template->pageOffset = \Input::cookie('BE_PAGE_OFFSET'); $this->Template->action = ampersand(\Environment::get('request')); $this->Template->noCookies = $GLOBALS['TL_LANG']['MSC']['noCookies']; $this->Template->title = specialchars($GLOBALS['TL_LANG']['tl_install']['installTool'][0]); $this->Template->expandNode = $GLOBALS['TL_LANG']['MSC']['expandNode']; $this->Template->collapseNode = $GLOBALS['TL_LANG']['MSC']['collapseNode']; $this->Template->loadingData = $GLOBALS['TL_LANG']['MSC']['loadingData']; $this->Template->ie6warning = sprintf($GLOBALS['TL_LANG']['ERR']['ie6warning'], '<a href="http://ie6countdown.com">', '</a>'); $this->Template->hasComposer = is_dir(TL_ROOT . '/system/modules/!composer'); $this->Template->output(); exit; }
/** * Run the controller */ public function run() { // Parse the changelog file $strBuffer = file_get_contents(TL_ROOT . '/system/docs/CHANGELOG.md'); // Remove carriage returns (see #4190) $strBuffer = str_replace("\r", '', $strBuffer); // Convert to HTML $strBuffer = \Michelf\MarkdownExtra::defaultTransform($strBuffer); /** @var \BackendTemplate|object $objTemplate */ $objTemplate = new \BackendTemplate('be_changelog'); // Assign the template variables $objTemplate->content = $strBuffer; $objTemplate->theme = \Backend::getTheme(); $objTemplate->base = \Environment::get('base'); $objTemplate->language = $GLOBALS['TL_LANGUAGE']; $objTemplate->title = specialchars($GLOBALS['TL_LANG']['MSC']['changelog']); $objTemplate->charset = \Config::get('characterSet'); \Config::set('debugMode', false); $objTemplate->output(); }
/** * Run the controller. */ public function run() { // user have to be authenticated $this->User->authenticate(); // disable Avisota if ($this->Input->get('disable')) { $inactiveModules = deserialize($GLOBALS['TL_CONFIG']['inactiveModules'], true); $inactiveModules[] = 'Avisota'; $this->Config->update("\$GLOBALS['TL_CONFIG']['inactiveModules']", serialize($inactiveModules)); $this->Config->save(); $_SESSION[TL_INFO][] = $GLOBALS['TL_LANG']['avisotaCompatibilityController']['disabled']; $this->redirect('contao/main.php'); } $template = new BackendTemplate('be_avisota_compatibility_controller'); $template->theme = $this->getTheme(); $template->base = $this->Environment->base; $template->language = $GLOBALS['TL_LANGUAGE']; $template->title = $GLOBALS['TL_CONFIG']['websiteTitle']; $template->charset = $GLOBALS['TL_CONFIG']['characterSet']; $template->request = ampersand($this->Environment->request); $template->top = $GLOBALS['TL_LANG']['MSC']['backToTop']; $template->mysqlVersion = \Database::getInstance()->query('SHOW VARIABLES WHERE Variable_name = \'version\'')->Value; $template->output(); }
/** * Ajax actions that do not require a data container object */ public function executePreActions() { switch ($this->strAction) { // Toggle navigation menu case 'toggleNavigation': $bemod = $this->Session->get('backend_modules'); $bemod[$this->Input->post('id')] = intval($this->Input->post('state')); $this->Session->set('backend_modules', $bemod); exit; break; // Load a navigation menu group // Load a navigation menu group case 'loadNavigation': $bemod = $this->Session->get('backend_modules'); $bemod[$this->Input->post('id')] = intval($this->Input->post('state')); $this->Session->set('backend_modules', $bemod); $this->import('BackendUser', 'User'); $navigation = $this->User->navigation(); $objTemplate = new BackendTemplate('be_navigation'); $objTemplate->modules = $navigation[$this->Input->post('id')]['modules']; $objTemplate->output(); exit; break; case 'loadJasonNavigation': $this->import('BackendUser', 'User'); $navigation = $this->User->navigation(); $session = $this->Session->getData(); foreach ($GLOBALS['BE_MOD'] as $strGroupName => $arrGroupModules) { $session['backend_modules'][$strGroupName] = 1; } $this->Session->setData($session); $this->Session->set('backend_modules', ''); $this->prepareJsonNavigationArray($navigation); //echo json_encode($navigation); exit; break; case 'getNewExtVersion': exit; break; // Toggle nodes of the file or page tree // Toggle nodes of the file or page tree case 'toggleStructure': case 'toggleFileManager': case 'togglePagetree': case 'toggleFiletree': $this->strAjaxId = preg_replace('/.*_([0-9a-zA-Z]+)$/i', '$1', $this->Input->post('id')); $this->strAjaxKey = str_replace('_' . $this->strAjaxId, '', $this->Input->post('id')); if ($this->Input->get('act') == 'editAll') { $this->strAjaxKey = preg_replace('/(.*)_[0-9a-zA-Z]+$/i', '$1', $this->strAjaxKey); $this->strAjaxName = preg_replace('/.*_([0-9a-zA-Z]+)$/i', '$1', $this->Input->post('name')); } $nodes = $this->Session->get($this->strAjaxKey); $nodes[$this->strAjaxId] = intval($this->Input->post('state')); $this->Session->set($this->strAjaxKey, $nodes); exit; break; // Load nodes of the file or page tree // Load nodes of the file or page tree case 'loadStructure': case 'loadFileManager': case 'loadPagetree': case 'loadFiletree': $this->strAjaxId = preg_replace('/.*_([0-9a-zA-Z]+)$/i', '$1', $this->Input->post('id')); $this->strAjaxKey = str_replace('_' . $this->strAjaxId, '', $this->Input->post('id')); if ($this->Input->get('act') == 'editAll') { $this->strAjaxKey = preg_replace('/(.*)_[0-9a-zA-Z]+$/i', '$1', $this->strAjaxKey); $this->strAjaxName = preg_replace('/.*_([0-9a-zA-Z]+)$/i', '$1', $this->Input->post('name')); } $nodes = $this->Session->get($this->strAjaxKey); $nodes[$this->strAjaxId] = intval($this->Input->post('state')); $this->Session->set($this->strAjaxKey, $nodes); break; // Toggle the visibility of content elements // Toggle the visibility of content elements case 'toggleVisibility': $this->Database->prepare("UPDATE tl_content SET invisible='" . (intval($this->Input->post('state') == 1) ? '' : 1) . "' WHERE id=?")->execute($this->Input->post('id')); $this->markNodeAsDirty($this->Input->post('id'), 'tl_content'); exit; break; case 'toggleFieldset': $fs = $this->Session->get('fieldset_states'); $fs[$this->Input->post('table')][$this->Input->post('id')] = intval($this->Input->post('state')); $this->Session->set('fieldset_states', $fs); exit; break; // Check whether the temporary directory is writeable // Check whether the temporary directory is writeable case 'liveUpdate': $GLOBALS['TL_CONFIG']['liveUpdateId'] = $this->Input->post('id'); $this->Config->update("\$GLOBALS['TL_CONFIG']['liveUpdateId']", $this->Input->post('id')); try { $objFile = new File('system/tmp/' . md5(uniqid('', true))); $objFile->close(); $objFile->delete(); } catch (Exception $e) { if ($e->getCode() == 0) { $this->loadLanguageFile('tl_maintenance'); header('Content-Type: text/html; charset=' . $GLOBALS['TL_CONFIG']['characterSet']); echo '<p class="tl_error">' . $GLOBALS['TL_LANG']['tl_maintenance']['notWriteable'] . '</p>'; } } // Empty live update ID if (!strlen($this->Input->post('id'))) { $this->loadLanguageFile('tl_maintenance'); header('Content-Type: text/html; charset=' . $GLOBALS['TL_CONFIG']['characterSet']); echo '<p class="tl_error">' . $GLOBALS['TL_LANG']['tl_maintenance']['emptyLuId'] . '</p>'; } exit; break; // Toggle checkbox groups // Toggle checkbox groups case 'toggleCheckboxGroup': $state = $this->Session->get('checkbox_groups'); $state[$this->Input->post('id')] = intval($this->Input->post('state')); $this->Session->set('checkbox_groups', $state); break; // HOOK: pass unknown actions to callback functions // HOOK: pass unknown actions to callback functions default: if (array_key_exists('executePreActions', $GLOBALS['TL_HOOKS']) && is_array($GLOBALS['TL_HOOKS']['executePreActions'])) { foreach ($GLOBALS['TL_HOOKS']['executePreActions'] as $callback) { $this->import($callback[0]); $this->{$callback}[0]->{$callback}[1]($this->strAction); } } break; } }
/** * Compares the current to the original template * * @param DataContainer $dc * * @return string */ public function compareTemplate(DataContainer $dc) { $strCurrentPath = $dc->id; $strName = pathinfo($strCurrentPath, PATHINFO_FILENAME); $strExtension = pathinfo($strCurrentPath, PATHINFO_EXTENSION); $arrTemplates = TemplateLoader::getFiles(); $blnOverridesAnotherTpl = isset($arrTemplates[$strName]); $strPrefix = ''; if (($pos = strpos($strName, '_')) !== false) { $strPrefix = substr($strName, 0, $pos + 1); } $strBuffer = ''; $strCompareName = null; $strComparePath = null; // By default it's the original template to compare against if ($blnOverridesAnotherTpl) { $strCompareName = $strName; $strComparePath = $arrTemplates[$strCompareName] . '/' . $strCompareName . '.' . $strExtension; if ($strComparePath !== null) { $strBuffer .= '<p class="tl_info" style="margin-bottom:1em">' . sprintf($GLOBALS['TL_LANG']['tl_templates']['overridesAnotherTpl'], $strComparePath) . '</p>'; } } // User selected template to compare against if (\Input::post('from') && isset($arrTemplates[\Input::post('from')])) { $strCompareName = \Input::post('from'); $strComparePath = $arrTemplates[$strCompareName] . '/' . $strCompareName . '.' . $strExtension; } if ($strComparePath !== null) { $objCurrentFile = new \File($strCurrentPath, true); $objCompareFile = new \File($strComparePath, true); // Abort if one file is missing if (!$objCurrentFile->exists() || !$objCompareFile->exists()) { $this->redirect('contao/main.php?act=error'); } $objDiff = new Diff($objCompareFile->getContentAsArray(), $objCurrentFile->getContentAsArray()); $strDiff = $objDiff->Render(new DiffRenderer(array('field' => $strCurrentPath))); // Identical versions if ($strDiff == '') { $strBuffer .= '<p>' . $GLOBALS['TL_LANG']['MSC']['identicalVersions'] . '</p>'; } else { $strBuffer .= $strDiff; } } else { $strBuffer .= '<p class="tl_info">' . $GLOBALS['TL_LANG']['tl_templates']['pleaseSelect'] . '</p>'; } // Templates to compare against $arrComparable = array(); $intPrefixLength = strlen($strPrefix); foreach ($arrTemplates as $k => $v) { if (substr($k, 0, $intPrefixLength) === $strPrefix) { $arrComparable[$k] = array('version' => $k, 'info' => $k . '.' . $strExtension); } } /** @var \BackendTemplate|object $objTemplate */ $objTemplate = new \BackendTemplate('be_diff'); // Template variables $objTemplate->staticTo = $strCurrentPath; $objTemplate->versions = $arrComparable; $objTemplate->from = $strCompareName; $objTemplate->showLabel = specialchars($GLOBALS['TL_LANG']['MSC']['showDifferences']); $objTemplate->content = $strBuffer; $objTemplate->theme = \Backend::getTheme(); $objTemplate->base = \Environment::get('base'); $objTemplate->language = $GLOBALS['TL_LANGUAGE']; $objTemplate->title = specialchars($GLOBALS['TL_LANG']['MSC']['showDifferences']); $objTemplate->charset = \Config::get('characterSet'); \Config::set('debugMode', false); $objTemplate->output(); exit; }
/** * Run the controller and parse the template */ public function run() { /** @var \BackendTemplate|object $objTemplate */ $objTemplate = new \BackendTemplate('be_picker'); $objTemplate->main = ''; // Ajax request if ($_POST && \Environment::get('isAjaxRequest')) { $this->objAjax = new \Ajax(\Input::post('action')); $this->objAjax->executePreActions(); } $strTable = \Input::get('table'); $strField = \Input::get('field'); // Define the current ID define('CURRENT_ID', \Input::get('table') ? $this->Session->get('CURRENT_ID') : \Input::get('id')); $this->loadDataContainer($strTable); $strDriver = 'DC_' . $GLOBALS['TL_DCA'][$strTable]['config']['dataContainer']; $objDca = new $strDriver($strTable); $objDca->field = $strField; // Set the active record if ($this->Database->tableExists($strTable)) { /** @var \Model $strModel $strModel */ $strModel = \Model::getClassFromTable($strTable); if (class_exists($strModel)) { $objModel = $strModel::findByPk(\Input::get('id')); if ($objModel !== null) { $objDca->activeRecord = $objModel; } } } // AJAX request if ($_POST && \Environment::get('isAjaxRequest')) { $this->objAjax->executePostActions($objDca); } $this->Session->set('filePickerRef', \Environment::get('request')); $arrValues = array_filter(explode(',', \Input::get('value'))); // Call the load_callback if (is_array($GLOBALS['TL_DCA'][$strTable]['fields'][$strField]['load_callback'])) { foreach ($GLOBALS['TL_DCA'][$strTable]['fields'][$strField]['load_callback'] as $callback) { if (is_array($callback)) { $this->import($callback[0]); $arrValues = $this->{$callback[0]}->{$callback[1]}($arrValues, $objDca); } elseif (is_callable($callback)) { $arrValues = $callback($arrValues, $objDca); } } } /** @var \PageSelector $strClass */ $strClass = $GLOBALS['BE_FFL']['pageSelector']; /** @var \PageSelector $objPageTree */ $objPageTree = new $strClass($strClass::getAttributesFromDca($GLOBALS['TL_DCA'][$strTable]['fields'][$strField], $strField, $arrValues, $strField, $strTable, $objDca)); $objTemplate->main = $objPageTree->generate(); $objTemplate->theme = \Backend::getTheme(); $objTemplate->base = \Environment::get('base'); $objTemplate->language = $GLOBALS['TL_LANGUAGE']; $objTemplate->title = specialchars($GLOBALS['TL_LANG']['MSC']['pagepicker']); $objTemplate->charset = \Config::get('characterSet'); $objTemplate->addSearch = true; $objTemplate->search = $GLOBALS['TL_LANG']['MSC']['search']; $objTemplate->action = ampersand(\Environment::get('request')); $objTemplate->value = $this->Session->get('page_selector_search'); $objTemplate->breadcrumb = $GLOBALS['TL_DCA']['tl_page']['list']['sorting']['breadcrumb']; if ($this->User->hasAccess('page', 'modules')) { $objTemplate->manager = $GLOBALS['TL_LANG']['MSC']['pageManager']; $objTemplate->managerHref = 'contao/main.php?do=page&popup=1'; } if (\Input::get('switch') && $this->User->hasAccess('files', 'modules')) { $objTemplate->switch = $GLOBALS['TL_LANG']['MSC']['filePicker']; $objTemplate->switchHref = str_replace('contao/page.php', 'contao/file.php', ampersand(\Environment::get('request'))); } \Config::set('debugMode', false); $objTemplate->output(); }
/** * Run the controller and parse the template */ public function run() { if ($this->strFile == '') { die('No file given'); } // Make sure there are no attempts to hack the file system if (preg_match('@^\\.+@i', $this->strFile) || preg_match('@\\.+/@i', $this->strFile) || preg_match('@(://)+@i', $this->strFile)) { die('Invalid file name'); } // Limit preview to the files directory if (!preg_match('@^' . preg_quote(\Config::get('uploadPath'), '@') . '@i', $this->strFile)) { die('Invalid path'); } // Check whether the file exists if (!file_exists(TL_ROOT . '/' . $this->strFile)) { die('File not found'); } // Check whether the file is mounted (thanks to Marko Cupic) if (!$this->User->hasAccess($this->strFile, 'filemounts')) { die('Permission denied'); } // Open the download dialogue if (\Input::get('download')) { $objFile = new \File($this->strFile, true); $objFile->sendToBrowser(); } /** @var \BackendTemplate|object $objTemplate */ $objTemplate = new \BackendTemplate('be_popup'); // Add the resource (see #6880) if (($objModel = \FilesModel::findByPath($this->strFile)) === null) { if (\Dbafs::shouldBeSynchronized($this->strFile)) { $objModel = \Dbafs::addResource($this->strFile); } } if ($objModel !== null) { $objTemplate->uuid = \StringUtil::binToUuid($objModel->uuid); // see #5211 } // Add the file info if (is_dir(TL_ROOT . '/' . $this->strFile)) { $objFile = new \Folder($this->strFile, true); $objTemplate->filesize = $this->getReadableSize($objFile->size) . ' (' . number_format($objFile->size, 0, $GLOBALS['TL_LANG']['MSC']['decimalSeparator'], $GLOBALS['TL_LANG']['MSC']['thousandsSeparator']) . ' Byte)'; } else { $objFile = new \File($this->strFile, true); // Image if ($objFile->isImage) { $objTemplate->isImage = true; $objTemplate->width = $objFile->width; $objTemplate->height = $objFile->height; $objTemplate->src = $this->urlEncode($this->strFile); } $objTemplate->href = ampersand(\Environment::get('request'), true) . '&download=1'; $objTemplate->filesize = $this->getReadableSize($objFile->filesize) . ' (' . number_format($objFile->filesize, 0, $GLOBALS['TL_LANG']['MSC']['decimalSeparator'], $GLOBALS['TL_LANG']['MSC']['thousandsSeparator']) . ' Byte)'; } $objTemplate->icon = $objFile->icon; $objTemplate->mime = $objFile->mime; $objTemplate->ctime = \Date::parse(\Config::get('datimFormat'), $objFile->ctime); $objTemplate->mtime = \Date::parse(\Config::get('datimFormat'), $objFile->mtime); $objTemplate->atime = \Date::parse(\Config::get('datimFormat'), $objFile->atime); $objTemplate->path = specialchars($this->strFile); $objTemplate->theme = \Backend::getTheme(); $objTemplate->base = \Environment::get('base'); $objTemplate->language = $GLOBALS['TL_LANGUAGE']; $objTemplate->title = specialchars($this->strFile); $objTemplate->charset = \Config::get('characterSet'); $objTemplate->headline = basename(utf8_convert_encoding($this->strFile, \Config::get('characterSet'))); $objTemplate->label_uuid = $GLOBALS['TL_LANG']['MSC']['fileUuid']; $objTemplate->label_imagesize = $GLOBALS['TL_LANG']['MSC']['fileImageSize']; $objTemplate->label_filesize = $GLOBALS['TL_LANG']['MSC']['fileSize']; $objTemplate->label_ctime = $GLOBALS['TL_LANG']['MSC']['fileCreated']; $objTemplate->label_mtime = $GLOBALS['TL_LANG']['MSC']['fileModified']; $objTemplate->label_atime = $GLOBALS['TL_LANG']['MSC']['fileAccessed']; $objTemplate->label_path = $GLOBALS['TL_LANG']['MSC']['filePath']; $objTemplate->download = specialchars($GLOBALS['TL_LANG']['MSC']['fileDownload']); \Config::set('debugMode', false); $objTemplate->output(); }
/** * Compare versions */ public function compare() { $strBuffer = ''; $arrVersions = array(); $intTo = 0; $intFrom = 0; $objVersions = $this->Database->prepare("SELECT * FROM tl_version WHERE pid=? AND fromTable=? ORDER BY version DESC")->execute($this->intPid, $this->strTable); if ($objVersions->numRows < 2) { $strBuffer = '<p>There are no versions of ' . $this->strTable . '.id=' . $this->intPid . '</p>'; } else { $intIndex = 0; $from = array(); // Store the versions and mark the active one while ($objVersions->next()) { if ($objVersions->active) { $intIndex = $objVersions->version; } $arrVersions[$objVersions->version] = $objVersions->row(); $arrVersions[$objVersions->version]['info'] = $GLOBALS['TL_LANG']['MSC']['version'] . ' ' . $objVersions->version . ' (' . \Date::parse(\Config::get('datimFormat'), $objVersions->tstamp) . ') ' . $objVersions->username; } // To if (\Input::post('to') && isset($arrVersions[\Input::post('to')])) { $intTo = \Input::post('to'); $to = deserialize($arrVersions[\Input::post('to')]['data']); } elseif (\Input::get('to') && isset($arrVersions[\Input::get('to')])) { $intTo = \Input::get('to'); $to = deserialize($arrVersions[\Input::get('to')]['data']); } else { $intTo = $intIndex; $to = deserialize($arrVersions[$intTo]['data']); } // From if (\Input::post('from') && isset($arrVersions[\Input::post('from')])) { $intFrom = \Input::post('from'); $from = deserialize($arrVersions[\Input::post('from')]['data']); } elseif (\Input::get('from') && isset($arrVersions[\Input::get('from')])) { $intFrom = \Input::get('from'); $from = deserialize($arrVersions[\Input::get('from')]['data']); } elseif ($intIndex > 1) { $intFrom = $intIndex - 1; $from = deserialize($arrVersions[$intFrom]['data']); } // Only continue if both version numbers are set if ($intTo > 0 && $intFrom > 0) { \System::loadLanguageFile($this->strTable); $this->loadDataContainer($this->strTable); // Get the order fields $objDcaExtractor = \DcaExtractor::getInstance($this->strTable); $arrOrder = $objDcaExtractor->getOrderFields(); // Find the changed fields and highlight the changes foreach ($to as $k => $v) { if ($from[$k] != $to[$k]) { if ($GLOBALS['TL_DCA'][$this->strTable]['fields'][$k]['inputType'] == 'password' || $GLOBALS['TL_DCA'][$this->strTable]['fields'][$k]['eval']['doNotShow'] || $GLOBALS['TL_DCA'][$this->strTable]['fields'][$k]['eval']['hideInput']) { continue; } $blnIsBinary = $GLOBALS['TL_DCA'][$this->strTable]['fields'][$k]['inputType'] == 'fileTree' || in_array($k, $arrOrder); // Decrypt the values if ($GLOBALS['TL_DCA'][$this->strTable]['fields'][$k]['eval']['encrypt']) { $to[$k] = \Encryption::decrypt($to[$k]); $from[$k] = \Encryption::decrypt($from[$k]); } // Convert serialized arrays into strings if (is_array($tmp = deserialize($to[$k])) && !is_array($to[$k])) { $to[$k] = $this->implodeRecursive($tmp, $blnIsBinary); } if (is_array($tmp = deserialize($from[$k])) && !is_array($from[$k])) { $from[$k] = $this->implodeRecursive($tmp, $blnIsBinary); } unset($tmp); // Convert binary UUIDs to their hex equivalents (see #6365) if ($blnIsBinary && \Validator::isBinaryUuid($to[$k])) { $to[$k] = \String::binToUuid($to[$k]); } if ($blnIsBinary && \Validator::isBinaryUuid($from[$k])) { $to[$k] = \String::binToUuid($from[$k]); } // Convert date fields if ($GLOBALS['TL_DCA'][$this->strTable]['fields'][$k]['eval']['rgxp'] == 'date') { $to[$k] = \Date::parse(\Config::get('dateFormat'), $to[$k] ?: ''); $from[$k] = \Date::parse(\Config::get('dateFormat'), $from[$k] ?: ''); } elseif ($GLOBALS['TL_DCA'][$this->strTable]['fields'][$k]['eval']['rgxp'] == 'time') { $to[$k] = \Date::parse(\Config::get('timeFormat'), $to[$k] ?: ''); $from[$k] = \Date::parse(\Config::get('timeFormat'), $from[$k] ?: ''); } elseif ($GLOBALS['TL_DCA'][$this->strTable]['fields'][$k]['eval']['rgxp'] == 'datim' || $k == 'tstamp') { $to[$k] = \Date::parse(\Config::get('datimFormat'), $to[$k] ?: ''); $from[$k] = \Date::parse(\Config::get('datimFormat'), $from[$k] ?: ''); } // Convert strings into arrays if (!is_array($to[$k])) { $to[$k] = explode("\n", $to[$k]); } if (!is_array($from[$k])) { $from[$k] = explode("\n", $from[$k]); } $objDiff = new \Diff($from[$k], $to[$k]); $strBuffer .= $objDiff->Render(new DiffRenderer(array('field' => $GLOBALS['TL_DCA'][$this->strTable]['fields'][$k]['label'][0] ?: (isset($GLOBALS['TL_LANG']['MSC'][$k]) ? is_array($GLOBALS['TL_LANG']['MSC'][$k]) ? $GLOBALS['TL_LANG']['MSC'][$k][0] : $GLOBALS['TL_LANG']['MSC'][$k] : $k)))); } } } } // Identical versions if ($strBuffer == '') { $strBuffer = '<p>' . $GLOBALS['TL_LANG']['MSC']['identicalVersions'] . '</p>'; } /** @var \BackendTemplate|object $objTemplate */ $objTemplate = new \BackendTemplate('be_diff'); // Template variables $objTemplate->content = $strBuffer; $objTemplate->versions = $arrVersions; $objTemplate->to = $intTo; $objTemplate->from = $intFrom; $objTemplate->showLabel = specialchars($GLOBALS['TL_LANG']['MSC']['showDifferences']); $objTemplate->theme = \Backend::getTheme(); $objTemplate->base = \Environment::get('base'); $objTemplate->language = $GLOBALS['TL_LANGUAGE']; $objTemplate->title = specialchars($GLOBALS['TL_LANG']['MSC']['showDifferences']); $objTemplate->charset = \Config::get('characterSet'); $objTemplate->action = ampersand(\Environment::get('request')); \Config::set('debugMode', false); $objTemplate->output(); exit; }
/** * Output the template file */ protected function output() { // Default headline if ($this->Template->headline == '') { $this->Template->headline = \Config::get('websiteTitle'); } // Default title if ($this->Template->title == '') { $this->Template->title = $this->Template->headline; } // File picker reference if (\Input::get('popup') && \Input::get('act') != 'show' && (\Input::get('do') == 'page' || \Input::get('do') == 'files') && $this->Session->get('filePickerRef')) { $this->Template->managerHref = ampersand($this->Session->get('filePickerRef')); $this->Template->manager = strpos($this->Session->get('filePickerRef'), 'contao/page.php') !== false ? $GLOBALS['TL_LANG']['MSC']['pagePickerHome'] : $GLOBALS['TL_LANG']['MSC']['filePickerHome']; } $this->Template->theme = \Backend::getTheme(); $this->Template->base = \Environment::get('base'); $this->Template->language = $GLOBALS['TL_LANGUAGE']; $this->Template->title = specialchars($this->Template->title); $this->Template->charset = \Config::get('characterSet'); $this->Template->account = $GLOBALS['TL_LANG']['MOD']['login'][1]; $this->Template->preview = $GLOBALS['TL_LANG']['MSC']['fePreview']; $this->Template->previewTitle = specialchars($GLOBALS['TL_LANG']['MSC']['fePreviewTitle']); $this->Template->pageOffset = \Input::cookie('BE_PAGE_OFFSET'); $this->Template->logout = $GLOBALS['TL_LANG']['MSC']['logoutBT']; $this->Template->logoutTitle = specialchars($GLOBALS['TL_LANG']['MSC']['logoutBTTitle']); $this->Template->backendModules = $GLOBALS['TL_LANG']['MSC']['backendModules']; $this->Template->username = $GLOBALS['TL_LANG']['MSC']['user'] . ' ' . $GLOBALS['TL_USERNAME']; $this->Template->skipNavigation = specialchars($GLOBALS['TL_LANG']['MSC']['skipNavigation']); $this->Template->request = ampersand(\Environment::get('request')); $this->Template->top = $GLOBALS['TL_LANG']['MSC']['backToTop']; $this->Template->modules = $this->User->navigation(); $this->Template->home = $GLOBALS['TL_LANG']['MSC']['home']; $this->Template->homeTitle = $GLOBALS['TL_LANG']['MSC']['homeTitle']; $this->Template->backToTop = specialchars($GLOBALS['TL_LANG']['MSC']['backToTopTitle']); $this->Template->expandNode = $GLOBALS['TL_LANG']['MSC']['expandNode']; $this->Template->collapseNode = $GLOBALS['TL_LANG']['MSC']['collapseNode']; $this->Template->loadingData = $GLOBALS['TL_LANG']['MSC']['loadingData']; $this->Template->loadFonts = \Config::get('loadGoogleFonts'); $this->Template->isAdmin = $this->User->isAdmin; $this->Template->isCoreOnlyMode = \Config::get('coreOnlyMode'); $this->Template->coreOnlyMode = $GLOBALS['TL_LANG']['MSC']['coreOnlyMode']; $this->Template->coreOnlyOff = specialchars($GLOBALS['TL_LANG']['MSC']['coreOnlyOff']); $this->Template->coreOnlyHref = $this->addToUrl('smo=1'); $this->Template->isMaintenanceMode = \Config::get('maintenanceMode'); $this->Template->maintenanceMode = $GLOBALS['TL_LANG']['MSC']['maintenanceMode']; $this->Template->maintenanceOff = specialchars($GLOBALS['TL_LANG']['MSC']['maintenanceOff']); $this->Template->maintenanceHref = $this->addToUrl('mmo=1'); $this->Template->buildCacheLink = $GLOBALS['TL_LANG']['MSC']['buildCacheLink']; $this->Template->buildCacheText = $GLOBALS['TL_LANG']['MSC']['buildCacheText']; $this->Template->buildCacheHref = $this->addToUrl('bic=1'); $this->Template->isPopup = \Input::get('popup'); // Hide the cache message in the repository manager (see #5966) if (!\Config::get('bypassCache') && $this->User->isAdmin) { $this->Template->needsCacheBuild = (\Input::get('do') != 'repository_manager' || !isset($_GET['install']) && !isset($_GET['uninstall']) && !isset($_GET['update'])) && !is_dir(TL_ROOT . '/system/cache/dca'); } // Front end preview links if (defined('CURRENT_ID') && CURRENT_ID != '') { // Pages if (\Input::get('do') == 'page') { $this->Template->frontendFile = '?page=' . CURRENT_ID; } elseif (\Input::get('do') == 'article') { if (($objArticle = \ArticleModel::findByPk(CURRENT_ID)) !== null) { $this->Template->frontendFile = '?page=' . $objArticle->pid; } } } $this->Template->output(); }
/** * Run the controller and parse the template */ public function run() { $table = \Input::get('table'); $field = \Input::get('field'); \System::loadLanguageFile($table); $this->loadDataContainer($table); /** @var \BackendTemplate|object $objTemplate */ $objTemplate = new \BackendTemplate('be_help'); $objTemplate->rows = array(); $objTemplate->explanation = ''; $arrData = $GLOBALS['TL_DCA'][$table]['fields'][$field]; // Back end modules if ($table == 'tl_user_group' && $field == 'modules') { $rows = array(); foreach (array_keys($GLOBALS['BE_MOD']) as $group) { $rows[] = array('headspan', $arrData['reference'][$group]); foreach ($GLOBALS['BE_MOD'][$group] as $module => $class) { $rows[] = $arrData['reference'][$module]; } } $objTemplate->rows = $rows; } elseif ($table == 'tl_module' && $field == 'type') { $rows = array(); foreach (array_keys($GLOBALS['FE_MOD']) as $group) { $rows[] = array('headspan', $arrData['reference'][$group]); foreach ($GLOBALS['FE_MOD'][$group] as $module => $class) { $rows[] = $arrData['reference'][$module]; } } $objTemplate->rows = $rows; } elseif ($table == 'tl_content' && $field == 'type') { $rows = array(); foreach (array_keys($GLOBALS['TL_CTE']) as $group) { $rows[] = array('headspan', $arrData['reference'][$group]); foreach ($GLOBALS['TL_CTE'][$group] as $element => $class) { $rows[] = $arrData['reference'][$element]; } } $objTemplate->rows = $rows; } elseif (!empty($arrData['reference'])) { $rows = array(); if (is_array($arrData['options'])) { $options = $arrData['options']; } elseif (is_array($arrData['options_callback'])) { $this->import($arrData['options_callback'][0]); $options = $this->{$arrData['options_callback'][0]}->{$arrData['options_callback'][1]}(new \DC_Table($table)); } else { $options = array_keys($arrData['reference']); } // Unset the predefined image sizes unset($options['image_sizes']); foreach ($options as $key => $option) { if (is_array($option)) { if (is_array($arrData['reference'][$key])) { $rows[] = array('headspan', $arrData['reference'][$key][0]); } else { $rows[] = array('headspan', $arrData['reference'][$key]); } foreach ($option as $opt) { $rows[] = $arrData['reference'][$opt]; } } else { if (!is_array($arrData['reference'][$option])) { $rows[] = array('headspan', $arrData['reference'][$option]); } else { $rows[] = $arrData['reference'][$option]; } } } $objTemplate->rows = $rows; } // Add an explanation if (isset($arrData['explanation'])) { \System::loadLanguageFile('explain'); $key = $arrData['explanation']; if (!is_array($GLOBALS['TL_LANG']['XPL'][$key])) { $objTemplate->explanation = trim($GLOBALS['TL_LANG']['XPL'][$key]); } else { $objTemplate->rows = $GLOBALS['TL_LANG']['XPL'][$key]; } } $objTemplate->theme = \Backend::getTheme(); $objTemplate->base = \Environment::get('base'); $objTemplate->language = $GLOBALS['TL_LANGUAGE']; $objTemplate->title = specialchars($GLOBALS['TL_LANG']['MSC']['helpWizardTitle']); $objTemplate->charset = \Config::get('characterSet'); $objTemplate->headline = $arrData['label'][0] ?: $field; $objTemplate->helpWizard = $GLOBALS['TL_LANG']['MSC']['helpWizard']; \Config::set('debugMode', false); $objTemplate->output(); }
/** * Run the controller */ public function run() { // Redirect to the back end home page if (\Input::post('FORM_SUBMIT') == 'invalid_token_url') { list($strUrl) = explode('?', $this->Session->get('INVALID_TOKEN_URL')); $this->redirect($strUrl); } /** @var \BackendTemplate|object $objTemplate */ $objTemplate = new \BackendTemplate('be_confirm'); // Prepare the URL $url = preg_replace('/(\\?|&)rt=[^&]*/', '', $this->Session->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 = 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 = specialchars($GLOBALS['TL_LANG']['MSC']['invalidTokenUrl']); $objTemplate->charset = \Config::get('characterSet'); $objTemplate->output(); }
/** * Run the controller and parse the template. * * @return void */ public function run() { $template = new \BackendTemplate('be_picker'); $template->main = ''; // Ajax request. // @codingStandardsIgnoreStart - We need POST access here. if ($_POST && \Environment::get('isAjaxRequest')) { $ajax = new \Ajax(\Input::post('action')); $ajax->executePreActions(); } $strTable = \Input::get('table'); $strField = \Input::get('field'); // Define the current ID. define('CURRENT_ID', $strTable ? \Session::getInstance()->get('CURRENT_ID') : \Input::get('id')); $dispatcher = $GLOBALS['container']['event-dispatcher']; /** @var \Symfony\Component\EventDispatcher\EventDispatcher $dispatcher */ $propagator = new EventPropagator($dispatcher); $translator = new TranslatorChain(); $translator->add(new LangArrayTranslator($dispatcher)); $factory = new DcGeneralFactory(); $this->itemContainer = $factory->setContainerName($strTable)->setTranslator($translator)->setEventPropagator($propagator)->createDcGeneral(); $information = (array) $GLOBALS['TL_DCA'][$strTable]['fields'][$strField]; // Merge with the information from the data container. $property = $this->itemContainer->getEnvironment()->getDataDefinition()->getPropertiesDefinition()->getProperty($strField); $extra = $property->getExtra(); $information['eval']['sourceName'] = $extra['sourceName']; $information['eval']['fieldType'] = $extra['fieldType']; /** @var \ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\TreePicker $objTreeSelector */ $objTreeSelector = new $GLOBALS['BE_FFL']['DcGeneralTreePicker'](\Widget::getAttributesFromDca($information, $strField, array_filter(explode(',', \Input::get('value'))), $strField, $strTable, new DcCompat($this->itemContainer->getEnvironment()))); // AJAX request. if (isset($ajax)) { $objTreeSelector->generateAjax(); $ajax->executePostActions(new DcCompat($this->itemContainer->getEnvironment())); } $template->main = $objTreeSelector->generatePopup(); $template->theme = \Backend::getTheme(); $template->base = \Environment::get('base'); $template->language = $GLOBALS['TL_LANGUAGE']; $template->title = specialchars($GLOBALS['TL_LANG']['MSC']['treepicker']); $template->charset = $GLOBALS['TL_CONFIG']['characterSet']; $template->addSearch = $objTreeSelector->searchField; $template->search = $GLOBALS['TL_LANG']['MSC']['search']; $template->action = ampersand(\Environment::get('request')); $template->value = \Session::getInstance()->get($objTreeSelector->getSearchSessionKey()); $template->manager = $GLOBALS['TL_LANG']['MSC']['treepickerManager']; $template->breadcrumb = $GLOBALS['TL_DCA'][$objTreeSelector->foreignTable]['list']['sorting']['breadcrumb']; $template->managerHref = ''; // Add the manager link. if ($objTreeSelector->managerHref) { $template->managerHref = 'contao/main.php?' . ampersand($objTreeSelector->managerHref) . '&popup=1'; } // Prevent debug output at all cost. $GLOBALS['TL_CONFIG']['debugMode'] = false; $template->output(); }
/** * Run the controller and parse the password template */ public function run() { /** @var \BackendTemplate|object $objTemplate */ $objTemplate = new \BackendTemplate('be_password'); if (\Input::post('FORM_SUBMIT') == 'tl_password') { $pw = \Input::postUnsafeRaw('password'); $cnf = \Input::postUnsafeRaw('confirm'); // The passwords do not match if ($pw != $cnf) { \Message::addError($GLOBALS['TL_LANG']['ERR']['passwordMatch']); } elseif (utf8_strlen($pw) < \Config::get('minPasswordLength')) { \Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['passwordLength'], \Config::get('minPasswordLength'))); } elseif ($pw == $this->User->username) { \Message::addError($GLOBALS['TL_LANG']['ERR']['passwordName']); } else { // Make sure the password has been changed if (\Encryption::verify($pw, $this->User->password)) { \Message::addError($GLOBALS['TL_LANG']['MSC']['pw_change']); } else { $this->loadDataContainer('tl_user'); // Trigger the save_callback if (is_array($GLOBALS['TL_DCA']['tl_user']['fields']['password']['save_callback'])) { foreach ($GLOBALS['TL_DCA']['tl_user']['fields']['password']['save_callback'] as $callback) { if (is_array($callback)) { $this->import($callback[0]); $pw = $this->{$callback[0]}->{$callback[1]}($pw); } elseif (is_callable($callback)) { $pw = $callback($pw); } } } $objUser = \UserModel::findByPk($this->User->id); $objUser->pwChange = ''; $objUser->password = \Encryption::hash($pw); $objUser->save(); \Message::addConfirmation($GLOBALS['TL_LANG']['MSC']['pw_changed']); $this->redirect('' . $GLOBALS['TL_CONFIG']['backendPath'] . '/main.php'); } } $this->reload(); } $objTemplate->theme = \Backend::getTheme(); $objTemplate->messages = \Message::generate(); $objTemplate->base = \Environment::get('base'); $objTemplate->language = $GLOBALS['TL_LANGUAGE']; $objTemplate->title = specialchars($GLOBALS['TL_LANG']['MSC']['pw_new']); $objTemplate->charset = \Config::get('characterSet'); $objTemplate->action = ampersand(\Environment::get('request')); $objTemplate->headline = $GLOBALS['TL_LANG']['MSC']['pw_change']; $objTemplate->submitButton = specialchars($GLOBALS['TL_LANG']['MSC']['continue']); $objTemplate->password = $GLOBALS['TL_LANG']['MSC']['password'][0]; $objTemplate->confirm = $GLOBALS['TL_LANG']['MSC']['confirm'][0]; $objTemplate->output(); }
/** * Output warning about old Isotope version that can't be updated */ protected function warnForOld() { $objTemplate = new \BackendTemplate('be_iso_old'); $objTemplate->output(); exit; }
/** * Run the controller and parse the template */ public function run() { if (\Environment::get('isAjaxRequest')) { $this->getDatalistOptions(); } $strUser = ''; $strHash = sha1(session_id() . (!\Config::get('disableIpCheck') ? \Environment::get('ip') : '') . 'FE_USER_AUTH'); // Get the front end user if (FE_USER_LOGGED_IN) { $objUser = $this->Database->prepare("SELECT username FROM tl_member WHERE id=(SELECT pid FROM tl_session WHERE hash=?)")->limit(1)->execute($strHash); if ($objUser->numRows) { $strUser = $objUser->username; } } /** @var \BackendTemplate|object $objTemplate */ $objTemplate = new \BackendTemplate('be_switch'); $objTemplate->user = $strUser; $objTemplate->show = \Input::cookie('FE_PREVIEW'); $objTemplate->update = false; // Switch if (\Input::post('FORM_SUBMIT') == 'tl_switch') { $time = time(); // Hide unpublished elements if (\Input::post('unpublished') == 'hide') { $this->setCookie('FE_PREVIEW', 0, $time - 86400); $objTemplate->show = 0; } else { $this->setCookie('FE_PREVIEW', 1, $time + \Config::get('sessionTimeout')); $objTemplate->show = 1; } // Allow admins to switch user accounts if ($this->User->isAdmin) { // Remove old sessions $this->Database->prepare("DELETE FROM tl_session WHERE tstamp<? OR hash=?")->execute($time - \Config::get('sessionTimeout'), $strHash); // Log in the front end user if (\Input::post('user')) { $objUser = \MemberModel::findByUsername(\Input::post('user')); if ($objUser !== null) { // Insert the new session $this->Database->prepare("INSERT INTO tl_session (pid, tstamp, name, sessionID, ip, hash) VALUES (?, ?, ?, ?, ?, ?)")->execute($objUser->id, $time, 'FE_USER_AUTH', session_id(), \Environment::get('ip'), $strHash); // Set the cookie $this->setCookie('FE_USER_AUTH', $strHash, $time + \Config::get('sessionTimeout'), null, null, false, true); $objTemplate->user = \Input::post('user'); } } else { // Remove cookie $this->setCookie('FE_USER_AUTH', $strHash, $time - 86400, null, null, false, true); $objTemplate->user = ''; } } $objTemplate->update = true; } // Default variables $objTemplate->theme = \Backend::getTheme(); $objTemplate->base = \Environment::get('base'); $objTemplate->language = $GLOBALS['TL_LANGUAGE']; $objTemplate->apply = $GLOBALS['TL_LANG']['MSC']['apply']; $objTemplate->reload = $GLOBALS['TL_LANG']['MSC']['reload']; $objTemplate->feUser = $GLOBALS['TL_LANG']['MSC']['feUser']; $objTemplate->username = $GLOBALS['TL_LANG']['MSC']['username']; $objTemplate->charset = \Config::get('characterSet'); $objTemplate->lblHide = $GLOBALS['TL_LANG']['MSC']['hiddenHide']; $objTemplate->lblShow = $GLOBALS['TL_LANG']['MSC']['hiddenShow']; $objTemplate->fePreview = $GLOBALS['TL_LANG']['MSC']['fePreview']; $objTemplate->hiddenElements = $GLOBALS['TL_LANG']['MSC']['hiddenElements']; $objTemplate->closeSrc = TL_FILES_URL . 'system/themes/' . \Backend::getTheme() . '/images/close.gif'; $objTemplate->action = ampersand(\Environment::get('request')); $objTemplate->isAdmin = $this->User->isAdmin; \Config::set('debugMode', false); $objTemplate->output(); }