PageRenderTime 49ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 1ms

/Application/Admin/View/Addons/config.html

https://gitlab.com/shenzhenlong1203/Onethink
HTML | 292 lines | 287 code | 5 blank | 0 comment | 0 complexity | 63b8697b8c361474e89c55f0a77f19f4 MD5 | raw file
Possible License(s): Apache-2.0
  1. <extend name="Public/base" />
  2. <block name="body">
  3. <script type="text/javascript" src="__STATIC__/uploadify/jquery.uploadify.min.js"></script>
  4. <div class="main-title cf">
  5. <h2>插件配置 [ {$data.title} ]</h2>
  6. </div>
  7. <form action="{:U('saveConfig')}" class="form-horizontal" method="post">
  8. <empty name="custom_config">
  9. <foreach name="data['config']" item="form" key="o_key">
  10. <div class="form-item cf">
  11. <label class="item-label">
  12. {$form.title|default=''}
  13. <present name="form.tip">
  14. <span class="check-tips">{$form.tip}</span>
  15. </present>
  16. </label>
  17. <switch name="form.type">
  18. <case value="text">
  19. <div class="controls">
  20. <input type="text" name="config[{$o_key}]" class="text input-large" value="{$form.value}">
  21. </div>
  22. </case>
  23. <case value="password">
  24. <div class="controls">
  25. <input type="password" name="config[{$o_key}]" class="text input-large" value="{$form.value}">
  26. </div>
  27. </case>
  28. <case value="hidden">
  29. <input type="hidden" name="config[{$o_key}]" value="{$form.value}">
  30. </case>
  31. <case value="radio">
  32. <div class="controls">
  33. <foreach name="form.options" item="opt" key="opt_k">
  34. <label class="radio">
  35. <input type="radio" name="config[{$o_key}]" value="{$opt_k}" <eq name="form.value" value="$opt_k"> checked</eq>>{$opt}
  36. </label>
  37. </foreach>
  38. </div>
  39. </case>
  40. <case value="checkbox">
  41. <div class="controls">
  42. <foreach name="form.options" item="opt" key="opt_k">
  43. <label class="checkbox">
  44. <php>
  45. is_null($form["value"]) && $form["value"] = array();
  46. </php>
  47. <input type="checkbox" name="config[{$o_key}][]" value="{$opt_k}" <in name="opt_k" value="$form.value"> checked</in>>{$opt}
  48. </label>
  49. </foreach>
  50. </div>
  51. </case>
  52. <case value="select">
  53. <div class="controls">
  54. <select name="config[{$o_key}]">
  55. <foreach name="form.options" item="opt" key="opt_k">
  56. <option value="{$opt_k}" <eq name="form.value" value="$opt_k"> selected</eq>>{$opt}</option>
  57. </foreach>
  58. </select>
  59. </div>
  60. </case>
  61. <case value="textarea">
  62. <div class="controls">
  63. <label class="textarea input-large">
  64. <textarea name="config[{$o_key}]">{$form.value}</textarea>
  65. </label>
  66. </div>
  67. </case>
  68. <case value="picture_union">
  69. <div class="controls">
  70. <input type="file" id="upload_picture_{$o_key}">
  71. <input type="hidden" name="config[{$o_key}]" id="cover_id_{$o_key}" value="{$form.value}"/>
  72. <div class="upload-img-box">
  73. <notempty name="form['value']">
  74. <php> $mulimages = explode(",", $form["value"]); </php>
  75. <foreach name="mulimages" item="one">
  76. <div class="upload-pre-item" val="{$one}">
  77. <img src="{$one|get_cover='path'}" ondblclick="removePicture{$o_key}(this)"/>
  78. </div>
  79. </foreach>
  80. </notempty>
  81. </div>
  82. </div>
  83. <script type="text/javascript">
  84. //上传图片
  85. /* 初始化上传插件 */
  86. $("#upload_picture_{$o_key}").uploadify({
  87. "height" : 30,
  88. "swf" : "__STATIC__/uploadify/uploadify.swf",
  89. "fileObjName" : "download",
  90. "buttonText" : "上传图片",
  91. "uploader" : "{:U('File/uploadPicture',array('session_id'=>session_id()))}",
  92. "width" : 120,
  93. 'removeTimeout' : 1,
  94. 'fileTypeExts' : '*.jpg; *.png; *.gif;',
  95. "onUploadSuccess" : uploadPicture{$o_key},
  96. 'onFallback' : function() {
  97. alert('未检测到兼容版本的Flash.');
  98. }
  99. });
  100. function uploadPicture{$o_key}(file, data){
  101. var data = $.parseJSON(data);
  102. var src = '';
  103. if(data.status){
  104. src = data.url || '__ROOT__' + data.path
  105. $("#cover_id_{$o_key}").parent().find('.upload-img-box').append(
  106. '<div class="upload-pre-item" val="' + data.id + '"><img src="__ROOT__' + src + '" ondblclick="removePicture{$o_key}(this)"/></div>'
  107. );
  108. setPictureIds{$o_key}();
  109. } else {
  110. updateAlert(data.info);
  111. setTimeout(function(){
  112. $('#top-alert').find('button').click();
  113. $(that).removeClass('disabled').prop('disabled',false);
  114. },1500);
  115. }
  116. }
  117. function removePicture{$o_key}(o){
  118. var p = $(o).parent().parent();
  119. $(o).parent().remove();
  120. setPictureIds{$o_key}();
  121. }
  122. function setPictureIds{$o_key}(){
  123. var ids = [];
  124. $("#cover_id_{$o_key}").parent().find('.upload-img-box').find('.upload-pre-item').each(function(){
  125. ids.push($(this).attr('val'));
  126. });
  127. if(ids.length > 0)
  128. $("#cover_id_{$o_key}").val(ids.join(','));
  129. else
  130. $("#cover_id_{$o_key}").val('');
  131. }
  132. </script>
  133. </case>
  134. <case value="group">
  135. <ul class="tab-nav nav">
  136. <volist name="form.options" id="li">
  137. <li data-tab="tab{$i}" <eq name="i" value="1">class="current"</eq>><a href="javascript:void(0);">{$li.title}</a></li>
  138. </volist>
  139. </ul>
  140. <div class="tab-content">
  141. <volist name="form.options" id="tab">
  142. <div id="tab{$i}" class="tab-pane <eq name="i" value="1">in</eq> tab{$i}">
  143. <foreach name="tab['options']" item="tab_form" key="o_tab_key">
  144. <label class="item-label">
  145. {$tab_form.title|default=''}
  146. <present name="tab_form.tip">
  147. <span class="check-tips">{$tab_form.tip}</span>
  148. </present>
  149. </label>
  150. <div class="controls">
  151. <switch name="tab_form.type">
  152. <case value="text">
  153. <input type="text" name="config[{$o_tab_key}]" class="text input-large" value="{$tab_form.value}">
  154. </case>
  155. <case value="password">
  156. <input type="password" name="config[{$o_tab_key}]" class="text input-large" value="{$tab_form.value}">
  157. </case>
  158. <case value="hidden">
  159. <input type="hidden" name="config[{$o_tab_key}]" value="{$tab_form.value}">
  160. </case>
  161. <case value="radio">
  162. <foreach name="tab_form.options" item="opt" key="opt_k">
  163. <label class="radio">
  164. <input type="radio" name="config[{$o_tab_key}]" value="{$opt_k}" <eq name="tab_form.value" value="$opt_k"> checked</eq>>{$opt}
  165. </label>
  166. </foreach>
  167. </case>
  168. <case value="checkbox">
  169. <foreach name="tab_form.options" item="opt" key="opt_k">
  170. <label class="checkbox">
  171. <php> is_null($tab_form["value"]) && $tab_form["value"] = array();</php>
  172. <input type="checkbox" name="config[{$o_tab_key}][]" value="{$opt_k}" <in name="opt_k" value="$tab_form.value"> checked</in>>{$opt}
  173. </label>
  174. </foreach>
  175. </case>
  176. <case value="select">
  177. <select name="config[{$o_tab_key}]">
  178. <foreach name="tab_form.options" item="opt" key="opt_k">
  179. <option value="{$opt_k}" <eq name="tab_form.value" value="$opt_k"> selected</eq>>{$opt}</option>
  180. </foreach>
  181. </select>
  182. </case>
  183. <case value="textarea">
  184. <label class="textarea input-large">
  185. <textarea name="config[{$o_tab_key}]">{$tab_form.value}</textarea>
  186. </label>
  187. </case>
  188. <case value="picture_union">
  189. <div class="controls">
  190. <input type="file" id="upload_picture_{$o_tab_key}">
  191. <input type="hidden" name="config[{$o_tab_key}]" id="cover_id_{$o_tab_key}" value="{$tab_form.value}"/>
  192. <div class="upload-img-box">
  193. <notempty name="tab_form['value']">
  194. <php> $mulimages = explode(",", $tab_form["value"]); </php>
  195. <foreach name="mulimages" item="one">
  196. <div class="upload-pre-item" val="{$one}">
  197. <img src="{$one|get_cover='path'}" ondblclick="removePicture{$o_tab_key}(this)"/>
  198. </div>
  199. </foreach>
  200. </notempty>
  201. </div>
  202. </div>
  203. <script type="text/javascript">
  204. //上传图片
  205. /* 初始化上传插件 */
  206. $("#upload_picture_{$o_tab_key}").uploadify({
  207. "height" : 30,
  208. "swf" : "__STATIC__/uploadify/uploadify.swf",
  209. "fileObjName" : "download",
  210. "buttonText" : "上传图片",
  211. "uploader" : "{:U('File/uploadPicture',array('session_id'=>session_id()))}",
  212. "width" : 120,
  213. 'removeTimeout' : 1,
  214. 'fileTypeExts' : '*.jpg; *.png; *.gif;',
  215. "onUploadSuccess" : uploadPicture{$o_tab_key},
  216. 'onFallback' : function() {
  217. alert('未检测到兼容版本的Flash.');
  218. }
  219. });
  220. function uploadPicture{$o_tab_key}(file, data){
  221. var data = $.parseJSON(data);
  222. var src = '';
  223. if(data.status){
  224. src = data.url || '__ROOT__' + data.path
  225. $("#cover_id_{$o_tab_key}").parent().find('.upload-img-box').append(
  226. '<div class="upload-pre-item" val="' + data.id + '"><img src="__ROOT__' + src + '" ondblclick="removePicture{$o_tab_key}(this)"/></div>'
  227. );
  228. setPictureIds{$o_tab_key}();
  229. } else {
  230. updateAlert(data.info);
  231. setTimeout(function(){
  232. $('#top-alert').find('button').click();
  233. $(that).removeClass('disabled').prop('disabled',false);
  234. },1500);
  235. }
  236. }
  237. function removePicture{$o_tab_key}(o){
  238. var p = $(o).parent().parent();
  239. $(o).parent().remove();
  240. setPictureIds{$o_tab_key}();
  241. }
  242. function setPictureIds{$o_tab_key}(){
  243. var ids = [];
  244. $("#cover_id_{$o_tab_key}").parent().find('.upload-img-box').find('.upload-pre-item').each(function(){
  245. ids.push($(this).attr('val'));
  246. });
  247. if(ids.length > 0)
  248. $("#cover_id_{$o_tab_key}").val(ids.join(','));
  249. else
  250. $("#cover_id_{$o_tab_key}").val('');
  251. }
  252. </script>
  253. </case>
  254. </switch>
  255. </div>
  256. </foreach>
  257. </div>
  258. </volist>
  259. </div>
  260. </case>
  261. </switch>
  262. </div>
  263. </foreach>
  264. <else />
  265. <present name="custom_config">
  266. {$custom_config}
  267. </present>
  268. </empty>
  269. <input type="hidden" name="id" value="{:I('id')}" readonly>
  270. <button type="submit" class="btn submit-btn ajax-post" target-form="form-horizontal"> </button>
  271. <button class="btn btn-return" onclick="javascript:history.back(-1);return false;"> </button>
  272. </form>
  273. </block>
  274. <block name="script">
  275. <script type="text/javascript" charset="utf-8">
  276. //导航高亮
  277. highlight_subnav('{:U('Addons/index')}');
  278. if($('ul.tab-nav').length){
  279. //当有tab时,返回按钮不显示
  280. $('.btn-return').hide();
  281. }
  282. $(function(){
  283. //支持tab
  284. showTab();
  285. })
  286. </script>
  287. </block>