📄 正在查看:admin/view/default/category_index.htm
大小:10,596 字节 · 修改:2014-01-24 01:15:24 · 行数:362
1{inc:header.htm}
2
3<style type="text/css">
4.tb{margin:5px auto}
5.tb .th div{width:96px}
6.tb .col label{padding-right:8px}
7</style>
8
9<div class="m">
10 <div class="head">
11 <dl>
12 <input id="add" type="button" value="增加分类" class="but1" />
13 <dd class="on">分类管理</dd>
14 </dl>
15 </div>
16
17 <div class="p c2">
18 <div class="cc" id="category_content">
19 {inc:category_content.htm}
20 </div>
21 </div>
22</div>
23
24<script id="set_dialog" type="text/html" _mid="2" _type="0" _upid="0">
25 <form method="post" action="index.php?u=category-set-ajax-1">
26 <input name="cid" type="hidden" />
27 <table class="tb">
28 <tr>
29 <th class="th"><div>分类模型</div></th>
30 <td class="col">
31 {loop:$mod_name $v $k}<label><input class="mr3" name="mid" type="radio" value="{$k}">{$v}</label>{/loop}
32 </td>
33 </tr>
34 <tr id="i_type">
35 <th class="th">分类类型</th>
36 <td class="col">
37 <label title="可发表内容,下级不可建分类"><input class="mr3" name="type" type="radio" value="0">列表</label>
38 <label title="不可发表内容,下级可建分类"><input class="mr3" name="type" type="radio" value="1">频道(友情提示:频道分类下才能建子分类)</label>
39 </td>
40 </tr>
41 <tr id="i_upid">
42 <th class="th">所属频道</th>
43 <td class="col"><select name="upid" id="upid"><option value="0">无</option></select></td>
44 </tr>
45 <tr>
46 <th class="th"><font color="red">*</font> 分类名称</th>
47 <td class="col"><input name="name" type="text" class="inp w4" /></td>
48 </tr>
49 <tr>
50 <th class="th"><font color="red">*</font> 分类别名</th>
51 <td class="col"><input name="alias" type="text" class="inp w4" /></td>
52 </tr>
53 <tr>
54 <th class="th">分类描述</th>
55 <td class="col"><input name="intro" type="text" class="inp w4" /></td>
56 </tr>
57 <tr id="i_page_content" style="display:none">
58 <th class="th">单页内容</th>
59 <td class="col"><textarea id="page_content" name="page_content" class="inp w3 w4"></textarea></td>
60 </tr>
61 <tr>
62 <th class="th">排列顺序</th>
63 <td class="col"><input name="orderby" value="0" type="number" class="inp wnum" /></td>
64 </tr>
65
66 <tr><td colspan="2"><div class="tb_t">SEO设置</div></td></tr>
67 <tr>
68 <th class="th">SEO标题</th>
69 <td class="col"><input class="inp w4" type="text" name="seo_title" /></td>
70 </tr>
71 <tr>
72 <th class="th">SEO关键字</th>
73 <td class="col"><input class="inp w4" type="text" name="seo_keywords" /></td>
74 </tr>
75 <tr>
76 <th class="th">SEO描述</th>
77 <td class="col"><input class="inp w4" type="text" name="seo_description" /></td>
78 </tr>
79
80 <tr><td colspan="2"><div class="tb_t">模板设置</div></td></tr>
81 <tr id="i_cate_tpl">
82 <th class="th">列表模板</th>
83 <td class="col"><input class="inp w4" type="text" name="cate_tpl" id="cate_tpl" /></td>
84 </tr>
85 <tr id="i_show_tpl">
86 <th class="th">内容模板</th>
87 <td class="col"><input class="inp w4" type="text" name="show_tpl" id="show_tpl" /></td>
88 </tr>
89
90 {hook:admin_category_index_set_dialog_after.htm}
91
92 </table>
93 </form>
94</script>
95
96<script type="text/javascript">
97var models = {$models};
98load_event(); // 加载事件
99
100// 默认无编辑器
101window.editor_init = function(){
102 // 编辑器API
103 window.editor_api = {
104 // 单页内容
105 page_content : {
106 obj : $('#page_content'),
107 get : function() {
108 return this.obj.val();
109 },
110 set : function(s) {
111 return this.obj.val(s);
112 },
113 focus : function() {
114 return this.obj.focus();
115 }
116 }
117 }
118}
119
120// 添加分类
121$("#add").click(function(){
122 if($(this).val() == "增加分类") {
123 $(this).val("关闭窗口");
124
125 // 加载会话框
126 load_dialog();
127 $("#twdialog_title span").html("增加分类");
128
129 // 初始化表单
130 var mid = $("#set_dialog").attr("_mid");
131 var type = $("#set_dialog").attr("_type");
132 var upid = $("#set_dialog").attr("_upid");
133
134 $("#twdialog input[name='mid']").val([mid]);
135 $("#twdialog input[name='type']").val([type]);
136 setFormVal(mid, type);
137
138 // 加载所属频道
139 loadCategoryUpid(mid, upid);
140 }else{
141 remove_dialog();
142 }
143});
144
145// 鼠标放上去事件
146function load_event() {
147 $(".cat_col").hover(
148 function(){
149 $(this).css("background","#FFB");
150
151 if($(".more_but").length < 1) {
152 var cid = $(this).attr("cid");
153 var mid = $(this).attr("mid");
154 var url = $(this).attr("url");
155
156 var s = '<div class="more_but">';
157 s += '<a class="but2" href="javascript:edit('+cid+');">编辑</a>';
158 s += '<a class="but2" href="'+url+'" target="_blank">查看</a>';
159 s += '<a class="but2 del" href="javascript:del('+cid+');">删除</a>';
160 s += '</div>';
161
162 $(this).find(".cat_c_1").append(s);
163 $(this).find(".c_name").width($(this).find(".cat_c_1").width() - 160);
164 }
165 },
166 function(){
167 $(this).removeAttr("style");
168 $(this).find(".c_name").removeAttr("style");
169 $(".more_but").remove();
170 }
171 );
172
173 // 快速修改排序
174 $(".cat_c_3 input[name='orderby']").focusin(function() {
175 $(this).attr("v", $(this).val());
176 }).focusout(function() {
177 var orderby = $(this).val();
178 var old_orderby = $(this).attr("v");
179 if(orderby == old_orderby) return;
180 var cid = $(this).parent().parent().attr("cid");
181 twAjax.post("index.php?u=category-edit_orderby-ajax-1", {cid:cid, orderby:orderby}, function(data){
182 var data = toJson(data);
183 if(window.twExit) return;
184 if(data.err==0) getAllCate();
185 });
186 });
187}
188
189// 加载对话框 (增加或编辑时使用)
190function load_dialog() {
191 var H = Math.max(350, document.documentElement.clientHeight-30);
192 $.twDialog("remove");
193 $.twDialog({content:$("#set_dialog").html(), resizable:true, open:true, modal:false, width:900, height:H, minW:700});
194
195 // 增加关闭窗口事件
196 $("#twdialog_title a,#twdialog_button .close").click(remove_dialog);
197
198 // 改变分类模型
199 $("#twdialog input[name='mid']").change(function(){
200 var mid = $(this).val();
201 setFormVal(mid, $("#twdialog").attr("type"));
202
203 // 加载所属频道
204 loadCategoryUpid(mid);
205 });
206
207 // 改变分类类型
208 $("#twdialog input[name='type']").change(function(){
209 setFormVal($("#twdialog").attr("mid"), $(this).val());
210 });
211
212 // 触发提交 (添加 & 编辑)
213 $("#twdialog_button>.ok").click(function(){ $("#twdialog form").submit(); });
214
215 // 拦截表单提交
216 twAjax.submit("#twdialog form", function(data){
217 twAjax.alert(data);
218 if(window.twData.err==0) {
219 // 增加时记录状态
220 var cid = $("#twdialog input[name='cid']").val();
221 if(!cid) {
222 var fields = $("#twdialog input[name='mid'], #twdialog input[name='type'], #twdialog input[name='upid']").serializeArray();
223 $.each(fields, function(i, field) {
224 if(field.name == "mid") {
225 $("#set_dialog").attr("_mid", field.value);
226 }else if(field.name == "type") {
227 $("#set_dialog").attr("_type", field.value);
228 }else if(field.name == "upid") {
229 $("#set_dialog").attr("_upid", field.value);
230 }
231 });
232 }
233
234 remove_dialog();
235 getAllCate();
236 }
237 });
238}
239
240// 移除编辑器
241function remove_dialog() {
242 $.twDialog("remove");
243 $("#add").val("增加分类");
244}
245
246// 设置表单内的值
247function setFormVal(mid, type) {
248 $("#twdialog").attr("mid", mid);
249 $("#twdialog").attr("type", type);
250
251 if(mid == 1) {
252 $("#i_type").hide();
253 $("#i_page_content").show();
254 $("#i_show_tpl").hide();
255 $("#i_upid>th").html("上级分类");
256
257 // 单页时把类型设置为 0
258 $("#twdialog input[name='type']").val([0]);
259 $("#twdialog").attr("type", 0);
260
261 editor_init();
262 }else{
263 $("#i_type").show();
264 $("#i_page_content").hide();
265 $("#i_show_tpl").show();
266 $("#i_upid>th").html("所属频道");
267 }
268 $("#i_cate_tpl>th").html(mid == 1 ? "单页模板" : (type == 1 ? "频道模板" : "列表模板"));
269
270 // 默认模板设置
271 var edit_mid = $("#twdialog").attr("edit_mid");
272 var edit_type = $("#twdialog").attr("edit_type");
273 if(!!edit_mid && edit_mid == mid && edit_type == type) {
274 $("#cate_tpl").val($("#cate_tpl").attr("v"));
275 $("#show_tpl").val($("#show_tpl").attr("v"));
276 }else{
277 var k = "models-mid-"+mid;
278 $("#cate_tpl").val(mid != 1 && type == 1 ? models[k]["index_tpl"] : models[k]["cate_tpl"]);
279 $("#show_tpl").val(models[k]["show_tpl"]);
280 }
281}
282
283// 编辑分类
284function edit(cid) {
285 twAjax.postd("index.php?u=category-get_category_json-ajax-1", {cid:cid}, function(data){
286 data = toJson(data);
287 if(window.twEixt) return;
288 twAjax.remove();
289
290 // 加载会话框
291 load_dialog();
292 $("#twdialog_title span").html("编辑分类");
293
294 // 遍历设置表单值
295 for(var v in data) {
296 $("#twdialog [name='"+v+"']").val([data[v]]);
297 }
298
299 // 如果分类已发布了内容或有下级分类就不允许改变模型和类型
300 if(data.count > 0 || data.son_cate) {
301 $("#twdialog input[name='mid']").each(function() {
302 if($(this).val() != data.mid) {
303 $(this).attr("disabled", "disabled");
304 }
305 });
306
307 $("#twdialog input[name='type']").each(function() {
308 if($(this).val() != data.type) {
309 $(this).attr("disabled", "disabled");
310 }
311 });
312 }
313
314 // 记录模板设置
315 $("#cate_tpl").attr("v", data.cate_tpl);
316 $("#show_tpl").attr("v", data.show_tpl);
317
318 // 设置表单内的值
319 $("#twdialog").attr("edit_mid", data.mid);
320 $("#twdialog").attr("edit_type", data.type);
321 setFormVal(data.mid, data.type);
322
323 // 加载所属频道
324 loadCategoryUpid(data.mid, data.upid, data.cid);
325 });
326}
327
328// 删除分类
329function del(cid) {
330 twAjax.confirm("删除不可恢复,确定删除?", function(){
331 twAjax.postd("index.php?u=category-del-ajax-1", {cid:cid}, function(data){
332 twAjax.alert(data);
333 if(window.twData.err==0) $(".category dl[cid='"+cid+"']").remove();
334 });
335 });
336}
337
338// 加载所属频道
339function loadCategoryUpid(mid, upid, noid) {
340 twAjax.get("index.php?u=category-get_category_upid-ajax-1-mid-"+mid+"-upid-"+Math.max(0, upid)+"-noid-"+Math.max(0, noid)+"&r="+time(), function(data){
341 data = toJson(data);
342 if(window.twEixt) return;
343 $("#upid").html(data.upid);
344 });
345}
346
347// 获取所有分类列表
348function getAllCate() {
349 setTimeout(function() {
350 twAjax.get("index.php?u=category-get_category_content&r="+time(), function(html){
351 $("#category_content").html(html);
352 load_event();
353 });
354 }, 500);
355}
356</script>
357
358{hook:admin_category_index_after.htm}
359
360</body>
361</html>
362