public static function cache_start($tag_arg, &$smarty)
 {
     if (!cms_cache_handler::can_cache()) {
         return '{';
     }
     $tmp = debug_backtrace();
     $bt = array();
     foreach ($tmp as $elem) {
         $bt[] = $elem['file'] . ':' . $elem['line'];
     }
     if (!is_array(self::$_cge_cache_keys)) {
         self::$_cge_cache_keys = array();
         self::$_cge_cache_keystack = array();
     }
     $nn = '';
     while ($nn == '' || $nn < 100) {
         $keyr = 'v' . md5(serialize($bt) . cms_utils::get_current_pageid() . cge_url::current_url());
         $key = $keyr . $nn;
         if (!in_array($key, self::$_cge_cache_keys)) {
             break;
         }
         if ($nn == '') {
             $nn = 1;
         }
         $nn = $nn++;
     }
     if ($key == '') {
         return '{';
     }
     self::$_cge_cache_keys[] = $key;
     self::$_cge_cache_keystack[] = $key;
     $output = "\${$key}=cms_cache_handler::get_instance()->get('{$key}','cge_cache'); if(\${$key}!=''){echo '<!--cge_cache-->'.\${$key};}else{ob_start();";
     return $output;
 }
 public static function cge_tabcontent_end($params, $smarty)
 {
     static $endheader_sent = 0;
     $mod = cms_utils::get_module(MOD_CGEXTENSIONS);
     $out = $mod->EndTab();
     self::$_in_tab = 0;
     if (isset($params['assign'])) {
         $smarty->assign(trim($params['assign']), $out);
         return;
     }
     return $out;
 }