Вход Регистрация
Файл: sngine-v2.8/Script/includes/libs/Smarty/sysplugins/smarty_template_source.php
Строк: 154
<?php

/**
 * Smarty Resource Data Object
 * Meta Data Container for Template Files
 *
 * @package    Smarty
 * @subpackage TemplateResources
 * @author     Rodney Rehm
 */
class Smarty_Template_Source
{
    
/**
     * Unique Template ID
     *
     * @var string
     */
    
public $uid null;

    
/**
     * Template Resource (Smarty_Internal_Template::$template_resource)
     *
     * @var string
     */
    
public $resource null;

    
/**
     * Resource Type
     *
     * @var string
     */
    
public $type null;

    
/**
     * Resource Name
     *
     * @var string
     */
    
public $name null;

    
/**
     * Source Filepath
     *
     * @var string
     */
    
public $filepath null;

    
/**
     * Source Timestamp
     *
     * @var integer
     */
    
public $timestamp null;

    
/**
     * Source Existence
     *
     * @var boolean
     */
    
public $exists false;

    
/**
     * Source File Base name
     *
     * @var string
     */
    
public $basename null;

    
/**
     * The Components an extended template is made of
     *
     * @var Smarty_Template_Source[]
     */
    
public $components null;

    
/**
     * Resource Handler
     *
     * @var Smarty_Resource
     */
    
public $handler null;

    
/**
     * Smarty instance
     *
     * @var Smarty
     */
    
public $smarty null;

    
/**
     * Resource is source
     *
     * @var bool
     */
    
public $isConfig false;

    
/**
     * Template source content eventually set by default handler
     *
     * @var string
     */
    
public $content null;

    
/**
     * Name of the Class to compile this resource's contents with
     *
     * @var string
     */
    
public $compiler_class 'Smarty_Internal_SmartyTemplateCompiler';

    
/**
     * Name of the Class to tokenize this resource's contents with
     *
     * @var string
     */
    
public $template_lexer_class 'Smarty_Internal_Templatelexer';

    
/**
     * Name of the Class to parse this resource's contents with
     *
     * @var string
     */
    
public $template_parser_class 'Smarty_Internal_Templateparser';

    
/**
     * create Source Object container
     *
     * @param Smarty $smarty   Smarty instance this source object belongs to
     * @param string $resource full template_resource
     * @param string $type     type of resource
     * @param string $name     resource name
     *
     * @throws   SmartyException
     * @internal param Smarty_Resource $handler Resource Handler this source object communicates with
     */
    
public function __construct(Smarty $smarty$resource$type$name)
    {
        
$this->handler =
            isset(
$smarty->_cache'resource_handlers' ][ $type ]) ? $smarty->_cache'resource_handlers' ][ $type ] :
                
Smarty_Resource::load($smarty$type);
        
$this->smarty $smarty;
        
$this->resource $resource;
        
$this->type $type;
        
$this->name $name;
    }

    
/**
     * initialize Source Object for given resource
     * Either [$_template] or [$smarty, $template_resource] must be specified
     *
     * @param Smarty_Internal_Template $_template         template object
     * @param Smarty                   $smarty            smarty object
     * @param string                   $template_resource resource identifier
     *
     * @return Smarty_Template_Source Source Object
     * @throws SmartyException
     */
    
public static function load(
        
Smarty_Internal_Template $_template null,
        
Smarty $smarty null,
        
$template_resource null
    
) {
        if (
$_template) {
            
$smarty $_template->smarty;
            
$template_resource $_template->template_resource;
        }
        if (empty(
$template_resource)) {
            throw new 
SmartyException('Source: Missing  name');
        }
        
// parse resource_name, load resource handler, identify unique resource name
        
if (preg_match('/^([A-Za-z0-9_-]{2,})[:]([sS]*)$/'$template_resource$match)) {
            
$type $match];
            
$name $match];
        } else {
            
// no resource given, use default
            // or single character before the colon is not a resource type, but part of the filepath
            
$type $smarty->default_resource_type;
            
$name $template_resource;
        }
        
// create new source  object
        
$source = new Smarty_Template_Source($smarty$template_resource$type$name);
        
$source->handler->populate($source$_template);
        if (!
$source->exists && isset($_template->smarty->default_template_handler_func)) {
            
Smarty_Internal_Method_RegisterDefaultTemplateHandler::_getDefaultTemplate($source);
            
$source->handler->populate($source$_template);
        }
        return 
$source;
    }

    
/**
     * Get source time stamp
     *
     * @return int
     */
    
public function getTimeStamp()
    {
        if (!isset(
$this->timestamp)) {
            
$this->handler->populateTimestamp($this);
        }
        return 
$this->timestamp;
    }

    
/**
     * Get source content
     *
     * @return string
     * @throws SmartyException
     */
    
public function getContent()
    {
        return isset(
$this->content) ? $this->content $this->handler->getContent($this);
    }
}
Онлайн: 2
Реклама