Esempio n. 1
0
 /**
  *  copy一份布局并返回布局的信息
  */
 public function get_layout_preview()
 {
     if (!$this->input['layout_id']) {
         $this->errorOutput('LAYOUT OR TEMPLATE ID IS EMPTY');
     }
     $layout_id = intval($this->input['layout_id']);
     $template_id = intval($this->input['template_id']);
     //copy一份此布局里的单元
     $sql = "SELECT * FROM " . DB_PREFIX . "layout_cell WHERE layout_id = " . $layout_id;
     $q = $this->db->query($sql);
     $new_cell_ids = array();
     while ($row = $this->db->fetch_array($q)) {
         $new_cell_name = date('YmdHis') . hg_generate_user_salt(6);
         $find[] = $row['cell_name'];
         $replace[] = $new_cell_name;
         $row['cell_name'] = $new_cell_name;
         $row['cell_code'] = str_replace($row['cell_name'], $new_cell_name, $row['cell_code']);
         $row['original_id'] = $row['id'];
         $row['param_asso'] = addslashes($row['param_asso']);
         unset($row['id'], $row['layout_id']);
         //unset掉layout_id防止更新操作不成功对原始布局产生有影响
         $new_cell_ids[] = $row['id'] = $this->db->insert_data($row, 'layout_cell');
         $row['param_asso'] = unserialize(stripslashes($row['param_asso']));
         $layout_cell[] = $row;
     }
     //布局详细信息
     $condition = ' AND id = ' . $layout_id;
     $layout_info = $this->layout->detail($condition);
     $layout_info['content'] = html_entity_decode($layout_info['content']);
     $layout_info['css'] = html_entity_decode($layout_info['css']);
     //重新生成一份布局
     $layout_info['content'] = str_replace($find, $replace, $layout_info['content']);
     $layout_info['original_id'] = $layout_info['id'];
     unset($layout_info['id']);
     $layout_info['id'] = $this->db->insert_data($layout_info, 'layout');
     if ($new_cell_ids) {
         $this->db->update_data('layout_id=' . $layout_info['id'], 'layout_cell', ' id IN(' . implode(',', $new_cell_ids) . ')');
     }
     $layout_info['content'] = str_replace($find, $replace, $layout_info['content']);
     //布局命名空间和头部处理
     $layout_info = $this->layout->layout_namespace_and_header_process($layout_info);
     $ret = array();
     //处理布局中单元的信息、生成html
     $return_cell = isset($this->input['return_cell']) ? $this->input['return_cell'] : true;
     if ($return_cell) {
         if (!class_exists('Magic')) {
             include CUR_CONF_PATH . 'lib/magic.class.php';
         }
         $objMagic = new Magic();
         foreach ($layout_cell as $k => $v) {
             $layout_cell[$k] = $objMagic->cellProcess($v);
         }
         $ret['cells'] = $layout_cell;
         $ret = array_merge($ret, $layout_info);
     }
     $this->addItem($ret);
     $this->output();
 }
Esempio n. 2
0
 public function cellPreview()
 {
     $intCellId = intval($this->input['intCellId']);
     $arData = $this->input['arData'];
     if (!$intCellId) {
         $this->errorOutput('NO CELLID');
     }
     if (!class_exists('cell')) {
         include CUR_CONF_PATH . 'lib/cell.class.php';
     }
     $objCell = new cell();
     $arCellInfo = $objCell->detail(' AND id = ' . $intCellId);
     if (!class_exists('Magic')) {
         include CUR_CONF_PATH . 'lib/magic.class.php';
     }
     $objMagic = new Magic();
     $arCellInfo = $objMagic->cellProcess($arCellInfo, 'false', $arData);
     $this->addItem($arCellInfo);
     $this->output();
 }
Esempio n. 3
0
 public function cellDataUpdate()
 {
     $intCellId = intval($this->input['intCellId']);
     $intContentId = $this->input['intContentId'];
     if (!$intCellId || !$intContentId) {
         $this->errorOutput('NO ID');
     }
     if (!empty($this->input['arIndexPic'])) {
         $this->input['arIndexPic'] = array('host' => $this->input['arIndexPic']['host'], 'dir' => $this->input['arIndexPic']['dir'], 'filepath' => $this->input['arIndexPic']['filepath'], 'filename' => $this->input['arIndexPic']['filename']);
     }
     $arData = array('title' => $this->input['strTitle'], 'brief' => $this->input['strBrief'], 'content_url' => $this->input['strContentUrl'], 'indexpic' => $this->input['arIndexPic'] ? serialize($this->input['arIndexPic']) : '');
     if (!class_exists('cell')) {
         include CUR_CONF_PATH . 'lib/cell.class.php';
     }
     $objCell = new cell();
     $arContent = $objCell->detail(' AND cell_id = ' . $intCellId . ' AND content_id = ' . $intContentId, 'cell_data');
     if (empty($arContent)) {
         $arData['cell_id'] = $intCellId;
         $arData['content_id'] = $intContentId;
         $this->db->insert_data($arData, 'cell_data');
     } else {
         $this->db->update_data($arData, 'cell_data', 'cell_id = ' . $intCellId . ' AND content_id = ' . $intContentId);
     }
     $arCellInfo = $objCell->detail(' AND id = ' . $intCellId);
     //删除单元内容缓存
     $objCell->delete_cell_data_cache($intCellId);
     //重新处理该单元信息
     if (!class_exists('Magic')) {
         include CUR_CONF_PATH . 'lib/magic.class.php';
     }
     $objMagic = new Magic();
     $arCellInfo = $objMagic->cellProcess($arCellInfo, true);
     $this->addItem($arCellInfo);
     $this->output();
 }