Example #1
0
 /**
  * 根据template_id获取页面数据
  *
  * @param  string $template_id 控件的模板id
  * @param  int    $page_type   页面类型
  * @return array 返回josn对象
  */
 private function get_page_data($template_id, $page_type = 0)
 {
     $page_data = $this->page_model->get_page($template_id, $page_type);
     $data = array();
     $data['page_id'] = $page_data['Data']['ID'];
     $data['page_type'] = $page_data['Data']['Type'];
     foreach ($page_data['Data']['Layouts']['Layout'] as $layout_value) {
         $l_data = array();
         $l_data['layout_template_id'] = $layout_value['Definition']['ID'];
         $l_data['layout_id'] = $layout_value['ID'];
         $l_data['index'] = $layout_value['Index'];
         if (!empty($layout_value['Controls']['Control'])) {
             $arrControls = $layout_value['Controls']['Control'];
             //important:此处判断wcf是否只返回一条记录,由于处理xml数据的问题,如果是一条记录,则需要进行数据转换
             if (!empty($arrControls['ID'])) {
                 $arrControls = array();
                 $arrControls[] = $layout_value['Controls']['Control'];
             }
             foreach ($arrControls as $control_value) {
                 $c_data = change_to_control_array($control_value);
                 $l_data['control_data'][] = $c_data;
             }
         }
         $data['layout_data'][] = $l_data;
     }
     //print_r($data);
     return $data;
 }
Example #2
0
 /**
  * 保存真实组件数据
  *
  * @return array
  */
 private function save_user_control()
 {
     $control_id = $this->common->get('id');
     $page_id = $this->common->get('pid');
     $theme_id = $this->common->get('default_theme_id');
     $control_template_id = $this->common->get('mid');
     $control_name = $this->common->get('title');
     $template_id = $this->common->get('template_id');
     $properties = array();
     $params = new stdClass();
     $UpdateControl = new stdClass();
     $data = $this->common->get_all_post();
     foreach ($data as $key => &$value) {
         if (is_array($value)) {
             //去掉bom乱码
             foreach ($value as $k => &$val) {
                 $val = $this->common->filter_string($val);
             }
             $value = implode('||', $value);
         } else {
             $value = $this->common->filter_string($value);
         }
         $arrProperties = array('Name' => $key, 'Value' => $value);
         $properties[] = $this->common->array_to_object($arrProperties);
     }
     $UpdateControl->ID = $control_id;
     $UpdateControl->Properties = $properties;
     $params->UpdateControl = $UpdateControl;
     //保存数据
     $result['result'] = $this->control_model->update_control_instance($params);
     $result['result'] = $result['result'] == true ? 1 : $result['result'];
     $result['message'] = $this->common->get_return_message($result['result']);
     //重新渲染控件
     $data['control_id'] = $control_id;
     $data['control_name'] = $control_name;
     $data['control_template_id'] = $control_template_id;
     $control_data = $this->control_model->get_control_by_id($control_id);
     $control_data = $control_data['Data'];
     $data = change_to_control_array($control_data);
     //获取页面全局数据
     $g_data = $this->get_theme_data($theme_id);
     //获取分类
     $category_data = $this->get_template_category_data();
     $this->assign('arrCategoryData', $category_data);
     $result['html'] = $this->get_control_html($control_template_id, $data, $g_data);
     return $result;
 }