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

454 lines
19KB

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