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

363 lines
16KB

  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. <link rel="stylesheet" href="css/codemirror.css">
  11. <script src="js/codemirror.js"></script>
  12. <script src="js/mode/xml/xml.js"></script>
  13. <script src="js/mode/javascript/javascript.js"></script>
  14. <script src="js/mode/css/css.js"></script>
  15. <script src="js/mode/htmlmixed/htmlmixed.js"></script>
  16. <script>
  17. function Nav() {
  18. if (window.navigator.userAgent.indexOf("MSIE") >= 1) return 'IE';
  19. else if (window.navigator.userAgent.indexOf("Firefox") >= 1) return 'FF';
  20. else return "OT";
  21. }
  22. function $Obj(objname) {
  23. return document.getElementById(objname);
  24. }
  25. function ShowHide2(objname) {
  26. var obj = $Obj(objname);
  27. if (obj.style.display != 'block') { obj.style.display = 'block' }
  28. else { obj.style.display = 'none'; }
  29. }
  30. //删除
  31. function DelNote(gourl) {
  32. if (!window.confirm("您确认要删除这个字段吗")) { return false; }
  33. location.href = gourl;
  34. }
  35. function ShowObj(objname) {
  36. var obj = document.getElementById(objname);
  37. if (Nav() == 'IE') { obj.style.display = "block"; obj.style.display = "block"; }
  38. else obj.style.display = "table";
  39. }
  40. function HideObj(objname) {
  41. var obj = document.getElementById(objname);
  42. obj.style.display = "none";
  43. }
  44. function ShowItem1() {
  45. ShowObj('head1'); ShowObj('needset');
  46. HideObj('head2'); HideObj('adset');
  47. }
  48. var editor = null;
  49. function ShowItem2() {
  50. setTimeout(() => {
  51. if (!editor) {
  52. editor = CodeMirror.fromTextArea(document.getElementById('fieldset'), {
  53. lineNumbers: true,
  54. lineWrapping: true,
  55. mode: 'text/html'
  56. });
  57. }
  58. }, 100);
  59. ShowObj('head2'); ShowObj('adset');
  60. HideObj('head1'); HideObj('needset');
  61. }
  62. </script>
  63. </head>
  64. <body>
  65. <form name="form1" action="mychannel_edit.php" method="post">
  66. <input type="hidden" name="id" value="<?php echo $id?>">
  67. <input type="hidden" name="dopost" value="save">
  68. <input type="hidden" name="issystem" value="<?php echo $row['issystem']; ?>">
  69. <table width="98%" cellpadding="3" cellspacing="1" align="center" class="table maintable mt-3 mb-3">
  70. <tr>
  71. <td bgcolor="#f8f8f8" colspan="2"><a href="mychannel_main.php">内容模型管理</a> &gt; 修改内容模型</td>
  72. </tr>
  73. </table>
  74. <table width="98%" cellspacing="0" id="head1" cellpadding="0" align="center" style="display:block">
  75. <tr>
  76. <td colspan="2">
  77. <table cellpadding="0" cellspacing="0">
  78. <tr>
  79. <td width="86" height="28" align="center" background="../static/web/img/itemnote1.gif">基本设置</td>
  80. <td width="86" align="center" background="../static/web/img/itemnote2.gif"><a href="javascript:;" onClick="ShowItem2()">字段管理</a></td>
  81. </tr>
  82. </table>
  83. </td>
  84. </tr>
  85. </table>
  86. <table width="98%" cellspacing="0" id="head2" cellpadding="0" align="center" style="display:none" >
  87. <tr>
  88. <td colspan="2">
  89. <table cellpadding="0" cellspacing="0">
  90. <tr>
  91. <td width="86" align="center" background="../static/web/img/itemnote2.gif"><a href="javascript:;" onClick="ShowItem1()">基本设置</a></td>
  92. <td width="86" height="28" align="center" background="../static/web/img/itemnote1.gif">字段管理</td>
  93. </tr>
  94. </table>
  95. </td>
  96. </tr>
  97. </table>
  98. <table width="98%" id='needset' cellpadding="3" cellspacing="1" align="center" class="table maintable" style="display:block">
  99. <?php
  100. if($row['issystem'] == 1)
  101. {
  102. ?>
  103. <tr>
  104. <td colspan="2" style="color:#dc3545;border-top:0">您目前所展开的是系统模型,系统模型一般对发布程序和管理程序已经固化,如果您胡乱修改系统模型将会导致使用这种内容类型的频道可能崩溃</td>
  105. </tr>
  106. <?php
  107. }
  108. ?>
  109. <tr>
  110. <td style="border-top:0">模型性质<br>
  111. <span class="style2" id="help5">如果为系统模型将禁止删除,此选项不可修改,对于独立模型,系统强制创建字段aid、栏目ID、发布时间、文档标题</span>
  112. </td>
  113. <td style="border-top:0">
  114. <?php
  115. if($row['issystem']==0) echo "自动模型";
  116. else if($row['issystem']==1) echo "系统模型";
  117. else if($row['issystem']==-1) echo "独立模型";
  118. ?>
  119. </td>
  120. </tr>
  121. <tr>
  122. <td width="30%">频道ID<br>
  123. <span class="style2" id='help1'>数字,创建后不可修改,并具有唯一性</span></td>
  124. <td width="70%"><?php echo $row['id']; ?></td>
  125. </tr>
  126. <tr>
  127. <td>名字标识<br>
  128. <span class="style2" id="help2">与文档的模板相关连,建议由英文、数字或下划线组成,因为部份Unix系统无法识别中文文件,频道默认文档模板是“default/article_名字标识.htm”,列表模板、封面模板类推 </span></td>
  129. <td><?php echo $row['nid']; ?></td>
  130. </tr>
  131. <tr>
  132. <td>频道名称<br><span class="style2" id="help3">频道的中文名称,在后台管理,前台发布等均使用此名字</span></td>
  133. <td><input type="text" name="typename" id="typename" value="<?php echo $row['typename']; ?>" class="pubinputs"></td>
  134. </tr>
  135. <tr>
  136. <td>附加表<br>
  137. <span class="style2" id="help4">频道除主表以外其它自定义类型数据存放数据的表,如果您不使用主表关连的各种特性(推荐、会员权限等),也可以使用完全以附加表作为存储数据</span></td>
  138. <td><input type="text" name="addtable" id="addtable" value="<?php echo $row['addtable']; ?>" class="pubinputs">(#@__ 是表示数据表前缀)</td>
  139. </tr>
  140. <tr>
  141. <td>是否支持会员投稿</td>
  142. <td>
  143. <label><input type="radio" name="issend" value="0" <?php if($row['issend']==0) echo "checked='1'"; ?>> 不支持</label>
  144. <label><input type="radio" name="issend" value="1" <?php if($row['issend']==1) echo "checked='1'"; ?>> 支持</label>
  145. </td>
  146. </tr>
  147. <tr>
  148. <td>会员许可投稿级别</td>
  149. <td>
  150. <select name="sendrank" id="sendrank" style="width:160px">
  151. <option value="0">游客</option>
  152. <?php
  153. $urank = $cuserLogin->getUserRank();
  154. $dsql->SetQuery("Select * from `#@__arcrank` where adminrank<='$urank' And `rank`>=10");
  155. $dsql->Execute();
  156. while($row2 = $dsql->GetObject())
  157. {
  158. if($row2->rank==$row['sendrank']) echo "<option value='".$row2->rank."' selected>".$row2->membername."</option>";
  159. else echo "<option value='".$row2->rank."'>".$row2->membername."</option>";
  160. }
  161. ?>
  162. </select>
  163. </td>
  164. </tr>
  165. <tr>
  166. <td>许可投稿会员组</td>
  167. <td>
  168. <?php
  169. $dsql->SetQuery("Select * from `#@__member_model`");
  170. $dsql->Execute();
  171. while($row3 = $dsql->GetObject())
  172. {
  173. echo "<label><input type='radio' name='usertype' value='".$row3->name."'".($row['usertype']==$row3->name? "checked" : "")."> ".$row3->name."</label> ";
  174. }
  175. ?>
  176. <label><input type="radio" name="usertype" value="" <?php if($row['usertype']=='') echo "checked='1'"; ?>> 不限</label>
  177. </td>
  178. </tr>
  179. <tr>
  180. <td>会员稿件默认状态</td>
  181. <td>
  182. <label><input type="radio" name="arcsta" value="-1" <?php if($row['arcsta']==-1) echo "checked='1'"; ?>> 未审核</label>
  183. <label><input type="radio" name="arcsta" value="0" <?php if($row['arcsta']==0) echo "checked='1'"; ?>> 已审核(自动生成网页)</label>
  184. <label><input type="radio" name="arcsta" value="1" <?php if($row['arcsta']==1) echo "checked='1'"; ?>> 已审核(仅使用动态文档)</label>
  185. </td>
  186. </tr>
  187. <tr>
  188. <td>档案发布程序</td>
  189. <td><input type="text" name="addcon" id="addcon" value="<?php echo $row['addcon']; ?>" class="pubinputs"></td>
  190. </tr>
  191. <tr>
  192. <td>档案修改程序</td>
  193. <td><input type="text" name="editcon" id="editcon" value="<?php echo $row['editcon']; ?>" class="pubinputs"></td>
  194. </tr>
  195. <tr>
  196. <td>档案管理程序</td>
  197. <td><input type="text" name="mancon" id="mancon" value="<?php echo $row['mancon']; ?>" class="pubinputs"></td>
  198. </tr>
  199. <tr>
  200. <td>前台会员发布程序</td>
  201. <td><input type="text" name="useraddcon" id="useraddcon" value="<?php echo $row['useraddcon']; ?>" class="pubinputs"></td>
  202. </tr>
  203. <tr>
  204. <td>前台会员修改程序</td>
  205. <td><input type="text" name="usereditcon" id="usereditcon" value="<?php echo $row['usereditcon']; ?>" class="pubinputs"></td>
  206. </tr>
  207. <tr>
  208. <td>前台会员管理程序</td>
  209. <td><input type="text" name="usermancon" id="usermancon" value="<?php echo $row['usermancon']; ?>" class="pubinputs"></td>
  210. </tr>
  211. <tr>
  212. <td>列表附加字段<br>
  213. <span class="style2" id="help6">用&quot;,&quot;分开,可以在列表模板{dede:list}{/dede:list}中用[field:name/]调用</span></td>
  214. <td><input type="text" name="listfields" id="listfields" size="50" value="<?php echo $row['listfields']; ?>" class="pubinputs" style="width:80%"></td>
  215. </tr>
  216. <tr>
  217. <td>投稿标题使用名称</td>
  218. <td><input type="text" name="titlename" id="titlename" value="<?php echo $row['titlename']; ?>" class="pubinputs"></td>
  219. </tr>
  220. <tr>
  221. <td>投稿是否使用摘要<br>
  222. <span class="style2">如果不使用主表(独立模型)缩略图设置同</span></td>
  223. <td>
  224. <label><input type="radio" name="needdes" value="1" <?php if($row['needdes']==1) echo "checked='1'"; ?>> 使用</label>
  225. <label><input type="radio" name="needdes" value="0" <?php if($row['needdes']==0) echo "checked='1'"; ?>> 不使用</label>
  226. </td>
  227. </tr>
  228. <tr>
  229. <td>投稿是否使用缩图</td>
  230. <td>
  231. <label><input type="radio" name="needpic" value="1" <?php if($row['needpic']==1) echo "checked='1'"; ?>> 使用</label>
  232. <label><input type="radio" name="needpic" value="0" <?php if($row['needpic']==0) echo "checked='1'"; ?>> 不使用</label>
  233. </td>
  234. </tr>
  235. <tr>
  236. <td>默认栏目ID<br><span class="style2" id="help8">与投稿是唯一性结合可以用模型设计自定义表单</span></td>
  237. <td><input type="text" name="dfcid" id="dfcid" value="<?php echo $row['dfcid']; ?>" class="pubinputs" style="width:160px"></td>
  238. </tr>
  239. <tr>
  240. <td>投稿具有唯一性<br>
  241. <span class="style2" id="help9">如果投稿是唯一会员只能在这个模型对应的栏目中发布单篇文档,其作用相当于自定义表单</span></td>
  242. <td>
  243. <label><input type="radio" name="onlyone" value="1" <?php if($row['onlyone']==1) echo "checked='1'"; ?>> 是</label>
  244. <label><input type="radio" name="onlyone" value="0" <?php if($row['onlyone']==0) echo "checked='1'"; ?>> 不是</label>
  245. </td>
  246. </tr>
  247. </table>
  248. <table width="98%" id='adset' cellpadding="3" cellspacing="1" align="center" class="table maintable" style='display:none'>
  249. <tr>
  250. <td>模型字段配置(可视化模式)</td>
  251. <td><button type="button" name="fset" id="fset" onClick="location.href='mychannel_field_add.php?id=<?php echo $id; ?>'" class="btn btn-success btn-sm">添加新字段</button></td>
  252. </tr>
  253. <tr>
  254. <td colspan='2'>
  255. <table width="100%" cellpadding="1" cellspacing="1" align="center">
  256. <tr bgcolor="#F8FCF1" align="center">
  257. <td width="28%">表单提示文字</td>
  258. <td width="18%">数据字段名</td>
  259. <td width="20%">数据类型</td>
  260. <td width="18%">表单类型</td>
  261. <td>操作</td>
  262. </tr>
  263. <?php
  264. if($row['issystem']==-1)
  265. {
  266. ?>
  267. <tr>
  268. <td colspan='5'>aid 和 typeid 是强制使用字段,这里不列出</td>
  269. </tr>
  270. <?php
  271. } else {
  272. ?>
  273. <tr>
  274. <td colspan='5'>下面列出的字段是附加表的字段,除此外,它还包含主表dede_archives的所有字段</td>
  275. </tr>
  276. <?php
  277. }
  278. $ds = file(DEDEADMIN."/inc/fieldtype.txt");
  279. foreach($ds as $d){
  280. $dds = explode(',',trim($d));
  281. $fieldtypes[$dds[0]] = $dds[1];
  282. }
  283. $fieldset = stripslashes($row['fieldset']);
  284. $dtp = new DedeTagParse();
  285. $dtp->SetNameSpace("field","<",">");
  286. $dtp->LoadSource($fieldset);
  287. if(is_array($dtp->CTags)){
  288. foreach($dtp->CTags as $ctag)
  289. {
  290. ?>
  291. <tr align="center" onmousemove="javascript:this.bgColor='#F8FCF1';" onmouseout="javascript:this.bgColor='#ffffff';" >
  292. <td>
  293. <?php
  294. $itname = $ctag->GetAtt('itemname');
  295. if($itname=='') echo "没指定";
  296. else echo $itname;
  297. ?>
  298. </td>
  299. <td><?php echo $ctag->GetTagName(); ?></td>
  300. <td>
  301. <?php
  302. $ft = $ctag->GetAtt('type');
  303. if(isset($fieldtypes[$ft])) echo $fieldtypes[$ft];
  304. else echo "系统专用类型";
  305. ?>
  306. </td>
  307. <td>
  308. <?php
  309. $ft = $ctag->GetAtt('autofield');
  310. if($ft=='' || $ft==0) {
  311. echo "固化字段";
  312. } else {
  313. echo "自动表单";
  314. }
  315. ?>
  316. </td>
  317. <td>
  318. <?php
  319. if($ft==1)
  320. {
  321. ?>
  322. <a href="mychannel_field_edit.php?id=<?php echo $id; ?>&fname=<?php echo $ctag->GetTagName(); ?>&issystem=<?php echo $row['issystem']; ?>"><i class="btn btn-sm fa fa-pencil-square-o" title="修改"></i></a>
  323. <?php if($row['issystem']!=1){ ?>
  324. <a href="javascript:;" onClick="javascript:DelNote('mychannel_field_edit.php?id=<?php echo $id; ?>&fname=<?php echo $ctag->GetTagName(); ?>&action=delete');"><i class="btn btn-sm fa fa-trash" title="删除"></i></a>
  325. <?php } ?>
  326. <?php
  327. } else {
  328. echo "禁止修改";
  329. }
  330. ?>
  331. </td>
  332. </tr>
  333. <?php
  334. }
  335. }
  336. ?>
  337. </table>
  338. </td>
  339. </tr>
  340. <tr>
  341. <td width="30%">模型字段配置(文本模式)<br>
  342. 修改配置文本可调整字段顺序,但不会修改字段属性
  343. </td>
  344. <td width="70%"><textarea name="fieldset" style="width:98%;height:300px" rows="10" id="fieldset"><?php echo stripslashes($row['fieldset']); ?></textarea></td>
  345. </tr>
  346. </table>
  347. <table width="98%" cellpadding="3" cellspacing="1" bgcolor="#f8f8f8" align="center" class="table maintable mt-3 mb-3">
  348. <tr>
  349. <td colspan="2" align="center" class="py-3">
  350. <button type="submit" class="btn btn-success btn-sm">保存</button>
  351. <button type="button" onClick="location='mychannel_main.php';" class="btn btn-success btn-sm">返回</button>
  352. </td>
  353. </tr>
  354. </table>
  355. </form>
  356. <?php
  357. if(!empty($openfield))
  358. {
  359. echo "<script>ShowItem2();</script>";
  360. }
  361. ?>
  362. </body>
  363. </html>