作者 魏强

Merge branch 'master' of http://114.215.101.231:8099/outsource/signUpForCar

Conflicts:
	data/runtime/log/201808/24.log
正在显示 58 个修改的文件 包含 4772 行增加2 行删除

要显示太多修改。

为保证性能只显示 58 of 58+ 个文件。

此 diff 太大无法显示。
1 -{"expire_time":1535098257,"access_token":"13_2_GmA0S3toG8YfnrZWa1sa5slrEGqbQ10d0YG7C1cmS_Bd4PJScMQRdmb1ifs5REsUN1pgj8So1Mj4Y6PLwdpRHaGceDq6FZuyG3X8_14LzERc61BikLemp5H8547NXx1TnzRivmVrwxqBkKLGGbAEARMM"}  
  1 +{"expire_time":1535105260,"access_token":"13_KYPPX7-uAb8I-G74iy5FohnWyI-bXSj4ZqAk4_gOsZGuozoYTneKP5glgYf-U-tYByzuNrwDD_oTj6WxPL4s07t7iccbgSt6ZXBIQgXkwQGkyy1Nm-LD8Z7T38cU78uoEYKdo1WDRe9VSClAHBJbAIACWE"}
1 -{"expire_time":1535098257,"jsapi_ticket":"HoagFKDcsGMVCIY2vOjf9pyFzo-WRmf981mGkqnXm7pVucI-7EDYNzPE05o8mEI0txK6IkIAJNCNc_mlRqc0pg"}  
  1 +{"expire_time":1535105261,"jsapi_ticket":"HoagFKDcsGMVCIY2vOjf9pyFzo-WRmf981mGkqnXm7ryWsCkmrfbvxL2Dzi-_tq_2PZs5Mq4p8Ld2YpJgldMfQ"}
  1 +<include file="public@header"/>
  2 +<link rel="stylesheet" href="/static/scr/zoomify/bootstrap-grid.min.css">
  3 +<link rel="stylesheet" href="/static/scr/zoomify/dist/zoomify.css">
  4 +</head>
  5 +<body>
  6 +<div class="wrap js-check-wrap">
  7 +
  8 + <ul class="nav nav-tabs">
  9 + <li class="active"><a href="javascript:;">所有文章</a></li>
  10 + </ul>
  11 + <form class="well form-inline margin-top-20" method="post" action="{:url('listing')}">
  12 +
  13 + 教练姓名:
  14 + <input type="text" class="form-control" name="name" style="width: 200px;"
  15 + value="{$keyword|default=''}" placeholder="请输入姓名...">
  16 + <input type="submit" class="btn btn-primary" value="搜索"/>
  17 + <a class="btn btn-danger" href="{:url('listing')}">清空</a>
  18 + </form>
  19 + <form class="js-ajax-form" action="" method="post">
  20 + <!--<div class="table-actions">-->
  21 +
  22 + <!--<button class="btn btn-primary btn-sm js-ajax-submit" type="submit"-->
  23 + <!--data-action="{:url('AdminArticle/top',array('yes'=>1))}" data-subcheck="true">置顶-->
  24 + <!--</button>-->
  25 + <!--<button class="btn btn-primary btn-sm js-ajax-submit" type="submit"-->
  26 + <!--data-action="{:url('AdminArticle/top',array('no'=>1))}" data-subcheck="true">取消置顶-->
  27 + <!--</button>-->
  28 + <!--<button class="btn btn-danger btn-sm js-ajax-submit" type="submit"-->
  29 + <!--data-action="{:url('AdminArticle/delete')}" data-subcheck="true" data-msg="您确定删除吗?">-->
  30 + <!--{:lang('DELETE')}-->
  31 + <!--</button>-->
  32 + <!--</div>-->
  33 + <table class="table table-hover table-bordered table-list">
  34 + <thead>
  35 + <tr>
  36 + <th width="50">ID</th>
  37 + <th width="50">教练</th>
  38 + <th width="50">学员</th>
  39 + <th width="50">预约时间</th>
  40 + <th width="50">预约时段</th>
  41 + <th width="50">预定时间</th>
  42 + <th width="50">状态</th>
  43 + <!--<th width="120">操作</th>-->
  44 + </tr>
  45 + </thead>
  46 + <foreach name="list" item="vo">
  47 + <tr>
  48 + <td><b>{$vo.id}</b></td>
  49 + <td>{$vo.user_nickname}</td>
  50 + <td>{$vo.uid|id_name}</td>
  51 + <td>{$vo.yuyue_day1}</td>
  52 + <td>{$vo.yuyue_hour1}</td>
  53 + <td>
  54 + <notempty name="vo.create_time">
  55 + {:date('Y-m-d H:i',$vo['create_time'])}
  56 + </notempty>
  57 +
  58 + </td>
  59 + <td>{$vo.status|yuyue_status_name}</td>
  60 + <!--<td>-->
  61 + <!--<a href="{:url('edit',array('id'=>$vo['id']))}">查看/编辑</a>-->
  62 + <!--<a href="{:url('delete',array('id'=>$vo['id']))}" class="js-ajax-delete">{:lang('DELETE')}</a>-->
  63 + <!--</td>-->
  64 + </tr>
  65 + </foreach>
  66 +
  67 + </table>
  68 +
  69 + <ul class="pagination">{$page|default=''}</ul>
  70 + </form>
  71 +</div>
  72 +<script src="__STATIC__/js/admin.js"></script>
  73 +<script>
  74 +
  75 + function reloadPage(win) {
  76 + win.location.reload();
  77 + }
  78 +
  79 + $(function () {
  80 + setCookie("refersh_time", 0);
  81 + Wind.use('ajaxForm', 'artDialog', 'iframeTools', function () {
  82 + //批量复制
  83 + $('.js-articles-copy').click(function (e) {
  84 + var ids = [];
  85 + $("input[name='ids[]']").each(function () {
  86 + if ($(this).is(':checked')) {
  87 + ids.push($(this).val());
  88 + }
  89 + });
  90 +
  91 + if (ids.length == 0) {
  92 + art.dialog.through({
  93 + id: 'error',
  94 + icon: 'error',
  95 + content: '您没有勾选信息,无法进行操作!',
  96 + cancelVal: '关闭',
  97 + cancel: true
  98 + });
  99 + return false;
  100 + }
  101 +
  102 + ids = ids.join(',');
  103 + art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=copy&ids=" + ids, {
  104 + title: "批量复制",
  105 + width: "300px"
  106 + });
  107 + });
  108 + //批量移动
  109 + $('.js-articles-move').click(function (e) {
  110 + var ids = [];
  111 + $("input[name='ids[]']").each(function () {
  112 + if ($(this).is(':checked')) {
  113 + ids.push($(this).val());
  114 + }
  115 + });
  116 +
  117 + if (ids.length == 0) {
  118 + art.dialog.through({
  119 + id: 'error',
  120 + icon: 'error',
  121 + content: '您没有勾选信息,无法进行操作!',
  122 + cancelVal: '关闭',
  123 + cancel: true
  124 + });
  125 + return false;
  126 + }
  127 +
  128 + ids = ids.join(',');
  129 + art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=move&old_term_id={$term.term_id|default=0}&ids=" + ids, {
  130 + title: "批量移动",
  131 + width: "300px"
  132 + });
  133 + });
  134 + });
  135 + });
  136 +</script>
  137 +<script src="http://www.jq22.com/jquery/1.11.1/jquery.min.js"></script>
  138 +<script src="/static/src/zoomify/zoomify.js"></script>
  139 +<script type="text/javascript">
  140 + $('.example img').zoomify();
  141 +</script>
  142 +</body>
  143 +</html>
  1 +<!DOCTYPE html>
  2 +<html>
  3 +<head>
  4 + <meta charset="utf-8">
  5 + <!-- Set render engine for 360 browser -->
  6 + <meta name="renderer" content="webkit">
  7 + <meta http-equiv="X-UA-Compatible" content="IE=edge">
  8 + <meta name="viewport" content="width=device-width, initial-scale=1">
  9 +
  10 + <!-- HTML5 shim for IE8 support of HTML5 elements -->
  11 + <!--[if lt IE 9]>
  12 + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
  13 + <![endif]-->
  14 +
  15 +
  16 + <link href="__TMPL__/public/assets/themes/{:cmf_get_admin_style()}/bootstrap.min.css" rel="stylesheet">
  17 + <link href="__TMPL__/public/assets/simpleboot3/css/simplebootadmin.css" rel="stylesheet">
  18 + <link href="__STATIC__/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
  19 + <!--[if lt IE 9]>
  20 + <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
  21 + <![endif]-->
  22 + <style>
  23 + form .input-order {
  24 + margin-bottom: 0px;
  25 + padding: 0 2px;
  26 + width: 42px;
  27 + font-size: 12px;
  28 + }
  29 +
  30 + form .input-order:focus {
  31 + outline: none;
  32 + }
  33 +
  34 + .table-actions {
  35 + margin-top: 5px;
  36 + margin-bottom: 5px;
  37 + padding: 0px;
  38 + }
  39 +
  40 + .table-list {
  41 + margin-bottom: 0px;
  42 + }
  43 +
  44 + .form-required {
  45 + color: red;
  46 + }
  47 + </style>
  48 + <script type="text/javascript">
  49 + //全局变量
  50 + var GV = {
  51 + ROOT: "__ROOT__/",
  52 + WEB_ROOT: "__WEB_ROOT__/",
  53 + JS_ROOT: "static/js/",
  54 + APP: '{$Request.module}'/*当前应用名*/
  55 + };
  56 + </script>
  57 + <script src="__TMPL__/public/assets/js/jquery-1.10.2.min.js"></script>
  58 + <script src="__STATIC__/js/wind.js"></script>
  59 + <script src="__TMPL__/public/assets/js/bootstrap.min.js"></script>
  60 + <script>
  61 + Wind.css('artDialog');
  62 + Wind.css('layer');
  63 + // $(function () {
  64 + // $("[data-toggle='tooltip']").tooltip({
  65 + // container:'body',
  66 + // html:true,
  67 + // });
  68 + // $("li.dropdown").hover(function () {
  69 + // $(this).addClass("open");
  70 + // }, function () {
  71 + // $(this).removeClass("open");
  72 + // });
  73 + // });
  74 + </script>
  75 + <if condition="APP_DEBUG">
  76 + <style>
  77 + #think_page_trace_open {
  78 + z-index: 9999;
  79 + }
  80 + </style>
  81 + </if>
  82 + <link rel="stylesheet" href="/static/scr/zoomify/bootstrap-grid.min.css">
  83 + <!--<link rel="stylesheet" href="/static/scr/zoomify/dist/zoomify.css">-->
  84 + <style>
  85 + .slecet-box {
  86 + width: 50%;
  87 + }
  88 +
  89 + .slecet-box select {
  90 + width: 30%;
  91 + }
  92 +
  93 + .time-box {
  94 + width: 80%;
  95 + margin: 10px auto 0 auto;
  96 + overflow: hidden;
  97 + }
  98 +
  99 + .time-box span {
  100 + display: inline-block;
  101 + width: 24%;
  102 + height: 44px;
  103 + line-height: 44px;
  104 + text-align: center;
  105 + border: 1px solid red;
  106 + border-radius: 5px;
  107 + color: red;
  108 + float: left;
  109 + margin-right: 1.2%;
  110 + margin-top: 10px;
  111 + }
  112 +
  113 + .time-box span:nth-child(4n) {
  114 + margin-right: 0;
  115 + }
  116 +
  117 + .time-box .acv {
  118 + color: #6589de;
  119 + border: 1px solid #6589de;
  120 + }
  121 +
  122 + .save {
  123 + display: block;
  124 + width: 300px;
  125 + text-align: center;
  126 + height: 50px;
  127 + line-height: 50px;
  128 + color: #fff;
  129 + background-color: #6589de;
  130 + font-size: 18px;
  131 + margin: 50px auto 0 auto;
  132 + border-radius: 5px;
  133 + }
  134 +
  135 + .save:hover {
  136 + color: #fff;
  137 + background-color: #3a4d7b;
  138 + text-decoration: none;
  139 + }
  140 +
  141 + .time-box .bg-colo {
  142 + background-color: #6589de;
  143 + color: #fff;
  144 + }
  145 + </style>
  146 +</head>
  147 +<body>
  148 +<div class="wrap js-check-wrap">
  149 + <ul class="nav nav-tabs">
  150 + <li class="active"><a href="javascript:;">预约时间设置</a></li>
  151 + </ul>
  152 + <form class="well form-inline margin-top-20" method="post" action="{:url('tag')}">
  153 + 教练列表:
  154 + <select class="form-control" id="teacher" name="type" style="width: 140px;">
  155 + <noempty name="pcdata">
  156 + <option value='{$pcdata.id}' checked>{$pcdata.user_nickname}</option>
  157 + </noempty>
  158 + <option value='-1'>全部</option>
  159 + <foreach name="cdata" id="vo">
  160 + <option value='{$vo.id}'>{$vo.user_nickname}</option>
  161 + </foreach>
  162 + </select> &nbsp;&nbsp;
  163 +
  164 + 时间
  165 + <select class="form-control" id="time" style="width: 140px;">
  166 + <option value="-1">请选择</option>
  167 + <foreach name="day" id="vo">
  168 + <option value='{$vo}'>{$vo}</option>
  169 + </foreach>
  170 + </select>
  171 + </form>
  172 + 请选择时间段,红色为不可预约时间
  173 + <div class="time-box">
  174 + <span data-id="0">06:00-07:00</span>
  175 + <span data-id="0">07:00-08:00</span>
  176 + <span data-id="1">08:00-09:00</span>
  177 + <span data-id="2">09:00-10:00</span>
  178 + <span data-id="3">10:00-11:00</span>
  179 + <span data-id="4">11:00-12:00</span>
  180 + <span data-id="5">12:00-13:00</span>
  181 + <span data-id="6">13:00-14:00</span>
  182 + <span data-id="7">14:00-15:00</span>
  183 + <span data-id="8">15:00-16:00</span>
  184 + <span data-id="9">16:00-17:00</span>
  185 + <span data-id="10">17:00-18:00</span>
  186 + </div>
  187 + <a class="save">保存设置</a>
  188 +</div>
  189 +<script src="/static/layer/layer.js"></script>
  190 +<script src="__STATIC__/js/admin.js"></script>
  191 +<script>
  192 +
  193 + function reloadPage(win) {
  194 + win.location.reload();
  195 + }
  196 +
  197 + $(function () {
  198 + var obj = {
  199 + teach_id: $('#teacher').val(),
  200 + day: $('#time').val(),
  201 + };
  202 +
  203 + function find_seting(obj) {
  204 + if (obj) {
  205 + $.ajax({
  206 + url: "{:url('find_seting')}",
  207 + data: {
  208 + uid: obj.teach_id,
  209 + day: obj.day.replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3")
  210 + },
  211 + success: function (res) {
  212 + console.log(res);
  213 + if (res.code == '1') {
  214 + var time_list = JSON.parse(res.data);
  215 + for (var i = 0; i < time_list.length; i++) {
  216 + if (time_list[i] == 'yes') {
  217 + $('.time-box span')[i].setAttribute('class', 'acv');
  218 + } else {
  219 + $('.time-box span')[i].setAttribute('class', '');
  220 + }
  221 + }
  222 + }
  223 + }
  224 + });
  225 + } else {
  226 + var list = $('.time-box span');
  227 + for (var i = 0; i < list.length; i++) {
  228 + list[i].setAttribute('class', '');
  229 + }
  230 + }
  231 + }
  232 +
  233 + find_seting();
  234 + $('#teacher').change(function () {
  235 + obj.teach_id = $(this).val();
  236 + if (obj.day != -1) {
  237 + find_seting(obj);
  238 + } else {
  239 + layer.msg('请选择时间');
  240 + }
  241 + });
  242 + $('#time').change(function () {
  243 + obj.day = $(this).val().split('-').join('');
  244 + if (obj.teach_id != -1) {
  245 + find_seting(obj);
  246 + } else {
  247 + layer.msg('请选择教练');
  248 + }
  249 + });
  250 + $('.time-box').on('click', '.acv', function () {
  251 + for (var i = 0; i < $(".time-box .acv").length; i++) {
  252 + $(".time-box .acv")[i].setAttribute("class", "acv");
  253 + }
  254 + $(this).attr("class", "acv bg-colo");
  255 +// if ($(this).attr('class') == 'acv bg-colo') {
  256 +// $(this).attr('class', 'acv');
  257 +// } else {
  258 +// $(this).attr('class', 'acv bg-colo');
  259 +// }
  260 + });
  261 + $('.save').click(function () {
  262 + var list = $('.bg-colo');
  263 + var put_list = [];
  264 + for (var i = 0; i < list.length; i++) {
  265 + put_list.push(list[i]);
  266 + }
  267 + if (put_list.length != 1) {
  268 + alert('时间段不能多选');
  269 + } else if (put_list.length == 0) {
  270 + alert('请选择时间段');
  271 + } else {
  272 + var teacher_id = $('#teacher').val();
  273 + var time_id = $('#time').val().split('-').join('');
  274 + $.ajax({
  275 + url: "{:url('seting_do')}",
  276 + data: {
  277 + teach_id: teacher_id,
  278 + day: time_id.replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3"),
  279 + begin: parseInt(put_list[0].innerHTML.split("-")[0]),
  280 + end: parseInt(put_list[0].innerHTML.split("-")[1])
  281 + },
  282 + success: function (res) {
  283 + console.log(res);
  284 + if (res.code == "1") {
  285 + layer.msg(res.msg);
  286 + window.location.reload();
  287 + }
  288 + }
  289 + });
  290 + }
  291 + });
  292 + setCookie("refersh_time", 0);
  293 + Wind.use('ajaxForm', 'artDialog', 'iframeTools', function () {
  294 + //批量复制
  295 + $('.js-articles-copy').click(function (e) {
  296 + var ids = [];
  297 + $("input[name='ids[]']").each(function () {
  298 + if ($(this).is(':checked')) {
  299 + ids.push($(this).val());
  300 + }
  301 + });
  302 +
  303 + if (ids.length == 0) {
  304 + art.dialog.through({
  305 + id: 'error',
  306 + icon: 'error',
  307 + content: '您没有勾选信息,无法进行操作!',
  308 + cancelVal: '关闭',
  309 + cancel: true
  310 + });
  311 + return false;
  312 + }
  313 +
  314 + ids = ids.join(',');
  315 + art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=copy&ids=" + ids, {
  316 + title: "批量复制",
  317 + width: "300px"
  318 + });
  319 + });
  320 + $('.time-box span').click(function () {
  321 + if ($(this).attr("class") == "") {
  322 + var teacher_id = $('#teacher').val();
  323 + var time_id = $('#time').val().split('-').join('');
  324 + if (teacher_id == "") {
  325 + layer.msg("请选择教练")
  326 + } else if (time_id == 1) {
  327 + layer.msg("请选择日期")
  328 + } else {
  329 + var _this = $(this);
  330 + $.ajax({
  331 + url: "{:url('seting_do')}",
  332 + data: {
  333 + teach_id: teacher_id,
  334 + day: time_id.replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3"),
  335 + begin: parseInt($(this)[0].innerHTML.split("-")[0]),
  336 + end: parseInt($(this)[0].innerHTML.split("-")[1])
  337 + },
  338 + success: function (res) {
  339 + if (res.code == 1) {
  340 + console.log($(this));
  341 + _this.attr("class", "acv");
  342 + layer.msg(res.msg);
  343 + }
  344 + }
  345 + });
  346 + }
  347 + }
  348 + });
  349 + //批量移动
  350 + // $('.js-articles-move').click(function (e) {
  351 + // var ids = [];
  352 + // $("input[name='ids[]']").each(function () {
  353 + // if ($(this).is(':checked')) {
  354 + // ids.push($(this).val());
  355 + // }
  356 + // });
  357 + //
  358 + // if (ids.length == 0) {
  359 + // art.dialog.through({
  360 + // id: 'error',
  361 + // icon: 'error',
  362 + // content: '您没有勾选信息,无法进行操作!',
  363 + // cancelVal: '关闭',
  364 + // cancel: true
  365 + // });
  366 + // return false;
  367 + // }
  368 + //
  369 + // ids = ids.join(',');
  370 + // art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=move&old_term_id={$term.term_id|default=0}&ids=" + ids, {
  371 + // title: "批量移动",
  372 + // width: "300px"
  373 + // });
  374 + // });
  375 + });
  376 + });
  377 +</script>
  378 +<script src="http://www.jq22.com/jquery/1.11.1/jquery.min.js"></script>
  379 +<script src="/static/src/zoomify/zoomify.js"></script>
  380 +<script type="text/javascript">
  381 + // $('.example img').zoomify();
  382 +</script>
  383 +</body>
  384 +</html>
  1 +<include file="public@header" />
  2 +<style type="text/css">
  3 + .pagination{display:inline-block;padding-left:0;border-radius:4px;margin-left: 30%}
  4 + .pagination li{display:inline}
  5 + .pagination li a,.pagination li span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;color:#393D49;background:#fff;margin:0 0 0 8px;border:1px solid #eee}
  6 + .pagination li a:hover{color:#fff;background:#1E9FFF}
  7 + .pagination .active span{background:#1E9FFF;color:#fff}
  8 +</style>
  9 +</head>
  10 +<body>
  11 +<div class="wrap">
  12 + <ul class="nav nav-tabs">
  13 + <li class="active"><a href="{:url('index')}">列表管理</a></li>
  14 + <!--<li><a href="{:url('add')}">添加</a></li>-->
  15 + </ul>
  16 +
  17 + <form class="well form-inline margin-top-20" method="post" action="{:url('trainer')}">
  18 +
  19 +
  20 +
  21 +
  22 + 学员手机号:
  23 + <input type="text" class="form-control" name="mobile" style="width: 200px;"
  24 + value="{$keyword|default=''}" placeholder="请输入手机号...">
  25 + 学员姓名:
  26 + <input type="text" class="form-control" name="name" style="width: 200px;"
  27 + value="{$keyword|default=''}" placeholder="请输入姓名...">
  28 +
  29 + <input type="submit" class="btn btn-primary" value="搜索"/>
  30 + <a class="btn btn-danger" href="{:url('index')}">清空</a>
  31 + </form>
  32 + <table class="table table-hover table-bordered table-list">
  33 + <thead>
  34 + <tr>
  35 + <th width="50">ID</th>
  36 +
  37 + <th>预约ID</th>
  38 + <th>学员名</th>
  39 + <th>评论的教练</th>
  40 + <th>留言内容</th>
  41 + <th>修改时间</th>
  42 + <th width="180">操作</th>
  43 +
  44 + </tr>
  45 + </thead>
  46 + <tbody>
  47 + <foreach name="list" id="vo">
  48 + <tr>
  49 + <td>{$vo.id}</td>
  50 + <td>{$vo.yuyue_id}</td>
  51 + <td>{$vo.uid|id_name}</td>
  52 + <td>{$vo.teach_id|id_name}</td>
  53 + <td>{$vo.comment}</td>
  54 + <td>{$vo.create_time|date="Y-m-d H:i:s",###}</td>
  55 + <td>
  56 + <!--<a href='{:url("edit", ["id" => "$vo[id]"]) }' >编辑</a>-->
  57 + <a class="js-ajax-delete" href='{:url("del_student", ["id" => "$vo[id]"]) }' >删除</a>
  58 + </td>
  59 + </tr>
  60 + </foreach>
  61 + </tbody>
  62 + </table>
  63 +
  64 +
  65 +</div>
  66 +<div class="pagination">
  67 + {$page}
  68 +</div>
  69 +<script src="__STATIC__/js/admin.js"></script>
  70 +</body>
  71 +</html>
  1 +<include file="public@header" />
  2 +</head>
  3 +<body>
  4 + <div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="{:url('tag')}">列表管理</a></li>
  7 + <li><a href="{:url('tag_add')}">添加</a></li>
  8 + </ul>
  9 + <form class="well form-inline margin-top-20" method="post" action="{:url('tag')}">
  10 +
  11 +
  12 + 类别:
  13 + <select class="form-control" name="type" style="width: 140px;">
  14 + <option value=''>全部</option>
  15 + <option value='1'>好评</option>
  16 + <option value='2'>差评</option>
  17 +
  18 + </select> &nbsp;&nbsp;
  19 +
  20 + 关键字:
  21 + <input type="text" class="form-control" name="keyword" style="width: 200px;"
  22 + value="{$keyword|default=''}" placeholder="请输入关键字...">
  23 + <input type="submit" class="btn btn-primary" value="搜索"/>
  24 + <a class="btn btn-danger" href="{:url('tag')}">清空</a>
  25 + </form>
  26 + <form method="post" class="js-ajax-form" action="">
  27 +
  28 + <table class="table table-hover table-bordered table-list">
  29 + <thead>
  30 + <tr>
  31 + <th width="50">ID</th>
  32 + <th>类别</th>
  33 + <th>名称</th>
  34 +
  35 + <th>修改时间</th>
  36 + <th width="180">操作</th>
  37 + </tr>
  38 + </thead>
  39 + <tbody>
  40 + <foreach name="list" id="vo">
  41 + <tr>
  42 + <td>{$vo.id}</td>
  43 + <td>{$vo.type|comment_type_name}</td>
  44 + <td>{$vo.name}</td>
  45 + <td>{$vo.create_time|date="Y-m-d H:i:s",###}</td>
  46 + <td>
  47 + <a href='{:url("tag_edit", ["id" => "$vo[id]"]) }' >编辑</a>
  48 + <a class="js-ajax-delete" href='{:url("tag_delete", ["id" => "$vo[id]"]) }' >删除</a>
  49 + </td>
  50 + </tr>
  51 + </foreach>
  52 + </tbody>
  53 + </table>
  54 + </form>
  55 + </div>
  56 + <script src="__STATIC__/js/admin.js"></script>
  57 +</body>
  58 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('tag')}">列表管理</a></li>
  7 + <li class="active"><a href="{:url('tag_add')}">添加</a></li>
  8 + </ul>
  9 + <div class="row margin-top-20">
  10 + <div class="col-md-6">
  11 + <form class="js-ajax-form" action="{:url('tag_add_do')}" method="post">
  12 + <div class="tab-content">
  13 + <div class="tab-pane active" id="A">
  14 + <div class="form-group">
  15 + <label for="input-name"><span class="form-required">*</span>类型</label>
  16 + <div>
  17 + <select name="type" class="form-control">
  18 + <option value="1">好评</option>
  19 + <option value="2">差评</option>
  20 + </select>
  21 + </div>
  22 + </div>
  23 + <div class="form-group">
  24 + <label for="input-name"><span class="form-required">*</span>名称</label>
  25 + <div>
  26 + <input type="text" class="form-control" id="input-name" name="name">
  27 + </div>
  28 + </div>
  29 +
  30 +
  31 + </div>
  32 +
  33 + </div>
  34 + <div class="form-group">
  35 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
  36 + <a class="btn btn-default" href="{:url('tag')}">{:lang('BACK')}</a>
  37 + </div>
  38 + </form>
  39 + </div>
  40 + </div>
  41 +</div>
  42 +<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  43 +</body>
  44 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('tag')}">列表管理</a></li>
  7 + <li><a href="{:url('tag_add')}">添加</a></li>
  8 + <li class="active"><a>编辑</a></li>
  9 + </ul>
  10 + <div class="row margin-top-20">
  11 +
  12 + <div class="col-md-6">
  13 + <form class="js-ajax-form" action="{:url('tag_edit_do')}" method="post">
  14 + <div class="tab-content">
  15 + <div class="tab-pane active" id="A">
  16 + <div class="form-group">
  17 + <label for="input-name"><span class="form-required">*</span>类型</label>
  18 + <div>
  19 + <select name="type" class="form-control">
  20 + <option value="{$info.type}">{$info.type|comment_type_name}</option>
  21 + <option value="1">好评</option>
  22 + <option value="2">差评</option>
  23 + </select>
  24 + </div>
  25 + </div>
  26 + <div class="form-group">
  27 + <label for="input-name"><span class="form-required">*</span>名称</label>
  28 + <div>
  29 + <input type="text" class="form-control" id="input-name" name="name" value="{$info.name}">
  30 + </div>
  31 + </div>
  32 +
  33 + </div>
  34 + </div>
  35 + <div class="form-group">
  36 + <input type="hidden" name="id" value="{$info.id}">
  37 + <button type="submit" class="btn btn-primary js-ajax-submit" data-refresh="0">{:lang('SAVE')}
  38 + </button>
  39 + <a class="btn btn-default" href="{:url('tag')}">{:lang('BACK')}</a>
  40 + </div>
  41 + </form>
  42 + </div>
  43 + </div>
  44 +</div>
  45 +<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  46 +<script>
  47 + $('#input-list_tpl').val("{$list_tpl|default=''}");
  48 + $('#input-one_tpl').val("{$one_tpl|default=''}");
  49 +</script>
  50 +</body>
  51 +</html>
  1 +<include file="public@header" />
  2 +<style type="text/css">
  3 + .pagination{display:inline-block;padding-left:0;border-radius:4px;margin-left: 30%}
  4 + .pagination li{display:inline}
  5 + .pagination li a,.pagination li span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;color:#393D49;background:#fff;margin:0 0 0 8px;border:1px solid #eee}
  6 + .pagination li a:hover{color:#fff;background:#1E9FFF}
  7 + .pagination .active span{background:#1E9FFF;color:#fff}
  8 +</style>
  9 +</head>
  10 +<body>
  11 + <div class="wrap">
  12 + <ul class="nav nav-tabs">
  13 + <li class="active"><a href="{:url('index')}">列表管理</a></li>
  14 + <li><a href="{:url('add')}">添加</a></li>
  15 + </ul>
  16 + <form class="well form-inline margin-top-20" method="post" action="{:url('trainer')}">
  17 +
  18 +
  19 +
  20 +
  21 + 教练手机号:
  22 + <input type="text" class="form-control" name="mobile" style="width: 200px;"
  23 + value="{$keyword|default=''}" placeholder="请输入手机号...">
  24 + 教练姓名:
  25 + <input type="text" class="form-control" name="name" style="width: 200px;"
  26 + value="{$keyword|default=''}" placeholder="请输入姓名...">
  27 +
  28 + <input type="submit" class="btn btn-primary" value="搜索"/>
  29 + <a class="btn btn-danger" href="{:url('index')}">清空</a>
  30 + </form>
  31 +
  32 + <table class="table table-hover table-bordered table-list">
  33 + <thead>
  34 + <tr>
  35 + <th width="50">ID</th>
  36 +
  37 + <th>预约ID</th>
  38 + <th>教练名</th>
  39 + <th>评论的学员</th>
  40 + <th>类型</th>
  41 + <th>留言内容</th>
  42 + <th>修改时间</th>
  43 + <th width="180">操作</th>
  44 +
  45 + </tr>
  46 + </thead>
  47 + <tbody>
  48 + <foreach name="list" id="vo">
  49 + <tr>
  50 + <td>{$vo.id}</td>
  51 + <td>{$vo.yuyue_id}</td>
  52 + <td>{$vo.teach_id|id_name}</td>
  53 + <td>{$vo.uid|id_name}</td>
  54 + <td>{$vo.type|comment_type}</td>
  55 + <td>{$vo.comment}</td>
  56 + <td>{$vo.create_time|date="Y-m-d H:i:s",###}</td>
  57 + <td>
  58 + <!--<a href='{:url("edit", ["id" => "$vo[id]"]) }' >编辑</a>-->
  59 + <a class="js-ajax-delete" href='{:url("del_trainer", ["id" => "$vo[id]"]) }' >删除</a>
  60 + </td>
  61 + </tr>
  62 + </foreach>
  63 + </tbody>
  64 + </table>
  65 +
  66 +
  67 + </div>
  68 + <div class="pagination">
  69 + {$page}
  70 + </div>
  71 + <script src="__STATIC__/js/admin.js"></script>
  72 +</body>
  73 +</html>
  1 +<!DOCTYPE html>
  2 +<html>
  3 +<head>
  4 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5 + <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
  6 + <style type="text/css">
  7 + body, html, #allmap {
  8 + width: 100%;
  9 + height: 100%;
  10 + overflow: hidden;
  11 + margin: 0;
  12 + }
  13 +
  14 + #suggestId {
  15 + position: absolute;
  16 + z-index: 9999;
  17 + right: 20px;
  18 + top: 20px;
  19 + line-height: 32px;
  20 + padding: 0px 10px;
  21 + width: 300px;
  22 + border: 1px solid #e4e6e7;
  23 +
  24 + }
  25 +
  26 + #suggestId:focus {
  27 + outline: none;
  28 + }
  29 + </style>
  30 + <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=KxkuAcGBup6sD1XxaDW85KBG"></script>
  31 + <title>点击地图获取当前经纬度</title>
  32 +</head>
  33 +<body>
  34 +<input id="lng_input" type="hidden" value="{$lng}"/>
  35 +<input id="lat_input" type="hidden" value="{$lat}"/>
  36 +<input id="address_input" type="hidden"/>
  37 +<input id="city_input" type="hidden"/>
  38 +<input id="province_input" type="hidden"/>
  39 +<input id="district_input" type="hidden"/>
  40 +
  41 +<input id="suggestId" type="text" placeholder="请输入地址"/>
  42 +<div id="allmap"></div>
  43 +<script type="text/javascript">
  44 +
  45 + // 百度地图API功能
  46 + var center = new BMap.Point({$lng}, {$lat});
  47 +
  48 + var map = new BMap.Map("allmap");
  49 + map.centerAndZoom(new BMap.Point(116.404, 39.915), 8);
  50 + map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用
  51 + map.enableContinuousZoom();
  52 +
  53 + var map_ac = new BMap.Autocomplete( //建立一个自动完成的对象
  54 + {
  55 + "input": "suggestId",
  56 + "location": map
  57 + });
  58 +
  59 + var marker = new BMap.Marker(center); // 创建标注
  60 + map.addOverlay(marker); // 将标注添加到地图中
  61 + marker.enableDragging(); //可拖拽
  62 + //marker.setAnimation(BMAP_ANIMATION_BOUNCE);
  63 +
  64 + map_ac.addEventListener("onconfirm", function (e) { //鼠标点击下拉列表后的事件
  65 + var _value = e.item.value;
  66 +
  67 + function myFun() {
  68 + var pp = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
  69 + map.centerAndZoom(pp, 8);
  70 + marker.setPosition(pp);
  71 + mgetLocation(pp);
  72 + }
  73 +
  74 + myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
  75 + var local = new BMap.LocalSearch(map, { //智能搜索
  76 + onSearchComplete: myFun
  77 + });
  78 + local.search(myValue);
  79 + });
  80 +
  81 +
  82 + var opts = {
  83 + width: 200, // 信息窗口宽度
  84 + height: 30, // 信息窗口高度
  85 + title: "", // 信息窗口标题
  86 + enableMessage: false,//设置允许信息窗发送短息
  87 +
  88 + }
  89 + var infoWindow = new BMap.InfoWindow("拖动我设置你的位置", opts); // 创建信息窗口对象
  90 + marker.openInfoWindow(infoWindow);
  91 +
  92 + var gc = new BMap.Geocoder();
  93 +
  94 + function msetpoint(e) {
  95 + document.getElementById("lng_input").value = e.point.lng;
  96 + document.getElementById("lat_input").value = e.point.lat;
  97 + marker.setPosition(new BMap.Point(e.point.lng, e.point.lat));
  98 +
  99 + mgetLocation(e.point);
  100 + }
  101 +
  102 + function mgetLocation(point) {
  103 + document.getElementById("lng_input").value = point.lng;
  104 + document.getElementById("lat_input").value = point.lat;
  105 + gc.getLocation(point, function (rs) {
  106 + var addComp = rs.addressComponents;
  107 + marker.openInfoWindow(new BMap.InfoWindow(rs.address, opts));
  108 + document.getElementById("address_input").value = rs.address;
  109 + document.getElementById("city_input").value = addComp.city;
  110 + document.getElementById("province_input").value = addComp.province;
  111 + document.getElementById("district_input").value = addComp.district;
  112 + //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
  113 + });
  114 + }
  115 +
  116 + marker.addEventListener("dragend", msetpoint)
  117 +
  118 + map.addEventListener("click", msetpoint);
  119 +
  120 +
  121 + function tilesloaded() {
  122 + map.setCenter(center); //设置地图中心点。center除了可以为坐标点以外,还支持城市名
  123 + mgetLocation(center);
  124 + // map.setZoom(8); //将视图切换到指定的缩放等级,中心点坐标不变
  125 + map.removeEventListener("tilesloaded", tilesloaded);
  126 + }
  127 +
  128 + map.addEventListener("tilesloaded", tilesloaded);
  129 +
  130 +
  131 + function confirm() {
  132 + var data = {};
  133 + data.lng = document.getElementById("lng_input").value;
  134 + data.lat = document.getElementById("lat_input").value;
  135 + data.address = document.getElementById("address_input").value;
  136 + data.city = document.getElementById("city_input").value;
  137 + data.province = document.getElementById("province_input").value;
  138 + data.district = document.getElementById("district_input").value;
  139 +
  140 + return data;
  141 + }
  142 +</script>
  143 +
  144 +</body>
  145 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="{:url('data_list')}">列表管理</a></li>
  7 + <!--<li><a href="{:url('data_edit')}">添加 / 编辑</a></li>-->
  8 + </ul>
  9 + <form action="{:url('data_edit')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
  10 + <div class="row">
  11 + <div class="col-md-9">
  12 + <table class="table table-bordered">
  13 +
  14 + <tr>
  15 + <th>驾考类型<span class="form-required">*</span></th>
  16 + <td>
  17 + <input type="hidden" name="id" value="{$info.id|default=''}">
  18 + <input class="form-control" type="text" name="name" id="post_title" value="{$info.name|default=''}"
  19 + placeholder="请输入标题">
  20 + </td>
  21 + </tr>
  22 + <tr>
  23 + <th>简介</th>
  24 + <td>
  25 + <textarea class="form-control" name="des" style="height: 50px;"
  26 + placeholder="请填写简介">{$info.des|default=''}</textarea>
  27 + </td>
  28 + </tr>
  29 + <tr>
  30 + <th>价格</th>
  31 + <td>
  32 + <textarea class="form-control" name="price" style="height: 50px;"
  33 + placeholder="请填写价格">{$info.price|default=''}</textarea>
  34 + </td>
  35 + </tr>
  36 + <!--<tr>-->
  37 + <!--<th>图片</th>-->
  38 + <!--<td>-->
  39 + <!--<div class="col-md-6 col-sm-10">-->
  40 + <!--<a href="javascript:uploadOneImage('图片上传','#photo-1');">点击上传图片</a>-->
  41 + <!--<br>-->
  42 + <!--<input id="photo-1" type="hidden" name="pic" >-->
  43 + <!--<input id="photo-1-name" type="hidden" name="pic" title="图片名称">-->
  44 + <!--<img id="photo-1-preview" width="200px">-->
  45 +
  46 + <!--</div>-->
  47 + <!--</td>-->
  48 + <!--</tr>-->
  49 + <tr>
  50 + <th>驾考合同</th>
  51 + <td>
  52 + <script type="text/plain" id="content" name="hetong">{$info.hetong|default=''|htmlspecialchars_decode}</script>
  53 + </td>
  54 + </tr>
  55 + </table>
  56 + <div class="form-group">
  57 + <div class="col-sm-offset-2 col-sm-10">
  58 + <button type="submit" class="btn btn-primary js-ajax-submit">提交</button>
  59 + <a class="btn btn-default" href="{:url('data_list')}">返回</a>
  60 + </div>
  61 + </div>
  62 + </div>
  63 + </div>
  64 + </form>
  65 +</div>
  66 +<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  67 +<script type="text/javascript">
  68 + //编辑器路径定义
  69 + var editorURL = GV.WEB_ROOT;
  70 +</script>
  71 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
  72 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
  73 +<script type="text/javascript">
  74 + $(function () {
  75 +
  76 + editorcontent = new baidu.editor.ui.Editor();
  77 + editorcontent.render('content');
  78 + try {
  79 + editorcontent.sync();
  80 + } catch (err) {
  81 + }
  82 +
  83 + $('.btn-cancel-thumbnail').click(function () {
  84 + $('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
  85 + $('#thumbnail').val('');
  86 + });
  87 +
  88 + });
  89 +
  90 + function doSelectCategory() {
  91 + var selectedCategoriesId = $('#js-categories-id-input').val();
  92 + openIframeLayer("{:url('AdminCategory/select')}?ids=" + selectedCategoriesId, '请选择分类', {
  93 + area: ['700px', '400px'],
  94 + btn: ['确定', '取消'],
  95 + yes: function (index, layero) {
  96 + //do something
  97 +
  98 + var iframeWin = window[layero.find('iframe')[0]['name']];
  99 + var selectedCategories = iframeWin.confirm();
  100 + if (selectedCategories.selectedCategoriesId.length == 0) {
  101 + layer.msg('请选择分类');
  102 + return;
  103 + }
  104 + $('#js-categories-id-input').val(selectedCategories.selectedCategoriesId.join(','));
  105 + $('#js-categories-name-input').val(selectedCategories.selectedCategoriesName.join(' '));
  106 + //console.log(layer.getFrameIndex(index));
  107 + layer.close(index); //如果设定了yes回调,需进行手工关闭
  108 + }
  109 + });
  110 + }
  111 +</script>
  112 +<script>
  113 + $('#input-list_tpl').val("{$list_tpl|default=''}");
  114 + $('#input-one_tpl').val("{$one_tpl|default=''}");
  115 +</script>
  116 +</body>
  117 +</html>
  1 +<include file="public@header" />
  2 +</head>
  3 +<body>
  4 + <div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="{:url('data_list')}">列表管理</a></li>
  7 + <li><a href="{:url('')}">添加 </a></li>
  8 + </ul>
  9 + <form method="post" class="js-ajax-form" action="">
  10 +
  11 + <table class="table table-hover table-bordered table-list">
  12 + <thead>
  13 + <tr>
  14 + <th width="50">ID</th>
  15 + <th>名称</th>
  16 + <th>价格</th>
  17 + <th>简介</th>
  18 +
  19 + <th>修改时间</th>
  20 + <th width="180">操作</th>
  21 + </tr>
  22 + </thead>
  23 + <tbody>
  24 + <foreach name="list" id="vo">
  25 + <tr>
  26 + <td>{$vo.id}</td>
  27 + <td>{$vo.name}</td>
  28 + <td>{$vo.price}</td>
  29 + <td>{$vo.des}</td>
  30 + <td>{$vo.create_time|date="Y-m-d H:i:s",###}</td>
  31 + <td>
  32 + <a href='{:url("data_edit", ["id" => "$vo[id]"]) }' >查看 / 编辑</a>
  33 + <if condition="$vo['status'] eq 1">
  34 + <a href="{:url('data_status',array('id'=>$vo['id'],'type'=>'ban'))}" class="js-ajax-dialog-btn" data-msg="是否要隐藏">隐藏</a>
  35 + <else />
  36 + <a href="{:url('data_status',array('id'=>$vo['id'],'type'=>'cancelban'))}" class="js-ajax-dialog-btn" data-msg="是否要显示">显示</a>
  37 + </if>
  38 + <a href='{:url("data_status", ["id" => "$vo[id]","type"=>"del"]) }' class="js-ajax-dialog-btn" data-msg="是否要删除">删除</a>
  39 + </td>
  40 + </tr>
  41 + </foreach>
  42 + </tbody>
  43 + </table>
  44 + </form>
  45 + </div>
  46 + <script src="__STATIC__/js/admin.js"></script>
  47 +</body>
  48 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a>所有钩子</a></li>
  7 + <li><a href="{:url('Hook/sync')}">同步钩子</a></li>
  8 + </ul>
  9 + <form action="" method="post" class="margin-top-20">
  10 + <php>
  11 + $types = ["1"=>'系统钩子','2'=>'应用钩子','3'=>'模板钩子','4'=>'后台模板钩子'];
  12 + </php>
  13 + <table class="table table-hover table-bordered">
  14 + <thead>
  15 + <tr>
  16 + <th width="40">ID</th>
  17 + <th>名称</th>
  18 + <th>类型</th>
  19 + <th>描述</th>
  20 + <th width="150">{:lang('ACTIONS')}</th>
  21 + </tr>
  22 + </thead>
  23 + <tbody>
  24 + <foreach name="hooks" item="vo">
  25 + <tr>
  26 + <td>{$vo.id}</td>
  27 + <td>{$vo.name}:{$vo.hook}</td>
  28 + <td>{$types[$vo.type]}</td>
  29 + <td>{$vo.description}</td>
  30 + <td>
  31 + <a href="javascript:parent.openIframeLayer('{:url('Hook/plugins',['hook'=>$vo['hook']])}','钩子{$vo.name}插件管理',{});">管理插件</a>
  32 + </td>
  33 + </tr>
  34 + </foreach>
  35 + </tbody>
  36 + </table>
  37 + </form>
  38 +</div>
  39 +<script src="__STATIC__/js/admin.js"></script>
  40 +</body>
  41 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <form action="{:url('hook/pluginListOrder')}" method="post" class="js-ajax-form">
  6 + <php>
  7 + $types = ["1"=>'系统钩子','2'=>'应用钩子','3'=>'模板钩子','4'=>'后台模板钩子'];
  8 + $status=array("1"=>'开启',"0"=>'禁用',"3"=>'未安装');
  9 + </php>
  10 + <div class="table-actions">
  11 + <button type="submit" class="btn btn-primary btn-sm js-ajax-submit">{:lang('SORT')}</button>
  12 + </div>
  13 + <table class="table table-hover table-bordered">
  14 + <thead>
  15 + <tr>
  16 + <th width="50">排序</th>
  17 + <th>插件名称</th>
  18 + <th>插件标识</th>
  19 + <th>钩子</th>
  20 + <th>描述</th>
  21 + <th>作者</th>
  22 + <th width="60">状态</th>
  23 + <th width="150">{:lang('ACTIONS')}</th>
  24 + </tr>
  25 + </thead>
  26 + <tbody>
  27 + <foreach name="plugins" item="vo">
  28 + <tr>
  29 + <td><input name="list_orders[{$vo.hook_plugin_id}]" type="text" size="3" value="{$vo.list_order}"
  30 + class="input input-order"></td>
  31 + <td>{$vo.title}</td>
  32 + <td>{$vo.name}</td>
  33 + <td>{$vo.hooks|default=''}</td>
  34 + <td>{$vo.description}</td>
  35 + <td>{$vo.author}</td>
  36 + <td>{$status[$vo['hook_plugin_status']]}</td>
  37 + <td>
  38 + <if condition="$vo['status']==3">
  39 + <a href="{:url('plugin/install',array('name'=>$vo['name']))}" class="js-ajax-dialog-btn"
  40 + data-msg="确定安装该插件吗?">安装</a>
  41 + <else/>
  42 + <php>$config=json_decode($vo['config'],true);</php>
  43 + <if condition="!empty($config)">
  44 + <a href="{:url('plugin/setting',array('id'=>$vo['id']))}">设置</a> |
  45 + <else/>
  46 + <a href="javascript:;" style="color: #ccc;">设置</a> |
  47 + </if>
  48 +
  49 + <if condition="!empty($vo['has_admin'])">
  50 + <a href="javascript:parent.openapp('{:cmf_plugin_url($vo['name'].'://AdminIndex/index')}','plugin_{$vo.name}','{$vo.title}')">管理</a>|
  51 + <else/>
  52 + <a href="javascript:;" style="color: #ccc;">管理</a>
  53 + </if>
  54 +
  55 + </if>
  56 + </td>
  57 + </tr>
  58 + </foreach>
  59 + </tbody>
  60 + </table>
  61 + </form>
  62 +</div>
  63 +<script src="__STATIC__/js/admin.js"></script>
  64 +</body>
  65 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap">
  5 + <div class="row">
  6 + <div class="col-md-offset-3 col-md-6">
  7 + <div class="panel panel-default" style="margin-top: 10%">
  8 + <div class="panel-heading">
  9 + <h3 class="panel-title">同步钩子</h3>
  10 + </div>
  11 + <div class="panel-body">
  12 + <div style="line-height: 60px;">
  13 + 钩子同步成功!
  14 + </div>
  15 + <div>
  16 + <a href="javascript:history.back(-1);" class="btn btn-primary pull-right">{:lang('CLOSE')}</a>
  17 + <div class="clearfix"></div>
  18 + </div>
  19 + </div>
  20 + </div>
  21 + </div>
  22 + </div>
  23 +</div>
  24 +<script src="__STATIC__/js/admin.js"></script>
  25 +<script>
  26 + var closeTimeout = setTimeout(function () {
  27 + history.back(-1);
  28 + }, 3000);
  29 +
  30 +</script>
  31 +</body>
  32 +</html>
  1 +<!DOCTYPE html>
  2 +<html lang="zh_CN" style="overflow: hidden;">
  3 +<head>
  4 + <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
  5 + <!-- Set render engine for 360 browser -->
  6 + <meta name="renderer" content="webkit">
  7 + <meta charset="utf-8">
  8 + <title>QnbugBMS {:lang('ADMIN_CENTER')}</title>
  9 + <meta name="description" content="This is page-header (.page-header &gt; h1)">
  10 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  11 + <!-- HTML5 shim for IE8 support of HTML5 elements -->
  12 + <!--[if lt IE 9]>
  13 + <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
  14 + <![endif]-->
  15 + <link href="__TMPL__/public/assets/themes/{:cmf_get_admin_style()}/bootstrap.min.css" rel="stylesheet">
  16 + <link href="__TMPL__/public/assets/simpleboot3/css/simplebootadmin.css" rel="stylesheet">
  17 + <link href="__STATIC__/font-awesome/css/font-awesome.min.css?page=index" rel="stylesheet" type="text/css">
  18 + <link rel="stylesheet" href="__TMPL__/public/assets/themes/{:cmf_get_admin_style()}/simplebootadminindex.min.css">
  19 + <!--[if lt IE 9]>
  20 + <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
  21 + <![endif]-->
  22 + <style>
  23 + /*-----------------导航hack--------------------*/
  24 + .nav-list > li.open {
  25 + position: relative;
  26 + }
  27 +
  28 + .nav-list > li.open .back {
  29 + display: none;
  30 + }
  31 +
  32 + .nav-list > li.open .normal {
  33 + display: inline-block !important;
  34 + }
  35 +
  36 + .nav-list > li.open a {
  37 + padding-left: 7px;
  38 + }
  39 +
  40 + .nav-list > li .submenu > li > a {
  41 + background: #fff;
  42 + }
  43 +
  44 + .nav-list > li .submenu > li a > [class*="fa-"]:first-child {
  45 + left: 20px;
  46 + }
  47 +
  48 + .nav-list > li ul.submenu ul.submenu > li a > [class*="fa-"]:first-child {
  49 + left: 30px;
  50 + }
  51 + /*----------------导航hack--------------------*/
  52 + </style>
  53 +
  54 + <script>
  55 + //全局变量
  56 + var GV = {
  57 + HOST: "{$_SERVER['HTTP_HOST']}",
  58 + ROOT: "__ROOT__/",
  59 + WEB_ROOT: "__WEB_ROOT__/",
  60 + JS_ROOT: "static/js/"
  61 + };
  62 + </script>
  63 + <php>$submenus=$menus;</php>
  64 +
  65 + <php>function getsubmenu($submenus){</php>
  66 + <notempty name="submenus">
  67 + <php>foreach($submenus as $menu){</php>
  68 + <li>
  69 + <php>
  70 + $menu_name=lang($menu['lang']);
  71 + $menu_name=$menu['lang']==$menu_name?$menu['name']:$menu_name;
  72 + </php>
  73 + <php>if(empty($menu['items'])){</php>
  74 + <a href="javascript:openapp('{$menu.url}','{$menu.id}','{$menu_name}',true);">
  75 + <i class="fa fa-{$menu.icon|default='desktop'}"></i>
  76 + <span class="menu-text"> {$menu_name} </span>
  77 + </a>
  78 + <php>}else{</php>
  79 + <a href="#" class="dropdown-toggle">
  80 + <i class="fa fa-{$menu.icon|default='desktop'} normal"></i>
  81 + <span class="menu-text normal"> {$menu_name} </span>
  82 + <b class="arrow fa fa-angle-right normal"></b>
  83 + <i class="fa fa-reply back"></i>
  84 + <span class="menu-text back">返回</span>
  85 +
  86 + </a>
  87 +
  88 + <ul class="submenu">
  89 + <php>getsubmenu1($menu['items'])</php>
  90 + </ul>
  91 + <php>}</php>
  92 +
  93 + </li>
  94 +
  95 + <php>}</php>
  96 + </notempty>
  97 + <php>}</php>
  98 +
  99 + <php>function getsubmenu1($submenus){</php>
  100 + <php>foreach($submenus as $menu){</php>
  101 + <li>
  102 + <php>
  103 + $menu_name=lang($menu['lang']);
  104 + $menu_name=$menu['lang']==$menu_name?$menu['name']:$menu_name;
  105 + </php>
  106 + <php>if(empty($menu['items'])){</php>
  107 + <a href="javascript:openapp('{$menu.url}','{$menu.id}','{$menu_name}',true);">
  108 + <i class="fa fa-caret-right"></i>
  109 + <span class="menu-text">
  110 + {$menu_name}
  111 + </span>
  112 + </a>
  113 + <php>}else{</php>
  114 + <a href="#" class="dropdown-toggle">
  115 + <i class="fa fa-caret-right"></i>
  116 + <span class="menu-text">
  117 + {$menu_name}
  118 + </span>
  119 + <b class="arrow fa fa-angle-right"></b>
  120 + </a>
  121 + <ul class="submenu">
  122 + <php>getsubmenu2($menu['items'])</php>
  123 + </ul>
  124 + <php>}</php>
  125 +
  126 + </li>
  127 +
  128 + <php>}</php>
  129 + <php>}</php>
  130 +
  131 + <php>function getsubmenu2($submenus){</php>
  132 + <php>foreach($submenus as $menu){</php>
  133 + <li>
  134 + <php>
  135 + $menu_name=lang($menu['lang']);
  136 + $menu_name=$menu['lang']==$menu_name?$menu['name']:$menu_name;
  137 + </php>
  138 +
  139 + <a href="javascript:openapp('{$menu.url}','{$menu.id}','{$menu_name}',true);">
  140 + &nbsp;<i class="fa fa-angle-double-right"></i>
  141 + <span class="menu-text">
  142 + {$menu_name}
  143 + </span>
  144 + </a>
  145 + </li>
  146 +
  147 + <php>}</php>
  148 + <php>}</php>
  149 +
  150 +
  151 + <if condition="APP_DEBUG">
  152 + <style>
  153 + #think_page_trace_open {
  154 + left: 0 !important;
  155 + right: initial !important;
  156 + }
  157 + </style>
  158 + </if>
  159 +
  160 +</head>
  161 +
  162 +<body style="min-width:900px;overflow: hidden;">
  163 +<div id="loading"><i class="loadingicon"></i><span>{:lang('LOADING')}</span></div>
  164 +<div id="right-tools-wrapper">
  165 + <!--<span id="right_tools_clearcache" title="清除缓存" onclick="javascript:openapp('{:url('admin/Setting/clearcache')}','right_tool_clearcache','清除缓存');"><i class="fa fa-trash-o right_tool_icon"></i></span>-->
  166 + <!--<span id="refresh-wrapper" title="{:lang('REFRESH_CURRENT_PAGE')}"><i-->
  167 + <!--class="fa fa-refresh right_tool_icon"></i></span>-->
  168 +</div>
  169 +<div class="navbar navbar-default">
  170 + <div class="container-fluid">
  171 + <div class="navbar-header">
  172 + <a href="{:url('admin/index/index')}" class="navbar-brand" style="min-width: 200px;text-align: center;">QnbugBMS</a>
  173 + <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#navbar-main">
  174 + <span class="icon-bar"></span>
  175 + <span class="icon-bar"></span>
  176 + <span class="icon-bar"></span>
  177 + </button>
  178 + </div>
  179 +
  180 + <div class="navbar-collapse collapse" id="navbar-main">
  181 + <div class="pull-left" style="position: relative;">
  182 + <a id="task-pre" class="task-changebt"><i class="fa fa-chevron-left"></i></a>
  183 + <div id="task-content">
  184 + <ul class="nav navbar-nav cmf-component-tab" id="task-content-inner">
  185 + <li class="cmf-component-tabitem noclose" app-id="0" app-url="{:url('main/index')}"
  186 + app-name="首页">
  187 + <a class="cmf-tabs-item-text">{:lang('HOME')}</a>
  188 + </li>
  189 + </ul>
  190 + <div style="clear:both;"></div>
  191 + </div>
  192 + <a id="task-next" class="task-changebt"><i class="fa fa-chevron-right"></i></a>
  193 + </div>
  194 +
  195 + <ul class="nav navbar-nav navbar-right simplewind-nav">
  196 + <li class="light-blue" style="border-left:none;display: none;" id="close-all-tabs-btn">
  197 + <a id="close-wrapper" href="javascript:void(0);" title="{:lang('CLOSE_TOP_MENU')}" style="color:#fff;font-size: 16px">
  198 + <i class="fa fa-times right_tool_icon"></i>
  199 + </a>
  200 + </li>
  201 + <li class="light-blue" style="border-left:none;">
  202 + <a id="refresh-wrapper" href="javacript:void(0);" title="{:lang('REFRESH_CURRENT_PAGE')}" style="color:#fff;font-size: 16px">
  203 + <i class="fa fa-refresh right_tool_icon"></i>
  204 + </a>
  205 + </li>
  206 + <li class="light-blue dropdown" style="border-left:none;">
  207 + <a data-toggle="dropdown" href="#" class="dropdown-toggle">
  208 + <if condition="isset($admin['avatar']) && $admin['avatar']">
  209 + <img class="nav-user-photo" width="30" height="30"
  210 + src="{:cmf_get_user_avatar_url($admin['avatar'])}" alt="{$admin.user_login}">
  211 + <else/>
  212 + <img class="nav-user-photo" width="30" height="30"
  213 + src="__TMPL__/public/assets/images/logo-18.png" alt="{$admin.user_login|default=''}">
  214 + </if>
  215 + <span class="user-info">
  216 + {:lang('WELCOME_USER',array('user_nickname' => empty($admin['user_nickname'] )? $admin['user_login'] : $admin['user_nickname']))}
  217 + </span>
  218 + <i class="fa fa-caret-down"></i>
  219 + </a>
  220 + <ul class="user-menu pull-right dropdown-menu dropdown-yellow dropdown-caret dropdown-closer">
  221 + <if condition="cmf_auth_check(cmf_get_current_admin_id(),'admin/Setting/site')">
  222 + <li>
  223 + <a href="javascript:openapp('{:url('setting/site')}','index_site','{:lang('ADMIN_SETTING_SITE')}');"><i
  224 + class="fa fa-cog"></i> {:lang('ADMIN_SETTING_SITE')}</a></li>
  225 + </if>
  226 + <if condition="cmf_auth_check(cmf_get_current_admin_id(),'admin/user/userinfo')">
  227 + <li>
  228 + <a href="javascript:openapp('{:url('user/userinfo')}','index_userinfo','{:lang('ADMIN_USER_USERINFO')}');"><i
  229 + class="fa fa-user"></i> {:lang('ADMIN_USER_USERINFO')}</a></li>
  230 + </if>
  231 + <if condition="cmf_auth_check(cmf_get_current_admin_id(),'admin/Setting/password')">
  232 + <li>
  233 + <a href="javascript:openapp('{:url('setting/password')}','index_password','{:lang('ADMIN_SETTING_PASSWORD')}');"><i
  234 + class="fa fa-lock"></i> {:lang('ADMIN_SETTING_PASSWORD')}</a></li>
  235 + </if>
  236 + <li><a href="{:url('Public/logout')}"><i class="fa fa-sign-out"></i> {:lang('LOGOUT')}</a></li>
  237 + </ul>
  238 + </li>
  239 + </ul>
  240 + </div>
  241 + </div>
  242 +</div>
  243 +
  244 +<div class="main-container container-fluid">
  245 +
  246 + <div class="sidebar" id="sidebar">
  247 + <div class="sidebar-shortcuts" id="sidebar-shortcuts">
  248 +
  249 +
  250 + <if condition="cmf_auth_check(cmf_get_current_admin_id(),'admin/Setting/clearcache')">
  251 + <a class="btn btn-sm btn-danger"
  252 + href="javascript:openapp('{:url('admin/Setting/clearcache')}','index_clearcache','{:lang('ADMIN_SETTING_CLEARCACHE')}',true);"
  253 + title="{:lang('ADMIN_SETTING_CLEARCACHE')}"
  254 + data-toggle="tooltip">
  255 + <i class="fa fa-trash-o"></i>
  256 + </a>
  257 + </if>
  258 +
  259 +
  260 +
  261 + <if condition="APP_DEBUG">
  262 + <a class="btn btn-sm btn-default"
  263 + href="javascript:openapp('{:url('admin/Menu/index')}','index_menu','{:lang('ADMIN_MENU_INDEX')}',true);"
  264 + title="{:lang('ADMIN_MENU_INDEX')}"
  265 + data-toggle="tooltip">
  266 + <i class="fa fa-list"></i>
  267 + </a>
  268 + </if>
  269 +
  270 + </div>
  271 + <div id="nav-wrapper">
  272 + <ul class="nav nav-list">
  273 + {:getsubmenu($submenus)}
  274 + </ul>
  275 + </div>
  276 +
  277 + </div>
  278 +
  279 + <div class="main-content">
  280 + <div class="page-content" id="content">
  281 + <iframe src="{:url('Main/index')}" style="width:100%;height: 100%;" frameborder="0" id="appiframe-0"
  282 + class="appiframe"></iframe>
  283 + </div>
  284 + </div>
  285 +</div>
  286 +
  287 +<script src="__TMPL__/public/assets/js/jquery-1.10.2.min.js"></script>
  288 +<script src="__STATIC__/js/wind.js"></script>
  289 +<script src="__TMPL__/public/assets/js/bootstrap.min.js"></script>
  290 +<script src="__STATIC__/js/admin.js"></script>
  291 +<script src="__TMPL__/public/assets/simpleboot3/js/adminindex.js"></script>
  292 +<script>
  293 + $(function () {
  294 + $("[data-toggle='tooltip']").tooltip();
  295 + $("li.dropdown").hover(function () {
  296 + $(this).addClass("open");
  297 + }, function () {
  298 + $(this).removeClass("open");
  299 + });
  300 +
  301 + var menus= {:$menus_js_var};
  302 + //读取url参数。尝试执行菜单功能。
  303 + if(typeof(menus) != "undefined"){
  304 +
  305 + var tw = window.top;
  306 + var twa =tw.location.href.split("#");
  307 + var url = twa[1];
  308 + var urlTmp = url;
  309 + if (url !=null ){
  310 + //去掉/ 去掉_ 全部小写。
  311 + urlTmp = urlTmp.replace(/[\\/|_|]/g,"");
  312 + urlTmp = urlTmp.replace(".html","");
  313 + var menu = menus[urlTmp];
  314 + if (menu){
  315 + openapp(url,menu.id+menu.app,menu.name,true);
  316 + }
  317 + }
  318 + }
  319 +
  320 +
  321 +
  322 +
  323 + });
  324 +
  325 + var ismenumin = $("#sidebar").hasClass("menu-min");
  326 + $(".nav-list").on("click", function (event) {
  327 + var closest_a = $(event.target).closest("a");
  328 + if (!closest_a || closest_a.length == 0) {
  329 + return
  330 + }
  331 + if (!closest_a.hasClass("dropdown-toggle")) {
  332 + if (ismenumin && "click" == "tap" && closest_a.get(0).parentNode.parentNode == this) {
  333 + var closest_a_menu_text = closest_a.find(".menu-text").get(0);
  334 + if (event.target != closest_a_menu_text && !$.contains(closest_a_menu_text, event.target)) {
  335 + return false
  336 + }
  337 + }
  338 + return
  339 + }
  340 + var closest_a_next = closest_a.next().get(0);
  341 + if (!$(closest_a_next).is(":visible")) {
  342 + var closest_ul = $(closest_a_next.parentNode).closest("ul");
  343 + if (ismenumin && closest_ul.hasClass("nav-list")) {
  344 + return
  345 + }
  346 + closest_ul.find("> .open > .submenu").each(function () {
  347 + if (this != closest_a_next && !$(this.parentNode).hasClass("active")) {
  348 + $(this).slideUp(150).parent().removeClass("open")
  349 + }
  350 + });
  351 + }
  352 + if (ismenumin && $(closest_a_next.parentNode.parentNode).hasClass("nav-list")) {
  353 + return false;
  354 + }
  355 + $(closest_a_next).slideToggle(150).parent().toggleClass("open");
  356 + return false;
  357 + });
  358 +
  359 +
  360 +
  361 +</script>
  362 +</body>
  363 +</html>
  1 +<include file="public@header" />
  2 +</head>
  3 +<body>
  4 + <div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('link/index')}">{:lang('ADMIN_LINK_INDEX')}</a></li>
  7 + <li class="active"><a href="{:url('link/add')}">{:lang('ADMIN_LINK_ADD')}</a></li>
  8 + </ul>
  9 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('link/addPost')}">
  10 + <div class="form-group">
  11 + <label for="input-name" class="col-sm-2 control-label">名称<span class="form-required">*</span></label>
  12 + <div class="col-md-6 col-sm-10">
  13 + <input type="text" class="form-control" id="input-name" name="name">
  14 + </div>
  15 + </div>
  16 + <div class="form-group">
  17 + <label for="input-url" class="col-sm-2 control-label">链接地址<span class="form-required">*</span></label>
  18 + <div class="col-md-6 col-sm-10">
  19 + <input type="text" class="form-control" id="input-url" name="url">
  20 + </div>
  21 + </div>
  22 + <div class="form-group">
  23 + <label for="input-image" class="col-sm-2 control-label">图标</label>
  24 + <div class="col-md-6 col-sm-10">
  25 + <input type="text" class="form-control" id="input-image" name="image">
  26 + <a href="javascript:uploadOneImage('图片上传','#input-image');">上传图片</a>
  27 + </div>
  28 + </div>
  29 + <div class="form-group">
  30 + <label for="input-target" class="col-sm-2 control-label">打开方式</label>
  31 + <div class="col-md-6 col-sm-10">
  32 + <select class="form-control" name="target" id="input-target">
  33 + <foreach name="targets" item="vo">
  34 + <option value="{$key}">{$vo}</option>
  35 + </foreach>
  36 + </select>
  37 + </div>
  38 + </div>
  39 + <div class="form-group">
  40 + <label for="input-description" class="col-sm-2 control-label">描述</label>
  41 + <div class="col-md-6 col-sm-10">
  42 + <textarea class="form-control" name="description" id="input-description" ></textarea>
  43 + </div>
  44 + </div>
  45 + <div class="form-group">
  46 + <div class="col-sm-offset-2 col-sm-10">
  47 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
  48 + <a class="btn btn-default" href="javascript:history.back(-1);">{:lang('BACK')}</a>
  49 + </div>
  50 + </div>
  51 + </form>
  52 + </div>
  53 + <script src="__STATIC__/js/admin.js"></script>
  54 +</body>
  55 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('link/index')}">{:lang('ADMIN_LINK_INDEX')}</a></li>
  7 + <li><a href="{:url('link/add')}">{:lang('ADMIN_LINK_ADD')}</a></li>
  8 + <li class="active"><a>编辑友情链接</a></li>
  9 + </ul>
  10 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('link/editPost')}">
  11 + <div class="form-group">
  12 + <label for="input-link_name" class="col-sm-2 control-label">名称<span class="form-required">*</span></label>
  13 + <div class="col-md-6 col-sm-10">
  14 + <input type="text" class="form-control" id="input-link_name" name="name" value="{$link.name}">
  15 + </div>
  16 + </div>
  17 + <div class="form-group">
  18 + <label for="input-link_url" class="col-sm-2 control-label">链接地址<span class="form-required">*</span></label>
  19 + <div class="col-md-6 col-sm-10">
  20 + <input type="text" class="form-control" id="input-link_url" name="url" value="{$link.url}">
  21 + </div>
  22 + </div>
  23 + <div class="form-group">
  24 + <label for="input-link_image" class="col-sm-2 control-label">图标</label>
  25 + <div class="col-md-6 col-sm-10">
  26 + <input type="text" class="form-control" id="input-link_image" name="image" value="{$link.image}">
  27 + <a href="javascript:uploadOneImage('图片上传','#input-link_image');">上传图片</a>
  28 + </div>
  29 + </div>
  30 + <div class="form-group">
  31 + <label for="input-target" class="col-sm-2 control-label">打开方式</label>
  32 + <div class="col-md-6 col-sm-10">
  33 + <select class="form-control" name="target" id="input-target">
  34 + <foreach name="targets" item="vo">
  35 + <php>$link_target_selected=$link['target']==$key?"selected='selected'":"";</php>
  36 + <option value="{$key}" {$link_target_selected}>{$vo}</option>
  37 + </foreach>
  38 + </select>
  39 + </div>
  40 + </div>
  41 + <div class="form-group">
  42 + <label for="input-link_description" class="col-sm-2 control-label">描述</label>
  43 + <div class="col-md-6 col-sm-10">
  44 + <textarea class="form-control" name="description"
  45 + id="input-link_description">{$link.description}</textarea>
  46 + </div>
  47 + </div>
  48 + <div class="form-group">
  49 + <div class="col-sm-offset-2 col-sm-10">
  50 + <input type="hidden" name="id" value="{$link.id}">
  51 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('SAVE')}</button>
  52 + <a class="btn btn-default" href="{:url('link/index')}">{:lang('BACK')}</a>
  53 + </div>
  54 + </div>
  55 + </form>
  56 +</div>
  57 +<script src="__STATIC__/js/admin.js"></script>
  58 +</body>
  59 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="{:url('link/index')}">所有友情链接</a></li>
  7 + <li><a href="{:url('link/add')}">添加友情链接</a></li>
  8 + </ul>
  9 + <form method="post" class="js-ajax-form margin-top-20" action="{:url('Link/listOrder')}">
  10 + <div class="table-actions">
  11 + <button class="btn btn-primary btn-sm js-ajax-submit" type="submit">{:lang('SORT')}</button>
  12 + <button class="btn btn-primary btn-sm js-ajax-submit" type="submit"
  13 + data-action="{:url('link/toggle',array('display'=>1))}" data-subcheck="true">{:lang('DISPLAY')}
  14 + </button>
  15 + <button class="btn btn-primary btn-sm js-ajax-submit" type="submit"
  16 + data-action="{:url('link/toggle',array('hide'=>1))}" data-subcheck="true">{:lang('HIDE')}
  17 + </button>
  18 + </div>
  19 + <php>$status=array("1"=>lang('DISPLAY'),"0"=>lang('HIDDEN'));</php>
  20 + <table class="table table-hover table-bordered table-list">
  21 + <thead>
  22 + <tr>
  23 + <th width="16"><label><input type="checkbox" class="js-check-all" data-direction="x"
  24 + data-checklist="js-check-x"></label></th>
  25 + <th width="50">{:lang('SORT')}</th>
  26 + <th width="50">ID</th>
  27 + <th>{:lang('NAME')}</th>
  28 + <th>链接地址</th>
  29 + <th width="50">{:lang('STATUS')}</th>
  30 + <th width="120">{:lang('ACTIONS')}</th>
  31 + </tr>
  32 + </thead>
  33 + <tbody>
  34 + <foreach name="links" item="vo">
  35 + <tr>
  36 + <td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]"
  37 + value="{$vo.id}"></td>
  38 + <td><input name='list_orders[{$vo.id}]' class="input input-order mr5" type='text' size='3'
  39 + value='{$vo.list_order}'></td>
  40 + <td>{$vo.id}</td>
  41 + <td>{$vo.name}</td>
  42 + <td><a href="{$vo.url}" target="_blank">{$vo.url}</a></td>
  43 + <td>{$status[$vo['status']]}</td>
  44 + <td>
  45 + <a href="{:url('link/edit',array('id'=>$vo['id']))}">{:lang('EDIT')}</a>
  46 + <a href="{:url('link/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">
  47 + {:lang('DELETE')}
  48 + </a>
  49 + </td>
  50 + </tr>
  51 + </foreach>
  52 + </tbody>
  53 + <tfoot>
  54 + <tr>
  55 + <th width="16">
  56 + <label>
  57 + <input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x">
  58 + </label>
  59 + </th>
  60 + <th width="50">{:lang('SORT')}</th>
  61 + <th width="50">ID</th>
  62 + <th>{:lang('NAME')}</th>
  63 + <th>链接地址</th>
  64 + <th width="50">{:lang('STATUS')}</th>
  65 + <th width="120">{:lang('ACTIONS')}</th>
  66 + </tr>
  67 + </tfoot>
  68 + </table>
  69 + <div class="table-actions">
  70 + <button class="btn btn-primary btn-sm js-ajax-submit" type="submit">{:lang('SORT')}</button>
  71 + <button class="btn btn-primary btn-sm js-ajax-submit" type="submit"
  72 + data-action="{:url('link/toggle',array('display'=>1))}" data-subcheck="true">{:lang('DISPLAY')}
  73 + </button>
  74 + <button class="btn btn-primary btn-sm js-ajax-submit" type="submit"
  75 + data-action="{:url('link/toggle',array('hide'=>1))}" data-subcheck="true">{:lang('HIDE')}
  76 + </button>
  77 + </div>
  78 + </form>
  79 +</div>
  80 +<script src="__STATIC__/js/admin.js"></script>
  81 +</body>
  82 +</html>
  1 +<!DOCTYPE html>
  2 +<html lang="en" >
  3 +<head>
  4 + <meta content="webkit" name="renderer" />
  5 + <meta charset="utf-8">
  6 + <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7 + <meta name="robots" content="none" />
  8 + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimal-ui">
  9 +
  10 + <meta name="description" content="admin login">
  11 + <title>后台管理系统 - QnbugBMS</title>
  12 + <link rel="stylesheet" href="__STATIC__/css/voyagerapp.css">
  13 + <style>
  14 + body {
  15 + background-image:url('__STATIC__/images/bg.jpg');
  16 + background-color: #FFFFFF;
  17 + }
  18 + body.login .login-sidebar {
  19 + border-top:5px solid #22A7F0;
  20 + }
  21 + @media (max-width: 767px) {
  22 + body.login .login-sidebar {
  23 + border-top:0px !important;
  24 + border-left:5px solid #22A7F0;
  25 + }
  26 + }
  27 + body.login .form-group-default.focused{
  28 + border-color:#22A7F0;
  29 + }
  30 + .login-button, .bar:before, .bar:after{
  31 + background:#22A7F0;
  32 + }
  33 + </style>
  34 +
  35 + <!--<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700" rel="stylesheet">-->
  36 +</head>
  37 +<body class="login">
  38 +<div class="container-fluid">
  39 + <div class="row">
  40 + <div class="faded-bg animated"></div>
  41 + <div class="hidden-xs col-sm-7 col-md-8">
  42 + <div class="clearfix">
  43 + <div class="col-sm-12 col-md-10 col-md-offset-2">
  44 + <div class="logo-title-container">
  45 + <img class="img-responsive pull-left flip logo hidden-xs animated fadeIn" src="__STATIC__/images/logo-icon-light.png" alt="Logo Icon">
  46 + <div class="copy animated fadeIn">
  47 + <h1>Qnbug BMS</h1>
  48 + <p>欢迎使用Qnbug BMS-Bussiness Management System ,后台管理系统</p>
  49 + </div>
  50 + </div> <!-- .logo-title-container -->
  51 + </div>
  52 + </div>
  53 + </div>
  54 +
  55 + <div class="col-xs-12 col-sm-5 col-md-4 login-sidebar">
  56 +
  57 + <div class="login-container">
  58 +
  59 + <p>登录系统:</p>
  60 +
  61 + <form class="js-ajax-form" action="{:url('public/doLogin')}" method="POST">
  62 + <div class="form-group form-group-default" id="emailGroup">
  63 + <label>用户名</label>
  64 + <div class="controls">
  65 + <input type="text" name="username" id="email" value="" placeholder="请输入用户名" class="form-control" required>
  66 + </div>
  67 + </div>
  68 +
  69 + <div class="form-group form-group-default" id="passwordGroup">
  70 + <label>密码</label>
  71 + <div class="controls">
  72 + <input type="password" name="password" placeholder="请输入密码" class="form-control" required>
  73 + </div>
  74 + </div>
  75 +
  76 + <button class="btn btn-block login-button js-ajax-submit" type="submit" data-loadingmsg="正在登录中...">
  77 + 登录
  78 + </button>
  79 + </form>
  80 +
  81 + <div style="clear:both"></div>
  82 +
  83 +
  84 + </div> <!-- .login-container -->
  85 +
  86 + </div> <!-- .login-sidebar -->
  87 + </div> <!-- .row -->
  88 +</div> <!-- .container-fluid -->
  89 +<script>
  90 + var username = document.querySelector('[name="username"]');
  91 + var password = document.querySelector('[name="password"]');
  92 + username.focus();
  93 + document.getElementById('emailGroup').classList.add("focused");
  94 +
  95 + // Focus events for email and password fields
  96 + username.addEventListener('focusin', function(e){
  97 + document.getElementById('emailGroup').classList.add("focused");
  98 + });
  99 + username.addEventListener('focusout', function(e){
  100 + document.getElementById('emailGroup').classList.remove("focused");
  101 + });
  102 +
  103 + password.addEventListener('focusin', function(e){
  104 + document.getElementById('passwordGroup').classList.add("focused");
  105 + });
  106 + password.addEventListener('focusout', function(e){
  107 + document.getElementById('passwordGroup').classList.remove("focused");
  108 + });
  109 +
  110 +</script>
  111 +<script type="text/javascript">
  112 + //全局变量
  113 + var GV = {
  114 + ROOT: "__ROOT__/",
  115 + WEB_ROOT: "__WEB_ROOT__/",
  116 + JS_ROOT: "static/js/",
  117 + APP: ''/*当前应用名*/
  118 + };
  119 +</script>
  120 +<script src="__TMPL__/public/assets/js/jquery-1.10.2.min.js"></script>
  121 +<script src="__STATIC__/js/wind.js"></script>
  122 +<script src="__STATIC__/js/admin.js"></script>
  123 +</body>
  124 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="{:url('mailer/index')}">{:lang('ADMIN_MAILER_INDEX')}</a></li>
  7 + <li><a href="{:url('mailer/template')}?template_key=verification_code">数字验证码邮件模板</a></li>
  8 + </ul>
  9 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('Admin/mailer/indexPost')}">
  10 + <div class="form-group">
  11 + <label for="input-from_name" class="col-sm-2 control-label">
  12 + <span class="form-required">*</span>
  13 + {:lang('SENDER_NAME')}
  14 + <a href="http://www.thinkcmf.com/faq.html?url=https://www.kancloud.cn/thinkcmf/faq/493502"
  15 + title="查看帮助手册"
  16 + data-toggle="tooltip"
  17 + target="_blank"><i class="fa fa-question-circle"></i></a>
  18 + </label>
  19 + <div class="col-md-6 col-sm-10">
  20 + <input type="text" class="form-control" id="input-from_name" name="from_name"
  21 + value="{$from_name|default=''}">
  22 + </div>
  23 + </div>
  24 + <div class="form-group">
  25 + <label for="input-from" class="col-sm-2 control-label">
  26 + <span class="form-required">*</span>{:lang('SENDER_EMAIL_ADDRESS')}
  27 + </label>
  28 + <div class="col-md-6 col-sm-10">
  29 + <input type="text" class="form-control" id="input-from" name="from" value="{$from|default=''}">
  30 + </div>
  31 + </div>
  32 + <div class="form-group">
  33 + <label for="input-host" class="col-sm-2 control-label">
  34 + <span class="form-required">*</span>{:lang('SENDER_SMTP_SERVER')}
  35 + </label>
  36 + <div class="col-md-6 col-sm-10">
  37 + <input type="text" class="form-control" id="input-host" name="host" value="{$host|default=''}">
  38 + </div>
  39 + </div>
  40 + <div class="form-group">
  41 + <label for="js-smtpsecure" class="col-sm-2 control-label">
  42 + <span class="form-required">*</span>连接方式
  43 + </label>
  44 + <div class="col-md-6 col-sm-10">
  45 + <select name="smtp_secure" id="js-smtpsecure" class="form-control">
  46 + <option value="">默认</option>
  47 + <option value="ssl">ssl</option>
  48 + <option value="tls">tls</option>
  49 + </select>
  50 + </div>
  51 + </div>
  52 + <div class="form-group">
  53 + <label for="input-port" class="col-sm-2 control-label">
  54 + <span class="form-required">*</span>SMTP服务器端口
  55 + </label>
  56 + <div class="col-md-6 col-sm-10">
  57 + <input type="text" class="form-control" id="input-port" name="port" value="{$port|default=''}"
  58 + placeholder="默认为25">
  59 + </div>
  60 + </div>
  61 + <div class="form-group">
  62 + <label for="input-login_name" class="col-sm-2 control-label">
  63 + <span class="form-required">*</span>{:lang('SMTP_MAIL_ADDRESS')}
  64 + </label>
  65 + <div class="col-md-6 col-sm-10">
  66 + <input type="text" class="form-control" id="input-login_name" name="username"
  67 + value="{$username|default=''}">
  68 + </div>
  69 + </div>
  70 + <div class="form-group">
  71 + <label for="input-password" class="col-sm-2 control-label">
  72 + <span class="form-required">*</span>{:lang('SMTP_MAIL_PASSWORD')}
  73 + </label>
  74 + <div class="col-md-6 col-sm-10">
  75 + <input type="password" class="form-control" id="input-password" name="password"
  76 + value="{$password|default=''}">
  77 + </div>
  78 + </div>
  79 + <div class="form-group">
  80 + <div class="col-sm-offset-2 col-sm-10">
  81 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('SAVE')}</button>
  82 + <a class="btn btn-warning"
  83 + href="javascript:parent.openIframeDialog('{:url('mailer/test')}','发送测试邮件',{width:'600px',height:'400px'});">测试邮件</a>
  84 + </div>
  85 + </div>
  86 + </form>
  87 +</div>
  88 +<script src="__STATIC__/js/admin.js"></script>
  89 +<script>
  90 + $(function () {
  91 + $('#js-smtpsecure').val("{$smtp_secure|default=''}");
  92 + });
  93 +</script>
  94 +</body>
  95 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('mailer/index')}">{:lang('ADMIN_MAILER_INDEX')}</a></li>
  7 + <li class="active"><a href="#" data-toggle="tab">数字验证码邮件模板</a></li>
  8 + </ul>
  9 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" role="form"
  10 + action="{:url('admin/mailer/templatePost')}">
  11 + <div class="form-group">
  12 + <label for="input-title" class="col-sm-2 control-label"><span class="form-required">*</span>{:lang('EMAIL_SUBJECT')}</label>
  13 + <div class="col-md-6 col-sm-10">
  14 + <input type="text" class="form-control" name="subject" id="input-title" value="{$subject|default=''}">
  15 + </div>
  16 + </div>
  17 + <div class="form-group">
  18 + <label for="input-title" class="col-sm-2 control-label"><span class="form-required">*</span>{:lang('EMAIL_TEMPLATE')}</label>
  19 + <div class="col-md-6 col-sm-12">
  20 + <script type="text/plain" id="content" name="template">{$template|default=""|htmlspecialchars_decode}</script>
  21 + <literal><span style="color: #ffb752;">请用{$code}代替数字验证码<!--,{$username}代替用户名--></span></literal>
  22 + </div>
  23 + </div>
  24 + <div class="form-group">
  25 + <div class="col-sm-offset-2 col-sm-10">
  26 + <input type="hidden" name="template_key" value="verification_code">
  27 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('SAVE')}</button>
  28 + </div>
  29 + </div>
  30 + </form>
  31 +</div>
  32 +<script src="__STATIC__/js/admin.js"></script>
  33 +<script type="text/javascript">
  34 + //编辑器路径定义
  35 + var editorURL = GV.WEB_ROOT;
  36 +</script>
  37 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
  38 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
  39 +<script type="text/javascript">
  40 + var editorcontent = new baidu.editor.ui.Editor();
  41 + editorcontent.render('content');
  42 +</script>
  43 +</body>
  44 +</html>
  1 +<include file="public@header" />
  2 +</head>
  3 +<body>
  4 + <div class="wrap">
  5 + <form method="post" class="form-horizontal js-ajax-form" action="{:url('mailer/test')}">
  6 + <div class="form-group">
  7 + <label for="input-to" class="col-sm-2 control-label"><span class="form-required">*</span>收件箱</label>
  8 + <div class="col-md-6 col-sm-10">
  9 + <input type="text" class="form-control" id="input-to" name="to">
  10 + </div>
  11 + </div>
  12 + <div class="form-group">
  13 + <label for="input-subject" class="col-sm-2 control-label"><span class="form-required">*</span>标题</label>
  14 + <div class="col-md-6 col-sm-10">
  15 + <input type="text" class="form-control" id="input-subject" name="subject">
  16 + </div>
  17 + </div>
  18 + <div class="form-group">
  19 + <label for="input-content" class="col-sm-2 control-label"><span class="form-required">*</span>内容</label>
  20 + <div class="col-md-6 col-sm-10">
  21 + <textarea class="form-control" id="input-content" name="content"></textarea>
  22 + </div>
  23 + </div>
  24 + <div class="form-group">
  25 + <div class="col-sm-offset-2 col-sm-10">
  26 + <button type="submit" class="btn btn-primary js-ajax-submit">发送</button>
  27 + </div>
  28 + </div>
  29 + </form>
  30 + </div>
  31 + <script src="__STATIC__/js/admin.js"></script>
  32 +</body>
  33 +</html>
  1 +<php>function _get_system_widget($name){</php>
  2 +<switch name="name">
  3 + <case value="CmfHub">
  4 + <div class="panel panel-default">
  5 + <div class="panel-heading">
  6 + <h3 class="panel-title">联系我们</h3>
  7 + </div>
  8 + <div class="panel-body home-info">
  9 + <ul class="list-unstyled">
  10 + <li>
  11 + <em>QnbugBMS官网</em> <span><a href="http://www.qnbug.cn" target="_blank">www.qnbug.cn</a></span>
  12 + </li>
  13 + <li><em>联系邮箱</em> <span>root@qnbug.cn</span></li>
  14 + </ul>
  15 + </div>
  16 + </div>
  17 + </case>
  18 +</switch>
  19 +<php>}</php>
  20 +
  21 +
  22 +
  23 +<include file="public@header"/>
  24 +<style>
  25 + .home-info li em {
  26 + float: left;
  27 + width: 120px;
  28 + font-style: normal;
  29 + font-weight: bold;
  30 + }
  31 +
  32 + .home-info ul {
  33 + padding: 0;
  34 + margin: 0;
  35 + }
  36 +
  37 + .panel {
  38 + margin-bottom: 0;
  39 + }
  40 +
  41 + .grid-sizer {
  42 + width: 10%;
  43 + }
  44 +
  45 + .grid-item {
  46 + margin-bottom: 5px;
  47 + padding: 5px;
  48 + }
  49 +
  50 + .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 {
  51 + padding-left: 5px;
  52 + padding-right: 5px;
  53 + float: none;
  54 + }
  55 +
  56 +</style>
  57 +<hook name="admin_before_head_end"/>
  58 +</head>
  59 +<body>
  60 +<div class="wrap">
  61 + <!--<empty name="has_smtp_setting">-->
  62 + <!--<div class="grid-item col-md-12">-->
  63 + <!--<div class="alert alert-danger alert-dismissible fade in" role="alert" style="margin-bottom: 0;">-->
  64 + <!--<button type="button" class="close" data-dismiss="alert" aria-label="Close">-->
  65 + <!--<span aria-hidden="true">&times;</span>-->
  66 + <!--</button>-->
  67 + <!--<strong>提示!</strong> 邮箱配置未完成,无法进行邮件发送!-->
  68 + <!--<a href="#" data-dismiss="alert" aria-label="Close"-->
  69 + <!--onclick="parent.openapp('{:url('Mailer/index')}','admin_mailer_index','邮箱配置');">现在设置</a>-->
  70 + <!--</div>-->
  71 + <!--</div>-->
  72 + <!--</empty>-->
  73 +
  74 + <if condition="!extension_loaded('fileinfo')">
  75 + <div class="grid-item col-md-12">
  76 + <div class="alert alert-danger alert-dismissible fade in" role="alert" style="margin-bottom: 0;">
  77 + <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  78 + <span aria-hidden="true">&times;</span>
  79 + </button>
  80 + <strong>提示!</strong> php_fileinfo扩展没有开启,无法正常上传文件!
  81 + </div>
  82 + </div>
  83 + </if>
  84 +
  85 + <div class="grid-item col-md-12" id="thinkcmf-notices-grid" style="display:block;">
  86 + <div class="dashboard-box">
  87 + <div class="panel panel-default">
  88 + <div class="panel-heading">
  89 + <h3 class="panel-title">系统通知</h3>
  90 + </div>
  91 + <div class="panel-body home-info">
  92 + <ul id="thinkcmf-notices" class="list-unstyled">
  93 + <li>
  94 + <!--<img src="__TMPL__/public/assets/images/loading.gif" style="vertical-align: middle;"/>-->
  95 + <span style="display: inline-block; vertical-align: middle;">暂无通知</span>
  96 + </li>
  97 + </ul>
  98 + </div>
  99 + </div>
  100 + </div>
  101 + </div>
  102 +
  103 + <div class="home-grid">
  104 + <!-- width of .grid-sizer used for columnWidth -->
  105 + <div class="grid-sizer"></div>
  106 + <foreach name="dashboard_widgets" item="vo">
  107 + <if condition="$vo.is_system">
  108 + <div class="grid-item col-md-12" data-system="1" data-widget="{$vo.name}">
  109 + <div class="dashboard-box">{:_get_system_widget($vo.name)}</div>
  110 + </div>
  111 + <else/>
  112 + <present name="dashboard_widget_plugins[$vo['name']]">
  113 + <div class="grid-item col-md-{$dashboard_widget_plugins[$vo['name']]['width']}" data-system="0"
  114 + data-widget="{$vo.name}">
  115 + <div class="dashboard-box">{$dashboard_widget_plugins[$vo.name]['view']}</div>
  116 + </div>
  117 + </present>
  118 +
  119 + </if>
  120 +
  121 + </foreach>
  122 + </div>
  123 +</div>
  124 +<script src="__STATIC__/js/admin.js"></script>
  125 +<php>
  126 + $lang_set=defined('LANG_SET')?LANG_SET:'';
  127 + $thinkcmf_version=defined('THINKCMF_VERSION')?THINKCMF_VERSION:'';
  128 +</php>
  129 +<script>
  130 +
  131 + Wind.css('dragula');
  132 + Wind.use('masonry', 'imagesloaded', 'dragula', function () {
  133 + var $homeGrid = $('.home-grid').masonry({
  134 + // set itemSelector so .grid-sizer is not used in layout
  135 + itemSelector: '.grid-item',
  136 + // use element for option
  137 + columnWidth: '.grid-sizer',
  138 + percentPosition: true,
  139 + horizontalOrder: false,
  140 + transitionDuration: 0
  141 + });
  142 +
  143 + $homeGrid.masonry('on', 'layoutComplete', function (event, laidOutItems) {
  144 + });
  145 +
  146 +
  147 + $homeGrid.masonry();
  148 +
  149 + var containers = [];
  150 + $('.home-grid .grid-item').each(function () {
  151 + containers.push(this);
  152 + });
  153 + dragula(containers, {
  154 + isContainer: function (el) {
  155 + return false; // only elements in drake.containers will be taken into account
  156 + },
  157 + moves: function (el, source, handle, sibling) {
  158 + return true; // elements are always draggable by default
  159 + },
  160 + accepts: function (el, target, source, sibling) {
  161 + return true; // elements can be dropped in any of the `containers` by default
  162 + },
  163 + invalid: function (el, handle) {
  164 + return false; // don't prevent any drags from initiating by default
  165 + },
  166 + direction: 'vertical', // Y axis is considered when determining where an element would be dropped
  167 + copy: false, // elements are moved by default, not copied
  168 + copySortSource: false, // elements in copy-source containers can be reordered
  169 + revertOnSpill: false, // spilling will put the element back where it was dragged from, if this is true
  170 + removeOnSpill: false, // spilling will `.remove` the element, if this is true
  171 + mirrorContainer: document.body, // set the element that gets mirror elements appended
  172 + ignoreInputTextSelection: true // allows users to select input text, see details below
  173 + }).on('drop', function (el, target, source, sibling) {
  174 + var $target = $(target);
  175 + var targetClasses = $target.attr('class');
  176 + var targetDataWidget = $target.data('widget');
  177 + var targetDataSystem = $target.data('system');
  178 + var $source = $(source);
  179 + var sourceClasses = $source.attr('class');
  180 + var sourceDataWidget = $source.data('widget');
  181 + var sourceDataSystem = $source.data('system');
  182 + $(source).append($(target).find('.dashboard-box').not('.gu-transit'));
  183 + $(target).append(el);
  184 + $target.attr('class', sourceClasses);
  185 + $target.data('widget', sourceDataWidget);
  186 + $target.data('system', sourceDataSystem);
  187 +
  188 + $source.attr('class', targetClasses);
  189 + $source.data('widget', targetDataWidget);
  190 + $source.data('system', targetDataSystem);
  191 + $homeGrid.masonry();
  192 +
  193 + _widgetSort();
  194 + }).on('shadow', function (el, container, source) {
  195 + $homeGrid.masonry();
  196 + });
  197 +
  198 +
  199 + });
  200 +
  201 + function _widgetSort() {
  202 +
  203 + var widgets = [];
  204 + $('.home-grid .grid-item').each(function () {
  205 + var $this = $(this);
  206 +
  207 + widgets.push({
  208 + name: $this.data('widget'),
  209 + is_system: $this.data('system')
  210 + });
  211 + });
  212 +
  213 + $.ajax({
  214 + url: "{:url('main/dashboardWidget')}",
  215 + type: 'post',
  216 + dataType: 'json',
  217 + data: {widgets: widgets},
  218 + success: function (data) {
  219 +
  220 + },
  221 + error: function () {
  222 +
  223 + },
  224 + complete: function () {
  225 +
  226 + }
  227 + });
  228 + }
  229 +
  230 +
  231 +</script>
  232 +<hook name="admin_before_body_end"/>
  233 +</body>
  234 +</html>
  1 +<include file="public@header" />
  2 +</head>
  3 +<body>
  4 + <div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('Menu/index')}">后台菜单</a></li>
  7 + <li class="active"><a href="{:url('Menu/add')}">添加菜单</a></li>
  8 + <li><a href="{:url('Menu/lists')}">所有菜单</a></li>
  9 + </ul>
  10 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('menu/addPost')}">
  11 + <div class="form-group">
  12 + <label for="input-parent_id" class="col-sm-2 control-label"><span class="form-required">*</span>上级</label>
  13 + <div class="col-md-6 col-sm-10">
  14 + <select class="form-control" name="parent_id" id="input-parent_id">
  15 + <option value="0">作为一级菜单</option>{$select_category}
  16 + </select>
  17 + </div>
  18 + </div>
  19 + <div class="form-group">
  20 + <label for="input-name" class="col-sm-2 control-label"><span class="form-required">*</span>名称</label>
  21 + <div class="col-md-6 col-sm-10">
  22 + <input type="text" class="form-control" id="input-name" name="name">
  23 + </div>
  24 + </div>
  25 + <div class="form-group">
  26 + <label for="input-app" class="col-sm-2 control-label"><span class="form-required">*</span>应用</label>
  27 + <div class="col-md-6 col-sm-10">
  28 + <input type="text" class="form-control" id="input-app" name="app">
  29 + </div>
  30 + </div>
  31 + <div class="form-group">
  32 + <label for="input-controller" class="col-sm-2 control-label"><span class="form-required">*</span>控制器</label>
  33 + <div class="col-md-6 col-sm-10">
  34 + <input type="text" class="form-control" id="input-controller" name="controller">
  35 + </div>
  36 + </div>
  37 + <div class="form-group">
  38 + <label for="input-action" class="col-sm-2 control-label"><span class="form-required">*</span>方法</label>
  39 + <div class="col-md-6 col-sm-10">
  40 + <input type="text" class="form-control" id="input-action" name="action">
  41 + </div>
  42 + </div>
  43 + <div class="form-group">
  44 + <label for="input-param" class="col-sm-2 control-label">参数</label>
  45 + <div class="col-md-6 col-sm-10">
  46 + <input type="text" class="form-control" id="input-param" name="param">
  47 + <p class="help-block">例:id=3&amp;p=3</p>
  48 + </div>
  49 + </div>
  50 + <div class="form-group">
  51 + <label for="input-icon" class="col-sm-2 control-label">图标</label>
  52 + <div class="col-md-6 col-sm-10">
  53 + <input type="text" class="form-control" id="input-icon" name="icon">
  54 + <p class="help-block">
  55 + <a href="http://www.thinkcmf.com/font/font_awesome/icons.html" target="_blank">选择图标</a> 不带前缀fa-,如fa-user => user
  56 + </p>
  57 + </div>
  58 + </div>
  59 + <div class="form-group">
  60 + <label for="input-remark" class="col-sm-2 control-label">备注</label>
  61 + <div class="col-md-6 col-sm-10">
  62 + <textarea class="form-control" id="input-remark" name="remark"></textarea>
  63 + </div>
  64 + </div>
  65 + <div class="form-group">
  66 + <label for="input-status" class="col-sm-2 control-label">状态</label>
  67 + <div class="col-md-6 col-sm-10" id="input-status">
  68 + <select class="form-control" name="status">
  69 + <option value="1">在左侧菜单显示</option>
  70 + <option value="0">在左侧菜单隐藏</option>
  71 + </select>
  72 + </div>
  73 + </div>
  74 + <div class="form-group">
  75 + <label for="input-type" class="col-sm-2 control-label">类型</label>
  76 + <div class="col-md-6 col-sm-10">
  77 + <select class="form-control" name="type" id="input-type">
  78 + <option value="1">有界面可访问菜单</option>
  79 + <option value="2">无界面可访问菜单</option>
  80 + <option value="0">只作为菜单</option>
  81 + </select>
  82 + </div>
  83 + </div>
  84 + <div class="form-group">
  85 + <div class="col-sm-offset-2 col-sm-10">
  86 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
  87 + </div>
  88 + </div>
  89 + </form>
  90 + </div>
  91 + <script src="__STATIC__/js/admin.js"></script>
  92 +</body>
  93 +</html>
  1 +<include file="public@header" />
  2 +</head>
  3 +<body>
  4 + <div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('Menu/index')}">后台菜单</a></li>
  7 + <li><a href="{:url('Menu/add')}">添加菜单</a></li>
  8 + <li><a href="{:url('Menu/lists')}">所有菜单</a></li>
  9 + <li class="active"><a>编辑菜单</a></li>
  10 + </ul>
  11 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('menu/editPost')}">
  12 + <div class="form-group">
  13 + <label for="input-parent_id" class="col-sm-2 control-label"><span class="form-required">*</span>上级</label>
  14 + <div class="col-md-6 col-sm-10">
  15 + <select class="form-control" name="parent_id" id="input-parent_id">
  16 + <option value="0">作为一级菜单</option>{$select_category}
  17 + </select>
  18 + </div>
  19 + </div>
  20 + <div class="form-group">
  21 + <label for="input-name" class="col-sm-2 control-label"><span class="form-required">*</span>名称</label>
  22 + <div class="col-md-6 col-sm-10">
  23 + <input type="text" class="form-control" id="input-name" name="name" value="{$data.name}">
  24 + </div>
  25 + </div>
  26 + <div class="form-group">
  27 + <label for="input-app" class="col-sm-2 control-label"><span class="form-required">*</span>应用</label>
  28 + <div class="col-md-6 col-sm-10">
  29 + <input type="text" class="form-control" id="input-app" name="app" value="{$data.app}">
  30 + </div>
  31 + </div>
  32 + <div class="form-group">
  33 + <label for="input-controller" class="col-sm-2 control-label"><span class="form-required">*</span>控制器</label>
  34 + <div class="col-md-6 col-sm-10">
  35 + <input type="text" class="form-control" id="input-controller" name="controller" value="{$data.controller}">
  36 + </div>
  37 + </div>
  38 + <div class="form-group">
  39 + <label for="input-action" class="col-sm-2 control-label"><span class="form-required">*</span>方法</label>
  40 + <div class="col-md-6 col-sm-10">
  41 + <input type="text" class="form-control" id="input-action" name="action" value="{$data.action}">
  42 + </div>
  43 + </div>
  44 + <div class="form-group">
  45 + <label for="input-param" class="col-sm-2 control-label">参数</label>
  46 + <div class="col-md-6 col-sm-10">
  47 + <input type="text" class="form-control" id="input-param" name="param" value="{$data.param}">
  48 + <p class="help-block">例:id=3&amp;p=3</p>
  49 + </div>
  50 + </div>
  51 + <div class="form-group">
  52 + <label for="input-icon" class="col-sm-2 control-label">图标</label>
  53 + <div class="col-md-6 col-sm-10">
  54 + <input type="text" class="form-control" id="input-icon" name="icon" value="{$data.icon}">
  55 + <p class="help-block">
  56 + <a href="http://www.thinkcmf.com/font/font_awesome/icons.html" target="_blank">选择图标</a> 不带前缀fa-,如fa-user => user
  57 + </p>
  58 + </div>
  59 + </div>
  60 + <div class="form-group">
  61 + <label for="input-remark" class="col-sm-2 control-label">备注</label>
  62 + <div class="col-md-6 col-sm-10">
  63 + <textarea class="form-control" id="input-remark" name="remark">{$data.remark}</textarea>
  64 + </div>
  65 + </div>
  66 + <div class="form-group">
  67 + <label for="input-status" class="col-sm-2 control-label">状态</label>
  68 + <div class="col-md-6 col-sm-10" id="input-status">
  69 + <select class="form-control" name="status">
  70 + <option value="1">在左侧菜单显示</option>
  71 + <php>$status_selected=empty($data['status'])?"selected":"";</php>
  72 + <option value="0" {$status_selected}>在左侧菜单隐藏</option>
  73 + </select>
  74 + </div>
  75 + </div>
  76 + <div class="form-group">
  77 + <label for="input-type" class="col-sm-2 control-label">类型</label>
  78 + <div class="col-md-6 col-sm-10">
  79 + <select class="form-control" name="type" id="input-type">
  80 + <option value="1">有界面可访问菜单</option>
  81 + <php>$type2_selected=$data['type']==2?"selected":"";</php>
  82 + <option value="2" {$type2_selected}>无界面可访问菜单</option>
  83 + <php>$type_selected=$data['type']==0?"selected":"";</php>
  84 + <option value="0" {$type_selected}>只作为菜单</option>
  85 + </select>
  86 + </div>
  87 + </div>
  88 + <div class="form-group">
  89 + <div class="col-sm-offset-2 col-sm-10">
  90 + <input type="hidden" name="id" value="{$data.id}" />
  91 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('SAVE')}</button>
  92 + <a class="btn btn-default" href="{:url('menu/index')}">{:lang('BACK')}</a>
  93 + </div>
  94 + </div>
  95 + </form>
  96 + </div>
  97 + <script src="__STATIC__/js/admin.js"></script>
  98 +</body>
  99 +</html>
  1 +<include file="public@header" />
  2 +</head>
  3 +<body>
  4 + <div class="wrap">
  5 + <div id="error_tips">
  6 + <h2>应用{$app}菜单导入成功!</h2>
  7 + <div class="error_cont">
  8 + <ul>
  9 + <if condition="!empty($new_menus)">
  10 + <foreach name="new_menus" item="vo">
  11 + <li>{$vo}</li>
  12 + </foreach>
  13 + <else />
  14 + <li>应用{$app}没有新菜单导入!</li>
  15 + </if>
  16 + </ul>
  17 + <if condition="!empty($next_app)">
  18 + <script>
  19 + setTimeout(function() {
  20 + location.href = "{:url('admin/menu/getactions',array('app'=>$next_app))}";
  21 + }, 1000);
  22 + </script>
  23 + <div class="error_return">
  24 + <a href="{:url('admin/menu/getActions',array('app'=>$next_app))}" class="btn btn-primary">下一个应用</a>
  25 + <a href="{:url('admin/menu/index')}" class="btn btn-default" style="margin-left: 10px;">返回</a>
  26 + </div>
  27 + <else />
  28 + <div>全部导入成功!</div>
  29 + <div class="error_return">
  30 + <a href="{:url('menu/index')}" class="btn btn-default">返回</a>
  31 + </div>
  32 + </if>
  33 + </div>
  34 + </div>
  35 + </div>
  36 + <script src="__STATIC__/js/admin.js"></script>
  37 +</body>
  38 +</html>
  1 +<include file="public@header" />
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="{:url('Menu/index')}">后台菜单</a></li>
  7 + <li><a href="{:url('Menu/add')}">添加菜单</a></li>
  8 + <li><a href="{:url('Menu/lists')}">所有菜单</a></li>
  9 + </ul>
  10 + <form class="js-ajax-form" action="{:url('Menu/listOrder')}" method="post">
  11 + <div class="table-actions">
  12 + <button class="btn btn-primary btn-sm js-ajax-submit" type="submit">{:lang('SORT')}</button>
  13 + </div>
  14 + <table class="table table-hover table-bordered table-list" id="menus-table">
  15 + <thead>
  16 + <tr>
  17 + <th width="80">{:lang('SORT')}</th>
  18 + <th width="50">ID</th>
  19 + <th>{:lang('NAME')}</th>
  20 + <th>操作</th>
  21 + <th width="80">{:lang('STATUS')}</th>
  22 + <th width="180">{:lang('ACTIONS')}</th>
  23 + </tr>
  24 + </thead>
  25 + <tbody>
  26 + {$category}
  27 + </tbody>
  28 + <tfoot>
  29 + <tr>
  30 + <th width="80">{:lang('SORT')}</th>
  31 + <th width="50">ID</th>
  32 + <th>{:lang('NAME')}</th>
  33 + <th>操作</th>
  34 + <th width="80">{:lang('STATUS')}</th>
  35 + <th width="180">{:lang('ACTIONS')}</th>
  36 + </tr>
  37 + </tfoot>
  38 + </table>
  39 + <div class="table-actions">
  40 + <button class="btn btn-primary btn-sm js-ajax-submit" type="submit">{:lang('SORT')}</button>
  41 + </div>
  42 + </form>
  43 +</div>
  44 +<script src="__STATIC__/js/admin.js"></script>
  45 +<script>
  46 + $(document).ready(function() {
  47 + Wind.css('treeTable');
  48 + Wind.use('treeTable', function() {
  49 + $("#menus-table").treeTable({
  50 + indent : 20
  51 + });
  52 + });
  53 + });
  54 +</script>
  55 +</body>
  56 +</html>
  1 +<include file="public@header" />
  2 +</head>
  3 +<body>
  4 + <div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('Menu/index')}">后台菜单</a></li>
  7 + <li><a href="{:url('Menu/add')}">添加菜单</a></li>
  8 + <li class="active"><a href="{:url('Menu/lists')}">所有菜单</a></li>
  9 + </ul>
  10 + <form class="form-horizontal js-ajax-form" action="{:url('menu/listorders')}" method="post">
  11 + <div class="table-actions">
  12 + <a class="btn btn-primary btn-sm js-ajax-dialog-btn" href="{:url('menu/exportMenuLang')}" data-msg="您确定生成菜单多语言包吗?请确保应用目录下lang目录可写!">生成菜单多语言包</a>
  13 + <a class="btn btn-warning btn-sm" href="{:url('menu/getactions')}">导入新菜单</a>
  14 + </div>
  15 + <div class="alert alert-warning" style="margin: 0 0 5px 0;">
  16 + 请在开发人员指导下进行以上操作!
  17 + </div>
  18 + <table class="table table-hover table-bordered table-list">
  19 + <thead>
  20 + <tr>
  21 + <th width="50">ID</th>
  22 + <th>菜单英文名称</th>
  23 + <th width="50">状态</th>
  24 + <th width="90">管理操作</th>
  25 + </tr>
  26 + </thead>
  27 + <foreach name="menus" item="vo">
  28 + <tr>
  29 + <td>{$vo.id}</td>
  30 + <td>{$vo.name}:{$vo.app}/{$vo.controller}/{$vo.action}</td>
  31 + <td>
  32 + <if condition="$vo['status'] eq 1">
  33 + 显示
  34 + <else />
  35 + 隐藏
  36 + </if>
  37 + </td>
  38 + <td>
  39 + <a href="{:url('menu/edit',array('id'=>$vo['id']))}">编辑</a>
  40 + <a class="js-ajax-delete" href="{:url('menu/delete',array('id'=>$vo['id']))}">删除</a>
  41 + </td>
  42 + </tr>
  43 + </foreach>
  44 + <tfoot>
  45 + <tr>
  46 + <th width="50">ID</th>
  47 + <th>菜单英文名称</th>
  48 + <th width="40">状态</th>
  49 + <th width="80">管理操作</th>
  50 + </tr>
  51 + </tfoot>
  52 + </table>
  53 + </form>
  54 + </div>
  55 + <script src="__STATIC__/js/admin.js"></script>
  56 +</body>
  57 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('nav/index')}">{:lang('ADMIN_NAV_INDEX')}</a></li>
  7 + <li class="active"><a href="{:url('nav/add')}">{:lang('ADMIN_NAV_ADD')}</a></li>
  8 + <!--<li><a href="{:url('nav/edit')}" >{:lang('ADMIN_NAV_EDIT')}</a></li>-->
  9 + </ul>
  10 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('nav/addPost')}">
  11 +
  12 + <div class="form-group">
  13 + <label class="col-sm-2 control-label"><span class="form-required">*</span>名称:</label>
  14 + <div class="col-md-6 col-sm-10">
  15 + <input type="text" class="form-control" name="name" value="">
  16 + </div>
  17 + </div>
  18 + <div class="form-group">
  19 + <label class="col-sm-2 control-label">备注:</label>
  20 + <div class="col-md-6 col-sm-10">
  21 + <textarea class="form-control" name="remark" rows="5" cols="57"></textarea>
  22 + </div>
  23 + </div>
  24 + <div class="form-group">
  25 + <label class="col-sm-2 control-label">主菜单:</label>
  26 + <div class="col-md-6 col-sm-10">
  27 + <div class="checkbox">
  28 + <label>
  29 + <input type="checkbox" name="is_main" value="1" >
  30 + </label>
  31 + </div>
  32 +
  33 + </div>
  34 + </div>
  35 +
  36 + <div class="col-sm-offset-2 col-sm-10">
  37 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang("SAVE")}</button>
  38 + <a class="btn btn-default" href="{:url('Nav/index')}">返回</a>
  39 + </div>
  40 + </form>
  41 +
  42 +</div>
  43 +<script src="__STATIC__/js/admin.js"></script>
  44 +</body>
  45 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('nav/index')}">{:lang('ADMIN_NAV_INDEX')}</a></li>
  7 + <li><a href="{:url('nav/add')}">{:lang('ADMIN_NAV_ADD')}</a></li>
  8 + <li class="active" ><a>{:lang('ADMIN_NAV_EDIT')}</a></li>
  9 + </ul>
  10 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('nav/editPost')}">
  11 +
  12 + <div class="form-group">
  13 + <label class="col-sm-2 control-label"><span class="form-required">*</span>名称:</label>
  14 + <div class="col-md-6 col-sm-10">
  15 + <input type="hidden" name="id" value="{$id}">
  16 + <input type="text" class="form-control" name="name" value="{$name}">
  17 + </div>
  18 + </div>
  19 + <div class="form-group">
  20 + <label class="col-sm-2 control-label">备注:</label>
  21 + <div class="col-md-6 col-sm-10">
  22 + <textarea class="form-control" name="remark" >{$remark}</textarea>
  23 + </div>
  24 + </div>
  25 + <div class="form-group">
  26 + <label class="col-sm-2 control-label">主菜单:</label>
  27 + <div class="col-md-6 col-sm-10">
  28 + <div class="checkbox">
  29 + <label>
  30 + <php>$strMainMenuChecked=$is_main?"checked":"";</php>
  31 + <input type="checkbox" name="is_main" value="1" {$strMainMenuChecked} >
  32 + </label>
  33 + </div>
  34 +
  35 + </div>
  36 + </div>
  37 +
  38 + <div class="col-sm-offset-2 col-sm-10">
  39 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang("SAVE")}</button>
  40 + <a class="btn btn-default" href="{:url('Nav/index')}">返回</a>
  41 + </div>
  42 + </form>
  43 +
  44 +</div>
  45 +<script src="__STATIC__/js/admin.js"></script>
  46 +</body>
  47 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="{:url('nav/index')}">所有导航</a></li>
  7 + <li><a href="{:url('nav/add')}">添加导航</a></li>
  8 + </ul>
  9 + <form action="{:url('Rbac/listorders')}" method="post" class="margin-top-20">
  10 + <php> $is_main=array("1"=>'是',"0"=>'否');</php>
  11 + <table class="table table-hover table-bordered">
  12 + <thead>
  13 + <tr>
  14 + <th width="40">ID</th>
  15 + <th>名称</th>
  16 + <th width="80">主导航</th>
  17 + <th>描述</th>
  18 + <th width="160">{:lang('ACTIONS')}</th>
  19 + </tr>
  20 + </thead>
  21 + <tbody>
  22 + <foreach name="navs" item="vo">
  23 + <tr>
  24 + <td>{$vo.id}</td>
  25 + <td>{$vo.name}</td>
  26 + <td>{$is_main[$vo.is_main]}</td>
  27 + <td>{$vo.remark}</td>
  28 + <td>
  29 + <a href="javascript:parent.openIframeLayer('{:url('NavMenu/index',array('nav_id'=>$vo['id']))}','{$vo.name}菜单管理',{});">菜单管理</a>
  30 + <a href="{:url('nav/edit',array('id'=>$vo['id']))}">{:lang('EDIT')}</a>
  31 + <a class="js-ajax-delete" href="{:url('nav/delete',array('id'=>$vo['id']))}">{:lang('DELETE')}</a>
  32 + </td>
  33 + </tr>
  34 + </foreach>
  35 + </tbody>
  36 + </table>
  37 + </form>
  38 +</div>
  39 +<script src="__STATIC__/js/admin.js"></script>
  40 +</body>
  41 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('NavMenu/index',['nav_id'=>$nav_id])}">导航菜单</a></li>
  7 + <li class="active"><a>{:lang('ADMIN_MENU_ADD')}</a></li>
  8 + </ul>
  9 +
  10 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('NavMenu/addPost')}">
  11 + <fieldset>
  12 + <div class="form-group">
  13 + <label class="col-sm-2 control-label">上级:</label>
  14 + <div class="col-md-6 col-sm-10">
  15 + <select name="parent_id" class="form-control">
  16 + <option value="0">/</option>
  17 + {$nav_trees}
  18 + </select>
  19 + </div>
  20 + </div>
  21 + <div class="form-group form-inline">
  22 + <label class="col-sm-2 control-label"><span class="form-required">*</span>地址:</label>
  23 + <div class="col-md-6 col-sm-10">
  24 + <input type="radio" id="external-link-radio">
  25 + <input type="text" class="form-control" name="href" id="external-link-input">
  26 + <input type="radio" id="select-href-radio">
  27 + <select name="href" id="select-href" class="form-control">
  28 + <option value="{:base64_encode('home')}" data-name="首页">首页</option>
  29 + <foreach name="navs" item="vo">
  30 + <optgroup label="{$vo.name}">
  31 + {$vo.html}
  32 + </optgroup>
  33 + </foreach>
  34 + </select>
  35 + </div>
  36 + </div>
  37 + <div class="form-group">
  38 + <label class="col-sm-2 control-label"><span class="form-required">*</span>菜单名称:</label>
  39 + <div class="col-md-6 col-sm-10">
  40 + <input type="text" class="form-control" name="name" id="name-input">
  41 + </div>
  42 + </div>
  43 + <div class="form-group">
  44 + <label class="col-sm-2 control-label">打开方式:</label>
  45 + <div class="col-md-6 col-sm-10">
  46 + <select class="form-control" name="target">
  47 + <option value="">默认方式</option>
  48 + <option value="_blank">新窗口打开</option>
  49 + </select>
  50 + </div>
  51 + </div>
  52 + <div class="form-group">
  53 + <label class="col-sm-2 control-label">图标:</label>
  54 + <div class="col-md-6 col-sm-10">
  55 + <input type="text" class="form-control" name="icon" value="">
  56 + </div>
  57 + </div>
  58 + <div class="form-group">
  59 + <label class="col-sm-2 control-label">显示:</label>
  60 + <div class="col-md-6 col-sm-10">
  61 + <select name="status" class="form-control">
  62 + <option value="1">显示</option>
  63 + <option value="0">隐藏</option>
  64 + </select>
  65 + </div>
  66 + </div>
  67 + </fieldset>
  68 +
  69 + <div class="col-sm-offset-2 col-sm-10">
  70 + <input type="hidden" name="nav_id" value="{$nav_id}"/>
  71 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang("SAVE")}</button>
  72 + <a class="btn btn-default" href="{:url('NavMenu/index',['nav_id'=>$nav_id])}">返回</a>
  73 + </div>
  74 + </form>
  75 +
  76 +</div>
  77 +<script src="__STATIC__/js/admin.js"></script>
  78 +<script>
  79 + $(function () {
  80 + $("#select-href,#select-href-radio").click(function () {
  81 + checkChange(2);
  82 + });
  83 +
  84 + $("#select-href").change(function () {
  85 + var $this = $(this);
  86 + var label = $this.find("option[value='" + $this.val() + "']").data('name');
  87 + $('#name-input').val(label);
  88 + });
  89 +
  90 + $("#external-link-input,#external-link-radio").click(function () {
  91 + checkChange(1);
  92 + });
  93 +
  94 + function checkChange(i) {
  95 + if (i == 1) {
  96 + //自动输入url
  97 + $('#external-link-input').attr('name', 'external_href');
  98 + $('#select-href').removeAttr('name');
  99 + $('#select-href-radio').prop('checked', false);
  100 + $('#external-link-radio').prop('checked', true);
  101 + } else {
  102 + //选择链接url
  103 + $('#select-href').attr('name', 'href');
  104 + $('#external-link-input').removeAttr('name');
  105 + $('#select-href-radio').prop('checked', true);
  106 + $('#external-link-radio').prop('checked', false);
  107 + }
  108 + }
  109 + });
  110 +</script>
  111 +</body>
  112 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('NavMenu/index',['nav_id'=>$nav_id])}">导航菜单</a></li>
  7 + <li><a href="{:url('NavMenu/add',['nav_id'=>$nav_id])}">{:lang('ADMIN_MENU_ADD')}</a>
  8 + </li>
  9 + <li class="active"><a>{:lang('ADMIN_MENU_EDIT')}</a></li>
  10 + </ul>
  11 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('NavMenu/editPost')}">
  12 + <fieldset>
  13 + <div class="form-group">
  14 + <label class="col-sm-2 control-label">上级:</label>
  15 + <div class="col-md-6 col-sm-10">
  16 + <select name="parent_id" class="form-control">
  17 + <option value="0">/</option>
  18 + {$nav_trees}
  19 + </select>
  20 + </div>
  21 + </div>
  22 + <div class="form-group form-inline">
  23 + <label class="col-sm-2 control-label"><span class="form-required">*</span>地址:</label>
  24 + <div class="col-md-6 col-sm-10">
  25 + <input type="radio" id="external-link-radio">
  26 + <input type="text" class="form-control" name="href" id="external-link-input">
  27 + <input type="radio" id="select-href-radio">
  28 + <select name="href" id="select-href" class="form-control">
  29 + <option value="{:base64_encode('home')}" data-name="首页">首页</option>
  30 + <foreach name="navs" item="vo">
  31 + <optgroup label="{$vo.name}">
  32 + {$vo.html}
  33 + </optgroup>
  34 + </foreach>
  35 + </select>
  36 + </div>
  37 + </div>
  38 + <div class="form-group">
  39 + <label class="col-sm-2 control-label"><span class="form-required">*</span>菜单名称:</label>
  40 + <div class="col-md-6 col-sm-10">
  41 + <input type="text" class="form-control" name="name" id="name-input" value="{$name}">
  42 + </div>
  43 + </div>
  44 + <div class="form-group">
  45 + <label class="col-sm-2 control-label">打开方式:</label>
  46 + <div class="col-md-6 col-sm-10">
  47 + <select name="target" class="form-control">
  48 + <option value="">默认方式</option>
  49 + <option {$target=='_blank'?'selected':''} value="_blank">新窗口打开</option>
  50 + </select>
  51 + </div>
  52 + </div>
  53 + <div class="form-group">
  54 + <label class="col-sm-2 control-label">图标:</label>
  55 + <div class="col-md-6 col-sm-10">
  56 + <input type="text" class="form-control" name="icon" value="{$icon}">
  57 + </div>
  58 + </div>
  59 + <div class="form-group">
  60 + <label class="col-sm-2 control-label">显示:</label>
  61 + <div class="col-md-6 col-sm-10">
  62 + <select name="status" class="form-control">
  63 + <option value="1">显示</option>
  64 + <php>$status_selected=empty($status)?"selected":"";</php>
  65 + <option value="0" {$status_selected}>隐藏</option>
  66 + </select>
  67 + </div>
  68 + </div>
  69 + </fieldset>
  70 +
  71 + <div class="col-sm-offset-2 col-sm-10">
  72 + <input type="hidden" name="id" value="{$id}">
  73 + <input type="hidden" name="nav_id" value="{$nav_id}">
  74 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang("SAVE")}</button>
  75 + <a class="btn btn-default" href="{:url('NavMenu/index',['nav_id'=>$nav_id])}">返回</a>
  76 + </div>
  77 + </form>
  78 +
  79 +</div>
  80 +<script src="__STATIC__/js/admin.js"></script>
  81 +<script>
  82 + $(function () {
  83 + $("#select-href,#select-href-radio").click(function () {
  84 + checkChange(2);
  85 + });
  86 +
  87 + $("#select-href").change(function () {
  88 + var $this = $(this);
  89 + var label = $this.find("option[value='" + $this.val() + "']").data('name');
  90 + $('#name-input').val(label);
  91 + });
  92 +
  93 + $("#external-link-input,#external-link-radio").click(function () {
  94 + checkChange(1);
  95 + });
  96 +
  97 + var opt = $("#select-href option[value='" + '{$href}' + "']");
  98 + if (opt.length > 0) {
  99 + opt.prop('selected', true);
  100 + checkChange(2);
  101 + } else {
  102 + checkChange(1);
  103 + $('#external-link-input').val('{$href}');
  104 + }
  105 +
  106 + function checkChange(i) {
  107 + if (i == 1) {
  108 + //自动输入url
  109 + $('#external-link-input').attr('name', 'external_href');
  110 + $('#select-href').removeAttr('name');
  111 + $('#select-href-radio').prop('checked', false);
  112 + $('#external-link-radio').prop('checked', true);
  113 + } else {
  114 + //选择链接url
  115 + $('#select-href').attr('name', 'href');
  116 + $('#external-link-input').removeAttr('name');
  117 + $('#select-href-radio').prop('checked', true);
  118 + $('#external-link-radio').prop('checked', false);
  119 + }
  120 + }
  121 + });
  122 +</script>
  123 +</body>
  124 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="{:url('NavMenu/index',['nav_id'=>$nav_id])}">导航菜单</a></li>
  7 + <li><a href="{:url('NavMenu/add',['nav_id'=>$nav_id])}">添加菜单</a></li>
  8 + </ul>
  9 + <form class="js-ajax-form margin-top-20" action="{:url('NavMenu/listOrder')}" method="post">
  10 + <div class="table-actions">
  11 + <button class="btn btn-primary btn-sm js-ajax-submit" type="submit">排序</button>
  12 + </div>
  13 + <table class="table table-hover table-bordered">
  14 + <thead>
  15 + <tr>
  16 + <th width="50">排序</th>
  17 + <th width="50">ID</th>
  18 + <th>菜单名称</th>
  19 + <th width="80">状态</th>
  20 + <th width="180">{:lang('ACTIONS')}</th>
  21 + </tr>
  22 + </thead>
  23 + <tbody>
  24 + {$categories}
  25 + </tbody>
  26 + </table>
  27 + </form>
  28 +</div>
  29 +<script src="__STATIC__/js/admin.js"></script>
  30 +</body>
  31 +</html>
  1 +<include file="public@header" />
  2 +<style type="text/css">
  3 + .pagination{display:inline-block;padding-left:0;border-radius:4px;margin-left: 30%}
  4 + .pagination li{display:inline}
  5 + .pagination li a,.pagination li span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;color:#393D49;background:#fff;margin:0 0 0 8px;border:1px solid #eee}
  6 + .pagination li a:hover{color:#fff;background:#1E9FFF}
  7 + .pagination .active span{background:#1E9FFF;color:#fff}
  8 +</style>
  9 +</head>
  10 +<body>
  11 + <div class="wrap">
  12 + <ul class="nav nav-tabs">
  13 + <li class="active"><a href="{:url('index')}">列表管理</a></li>
  14 + <!--<li><a href="{:url('add')}">添加</a></li>-->
  15 + </ul>
  16 + <form class="well form-inline margin-top-20" method="post" action="{:url('index')}">
  17 +
  18 +
  19 + 状态:
  20 + <select class="form-control" name="status" style="width: 140px;">
  21 + <option value=''>全部</option>
  22 + <option value='1'>已付款</option>
  23 + <option value='0'>待付款</option>
  24 + </select> &nbsp;&nbsp;
  25 +
  26 + 学员手机号:
  27 + <input type="text" class="form-control" name="mobile" style="width: 200px;"
  28 + value="{$keyword|default=''}" placeholder="请输入手机号...">
  29 +
  30 +
  31 + <input type="submit" class="btn btn-primary" value="搜索"/>
  32 + <a class="btn btn-danger" href="{:url('index')}">清空</a>
  33 + </form>
  34 + <table class="table table-hover table-bordered table-list">
  35 + <thead>
  36 + <tr>
  37 + <th width="50">ID</th>
  38 +
  39 + <th>订单号</th>
  40 + <th>报名类型</th>
  41 + <th>学生姓名</th>
  42 + <th>手机号</th>
  43 + <th>金额</th>
  44 + <th>实际付款</th>
  45 + <th>下单时间</th>
  46 + <th>状态</th>
  47 + <th>操作</th>
  48 + </tr>
  49 + </thead>
  50 + <tbody>
  51 + <foreach name="list" id="vo">
  52 + <tr>
  53 + <td>{$vo.id}</td>
  54 + <td>{$vo.out_trade_no}</td>
  55 + <td>{$vo.gname}</td>
  56 + <td>{$vo.uid|id_name}</td>
  57 + <td>{$vo.uid|id_mobile}</td>
  58 + <td>{$vo.price}</td>
  59 + <td>{$vo.true_price/100}</td>
  60 + <td>{$vo.create_time|date="Y-m-d H:i:s",###}</td>
  61 + <td>{$vo.status|pay_type_name}</td>
  62 + <td>
  63 + <a href='{:url("admin/user/student",array("id"=>$vo["uid"]))}'>查看学员详情</a>
  64 + </td>
  65 + </tr>
  66 + </foreach>
  67 + </tbody>
  68 + </table>
  69 +
  70 +
  71 + </div>
  72 + <div class="pagination">
  73 + {$page}
  74 + </div>
  75 + <script src="__STATIC__/js/admin.js"></script>
  76 +</body>
  77 +</html>
  1 +<php>
  2 + function _parse_plugin_config($pluginConfig){
  3 +
  4 +</php>
  5 +
  6 +<foreach name="pluginConfig" item="form">
  7 + <switch name="form.type">
  8 + <case value="explain">
  9 + <div class="form-group">
  10 + <label class="col-sm-2 control-label" for="{$key}">
  11 + {$form.title|default=''}
  12 + <notempty name="form.rule.require">
  13 + <span class="form-required">*</span>
  14 + </notempty>
  15 + </label>
  16 + <div class="col-md-6 col-sm-10">
  17 + <p>{$form.value}</p>
  18 + <present name="form.tip">
  19 + <p class="help-block">{$form.tip}</p>
  20 + </present>
  21 + </div>
  22 + </div>
  23 + </case>
  24 + <case value="text">
  25 + <div class="form-group">
  26 + <label class="col-sm-2 control-label" for="{$key}">
  27 + {$form.title|default=''}
  28 + <notempty name="form.rule.require">
  29 + <span class="form-required">*</span>
  30 + </notempty>
  31 + </label>
  32 + <div class="col-md-6 col-sm-10">
  33 + <input type="text" name="config[{$key}]" class="form-control" {$form.disabled?'disabled':''} value="{$form.value}" id="{$key}">
  34 + <present name="form.tip">
  35 + <p class="help-block">{$form.tip}</p>
  36 + </present>
  37 + </div>
  38 + </div>
  39 + </case>
  40 + <case value="password">
  41 + <div class="form-group">
  42 + <label class="col-sm-2 control-label" for="{$key}">
  43 + {$form.title|default=''}
  44 + <notempty name="form.rule.require">
  45 + <span class="form-required">*</span>
  46 + </notempty>
  47 + </label>
  48 + <div class="col-md-6 col-sm-10">
  49 + <input type="password" name="config[{$key}]" class="form-control" value="{$form.value}"
  50 + id="{$key}">
  51 + <present name="form.tip">
  52 + <p class="help-block">{$form.tip}</p>
  53 + </present>
  54 + </div>
  55 + </div>
  56 + </case>
  57 + <case value="number">
  58 + <div class="form-group">
  59 + <label class="col-sm-2 control-label" for="{$key}">
  60 + {$form.title|default=''}
  61 + <notempty name="form.rule.require">
  62 + <span class="form-required">*</span>
  63 + </notempty>
  64 + </label>
  65 + <div class="col-md-6 col-sm-10">
  66 + <input type="number" name="config[{$key}]" class="form-control" {$form.disabled?'disabled':''} value="{$form.value}"
  67 + id="{$key}">
  68 + <present name="form.tip">
  69 + <p class="help-block">{$form.tip}</p>
  70 + </present>
  71 + </div>
  72 + </div>
  73 + </case>
  74 + <case value="hidden">
  75 + <input type="hidden" name="config[{$key}]" value="{$form.value}">
  76 + </case>
  77 + <case value="radio">
  78 + <div class="form-group">
  79 + <label class="col-sm-2 control-label" for="{$key}">
  80 + {$form.title|default=''}
  81 + <notempty name="form.rule.require">
  82 + <span class="form-required">*</span>
  83 + </notempty>
  84 + </label>
  85 + <div class="col-md-6 col-sm-10">
  86 + <foreach name="form.options" item="opt" key="opt_k">
  87 + <label class="radio-inline">
  88 + <php>$radio_checked=$opt_k==$form['value']?"checked":"";</php>
  89 + <input type="radio" name="config[{$key}]" value="{$opt_k}" {$radio_checked}>{$opt}
  90 + </label>
  91 + </foreach>
  92 + <present name="form.tip">
  93 + <p class="help-block">{$form.tip}</p>
  94 + </present>
  95 + </div>
  96 + </div>
  97 + </case>
  98 + <case value="checkbox">
  99 + <div class="form-group">
  100 + <label class="col-sm-2 control-label" for="{$key}">
  101 + {$form.title|default=''}
  102 + <notempty name="form.rule.require">
  103 + <span class="form-required">*</span>
  104 + </notempty>
  105 + </label>
  106 + <div class="col-md-6 col-sm-10">
  107 + <foreach name="form.options" item="opt" key="opt_k">
  108 + <label class="checkbox-inline">
  109 + <php>
  110 + is_null($form["value"]) && $form["value"] = array();
  111 + </php>
  112 + <input type="checkbox" name="config[{$key}][]" value="{$opt_k}"
  113 + <in name="opt_k" value="$form.value"> checked</in>
  114 + >{$opt}
  115 + </label>
  116 + </foreach>
  117 + <present name="form.tip">
  118 + <p class="help-block">{$form.tip}</p>
  119 + </present>
  120 + </div>
  121 + </div>
  122 + </case>
  123 + <case value="select">
  124 + <div class="form-group">
  125 + <label class="col-sm-2 control-label" for="{$key}">
  126 + {$form.title|default=''}
  127 + <notempty name="form.rule.require">
  128 + <span class="form-required">*</span>
  129 + </notempty>
  130 + </label>
  131 + <div class="col-md-6 col-sm-10">
  132 + <select class="form-control" name="config[{$key}]" id="{$key}">
  133 + <foreach name="form.options" item="opt" key="opt_k">
  134 + <option value="{$opt_k}"
  135 + <eq name="form.value" value="$opt_k"> selected</eq>
  136 + >{$opt}</option>
  137 + </foreach>
  138 + </select>
  139 + <present name="form.tip">
  140 + <p class="help-block">{$form.tip}</p>
  141 + </present>
  142 + </div>
  143 + </div>
  144 + </case>
  145 + <case value="textarea">
  146 + <div class="form-group">
  147 + <label class="col-sm-2 control-label" for="{$key}">
  148 + {$form.title|default=''}
  149 + <notempty name="form.rule.require">
  150 + <span class="form-required">*</span>
  151 + </notempty>
  152 + </label>
  153 + <div class="col-md-6 col-sm-10">
  154 + <textarea class="form-control" name="config[{$key}]" {$form.disabled?'disabled':''} id="{$key}">{$form.value}</textarea>
  155 + <present name="form.tip">
  156 + <p class="help-block">{$form.tip}</p>
  157 + </present>
  158 + </div>
  159 + </div>
  160 + </case>
  161 + <case value="group">
  162 + <div>
  163 + <ul class="nav nav-tabs" role="tablist">
  164 + <foreach name="form.options" item="groupItem" key="groupKey" index="groupIndex">
  165 + <li role="presentation" class="{$groupIndex==1?'active':''}">
  166 + <a href="#tab-{$groupKey}" role="tab" data-toggle="tab" aria-controls="home"
  167 + aria-expanded="true">{$groupItem.title|default=''}</a>
  168 + </li>
  169 + </foreach>
  170 + </ul>
  171 + <div class="tab-content margin-top-20">
  172 + <foreach name="form.options" item="groupItem" key="groupKey" index="groupIndex">
  173 + <div role="tabpanel" class="tab-pane fade in {$groupIndex==1?'active':''}" id="tab-{$groupKey}"
  174 + aria-labelledby="home-tab">
  175 + {:_parse_plugin_config($groupItem.options)}
  176 + </div>
  177 + </foreach>
  178 + </div>
  179 + </div>
  180 + </case>
  181 + <case value="date">
  182 + <div class="form-group">
  183 + <label class="col-sm-2 control-label" for="{$key}">
  184 + {$form.title|default=''}
  185 + <notempty name="form.rule.require">
  186 + <span class="form-required">*</span>
  187 + </notempty>
  188 + </label>
  189 + <div class="col-md-6 col-sm-10">
  190 + <input class="form-control js-bootstrap-date" name="config[{$key}]" id="{$key}"
  191 + value="{$form.value}">
  192 + <present name="form.tip">
  193 + <p class="help-block">{$form.tip}</p>
  194 + </present>
  195 + </div>
  196 + </div>
  197 + </case>
  198 + <case value="datetime">
  199 + <div class="form-group">
  200 + <label class="col-sm-2 control-label" for="{$key}">
  201 + {$form.title|default=''}
  202 + <notempty name="form.rule.require">
  203 + <span class="form-required">*</span>
  204 + </notempty>
  205 + </label>
  206 + <div class="col-md-6 col-sm-10">
  207 + <input class="form-control js-bootstrap-datetime" name="config[{$key}]" id="{$key}"
  208 + value="{$form.value}">
  209 + <present name="form.tip">
  210 + <p class="help-block">{$form.tip}</p>
  211 + </present>
  212 + </div>
  213 + </div>
  214 + </case>
  215 + <case value="color">
  216 + <div class="form-group">
  217 + <label class="col-sm-2 control-label" for="{$key}">
  218 + {$form.title|default=''}
  219 + <notempty name="form.rule.require">
  220 + <span class="form-required">*</span>
  221 + </notempty>
  222 + </label>
  223 + <div class="col-md-6 col-sm-10">
  224 + <input class="form-control js-color" name="config[{$key}]" id="{$key}"
  225 + value="{$form.value}">
  226 + <present name="form.tip">
  227 + <p class="help-block">{$form.tip}</p>
  228 + </present>
  229 + </div>
  230 + </div>
  231 + </case>
  232 + <case value="image">
  233 + <div class="form-group">
  234 + <label class="col-sm-2 control-label" for="{$key}">
  235 + {$form.title|default=''}
  236 + <notempty name="form.rule.require">
  237 + <span class="form-required">*</span>
  238 + </notempty>
  239 + </label>
  240 + <div class="col-md-6 col-sm-10">
  241 + <input type="hidden" name="config[{$key}]" class="form-control"
  242 + value="{$form.value}" id="js-{$key}-input">
  243 + <div>
  244 + <a href="javascript:uploadOneImage('图片上传','#js-{$key}-input');">
  245 + <if condition="empty($form['value'])">
  246 + <img src="__TMPL__/public/assets/images/default-thumbnail.png"
  247 + id="js-{$key}-input-preview"
  248 + width="135" style="cursor: pointer"/>
  249 + <else/>
  250 + <img src="{:cmf_get_image_preview_url($form['value'])}"
  251 + id="js-{$key}-input-preview"
  252 + width="135" style="cursor: pointer"/>
  253 + </if>
  254 + </a>
  255 + </div>
  256 + <present name="form.tip">
  257 + <p class="help-block">{$form.tip}</p>
  258 + </present>
  259 + </div>
  260 + </div>
  261 + </case>
  262 + <case value="file">
  263 + <div class="form-group">
  264 + <label class="col-sm-2 control-label" for="{$key}">
  265 + {$form.title|default=''}
  266 + <notempty name="form.rule.require">
  267 + <span class="form-required">*</span>
  268 + </notempty>
  269 + </label>
  270 + <div class="col-md-6 col-sm-10">
  271 + <div>
  272 + <input class="form-control" id="js-{$key}-input" type="text" name="config[{$key}]" value="{$form['value']}"
  273 + style="width: 300px;display: inline-block;" title="文件名称">
  274 + <a href="javascript:uploadOne('文件上传','#js-{$key}-input','file');">上传文件</a>
  275 + </div>
  276 + <present name="form.tip">
  277 + <p class="help-block">{$form.tip}</p>
  278 + </present>
  279 + </div>
  280 + </div>
  281 + </case>
  282 + <case value="location">
  283 + <div class="form-group">
  284 + <label class="col-sm-2 control-label" for="{$key}">
  285 + {$form.title|default=''}
  286 + <notempty name="form.rule.require">
  287 + <span class="form-required">*</span>
  288 + </notempty>
  289 + </label>
  290 + <div class="col-md-6 col-sm-10">
  291 + <input class="form-control" name="config[{$key}]" id="{$key}" value="{$form.value}"
  292 + onclick="doSelectLocation(this)"
  293 + data-title="请选择{$form.title|default=''}">
  294 + <present name="form.tip">
  295 + <p class="help-block">{$form.tip}</p>
  296 + </present>
  297 + </div>
  298 + </div>
  299 + </case>
  300 + </switch>
  301 +</foreach>
  302 +
  303 +
  304 +<php>
  305 + }
  306 +</php>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="{:url('plugin/index')}">{:lang('ADMIN_PLUGIN_INDEX')}</a></li>
  7 + <li><a href="http://www.thinkcmf.com/appstore/plugin.html" target="_blank">插件市场</a></li>
  8 + <li>
  9 + <a href="http://www.thinkcmf.com/faq.html?url=https://www.kancloud.cn/thinkcmf/faq/493510" target="_blank">插件安装<i class="fa fa-question-circle"></i></a>
  10 + </li>
  11 + <li><a href="http://www.thinkcmf.com/topic/index/index/cat/9.html" target="_blank">插件交流</a></li>
  12 + <li><a href="https://www.kancloud.cn/thinkcmf/doc/266542" target="_blank">插件文档</a></li>
  13 + </ul>
  14 + <form method="post" class="js-ajax-form margin-top-20">
  15 + <php>
  16 + $status=array("1"=>'开启',"0"=>'禁用',"3"=>'未安装');
  17 + </php>
  18 + <table class="table table-hover table-bordered">
  19 + <thead>
  20 + <tr>
  21 + <th>插件名称</th>
  22 + <th>插件标识</th>
  23 + <th>描述</th>
  24 + <th>作者</th>
  25 + <th width="60">状态</th>
  26 + <th width="210">操作</th>
  27 + </tr>
  28 + </thead>
  29 + <tbody>
  30 + <foreach name="plugins" item="vo">
  31 + <tr>
  32 + <td>{$vo.title}</td>
  33 + <td>{$vo.name}</td>
  34 + <td>{$vo.description}</td>
  35 + <td>{$vo.author}</td>
  36 + <td>{$status[$vo['status']]}</td>
  37 + <td>
  38 + <if condition="$vo['status']==3">
  39 + <a href="{:url('plugin/install',array('name'=>$vo['name']))}" class="js-ajax-dialog-btn"
  40 + data-msg="确定安装该插件吗?">安装</a>
  41 + <else/>
  42 + <php>$config=json_decode($vo['config'],true);</php>
  43 + <if condition="!empty($config)">
  44 + <empty name="config.custom_config">
  45 + <a href="{:url('plugin/setting',array('id'=>$vo['id']))}">设置</a>
  46 + <else/>
  47 + <a href="{:cmf_plugin_url($vo['name'].'://AdminIndex/setting')}">设置</a>
  48 + </empty>
  49 + <else/>
  50 + <a href="javascript:;" style="color: #ccc;">设置</a>
  51 + </if>
  52 +
  53 + <if condition="!empty($vo['has_admin'])">
  54 + <a href="javascript:parent.openapp('{:cmf_plugin_url($vo['name'].'://AdminIndex/index')}','plugin_{$vo.name}','{$vo.title}')">管理</a>
  55 + <else/>
  56 + <a href="javascript:;" style="color: #ccc;">管理</a>
  57 + </if>
  58 +
  59 + <a href="{:url('plugin/update',array('name'=>$vo['name']))}" class="js-ajax-dialog-btn"
  60 + data-msg="确定更新该插件吗?">更新</a>
  61 +
  62 + <if condition="$vo['status']==0">
  63 + <a href="{:url('plugin/toggle',array('id'=>$vo['id'],'enable'=>1))}"
  64 + class="js-ajax-dialog-btn" data-msg="确定启用该插件吗?">启用</a>
  65 + <else/>
  66 + <a href="{:url('plugin/toggle',array('id'=>$vo['id'],'disable'=>1))}"
  67 + class="js-ajax-dialog-btn" data-msg="确定禁用该插件吗?">禁用</a>
  68 + </if>
  69 +
  70 + <a href="{:url('plugin/uninstall',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn"
  71 + data-msg="确定卸载该插件吗?">卸载</a>
  72 + </if>
  73 + </td>
  74 + </tr>
  75 + </foreach>
  76 + </tbody>
  77 + </table>
  78 + </form>
  79 +</div>
  80 +<script src="__STATIC__/js/admin.js"></script>
  81 +</body>
  82 +</html>
  1 +<include file="plugin/functions"/>
  2 +<include file="public@header"/>
  3 +</head>
  4 +<body>
  5 +<div class="wrap">
  6 + <ul class="nav nav-tabs">
  7 + <li><a href="{:url('plugin/index')}">{:lang('ADMIN_PLUGIN_INDEX')}</a></li>
  8 + <li class="active"><a>{:lang('ADMIN_PLUGIN_SETTING')}</a></li>
  9 + </ul>
  10 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('plugin/settingPost')}">
  11 + <empty name="custom_config">
  12 + {:_parse_plugin_config($data['config'])}
  13 + <else/>
  14 + <present name="custom_config">
  15 + {$custom_config}
  16 + </present>
  17 + </empty>
  18 + <div class="form-group">
  19 + <div class="col-sm-offset-2 col-sm-10">
  20 + <input type="hidden" name="id" value="{$id}" readonly>
  21 + <button type="submit" class="btn btn-primary js-ajax-submit" data-refresh="0">保存</button>
  22 + <a class="btn btn-default" href="javascript:history.back(-1);">返回</a>
  23 + </div>
  24 + </div>
  25 + </form>
  26 +</div>
  27 +<script src="__STATIC__/js/admin.js"></script>
  28 +<script>
  29 +
  30 + Wind.use('colorpicker',function(){
  31 + $('.js-color').each(function () {
  32 + var $this=$(this);
  33 + $this.ColorPicker({
  34 + livePreview:true,
  35 + onChange: function(hsb, hex, rgb) {
  36 + $this.val('#'+hex);
  37 + },
  38 + onBeforeShow: function () {
  39 + $(this).ColorPickerSetColor(this.value);
  40 + }
  41 + });
  42 + });
  43 +
  44 + });
  45 +
  46 + function doSelectLocation(obj) {
  47 + var $obj = $(obj);
  48 + var title = $obj.data('title');
  49 + var $realInput = $obj;
  50 + var location = $realInput.val();
  51 +
  52 + parent.openIframeLayer(
  53 + "{:url('dialog/map')}?location=" + location,
  54 + title,
  55 + {
  56 + area: ['700px', '90%'],
  57 + btn: ['确定', '取消'],
  58 + yes: function (index, layero) {
  59 + var iframeWin = parent.window[layero.find('iframe')[0]['name']];
  60 + var location = iframeWin.confirm();
  61 + $realInput.val(location.lng + ',' + location.lat);
  62 + //$obj.val(location.address);
  63 + parent.layer.close(index); //如果设定了yes回调,需进行手工关闭
  64 + }
  65 + }
  66 + );
  67 + }
  68 +</script>
  69 +</body>
  70 +</html>
  1 +<include file="public@header"/>
  2 +<style type="text/css">
  3 + .pic-list li {
  4 + margin-bottom: 5px;
  5 + }
  6 +</style>
  7 +
  8 +</head>
  9 +<body>
  10 +<div class="wrap js-check-wrap">
  11 + <ul class="nav nav-tabs">
  12 + <li><a href="{:url('index')}">文章管理</a></li>
  13 + <li class="active"><a href="{:url('add')}">添加文章</a></li>
  14 + </ul>
  15 + <form action="{:url('add_do')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
  16 + <div class="row">
  17 + <div class="col-md-9">
  18 + <table class="table table-bordered">
  19 +
  20 + <tr>
  21 + <th>标题<span class="form-required">*</span></th>
  22 + <td>
  23 + <input class="form-control" type="text" name="post[post_title]" id="post_title" value=""
  24 + placeholder="请输入标题">
  25 + </td>
  26 + </tr>
  27 + <tr>
  28 + <th>作者<span class="form-required">*</span></th>
  29 + <td>
  30 + <input class="form-control" type="text" name="post[post_keywords]" id="post_keywords" value=""
  31 + placeholder="请输入作者">
  32 + </td>
  33 + </tr>
  34 + <tr>
  35 + <th>时间<span class="form-required">*</span></th>
  36 + <td>
  37 + <input class="form-control" type="text" name="" value="<?php echo date('Y-m-d H:i:s')?>" disabled="disabled">
  38 + </td>
  39 + </tr>
  40 + <tr>
  41 + <th>缩略图</th>
  42 + <td>
  43 + <div style="text-align: center;">
  44 + <input type="hidden" name="post[thumbnail]" id="thumbnail" value="">
  45 + <a href="javascript:uploadOneImage('图片上传','#thumbnail');">
  46 + <img src="__TMPL__/public/assets/images/default-thumbnail.png"
  47 + id="thumbnail-preview"
  48 + width="135" style="cursor: pointer"/>
  49 + </a>
  50 + <!--<input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">-->
  51 + </div>
  52 + </td>
  53 + </tr>
  54 + <tr>
  55 + <th>banner</th>
  56 + <td>
  57 + <div style="text-align: center;">
  58 + <input type="hidden" name="post[banner]" id="thumbnail1" value="">
  59 + <a href="javascript:uploadOneImage('图片上传','#thumbnail1');">
  60 + <img src="__TMPL__/public/assets/images/default-thumbnail.png"
  61 + id="thumbnail1-preview"
  62 + width="135" style="cursor: pointer"/>
  63 + </a>
  64 + <!--<input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">-->
  65 + </div>
  66 + </td>
  67 + </tr>
  68 + <tr>
  69 + <th>摘要</th>
  70 + <td>
  71 + <textarea class="form-control" name="post[post_excerpt]" style="height: 50px;"
  72 + placeholder="请填写摘要"></textarea>
  73 + </td>
  74 + </tr>
  75 + <tr>
  76 + <th>内容</th>
  77 + <td>
  78 + <script type="text/plain" id="content" name="post[post_content]"></script>
  79 + </td>
  80 + </tr>
  81 + </table>
  82 + <div class="form-group">
  83 + <div class="col-sm-offset-2 col-sm-10">
  84 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
  85 + <a class="btn btn-default" href="{:url('AdminArticle/index')}">{:lang('BACK')}</a>
  86 + </div>
  87 + </div>
  88 + </div>
  89 + </div>
  90 + </form>
  91 +</div>
  92 +<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  93 +<script type="text/javascript">
  94 + //编辑器路径定义
  95 + var editorURL = GV.WEB_ROOT;
  96 +</script>
  97 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
  98 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
  99 +<script type="text/javascript">
  100 + $(function () {
  101 +
  102 + editorcontent = new baidu.editor.ui.Editor();
  103 + editorcontent.render('content');
  104 + try {
  105 + editorcontent.sync();
  106 + } catch (err) {
  107 + }
  108 +
  109 + $('.btn-cancel-thumbnail').click(function () {
  110 + $('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
  111 + $('#thumbnail').val('');
  112 + });
  113 +
  114 + });
  115 +
  116 + function doSelectCategory() {
  117 + var selectedCategoriesId = $('#js-categories-id-input').val();
  118 + openIframeLayer("{:url('AdminCategory/select')}?ids=" + selectedCategoriesId, '请选择分类', {
  119 + area: ['700px', '400px'],
  120 + btn: ['确定', '取消'],
  121 + yes: function (index, layero) {
  122 + //do something
  123 +
  124 + var iframeWin = window[layero.find('iframe')[0]['name']];
  125 + var selectedCategories = iframeWin.confirm();
  126 + if (selectedCategories.selectedCategoriesId.length == 0) {
  127 + layer.msg('请选择分类');
  128 + return;
  129 + }
  130 + $('#js-categories-id-input').val(selectedCategories.selectedCategoriesId.join(','));
  131 + $('#js-categories-name-input').val(selectedCategories.selectedCategoriesName.join(' '));
  132 + //console.log(layer.getFrameIndex(index));
  133 + layer.close(index); //如果设定了yes回调,需进行手工关闭
  134 + }
  135 + });
  136 + }
  137 +</script>
  138 +</body>
  139 +</html>
  1 +<include file="public@header"/>
  2 +<style type="text/css">
  3 + .pic-list li {
  4 + margin-bottom: 5px;
  5 + }
  6 +</style>
  7 +
  8 +</head>
  9 +<body>
  10 +<div class="wrap js-check-wrap">
  11 + <ul class="nav nav-tabs">
  12 + <li><a href="{:url('index')}">文章管理</a></li>
  13 + <li class="active"><a href="{:url('add')}">添加文章</a></li>
  14 + </ul>
  15 + <form action="{:url('edit_do')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
  16 + <div class="row">
  17 + <div class="col-md-9">
  18 + <table class="table table-bordered">
  19 + <input type="hidden" name="post[id]" value="{$info.id}">
  20 + <tr>
  21 + <th>标题<span class="form-required">*</span></th>
  22 + <td>
  23 + <input class="form-control" type="text" name="post[post_title]" id="post_title" value="{$info.post_title}"
  24 + placeholder="请输入标题">
  25 + </td>
  26 + </tr>
  27 + <tr>
  28 + <th>作者<span class="form-required">*</span></th>
  29 + <td>
  30 + <input class="form-control" type="text" name="post[post_keywords]" id="post_keywords" value="{$info.post_keywords}"
  31 + placeholder="请输入作者">
  32 + </td>
  33 + </tr>
  34 + <tr>
  35 + <th>时间<span class="form-required">*</span></th>
  36 + <td>
  37 + <input class="form-control" type="text" name="" value="<?php echo date('Y-m-d H:i:s')?>" disabled="disabled">
  38 + </td>
  39 + </tr>
  40 + <tr>
  41 + <th>缩略图</th>
  42 + <td>
  43 + <div style="text-align: center;">
  44 + <input type="hidden" name="post[thumbnail]" id="thumbnail" value="{$info.thumbnail}">
  45 + <a href="javascript:uploadOneImage('图片上传','#thumbnail');">
  46 + <img src="/upload/{$info.thumbnail}"
  47 + id="thumbnail-preview"
  48 + width="135" style="cursor: pointer"/>
  49 + </a>
  50 + <!--<input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">-->
  51 + </div>
  52 + </td>
  53 + </tr>
  54 + <tr>
  55 + <th>banner</th>
  56 + <td>
  57 + <div style="text-align: center;">
  58 + <input type="hidden" name="post[banner]" id="thumbnail1" value="{$info.banner}">
  59 + <a href="javascript:uploadOneImage('图片上传','#thumbnail1');">
  60 + <img src="/upload/{$info.banner}"
  61 + id="thumbnail1-preview"
  62 + width="135" style="cursor: pointer"/>
  63 + </a>
  64 + <!--<input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">-->
  65 + </div>
  66 + </td>
  67 + </tr>
  68 + <tr>
  69 + <th>摘要</th>
  70 + <td>
  71 + <textarea class="form-control" name="post[post_excerpt]" style="height: 50px;"
  72 + placeholder="请填写摘要">{$info.post_excerpt}</textarea>
  73 + </td>
  74 + </tr>
  75 + <tr>
  76 + <th>内容</th>
  77 + <td>
  78 + <script type="text/plain" id="content" name="post[post_content]">{$info.post_content|htmlspecialchars_decode}</script>
  79 + </td>
  80 + </tr>
  81 + </table>
  82 + <div class="form-group">
  83 + <div class="col-sm-offset-2 col-sm-10">
  84 + <button type="submit" class="btn btn-primary js-ajax-submit">保存</button>
  85 + <a class="btn btn-default" href="{:url('index')}">{:lang('BACK')}</a>
  86 + </div>
  87 + </div>
  88 + </div>
  89 + </div>
  90 + </form>
  91 +</div>
  92 +<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  93 +<script type="text/javascript">
  94 + //编辑器路径定义
  95 + var editorURL = GV.WEB_ROOT;
  96 +</script>
  97 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
  98 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
  99 +<script type="text/javascript">
  100 + $(function () {
  101 +
  102 + editorcontent = new baidu.editor.ui.Editor();
  103 + editorcontent.render('content');
  104 + try {
  105 + editorcontent.sync();
  106 + } catch (err) {
  107 + }
  108 +
  109 + $('.btn-cancel-thumbnail').click(function () {
  110 + $('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
  111 + $('#thumbnail').val('');
  112 + });
  113 +
  114 + });
  115 +
  116 + function doSelectCategory() {
  117 + var selectedCategoriesId = $('#js-categories-id-input').val();
  118 + openIframeLayer("{:url('AdminCategory/select')}?ids=" + selectedCategoriesId, '请选择分类', {
  119 + area: ['700px', '400px'],
  120 + btn: ['确定', '取消'],
  121 + yes: function (index, layero) {
  122 + //do something
  123 +
  124 + var iframeWin = window[layero.find('iframe')[0]['name']];
  125 + var selectedCategories = iframeWin.confirm();
  126 + if (selectedCategories.selectedCategoriesId.length == 0) {
  127 + layer.msg('请选择分类');
  128 + return;
  129 + }
  130 + $('#js-categories-id-input').val(selectedCategories.selectedCategoriesId.join(','));
  131 + $('#js-categories-name-input').val(selectedCategories.selectedCategoriesName.join(' '));
  132 + //console.log(layer.getFrameIndex(index));
  133 + layer.close(index); //如果设定了yes回调,需进行手工关闭
  134 + }
  135 + });
  136 + }
  137 +</script>
  138 +</body>
  139 +</html>
  1 +<include file="public@header"/>
  2 +<style type="text/css">
  3 + .pic-list li {
  4 + margin-bottom: 5px;
  5 + }
  6 +</style>
  7 +
  8 +</head>
  9 +<body>
  10 +<div class="wrap js-check-wrap">
  11 + <ul class="nav nav-tabs">
  12 + <li><a href="{:url('index1')}">文章管理</a></li>
  13 + </ul>
  14 + <form action="{:url('edit_do1')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
  15 + <div class="row">
  16 + <div class="col-md-9">
  17 + <table class="table table-bordered">
  18 + <input type="hidden" name="post[id]" value="{$info.id}">
  19 + <tr>
  20 + <th>标题<span class="form-required">*</span></th>
  21 + <td>
  22 + <input class="form-control" type="text" name="post[post_title]" id="post_title" value="{$info.post_title}"
  23 + placeholder="请输入标题">
  24 + </td>
  25 + </tr>
  26 + <tr>
  27 + <th>内容</th>
  28 + <td>
  29 + <script type="text/plain" id="content" name="post[post_content]">{$info.post_content|htmlspecialchars_decode}</script>
  30 + </td>
  31 + </tr>
  32 + </table>
  33 + <div class="form-group">
  34 + <div class="col-sm-offset-2 col-sm-10">
  35 + <button type="submit" class="btn btn-primary js-ajax-submit">保存</button>
  36 + <a class="btn btn-default" href="{:url('index')}">{:lang('BACK')}</a>
  37 + </div>
  38 + </div>
  39 + </div>
  40 + </div>
  41 + </form>
  42 +</div>
  43 +<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  44 +<script type="text/javascript">
  45 + //编辑器路径定义
  46 + var editorURL = GV.WEB_ROOT;
  47 +</script>
  48 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
  49 +<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
  50 +<script type="text/javascript">
  51 + $(function () {
  52 +
  53 + editorcontent = new baidu.editor.ui.Editor();
  54 + editorcontent.render('content');
  55 + try {
  56 + editorcontent.sync();
  57 + } catch (err) {
  58 + }
  59 +
  60 + $('.btn-cancel-thumbnail').click(function () {
  61 + $('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
  62 + $('#thumbnail').val('');
  63 + });
  64 +
  65 + });
  66 +
  67 + function doSelectCategory() {
  68 + var selectedCategoriesId = $('#js-categories-id-input').val();
  69 + openIframeLayer("{:url('AdminCategory/select')}?ids=" + selectedCategoriesId, '请选择分类', {
  70 + area: ['700px', '400px'],
  71 + btn: ['确定', '取消'],
  72 + yes: function (index, layero) {
  73 + //do something
  74 +
  75 + var iframeWin = window[layero.find('iframe')[0]['name']];
  76 + var selectedCategories = iframeWin.confirm();
  77 + if (selectedCategories.selectedCategoriesId.length == 0) {
  78 + layer.msg('请选择分类');
  79 + return;
  80 + }
  81 + $('#js-categories-id-input').val(selectedCategories.selectedCategoriesId.join(','));
  82 + $('#js-categories-name-input').val(selectedCategories.selectedCategoriesName.join(' '));
  83 + //console.log(layer.getFrameIndex(index));
  84 + layer.close(index); //如果设定了yes回调,需进行手工关闭
  85 + }
  86 + });
  87 + }
  88 +</script>
  89 +</body>
  90 +</html>
  1 +<include file="public@header"/>
  2 +<link rel="stylesheet" href="/static/scr/zoomify/bootstrap-grid.min.css">
  3 +<link rel="stylesheet" href="/static/scr/zoomify/dist/zoomify.css">
  4 +</head>
  5 +<body>
  6 +<div class="wrap js-check-wrap">
  7 +
  8 + <ul class="nav nav-tabs">
  9 + <li class="active"><a href="javascript:;">所有文章</a></li>
  10 + <li><a href="{:url('add')}">添加文章</a></li>
  11 + </ul>
  12 + <form class="well form-inline margin-top-20" method="post" action="{:url('index')}">
  13 +
  14 + 标题:
  15 + <input type="text" class="form-control" name="keyword" style="width: 200px;"
  16 + value="{$keyword|default=''}" placeholder="请输入关键字...">
  17 + <input type="submit" class="btn btn-primary" value="搜索"/>
  18 + <a class="btn btn-danger" href="{:url('AdminArticle/index')}">清空</a>
  19 + </form>
  20 + <form class="js-ajax-form" action="" method="post">
  21 + <!--<div class="table-actions">-->
  22 +
  23 + <!--<button class="btn btn-primary btn-sm js-ajax-submit" type="submit"-->
  24 + <!--data-action="{:url('AdminArticle/top',array('yes'=>1))}" data-subcheck="true">置顶-->
  25 + <!--</button>-->
  26 + <!--<button class="btn btn-primary btn-sm js-ajax-submit" type="submit"-->
  27 + <!--data-action="{:url('AdminArticle/top',array('no'=>1))}" data-subcheck="true">取消置顶-->
  28 + <!--</button>-->
  29 + <!--<button class="btn btn-danger btn-sm js-ajax-submit" type="submit"-->
  30 + <!--data-action="{:url('AdminArticle/delete')}" data-subcheck="true" data-msg="您确定删除吗?">-->
  31 + <!--{:lang('DELETE')}-->
  32 + <!--</button>-->
  33 + <!--</div>-->
  34 + <table class="table table-hover table-bordered table-list">
  35 + <thead>
  36 + <tr>
  37 + <th width="50">ID</th>
  38 + <th width="300">标题</th>
  39 + <th width="120">简介</th>
  40 + <th width="50">提交时间</th>
  41 + <th width="120">操作</th>
  42 + </tr>
  43 + </thead>
  44 + <foreach name="list" item="vo">
  45 + <tr>
  46 + <td><b>{$vo.id}</b></td>
  47 + <td>{$vo.post_title}</td>
  48 + <td>{$vo.post_excerpt}</td>
  49 + <td>
  50 + <notempty name="vo.create_time">
  51 + {:date('Y-m-d H:i',$vo['create_time'])}
  52 + </notempty>
  53 +
  54 + </td>
  55 + <td>
  56 + <a href="{:url('edit',array('id'=>$vo['id']))}">查看/编辑</a>
  57 + <a href="{:url('delete',array('id'=>$vo['id']))}" class="js-ajax-delete">{:lang('DELETE')}</a>
  58 + </td>
  59 + </tr>
  60 + </foreach>
  61 +
  62 + </table>
  63 +
  64 + <ul class="pagination">{$page|default=''}</ul>
  65 + </form>
  66 +</div>
  67 +<script src="__STATIC__/js/admin.js"></script>
  68 +<script>
  69 +
  70 + function reloadPage(win) {
  71 + win.location.reload();
  72 + }
  73 +
  74 + $(function () {
  75 + setCookie("refersh_time", 0);
  76 + Wind.use('ajaxForm', 'artDialog', 'iframeTools', function () {
  77 + //批量复制
  78 + $('.js-articles-copy').click(function (e) {
  79 + var ids = [];
  80 + $("input[name='ids[]']").each(function () {
  81 + if ($(this).is(':checked')) {
  82 + ids.push($(this).val());
  83 + }
  84 + });
  85 +
  86 + if (ids.length == 0) {
  87 + art.dialog.through({
  88 + id: 'error',
  89 + icon: 'error',
  90 + content: '您没有勾选信息,无法进行操作!',
  91 + cancelVal: '关闭',
  92 + cancel: true
  93 + });
  94 + return false;
  95 + }
  96 +
  97 + ids = ids.join(',');
  98 + art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=copy&ids=" + ids, {
  99 + title: "批量复制",
  100 + width: "300px"
  101 + });
  102 + });
  103 + //批量移动
  104 + $('.js-articles-move').click(function (e) {
  105 + var ids = [];
  106 + $("input[name='ids[]']").each(function () {
  107 + if ($(this).is(':checked')) {
  108 + ids.push($(this).val());
  109 + }
  110 + });
  111 +
  112 + if (ids.length == 0) {
  113 + art.dialog.through({
  114 + id: 'error',
  115 + icon: 'error',
  116 + content: '您没有勾选信息,无法进行操作!',
  117 + cancelVal: '关闭',
  118 + cancel: true
  119 + });
  120 + return false;
  121 + }
  122 +
  123 + ids = ids.join(',');
  124 + art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=move&old_term_id={$term.term_id|default=0}&ids=" + ids, {
  125 + title: "批量移动",
  126 + width: "300px"
  127 + });
  128 + });
  129 + });
  130 + });
  131 +</script>
  132 +<script src="http://www.jq22.com/jquery/1.11.1/jquery.min.js"></script>
  133 +<script src="/static/src/zoomify/zoomify.js"></script>
  134 +<script type="text/javascript">
  135 + $('.example img').zoomify();
  136 +</script>
  137 +</body>
  138 +</html>
  1 +<include file="public@header"/>
  2 +<link rel="stylesheet" href="/static/scr/zoomify/bootstrap-grid.min.css">
  3 +<link rel="stylesheet" href="/static/scr/zoomify/dist/zoomify.css">
  4 +</head>
  5 +<body>
  6 +<div class="wrap js-check-wrap">
  7 +
  8 + <ul class="nav nav-tabs">
  9 + <li class="active"><a href="javascript:;">所有文章</a></li>
  10 + <!--<li><a href="{:url('add')}">添加文章</a></li>-->
  11 + </ul>
  12 + <form class="well form-inline margin-top-20" method="post" action="{:url('index')}">
  13 +
  14 + 标题:
  15 + <input type="text" class="form-control" name="keyword" style="width: 200px;"
  16 + value="{$keyword|default=''}" placeholder="请输入关键字...">
  17 + <input type="submit" class="btn btn-primary" value="搜索"/>
  18 + <a class="btn btn-danger" href="{:url('AdminArticle/index')}">清空</a>
  19 + </form>
  20 + <form class="js-ajax-form" action="" method="post">
  21 + <!--<div class="table-actions">-->
  22 +
  23 + <!--<button class="btn btn-primary btn-sm js-ajax-submit" type="submit"-->
  24 + <!--data-action="{:url('AdminArticle/top',array('yes'=>1))}" data-subcheck="true">置顶-->
  25 + <!--</button>-->
  26 + <!--<button class="btn btn-primary btn-sm js-ajax-submit" type="submit"-->
  27 + <!--data-action="{:url('AdminArticle/top',array('no'=>1))}" data-subcheck="true">取消置顶-->
  28 + <!--</button>-->
  29 + <!--<button class="btn btn-danger btn-sm js-ajax-submit" type="submit"-->
  30 + <!--data-action="{:url('AdminArticle/delete')}" data-subcheck="true" data-msg="您确定删除吗?">-->
  31 + <!--{:lang('DELETE')}-->
  32 + <!--</button>-->
  33 + <!--</div>-->
  34 + <table class="table table-hover table-bordered table-list">
  35 + <thead>
  36 + <tr>
  37 + <th width="50">ID</th>
  38 + <th width="300">标题</th>
  39 + <th width="50">提交时间</th>
  40 + <th width="120">操作</th>
  41 + </tr>
  42 + </thead>
  43 + <foreach name="list" item="vo">
  44 + <tr>
  45 + <td><b>{$vo.id}</b></td>
  46 + <td>{$vo.post_title}</td>
  47 + <td>
  48 + <notempty name="vo.create_time">
  49 + {:date('Y-m-d H:i',$vo['create_time'])}
  50 + </notempty>
  51 +
  52 + </td>
  53 + <td>
  54 + <a href="{:url('edit2',array('id'=>$vo['id']))}">查看/编辑</a>
  55 + </td>
  56 + </tr>
  57 + </foreach>
  58 +
  59 + </table>
  60 +
  61 + <ul class="pagination">{$page|default=''}</ul>
  62 + </form>
  63 +</div>
  64 +<script src="__STATIC__/js/admin.js"></script>
  65 +<script>
  66 +
  67 + function reloadPage(win) {
  68 + win.location.reload();
  69 + }
  70 +
  71 + $(function () {
  72 + setCookie("refersh_time", 0);
  73 + Wind.use('ajaxForm', 'artDialog', 'iframeTools', function () {
  74 + //批量复制
  75 + $('.js-articles-copy').click(function (e) {
  76 + var ids = [];
  77 + $("input[name='ids[]']").each(function () {
  78 + if ($(this).is(':checked')) {
  79 + ids.push($(this).val());
  80 + }
  81 + });
  82 +
  83 + if (ids.length == 0) {
  84 + art.dialog.through({
  85 + id: 'error',
  86 + icon: 'error',
  87 + content: '您没有勾选信息,无法进行操作!',
  88 + cancelVal: '关闭',
  89 + cancel: true
  90 + });
  91 + return false;
  92 + }
  93 +
  94 + ids = ids.join(',');
  95 + art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=copy&ids=" + ids, {
  96 + title: "批量复制",
  97 + width: "300px"
  98 + });
  99 + });
  100 + //批量移动
  101 + $('.js-articles-move').click(function (e) {
  102 + var ids = [];
  103 + $("input[name='ids[]']").each(function () {
  104 + if ($(this).is(':checked')) {
  105 + ids.push($(this).val());
  106 + }
  107 + });
  108 +
  109 + if (ids.length == 0) {
  110 + art.dialog.through({
  111 + id: 'error',
  112 + icon: 'error',
  113 + content: '您没有勾选信息,无法进行操作!',
  114 + cancelVal: '关闭',
  115 + cancel: true
  116 + });
  117 + return false;
  118 + }
  119 +
  120 + ids = ids.join(',');
  121 + art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=move&old_term_id={$term.term_id|default=0}&ids=" + ids, {
  122 + title: "批量移动",
  123 + width: "300px"
  124 + });
  125 + });
  126 + });
  127 + });
  128 +</script>
  129 +<script src="http://www.jq22.com/jquery/1.11.1/jquery.min.js"></script>
  130 +<script src="/static/src/zoomify/zoomify.js"></script>
  131 +<script type="text/javascript">
  132 + $('.example img').zoomify();
  133 +</script>
  134 +</body>
  135 +</html>
  1 +<include file="public@header" />
  2 +<style>.expander{margin-left: -20px;}</style>
  3 +</head>
  4 +<body>
  5 + <div class="wrap js-check-wrap">
  6 + <ul class="nav nav-tabs">
  7 + <li><a href="{:url('rbac/index')}">{:lang('ADMIN_RBAC_INDEX')}</a></li>
  8 + <li><a href="{:url('rbac/roleAdd')}">{:lang('ADMIN_RBAC_ROLEADD')}</a></li>
  9 + <li class="active"><a href="javascript:;">{:lang('ADMIN_RBAC_AUTHORIZE')}</a></li>
  10 + </ul>
  11 + <form class="js-ajax-form margin-top-20" action="{:url('rbac/authorizePost')}" method="post">
  12 + <div class="table_full">
  13 + <table class="table table-bordered" id="authrule-tree">
  14 + <tbody>
  15 + {$category}
  16 + </tbody>
  17 + </table>
  18 + </div>
  19 + <div class="form-actions">
  20 + <input type="hidden" name="roleId" value="{$roleId}" />
  21 + <button class="btn btn-primary js-ajax-submit" type="submit">{:lang('SAVE')}</button>
  22 + <a class="btn btn-default" href="{:url('admin/rbac/index')}">{:lang('BACK')}</a>
  23 + </div>
  24 + </form>
  25 + </div>
  26 + <script src="__STATIC__/js/admin.js"></script>
  27 + <script type="text/javascript">
  28 + $(document).ready(function () {
  29 + Wind.css('treeTable');
  30 + Wind.use('treeTable', function () {
  31 + $("#authrule-tree").treeTable({
  32 + indent: 20
  33 + });
  34 + });
  35 + });
  36 +
  37 + function checknode(obj) {
  38 + var chk = $("input[type='checkbox']");
  39 + var count = chk.length;
  40 +
  41 + var num = chk.index(obj);
  42 + var level_top = level_bottom = chk.eq(num).attr('level');
  43 + for (var i = num; i >= 0; i--) {
  44 + var le = chk.eq(i).attr('level');
  45 + if (le <level_top) {
  46 + chk.eq(i).prop("checked", true);
  47 + var level_top = level_top - 1;
  48 + }
  49 + }
  50 + for (var j = num + 1; j < count; j++) {
  51 + var le = chk.eq(j).attr('level');
  52 + if (chk.eq(num).prop("checked")) {
  53 +
  54 + if (le > level_bottom){
  55 + chk.eq(j).prop("checked", true);
  56 + }
  57 + else if (le == level_bottom){
  58 + break;
  59 + }
  60 + } else {
  61 + if (le >level_bottom){
  62 + chk.eq(j).prop("checked", false);
  63 + }else if(le == level_bottom){
  64 + break;
  65 + }
  66 + }
  67 + }
  68 + }
  69 + </script>
  70 +</body>
  71 +</html>
  1 +<include file="public@header" />
  2 +</head>
  3 +<body>
  4 + <div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="{:url('rbac/index')}">{:lang('ADMIN_RBAC_INDEX')}</a></li>
  7 + <li><a href="{:url('rbac/roleAdd')}">{:lang('ADMIN_RBAC_ROLEADD')}</a></li>
  8 + </ul>
  9 + <form action="{:url('Rbac/listorders')}" method="post" class="margin-top-20">
  10 + <table class="table table-hover table-bordered">
  11 + <thead>
  12 + <tr>
  13 + <th width="40">ID</th>
  14 + <th align="left">{:lang('ROLE_NAME')}</th>
  15 + <th align="left">{:lang('ROLE_DESCRIPTION')}</th>
  16 + <th width="60" align="left">{:lang('STATUS')}</th>
  17 + <th width="160">{:lang('ACTIONS')}</th>
  18 + </tr>
  19 + </thead>
  20 + <tbody>
  21 + <foreach name="roles" item="vo">
  22 + <tr>
  23 + <td>{$vo.id}</td>
  24 + <td>{$vo.name}</td>
  25 + <td>{$vo.remark}</td>
  26 + <td>
  27 + <if condition="$vo['status'] eq 1">
  28 + <font color="red"></font>
  29 + <else />
  30 + <font color="red"></font>
  31 + </if>
  32 + </td>
  33 + <td>
  34 + <if condition="$vo['id'] eq 1">
  35 + <font color="#cccccc">{:lang('ROLE_SETTING')}</font> <!-- <a href="javascript:openIframeDialog('{:url('rbac/member',array('id'=>$vo['id']))}','成员管理');">成员管理</a> | -->
  36 + <font color="#cccccc">{:lang('EDIT')}</font> <font color="#cccccc">{:lang('DELETE')}</font>
  37 + <else />
  38 + <a href="{:url('Rbac/authorize',array('id'=>$vo['id']))}">{:lang('ROLE_SETTING')}</a>
  39 + <!-- <a href="javascript:openIframeDialog('{:url('rbac/member',array('id'=>$vo['id']))}','成员管理');">成员管理</a>| -->
  40 + <a href="{:url('Rbac/roleedit',array('id'=>$vo['id']))}">{:lang('EDIT')}</a>
  41 + <a class="js-ajax-delete" href="{:url('Rbac/roledelete',array('id'=>$vo['id']))}">{:lang('DELETE')}</a>
  42 + </if>
  43 + </td>
  44 + </tr>
  45 + </foreach>
  46 + </tbody>
  47 + </table>
  48 + </form>
  49 + </div>
  50 + <script src="__STATIC__/js/admin.js"></script>
  51 +</body>
  52 +</html>
  1 +<admintpl file="header" />
  2 +</head>
  3 +<body style="min-width: 600px;">
  4 + <div class="wrap">
  5 + <form method="post" class="js-ajax-form">
  6 + <table class="table table-hover">
  7 + <thead>
  8 + <tr>
  9 + <th align="center">ID</th>
  10 + <th>用户名</th>
  11 + <th>昵称</th>
  12 + <th>E-mail</th>
  13 + <th>角色名称</th>
  14 + <th align='center'>操作</th>
  15 + </tr>
  16 + </thead>
  17 + <tbody>
  18 + <foreach name="lists" item="vo">
  19 + <tr>
  20 + <td align="center">{$vo.id}</td>
  21 + <td>{$vo.user_login}</td>
  22 + <td>{$vo.user_nickname}</td>
  23 + <td>{$vo.user_email}</td>
  24 + <!-- <td>{:date('Y-m-d H:i:s', $vo['create_time'])}</td> -->
  25 + <td>{$vo.name}</td>
  26 + <td align="center">
  27 + <a href="{:U('user/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">删除</a>
  28 + </td>
  29 + </tr>
  30 + </foreach>
  31 + </tbody>
  32 + </table>
  33 + </form>
  34 + </div>
  35 + <script src="__STATIC__/js/admin.js"></script>
  36 +</body>
  37 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('rbac/index')}">{:lang('ADMIN_RBAC_INDEX')}</a></li>
  7 + <li class="active"><a href="{:url('rbac/roleadd')}">{:lang('ADMIN_RBAC_ROLEADD')}</a></li>
  8 + </ul>
  9 + <form class="form-horizontal js-ajax-form margin-top-20" action="{:url('rbac/roleAddPost')}" method="post">
  10 + <div class="form-group">
  11 + <label for="input-name" class="col-sm-2 control-label"><span class="form-required">*</span>{:lang('ROLE_NAME')}</label>
  12 + <div class="col-md-6 col-sm-10">
  13 + <input type="text" class="form-control" id="input-name" name="name">
  14 + </div>
  15 + </div>
  16 + <div class="form-group">
  17 + <label for="input-remark" class="col-sm-2 control-label">{:lang('ROLE_DESCRIPTION')}</label>
  18 + <div class="col-md-6 col-sm-10">
  19 + <textarea type="text" class="form-control" id="input-remark" name="remark"></textarea>
  20 + </div>
  21 + </div>
  22 + <div class="form-group">
  23 + <label class="col-sm-2 control-label">{:lang('STATUS')}</label>
  24 + <div class="col-md-6 col-sm-10">
  25 + <label class="radio-inline">
  26 + <input type="radio" name="status" value="1"> {:lang('ENABLED')}
  27 + </label>
  28 + <label class="radio-inline">
  29 + <input type="radio" name="status" value="0"> {:lang('DISABLED')}
  30 + </label>
  31 + </div>
  32 + </div>
  33 + <div class="form-group">
  34 + <div class="col-sm-offset-2 col-sm-10">
  35 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
  36 + </div>
  37 + </div>
  38 + </form>
  39 +</div>
  40 +<script src="__STATIC__/js/admin.js"></script>
  41 +</body>
  42 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('rbac/index')}">{:lang('ADMIN_RBAC_INDEX')}</a></li>
  7 + <li><a href="{:url('rbac/roleadd')}">{:lang('ADMIN_RBAC_ROLEADD')}</a></li>
  8 + <li class="active"><a>编辑角色</a></li>
  9 + </ul>
  10 + <form class="form-horizontal js-ajax-form margin-top-20" action="{:url('rbac/roleeditpost')}" method="post">
  11 + <div class="form-group">
  12 + <label for="input-name" class="col-sm-2 control-label"><span class="form-required">*</span>{:lang('ROLE_NAME')}</label>
  13 + <div class="col-md-6 col-sm-10">
  14 + <input type="text" class="form-control" id="input-name" name="name" value="{$data.name}">
  15 + </div>
  16 + </div>
  17 + <div class="form-group">
  18 + <label for="input-remark" class="col-sm-2 control-label">{:lang('ROLE_DESCRIPTION')}</label>
  19 + <div class="col-md-6 col-sm-10">
  20 + <textarea type="text" class="form-control" id="input-remark" name="remark">{$data.remark}</textarea>
  21 + </div>
  22 + </div>
  23 + <div class="form-group">
  24 + <label class="col-sm-2 control-label">{:lang('STATUS')}</label>
  25 + <div class="col-md-6 col-sm-10">
  26 + <label class="radio-inline">
  27 + <php>$active_true_checked=($data['status']==1)?"checked":"";</php>
  28 + <input type="radio" name="status" value="1" {$active_true_checked}> {:lang('ENABLED')}
  29 + </label>
  30 + <label class="radio-inline">
  31 + <php>$active_false_checked=($data['status']==0)?"checked":"";</php>
  32 + <input type="radio" name="status" value="0" {$active_false_checked}> {:lang('DISABLED')}
  33 + </label>
  34 + </div>
  35 + </div>
  36 + <div class="form-group">
  37 + <div class="col-sm-offset-2 col-sm-10">
  38 + <input type="hidden" name="id" value="{$data.id}"/>
  39 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('SAVE')}</button>
  40 + <a class="btn btn-default" href="{:url('admin/rbac/index')}">{:lang('BACK')}</a>
  41 + </div>
  42 + </div>
  43 + </form>
  44 +</div>
  45 +<script src="__STATIC__/js/admin.js"></script>
  46 +</body>
  47 +</html>
  1 +<include file="public@header" />
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="javascript:void(0)">回收站列表</a></li>
  7 + </ul>
  8 + <table class="table table-hover table-bordered margin-top-20">
  9 + <thead>
  10 + <tr>
  11 + <th width="50">ID</th>
  12 + <th>内容名称</th>
  13 + <th>内容类型</th>
  14 + <th>删除时间</th>
  15 + <th>操作人</th>
  16 + <th width="130">{:lang('ACTIONS')}</th>
  17 + </tr>
  18 + </thead>
  19 + <tbody>
  20 + <foreach name="list" item="vo">
  21 + <tr>
  22 + <td>{$vo.id}</td>
  23 + <td>{$vo.name}</td>
  24 + <td>
  25 + {:lang('TABLE_'.strtoupper($vo['table_name']))}
  26 + </td>
  27 + <td> {:date('Y-m-d H:i:s',$vo['create_time'])}</td>
  28 + <td> {:$vo.user.user_login}</td>
  29 + <td>
  30 + <a href="{:url('RecycleBin/restore',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn" data-msg="确定要还原吗?">还原</a>
  31 + <a href="{:url('RecycleBin/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">{:lang('DELETE')}</a>
  32 + </td>
  33 + </tr>
  34 + </foreach>
  35 + </tbody>
  36 + </table>
  37 + <div class="pagination">{$page}</div>
  38 +</div>
  39 +<script src="__STATIC__/js/admin.js"></script>
  40 +</body>
  41 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('route/index')}">URL美化</a></li>
  7 + <li class="active"><a href="{:url('route/add')}">添加URL规则</a></li>
  8 + </ul>
  9 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('route/addPost')}">
  10 + <div class="form-group">
  11 + <label for="input-full_url" class="col-sm-2 control-label">原始网址<span class="form-required">*</span></label>
  12 + <div class="col-md-6 col-sm-10">
  13 + <input type="text" class="form-control" id="input-full_url" name="full_url"> <a href="javascript:doSelectUrl();">选择规则</a>
  14 + </div>
  15 + </div>
  16 + <div class="form-group">
  17 + <label for="input-url" class="col-sm-2 control-label">显示网址<span class="form-required">*</span></label>
  18 + <div class="col-md-6 col-sm-10">
  19 + <input type="text" class="form-control" id="input-url" name="url">
  20 + <p class="help-block"><span id="url-vars"></span> url格式一般为list/:param1/:param2或 list-&lt;param1&gt;-&lt;param2&gt;
  21 + </p>
  22 + </div>
  23 + </div>
  24 + <div class="form-group">
  25 + <label for="input-status" class="col-sm-2 control-label">是否启用</label>
  26 + <div class="col-md-6 col-sm-10">
  27 + <select class="form-control" name="status" id="input-status">
  28 + <option value="1">启用</option>
  29 + <option value="0">禁用</option>
  30 + </select>
  31 + </div>
  32 + </div>
  33 + <div class="form-group">
  34 + <div class="col-sm-offset-2 col-sm-10">
  35 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('SAVE')}</button>
  36 + </div>
  37 + </div>
  38 + </form>
  39 +</div>
  40 +<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  41 +
  42 +<script>
  43 + function doSelectUrl() {
  44 + var selectedCategoriesId = $('#js-categories-id-input').val();
  45 + openIframeLayer("{:url('Route/select')}?ids=" + selectedCategoriesId, '请选择URL', {
  46 + area: ['95%', '90%'],
  47 + btn: ['确定', '取消'],
  48 + yes: function (index, layero) {
  49 +
  50 + var iframeWin = window[layero.find('iframe')[0]['name']];
  51 + var selectedUrl = iframeWin.confirm();
  52 +
  53 + if (selectedUrl) {
  54 + $('#input-full_url').val(selectedUrl.action);
  55 + $('#input-url').val(selectedUrl.url);
  56 + var helpBlock = selectedUrl.vars ? "URL参数有" + selectedUrl.vars + ',' : '';
  57 + $('#url-vars').text(helpBlock);
  58 + }
  59 + layer.close(index); //如果设定了yes回调,需进行手工关闭
  60 + }
  61 + });
  62 + }
  63 +</script>
  64 +</body>
  65 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li><a href="{:url('route/index')}">URL美化</a></li>
  7 + <li><a href="{:url('route/add')}">添加URL规则</a></li>
  8 + <li class="active"><a>编辑URL规则</a></li>
  9 + </ul>
  10 + <form method="post" class="form-horizontal js-ajax-form margin-top-20" action="{:url('route/editPost')}">
  11 + <div class="form-group">
  12 + <label for="input-full_url" class="col-sm-2 control-label">原始网址<span class="form-required">*</span></label>
  13 + <div class="col-md-6 col-sm-10">
  14 + <input type="text" class="form-control" id="input-full_url" name="full_url" value="{$full_url}">
  15 + </div>
  16 + </div>
  17 + <div class="form-group">
  18 + <label for="input-url" class="col-sm-2 control-label">显示网址<span class="form-required">*</span></label>
  19 + <div class="col-md-6 col-sm-10">
  20 + <input type="text" class="form-control" id="input-url" name="url" value="{$url}">
  21 + <p class="help-block"><span id="url-vars"></span> url格式一般为list/:param1/:param2或 list-&lt;param1&gt;-&lt;param2&gt;
  22 + </p>
  23 + </div>
  24 + </div>
  25 + <div class="form-group">
  26 + <label for="input-status" class="col-sm-2 control-label">是否启用</label>
  27 + <div class="col-md-6 col-sm-10">
  28 + <select class="form-control" name="status" id="input-status">
  29 + <option value="1">启用</option>
  30 + <php>$status_selected=$status?"":"selected";</php>
  31 + <option value="0" {$status_selected}>禁用</option>
  32 + </select>
  33 + </div>
  34 + </div>
  35 + <div class="form-group">
  36 + <div class="col-sm-offset-2 col-sm-10">
  37 + <input type="hidden" name="id" value="{$id}">
  38 + <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('SAVE')}</button>
  39 + <a class="btn btn-default" href="{:url('Route/index')}">返回</a>
  40 + </div>
  41 + </div>
  42 + </form>
  43 +</div>
  44 +<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  45 +</body>
  46 +</html>
  1 +<include file="public@header"/>
  2 +</head>
  3 +<body>
  4 +<div class="wrap js-check-wrap">
  5 + <ul class="nav nav-tabs">
  6 + <li class="active"><a href="{:url('route/index')}">URL美化</a></li>
  7 + <li><a href="{:url('route/add')}">添加URL规则</a></li>
  8 + </ul>
  9 + <form class="js-ajax-form" action="{:url('route/listOrder')}" method="post">
  10 + <div class="table-actions">
  11 + <button type="submit" class="btn btn-primary btn-sm js-ajax-submit">排序</button>
  12 + </div>
  13 + <table class="table table-hover table-bordered table-list">
  14 + <thead>
  15 + <tr>
  16 + <th width="50">排序</th>
  17 + <th width="50">ID</th>
  18 + <th>原始网址</th>
  19 + <th>显示网址</th>
  20 + <th>类型</th>
  21 + <th>状态</th>
  22 + <th width="130">操作</th>
  23 + </tr>
  24 + </thead>
  25 + <tbody>
  26 + <php>
  27 + $statuses=array('0'=>"已禁用","1"=>"已启用");
  28 + $types=array('1'=>"自定义","2"=>"别名定义");
  29 + </php>
  30 + <foreach name="routes" item="vo">
  31 + <tr>
  32 + <td>
  33 + <eq name="vo.type" value="2">
  34 + <input class="input-order" type="text" value="{$vo.list_order}" readonly>
  35 + <else/>
  36 + <input name="list_orders[{$vo.id}]" class="input-order" type="text"
  37 + value="{$vo.list_order}">
  38 + </eq>
  39 +
  40 + </td>
  41 + <td>{$vo.id}</td>
  42 + <td>{$vo.full_url}</td>
  43 + <td>{$vo.url}</td>
  44 + <td>
  45 + <eq name="vo.type" value="2">
  46 + <span class="label label-danger" data-toggle="tooltip" title="别名定义规则,无法编辑,排序">{$types[$vo['type']]}</span>
  47 + <else/>
  48 + <span class="label label-success" data-toggle="tooltip" title="自定义规则,可以编辑,排序">{$types[$vo['type']]}</span>
  49 + </eq>
  50 + </td>
  51 + <td>{$statuses[$vo['status']]}</td>
  52 + <td>
  53 + <eq name="vo.type" value="2">
  54 + 编辑 禁用 删除
  55 + <else/>
  56 + <a href="{:url('route/edit',array('id'=>$vo['id']))}">编辑</a>
  57 + <eq name="vo.status" value="1">
  58 + <a href="{:url('route/ban',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn"
  59 + data-msg="确定禁用吗?">禁用</a>
  60 + <else/>
  61 + <a href="{:url('route/open',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn"
  62 + data-msg="确定启用吗?">启用</a>
  63 + </eq>
  64 + <a href="{:url('route/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">删除</a>
  65 + </eq>
  66 + </td>
  67 + </tr>
  68 + </foreach>
  69 + </tbody>
  70 + <tfoot>
  71 + <tr>
  72 + <th width="50">排序</th>
  73 + <th width="50">ID</th>
  74 + <th>原始网址</th>
  75 + <th>显示网址</th>
  76 + <th>类型</th>
  77 + <th>状态</th>
  78 + <th width="130">操作</th>
  79 + </tr>
  80 + </tfoot>
  81 + </table>
  82 + <div class="table-actions">
  83 + <button type="submit" class="btn btn-primary btn-sm js-ajax-submit">排序</button>
  84 + </div>
  85 + </form>
  86 +</div>
  87 +<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
  88 +</body>
  89 +</html>