当前位置: 首页>>代码示例>>PHP>>正文


PHP Smarty_Template_Source::render方法代码示例

本文整理汇总了PHP中Smarty_Template_Source::render方法的典型用法代码示例。如果您正苦于以下问题:PHP Smarty_Template_Source::render方法的具体用法?PHP Smarty_Template_Source::render怎么用?PHP Smarty_Template_Source::render使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Smarty_Template_Source的用法示例。


在下文中一共展示了Smarty_Template_Source::render方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: render

 /**
  * render template
  *
  * @param  bool $merge_tpl_vars   if true parent template variables merged in to local scope
  * @param  bool $no_output_filter if true do not run output filter
  * @param  bool $display          true: display, false: fetch null: subtemplate
  *
  * @throws Exception
  * @throws SmartyException
  * @return string rendered template output
  */
 public function render($merge_tpl_vars = false, $no_output_filter = true, $display = null)
 {
     $parentIsTpl = isset($this->parent) && $this->parent->_objType == 2;
     if ($this->smarty->debugging) {
         $this->smarty->_debug->start_template($this, $display);
     }
     // checks if template exists
     if (!$this->source->exists) {
         if ($parentIsTpl) {
             $parent_resource = " in '{$this->parent->template_resource}'";
         } else {
             $parent_resource = '';
         }
         throw new SmartyException("Unable to load template {$this->source->type} '{$this->source->name}'{$parent_resource}");
     }
     $save_tpl_vars = null;
     $save_config_vars = null;
     // merge all variable scopes into template
     if ($merge_tpl_vars) {
         // save local variables
         $save_tpl_vars = $this->tpl_vars;
         $save_config_vars = $this->config_vars;
         $ptr_array = array($this);
         $ptr = $this;
         while (isset($ptr->parent)) {
             $ptr_array[] = $ptr = $ptr->parent;
         }
         $ptr_array = array_reverse($ptr_array);
         $parent_ptr = reset($ptr_array);
         $tpl_vars = $parent_ptr->tpl_vars;
         $config_vars = $parent_ptr->config_vars;
         while ($parent_ptr = next($ptr_array)) {
             if (!empty($parent_ptr->tpl_vars)) {
                 $tpl_vars = array_merge($tpl_vars, $parent_ptr->tpl_vars);
             }
             if (!empty($parent_ptr->config_vars)) {
                 $config_vars = array_merge($config_vars, $parent_ptr->config_vars);
             }
         }
         if (!empty(Smarty::$global_tpl_vars)) {
             $tpl_vars = array_merge(Smarty::$global_tpl_vars, $tpl_vars);
         }
         $this->tpl_vars = $tpl_vars;
         $this->config_vars = $config_vars;
     }
     // check URL debugging control
     if (!$this->smarty->debugging && $this->smarty->debugging_ctrl == 'URL') {
         $this->smarty->_debug->debugUrl($this);
     }
     // disable caching for evaluated code
     if ($this->source->handler->recompiled) {
         $this->caching = false;
     }
     // read from cache or render
     $isCacheTpl = $this->caching == Smarty::CACHING_LIFETIME_CURRENT || $this->caching == Smarty::CACHING_LIFETIME_SAVED;
     if ($isCacheTpl) {
         if (!isset($this->cached)) {
             $this->loadCached();
         }
         $this->cached->render($this, $no_output_filter);
     } elseif ($this->source->handler->uncompiled) {
         $this->source->render($this);
     } else {
         if (!isset($this->compiled)) {
             $this->loadCompiled();
         }
         $this->compiled->render($this);
     }
     $content = null;
     if ((!$this->caching || $this->cached->has_nocache_code || $this->source->handler->recompiled) && !$no_output_filter && (isset($this->smarty->autoload_filters['output']) || isset($this->smarty->registered_filters['output']))) {
         $content = Smarty_Internal_Filter_Handler::runFilter('output', ob_get_clean(), $this);
     }
     // display or fetch
     if ($display) {
         if ($this->caching && $this->smarty->cache_modified_check) {
             $this->cached->cacheModifiedCheck($this, isset($content) ? $content : ob_get_clean());
         } else {
             echo isset($content) ? $content : ob_get_clean();
         }
         if ($this->smarty->debugging) {
             $this->smarty->_debug->end_template($this);
         }
         // debug output
         if ($this->smarty->debugging) {
             $this->smarty->_debug->display_debug($this, true);
         }
         if ($merge_tpl_vars) {
             // restore local variables
             $this->tpl_vars = $save_tpl_vars;
//.........这里部分代码省略.........
开发者ID:xuanhoang90,项目名称:XHFramework_2016,代码行数:101,代码来源:smarty_internal_template.php

示例2: render

 /**
  * render template
  *
  * @param  bool      $no_output_filter if true do not run output filter
  * @param  null|bool $display          true: display, false: fetch null: sub-template
  *
  * @return string
  * @throws \SmartyException
  */
 public function render($no_output_filter = true, $display = null)
 {
     $parentIsTpl = isset($this->parent) && $this->parent->_objType == 2;
     if ($this->smarty->debugging) {
         $this->smarty->_debug->start_template($this, $display);
     }
     // checks if template exists
     if (!$this->source->exists) {
         if ($parentIsTpl) {
             $parent_resource = " in '{$this->parent->template_resource}'";
         } else {
             $parent_resource = '';
         }
         throw new SmartyException("Unable to load template {$this->source->type} '{$this->source->name}'{$parent_resource}");
     }
     // disable caching for evaluated code
     if ($this->source->handler->recompiled) {
         $this->caching = false;
     }
     // read from cache or render
     $isCacheTpl = $this->caching == Smarty::CACHING_LIFETIME_CURRENT || $this->caching == Smarty::CACHING_LIFETIME_SAVED;
     if ($isCacheTpl) {
         if (!isset($this->cached)) {
             $this->loadCached();
         }
         $this->cached->render($this, $no_output_filter);
     } elseif ($this->source->handler->uncompiled) {
         $this->source->render($this);
     } else {
         if (!isset($this->compiled)) {
             $this->loadCompiled();
         }
         $this->compiled->render($this);
     }
     // display or fetch
     if ($display) {
         if ($this->caching && $this->smarty->cache_modified_check) {
             $this->smarty->ext->_cacheModify->cacheModifiedCheck($this->cached, $this, isset($content) ? $content : ob_get_clean());
         } else {
             if ((!$this->caching || $this->cached->has_nocache_code || $this->source->handler->recompiled) && !$no_output_filter && (isset($this->smarty->autoload_filters['output']) || isset($this->smarty->registered_filters['output']))) {
                 echo $this->smarty->ext->_filterHandler->runFilter('output', ob_get_clean(), $this);
             } else {
                 ob_end_flush();
                 flush();
             }
         }
         if ($this->smarty->debugging) {
             $this->smarty->_debug->end_template($this);
             // debug output
             $this->smarty->_debug->display_debug($this, true);
         }
         return '';
     } else {
         if ($this->smarty->debugging) {
             $this->smarty->_debug->end_template($this);
             if ($this->smarty->debugging === 2 && $display === false) {
                 $this->smarty->_debug->display_debug($this, true);
             }
         }
         if ($parentIsTpl) {
             if (!empty($this->tpl_function)) {
                 $this->parent->tpl_function = array_merge($this->parent->tpl_function, $this->tpl_function);
             }
             foreach ($this->compiled->required_plugins as $code => $tmp1) {
                 foreach ($tmp1 as $name => $tmp) {
                     foreach ($tmp as $type => $data) {
                         $this->parent->compiled->required_plugins[$code][$name][$type] = $data;
                     }
                 }
             }
         }
         if (!$no_output_filter && (!$this->caching || $this->cached->has_nocache_code || $this->source->handler->recompiled) && (isset($this->smarty->autoload_filters['output']) || isset($this->smarty->registered_filters['output']))) {
             return $this->smarty->ext->_filterHandler->runFilter('output', ob_get_clean(), $this);
         }
         // return cache content
         return null;
     }
 }
开发者ID:ksalter45,项目名称:smarty,代码行数:87,代码来源:smarty_internal_template.php


注:本文中的Smarty_Template_Source::render方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。