/** * 根据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; }
/** * 保存真实组件数据 * * @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; }