function update_tem() { /*if($this->user['group_type'] > MAX_ADMIN_TYPE) { $action = $this->user['prms']['app_prms'][APP_UNIQUEID]['nodes']; if(!in_array('deploy_tem',$action)) { $this->errorOutput("NO_PRIVILEGE"); } }*/ /*模板 权限验证预处理 start*/ $need_auth = 0; //$auth_page_self存储授权页面本身、$auth_page_parents存储授权栏目父级页面 $auth_site = $auth_site_self = $auth_page = $auth_column = $auth_page_self = $auth_page_parents = array(); if ($this->user['group_type'] > MAX_ADMIN_TYPE) { $need_auth = 1; $auth_node = $this->user['prms']['app_prms'][APP_UNIQUEID]['nodes']; if ((is_array($auth_node) ? implode(',', $auth_node) : $auth_node) == 1) { $need_auth = 0; //1表示全选 不需要验证权限 } $auth_node = is_array($auth_node) ? $auth_node : explode(',', $auth_node); if ($need_auth) { foreach ((array) $auth_node as $k => $v) { switch ($v) { case strstr($v, "site") !== false: $v = str_replace("site", "", $v); $v = explode($this->settings['separator'], $v); $auth_site[] = $auth_site_self[] = $v[0]; break; case strstr($v, "page_id") !== false: $v = str_replace("page_id", "", $v); $v = explode($this->settings['separator'], $v); $auth_site[] = $v[0]; $auth_page[] = $auth_page_self[] = $v[1]; break; case strstr($v, "page_data_id") !== false: $v = str_replace("page_data_id", "", $v); $v = explode($this->settings['separator'], $v); $auth_site[] = $v[0]; $auth_page[] = $auth_page_parents[] = $v[1]; $auth_column[$v[1]][] = $v[2]; break; default: break; } } } } /*模板 权限验证预处理 end*/ $data = json_decode(html_entity_decode($this->input['data']), true); if ($data['title'] && is_array($data['title'])) { include_once CUR_CONF_PATH . "lib/rebuild_deploy.class.php"; $rebuild_deploy = new rebuilddeploy(); $group_id = intval($this->input['group_id']); if (!$group_id) { $sql = "select group_id from " . DB_PREFIX . "deploy_template order by group_id DESC limit 1"; $groupdetail = $this->db->query_first($sql); $group_id = intval($groupdetail['group_id']) + 1; } else { $sql = "delete from " . DB_PREFIX . "deploy_template where group_id={$group_id}"; $this->db->query($sql); } foreach ($data['title'] as $k => $v) { $fid = $v['id']; $page_id = 0; $page_data_id = 0; if (strstr($fid, "site") !== false) { $site_id = str_replace('site', '', $fid); } else { if (strstr($fid, "page_id") !== false) { $page_id = intval(str_replace('page_id', '', $fid)); $page_detail = common::get_page_by_id($page_id); $site_id = $page_detail['site_id']; } else { if (strstr($fid, "page_data_id") !== false) { $page_data_id = str_replace('page_data_id', '', $fid); $get_page = explode($this->settings['separator'], $page_data_id); $page_id = $get_page[0]; $page_data_id = $get_page[1]; $page_detail = common::get_page_by_id($page_id); $site_id = $page_detail['site_id']; } else { continue; } } } $sql = "delete from " . DB_PREFIX . "deploy_template where site_id={$site_id} and page_id={$page_id} and page_data_id={$page_data_id}"; $this->db->query($sql); if ($data['page'] && is_array($data['page'])) { foreach ($data['page'] as $kk => $vv) { $this->update($site_id, $page_id, $page_data_id, $vv['content_type'], $vv['sign'], $v['title'], $v['full_title'], $group_id); } } $rebuild_deploy->rebuild_deploy($site_id, $page_id, $page_data_id); } } $content_type = $this->pub_content->get_all_content_type(); $ret['site'] = common::get_deploy_templates($site_id, 0, 0); if ($need_auth) { if (!in_array($site_id, $auth_site_self)) { $ret['no_auth_site'] = 1; //是否已经授权站点 } } $page_info = array(); $sql = "select * from " . DB_PREFIX . "deploy_template where site_id=" . $site_id . " and page_id!=0 order by group_id DESC,content_type,id"; $info = $this->db->query($sql); while ($row = $this->db->fetch_array($info)) { if ($need_auth) { //只显示授权节点和授权节点孩子节点 if ($row['site_id'] && !$row['page_id'] && !$row['page_data_id']) { //授权节点本身 显示 if (!in_array($row['site_id'], $auth_site_self)) { continue; } } if ($row['site_id'] && $row['page_id'] && !$row['page_data_id']) { //授权节点本身或者孩子节点 显示 if (!in_array($row['page_id'], $auth_page_self) && !in_array($row['site_id'], $auth_site_self)) { continue; } } if ($row['site_id'] && $row['page_id'] && $row['page_data_id']) { $cur_page_auth_column = isset($auth_column[$row['page_id']]) ? $auth_column[$row['page_id']] : array(); //授权节点本身或者孩子节点 显示 if (!in_array($row['page_data_id'], $cur_page_auth_column) && !in_array($row['page_id'], $auth_page_self) && !in_array($row['site_id'], $auth_site_self)) { $page_data = common::get_page_data($row['page_id'], 0, 1, 0, $page_info[$row['page_id']], $row['page_data_id']); $page_info[$row['page_id']] = $page_data['page_info']; //记录page信息 下次调用common::get_page_data方法时使用 foreach ((array) $page_data['page_data'] as $k => $v) { $auth_column_parents[$v['id']] = $v['parents']; } //栏目孩子节点显示 if (!array_intersect(explode(',', $auth_column_parents[$row['page_data_id']]), $cur_page_auth_column)) { continue; } } } } $use_content_type[$row['content_type']] = $row['content_type']; if ($row['site_id'] && !$row['page_id'] && !$row['page_data_id']) { continue; $page_title_id = 'site' . $row['site_id']; } else { if ($row['page_id'] && !$row['page_data_id']) { $page_title_id = 'page_id' . $row['page_id']; } else { $page_title_id = 'page_data_id' . $row['page_id'] . '_' . $row['page_data_id']; } } if (!isset($page_title_c[$row['group_id']][$row['site_id']][$row['page_id']][$row['page_data_id']])) { $page_title[$row['group_id']][] = array('id' => $page_title_id, 'title' => $row['title'], 'full_title' => $row['full_title']); $page_title_c[$row['group_id']][$row['site_id']][$row['page_id']][$row['page_data_id']] = $row['id']; } if ($row['content_type'] > 0) { $page[$row['group_id']][$row['content_type']] = array('content_type' => $content_type[$row['content_type']], 'dep' => $row); } else { $page[$row['group_id']][$row['content_type']] = array('content_type' => array('content_type' => !$row['content_type'] ? '首页' : '列表页'), 'dep' => $row); } } $ret['content_type'] = $content_type; $ret['page_title'] = $page_title; $ret['page'] = $page; $this->addItem($ret); $this->output(); }
public function update() { $defaulttype = array(); $site_id = intval($this->input['site_id']); $page_id = intval($this->input['page_id']); $page_data_id = intval($this->input['page_data_id']); $page_data_fid = intval($this->input['page_data_fid']); $title = $this->input['title']; //获取站点支持的客户端 $site_detail = $this->pub_config->get_site_client($site_id); $support_client = explode(',', $site_detail['site']['support_client']); $set_type = $this->settings['site_col_template']; if ($site_id && !$page_id) { //有内容,查出内容类型 $content_type = $this->pub_content->get_all_content_type(); foreach ($content_type as $k => $v) { $set_type[$v['id']] = $v['content_type']; } } else { if ($page_id) { //表示对页面类型进行部署 OR 表示对页面数据进行部署 $page_info = common::get_page_by_id($page_id); $site_id = $page_info['site_id']; if ($page_info['has_content']) { //有内容,查出内容类型 $content_type = $this->pub_content->get_all_content_type(); foreach ($content_type as $k => $v) { $set_type[$v['id']] = $v['content_type']; } } } else { $this->errorOutput('NO_PAGE_ID'); } } $data = array('site_id' => $site_id, 'page_id' => $page_id, 'page_data_id' => $page_data_id, 'page_data_fid' => $page_data_fid, 'title' => $title); $dep_tem = $this->obj->get_deploy_template($site_id, $this->settings['tem_style_default'], $page_id, $page_data_id); foreach ($support_client as $kc => $vc) { foreach ($set_type as $k => $v) { //判断文本框里有没有值,没有值则代表没有选择模板,置模板id为0 if (!urldecode($this->input['tem_' . $vc . '_' . $k])) { if (!empty($dep_tem[$site_id][$page_id][$page_data_id][$vc][$k])) { //删除 $dep_tem_id = $dep_tem[$site_id][$page_id][$page_data_id][$vc][$k]['id']; $this->obj->delete('deploy_template', $dep_tem_id); } continue; } else { $data['template_sign'] = $this->input['temid_' . $vc . '_' . $k]; $data['client_id'] = $vc; } $data['content_type'] = $k; //先查看有没有此记录,没有则插入,有则更新 if (empty($dep_tem[$site_id][$page_id][$page_data_id][$vc][$k])) { $this->obj->insert_col_tem($data); } else { $update_data = array('template_sign' => $data['template_sign'], 'page_data_fid' => $data['page_data_fid'], 'title' => $title); $dep_tem_id = $dep_tem[$site_id][$page_id][$page_data_id][$vc][$k]['id']; $this->obj->update('deploy_template', $dep_tem_id, $update_data); } } } //重建缓存 include_once CUR_CONF_PATH . "lib/rebuild_deploy.class.php"; $rebuild_deploy = new rebuilddeploy(); $rebuild_deploy->rebuild_deploy($site_id, $page_id, $page_data_id, $site_detail['site']); $this->addItem(1); $this->output(); }