国内流行的内容管理系统(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.

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