index.back.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. <php>
  2. if (!function_exists('_get_system_widget')) {
  3. function _get_system_widget($name){
  4. </php>
  5. <switch name="name">
  6. <case value="CmfHub">
  7. <div class="panel panel-default">
  8. <div class="panel-heading">
  9. <h3 class="panel-title">交流方式</h3>
  10. </div>
  11. <div class="panel-body home-info">
  12. <ul class="list-unstyled">
  13. <li>
  14. <em>官网</em> <span><a href="http://www.thinkcmf.com" target="_blank">www.thinkcmf.com</a></span>
  15. </li>
  16. <li><em>QQ 群</em> <span>100828313,316669417</span></li>
  17. <li><em>联系邮箱</em> <span>catman@thinkcmf.com</span></li>
  18. </ul>
  19. </div>
  20. </div>
  21. </case>
  22. <case value="CmfDocuments">
  23. <div class="panel panel-default">
  24. <div class="panel-heading">
  25. <h3 class="panel-title">开发手册</h3>
  26. </div>
  27. <div class="panel-body home-info">
  28. <ul class="list-unstyled">
  29. <li>
  30. <em>完全开发手册</em>
  31. <span>
  32. <a class="label label-success" href="http://www.thinkcmf.com/doc.html"
  33. target="_blank">立即阅读</a>
  34. </span>
  35. </li>
  36. <li>
  37. <em>常见问题手册</em>
  38. <span>
  39. <a class="label label-success" href="http://www.thinkcmf.com/faq.html"
  40. target="_blank">立即阅读</a>
  41. </span>
  42. </li>
  43. <li>
  44. <em>模板开发教程</em>
  45. <span>
  46. <a class="label label-success" href="http://www.thinkcmf.com/theme_tutorial.html"
  47. target="_blank">立即阅读</a>
  48. </span>
  49. </li>
  50. <li>
  51. <em>API开发手册</em>
  52. <span>
  53. <a class="label label-success" href="http://www.thinkcmf.com/cmf5api.html"
  54. target="_blank">立即阅读</a>
  55. </span>
  56. </li>
  57. </ul>
  58. </div>
  59. </div>
  60. </case>
  61. <case value="MainContributors">
  62. <div class="panel panel-default">
  63. <div class="panel-heading">
  64. <h3 class="panel-title">主要贡献者</h3>
  65. </div>
  66. <div class="panel-body home-info">
  67. <ul class="list-inline">
  68. <li>老猫</li>
  69. <li>Sam</li>
  70. <li>Tuolaji</li>
  71. <li>睡不醒的猪</li>
  72. <li>小夏</li>
  73. <li>Powerless</li>
  74. <li>WelKinVan</li>
  75. <li>Kane</li>
  76. <li>iYting</li>
  77. <li>pl125</li>
  78. <li>五五</li>
  79. </ul>
  80. </div>
  81. </div>
  82. </case>
  83. <case value="Contributors">
  84. <div class="panel panel-default">
  85. <div class="panel-heading">
  86. <h3 class="panel-title">贡献者</h3>
  87. </div>
  88. <div class="panel-body home-info">
  89. <ul class="list-inline">
  90. <li>Kin Ho</li>
  91. <li><a href="https://www.wzxaini9.cn/" target="_blank">Powerless</a></li>
  92. <li>Jess</li>
  93. <li>木兰情</li>
  94. <li>Labulaka</li>
  95. <li><a href="http://www.syousoft.com/" target="_blank">WelKinVan</a></li>
  96. <li><a href="http://blog.sina.com.cn/u/1918098881" target="_blank">Jeson</a></li>
  97. <li>Yim</li>
  98. <li><a href="http://www.jamlee.cn/" target="_blank">Jamlee</a></li>
  99. <li>香香咸蛋黄</li>
  100. <li><a href="http://www.xdmeng.cn" target="_blank">小凯</a></li>
  101. <li>Co</li>
  102. <li>Rainfer</li>
  103. <li><a href="http://www.yaoweixiu.cn/" target="_blank">Kane</a></li>
  104. <li>北岸的云</li>
  105. <li>pl125</li>
  106. <li><a href="http://www.wuwuseo.com/" target="_blank">五五</a></li>
  107. <li><a href="https://www.qdcrazy.cc/" target="_blank">惠达浪</a></li>
  108. </ul>
  109. </div>
  110. </div>
  111. </case>
  112. </switch>
  113. <php>
  114. }
  115. }
  116. </php>
  117. <include file="public@header"/>
  118. <style>
  119. .home-info li em {
  120. float: left;
  121. width: 120px;
  122. font-style: normal;
  123. font-weight: bold;
  124. }
  125. .home-info ul {
  126. padding: 0;
  127. margin: 0;
  128. }
  129. .panel {
  130. margin-bottom: 0;
  131. }
  132. .grid-sizer {
  133. width: 10%;
  134. }
  135. .grid-item {
  136. margin-bottom: 5px;
  137. padding: 5px;
  138. }
  139. .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  140. padding-left: 5px;
  141. padding-right: 5px;
  142. float: none;
  143. }
  144. </style>
  145. <hook name="admin_before_head_end"/>
  146. </head>
  147. <body>
  148. <div class="wrap">
  149. <empty name="has_smtp_setting">
  150. <div class="grid-item col-md-12">
  151. <div class="alert alert-danger alert-dismissible fade in" role="alert" style="margin-bottom: 0;">
  152. <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  153. <span aria-hidden="true">&times;</span>
  154. </button>
  155. <strong>提示!</strong> 邮箱配置未完成,无法进行邮件发送!
  156. <a href="#" data-dismiss="alert" aria-label="Close"
  157. onclick="parent.openapp('{:url('Mailer/index')}','admin_mailer_index','邮箱配置');">现在设置</a>
  158. </div>
  159. </div>
  160. </empty>
  161. <if condition="!extension_loaded('fileinfo')">
  162. <div class="grid-item col-md-12">
  163. <div class="alert alert-danger alert-dismissible fade in" role="alert" style="margin-bottom: 0;">
  164. <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  165. <span aria-hidden="true">&times;</span>
  166. </button>
  167. <strong>提示!</strong> php_fileinfo扩展没有开启,无法正常上传文件!
  168. </div>
  169. </div>
  170. </if>
  171. <div class="grid-item col-md-12" id="thinkcmf-notices-grid" style="display:none;">
  172. <div class="dashboard-box">
  173. <div class="panel panel-default">
  174. <div class="panel-heading">
  175. <h3 class="panel-title">{:lang('SYSTEM_NOTIFICATIONS')}</h3>
  176. </div>
  177. <div class="panel-body home-info">
  178. <ul id="thinkcmf-notices" class="list-unstyled">
  179. <li>
  180. <img src="__TMPL__/public/assets/images/loading.gif" style="vertical-align: middle;"/>
  181. <span style="display: inline-block; vertical-align: middle;">加载中...</span>
  182. </li>
  183. </ul>
  184. </div>
  185. </div>
  186. </div>
  187. </div>
  188. <div class="home-grid">
  189. <!-- width of .grid-sizer used for columnWidth -->
  190. <div class="grid-sizer"></div>
  191. <foreach name="dashboard_widgets" item="vo">
  192. <if condition="$vo.is_system">
  193. <div class="grid-item col-md-12" data-system="1" data-widget="{$vo.name}">
  194. <div class="dashboard-box">{:_get_system_widget($vo.name)}</div>
  195. </div>
  196. <else/>
  197. <present name="dashboard_widget_plugins[$vo['name']]">
  198. <div class="grid-item col-md-{$dashboard_widget_plugins[$vo['name']]['width']}" data-system="0"
  199. data-widget="{$vo.name}">
  200. <div class="dashboard-box">{$dashboard_widget_plugins[$vo.name]['view']}</div>
  201. </div>
  202. </present>
  203. </if>
  204. </foreach>
  205. </div>
  206. </div>
  207. <script src="__STATIC__/js/admin.js"></script>
  208. <php>
  209. $lang_set=defined('LANG_SET')?LANG_SET:'';
  210. $thinkcmf_version=cmf_version();
  211. </php>
  212. <script>
  213. Wind.css('dragula');
  214. Wind.use('masonry', 'imagesloaded', 'dragula', function () {
  215. var $homeGrid = $('.home-grid').masonry({
  216. // set itemSelector so .grid-sizer is not used in layout
  217. itemSelector: '.grid-item',
  218. // use element for option
  219. columnWidth: '.grid-sizer',
  220. percentPosition: true,
  221. horizontalOrder: false,
  222. transitionDuration: 0
  223. });
  224. $homeGrid.masonry('on', 'layoutComplete', function (event, laidOutItems) {
  225. });
  226. $homeGrid.masonry();
  227. var containers = [];
  228. $('.home-grid .grid-item').each(function () {
  229. containers.push(this);
  230. });
  231. dragula(containers, {
  232. isContainer: function (el) {
  233. return false; // only elements in drake.containers will be taken into account
  234. },
  235. moves: function (el, source, handle, sibling) {
  236. return true; // elements are always draggable by default
  237. },
  238. accepts: function (el, target, source, sibling) {
  239. return true; // elements can be dropped in any of the `containers` by default
  240. },
  241. invalid: function (el, handle) {
  242. return false; // don't prevent any drags from initiating by default
  243. },
  244. direction: 'vertical', // Y axis is considered when determining where an element would be dropped
  245. copy: false, // elements are moved by default, not copied
  246. copySortSource: false, // elements in copy-source containers can be reordered
  247. revertOnSpill: false, // spilling will put the element back where it was dragged from, if this is true
  248. removeOnSpill: false, // spilling will `.remove` the element, if this is true
  249. mirrorContainer: document.body, // set the element that gets mirror elements appended
  250. ignoreInputTextSelection: true // allows users to select input text, see details below
  251. }).on('drop', function (el, target, source, sibling) {
  252. var $target = $(target);
  253. var targetClasses = $target.attr('class');
  254. var targetDataWidget = $target.data('widget');
  255. var targetDataSystem = $target.data('system');
  256. var $source = $(source);
  257. var sourceClasses = $source.attr('class');
  258. var sourceDataWidget = $source.data('widget');
  259. var sourceDataSystem = $source.data('system');
  260. $(source).append($(target).find('.dashboard-box').not('.gu-transit'));
  261. $(target).append(el);
  262. $target.attr('class', sourceClasses);
  263. $target.data('widget', sourceDataWidget);
  264. $target.data('system', sourceDataSystem);
  265. $source.attr('class', targetClasses);
  266. $source.data('widget', targetDataWidget);
  267. $source.data('system', targetDataSystem);
  268. $homeGrid.masonry();
  269. _widgetSort();
  270. }).on('shadow', function (el, container, source) {
  271. $homeGrid.masonry();
  272. });
  273. });
  274. function _widgetSort() {
  275. var widgets = [];
  276. $('.home-grid .grid-item').each(function () {
  277. var $this = $(this);
  278. widgets.push({
  279. name: $this.data('widget'),
  280. is_system: $this.data('system')
  281. });
  282. });
  283. $.ajax({
  284. url: "{:url('main/dashboardWidget')}",
  285. type: 'post',
  286. dataType: 'json',
  287. data: {widgets: widgets},
  288. success: function (data) {
  289. },
  290. error: function () {
  291. },
  292. complete: function () {
  293. }
  294. });
  295. }
  296. //获取官方通知
  297. $.getJSON("//www.thinkcmf.com/service/sms_jsonp.php?lang={$lang_set}&v={$thinkcmf_version}&callback=?",
  298. function (data) {
  299. var tpl = '<li><em class="title"></em><span class="content"></span></li>';
  300. var $notices = $("#thinkcmf-notices");
  301. $notices.empty();
  302. if (data.length > 0) {
  303. $('#thinkcmf-notices-grid').show();
  304. $.each(data, function (i, n) {
  305. var $tpl = $(tpl);
  306. $(".title", $tpl).html(n.title);
  307. $(".content", $tpl).html(n.content);
  308. $notices.append($tpl);
  309. });
  310. } else {
  311. $notices.append("<li>^_^,{:lang('NO_NOTICE')}~~</li>");
  312. }
  313. });
  314. </script>
  315. <hook name="admin_before_body_end"/>
  316. </body>
  317. </html>