gluon-web-remote

Web remote Administration for big size of gluon routers
git clone git://archive.git.mtrnord.blog/MTRNord/gluon-web-remote.git
Log | Files | Refs | README

smarty_internal_resource_string.php (2837B)


      1 <?php
      2 /**
      3  * Smarty Internal Plugin Resource String
      4  *
      5  * @package    Smarty
      6  * @subpackage TemplateResources
      7  * @author     Uwe Tews
      8  * @author     Rodney Rehm
      9  */
     10 
     11 /**
     12  * Smarty Internal Plugin Resource String
     13  * Implements the strings as resource for Smarty template
     14  * {@internal unlike eval-resources the compiled state of string-resources is saved for subsequent access}}
     15  *
     16  * @package    Smarty
     17  * @subpackage TemplateResources
     18  */
     19 class Smarty_Internal_Resource_String extends Smarty_Resource
     20 {
     21     /**
     22      * populate Source Object with meta data from Resource
     23      *
     24      * @param  Smarty_Template_Source   $source    source object
     25      * @param  Smarty_Internal_Template $_template template object
     26      *
     27      * @return void
     28      */
     29     public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
     30     {
     31         $source->uid = $source->filepath = sha1($source->name);
     32         $source->timestamp = 0;
     33         $source->exists = true;
     34     }
     35 
     36     /**
     37      * Load template's source from $resource_name into current template object
     38      *
     39      * @uses decode() to decode base64 and urlencoded template_resources
     40      *
     41      * @param  Smarty_Template_Source $source source object
     42      *
     43      * @return string                 template source
     44      */
     45     public function getContent(Smarty_Template_Source $source)
     46     {
     47         return $this->decode($source->name);
     48     }
     49 
     50     /**
     51      * decode base64 and urlencode
     52      *
     53      * @param  string $string template_resource to decode
     54      *
     55      * @return string decoded template_resource
     56      */
     57     protected function decode($string)
     58     {
     59         // decode if specified
     60         if (($pos = strpos($string, ':')) !== false) {
     61             if (!strncmp($string, 'base64', 6)) {
     62                 return base64_decode(substr($string, 7));
     63             } elseif (!strncmp($string, 'urlencode', 9)) {
     64                 return urldecode(substr($string, 10));
     65             }
     66         }
     67 
     68         return $string;
     69     }
     70 
     71     /**
     72      * modify resource_name according to resource handlers specifications
     73      *
     74      * @param  Smarty  $smarty        Smarty instance
     75      * @param  string  $resource_name resource_name to make unique
     76      * @param  boolean $isConfig      flag for config resource
     77      *
     78      * @return string unique resource name
     79      */
     80     public function buildUniqueResourceName(Smarty $smarty, $resource_name, $isConfig = false)
     81     {
     82         return get_class($this) . '#' . $this->decode($resource_name);
     83     }
     84 
     85     /**
     86      * Determine basename for compiled filename
     87      * Always returns an empty string.
     88      *
     89      * @param  Smarty_Template_Source $source source object
     90      *
     91      * @return string                 resource's basename
     92      */
     93     public function getBasename(Smarty_Template_Source $source)
     94     {
     95         return '';
     96     }
     97 }