Esempio n. 1
0
 public function preview()
 {
     $id = $this->_request->get_get('node_id');
     $layout = $this->_request->get_get('layout');
     $theme = kernel::single('site_theme_base')->get_default();
     kernel::single('content_article_node')->editor($id, $layout);
     kernel::single('base_session')->close();
     $render = new base_render(app::get('content'));
     $render->force_compile = true;
     $render->_compiler()->set_view_helper('function_header', 'content_article_helper');
     $render->_compiler()->set_view_helper('function_footer', 'content_article_helper');
     $render->_compiler()->set_compile_helper('compile_widgets', kernel::single('content_article_complier'));
     $render->pagedata['include'] = 'content_node:' . $id;
     $render->pagedata['theme'] = $theme;
     $render->display('admin/node/single/frame.html', 'content');
 }
Esempio n. 2
0
 function detail_basic($id)
 {
     $recycle = app::get('desktop')->model('recycle');
     $row = $recycle->dump($id);
     $item_sdf = $row['item_sdf'];
     $obj = app::get($row['app_key'])->model($row['item_type']);
     $schema = $obj->get_schema();
     $render = new base_render($this->app);
     foreach ($item_sdf as $key => $value) {
         if (!is_array($value)) {
             $label = $schema['columns'][$key]['label'];
             $tmp[$label ? $label : $key] = $value;
         }
     }
     $render->pagedata['sdf'] = $tmp;
     $render->display('recycle.html');
 }
Esempio n. 3
0
 function main()
 {
     $finder_aliasname = $_GET['finder_aliasname'] ? $_GET['finder_aliasname'] : $_POST['finder_aliasname'];
     if (!$finder_aliasname || $finder_aliasname == '') {
         $finder_aliasname = 'default';
     }
     if ($_POST['col']) {
         $finder_aliasname = $finder_aliasname . '.' . $this->controller->user->user_id;
         $cols = $this->app->setConf('view.' . $this->object_name . '.' . $finder_aliasname, implode(',', $_POST['col']));
         if ($_POST['allcol']) {
             $this->app->setConf('listorder.' . $this->object_name . '.' . $finder_aliasname, implode(',', $_POST['allcol']));
         }
         header('Content-Type:application/json; charset=utf-8');
         echo '{"success":"' . '设置成功' . '"}';
     } else {
         $in_use = array_flip($this->getColumns());
         $all_columns = $this->all_columns();
         $listorder = explode(',', $this->app->getConf('listorder.' . $this->object_name . '.' . $finder_aliasname . '.' . $this->controller->user->user_id));
         if ($listorder) {
             $ordered_columns = array();
             foreach ($listorder as $col) {
                 if (isset($all_columns[$col])) {
                     $ordered_columns[$col] = $all_columns[$col];
                     unset($all_columns[$col]);
                 }
             }
             $all_columns = array_merge((array) $ordered_columns, (array) $all_columns);
             $ordered_columns = null;
         }
         $render = new base_render(app::get('desktop'));
         $render->pagedata['columns'] = $all_columns;
         $render->pagedata['use'] = array_keys($in_use);
         $render->pagedata['action'] = 'index.php?' . $_SERVER['QUERY_STRING'];
         $render->display('finder/column.html');
     }
 }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
 public 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);
     require APP_DIR . '/base/datatypes.php';
     $this->dbschema = $object->get_schema();
     foreach (vmc::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']) && strpos($v['type'], 'table:') !== false) {
             $columns[$c]['inputer'] = $this->create_objectselect($c, $v);
             continue;
         }
         if (!is_array($v['type'])) {
             if (strpos($v['type'], 'decimal') !== false && $v['filtertype'] == 'number') {
                 $v['type'] = 'number';
             }
         }
         $columns[$c] = $v;
         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';
         }
         if ($v['default_value']) {
             $params['value'] = $v['default_value'];
         }
         $params['label'] = $columns[$c]['label'];
         $inputer = $this->create_input($params);
         $columns[$c]['inputer'] = $inputer;
     }
     $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'=>'标签','inputer'=>$tag_inputer);
     // }
     $render->pagedata['columns'] = $columns;
     $render->pagedata['datatypes'] = $datatypes;
     $render->display('finder/finder_filter.html');
 }