/** * Initialize the view * * @param ViewInterface $view The view * @return void */ public function initializeView(ViewInterface $view) { /** @var BackendTemplateView $view */ parent::initializeView($view); $this->registerDocheaderButtons(); $view->assign('copyright', BackendUtility::TYPO3_copyRightNotice()); }
/** * Show general information and the installed modules * * @return void */ public function indexAction() { $warnings = array(); $contentWarnings = ''; // Hook for additional warnings if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['displayWarningMessages'])) { foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['displayWarningMessages'] as $classRef) { $hookObj = GeneralUtility::getUserObj($classRef); if (method_exists($hookObj, 'displayWarningMessages_postProcess')) { $hookObj->displayWarningMessages_postProcess($warnings); } } } if (!empty($warnings)) { if (count($warnings) > 1) { $securityWarnings = '<ul><li>' . implode('</li><li>', $warnings) . '</li></ul>'; } else { $securityWarnings = '<p>' . implode('', $warnings) . '</p>'; } $securityMessage = GeneralUtility::makeInstance(FlashMessage::class, $securityWarnings, $this->languageService->sL('LLL:EXT:lang/locallang_core.xlf:warning.header'), FlashMessage::ERROR); $contentWarnings = '<div style="margin: 20px 0;">' . $securityMessage->render() . '</div>'; unset($warnings); } $this->view->assignMultiple(array('TYPO3Version' => TYPO3_version, 'copyRightNotice' => BackendUtility::TYPO3_copyRightNotice(), 'warningMessages' => $contentWarnings, 'modules' => $this->getModulesData())); }
/** * Creates Table Of Contents and possibly "Full Manual" mode if selected. * * @return string HTML content * @todo Define visibility */ public function render_TOC() { // Initialize: $CSHkeys = array_flip(array_keys($GLOBALS['TCA_DESCR'])); $TCAkeys = array_keys($GLOBALS['TCA']); $outputSections = array(); $tocArray = array(); // TYPO3 Core Features: $GLOBALS['LANG']->loadSingleTableDescription('xMOD_csh_corebe'); $this->render_TOC_el('xMOD_csh_corebe', 'core', $outputSections, $tocArray, $CSHkeys); // Backend Modules: $loadModules = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Module\\ModuleLoader'); $loadModules->load($GLOBALS['TBE_MODULES']); foreach ($loadModules->modules as $mainMod => $info) { $cshKey = '_MOD_' . $mainMod; if ($CSHkeys[$cshKey]) { $GLOBALS['LANG']->loadSingleTableDescription($cshKey); $this->render_TOC_el($cshKey, 'modules', $outputSections, $tocArray, $CSHkeys); } if (is_array($info['sub'])) { foreach ($info['sub'] as $subMod => $subInfo) { $cshKey = '_MOD_' . $mainMod . '_' . $subMod; if ($CSHkeys[$cshKey]) { $GLOBALS['LANG']->loadSingleTableDescription($cshKey); $this->render_TOC_el($cshKey, 'modules', $outputSections, $tocArray, $CSHkeys); } } } } // Database Tables: foreach ($TCAkeys as $table) { // Load descriptions for table $table $GLOBALS['LANG']->loadSingleTableDescription($table); if (is_array($GLOBALS['TCA_DESCR'][$table]['columns']) && $GLOBALS['BE_USER']->check('tables_select', $table)) { $this->render_TOC_el($table, 'tables', $outputSections, $tocArray, $CSHkeys); } } // Extensions foreach ($CSHkeys as $cshKey => $value) { if (GeneralUtility::isFirstPartOfStr($cshKey, 'xEXT_') && !isset($GLOBALS['TCA'][$cshKey])) { $GLOBALS['LANG']->loadSingleTableDescription($cshKey); $this->render_TOC_el($cshKey, 'extensions', $outputSections, $tocArray, $CSHkeys); } } // Glossary foreach ($CSHkeys as $cshKey => $value) { if (GeneralUtility::isFirstPartOfStr($cshKey, 'xGLOSSARY_') && !isset($GLOBALS['TCA'][$cshKey])) { $GLOBALS['LANG']->loadSingleTableDescription($cshKey); $this->render_TOC_el($cshKey, 'glossary', $outputSections, $tocArray, $CSHkeys); } } // Other: foreach ($CSHkeys as $cshKey => $value) { if (!GeneralUtility::isFirstPartOfStr($cshKey, '_MOD_') && !isset($GLOBALS['TCA'][$cshKey])) { $GLOBALS['LANG']->loadSingleTableDescription($cshKey); $this->render_TOC_el($cshKey, 'other', $outputSections, $tocArray, $CSHkeys); } } // COMPILE output: $output = ''; $output .= '<h1>' . $GLOBALS['LANG']->getLL('manual_title', TRUE) . '</h1>'; $output .= '<p class="lead">' . $GLOBALS['LANG']->getLL('description', TRUE) . '</p>'; $output .= '<h2>' . $GLOBALS['LANG']->getLL('TOC', TRUE) . '</h2>' . $this->render_TOC_makeTocList($tocArray); if (!$this->renderALL) { $output .= ' <br/> <p class="c-nav"><a href="' . htmlspecialchars($this->moduleUrl) . '&renderALL=1">' . $GLOBALS['LANG']->getLL('full_manual', TRUE) . '</a></p>'; } if ($this->renderALL) { $output .= ' <h2>' . $GLOBALS['LANG']->getLL('full_manual_chapters', TRUE) . '</h2>' . implode(' <!-- NEW SECTION: --> ', $outputSections); } $output .= '<hr /><p class="manual-title">' . BackendUtility::TYPO3_copyRightNotice() . '</p>'; return $output; }
/** * Main function - creating the login/logout form * * @throws Exception * @return string The content to output */ public function main() { /** @var $pageRenderer PageRenderer */ $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); $pageRenderer->loadRequireJsModule('TYPO3/CMS/Backend/Login'); // support placeholders for IE9 and lower $clientInfo = GeneralUtility::clientInfo(); if ($clientInfo['BROWSER'] === 'msie' && $clientInfo['VERSION'] <= 9) { $pageRenderer->addJsLibrary('placeholders', 'sysext/core/Resources/Public/JavaScript/Contrib/placeholders.jquery.min.js'); } // Checking, if we should make a redirect. // Might set JavaScript in the header to close window. $this->checkRedirect(); // Extension Configuration $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend']); // Background Image if (!empty($extConf['loginBackgroundImage'])) { $backgroundImage = $this->getUriForFileName($extConf['loginBackgroundImage']); $this->getDocumentTemplate()->inDocStylesArray[] = ' @media (min-width: 768px){ .typo3-login-carousel-control.right, .typo3-login-carousel-control.left, .panel-login { border: 0; } .typo3-login { background-image: url("' . $backgroundImage . '"); } } '; } // Add additional css to use the highlight color in the login screen if (!empty($extConf['loginHighlightColor'])) { $this->getDocumentTemplate()->inDocStylesArray[] = ' .btn-login.disabled, .btn-login[disabled], fieldset[disabled] .btn-login, .btn-login.disabled:hover, .btn-login[disabled]:hover, fieldset[disabled] .btn-login:hover, .btn-login.disabled:focus, .btn-login[disabled]:focus, fieldset[disabled] .btn-login:focus, .btn-login.disabled.focus, .btn-login[disabled].focus, fieldset[disabled] .btn-login.focus, .btn-login.disabled:active, .btn-login[disabled]:active, fieldset[disabled] .btn-login:active, .btn-login.disabled.active, .btn-login[disabled].active, fieldset[disabled] .btn-login.active, .btn-login:hover, .btn-login:focus, .btn-login:active, .btn-login:active:hover, .btn-login:active:focus, .btn-login { background-color: ' . $extConf['loginHighlightColor'] . '; } .panel-login .panel-body { border-color: ' . $extConf['loginHighlightColor'] . '; } '; } // Logo if (!empty($extConf['loginLogo'])) { $logo = $extConf['loginLogo']; } elseif (!empty($GLOBALS['TBE_STYLES']['logo_login'])) { // Fallback to old TBE_STYLES login logo $logo = $GLOBALS['TBE_STYLES']['logo_login']; GeneralUtility::deprecationLog('$GLOBALS["TBE_STYLES"]["logo_login"] is deprecated since TYPO3 CMS 7 and will be removed in TYPO3 CMS 8, please use the backend extension\'s configuration instead.'); } else { // Use TYPO3 logo depending on highlight color if (!empty($extConf['loginHighlightColor'])) { $logo = 'EXT:backend/Resources/Public/Images/typo3_black.svg'; } else { $logo = 'EXT:backend/Resources/Public/Images/typo3_orange.svg'; } $this->getDocumentTemplate()->inDocStylesArray[] = ' .typo3-login-logo .typo3-login-image { max-width: 150px; } '; } $logo = $this->getUriForFileName($logo); // Start form $formType = empty($this->getBackendUserAuthentication()->user['uid']) ? 'LoginForm' : 'LogoutForm'; $this->view->assignMultiple(array('backendUser' => $this->getBackendUserAuthentication()->user, 'hasLoginError' => $this->isLoginInProgress(), 'formType' => $formType, 'logo' => $logo, 'images' => array('capslock' => $this->getUriForFileName('EXT:backend/Resources/Public/Images/icon_capslock.svg'), 'typo3' => $this->getUriForFileName('EXT:backend/Resources/Public/Images/typo3_orange.svg')), 'copyright' => BackendUtility::TYPO3_copyRightNotice(), 'loginNewsItems' => $this->getSystemNews(), 'loginProviderIdentifier' => $this->loginProviderIdentifier, 'loginProviders' => $this->loginProviders)); // Initialize interface selectors: $this->makeInterfaceSelectorBox(); /** @var LoginProviderInterface $loginProvider */ $loginProvider = GeneralUtility::makeInstance($this->loginProviders[$this->loginProviderIdentifier]['provider']); $loginProvider->render($this->view, $pageRenderer, $this); $content = $this->getDocumentTemplate()->startPage('TYPO3 CMS Login: '******'TYPO3_CONF_VARS']['SYS']['sitename']); $content .= $this->view->render(); $content .= $this->getDocumentTemplate()->endPage(); return $content; }
/** * Show general information and the installed modules * * @return void */ public function indexAction() { $this->view->assign('TYPO3Version', TYPO3_version)->assign('copyRightNotice', \TYPO3\CMS\Backend\Utility\BackendUtility::TYPO3_copyRightNotice())->assign('warningMessages', \TYPO3\CMS\Backend\Utility\BackendUtility::displayWarningMessages())->assign('modules', $this->getModulesData()); }
/** * Show general information and the installed modules * * @return void */ public function indexAction() { $warnings = []; $securityWarnings = ''; // Hook for additional warnings if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['displayWarningMessages'])) { foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['displayWarningMessages'] as $classRef) { $hookObj = GeneralUtility::getUserObj($classRef); if (method_exists($hookObj, 'displayWarningMessages_postProcess')) { $hookObj->displayWarningMessages_postProcess($warnings); } } } if (!empty($warnings)) { if (count($warnings) > 1) { $securityWarnings = '<ul><li>' . implode('</li><li>', $warnings) . '</li></ul>'; } else { $securityWarnings = '<p>' . implode('', $warnings) . '</p>'; } unset($warnings); } $this->view->assignMultiple(['TYPO3Version' => TYPO3_version, 'copyRightNotice' => BackendUtility::TYPO3_copyRightNotice(), 'warningMessages' => $securityWarnings, 'warningTitle' => $this->languageService->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:warning.header'), 'modules' => $this->getModulesData()]); }
/** * Wrapping the login form table in another set of tables etc: * * @param string $content HTML content for the login form * @return string The HTML for the page. * @todo Define visibility */ public function wrapLoginForm($content) { $mainContent = HtmlParser::getSubpart($GLOBALS['TBE_TEMPLATE']->moduleTemplate, '###PAGE###'); if ($GLOBALS['TBE_STYLES']['logo_login']) { $logo = '<img src="' . htmlspecialchars($GLOBALS['BACK_PATH'] . $GLOBALS['TBE_STYLES']['logo_login']) . '" alt="" class="t3-login-logo" />'; } else { $logo = '<img' . IconUtility::skinImg($GLOBALS['BACK_PATH'], 'gfx/typo3logo.gif', 'width="123" height="34"') . ' alt="" class="t3-login-logo" />'; } $additionalCssClasses = array(); if ($this->isLoginInProgress()) { $additionalCssClasses[] = 'error'; } if ($this->loginRefresh) { $additionalCssClasses[] = 'refresh'; } $markers = array('LOGO' => $logo, 'LOGINBOX_IMAGE' => '', 'FORM' => $content, 'NEWS' => $this->makeLoginNews(), 'COPYRIGHT' => BackendUtility::TYPO3_copyRightNotice($GLOBALS['TYPO3_CONF_VARS']['SYS']['loginCopyrightShowVersion']), 'CSS_CLASSES' => !empty($additionalCssClasses) ? 'class="' . implode(' ', $additionalCssClasses) . '"' : '', 'CSS_OPENIDCLASS' => 't3-login-openid-' . (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('openid') ? 'enabled' : 'disabled'), 'HEADLINE' => $GLOBALS['LANG']->getLL('headline', TRUE), 'INFO_ABOUT' => $GLOBALS['LANG']->getLL('info.about', TRUE), 'INFO_RELOAD' => $GLOBALS['LANG']->getLL('info.reset', TRUE), 'INFO' => $GLOBALS['LANG']->getLL('info.cookies_and_js', TRUE), 'ERROR_JAVASCRIPT' => $GLOBALS['LANG']->getLL('error.javascript', TRUE), 'ERROR_COOKIES' => $GLOBALS['LANG']->getLL('error.cookies', TRUE), 'ERROR_COOKIES_IGNORE' => $GLOBALS['LANG']->getLL('error.cookies_ignore', TRUE), 'ERROR_CAPSLOCK' => $GLOBALS['LANG']->getLL('error.capslock', TRUE), 'ERROR_FURTHERHELP' => $GLOBALS['LANG']->getLL('error.furtherInformation', TRUE), 'LABEL_DONATELINK' => $GLOBALS['LANG']->getLL('labels.donate', TRUE), 'LABEL_USERNAME' => $GLOBALS['LANG']->getLL('labels.username', TRUE), 'LABEL_OPENID' => $GLOBALS['LANG']->getLL('labels.openId', TRUE), 'LABEL_PASSWORD' => $GLOBALS['LANG']->getLL('labels.password', TRUE), 'LABEL_WHATISOPENID' => $GLOBALS['LANG']->getLL('labels.whatIsOpenId', TRUE), 'LABEL_SWITCHOPENID' => $GLOBALS['LANG']->getLL('labels.switchToOpenId', TRUE), 'LABEL_SWITCHDEFAULT' => $GLOBALS['LANG']->getLL('labels.switchToDefault', TRUE), 'CLEAR' => $GLOBALS['LANG']->getLL('clear', TRUE), 'LOGIN_PROCESS' => $GLOBALS['LANG']->getLL('login_process', TRUE), 'SITELINK' => '<a href="/">###SITENAME###</a>', 'SITENAME' => htmlspecialchars($GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'])); $markers = $this->emitRenderLoginFormSignal($markers); return HtmlParser::substituteMarkerArray($mainContent, $markers, '###|###'); }
/** * COPYRIGHT notice * * Warning: * DO NOT prevent this notice from being shown in ANY WAY. * According to the GPL license an interactive application must show such a notice on start-up ('If the program is interactive, make it output a short notice... ' - see GPL.txt) * Therefore preventing this notice from being properly shown is a violation of the license, regardless of whether you remove it or use a stylesheet to obstruct the display. * * @return string Text/Image (HTML) for copyright notice. * * @todo Define visibility * @deprecated since TYPO3 6.0, will be removed in TYPO3 6.2 * @see \TYPO3\CMS\Backend\Utility\BackendUtility::TYPO3_copyRightNotice() */ public function makeCopyrightNotice() { \TYPO3\CMS\Core\Utility\GeneralUtility::logDeprecatedFunction(); return \TYPO3\CMS\Backend\Utility\BackendUtility::TYPO3_copyRightNotice(); }
/** * Show general information and the installed modules * * @return void */ public function indexAction() { $this->view->assignMultiple(array('TYPO3Version' => TYPO3_version, 'copyRightNotice' => \TYPO3\CMS\Backend\Utility\BackendUtility::TYPO3_copyRightNotice(), 'warningMessages' => \TYPO3\CMS\Backend\Utility\BackendUtility::displayWarningMessages(), 'modules' => $this->getModulesData())); }