Вход Регистрация
Файл: contao-3.5.8/system/modules/core/classes/BackendTemplate.php
Строк: 103
<?php

/**
 * Contao Open Source CMS
 *
 * Copyright (c) 2005-2016 Leo Feyer
 *
 * @license LGPL-3.0+
 */

namespace Contao;


/**
 * Provide methods to handle back end templates.
 *
 * @property string $ua
 * @property array  $javascripts
 * @property array  $stylesheets
 * @property string $mootools
 *
 * @author Leo Feyer <https://github.com/leofeyer>
 */
class BackendTemplate extends Template
{

    
/**
     * Add a hook to modify the template output
     *
     * @return string
     */
    
public function parse()
    {
        
$strBuffer = parent::parse();

        
// HOOK: add custom parse filters
        
if (isset($GLOBALS['TL_HOOKS']['parseBackendTemplate']) && is_array($GLOBALS['TL_HOOKS']['parseBackendTemplate']))
        {
            foreach (
$GLOBALS['TL_HOOKS']['parseBackendTemplate'] as $callback)
            {
                
$this->import($callback[0]);
                
$strBuffer = $this->{$callback[0]}->{$callback[1]}($strBuffer, $this->strTemplate);
            }
        }

        return 
$strBuffer;
    }


    
/**
     * Parse the template file, add the TinyMCE configuration and print it to the screen
     *
     * @throws Exception
     */
    
public function output()
    {
        
// User agent class (see #3074 and #6277)
        
$this->ua = Environment::get('agent')->class;

        
// Style sheets
        
if (!empty($GLOBALS['TL_CSS']) && is_array($GLOBALS['TL_CSS']))
        {
            
$strStyleSheets = '';

            foreach (
array_unique($GLOBALS['TL_CSS']) as $stylesheet)
            {
                
$options = StringUtil::resolveFlaggedUrl($stylesheet);
                
$strStyleSheets .= Template::generateStyleTag($this->addStaticUrlTo($stylesheet), $options->media);
            }

            
$this->stylesheets = $strStyleSheets;
        }

        
// Add the debug style sheet
        
if (Config::get('debugMode'))
        {
            
$this->stylesheets .= '<link rel="stylesheet" href="' . $this->addStaticUrlTo('assets/contao/css/debug.css') . '">' . "n";
        }

        
// JavaScripts
        
if (!empty($GLOBALS['TL_JAVASCRIPT']) && is_array($GLOBALS['TL_JAVASCRIPT']))
        {
            
$strJavaScripts = '';

            foreach (
array_unique($GLOBALS['TL_JAVASCRIPT']) as $javascript)
            {
                
$options = StringUtil::resolveFlaggedUrl($javascript);
                
$strJavaScripts .= Template::generateScriptTag($this->addStaticUrlTo($javascript), false, $options->async) . "n";
            }

            
$this->javascripts = $strJavaScripts;
        }

        
// MooTools scripts (added at the page bottom)
        
if (!empty($GLOBALS['TL_MOOTOOLS']) && is_array($GLOBALS['TL_MOOTOOLS']))
        {
            
$strMootools = '';

            foreach (
array_unique($GLOBALS['TL_MOOTOOLS']) as $script)
            {
                
$strMootools .= "n" . trim($script) . "n";
            }

            
$this->mootools = $strMootools;
        }

        
$strBuffer = $this->parse();

        
// HOOK: add custom output filter
        
if (isset($GLOBALS['TL_HOOKS']['outputBackendTemplate']) && is_array($GLOBALS['TL_HOOKS']['outputBackendTemplate']))
        {
            foreach (
$GLOBALS['TL_HOOKS']['outputBackendTemplate'] as $callback)
            {
                
$this->import($callback[0]);
                
$strBuffer = $this->{$callback[0]}->{$callback[1]}($strBuffer, $this->strTemplate);
            }
        }

        
$this->strBuffer = $strBuffer;
        
parent::output();
    }


    
/**
     * Return the locale string
     *
     * @return string
     */
    
protected function getLocaleString()
    {
        return
            
'var Contao={'
                
. 'theme:"' . Backend::getTheme() . '",'
                
. 'lang:{'
                    
. 'close:"' . $GLOBALS['TL_LANG']['MSC']['close'] . '",'
                    
. 'collapse:"' . $GLOBALS['TL_LANG']['MSC']['collapseNode'] . '",'
                    
. 'expand:"' . $GLOBALS['TL_LANG']['MSC']['expandNode'] . '",'
                    
. 'loading:"' . $GLOBALS['TL_LANG']['MSC']['loadingData'] . '",'
                    
. 'apply:"' . $GLOBALS['TL_LANG']['MSC']['apply'] . '",'
                    
. 'picker:"' . $GLOBALS['TL_LANG']['MSC']['pickerNoSelection'] . '"'
                
. '},'
                
. 'script_url:"' . TL_ASSETS_URL . '",'
                
. 'path:"' . TL_PATH . '",'
                
. 'request_token:"' . REQUEST_TOKEN . '",'
                
. 'referer_id:"' . TL_REFERER_ID . '"'
            
. '};';
    }


    
/**
     * Return the datepicker string
     *
     * Fix the MooTools more parsers which incorrectly parse ISO-8601 and do
     * not handle German date formats at all.
     *
     * @return string
     */
    
protected function getDateString()
    {
        return
            
'Locale.define("en-US","Date",{'
                
. 'months:["' . implode('","', $GLOBALS['TL_LANG']['MONTHS']) . '"],'
                
. 'days:["' . implode('","', $GLOBALS['TL_LANG']['DAYS']) . '"],'
                
. 'months_abbr:["' . implode('","', $GLOBALS['TL_LANG']['MONTHS_SHORT']) . '"],'
                
. 'days_abbr:["' . implode('","', $GLOBALS['TL_LANG']['DAYS_SHORT']) . '"]'
            
. '});'
            
. 'Locale.define("en-US","DatePicker",{'
                
. 'select_a_time:"' . $GLOBALS['TL_LANG']['DP']['select_a_time'] . '",'
                
. 'use_mouse_wheel:"' . $GLOBALS['TL_LANG']['DP']['use_mouse_wheel'] . '",'
                
. 'time_confirm_button:"' . $GLOBALS['TL_LANG']['DP']['time_confirm_button'] . '",'
                
. 'apply_range:"' . $GLOBALS['TL_LANG']['DP']['apply_range'] . '",'
                
. 'cancel:"' . $GLOBALS['TL_LANG']['DP']['cancel'] . '",'
                
. 'week:"' . $GLOBALS['TL_LANG']['DP']['week'] . '"'
            
. '});';
    }
}
Онлайн: 3
Реклама