cms_index.php 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508
  1. <?php defined('InShopNC') or exit('Access Invalid!');?>
  2. <style type="text/css">
  3. .module-state-show { background-color: #FFF; }
  4. .module-state-hide { background-color: #CCC; }
  5. </style>
  6. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/jquery-ui/jquery.ui.js"></script>
  7. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/template.min.js" charset="utf-8"></script>
  8. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/jquery.edit.js" charset="utf-8"></script>
  9. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/jquery.mousewheel.js"></script>
  10. <script type="text/javascript" src="<?php echo RESOURCE_SITE_URL;?>/js/dialog/dialog.js" id="dialog_js" charset="utf-8"></script>
  11. <script type="text/javascript">
  12. $(document).ready(function(){
  13. //页面模块列表
  14. <?php if(!empty($output['list']) && is_array($output['list'])) {?>
  15. var page_module_list = $.parseJSON('<?php echo json_encode($output['list']);?>');
  16. var page_view_html = '';
  17. $.each(page_module_list, function(index, page_module) {
  18. page_view_html += runder_page_view(page_module);
  19. });
  20. $('#page_view').html(page_view_html);
  21. <?php } else { ?>
  22. $('#page_view').html(runder_page_view());
  23. <?php } ?>
  24. //模块列表
  25. <?php if(!empty($output['module_list']) && is_array($output['module_list'])) {?>
  26. var module_list = $.parseJSON('<?php echo json_encode($output['module_list']);?>');
  27. var module_list_standard_html = '';
  28. var module_list_custom_html = '';
  29. $.each(module_list, function(index, module_item) {
  30. if(module_item.module_class == 2) {
  31. module_list_custom_html += template.render('module_list_template', module_item);
  32. } else {
  33. module_list_standard_html += template.render('module_list_template', module_item);
  34. }
  35. });
  36. $('#template_module_list_standard').html(module_list_standard_html);
  37. $('#template_module_list_custom').html(module_list_custom_html);
  38. <?php } ?>
  39. //自定义滚定条
  40. var screen_height = $(window).height() - 148;
  41. $('#page_view_content').css('height', screen_height);
  42. $('#page_view_content').perfectScrollbar();
  43. $('#template_module_list_content').css('height', screen_height);
  44. $('#template_module_list_content').perfectScrollbar();
  45. function runder_page_view(page_module) {
  46. if(page_module) {
  47. if(parseInt(page_module.module_state, 10) === 1) {
  48. page_module.module_state_css = 'module-state-show';
  49. page_module.module_state_operate = 'btn_hide_page_module';
  50. page_module.module_state_operate_text = '关闭';
  51. } else {
  52. page_module.module_state_css = 'module-state-hide';
  53. page_module.module_state_operate = 'btn_show_page_module';
  54. page_module.module_state_operate_text = '启用';
  55. }
  56. if(parseInt(page_module.module_view, 10) === 1) {
  57. page_module.module_css = '';
  58. page_module.module_view_text = '折叠';
  59. } else {
  60. page_module.module_css = 'page-module-mini';
  61. page_module.module_view_text = '展开';
  62. }
  63. return template.render('page_view_template', page_module);
  64. } else {
  65. return template.render('page_view_null', {});
  66. }
  67. }
  68. $('#template_module_list').on('click', '[nctype="btn_add_page_module"]', function() {
  69. var $btn_add = $(this);
  70. var page_module = {};
  71. page_module.module_title = $btn_add.attr('data-module-title');
  72. page_module.module_name = $btn_add.attr('data-module-name');
  73. page_module.module_type = $btn_add.attr('data-module-type');
  74. $.post("index.php?act=cms_index&op=add_page_module", { module_title: page_module.module_title, module_name: page_module.module_name, module_type: page_module.module_type }, function(data) {
  75. if(data.result) {
  76. page_module.module_state = 1;
  77. page_module.module_id = data.module_id;
  78. page_module.module_style = data.module_style;
  79. page_module.module_view = data.module_view;
  80. $("#page_view").find('.page-module-null').remove();
  81. var new_page_module = runder_page_view(page_module);
  82. $(new_page_module).appendTo("#page_view").hide().fadeIn('slow');
  83. $('.page-module').last().find('span[nc_type="module_title"]').inline_edit_confirm({act: 'cms_index', op:'update_page_module_title'});
  84. $('#page_view_content').scrollTop($('#page_view').height());
  85. } else {
  86. showError(data.message);
  87. }
  88. },'json')
  89. });
  90. //模块删除按钮样式
  91. $('#template_module_list').on(
  92. {
  93. mouseenter: function() {
  94. $(this).parent('div').addClass('template-module-drop');
  95. },
  96. mouseleave: function() {
  97. $(this).parent('div').removeClass('template-module-drop');
  98. }
  99. }, '[nctype="btn_drop_module"]');
  100. //模块删除
  101. $('#template_module_list').on('click', '[nctype="btn_drop_module"]', function() {
  102. var $btn_drop = $(this);
  103. if(confirm('确认删除?')) {
  104. var module_id = $(this).attr('data-module-id');
  105. $.post("index.php?act=cms_index&op=drop_module", { module_id: module_id }, function(data) {
  106. if(data.result) {
  107. $btn_drop.parent('div').remove();
  108. $('#page_view_content').find('[data-module-name="' + data.module_name + '"]').remove();
  109. if($("#page_view").children().length <= 0) {
  110. $('#page_view').html(runder_page_view());
  111. }
  112. } else {
  113. showError(data.message);
  114. }
  115. }, 'json');
  116. }
  117. });
  118. //启用页面模块
  119. $('#page_view').on('click', "[nctype='btn_show_page_module']", function() {
  120. var $btn = $(this);
  121. var module_id = $btn.attr('data-module-id');
  122. $.post("index.php?act=cms_index&op=update_page_module_show", { module_id: module_id }, function(data) {
  123. if(data.result) {
  124. var $page_module = $btn.parents('.page-module');
  125. $page_module.removeClass('module-state-hide');
  126. $page_module.addClass('module-state-show');
  127. $btn.attr('nctype', 'btn_hide_page_module');
  128. $btn.text('关闭');
  129. } else {
  130. showError(data.message);
  131. }
  132. },'json')
  133. });
  134. //启用页面模块
  135. $('#page_view').on('click', "[nctype='btn_hide_page_module']", function() {
  136. var $btn = $(this);
  137. var module_id = $btn.attr('data-module-id');
  138. $.post("index.php?act=cms_index&op=update_page_module_hide", { module_id: module_id }, function(data) {
  139. if(data.result) {
  140. var $page_module = $btn.parents('.page-module');
  141. $page_module.removeClass('module-state-show');
  142. $page_module.addClass('module-state-hide');
  143. $btn.attr('nctype', 'btn_show_page_module');
  144. $btn.text('启用');
  145. } else {
  146. showError(data.message);
  147. }
  148. },'json')
  149. });
  150. //删除页面模块
  151. $('#page_view').on('click', "[nctype='btn_drop_page_module']", function() {
  152. if(confirm('确认删除')) {
  153. var $btn_drop = $(this);
  154. var module_id = $btn_drop.attr('data-module-id');
  155. $.post("index.php?act=cms_index&op=drop_page_module", { module_id: module_id }, function(data) {
  156. if(data.result) {
  157. var $page_module = $btn_drop.parents('.page-module');
  158. $page_module.fadeOut('slow', function() {
  159. $page_module.remove();
  160. if($("#page_view").children().length <= 0) {
  161. $('#page_view').html(runder_page_view());
  162. }
  163. });
  164. } else {
  165. showError(data.message);
  166. }
  167. }, 'json')
  168. }
  169. });
  170. //模块拖拽排序
  171. $("#page_view").sortable({
  172. update: function(event, ui) {
  173. var page_module_id_string = '';
  174. $page_module_list = $('#page_view').find('.page-module');
  175. $page_module_list.each(function(index, page_module) {
  176. page_module_id_string += $(page_module).attr('data-module-id') + ',';
  177. });
  178. $.post("index.php?act=cms_index&op=update_page_module_index", {page_module_id_string: page_module_id_string}, function(data) {
  179. if(!data.result) {
  180. showError(data.message);
  181. }
  182. }, 'json');
  183. }
  184. });
  185. $('span[nc_type="module_title"]').inline_edit_confirm({act: 'cms_index', op:'update_page_module_title'});
  186. //生成首页
  187. $("#btn_index_build").click(function() {
  188. $.getJSON('index.php?act=cms_index&op=cms_index_build', function(data) {
  189. if(data.result) {
  190. showSucc(data.message);
  191. } else {
  192. showError(data.message);
  193. }
  194. });
  195. });
  196. $('#btn_add_module').click(function() {
  197. $module_frame_list = $('#module_frame_list');
  198. $module_assembly_list = $('#module_assembly_list');
  199. if($module_frame_list.html() === '') {
  200. $.getJSON('index.php?act=cms_index&op=get_module_frame_list', function(data) {
  201. if(data.frame_list) {
  202. var template_data = {};
  203. template_data.list = data.frame_list;
  204. $module_frame_list.html(template.render('module_frame_list_template', template_data));
  205. }
  206. if(data.assembly_list) {
  207. var template_data = {};
  208. template_data.list = data.assembly_list;
  209. $module_assembly_list.html(template.render('module_assembly_list_template', template_data));
  210. }
  211. });
  212. }
  213. $('#module_frame_edit').hide();
  214. $('#module_frame_list').fadeIn();
  215. $('#dialog_add_module').nc_show_dialog({
  216. width: 640,
  217. title: '添加自定义模块'
  218. });
  219. });
  220. $('#module_frame_list').on('click', '[nctype="btn_select_module_frame"]', function() {
  221. var frame_structure = $.parseJSON($(this).attr('data-frame-structure'));
  222. var data = {};
  223. data.list = frame_structure;
  224. $('#module_frame').html(template.render('module_frame_template', data));
  225. $('#input_frame_name').val($(this).attr('data-frame-name'));
  226. $('#module_frame_list').hide();
  227. $('#module_frame_edit').fadeIn();
  228. });
  229. $('#btn_show_module_frame_list').on('click', function() {
  230. $('#module_frame_edit').hide();
  231. $('#module_frame_list').fadeIn();
  232. });
  233. $current_module_frame = null;
  234. $('#module_frame').on('click', '[nctype="btn_select_module_frame_block"]', function() {
  235. $('[nctype="btn_select_module_frame_block"]').removeClass('module-frame-current').addClass('module-frame-normal');
  236. $(this).addClass('module-frame-current').removeClass('module-frame-normal');
  237. $current_module_frame = $(this);
  238. });
  239. $('#module_assembly_list').on('click', '[nctype="btn_select_module_assembly"]', function() {
  240. if($current_module_frame) {
  241. var assembly_name = $(this).attr('data-assembly-name');
  242. $current_module_frame.html('<span class="module-assembly-' + assembly_name + '"></span>');
  243. $current_module_frame.removeClass('module-frame-current');
  244. $current_module_frame.addClass('module-frame-normal');
  245. $current_module_frame.attr('data-module-assembly', assembly_name);
  246. $current_module_frame = null;
  247. } else {
  248. showError('请选择框架位置');
  249. }
  250. });
  251. $('#module_frame').on('click', '#btn_toggle_module_display_title', function() {
  252. var current = $(this).attr('data-module-title-state');
  253. var $div_title = $(this).parent('.cms-module-frame-title');
  254. if(current === 'enable') {
  255. $(this).attr('data-module-title-state', 'disable');
  256. $div_title.find('span').text('隐藏标题');
  257. $div_title.removeClass('module-title-enable');
  258. $div_title.addClass('module-title-disable');
  259. } else {
  260. $(this).attr('data-module-title-state', 'enable');
  261. $div_title.find('span').text('显示标题');
  262. $div_title.removeClass('module-title-disable');
  263. $div_title.addClass('module-title-enable');
  264. }
  265. });
  266. $('#btn_save_module').click(function() {
  267. var frame_name = $('#input_frame_name').val();
  268. var module_title = $('#input_module_title').val();
  269. var module_display_title_state = $('#btn_toggle_module_display_title').attr('data-module-title-state');
  270. var frame_block = {};
  271. $('[nctype="btn_select_module_frame_block"]').each(function(index, item) {
  272. frame_block[$(item).attr('data-block-name')] = $(item).attr('data-module-assembly');
  273. });
  274. $.post("index.php?act=cms_index&op=save_module", {module_title: module_title, frame_name: frame_name, frame_block: frame_block, module_display_title_state: module_display_title_state}, function(data) {
  275. if(data.result) {
  276. var new_module = template.render('module_list_template', data.module_item);
  277. $(new_module).appendTo("#template_module_list_custom").hide().fadeIn('slow');
  278. $('#template_module_list_content').scrollTop($('.template-module-list').height());
  279. } else {
  280. showError(data.message);
  281. }
  282. }, 'json');
  283. $('#dialog_add_module').hide();
  284. });
  285. //主题选择
  286. $('#page_view').on('click', "[nctype='btn_module_style_change']", function() {
  287. $(this).parents('.handle').find('.module-style-change').show();
  288. });
  289. //取消主题选择
  290. $('#page_view').on('click', "[nctype='btn_module_style_change_cancel']", function() {
  291. $(this).parents('.module-style-change').hide();
  292. });
  293. //主题修改
  294. $('#page_view').on('click', "[nctype='btn_module_style_select']", function() {
  295. var $btn = $(this);
  296. var module_id = $btn.attr('data-module-id');
  297. var module_style = $btn.attr('data-module-style');
  298. $.post("index.php?act=cms_index&op=update_page_module_style", {module_id: module_id, module_style: module_style}, function(data) {
  299. if(data.result) {
  300. var $page_module = $btn.parents('.page-module');
  301. $page_module[0].className = $page_module[0].className.replace(/\module-style-style\d/g, '');
  302. $page_module.addClass('module-style-' + module_style);
  303. $btn.parents('.module-style-change').hide();
  304. } else {
  305. showError(data.message);
  306. }
  307. }, 'json');
  308. });
  309. //后台显示样式修改
  310. $('#page_view').on('click', "[nctype='btn_module_view_change']", function() {
  311. var $btn = $(this);
  312. var module_id = $btn.attr('data-module-id');
  313. var $page_module = $btn.parents('.page-module');
  314. var module_view;
  315. if($page_module.hasClass('page-module-mini')) {
  316. $page_module.removeClass('page-module-mini');
  317. module_view = 1;
  318. $btn.attr('title', '折叠');
  319. } else {
  320. $page_module.addClass('page-module-mini');
  321. module_view = 2;
  322. $btn.attr('title', '展开');
  323. }
  324. $.post("index.php?act=cms_index&op=update_page_module_view", {module_id: module_id, module_view: module_view}, function(data) {
  325. if(!data.result) {
  326. showError(data.message);
  327. }
  328. }, 'json');
  329. });
  330. //显示标准模块
  331. $('#btn_show_module_standard').click(function() {
  332. $(this).addClass('current');
  333. $('#btn_show_module_custom').removeClass('current');
  334. $('#template_module_list_standard').show();
  335. $('#template_module_list_custom_content').hide();
  336. });
  337. //显示自定义模块
  338. $('#btn_show_module_custom').click(function() {
  339. $(this).addClass('current');
  340. $('#btn_show_module_standard').removeClass('current');
  341. $('#template_module_list_standard').hide();
  342. $('#template_module_list_custom_content').show();
  343. });
  344. });
  345. </script>
  346. <div class="page">
  347. <div class="fixed-bar">
  348. <div class="item-title">
  349. <h3><?php echo $lang['nc_cms_index_manage'];?></h3>
  350. <ul class="tab-base">
  351. <?php foreach($output['menu'] as $menu) { if($menu['menu_type'] == 'text') { ?>
  352. <li><a href="<?php echo $menu['menu_url'];?>" class="current"><span><?php echo $menu['menu_name'];?></span></a></li>
  353. <?php } else { ?>
  354. <li><a href="<?php echo $menu['menu_url'];?>" ><span><?php echo $menu['menu_name'];?></span></a></li>
  355. <?php } } ?>
  356. </ul>
  357. </div>
  358. </div>
  359. <div class="fixed-empty"></div>
  360. <div class="cms-edit-bg-line">
  361. <div style=" background-color: #FFF; padding: 0 0 8px 0; margin-bottom: 12px; border-bottom: solid 1px #BCE6F8">
  362. <a class="btn" href="index.php?act=cms_index&op=cms_index_preview" target="_blank"><span>预览</span></a>
  363. <a class="btn" id="btn_index_build" href="Javascript: void(0)"><span><?php echo $lang['cms_index_build'];?></span></a>
  364. <a class="btn" href="<?php echo CMS_SITE_URL;?>" target="_blank"><span><?php echo $lang['cms_index_go'];?></span></a></div>
  365. <div id="page_view_content" class="page-view-content">
  366. <div id="page_view" class="page-view"></div>
  367. </div>
  368. <div class="module_panel">
  369. <a id="btn_show_module_standard" class="current" href="JavaScript:;">标准模块</a>
  370. <a id="btn_show_module_custom" class="" href="JavaScript:;">自定义模块</a>
  371. </div>
  372. <div id="template_module_list_content" class="template-module-list-content">
  373. <div class="template-module-list">
  374. <div id="template_module_list">
  375. <div id="template_module_list_standard"></div>
  376. <div id="template_module_list_custom_content" style="display:none;">
  377. <div id="template_module_list_custom"></div>
  378. <a id="btn_add_module" class="btn-add-module" href="JavaScript:;"><i></i>添加自定义模块</a>
  379. </div>
  380. </div>
  381. </div>
  382. <div class="clear"></div>
  383. </div>
  384. </div>
  385. </div>
  386. <div id="dialog_add_module" style="display:none;">
  387. <div id="module_frame_list" class="module-frame-list"></div>
  388. <div class="clear"></div>
  389. <div id="module_frame_edit" style="display:none;">
  390. <div id="module_frame" class="module-frame-content"></div>
  391. <div id="module_assembly_list" class="module-assembly-list"></div>
  392. <form id="from_new_module" class="module-frame-btns">
  393. <input id="input_frame_name" type="hidden" />
  394. <a id="btn_show_module_frame_list" href="JavaScript:;" class="btn"><span>重新选择框架</span></a>
  395. <a id="btn_save_module" href="JavaScript:;" class="btn"><span>保存</span></a>
  396. </form>
  397. <div class="clear"></div>
  398. </div>
  399. </div>
  400. <!-- 页面模块模板 -->
  401. <script id="page_view_template" type="text/html">
  402. <div id="page_module_<%=module_id%>" data-module-id="<%=module_id%>" data-module-name="<%=module_name%>" class="page-module <%=module_css%> <%=module_state_css%> module-css-<%=module_type%> module-style-<%=module_style%>">
  403. <div class="title">
  404. <span nc_type="module_title" column_id="<%=module_id%>" title="<?php echo $lang['nc_editable'];?>"><i></i><%=module_title%></span>
  405. </div>
  406. <div class="handle">
  407. <div class="module-style-change" style="display:none;">
  408. <ul>
  409. <li nctype="btn_module_style_select" data-module-id="<%=module_id%>" data-module-style="style1" class="style1">style1</li>
  410. <li nctype="btn_module_style_select" data-module-id="<%=module_id%>" data-module-style="style2" class="style2">style2</li>
  411. <li nctype="btn_module_style_select" data-module-id="<%=module_id%>" data-module-style="style3" class="style3">style3</li>
  412. <li nctype="btn_module_style_select" data-module-id="<%=module_id%>" data-module-style="style4" class="style4">style4</li>
  413. <li nctype="btn_module_style_select" data-module-id="<%=module_id%>" data-module-style="style5" class="style5">style5</li>
  414. <li nctype="btn_module_style_select" data-module-id="<%=module_id%>" data-module-style="style6" class="style6">style6</li>
  415. <li nctype="btn_module_style_select" data-module-id="<%=module_id%>" data-module-style="style7" class="style7">style7</li>
  416. <li nctype="btn_module_style_select" data-module-id="<%=module_id%>" data-module-style="style8" class="style8">style8</li>
  417. </ul>
  418. <a nctype="btn_module_style_change_cancel" href="JavaScript:;" class="cancel" title="取消">取消</a>
  419. </div>
  420. <a nctype="btn_module_style_change" href="JavaScript:;" class="style" title="主题">主题</a>
  421. <a href="index.php?act=cms_index&op=module_edit&module_id=<%=module_id%>" class="edit" title="<?php echo $lang['nc_edit'];?>"></a>
  422. <a nctype="<%=module_state_operate%>" data-module-id="<%=module_id%>" class="onoff" href="JavaScript:;" title="<%=module_state_operate_text%>"></a>
  423. <a nctype="btn_drop_page_module" data-module-id="<%=module_id%>" class="del" href="JavaScript:;" title="删除"></a>
  424. <a nctype="btn_module_view_change" data-module-id="<%=module_id%>" class="move" href="JavaScript:;" title="<%=module_view_text%>"></a>
  425. </div>
  426. </div>
  427. </script>
  428. <script id="page_view_null" type="text/html">
  429. <div class="page-module-null">页面没有添加模块</div>
  430. </script>
  431. <!-- 模块模板 -->
  432. <script id="module_list_template" type="text/html">
  433. <div class="template-module module-css-<%=module_type%>" >
  434. <span><%=module_title%></span>
  435. <a nctype="btn_add_page_module" class="add" data-module-title="<%=module_title%>" data-module-name="<%=module_name%>" data-module-type="<%=module_type%>" href="JavaScript:;">添加</a>
  436. <%if(module_class == 2) {%>
  437. <a nctype="btn_drop_module" class="delete" data-module-id="<%=module_id%>" href="JavaScript:;">删除</a>
  438. <%}%>
  439. </div>
  440. </script>
  441. <!-- 模块框架列表模板 -->
  442. <script id="module_frame_list_template" type="text/html">
  443. <%for(i = 0; i < list.length; i ++) {%>
  444. <div nctype="btn_select_module_frame" data-frame-name="<%=list[i].frame_name%>" href="JavaScript:;" data-frame-structure='<%=list[i].frame_structure%>' class="module-frame frame-css-<%=list[i].frame_name%>" >
  445. <%=list[i].frame_title%>
  446. </div>
  447. <%}%>
  448. </script>
  449. <!-- 模块框架模板 -->
  450. <script id="module_frame_template" type="text/html">
  451. <div class="cms-module-frame">
  452. <div class="cms-module-name"><input id="input_module_title" type="text" value="自定义模块" /></div>
  453. <div class="cms-module-frame-title module-title-enable">
  454. <span>隐藏标题</span>
  455. <a id="btn_toggle_module_display_title" data-module-title-state="enable" href="Javascript:;"></a>
  456. </div>
  457. <%for(var block in list) {%>
  458. <%if(!list[block].child) {%>
  459. <div nctype="btn_select_module_frame_block" data-block-name="<%=block%>" class="cms-module-frame-<%=list[block].name%> module-frame-normal"></div>
  460. <%} else {%>
  461. <div class="cms-module-frame-<%=list[block].name%>">
  462. <%for(var block_child in list[block].child) {%>
  463. <div nctype="btn_select_module_frame_block" data-block-name="<%=block_child%>" class="cms-module-frame-<%=list[block].child[block_child].name%> module-frame-normal"></div>
  464. <%}%>
  465. </div>
  466. <%}%>
  467. <%}%>
  468. <div class="clear"></div>
  469. </div>
  470. </script>
  471. <!-- 模块组件模板 -->
  472. <script id="module_assembly_list_template" type="text/html">
  473. <%for(i = 0; i < list.length; i ++) {%>
  474. <div nctype="btn_select_module_assembly" data-assembly-name="<%=list[i].assembly_name%>" class="module-assembly assembly-css-<%=list[i].assembly_name%>" >
  475. <i></i>
  476. <%=list[i].assembly_title%>
  477. </div>
  478. <%}%>
  479. </script>