public function input_category($params) { $mdl_goods_cat = app::get('b2c')->model('goods_cat'); $render = new base_render(app::get('b2c')); $params['cat_openapi'] = vmc::openapi_url('openapi.goods', 'catalog'); $params['cat_path_openapi'] = vmc::openapi_url('openapi.goods', 'catalog_path'); $params['domid'] = substr(md5(uniqid()), 0, 6); $render->pagedata['tree_data_root'] = $mdl_goods_cat->get_tree(); if ($params['value'] && $params['value'] > 0) { $cat = $mdl_goods_cat->getRow('cat_path,cat_id', array('cat_id' => $params['value'])); if ($cat) { $cat_path = $cat['cat_path']; $cat_path_arr = explode(',', $cat_path); $cat_path_length = count($cat_path_arr); $render->pagedata['root'] = $cat_path_arr[0]; $render->pagedata['cat_path_length'] = $cat_path_length; foreach ($cat_path_arr as $k => $cat_id) { $clist = $mdl_goods_cat->get_tree($cat_id); if ($clist) { $tree_data[$cat_id] = $clist; if ($tree_data[$cat_id][$cat_path_arr[$k + 1]]) { $tree_data[$cat_id][$cat_path_arr[$k + 1]]['selected'] = true; } } } $render->pagedata['tree_data'] = $tree_data; } } $render->pagedata['params'] = $params; return $render->fetch('common/category.html'); }
public function function_WIDGET_CONTENT_NODE($params, &$smarty) { $tree = vmc::singleton('content_openapi_node')->tree($params, true); $render = new base_render(app::get('content')); $render->pagedata['tree'] = $tree; $render->pagedata['class_name'] = $params['class']; $render->pagedata['target'] = $params['target']; return $render->fetch('widget/node_tree.html'); }
public function input_country($params) { $render = new base_render(app::get('ectools')); if (!$params['id']) { $params['id'] = substr(md5(uniqid()), 0, 6); } $render->pagedata['params'] = $params; $mdl_country = app::get('ectools')->model('country'); $country_list = $mdl_country->getList('*'); foreach ($country_list as $key => &$value) { $value['flag'] = app::get('ectools')->res_url . '/misc/flags/' . strtolower($value['ct_abbreviation']) . '.png'; } $render->pagedata['country_list'] = $country_list; return $render->fetch('common/country.html'); }
function input_goodsfilter($params) { $render = new base_render(app::get('b2c')); $obj_type = app::get('b2c')->model('goods_type'); parse_str($params['value']['items'], $value); $params = array('gtype' => $obj_type->getList('*', null, 0, -1), 'view' => 'admin/goods/finder_filter.html', 'params' => $params['params'], 'json' => json_encode($data), 'data' => $value, 'from' => $params['value']['items'], 'domid' => substr(md5(rand(0, time())), 0, 6)); $type_id = 1; $params['value']['items'] = $value; if ($params['value']['items']['type_id']) { $type_id = $params['value']['items']['type_id']; } $render->pagedata['params'] = $params; $goods_filter = kernel::single('b2c_goods_goodsfilter'); $return = $goods_filter->goods_goodsfilter($type_id, app::get('b2c')); $render->pagedata['filter'] = $return; $render->pagedata['type_id'] = $type_id; return $render->fetch('admin/goods/goods_filter.html'); }
function input_refer($params) { $render = new base_render(app::get('bdlink')); if ($params['id'] && $params['name']) { $filter = array('target_id' => $params['id'], 'target_type' => $params['ident']); if (empty($params['show'])) { $render->pagedata['show'] = array('refer_id', 'refer_url'); } else { $render->pagedata['show'] = explode(',', $params['show']); } $render->pagedata['name'] = $params['name']; $params = kernel::single('bdlink_mdl_link')->getList('*', $filter, 0, 1); if ($params[0]) { $render->pagedata['params'] = $params[0]; return $render->fetch('show_link.html'); } else { return false; } } else { return false; } }
function input_htmllink($params) { $id = 'mce_' . substr(md5(rand(0, time())), 0, 6); $includeBase = $params['includeBase'] ? $params['includeBase'] : true; $params['id'] = $id; $img_src = app::get('desktop')->res_url; $render = new base_render(app::get('weixin')); $render->pagedata['id'] = $id; $render->pagedata['img_src'] = $img_src; $render->pagedata['includeBase'] = $includeBase; if (!$params['height']) { $params['height'] = '300px'; } if (!$params['title']) { $params['title'] = app::get('weixin')->_('超级链接'); } if (!$params['link']) { $params['link'] = 'index.php?app=weixin&ctl=admin_setting&act=link_view'; } $render->pagedata['params'] = $params; $style2 = $render->fetch('editor/html_style2.html'); $html = $style2; return $html; }
function main($object_name, $app, $filter = null, $controller = null, $cusrender = null) { if (strpos($_GET['object'], '@') !== false) { $tmp = explode('@', $object_name); $app = app::get($tmp[1]); $object_name = $tmp[0]; } $object = $app->model($object_name); $ui = new base_component_ui($this->controller, $app); require APP_DIR . '/base/datatypes.php'; $this->dbschema = $object->get_schema(); $finder_id = $_GET['_finder']['finder_id']; foreach (kernel::servicelist('extend_filter_' . get_class($object)) as $extend_filter) { $colums = $extend_filter->get_extend_colums($this->finder_aliasname); if ($colums[$object_name]) { $this->dbschema['columns'] = array_merge((array) $this->dbschema['columns'], (array) $colums[$object_name]['columns']); } } foreach ($this->dbschema['columns'] as $c => $v) { if (!$v['filtertype']) { continue; } if (isset($filter[$c])) { continue; } if (!is_array($v['type'])) { if (strpos($v['type'], 'decimal') !== false && $v['filtertype'] == 'number') { $v['type'] = 'number'; } } $columns[$c] = $v; if (!is_array($v['type']) && $v['type'] != 'bool' && isset($datatypes[$v['type']]) && isset($datatypes[$v['type']]['searchparams'])) { $addon = '<select search="1" name="_' . $c . '_search" class="x-input-select inputstyle">'; foreach ($datatypes[$v['type']]['searchparams'] as $n => $t) { $addon .= "<option value='{$n}'>{$t}</option>"; } $addon .= '</select>'; } elseif ($v['type'] == 'skunum') { $addon = '<select search="1" name="_' . $c . '_search" class="x-input-select inputstyle">'; $__select = array('nequal' => app::get('base')->_('='), 'than' => app::get('base')->_('>'), 'lthan' => app::get('base')->_('<')); foreach ($__select as $n => $t) { $addon .= "<option value='{$n}'>{$t}</option>"; } $addon .= '</select>'; } else { if ($v['type'] != 'bool') { $addon = app::get('desktop')->_('是'); } else { $addon = ''; } } $columns[$c]['addon'] = $addon; if ($v['type'] == 'last_modify') { $v['type'] = 'time'; } $params = array('type' => $v['type'], 'name' => $c); if ($v['type'] == 'bool' && $v['default']) { $params = array_merge(array('value' => $v['default']), $params); } if ($this->name_prefix) { $params['name'] = $this->name_prefix . '[' . $params['name'] . ']'; } if ($v['type'] == 'region') { $params['app'] = 'ectools'; } $inputer = $ui->input($params); $columns[$c]['inputer'] = $inputer; } if ($cusrender) { return array('filter_cols' => $columns, 'filter_datatypes' => $datatypes); } $render = new base_render(app::get('desktop')); if ($object->has_tag) { $render->pagedata['app_id'] = $app->app_id; $render->pagedata['tag_type'] = $object_name; $tag_inputer = $render->fetch('finder/tag_inputer.html'); $columns['tag'] = array('filtertype' => true, 'filterdefault' => true, 'label' => app::get('desktop')->_('标签'), 'inputer' => $tag_inputer); } if (is_null($this->finder)) { $render->pagedata['panel_id'] = '_c'; } else { $render->pagedata['panel_id'] = $this->finder->getId(); } $render->pagedata['columns'] = $columns; $render->pagedata['datatypes'] = $datatypes; $render->pagedata['finder_id'] = $finder_id; return $render->display($this->finder->getFile(), $app->app_id, true); }
public function main() { $this->html_script = ''; $this->html_header = ''; $this->html_body = ''; $this->html_footer = ''; $this->html_pager = ''; $this->html_actions = ''; $this->html_dialog = ''; $this->short_object_name = substr($this->object_name, strpos($this->object_name, '_mdl_') + 5); $this->__view = $this->get_views(); if (count($this->__view) && $this->use_view_tab) { $this->tab_view_count = 0; foreach ((array) $this->__view as $view) { if ($view['addon']) { $this->tab_view_count += $view['addon']; } } if (!$_GET['view']) { $default_view = reset($this->__view); $view_filter = $default_view['filter']; } else { $view_filter = (array) $this->__view[$_GET['view']]['filter']; // 如果有view_tab的情况下,则将当前view的总数记下,减少同一finder两次进行count计算,增加性能 if ($this->__view[$_GET['view']]['addon'] != '_FILTER_POINT_') { $this->current_view_count = $this->__view[$_GET['view']]['addon']; } } } $this->__view_filter = $view_filter; if ($_GET['filter']) { $get_filter = (array) $_GET['filter']; if (!is_array($_GET['filter'])) { if (isset($_GET['filter']) && ($_GET['filter'] = (array) unserialize(urldecode($_GET['filter'])))) { $get_filter = (array) $_GET['filter']; } } } #if( $_POST ) $view_filter = array(); $this->params = array_merge((array) $this->base_filter, (array) $get_filter, (array) $view_filter, (array) $_POST); /* 用于打开的input_object object_base_filter **/ if (isset($_GET['obj_filter']) && $_GET['obj_filter']) { $this->params = array_merge($this->params, array('obj_filter' => $_GET['obj_filter'])); } unset($this->params['_finder']); foreach ($this->params as $k => $v) { if (!is_array($v) && $v !== false) { $this->params[$k] = urldecode(trim($v)); } if ($this->params[$k] === '') { unset($this->params[$k]); } } $this->getColumns(); $this->getOrderBy(); $this->pagelimit = $this->getPageLimit(); if ($this->detail_pages) { $this->detail_url = $this->url . '&action=detail'; } $render = $this->render = new base_render(app::get('desktop')); $render->pagedata['title'] = $this->title; $render->pagedata['name'] = $this->name; $render->pagedata['url'] = $this->url; // finder列表顶部自定义显示html信息 if ($this->finder_extra_view) { $render->pagedata['finder_extra'] = ''; foreach ($this->finder_extra_view as $view) { $_render = new base_render(app::get($view['app'])); $_render->pagedata = $render->pagedata; $_render->pagedata['extra_pagedata'] = $view['extra_pagedata']; $render->pagedata['finder_extra'] .= $_render->fetch($view['view']); } } $this->createView(); $this->_pager(); $output = ''; if (!$this->object_select_model) { $output .= $this->controller->sidebar_active(); } else { $render->pagedata['object_select_model'] = 'true'; $render->pagedata['selectrow_type'] = $this->selectrow_type; } $this->_actions(); $this->html_subheader = $render->fetch('finder/view/subheader.html'); $this->_header($this->html_subheader); $this->_footer($this->html_pager); $this->html_pager = $render->fetch('finder/view/pager.html'); $this->html_body = $render->fetch('finder/view/body.html'); $this->html_dialog = $this->_dialog(); $output .= $render->fetch('finder/view/finder_title.html') . $this->html_actions . $this->html_header . $this->html_body . $this->html_footer . $this->html_dialog; echo $output; return $output; }
function input_goods_select($params) { $return_url = $params['return_url'] ? $params['return_url'] : 'index.php?app=desktop&ctl=editor&act=object_rows'; $callback = $params['callback'] ? $params['callback'] : ''; $init = $params['data']['init'] ? $params['data']['init'] : ''; $params['breakpoint'] = isset($params['breakpoint']) ? $params['breakpoint'] : 20; $object = $params['object']; if (strpos($params['object'], '@') !== false) { list($object, $app_id) = explode('@', $params['object']); $params['object'] = $object; } elseif ($params['app']) { $app_id = $params['app']; } else { $app_id = $this->app->app_id; } $app = app::get($app_id); $o = $app->model($object); $render = new base_render(app::get('b2c')); $ui = new base_component_ui($app); $dbschema = $o->get_schema(); $params['app_id'] = $app_id; if (isset($params['filter'])) { if (!is_array($params['filter'])) { parse_str($params['filter'], $params['filter']); } } $params['domid'] = substr(md5(uniqid()), 0, 6); $key = $params['key'] ? $params['key'] : $dbschema['idColumn']; $textcol = $params['textcol'] ? $params['textcol'] : $dbschema['textColumn']; //显示列 可以多列显示 不完全修改 。。。。。。。 $textcol = explode(',', $textcol); $_textcol = $textcol; $textcol = $textcol[0]; $tmp_filter = $params['filter'] ? $params['filter'] : null; $count = $o->count($tmp_filter); if ($count <= $params['breakpoint'] && !$params['multiple'] && $params['select'] != 'checkbox') { if (strpos($textcol, '@') === false) { $list = $o->getList($key . ',' . $textcol, $tmp_filter); if (!$list[0]) { $type = array(); } foreach ($list as $row) { $label = $row[$textcol]; if (!$label && method_exists($o, 'title_modifier')) { $label = $o->title_modifier($row[$key]); } $type[$row[$key]] = $label; } } else { list($name, $table, $app_id) = explode('@', $textcol); $app = $app_id ? app::get($app_id) : $app; $mdl = $app->model($table); $list = $o->getList($key, $tmp_filter); foreach ($list as $row) { $tmp_row = $mdl->getList($name, array($mdl->idColumn => $row[$key]), 0, 1); $label = $tmp_row[0][$name]; if (!$label && method_exists($o, 'title_modifier')) { $label = $o->title_modifier($row[$key]); } $type[$row[$key]] = $label; } } $tmp_params['name'] = $params['name']; $tmp_params['value'] = $params['value']; $tmp_params['type'] = $type; if ($callback) { $tmp_params['onchange'] = $callback . '(this)'; } $str_filter = $ui->input($tmp_params); unset($tmp_params); return $str_filter; } $params['idcol'] = $keycol['keycol'] = $key; $params['textcol'] = implode(',', $_textcol); $params['_textcol'] = $_textcol; unset($params['app']); if ($params['data']) { $_params = (array) $params['data']; unset($params['data']); $params = array_merge($params, $_params); } if (is_array($params['items'])) { foreach ($params['items'] as $key => $item) { $items[$key] = $item[$params['idcol']]; } } $params['return_url'] = urlencode($params['return_url']); $vars = $params; $vars['items'] = $items; $object = utils::http_build_query($vars); $url = 'index.php?app=b2c&ctl=admin_goods&act=finder_goods_select'; $render->pagedata['string'] = $string; $render->pagedata['url'] = $url; $render->pagedata['return_url'] = $return_url; $render->pagedata['id'] = $id; $render->pagedata['params'] = $params; $render->pagedata['object'] = $object; $render->pagedata['callback'] = $callback; $render->pagedata['init'] = $init; $render->pagedata['value'] = $params['value']; /** 得到商品的数量 **/ if ($params['value']) { $arr_values = json_decode($params['value']); $render->pagedata['goods_cnt'] = count($arr_values); } return $render->fetch('admin/goods/input_radio.html'); }
function main() { $this->html_script = ''; $this->html_header = ''; $this->html_body = ''; $this->html_footer = ''; $this->html_pager = ''; $this->html_actions = ''; $this->short_object_name = substr($this->object_name, strpos($this->object_name, '_mdl_') + 5); $this->__view = $this->get_views(); if (count($this->__view) && $this->use_view_tab) { $this->tab_view_count = 0; foreach ((array) $this->__view as $view) { if ($view['addon']) { $this->tab_view_count += $view['addon']; } } $view_filter = (array) $this->__view[$_GET['view']]['filter']; } $this->__view_filter = $view_filter; if ($_GET['filter']) { $get_filter = (array) $_GET['filter']; if (!is_array($_GET['filter'])) { if (isset($_GET['filter']) && ($_GET['filter'] = (array) unserialize(urldecode($_GET['filter'])))) { $get_filter = (array) $_GET['filter']; } } } #if( $_POST ) $view_filter = array(); $this->params = array_merge((array) $this->base_filter, (array) $get_filter, (array) $view_filter, (array) $_POST); /** 用于打开的input_object object_base_filter **/ if (isset($_GET['obj_filter']) && $_GET['obj_filter']) { $this->params = array_merge($this->params, array('obj_filter' => $_GET['obj_filter'])); } unset($this->params['_finder']); foreach ($this->params as $k => $v) { if (!is_array($v) && $v !== false) { $this->params[$k] = trim($v); } if ($this->params[$k] === '') { unset($this->params[$k]); } } $this->getColumns(); $this->getOrderBy(); $this->pagelimit = $this->getPageLimit(); $this->var_name = 'window.finderGroup[\'' . $this->name . '\']'; if ($this->detail_pages) { $this->detail_url = $this->url . '&action=detail&finder_id=' . $this->name; } $render = $this->render = new base_render(app::get('desktop')); $render->pagedata['title'] = $this->title; $render->pagedata['name'] = $this->name; $render->pagedata['var_name'] = $this->var_name; $render->pagedata['url'] = $this->url; $render->pagedata['use_save_filter'] = $this->use_save_filter; if ($this->top_extra_view) { $render->pagedata['top_extra'] = ""; foreach ($this->top_extra_view as $app => $view) { $_render = new base_render(app::get($app)); $_render->pagedata = $render->pagedata; $render->pagedata['top_extra'] .= $_render->fetch($view); } } $this->createView(); $this->_pager(); $output = ''; if (!$_POST['_finder']['in_pager']) { $output .= $this->controller->sidePanel(); $this->_script(); $output .= $this->html_script; $this->_actions(); $this->_header($this->html_subheader); $this->_footer($this->html_pager); $output .= '<!-----.mainHead-----' . $render->fetch('finder/view/finder_title.html') . $this->html_actions . $this->html_header . '-----.mainHead----->' . $this->html_body . '<!-----.mainFoot-----' . $this->html_footer . '-----.mainFoot----->'; } else { $output .= '<!-----.pager-----' . $this->html_pager . '-----.pager----->' . $this->html_body . '<!-----.innerheader-----' . $this->html_subheader . '-----.innerheader----->'; } echo $output; return $output; }
function input_html($params) { $id = 'mce_' . substr(md5(rand(0, time())), 0, 6); $editor_type = app::get('desktop')->getConf("system.editortype"); $editor_type == '' ? $editor_type = 'wysiwyg' : ($editor_type = 'wysiwyg'); $includeBase = $params['includeBase'] ? $params['includeBase'] : true; $params['id'] = $id; $img_src = app::get('desktop')->res_url; $render = new base_render(app::get('desktop')); $render->pagedata['id'] = $id; $render->pagedata['img_src'] = $img_src; $render->pagedata['includeBase'] = $includeBase; $render->pagedata['params'] = $params; $style2 = $render->fetch('editor/html_style2.html'); if ($editor_type == 'textarea' || $params['editor_type'] == 'textarea') { $html = $style2; } else { $style1 = $render->fetch('editor/html_style1.html'); $html = $style1; $html .= $style2; } return $html; }
function input_soucecode($params) { $render = new base_render(app::get('desktop')); $id = 'sh_' . substr(md5(rand(0, time())), 0, 6); $params['id'] = $id; $params['res_url'] = app::get('desktop')->res_url; $render->pagedata = $params; return $render->fetch('editor/syntax_highlighter.html'); }
public function function_WIDGET_B2C_GOOD_HOT($params, &$smarty) { $render = new base_render(app::get($params['app'])); return $render->fetch('widget/hot.goods.html'); }