SmartyHelper.php

浏览该文件的文档。
00001 <?php
00003 // FleaPHP Framework
00004 //
00005 // Copyright (c) 2005 - 2008 QeeYuan China Inc. (http://www.qeeyuan.com)
00006 //
00007 // 许可协议,请查看源代码中附带的 LICENSE.txt 文件,
00008 // 或者访问 http://www.fleaphp.org/ 获得详细信息。
00010 
00028 class FLEA_View_SmartyHelper
00029 {
00037     function FLEA_View_SmartyHelper(& $tpl) {
00038         $tpl->register_function('url',          array(& $this, '_pi_func_url'), false);
00039         $tpl->register_function('webcontrol',   array(& $this, '_pi_func_webcontrol'), false);
00040         $tpl->register_function('_t',           array(& $this, '_pi_func_t'), false);
00041         $tpl->register_function('get_app_inf',  array(& $this, '_pi_func_get_app_inf'), false);
00042         $tpl->register_function('dump_ajax_js', array(& $this, '_pi_func_dump_ajax_js'), false);
00043 
00044         $tpl->register_modifier('parse_str',    array(& $this, '_pi_mod_parse_str'));
00045         $tpl->register_modifier('to_hashmap',   array(& $this, '_pi_mod_to_hashmap'));
00046         $tpl->register_modifier('col_values',   array(& $this, '_pi_mod_col_values'));
00047     }
00048 
00052     function _pi_func_url($params)
00053     {
00054         $controllerName = isset($params['controller']) ? $params['controller'] : null;
00055         unset($params['controller']);
00056         $actionName = isset($params['action']) ? $params['action'] : null;
00057         unset($params['action']);
00058         $anchor = isset($params['anchor']) ? $params['anchor'] : null;
00059         unset($params['anchor']);
00060 
00061         $options = array('bootstrap' => isset($params['bootstrap']) ? $params['bootstrap'] : null);
00062         unset($params['bootstrap']);
00063 
00064         $args = array();
00065         foreach ($params as $key => $value) {
00066             if (is_array($value)) {
00067                 $args = array_merge($args, $value);
00068                 unset($params[$key]);
00069             }
00070         }
00071         $args = array_merge($args, $params);
00072 
00073         return url($controllerName, $actionName, $args, $anchor, $options);
00074     }
00075 
00079     function _pi_func_webcontrol($params)
00080     {
00081         $type = isset($params['type']) ? $params['type'] : 'textbox';
00082         unset($params['type']);
00083         $name = isset($params['name']) ? $params['name'] : null;
00084         unset($params['name']);
00085 
00086         $ui =& FLEA::initWebControls();
00087         return $ui->control($type, $name, $params, true);
00088     }
00089 
00093     function _pi_func_t($params)
00094     {
00095         return _T($params['key'], isset($params['lang']) ? $params['lang'] : null);
00096     }
00097 
00101     function _pi_func_get_app_inf($params)
00102     {
00103         return FLEA::getAppInf($params['key']);
00104     }
00105 
00109     function _pi_func_dump_ajax_js($params)
00110     {
00111         $wrapper = isset($params['wrapper']) ? (bool)$params['wrapper'] : true;
00112         $ajax =& FLEA::initAjax();
00113         /* @var $ajax FLEA_Ajax */
00114         return $ajax->dumpJs(true, $wrapper);
00115     }
00116 
00120     function _pi_mod_parse_str($string)
00121     {
00122         $arr = array();
00123         parse_str(str_replace('|', '&', $string), $arr);
00124         return $arr;
00125     }
00126 
00130     function _pi_mod_to_hashmap($data, $f_key, $f_value = '')
00131     {
00132         $arr = array();
00133         if (!is_array($data)) { return $arr; }
00134         if ($f_value != '') {
00135             foreach ($data as $row) {
00136                 $arr[$row[$f_key]] = $row[$f_value];
00137             }
00138         } else {
00139             foreach ($data as $row) {
00140                 $arr[$row[$f_key]] = $row;
00141             }
00142         }
00143         return $arr;
00144     }
00145 
00149     function _pi_mod_col_values($data, $f_value)
00150     {
00151         $arr = array();
00152         if (!is_array($data)) { return $arr; }
00153         foreach ($data as $row) {
00154             $arr[] = $row[$f_value];
00155         }
00156         return $arr;
00157     }
00158 }

Generated at Sat Feb 2 15:18:51 2008 for FleaPHP by  doxygen 1.5.3