00001 <?php
00003
00004
00005
00006
00007
00008
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
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 }