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

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