国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

441 lines
23KB

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="<?php echo $cfg_soft_lang;?>">
  5. <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
  6. <title>栏目管理</title>
  7. <link rel="stylesheet" href="../static/web/css/bootstrap.min.css">
  8. <link rel="stylesheet" href="../static/web/font/css/font-awesome.min.css">
  9. <link rel="stylesheet" href="../static/web/css/admin.css">
  10. <script src="../static/web/js/jquery.min.js"></script>
  11. <script src="js/main.js"></script>
  12. <script>
  13. var channelArray = new Array();
  14. <?php
  15. $i = 0;
  16. foreach($channelArray as $k=> $arr){
  17. echo "channelArray[$k] = \"{$arr['nid']}\";";
  18. }
  19. ?>
  20. function Nav() {
  21. if (window.navigator.userAgent.indexOf("MSIE") >= 1) return 'IE';
  22. else if (window.navigator.userAgent.indexOf("Firefox") >= 1) return 'FF';
  23. else return "OT";
  24. }
  25. function SelectTemplets(fname) {
  26. var pos = GetWinPos(800,600);
  27. window.open("./dialog/select_templets.php?f=" + fname, "poptempWin", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=600,left=" + pos.left + ", top=" + pos.top);
  28. }
  29. function ShowHide(objname) {
  30. var obj = document.getElementById(objname);
  31. if (obj.style.display != "none")
  32. obj.style.display = "none";
  33. else {
  34. if (Nav() == 'IE') obj.style.display = "block";
  35. else obj.style.display = "table-row";
  36. }
  37. }
  38. function ShowObj(objname) {
  39. var obj = document.getElementById(objname);
  40. if (Nav() == 'IE') obj.style.display = "block";
  41. else obj.style.display = "table";
  42. }
  43. function HideObj(objname) {
  44. var obj = document.getElementById(objname);
  45. obj.style.display = "none";
  46. }
  47. function ShowItem1() {
  48. ShowObj('head1'); ShowObj('needset');
  49. HideObj('head2'); HideObj('adset');
  50. HideObj('head3'); HideObj('ctset');
  51. }
  52. function ShowItem2() {
  53. ShowObj('head2'); ShowObj('adset');
  54. HideObj('head1'); HideObj('needset');
  55. HideObj('head3'); HideObj('ctset');
  56. }
  57. function ShowItem3() {
  58. ShowObj('head3'); ShowObj('ctset');
  59. HideObj('head1'); HideObj('needset');
  60. HideObj('head2'); HideObj('adset');
  61. }
  62. function CheckTypeDir() {
  63. var upinyin = document.getElementById('upinyin');
  64. var tpobj = document.getElementById('typedir');
  65. if (upinyin.checked) tpobj.style.display = "none";
  66. else tpobj.style.display = "block";
  67. }
  68. function ParTemplet(obj) {
  69. var sevvalue = channelArray[obj.value];
  70. var tobj = document.getElementById('smclass');
  71. var tempindex = document.getElementsByName('tempindex');
  72. var templist = document.getElementsByName('templist');
  73. var temparticle = document.getElementsByName('temparticle');
  74. var dfstyle = document.getElementsByName('dfstyle');
  75. var dfstyleValue = dfstyle[0].value;
  76. tempindex[0].value = dfstyleValue + "/index_" + sevvalue + ".htm";
  77. templist[0].value = dfstyleValue + "/list_" + sevvalue + ".htm";
  78. temparticle[0].value = dfstyleValue + "/article_" + sevvalue + ".htm";
  79. if (obj.value < 0) {
  80. if (Nav() == 'IE') tobj.style.display = "block";
  81. else tobj.style.display = "table-row";
  82. } else {
  83. tobj.style.display = "none";
  84. }
  85. }
  86. function checkSubmit() {
  87. if (document.form1.typename.value == "") {
  88. alert("栏目名称不能为空");
  89. document.form1.typename.focus();
  90. return false;
  91. }
  92. return true;
  93. }
  94. function CheckCross() {
  95. var cross2 = document.getElementById('cross2');
  96. var crossid = document.getElementById('crossid');
  97. if (cross2.checked) crossid.style.display = 'block';
  98. else crossid.style.display = 'none';
  99. }
  100. </script>
  101. </head>
  102. <body>
  103. <table width="98%" align="center" cellpadding="0" cellspacing="0" class="mt-3 mb-3">
  104. <tr>
  105. <td width="70%"><i class="fa fa-map"></i> <a href="catalog_main.php">栏目管理</a> &gt; 修改栏目</td>
  106. <td width="30%" align="right"><a href="catalog_add.php?dopost=quick" class="btn btn-success btn-sm">批量增加栏目</a></td>
  107. </tr>
  108. </table>
  109. <table width="98%" align="center" cellpadding="0" cellspacing="0">
  110. <tr>
  111. <form name="form1" action="catalog_edit.php" method="post" onSubmit="return checkSubmit()">
  112. <input type="hidden" name="dopost" value="save">
  113. <input type="hidden" name="id" value="<?php echo $id;?>">
  114. <input type="hidden" name="topid" value="<?php echo $myrow['topid'];?>">
  115. <td height="90" align="center" bgcolor="#fff">
  116. <table width="100%" cellspacing="0" id="head1" cellpadding="0">
  117. <tr>
  118. <td colspan="2" bgcolor="#fff" align="left">
  119. <table cellpadding="0" cellspacing="0">
  120. <tr>
  121. <td width="80" height="28" align="center" bgcolor="#fbfce2">常规选项</td>
  122. <td width="80" align="center" bgcolor="#f8f8f8"><a href="javascript:;" onClick="ShowItem2()">高级选项</a></td>
  123. <td width="80" align="center" bgcolor="#f8f8f8"><a href="javascript:;" onClick="ShowItem3()">栏目内容</a></td>
  124. </tr>
  125. </table>
  126. </td>
  127. </tr>
  128. </table>
  129. <table width="100%" cellspacing="0" id="head2" cellpadding="0" style="display:none">
  130. <tr>
  131. <td colspan="2" bgcolor="#fff" style="text-align:left">
  132. <table cellpadding="0" cellspacing="0">
  133. <tr>
  134. <td width="80" align="center" bgcolor="#f8f8f8"><a href="javascript:;" onClick="ShowItem1()">常规选项</a></td>
  135. <td width="80" height="28" align="center" bgcolor="#fbfce2">高级选项</td>
  136. <td width="80" align="center" bgcolor="#f8f8f8"><a href="javascript:;" onClick="ShowItem3()">栏目内容</a></td>
  137. </tr>
  138. </table>
  139. </td>
  140. </tr>
  141. </table>
  142. <table width="100%" cellspacing="0" id="head3" cellpadding="0" style="display:none">
  143. <tr>
  144. <td colspan="2" bgcolor="#fff" style="text-align:left">
  145. <table cellpadding="0" cellspacing="0">
  146. <tr>
  147. <td width="80" align="center" bgcolor="#f8f8f8"><a href="javascript:;" onClick="ShowItem1()">常规选项</a></td>
  148. <td width="80" align="center" bgcolor="#f8f8f8"><a href="javascript:;" onClick="ShowItem2()">高级选项</td>
  149. <td width="80" height="28" align="center" bgcolor="#fbfce2">栏目内容</td>
  150. </tr>
  151. </table>
  152. </td>
  153. </tr>
  154. </table>
  155. <table width="100%" id="needset" cellspacing="0" cellpadding="0" class="biz-border table">
  156. <tr>
  157. <td width="260" class="bline">是否支持投稿:</td>
  158. <td class="bline">
  159. <label><input type="radio" name="issend" value="1" <?php if($myrow['issend']=="1") echo "checked='1'";?>> 支持</label>
  160. <label><input type="radio" name="issend" value="0" <?php if($myrow['issend']=="0") echo "checked='1'";?>> 不支持</label>
  161. </td>
  162. </tr>
  163. <tr>
  164. <td width="260" class="bline">是否隐藏栏目:</td>
  165. <td class="bline">
  166. <label><input type="radio" name="ishidden" value="0" <?php if($myrow['ishidden']=="0") echo "checked='1'";?>> 显示</label>
  167. <label><input type="radio" name="ishidden" value="1" <?php if($myrow['ishidden']=="1") echo "checked='1'";?>> 隐藏</label>
  168. </td>
  169. </tr>
  170. <tr>
  171. <td class="bline">内容模型:</td>
  172. <td class="bline">
  173. <select name="channeltype" id="channeltype" style="width:260px" onChange="ParTemplet(this)">
  174. <?php
  175. foreach($channelArray as $k=>$arr)
  176. {
  177. if($k==$channelid) echo " <option value='{$k}' selected>{$arr['typename']}|{$arr['nid']}</option>";
  178. else echo " <option value='{$k}'>{$arr['typename']}|{$arr['nid']}</option>";
  179. }
  180. ?>
  181. </select>
  182. </td>
  183. </tr>
  184. <tr>
  185. <td class="bline">中文名称:</td>
  186. <td class="bline"><input type="text" name="typename" value="<?php echo $myrow['typename']?>" style="width:260px"></td>
  187. </tr>
  188. <tr>
  189. <td class="bline">中文概述:</td>
  190. <td class="bline"><input type="text" name="cnoverview" value="<?php echo $myrow['cnoverview']?>" style="width:260px"></td>
  191. </tr>
  192. <tr>
  193. <td class="bline">英文名称:</td>
  194. <td class="bline"><input type="text" name="enname" value="<?php echo $myrow['enname']?>" style="width:260px"></td>
  195. </tr>
  196. <tr>
  197. <td class="bline">英文概述:</td>
  198. <td class="bline"><input type="text" name="enoverview" value="<?php echo $myrow['enoverview']?>" style="width:260px"></td>
  199. </tr>
  200. <tr>
  201. <td class="bline">栏目大图:</td>
  202. <td>
  203. <input type="text" name="bigpic" value="<?php echo $myrow['bigpic']?>" style="width:260px">
  204. <input type="button" class="btn btn-success btn-sm" value="浏览" onClick="SelectImage('form1.bigpic');">
  205. </td>
  206. </tr>
  207. <tr>
  208. <td class="bline">栏目小图:</td>
  209. <td>
  210. <input type="text" name="litimg" value="<?php echo $myrow['litimg']?>" style="width:260px">
  211. <input type="button" class="btn btn-success btn-sm" value="浏览" onClick="SelectImage('form1.litimg');">
  212. </td>
  213. </tr>
  214. <tr>
  215. <td class="bline">排列顺序:</td>
  216. <td class="bline"><input type="text" name="sortrank" value="<?php echo $myrow['sortrank']?>" style="width:60px">(由低 &gt; 高)</td>
  217. </tr>
  218. <tr>
  219. <td class="bline">浏览权限:</td>
  220. <td class="bline">
  221. <select name="corank" id="corank" style="width:160px">
  222. <?php
  223. $dsql->SetQuery("Select * from #@__arcrank where `rank` >= 0");
  224. $dsql->Execute('cc');
  225. while($row = $dsql->GetObject('cc'))
  226. {
  227. if($myrow['corank']==$row->rank)
  228. echo "<option value='".$row->rank."' selected>".$row->membername."</option>";
  229. else
  230. echo "<option value='".$row->rank."'>".$row->membername."</option>";
  231. }
  232. ?>
  233. </select>
  234. (仅限制栏目里的文档浏览权限)
  235. </td>
  236. </tr>
  237. <tr>
  238. <td class="bline">文件保存目录:</td>
  239. <td class="bline"><input type="text" name="typedir" id="typedir" value="<?php echo $myrow['typedir']?>" style="width:260px">(标签“{cmspath}”必填,请勿删除)</td>
  240. </tr>
  241. <tr>
  242. <td>栏目列表选项:</td>
  243. <td>
  244. <label><input type="radio" name="isdefault" value="1" <?php if($myrow['isdefault']==1) echo "checked='1'";?>> 链接到默认页</label>
  245. <label><input type="radio" name="isdefault" value="0" <?php if($myrow['isdefault']==0) echo "checked='1'";?>> 链接到列表第一页</label>
  246. <label><input type="radio" name="isdefault" value="-1" <?php if($myrow['isdefault']==-1) echo "checked='1'";?>> 使用动态页</label>
  247. </td>
  248. </tr>
  249. <tr>
  250. <td class="bline">默认页的名称:</td>
  251. <td class="bline"><input type="text" name="defaultname" value="<?php echo $myrow['defaultname']?>" style="width:260px"></td>
  252. </tr>
  253. <tr>
  254. <td class="bline">栏目属性:</td>
  255. <td class="bline">
  256. <label><input type="radio" name="ispart" value="0" <?php if($myrow['ispart']==0) echo "checked='1'";?>> 最终列表栏目(允许在本栏目发布文档,并生成文档列表)</label><br>
  257. <label><input type="radio" name="ispart" value="1" <?php if($myrow['ispart']==1) echo "checked='1'";?>> 频道封面(栏目本身不允许发布文档)</label><br>
  258. <label><input type="radio" name="ispart" value="2" <?php if($myrow['ispart']==2) echo "checked='1'";?>> 外部连接(在"文件保存目录"处填写网址)</label>
  259. </td>
  260. </tr>
  261. <tr id="helpvarco" style="display:none">
  262. <td height="80" bgcolor="#f8f8f8">栏目交叉说明:</td>
  263. <td bgcolor="#f8f8f8">交叉栏目是指一个大栏目与另一个非下级的子栏目出现交叉的情况,相当于系统原来的副栏目功能,不过现在改在栏目里预先设置好<br>例如:网站上有大栏目——智能手机、音乐手机,另外又有栏目——诺基亚&gt;智能手机、诺基亚&gt;音乐手机,这样顶级的大栏目就和另一个大栏目的子栏目形成了交叉,这样只需要在大栏目中指定交叉的栏目即可<br>注:会自动索引交叉栏目的内容,但不会索引交叉栏目下级栏目的内容,这种应用也适用于按地区划分资讯的站点
  264. </td>
  265. </tr>
  266. <tr>
  267. <td>栏目交叉:<i class="fa fa-question-circle" title="帮助" onClick="ShowHide('helpvarco')" style="cursor:pointer"></i> 仅适用[最终列表栏目]</td>
  268. <td class="bline">
  269. <label><input type="radio" name="cross" onClick="CheckCross()" value="0" <?php if($myrow['cross']==0) echo "checked='1'";?>> 不交叉</label>
  270. <label><input type="radio" name="cross" onClick="CheckCross()" value="1" <?php if($myrow['cross']==1) echo "checked='1'";?>> 自动获取同名栏目内容</label>
  271. <label><input type="radio" name="cross" onClick="CheckCross()" value="2" <?php if($myrow['cross']==2) echo "checked='1'";?>> 手工指定交叉栏目id(用逗号分开)</label>
  272. <br>
  273. <textarea name="crossid" id="crossid" style="<?php if($myrow['cross']!=2) echo'display:none';?>"><?php echo $myrow['crossid'];?></textarea>
  274. </td>
  275. </tr>
  276. <tr id="smclass" style="<?php echo ($channelid<0 ? '' : 'display:none');?>">
  277. <td class="bline">绑定小分类:<br>仅适用[分类信息模型]</td>
  278. <td class="bline">
  279. <select name="smalltype[]" multiple="yes" style="width:160px;height:100px">
  280. <?php
  281. $smtypes = explode(',',trim($myrow['smalltypes']));
  282. $sql = "SELECT * FROM `#@__sys_enum` WHERE egroup LIKE 'infotype' ORDER BY disorder ASC, id DESC ";
  283. $dsql->Execute('s',$sql);
  284. while($arr = $dsql->GetArray('s'))
  285. {
  286. if(in_array($arr['evalue'],$smtypes)) {
  287. $selstr = " selected='1' ";
  288. } else {
  289. $selstr = '';
  290. }
  291. if($arr['evalue']%500==0) {
  292. echo "<option value='{$arr['evalue']}'{$selstr}>{$arr['ename']}</option>";
  293. }
  294. else if(preg_match("#\.#", $arr['evalue']))
  295. {
  296. echo "<option value='{$arr['evalue']}'{$selstr}> └───{$arr['ename']}</option>";
  297. } else {
  298. echo "<option value='{$arr['evalue']}'{$selstr}> └─{$arr['ename']}</option>";
  299. }
  300. }
  301. ?>
  302. </select>按 Ctrl 多选,不选系统将调用全部分类,在<a href='stepselect_main.php'>“联动类别管理”</a>中管理
  303. </td>
  304. </tr>
  305. </table>
  306. <table width="100%" cellspacing="0" cellpadding="0" id="adset" class="biz-border table" style="display:none">
  307. <tr>
  308. <td class="bline" width="260">多站点支持:</td>
  309. <td class="bline">
  310. <label><input type="radio" name="moresite" value="1" <?php if($myrow['moresite']==1) echo "checked='1'";?>> 启用</label>
  311. <label><input type="radio" name="moresite" value="0" <?php if($myrow['moresite']==0) echo "checked='1'";?>> 不启用</label>
  312. </td>
  313. </tr>
  314. <tr>
  315. <td bgcolor="#f8f8f8">说明:</td>
  316. <td bgcolor="#f8f8f8">绑名绑定仅需要在顶级栏目设定,子级栏目修改无效</td>
  317. </tr>
  318. <tr>
  319. <td class="bline">绑定域名:</td>
  320. <td class="bline"><input type="text" name="siteurl" id="siteurl" value="<?php echo $myrow['siteurl']?>" style="width:260px">(需加 http://,一级或二级域名的根网址)</td>
  321. </tr>
  322. <tr>
  323. <td class="bline">站点根目录:</td>
  324. <td class="bline">为简化操作,站点根目录与当前栏目目录一致,请注意当前栏目文件保存目录的设置,域名需自行手工绑定到这个目录</td>
  325. </tr>
  326. <tr id='helpvar1' style='display:none'>
  327. <td bgcolor="#f8f8f8">支持变量:</td>
  328. <td bgcolor="#f8f8f8">
  329. {tid}表示栏目id,<br>
  330. {cid}表示频道模型的'名字ID'(
  331. <?php
  332. foreach($channelArray as $k=>$arr)
  333. {
  334. echo "{$arr['typename']}({$arr['nid']})、";
  335. }
  336. ?>)<br>
  337. 模板文件的默认位置是放在模板目录 "cms安装目录<?php echo $cfg_templets_dir ?>" 内
  338. <input type="hidden" value="{style}" name="dfstyle">
  339. </td>
  340. </tr>
  341. <tr>
  342. <td>封面模板:</td>
  343. <td>
  344. <input type="text" name="tempindex" value="<?php echo $myrow['tempindex']?>" style="width:260px">
  345. <button type="button" name="set1" class="btn btn-success btn-sm" onClick="SelectTemplets('form1.tempindex')">浏览</button>
  346. <i class="fa fa-question-circle" title="帮助" onClick="ShowHide('helpvar1')" style="cursor:pointer"></i>
  347. </td>
  348. </tr>
  349. <tr>
  350. <td>列表模板:</td>
  351. <td>
  352. <input type="text" name="templist" value="<?php echo $myrow['templist']?>" style="width:260px">
  353. <button type="button" name="set3" class="btn btn-success btn-sm" onClick="SelectTemplets('form1.templist')">浏览</button>
  354. </td>
  355. </tr>
  356. <tr>
  357. <td>文档模板:</td>
  358. <td>
  359. <input type="text" name="temparticle" value="<?php echo $myrow['temparticle']?>" style="width:260px">
  360. <button type="button" name="set4" class="btn btn-success btn-sm" onClick="SelectTemplets('form1.temparticle')">浏览</button>
  361. </td>
  362. </tr>
  363. <tr id="helpvar2" style="display:none">
  364. <td bgcolor="#f8f8f8">支持变量:</td>
  365. <td bgcolor="#f8f8f8">
  366. {Y}、{M}、{D} 年月日<br>
  367. {timestamp} INT类型的UNIX时间戳<br>
  368. {aid} 文档id<br>
  369. {pinyin} 拼音+文档id<br>
  370. {py} 拼音部首+文档id<br>
  371. {typedir} 栏目目录<br>
  372. {cc} 日期+ID混编后用转换为适合的字母<br>
  373. Nginx伪静态默认规则<br>
  374. rewrite ^/([0-9]+).html$ /apps/view.php?arcID=$1;<br>
  375. rewrite ^/([0-9]+)-([0-9]+).html$ /apps/view.php?aid=$1&pageno=$2;
  376. </td>
  377. </tr>
  378. <tr>
  379. <td>文档命名规则:</td>
  380. <td>
  381. <input type="text" name="namerule" id="namerule" value="<?php echo $myrow['namerule']?>" style="width:260px">
  382. <i class="fa fa-question-circle" title="帮助" onClick="ShowHide('helpvar2')" style="cursor:pointer"></i>
  383. </td>
  384. </tr>
  385. <tr id="helpvar3" style="display:none">
  386. <td bgcolor="#f8f8f8">支持变量:</td>
  387. <td bgcolor="#f8f8f8">
  388. {page} 列表的页码<br>
  389. Nginx伪静态默认规则<br>
  390. rewrite ^/list-([0-9]+)$ /apps/list.php?tid=$1;<br>
  391. rewrite ^/list-([0-9]+)-([0-9]+)$ /apps/list.php?tid=$1&PageNo=$2;
  392. </td>
  393. </tr>
  394. <tr>
  395. <td>列表命名规则:</td>
  396. <td>
  397. <input type="text" name="namerule2" id="namerule2" value="<?php echo $myrow['namerule2']?>" style="width:260px">
  398. <i class="fa fa-question-circle" title="帮助" onClick="ShowHide('helpvar3')" style="cursor:pointer"></i>
  399. </td>
  400. </tr>
  401. <tr>
  402. <td height="60">SEO标题:</td>
  403. <td><input type="text" name="seotitle" id="seotitle" value="<?php echo $myrow['seotitle']?>" style="width:260px">(栏目模板里用{dede:field.seotitle/}调用)</td>
  404. </tr>
  405. <tr>
  406. <td height="60">关键词:</td>
  407. <td><textarea name="keywords" cid="keywords" style="width:360px;height:50px"><?php echo $myrow['keywords']?></textarea></td>
  408. </tr>
  409. <tr>
  410. <td height="60">栏目描述:</td>
  411. <td height="60"><textarea name="description" id="description" style="width:360px;height:50px"><?php echo $myrow['description']?></textarea></td>
  412. </tr>
  413. <tr>
  414. <td>继承选项:</td>
  415. <td>
  416. <label><input type="checkbox" name="upnext" id="upnext" value="1"> 同时修改下级栏目的浏览权限、内容类型、模板风格、命名规则等通用属性</label>
  417. </td>
  418. </tr>
  419. </table>
  420. <table width="100%" cellspacing="0" cellpadding="0" id="ctset" class="biz-border table" style="display:none">
  421. <tr>
  422. <td>说明:栏目内容是替代原来栏目单独页的更灵活的一种方式,可在栏目模板中用{dede:field.content/}调用,通常用于企业简介之类的用途</td>
  423. </tr>
  424. <tr>
  425. <td><?php GetEditor("content",$myrow['content'],"450","Default","print","false");?></td>
  426. </tr>
  427. </table>
  428. <table width="100%" cellspacing="0" cellpadding="0" bgcolor="#f8f8f8" class="biz-border border-top-0 mb-3">
  429. <tr>
  430. <td align="center" class="py-2">
  431. <button type="submit" class="btn btn-success btn-sm">保存</button>
  432. <a href="catalog_main.php" class="btn btn-success btn-sm">返回</a>
  433. </td>
  434. </tr>
  435. </table>
  436. </td>
  437. </form>
  438. </tr>
  439. </table>
  440. </body>
  441. </html>