📄 正在查看:admin/control/navigate_control.class.php
大小:3,697 字节 · 修改:2014-01-23 01:42:52 · 行数:140
1<?php
2/**
3 * (C)2012-2014 twcms.com TongWang Inc.
4 * Author: wuzhaohuan <kongphp@gmail.com>
5 */
6
7defined('TWCMS_PATH') or exit;
8
9class navigate_control extends admin_control {
10 // 导航管理
11 public function index() {
12 // 模型名称
13 $mod_name = $this->models->get_name();
14 $this->assign('mod_name', $mod_name);
15
16 // 全部分类
17 $category_arr = $this->category->get_category();
18 $this->assign('category_arr', $category_arr);
19
20 // 导航数组
21 $nav_arr = $this->kv->xget('navigate');
22 foreach($nav_arr as $k=>$v) {
23 if($v['cid']) $nav_arr[$k]['url'] = $this->category->category_url($v['cid'], $v['alias']);
24 if(isset($v['son'])) {
25 foreach($v['son'] as $k2=>$v2) {
26 if($v2['cid']) $nav_arr[$k]['son'][$k2]['url'] = $this->category->category_url($v2['cid'], $v2['alias']);
27 }
28 }
29 }
30 $this->assign('nav_arr', $nav_arr);
31
32 // hook admin_navigate_control_index_after.php
33
34 $this->display();
35 }
36
37 // 导航管理
38 public function get_navigate_content() {
39 // 导航数组
40 $nav_arr = $this->kv->xget('navigate');
41 $this->assign('nav_arr', $nav_arr);
42
43 $this->display('inc-navigate_content.htm');
44 }
45
46 // 保存修改
47 public function nav_save() {
48 $navi = R('navi', 'P');
49
50 if(!empty($navi) && is_array($navi)) {
51 $nav_arr = array();
52 $i = 0;
53 foreach($navi as $v) {
54 $cid = intval($v[0]);
55 $name = htmlspecialchars(trim($v[1]));
56 $url = $cid ? $cid : htmlspecialchars(trim($v[2]));
57 $target = $v[3] ? '_blank' : '_self';
58 $rank = intval($v[4]);
59
60 $alias = '';
61 if($cid) {
62 $row = $this->category->get($cid);
63 $alias = $row['alias'];
64 }
65
66 if($rank > 1) {
67 $nav_arr[$i]['son'][] = array('cid'=>$cid, 'alias'=>$alias, 'name'=>$name, 'url'=>$url, 'target'=>$target);
68 }else{
69 $i++;
70 $nav_arr[$i] = array('cid'=>$cid, 'alias'=>$alias, 'name'=>$name, 'url'=>$url, 'target'=>$target);
71 }
72 }
73 $this->kv->set('navigate', $nav_arr);
74 }else{
75 E(1, '非法提交!');
76 }
77
78 E(0, '保存修改完成!');
79 }
80
81 // 添加分类
82 public function add_cate() {
83 $cate = R('cate', 'P');
84
85 if(!empty($cate) && is_array($cate)) {
86 $nav_arr = $this->kv->xget('navigate');
87 foreach($cate as $arr) {
88 if(isset($arr[0]) && isset($arr[1])) {
89 $name = htmlspecialchars(trim($arr[0]));
90 $cid = intval($arr[1]);
91 $row = $this->category->get($cid);
92 $alias = $row['alias'];
93 $nav_arr[] = array('cid'=>$cid, 'alias'=>$alias, 'name'=>$name, 'url'=>'', 'target'=>'_self');
94 }
95 }
96 $this->kv->set('navigate', $nav_arr);
97
98 E(0, '添加成功!');
99 }else{
100 E(1, '添加分类不能为空!');
101 }
102 }
103
104 // 添加链接
105 public function add_link() {
106 $name = htmlspecialchars(trim(R('name', 'P')));
107 $url = htmlspecialchars(trim(R('url', 'P')));
108 $target = (int) R('target', 'P');
109
110 !$name && E(1, '名称不能为空!', 'name');
111 !$url && E(1, '链接不能为空!', 'url');
112
113 $nav_arr = $this->kv->xget('navigate');
114 $nav_arr[] = array('cid'=>0, 'alias'=>'', 'name'=>$name, 'url'=>$url, 'target'=>($target ? '_blank' : '_self'));
115 $this->kv->set('navigate', $nav_arr);
116
117 E(0, '添加成功!');
118 }
119
120 // 删除
121 public function del() {
122 $key = R('key', 'P');
123
124 $nav_arr = $this->kv->xget('navigate');
125 if(is_numeric($key)) {
126 unset($nav_arr[$key]);
127 }else{
128 $k = explode('-', $key);
129 $k1 = intval($k[0]);
130 $k2 = intval($k[1]);
131 if(isset($nav_arr[$k1]['son'][$k2])) unset($nav_arr[$k1]['son'][$k2]);
132 }
133 $this->kv->set('navigate', $nav_arr);
134
135 E(0, '删除完成!');
136 }
137
138 // hook admin_navigate_control_after.php
139}
140