Geen omschrijving
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.

edit.htm 49KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955
  1. {include file="public/layout" /}
  2. {eq name="$editor.editor_select" value="1"}
  3. {load href="__PUBLIC__/plugins/Ueditor/ueditor.config.js" /}
  4. {load href="__PUBLIC__/plugins/Ueditor/ueditor.all.min.js" /}
  5. {load href="__PUBLIC__/plugins/Ueditor/lang/zh-cn/zh-cn.js" /}
  6. {else/}
  7. {load href="__PUBLIC__/plugins/ckeditor/ckeditor.js" /}
  8. {/eq}
  9. <body class="bodysy-w">
  10. <div id="toolTipLayer" style="position: absolute; z-index: 9999; display: none; visibility: visible; left: 95px; top: 573px;"></div>
  11. <div id="append_parent"></div>
  12. <div id="ajaxwaitid"></div>
  13. <div id="geduan_div" class="h10"></div>
  14. <div id="page_div" class="page min-hg-c mb-20" style="min-width:auto;box-shadow:none;">
  15. <div class="fixed-bar">
  16. <div class="item-title">
  17. {include file="public/callback_page_1" /}<!-- 返回箭头 -->
  18. <a class="back_sz" href="javascript:void(0);" data-href="{:url('Special/help')}" onclick="openHelpframe(this, '设置与帮助', '500px', '100%', 'r');" title="设置与帮助"><i class="iconfont e-shezhi-tongyong"></i></a>
  19. <div class="subject">
  20. <h3>编辑专题</h3>
  21. <h5></h5>
  22. </div>
  23. <ul class="tab-base nc-row">
  24. <li><a href="javascript:void(0);" data-index='1' class="tab current"><span>基础内容</span></a></li>
  25. <li><a href="javascript:void(0);" data-index='2' class="tab"><span>专题文档</span></a></li>
  26. <li><a href="javascript:void(0);" data-index='3' class="tab"><span>SEO优化</span></a></li>
  27. <li><a href="javascript:void(0);" data-index='4' class="tab"><span>更多设置</span></a></li>
  28. <!-- #weapp_demontrate_li# -->
  29. <!-- #weapp_li# -->
  30. </ul>
  31. </div>
  32. </div>
  33. <form class="form-horizontal" id="post_form" action="{:url('Special/edit')}" method="post">
  34. <!-- 常规信息 -->
  35. <div class="ncap-form-default tab_div_1">
  36. <dl class="row">
  37. <dt class="tit">
  38. <label for="title"><em>*</em>文档标题</label>
  39. </dt>
  40. <dd class="opt">
  41. <input type="text" name="title" value="{$field.title}" id="title" class="input-txt" maxlength="200" {eq name="$channelRow.is_repeat_title" value="0"} oninput="check_title_repeat(this,'{$field.aid}');" {/eq}>
  42. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  43. 副标题:<input type="text" name="subtitle" value="{$field.subtitle}" id="subtitle" class="w200">
  44. <input type="hidden" name="old_title" value="{$field.title}" class="input-txt">
  45. <span class="err"></span>
  46. <p class="notic"></p>
  47. </dd>
  48. </dl>
  49. <dl class="row">
  50. <dt class="tit">
  51. <label for="title"><em>*</em>栏目分类</label>
  52. </dt>
  53. <dd class="opt">
  54. <input type="hidden" name="attr[typeid]" id="attr_typeid" value="{$field.typeid}">
  55. <select name="typeid" id="typeid">
  56. {$arctype_html}
  57. </select>
  58. <span class="err"></span>
  59. <p class="notic">谨慎切换,自定义字段的内容会随着栏目切换而清空,在保存之前不受影响!</p>
  60. </dd>
  61. </dl>
  62. {notempty name='$global.web_stypeid_open'}
  63. <dl class="row">
  64. <dt class="tit">
  65. <label for="stypeid">副栏目分类</label>
  66. </dt>
  67. <dd class="opt">
  68. <input type="hidden" name="stypeid" id="stypeid" value="{$field.stypeid}" class="input-txt" onkeyup="this.value=this.value.replace(/[^\d\,]/g,'');" onpaste="this.value=this.value.replace(/[^\d\,]/g,'');" placeholder="">
  69. &nbsp;<a href="javascript:void(0);" data-channel="{$channeltype}" onclick="select_stypeid(this);" class="ncap-btn ncap-btn-green">选择副栏目</a>
  70. <span class="err"></span>
  71. <p class="notic">支持同频道模型的栏目ID</p>
  72. <div id="stypeid_txt" class="pt5">
  73. {volist name='$stypeid_arr' id='vo'}{gt name='$key' value='0'}&nbsp;&nbsp;|&nbsp;&nbsp;{/gt}<span>{$vo.typename}</span>{/volist}
  74. </div>
  75. </dd>
  76. </dl>
  77. {/notempty}
  78. <dl class="row">
  79. <dt class="tit">
  80. <label>文档属性</label>
  81. </dt>
  82. <dd class="opt">
  83. {volist name="archives_flags" id="vo"}
  84. <input type="hidden" name="attr[{$vo.flag_fieldname}]" {if $field[$vo.flag_fieldname] == 1}value="1"{else/}value="0"{/if}>
  85. <label><input type="checkbox" name="{$vo.flag_fieldname}" value="1" {if $field[$vo.flag_fieldname] == 1}checked{/if}>{$vo.flag_name}<!-- [{$vo.flag_attr}] --></label>&nbsp;
  86. {/volist}
  87. <span class="err"></span>
  88. <p class="notic">如需管理,请点击右上角设置与帮助按钮</p>
  89. </dd>
  90. </dl>
  91. <dl class="row {if condition="$field.is_jump != 1"}none{/if} dl_jump">
  92. <dt class="tit">
  93. <label>跳转网址</label>
  94. </dt>
  95. <dd class="opt">
  96. <input type="text" value="{$field.jumplinks}" name="jumplinks" id="jumplinks" class="input-txt" placeholder="http://">
  97. <span class="err"></span>
  98. <p class="notic">请输入完整的URL网址(包含http或https),设置后访问该条信息将直接跳转到设置的网址</p>
  99. </dd>
  100. </dl>
  101. <dl class="row" style="z-index:2;">
  102. <dt class="tit">
  103. <label>文档标签</label>
  104. </dt>
  105. <dd class="opt">
  106. <input type="text" value="{$field.tags}" name="tags" id="tags" class="input-txt" placeholder="多个标签之间以逗号隔开" autocomplete="off" oninput="get_common_tagindex_input(this);" onfocus="$('#often_tags').hide();" onkeyup="this.value=this.value.replace(/[\,]/g,',');" onpaste="this.value=this.value.replace(/[\,]/g,',')">&nbsp;
  107. <a href="javascript:void(0);" onclick="get_common_tagindex(this);">显示常用标签</a>&nbsp;<img id="tag_loading" src="__STATIC__/common/images/loading.gif" style="display: none;" />
  108. <div class="often_tags" id="often_tags" data-opt="edit" style="display: none;"></div>
  109. <div class="often_tags" id="often_tags_input" style="display: none;"></div>
  110. <input type="hidden" id="tags_click_count">
  111. </dd>
  112. </dl>
  113. <dl class="row {empty name="$global.web_citysite_open"} none {/empty} ">
  114. <dt class="tit">
  115. <label for="title">所属区域</label>
  116. </dt>
  117. <dd class="opt">
  118. <select name="province_id" id="province_id" onchange="set_city_list(0);">
  119. <option value="0">全国</option>
  120. {volist name=':get_site_province_list()' id='vo'}
  121. <option value="{$vo.id}" {eq name="$field.province_id" value="$vo.id" } selected {/eq} >{$vo.name}</option>
  122. {/volist}
  123. </select>
  124. <select name="city_id" id="city_id" class="none ml5" onchange="set_area_list(0);">
  125. <option value="">--请选择--</option>
  126. </select>
  127. <select name="area_id" id="area_id" class="none ml5">
  128. <option value="">--请选择--</option>
  129. </select>
  130. <span class="err"></span>
  131. <p class="notic"></p>
  132. </dd>
  133. </dl>
  134. <dl class="row">
  135. <dt class="tit">
  136. <label>封面图片</label>
  137. </dt>
  138. <dd class="opt">
  139. <div class="input-file-show div_litpic_local" {neq name="$field.is_remote" value="0"}style="display: none;"{/neq}>
  140. <span class="show">
  141. <a id="img_a" target="_blank" class="nyroModal" rel="gal" href="{$field.litpic_local|default='javascript:void(0);'}">
  142. <i id="img_i" class="fa fa-picture-o" {notempty name="$field.litpic_local"}onmouseover="layer_tips=layer.tips('<img src={$field.litpic_local} class=\'layer_tips_img\'>',this,{tips: [1, '#fff']});"{/notempty} onmouseout="layer.close(layer_tips);"></i>
  143. </a>
  144. </span>
  145. <span class="type-file-box">
  146. <input type="text" id="litpic_local" name="litpic_local" value="{$field.litpic_local|default=''}" class="type-file-text" autocomplete="off">
  147. <input type="button" name="button" id="button1" value="选择上传..." class="type-file-button">
  148. <input class="type-file-file" onClick="GetUploadify(1,'','allimg','img_call_back')" size="30" hidefocus="true" nc_type="change_site_logo"
  149. title="点击前方预览图可查看大图,点击按钮选择文件并提交表单后上传生效">
  150. </span>
  151. </div>
  152. <input type="text" id="litpic_remote" name="litpic_remote" value="{$field.litpic_remote|default=''}" placeholder="http://" class="input-txt" onKeyup="keyupRemote(this, 'litpic');" {neq name="$field.is_remote" value="1"}style="display: none;"{/neq}>
  153. &nbsp;
  154. <label><input type="checkbox" name="is_remote" id="is_remote" value="1" {eq name="$field.is_remote" value="1"}checked="checked"{/eq} onClick="clickRemote(this, 'litpic');">远程图片</label>
  155. <span class="err"></span>
  156. <p class="notic">当没有手动上传图片时候,会自动提取正文的第一张图片作为缩略图</p>
  157. </dd>
  158. </dl>
  159. {include file="archives/get_field_addonextitem" /}
  160. </div>
  161. <!-- 常规信息 -->
  162. <!-- 专题节点 -->
  163. <div class="ncap-form-default tab_div_2" style="display:none;">
  164. <div class="special-add" onclick="specialNodeAdd();">
  165. <span><i class="layui-icon layui-icon-addition"></i>新增节点</span>
  166. </div>
  167. <div class="sort-list-special">
  168. {empty name='$specialNodeList'}
  169. <div class="special-items specialNodeItems" id="specialNode_1_item">
  170. <input type="hidden" name="specialNode[itemid][]" value="1">
  171. <div class="special-del" onclick="specialNodeDel(this);"><i class="fa fa-times" aria-hidden="true"></i>删除</div>
  172. <div class="special-items-row">
  173. <div class="special-item">
  174. <div class="special-item-l"><em>*</em>节点名称</div>
  175. <div class="special-item-r">
  176. <input type="text" name="specialNode[title][]" value="节点1" class="input-text" onkeyup="keyupNodeTitleUnique(this);">
  177. <span class="err"></span>
  178. </div>
  179. </div>
  180. <div class="special-item">
  181. <div class="special-item-l"><em>*</em>节点标识</div>
  182. <div class="special-item-r">
  183. <input type="text" name="specialNode[code][]" value="default1" class="input-text" onkeyup="keyupNodeCodeUnique(this);" onkeyup="this.value=this.value.replace(/[^\w\-\_]/g,'');" onpaste="this.value=this.value.replace(/[^\w\-\_]/g,'')">
  184. <span class="err"></span>
  185. </div>
  186. </div>
  187. </div>
  188. <div class="special-items-row">
  189. <div class="special-item">
  190. <div class="special-item-l">文档来源</div>
  191. <div class="special-item-r">
  192. <span class="option-item">
  193. <label class="ml5"><input type="radio" name="specialNode[isauto][1]" value="0" checked="checked" onclick="setNodeIsauto(this, 'specialNode_1_item');">&nbsp;节点文档列表</label>
  194. </span>
  195. <span class="option-item">
  196. <label class="ml5"><input type="radio" name="specialNode[isauto][1]" value="1" onclick="setNodeIsauto(this, 'specialNode_1_item');">&nbsp;自动获取文档</label>
  197. </span>
  198. </div>
  199. </div>
  200. </div>
  201. <div class="dl_specialNode_1_item_isauto_1" style="display: none;">
  202. <div class="special-items-row">
  203. <div class="special-item-l">关键字</div>
  204. <div class="special-item-r">
  205. <input type="text" name="specialNode[keywords][]" class="input-text">(以 , 逗号分开)
  206. </div>
  207. </div>
  208. <div class="special-items-row">
  209. <div class="special-item-l">所属栏目</div>
  210. <div class="special-item-r">
  211. <select name="specialNode[typeid][]">
  212. <option value="0">请选择栏目…</option>
  213. {$node_select_html}
  214. </select>
  215. </div>
  216. </div>
  217. <div class="special-items-row">
  218. <div class="special-item-l">文档数</div>
  219. <div class="special-item-r">
  220. <input type="text" name="specialNode[row][]" value="10" class="input-text" style="width: 50px;">
  221. </div>
  222. </div>
  223. </div>
  224. <div class="dl_specialNode_1_item_isauto_0">
  225. <div class="special-items-row">
  226. <div class="special-item-l">节点文档列表</div>
  227. <div class="special-item-r">
  228. <a href="javascript:void(0);" onclick="selectNodeArchives(this, 'specialNode_1_item');" class="ncap-btn ncap-btn-green">选择文档</a>
  229. </div>
  230. </div>
  231. <div class="special-items-row" style="display: none;">
  232. <div class="special-item-l">&nbsp;</div>
  233. <div class="special-item-r">
  234. <div class="ment-comment-table pd0">
  235. <div class="ment-table-wrapper">
  236. <div class="ment-table ment-table-default" style="max-height: 307px;padding: 0 10px;overflow-y: auto;">
  237. <div class="ment-table-header">
  238. <table cellspacing="0" cellpadding="0" border="0" style="width: 100%;">
  239. <colgroup> <col width=""> <col width="60"> </colgroup>
  240. <thead>
  241. <tr>
  242. <th> <div class="ment-table-cell"><span>文档标题</span> </div> </th>
  243. <th> <div class="ment-table-cell"><span>操作</span> </div> </th>
  244. </tr>
  245. </thead>
  246. </table>
  247. </div>
  248. <div class="ment-table-body">
  249. <table cellspacing="0" cellpadding="0" border="0" style="width: 100%;">
  250. <colgroup> <col width=""> <col width="60"> </colgroup>
  251. <input type="hidden" name="specialNode[aidlist][]" value="">
  252. <input type="hidden" name="specialNode[htmllist][]" value="">
  253. <tbody class="ment-table-tbody archivesTbody"></tbody>
  254. </table>
  255. </div>
  256. </div>
  257. </div>
  258. </div>
  259. </div>
  260. </div>
  261. </div>
  262. </div>
  263. {else/}
  264. {volist name='$specialNodeList' id='nodeVo'}
  265. <div class="special-items specialNodeItems" id="specialNode_{$i}_item">
  266. <input type="hidden" name="specialNode[node_id][]" value="{$nodeVo.node_id}">
  267. <input type="hidden" name="specialNode[itemid][]" value="{$i}">
  268. <div class="special-del" onclick="specialNodeDel(this);"><i class="fa fa-times" aria-hidden="true"></i>删除</div>
  269. <div class="special-items-row">
  270. <div class="special-item">
  271. <div class="special-item-l"><em>*</em>节点名称</div>
  272. <div class="special-item-r">
  273. <input type="text" name="specialNode[title][]" value="{$nodeVo.title|default='节点'.$i}" class="input-text" onkeyup="keyupNodeTitleUnique(this);">
  274. <span class="err"></span>
  275. </div>
  276. </div>
  277. <div class="special-item">
  278. <div class="special-item-l"><em>*</em>节点标识</div>
  279. <div class="special-item-r">
  280. <input type="text" name="specialNode[code][]" value="{$nodeVo.code|default='default'.$i}" class="input-text" onkeyup="keyupNodeCodeUnique(this);" onkeyup="this.value=this.value.replace(/[^\w\-\_]/g,'');" onpaste="this.value=this.value.replace(/[^\w\-\_]/g,'')">
  281. <span class="err"></span>
  282. </div>
  283. </div>
  284. </div>
  285. <div class="special-items-row">
  286. <div class="special-item">
  287. <div class="special-item-l">文档来源</div>
  288. <div class="special-item-r">
  289. <span class="option-item">
  290. <label class="ml5"><input type="radio" name="specialNode[isauto][{$i}]" value="0" {empty name='$nodeVo.isauto'} checked="checked" {/empty} onclick="setNodeIsauto(this, 'specialNode_{$i}_item');">&nbsp;节点文档列表</label>
  291. </span>
  292. <span class="option-item">
  293. <label class="ml5"><input type="radio" name="specialNode[isauto][{$i}]" value="1" {eq name='$nodeVo.isauto' value='1'} checked="checked" {/eq} onclick="setNodeIsauto(this, 'specialNode_{$i}_item');">&nbsp;自动获取文档</label>
  294. </span>
  295. </div>
  296. </div>
  297. </div>
  298. <div class="dl_specialNode_{$i}_item_isauto_1" {empty name='$nodeVo.isauto'} style="display: none;" {/empty}>
  299. <div class="special-items-row">
  300. <div class="special-item-l">关键字</div>
  301. <div class="special-item-r">
  302. <input type="text" name="specialNode[keywords][]" value="{$nodeVo.keywords|default=''}" class="input-text">(以 , 逗号分开)
  303. </div>
  304. </div>
  305. <div class="special-items-row">
  306. <div class="special-item-l">所属栏目</div>
  307. <div class="special-item-r">
  308. <select name="specialNode[typeid][]">
  309. <option value="0">请选择栏目…</option>
  310. {$node_select_html}
  311. </select>
  312. <script type="text/javascript">
  313. $(function(){
  314. $('#specialNode_{$i}_item').find("select[name='specialNode[typeid][]']").val({$nodeVo.typeid|default='0'});
  315. });
  316. </script>
  317. </div>
  318. </div>
  319. <div class="special-items-row">
  320. <div class="special-item-l">文档数</div>
  321. <div class="special-item-r">
  322. <input type="text" name="specialNode[row][]" value="{$nodeVo.row|default='10'}" class="input-text" style="width: 50px;">
  323. </div>
  324. </div>
  325. </div>
  326. <div class="dl_specialNode_{$i}_item_isauto_0" {eq name='$nodeVo.isauto' value='1'} style='display: none;' {/eq}>
  327. <div class="special-items-row">
  328. <div class="special-item-l">节点文档列表</div>
  329. <div class="special-item-r">
  330. <a href="javascript:void(0);" onclick="selectNodeArchives(this, 'specialNode_{$i}_item');" class="ncap-btn ncap-btn-green">选择文档</a>
  331. </div>
  332. </div>
  333. <div class="special-items-row">
  334. <div class="special-item-l">&nbsp;</div>
  335. <div class="special-item-r">
  336. <div class="ment-comment-table pd0">
  337. <div class="ment-table-wrapper">
  338. <div class="ment-table ment-table-default" style="max-height: 307px;padding: 0 10px;overflow-y: auto;">
  339. <div class="ment-table-header">
  340. <table cellspacing="0" cellpadding="0" border="0" style="width: 100%;">
  341. <colgroup> <col width=""> <col width="60"> </colgroup>
  342. <thead>
  343. <tr>
  344. <th> <div class="ment-table-cell"><span>文档标题</span> </div> </th>
  345. <th> <div class="ment-table-cell"><span>操作</span> </div> </th>
  346. </tr>
  347. </thead>
  348. </table>
  349. </div>
  350. <div class="ment-table-body">
  351. <table cellspacing="0" cellpadding="0" border="0" style="width: 100%;">
  352. <colgroup> <col width=""> <col width="60"> </colgroup>
  353. <input type="hidden" name="specialNode[aidlist][]" value='{$nodeVo.aidlist|default=""}'>
  354. <input type="hidden" name="specialNode[htmllist][]" value='{$nodeVo.htmllist|default=""}'>
  355. <tbody class="ment-table-tbody archivesTbody">
  356. {volist name="$nodeVo.archivesList" id="arc" key='arc_i'}
  357. <tr draggable="false" class="ment-table-row">
  358. <td class="">
  359. <div class="ment-table-cell ellipsis">{$arc.title}</div>
  360. </td>
  361. <td class="">
  362. <div class="ment-table-cell">
  363. <a class="curpoin" href="javaScript:void(0);" data-aid="{$arc.aid}" data-id="specialNode_{$i}_item" onclick="delNodeArchives(this);">删除</a>
  364. </div>
  365. </td>
  366. </tr>
  367. {/volist}
  368. </tbody>
  369. </table>
  370. </div>
  371. </div>
  372. </div>
  373. </div>
  374. </div>
  375. </div>
  376. </div>
  377. </div>
  378. {/volist}
  379. {/empty}
  380. </div>
  381. </div>
  382. <!-- 专题节点 -->
  383. <!-- SEO参数 -->
  384. <div class="ncap-form-default tab_div_3" style="display:none;">
  385. <dl class="row">
  386. <dt class="tit">
  387. <label for="seo_title">SEO标题</label>
  388. </dt>
  389. <dd class="opt">
  390. <input type="text" value="{$field.seo_title}" name="seo_title" id="seo_title" class="input-txt">
  391. <span class="err"></span>
  392. <p class="notic">一般不超过80个字符,为空时系统自动构成,可以到 <a href="{:url('Seo/index', array('inc_type'=>'seo'))}">SEO设置 - SEO基础</a> 中设置构成规则。</p>
  393. </dd>
  394. </dl>
  395. <dl class="row">
  396. <dt class="tit">
  397. <label>SEO关键词</label>
  398. </dt>
  399. <dd class="opt">
  400. <textarea rows="5" cols="60" id="seo_keywords" name="seo_keywords" style="height:20px;">{$field.seo_keywords}</textarea>
  401. <span class="err"></span>
  402. <p class="notic">一般不超过100个字符,多个关键词请用英文逗号(,)隔开,建议3到5个关键词。</p>
  403. </dd>
  404. </dl>
  405. <dl class="row">
  406. <dt class="tit">
  407. <label>SEO描述</label>
  408. </dt>
  409. <dd class="opt">
  410. <textarea rows="5" cols="60" id="seo_description" name="seo_description" style="height:54px;" class="keywordsTextarea" onkeyup="monitorInputStr();" onkeypress="monitorInputStr();">{$field.seo_description}</textarea>
  411. <span class="err"></span>
  412. <p class="notic">一般不超过100个字符,不填写时系统自动提取正文的前100个字符</p>
  413. <p class="notic2 {empty name='$field.seo_description'}none{/empty}" id="beenWritten">你已输入<span id="beenWrittenStr">0</span>个字符</p>
  414. <p><label><input type="checkbox" name="basic_update_seo_description" value="1" {if condition="!empty($global['basic_update_seo_description'])"} checked="checked" {/if}>勾选后SEO描述将随正文内容更新</label></p>
  415. </dd>
  416. </dl>
  417. </div>
  418. <!-- SEO参数 -->
  419. <!-- 其他参数 -->
  420. <div class="ncap-form-default tab_div_4" style="display:none;">
  421. <dl class="row">
  422. <dt class="tit">
  423. <label for="author">作者</label>
  424. </dt>
  425. <dd class="opt">
  426. <input type="hidden" value="{$field.users_id}" name="users_id" class="input-txt">
  427. <input type="text" value="{$field.author}" name="author" id="author" class="input-txt">
  428. <span class="err"></span>
  429. <p class="notic">设置作者默认名称(将同步至管理员笔名)</p>
  430. </dd>
  431. </dl>
  432. <dl class="row dl_origin">
  433. <dt class="tit">
  434. <label>来源</label>
  435. </dt>
  436. <dd class="opt origin-hot">
  437. <input type="text" value="{$field.origin}" name="origin" id="origin" class="input-txt" onclick="searchOrigin(this);" autocomplete="off">
  438. <div class="origin-hot-list" style="display: none;" id="search_keywords_list_origin"></div>
  439. <textarea id="system_originlist_str" style="display: none;">{$system_originlist_str}</textarea>
  440. <span class="setting" onclick="set_originlist();">设置</span>
  441. <span class="err"></span>
  442. <p class="notic">为空时默认“网络”</p>
  443. </dd>
  444. </dl>
  445. <dl class="row">
  446. <dt class="tit">
  447. <label>点击数</label>
  448. </dt>
  449. <dd class="opt">
  450. <input type="text" value="{$field.click}" name="click" id="click" class="input-txt">
  451. <span class="err"></span>
  452. <p class="notic"></p>
  453. </dd>
  454. </dl>
  455. <dl class="row">
  456. <dt class="tit">
  457. <label>阅读权限</label>
  458. </dt>
  459. <dd class="opt">
  460. <input type="hidden" value="{$field.arcrank}" name="old_arcrank" class="input-txt">
  461. <select name="arcrank" id="arcrank" {if $field.arcrank < 0 && $admin_info.role_id > 0 && $auth_role_info.check_oneself < 1} disabled="disabled" {/if}>
  462. {volist name="arcrank_list" id="vo"}
  463. <option value="{$vo.rank}" {eq name="$vo.rank" value="$field.arcrank"}selected{/eq}>{$vo.name}</option>
  464. {/volist}
  465. </select>
  466. <span class="err"></span>
  467. <p class="notic"></p>
  468. </dd>
  469. </dl>
  470. <!-- #weapp_UsersGroup_content_users_id={$field.users_id}#--><!-- #weapp_UsersGroup_content# -->
  471. <dl class="row">
  472. <dt class="tit">
  473. <label for="articleForm">发布时间</label>
  474. </dt>
  475. <dd class="opt">
  476. <input type="text" class="input-txt" id="add_time" name="add_time" value="{$field.add_time|date='Y-m-d H:i:s',###}" autocomplete="off">
  477. <span class="add-on input-group-addon">
  478. <i class="glyphicon glyphicon-calendar fa fa-calendar"></i>
  479. </span>
  480. <span class="err"></span>
  481. </dd>
  482. </dl>
  483. <dl class="row">
  484. <dt class="tit">
  485. <label for="tempview">文档模板</label>
  486. </dt>
  487. <dd class="opt">
  488. <select name="tempview" id="tempview">
  489. {volist name='$templateList' id='vo'}
  490. <option value="{$vo}" {eq name='$vo' value='$tempview'}selected{/eq}>{$vo}</option>
  491. {/volist}
  492. </select>
  493. <input type="hidden" name="type_tempview" value="{$tempview}" />
  494. <span class="err"></span>
  495. <p class="notic">模板命名规则:<br/>view_special.htm<br/>view_special_自定义.htm</p>
  496. </dd>
  497. </dl>
  498. <dl class="row {notin name='$seo_pseudo' value='2,3'}no-grey{/notin}" >
  499. <dt class="tit">
  500. <label>自定义文件名</label>
  501. </dt>
  502. <dd class="opt">
  503. <input type="text" {notin name='$seo_pseudo' value='2,3'}readonly="readonly" title="动态模式下不支持自定义文档url"{/notin} value="{$field.htmlfilename}" name="htmlfilename" id="htmlfilename" autocomplete="off" onkeyup="this.value=this.value.replace(/[^\u4E00-\u9FA5\w\-]/g,'-');" onpaste="this.value=this.value.replace(/[^\u4E00-\u9FA5\w\-]/g,'-');" class="input-txt {notin name='$seo_pseudo' value='2,3'}no-drop{/notin}">.html
  504. <span class="err"></span>
  505. <p class="notic">自定义文件名可由字母、数字、下划线(_)、连接符(-)等符号组成,除此之外其他字符将自动转为连接符(-)</p>
  506. </dd>
  507. </dl>
  508. </div>
  509. <!-- 其他参数 -->
  510. <!-- #weapp_demontrate_div# -->
  511. <!-- #weapp_div# -->
  512. <div class="ncap-form-default">
  513. <div class="bot2">
  514. <input type="hidden" name="gourl" value="{$gourl|default=''}">
  515. <input type="hidden" name="aid" value="{$field.aid|default='0'}">
  516. <input type="hidden" name="editor_addonFieldExt" id="editor_addonFieldExt" value="">
  517. <a href="JavaScript:void(0);" onclick="check_submit();" class="ncap-btn-big ncap-btn-green" id="submitBtn">确认提交</a>
  518. {include file="public/callback_page_2" /}<!-- 返回按钮 -->
  519. </div>
  520. </div>
  521. </form>
  522. </div>
  523. <script type="text/javascript">
  524. layui.use('laydate', function() {
  525. var laydate = layui.laydate;
  526. laydate.render({
  527. elem: '#add_time', type: 'datetime'
  528. });
  529. });
  530. $(function () {
  531. try {
  532. var web_citysite_open = {$global['web_citysite_open']|default=0};
  533. if (web_citysite_open > 0) {
  534. var province_id = {$field.province_id|default=0};
  535. var city_id = {$field.city_id|default=0};
  536. var area_id = {$field.area_id|default=0};
  537. if (province_id > 0) {
  538. set_city_list(city_id);
  539. }
  540. if (city_id > 0) {
  541. set_area_list(area_id);
  542. }
  543. }
  544. }catch(e){}
  545. //选项卡切换列表
  546. $('.tab-base').find('.tab').click(function(){
  547. $('.tab-base').find('.tab').each(function(){
  548. $(this).removeClass('current');
  549. });
  550. $(this).addClass('current');
  551. var tab_index = $(this).data('index');
  552. $(".tab_div_1, .tab_div_2, .tab_div_3, .tab_div_4").hide();
  553. $(".tab_div_"+tab_index).show();
  554. layer.closeAll();
  555. });
  556. $('input[name=is_jump]').click(function(){
  557. if ($(this).is(':checked')) {
  558. $('.dl_jump').show();
  559. } else {
  560. $('.dl_jump').hide();
  561. }
  562. });
  563. var dftypeid = {$field.typeid|default='0'};
  564. $('#typeid').change(function(){
  565. var current_channel = $(this).find('option:selected').data('current_channel');
  566. if (0 < $(this).val() && {$channeltype} != current_channel) {
  567. showErrorMsg('请选择对应模型的栏目!');
  568. $(this).val(dftypeid);
  569. } else if ({$channeltype} == current_channel) {
  570. layer.closeAll();
  571. }
  572. var aid = $("input[name=aid]").val();
  573. GetAddonextitem(1, $(this).val(), {$channeltype}, aid, true);
  574. });
  575. $(document).click(function(){
  576. $('#often_tags').hide();
  577. $('#often_tags_input').hide();
  578. event.stopPropagation();
  579. });
  580. $('#often_tags').click(function(){
  581. $('#often_tags').show();
  582. event.stopPropagation();
  583. });
  584. });
  585. // 判断输入框是否为空
  586. function check_submit() {
  587. if ($.trim($('input[name=title]').val()) == '') {
  588. $($('.tab-base').find('.tab')[0]).trigger('click');
  589. showErrorMsg('标题不能为空!');
  590. $('input[name=title]').focus();
  591. return false;
  592. }
  593. if ($('#typeid').val() == 0) {
  594. $($('.tab-base').find('.tab')[0]).trigger('click');
  595. showErrorMsg('请选择栏目…!');
  596. $('#typeid').focus();
  597. return false;
  598. }
  599. if (!checkNode()) {
  600. return false;
  601. }
  602. var htmlfilename = $.trim($('input[name=htmlfilename]').val());
  603. if (htmlfilename != '') {
  604. var exp = /^\d{1,}$/;
  605. if (exp.test(htmlfilename)) {
  606. showErrorAlert('自定义文件名不能纯数字,会与文档ID冲突!');
  607. $('input[name=htmlfilename]').focus();
  608. return false;
  609. }
  610. }
  611. layer_loading('正在处理');
  612. if (!ajax_check_htmlfilename()) {
  613. layer.closeAll();
  614. showErrorMsg('同栏目下,自定义文件名已存在!');
  615. $('input[name=htmlfilename]').focus();
  616. return false;
  617. }
  618. setTimeout(function () {
  619. editor_auto_210607();
  620. $('#post_form').submit();
  621. }, 1);
  622. }
  623. function img_call_back(fileurl_tmp) {
  624. $("#litpic_local").val(fileurl_tmp);
  625. $("#img_a").attr('href', fileurl_tmp);
  626. $("#img_i").attr('onmouseover', "layer_tips=layer.tips('<img src="+fileurl_tmp+" class=\\'layer_tips_img\\'>',this,{tips: [1, '#fff']});");
  627. $("input[name=is_litpic]").attr('checked', true); // 自动勾选属性[图片]
  628. }
  629. function setNodeIsauto(obj, nodeid) {
  630. var isauto = $(obj).val();
  631. if (isauto == 0) {
  632. $('.dl_'+nodeid+'_isauto_0').show();
  633. $('.dl_'+nodeid+'_isauto_1').hide();
  634. } else {
  635. $('.dl_'+nodeid+'_isauto_0').hide();
  636. $('.dl_'+nodeid+'_isauto_1').show();
  637. }
  638. }
  639. // 点击选择节点文章
  640. var tbodyTr;
  641. var nodeTagID;
  642. var lists_node;
  643. var lists_html;
  644. // 节点文章预定义变量
  645. var nodeAidArr = [];
  646. var nodeAidStr = '';
  647. var nodeAidList = [];
  648. function selectNodeArchives(obj, nodeid) {
  649. nodeTagID = nodeid;
  650. tbodyTr = $('#' + nodeTagID + ' .archivesTbody');
  651. lists_node = $('#' + nodeTagID).find("input[name='specialNode[aidlist][]']");
  652. lists_html = $('#' + nodeTagID).find("input[name='specialNode[htmllist][]']");
  653. nodeAidArr = lists_node.val() ? lists_node.val().split(',') : [];
  654. nodeAidList = lists_html.val() ? $.parseJSON(lists_html.val()) : [];
  655. var aidlist = '';//lists_node.val();
  656. var url = eyou_basefile + '?m=admin&c=Special&a=ajax_node_archives_list&aids='+aidlist+'&lang='+__lang__;
  657. //iframe窗
  658. var iframes = layer.open({
  659. type: 2,
  660. title: '选择节点文档',
  661. fixed: true, //不固定
  662. shadeClose: false,
  663. shade: layer_shade,
  664. area: ['80%', '80%'],
  665. content: url
  666. });
  667. }
  668. // 选择节点文章时加载
  669. function nodeAidSelectLoad(aidArr, addList) {
  670. nodeAidArr = aidArr;
  671. nodeAidList = addList;
  672. nodeAidStr = nodeAidArr.join(',');
  673. }
  674. // 选择关联文章返回
  675. function selectArticleBack() {
  676. var html = '';
  677. for (var i = 0; i < nodeAidList.length; i++) {
  678. // 文档列表处理
  679. html +=
  680. '<tr draggable="false" class="ment-table-row">'+
  681. '<td class="">'+
  682. '<div class="ment-table-cell ellipsis">' + nodeAidList[i]['title'] + '</div>'+
  683. '</td>'+
  684. '<td class="">'+
  685. '<div class="ment-table-cell">'+
  686. '<a class="curpoin" href="javaScript:void(0);" data-aid="' + nodeAidList[i]['aid'] + '" data-id="' + nodeTagID + '" onclick="delNodeArchives(this);">删除</a>'+
  687. '</div>'+
  688. '</td>'+
  689. '</tr>';
  690. }
  691. // 加载文档标题显示
  692. tbodyTr.empty().html(html);
  693. $('.dl_'+nodeTagID+'_isauto_0 .special-items-row').show();
  694. // 加载文档aid隐藏域
  695. lists_node.val(nodeAidStr);
  696. // 加载文档标题隐藏域
  697. lists_html.val(JSON.stringify(nodeAidList));
  698. }
  699. // 删除节点文档列表中指定的文档
  700. function delNodeArchives(obj) {
  701. // 获取单个节点文档aid列表
  702. var singleNodeList = $('#' + $(obj).attr('data-id')).find("input[name='specialNode[aidlist][]']");
  703. var singleNodeAids = singleNodeList.val().split(',');
  704. // 处理删除单个节点指定的文档aid
  705. var aid = $(obj).attr('data-aid');
  706. for (var i = 0; i < singleNodeAids.length; i++) {
  707. if (parseInt(aid) === parseInt(singleNodeAids[i])) singleNodeAids.splice(i, 1);
  708. }
  709. // 将处理后的节点aid列表回存
  710. singleNodeList.val(singleNodeAids.join(','));
  711. // 获取单个节点文档html列表
  712. var singleNodeObj = $('#' + $(obj).attr('data-id')).find("input[name='specialNode[htmllist][]']");
  713. var singleNodeHtml = $.parseJSON(singleNodeObj.val());
  714. // 处理删除单个节点指定的文档html
  715. for (var i = 0; i < singleNodeHtml.length; i++) {
  716. if (parseInt(aid) === parseInt(singleNodeHtml[i].aid)) singleNodeHtml.splice(i, 1);
  717. }
  718. // 将处理后的节点html列表回存
  719. singleNodeObj.val(JSON.stringify(singleNodeHtml));
  720. // 删除节点文档html
  721. $(obj).parent().parent().parent().remove();
  722. }
  723. /**
  724. * 删除节点
  725. * @return {[type]} [description]
  726. */
  727. function specialNodeDel(obj) {
  728. var num = $('.specialNodeItems').length;
  729. if (num <= 1) {
  730. layer.msg('至少保留一个!', {icon: 2});
  731. return false;
  732. }
  733. $(obj).parent().remove();
  734. }
  735. /**
  736. * 新增节点
  737. * @return {[type]} [description]
  738. */
  739. var node_itemid = $('.tab_div_2 .specialNodeItems').length;
  740. function specialNodeAdd() {
  741. var len = $('.specialNodeItems').length;
  742. var itemObj = $($('.specialNodeItems')[len - 1]);
  743. var nodehtml = itemObj.html();
  744. var itemid = itemObj.find("input[name='specialNode[itemid][]']").val();
  745. node_itemid++;
  746. nodehtml = '<div class="special-items specialNodeItems" id="specialNode_'+itemid+'_item">'+nodehtml+'</div>';
  747. nodehtml = nodehtml.replace(new RegExp('specialNode_'+itemid+'_item', "g"), 'specialNode_'+node_itemid+'_item'); //第一个参数是正则表达式。
  748. nodehtml = nodehtml.replace(new RegExp('specialNode\\[isauto\\]\\['+itemid+'\\]', "g"), 'specialNode[isauto]['+node_itemid+']'); //第一个参数是正则表达式。
  749. $($('.specialNodeItems')[0]).before(nodehtml);
  750. // 重置数据
  751. $('#specialNode_'+node_itemid+'_item').find("input[name='specialNode[title][]']").val('节点'+node_itemid);
  752. $('#specialNode_'+node_itemid+'_item').find("input[name='specialNode[code][]']").val('default'+node_itemid);
  753. $('#specialNode_'+node_itemid+'_item').find("input[name='specialNode[isauto]["+node_itemid+"]'][value='0']").prop("checked",true);
  754. // $('#specialNode_'+node_itemid+'_item').find("textarea[name='specialNode[aidlist][]']").val('');
  755. $('#specialNode_'+node_itemid+'_item').find("input[name='specialNode[keywords][]']").val('');
  756. $('#specialNode_'+node_itemid+'_item').find("select[name='specialNode[typeid][]']").val('0');
  757. $('#specialNode_'+node_itemid+'_item').find("select[name='specialNode[row][]']").val('10');
  758. $('#specialNode_'+node_itemid+'_item').find("input[name='specialNode[itemid][]']").val(node_itemid);
  759. $('#specialNode_'+node_itemid+'_item').find("input[name='specialNode[node_id][]']").val(0);
  760. // 清理节点文档列表
  761. $('#specialNode_'+node_itemid+'_item .archivesTbody').html('');
  762. $('#specialNode_'+node_itemid+'_item .dl_specialNode_'+node_itemid+'_item_isauto_0').show();
  763. $('#specialNode_'+node_itemid+'_item .dl_specialNode_'+node_itemid+'_item_isauto_1').hide();
  764. $('#specialNode_'+node_itemid+'_item .dl_specialNode_'+node_itemid+'_item_isauto_0 .special-items-row').eq(1).hide();
  765. $('#specialNode_'+node_itemid+'_item').find("input[name='specialNode[aidlist][]']").val('');
  766. $('#specialNode_'+node_itemid+'_item').find("input[name='specialNode[htmllist][]']").val('');
  767. }
  768. function checkNode()
  769. {
  770. var returnVal = true;
  771. var titleObj = $("input[name='specialNode[title][]']");
  772. $.each(titleObj, function (index, item) {
  773. if ($.trim($(item).val()) == '') {
  774. showErrorMsg('节点名称不能为空!');
  775. $(item).focus();
  776. returnVal = false;
  777. return false;
  778. }
  779. });
  780. if (true == returnVal) {
  781. returnVal = nodeTitleUnique(0);
  782. }
  783. if (true == returnVal) {
  784. var codeObj = $("input[name='specialNode[code][]']");
  785. $.each(codeObj, function (index, item) {
  786. if ($.trim($(item).val()) == '') {
  787. showErrorMsg('节点标识不能为空!');
  788. $(item).focus();
  789. returnVal = false;
  790. return false;
  791. }
  792. });
  793. }
  794. if (true == returnVal) {
  795. returnVal = nodeCodeUnique(0);
  796. }
  797. return returnVal;
  798. }
  799. function keyupNodeTitleUnique(obj)
  800. {
  801. var returnVal = true;
  802. $(obj).parent().find('span.err').html('').hide();
  803. returnVal = nodeTitleUnique(1);
  804. if (!returnVal) {
  805. $(obj).parent().find('span.err').html('<font color="red">已存在,请更改!</font>').show();
  806. }
  807. }
  808. function keyupNodeCodeUnique(obj)
  809. {
  810. var returnVal = true;
  811. $(obj).parent().find('span.err').html('').hide();
  812. returnVal = nodeCodeUnique(1);
  813. if (!returnVal) {
  814. $(obj).parent().find('span.err').html('<font color="red">已存在,请更改!</font>').show();
  815. }
  816. }
  817. /**
  818. * 检测节点名称的唯一性
  819. * @return {[type]} [description]
  820. */
  821. function nodeTitleUnique(isMsg)
  822. {
  823. var returnVal = true;
  824. var titleObj = $("input[name='specialNode[title][]']");
  825. $.each(titleObj, function (index, item) {
  826. var bnum = 0;
  827. $.each(titleObj, function (index2, item2) {
  828. if ($.trim($(item).val()) == $.trim($(item2).val())) {
  829. bnum += 1;
  830. }
  831. })
  832. if (bnum > 1) {
  833. if (0 == isMsg) {
  834. showErrorMsg('节点名称已存在,请更改!');
  835. $(item).focus();
  836. }
  837. returnVal = false;
  838. return false;
  839. }
  840. });
  841. return returnVal;
  842. }
  843. /**
  844. * 检测节点标识的唯一性
  845. * @return {[type]} [description]
  846. */
  847. function nodeCodeUnique(isMsg)
  848. {
  849. var returnVal = true;
  850. var codeObj = $("input[name='specialNode[code][]']");
  851. $.each(codeObj, function (index, item) {
  852. var bnum = 0;
  853. $.each(codeObj, function (index2, item2) {
  854. if ($.trim($(item).val()) == $.trim($(item2).val())) {
  855. bnum += 1;
  856. }
  857. })
  858. if (bnum > 1) {
  859. if (0 == isMsg) {
  860. showErrorMsg('节点标识已存在,请更改!');
  861. $(item).focus();
  862. }
  863. returnVal = false;
  864. return false;
  865. }
  866. });
  867. return returnVal;
  868. }
  869. /** 以下 专题节点的拖动排序相关 js*/
  870. // $( ".sort-list-special" ).sortable({
  871. // start: function( event, ui) {
  872. // }
  873. // ,stop: function( event, ui ) {
  874. // }
  875. // });
  876. //因为他们要拖动,所以尽量设置他们的文字不能选择。
  877. // $( ".sort-list-special" ).disableSelection();
  878. function newtpl()
  879. {
  880. var url = "{:url('Archives/ajax_newtpl', ['type'=>'view', 'nid'=>'special'])}";
  881. //iframe窗
  882. layer.open({
  883. type: 2,
  884. title: '新建文档模板',
  885. fixed: true, //不固定
  886. shadeClose: false,
  887. shade: layer_shade,
  888. maxmin: true, //开启最大化最小化按钮
  889. area: ['90%', '90%'],
  890. content: url
  891. });
  892. }
  893. </script>
  894. <script>
  895. try{
  896. var mt20_1649209614 = sessionStorage.getItem("mt20_1649209614");
  897. if (mt20_1649209614 == 1){
  898. $("#geduan_div").removeClass("h10");
  899. }else{
  900. $("#geduan_div").addClass("h10");
  901. }
  902. }catch(e){}
  903. </script>
  904. {include file="public/footer" /}