add.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <include file="public@header"/>
  2. <style type="text/css">
  3. .pic-list li {
  4. margin-bottom: 5px;
  5. }
  6. </style>
  7. <script type="text/html" id="photos-item-tpl">
  8. <li id="saved-image{id}">
  9. <input id="photo-{id}" type="hidden" name="photo_urls[]" value="{filepath}">
  10. <input class="form-control" id="photo-{id}-name" type="text" name="photo_names[]" value="{name}"
  11. style="width: 200px;" title="图片名称">
  12. <img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;"
  13. onclick="imagePreviewDialog(this.src);">
  14. <a href="javascript:uploadOneImage('图片上传','#photo-{id}');">替换</a>
  15. <a href="javascript:(function(){$('#saved-image{id}').remove();})();">移除</a>
  16. </li>
  17. </script>
  18. <script type="text/html" id="files-item-tpl">
  19. <li id="saved-file{id}">
  20. <input id="file-{id}" type="hidden" name="file_urls[]" value="{filepath}">
  21. <input class="form-control" id="file-{id}-name" type="text" name="file_names[]" value="{name}"
  22. style="width: 200px;" title="文件名称">
  23. <a id="file-{id}-preview" href="{preview_url}" target="_blank">下载</a>
  24. <a href="javascript:uploadOne('文件上传','#file-{id}','file');">替换</a>
  25. <a href="javascript:(function(){$('#saved-file{id}').remove();})();">移除</a>
  26. </li>
  27. </script>
  28. </head>
  29. <body>
  30. <div class="wrap js-check-wrap">
  31. <ul class="nav nav-tabs">
  32. <li><a href="{:url('AdminArticle/index')}">文章管理</a></li>
  33. <li class="active"><a href="{:url('AdminArticle/add')}">添加文章</a></li>
  34. </ul>
  35. <form action="{:url('AdminArticle/addPost')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
  36. <div class="row">
  37. <div class="col-md-9">
  38. <table class="table table-bordered">
  39. <tr>
  40. <th width="100">分类<span class="form-required">*</span></th>
  41. <td>
  42. <input class="form-control" type="text" style="width:400px;" required value=""
  43. placeholder="请选择分类" onclick="doSelectCategory();" id="js-categories-name-input"
  44. readonly/>
  45. <input class="form-control" type="hidden" value="" name="post[categories]"
  46. id="js-categories-id-input"/>
  47. </td>
  48. </tr>
  49. <tr>
  50. <th>标题<span class="form-required">*</span></th>
  51. <td>
  52. <input class="form-control" type="text" name="post[post_title]"
  53. id="title" required value="" placeholder="请输入标题"/>
  54. </td>
  55. </tr>
  56. <tr>
  57. <th>关键词</th>
  58. <td>
  59. <input class="form-control" type="text" name="post[post_keywords]" id="keywords" value=""
  60. placeholder="请输入关键字">
  61. <p class="help-block">多关键词之间用英文逗号隔开</p>
  62. </td>
  63. </tr>
  64. <tr>
  65. <th>文章来源</th>
  66. <td><input class="form-control" type="text" name="post[post_source]" id="source" value=""
  67. placeholder="请输入文章来源"></td>
  68. </tr>
  69. <tr>
  70. <th>摘要</th>
  71. <td>
  72. <textarea class="form-control" name="post[post_excerpt]" style="height: 50px;"
  73. placeholder="请填写摘要"></textarea>
  74. </td>
  75. </tr>
  76. <tr>
  77. <th>内容</th>
  78. <td>
  79. <script type="text/plain" id="content" name="post[post_content]"></script>
  80. </td>
  81. </tr>
  82. <tr>
  83. <th>相册</th>
  84. <td>
  85. <ul id="photos" class="pic-list list-unstyled form-inline"></ul>
  86. <a href="javascript:uploadMultiImage('图片上传','#photos','photos-item-tpl');"
  87. class="btn btn-default btn-sm">选择图片</a>
  88. </td>
  89. </tr>
  90. <tr>
  91. <th>附件</th>
  92. <td>
  93. <ul id="files" class="pic-list list-unstyled form-inline">
  94. </ul>
  95. <a href="javascript:uploadMultiFile('附件上传','#files','files-item-tpl','file');"
  96. class="btn btn-sm btn-default">选择文件</a>
  97. </td>
  98. </tr>
  99. <tr>
  100. <th>音频</th>
  101. <td class="form-inline">
  102. <input id="file-audio" class="form-control" type="text" name="post[more][audio]"
  103. value="{$post.more.audio|default=''}" placeholder="请上传音频文件" style="width: 200px;">
  104. <notempty name="post.more.audio">
  105. <a id="file-audio-preview" href="{:cmf_get_file_download_url($post.more.audio)}"
  106. target="_blank">下载</a>
  107. </notempty>
  108. <a href="javascript:uploadOne('文件上传','#file-audio','audio');">上传</a>
  109. </td>
  110. </tr>
  111. <tr>
  112. <th>视频</th>
  113. <td class="form-inline">
  114. <input id="file-video" class="form-control" type="text" name="post[more][video]"
  115. value="{$post.more.video|default=''}" placeholder="请上传视频文件" style="width: 200px;">
  116. <notempty name="post.more.video">
  117. <a id="file-video-preview" href="{:cmf_get_file_download_url($post.more.video)}"
  118. target="_blank">下载</a>
  119. </notempty>
  120. <a href="javascript:uploadOne('文件上传','#file-video','video');">上传</a>
  121. </td>
  122. </tr>
  123. </table>
  124. <hook name="portal_admin_article_edit_view_main"/>
  125. <div class="form-group">
  126. <div class="col-sm-offset-2 col-sm-10">
  127. <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
  128. <a class="btn btn-default" href="{:url('AdminArticle/index')}">{:lang('BACK')}</a>
  129. </div>
  130. </div>
  131. </div>
  132. <div class="col-md-3">
  133. <table class="table table-bordered">
  134. <tr>
  135. <th><b>缩略图</b></th>
  136. </tr>
  137. <tr>
  138. <td>
  139. <div style="text-align: center;">
  140. <input type="hidden" name="post[more][thumbnail]" id="thumbnail" value="">
  141. <a href="javascript:uploadOneImage('图片上传','#thumbnail');">
  142. <img src="__TMPL__/public/assets/images/default-thumbnail.png"
  143. id="thumbnail-preview"
  144. width="135" style="cursor: pointer"/>
  145. </a>
  146. <input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">
  147. </div>
  148. </td>
  149. </tr>
  150. <tr>
  151. <th><b>发布时间</b></th>
  152. </tr>
  153. <tr>
  154. <td>
  155. <input class="form-control js-bootstrap-datetime" type="text" name="post[published_time]"
  156. value="{:date('Y-m-d H:i:s',time())}">
  157. </td>
  158. </tr>
  159. <tr>
  160. <th>文章模板</th>
  161. </tr>
  162. <tr>
  163. <td>
  164. <select class="form-control" name="post[more][template]" id="more-template-select">
  165. <option value="">请选择模板</option>
  166. <foreach name="article_theme_files" item="vo">
  167. <php>$value=preg_replace('/^portal\//','',$vo['file']);</php>
  168. <option value="{$value}">{$vo.name} {$vo.file}.html</option>
  169. </foreach>
  170. </select>
  171. </td>
  172. </tr>
  173. </table>
  174. <hook name="portal_admin_article_edit_view_right_sidebar"/>
  175. </div>
  176. </div>
  177. </form>
  178. </div>
  179. <script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  180. <script type="text/javascript">
  181. //编辑器路径定义
  182. var editorURL = GV.WEB_ROOT;
  183. </script>
  184. <script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
  185. <script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
  186. <script type="text/javascript">
  187. $(function () {
  188. editorcontent = new baidu.editor.ui.Editor();
  189. editorcontent.render('content');
  190. try {
  191. editorcontent.sync();
  192. } catch (err) {
  193. }
  194. $('.btn-cancel-thumbnail').click(function () {
  195. $('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
  196. $('#thumbnail').val('');
  197. });
  198. });
  199. function doSelectCategory() {
  200. var selectedCategoriesId = $('#js-categories-id-input').val();
  201. openIframeLayer("{:url('AdminCategory/select')}?ids=" + selectedCategoriesId, '请选择分类', {
  202. area: ['700px', '400px'],
  203. btn: ['确定', '取消'],
  204. yes: function (index, layero) {
  205. //do something
  206. var iframeWin = window[layero.find('iframe')[0]['name']];
  207. var selectedCategories = iframeWin.confirm();
  208. if (selectedCategories.selectedCategoriesId.length == 0) {
  209. layer.msg('请选择分类');
  210. return;
  211. }
  212. $('#js-categories-id-input').val(selectedCategories.selectedCategoriesId.join(','));
  213. $('#js-categories-name-input').val(selectedCategories.selectedCategoriesName.join(' '));
  214. //console.log(layer.getFrameIndex(index));
  215. layer.close(index); //如果设定了yes回调,需进行手工关闭
  216. }
  217. });
  218. }
  219. </script>
  220. </body>
  221. </html>