コード例 #1
0
ファイル: HelpController.php プロジェクト: hlop/TYPO3.CMS
 /**
  * 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());
 }
コード例 #2
0
 /**
  * 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()));
 }
コード例 #3
0
    /**
     * 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) . '&amp;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;
    }
コード例 #4
0
    /**
     * 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;
    }
コード例 #5
0
 /**
  * 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());
 }
コード例 #6
0
 /**
  * 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()]);
 }
コード例 #7
0
 /**
  * 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, '###|###');
 }
コード例 #8
0
 /**
  * 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();
 }
コード例 #9
0
 /**
  * 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()));
 }