first commit

This commit is contained in:
wuaho 2021-09-06 11:50:33 +08:00
commit 511564ad6c
1786 changed files with 334641 additions and 0 deletions

10
.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
.buildpath
.DS_Store
.project
.settings
/data/
!/data/index.html
!/data/runtime/index.html
.idea

6
.htaccess Normal file
View File

@ -0,0 +1,6 @@
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

6
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,6 @@
如何贡献我的源代码
===
此文档介绍了 ThinkCMF 团队的组成以及运转机制,您提交的代码将给 ThinkCMF 项目带来什么好处,以及如何才能加入我们的行列。
## 通过 Github 贡献代码

5
Document.url Normal file
View File

@ -0,0 +1,5 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
URL=http://www.thinkcmf.com/index.php?m=document
IDList=

40
LICENSE.txt Normal file
View File

@ -0,0 +1,40 @@
ThinkCMF软件使用协议
版权所有(c)2012-2013,ThinkCMF开源社区
感谢您选择 ThinkCMF内容管理框架, 希望我们的产品能够帮您把网站发展的更快、更好、更强!
ThinkCMF遵循Apache2开源协议发布并提供免费使用。
ThinkCMF建站系统由简约风网络科技(以下简称简约风官网http://www.simplewind.net)发起并开源发布。
简约风网络科技包含以下网站:
ThinkCMF官网 http://www.thinkcmf.com
简约风官网http://www.simplewind.net
程序模板交流网站http://www.44ui.com
Apache Licence是著名的非盈利开源组织Apache采用的协议。
该协议鼓励代码共享和尊重原作者的著作权,允许代码修改,再作为开源或商业软件发布。需要满足的条件:
1 需要给代码的用户一份Apache Licence
2 如果你修改了代码,需要在被修改的文件中说明;
3 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明;
4 如果再发布的产品中包含一个Notice文件则在Notice文件中需要带有本协议内容。你可以在Notice中增加自己的许可但不可以表现为对Apache Licence构成更改。
具体的协议参考http://www.apache.org/licenses/LICENSE-2.0
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
ThinkCMF 免责声明
1、利用 ThinkCMF 构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果ThinkCMF 官方不承担任何责任。
2、您一旦安装使用ThinkCMF即被视为完全理解并接受本协议的各项条款在享有上述条款授予的权力的同时受到相关的约束和限制。
接 受

6
Nginx.conf Normal file
View File

@ -0,0 +1,6 @@
location / { // …..省略部分代码
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}

323
README.md Normal file
View File

@ -0,0 +1,323 @@
## README
ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架。ThinkCMF提出灵活的应用机制框架自身提供基础的管理功能而开发者可以根据自身的需求以应用的形式进行扩展。每个应用都能独立的完成自己的任务也可通过系统调用其他应用进行协同工作。在这种运行机制下开发商场应用的用户无需关心开发SNS应用时如何工作的但他们之间又可通过系统本身进行协调大大的降低了开发成本和沟通成本。
官网:http://www.thinkcmf.com
文档:http://www.thinkcmf.com/document
## UPDATE
### X2.2.2
* 优化chrome 上传文件时,打开文件选择框慢
* 修复后台文件添加编辑相册图片移除浏览器不兼容问题
* 修复文件上传在遨游下不能上传文件问题
* 修复后台登录错误时提示无样式
### X2.2.1
[Core]
* 优化前后台表单验证
* 优化手机分页的函数
* 优化frontend.js所有组件支持提示未登录时跳转
* 修复lang_switch_on关闭问题
* 修复评论后刷新页面评论消失
* common.js增加多文件上传方法upload_multi_file
[Admin]
* 优化后台分页
* 修复后台手动添加菜单不添加权限规则
* 修复后台图标不显示
* 修复后台菜单界面闪烁
* 增加url美化添加编辑时字段非空验证
* 修复后台拉黑后会员还能登录的问题
[Asset]
* 修复非图片文件上传后缩略片显示问题
[Install]
* 增加mbstring扩展检测
* 更改users表birthday字段默认值
[Portal]
* 增加获取面包屑数据方法是否获取当前分类参数
* 增加列表瀑布流演示功能
* 修复收藏文章问题
* 优化文章页上一篇、下一篇功能
[User]
* 优化登录页面跳转
* 修复后台用户列表手机注册用户用户名显示错误
* 修复前台用户收藏列表没有分页
### X2.2.0
[Core]
* 增加wind.js可以自定义重写jscss的版本
* 增加$_GET统一urldecode
* 增加cdn支持
* 增加微信浏览器判断
* 增加验证码生成安全性
* 增加\_\_WEB_ROOT\_\_模板常量
* 增加跨主题调用模板功能
* 增加include,extend,block,layout的支持
* 统一修复session用法问题
* 统一分页变量名为$page
* 统一修复系统所有变量未定义错误
* 优化前台手机模式下的分页
* 优化分页类
* 升级ueditor
* 修复编辑器不能插入动态地图问题
* 默认取消后台多语言功能
[Admin]
* 增加后台管理员搜索功能
* 增加友情链接图标上传
* 增加列表批量删除提示
* 增加邮件发送测试
* 优化发件箱连接方式用下拉列表选择
* 优化后台登录用户名cookie保存30天
* 优化已经登录直接跳转到后台首页
* 修复后台导航添加时卡死问题
* 修复插件更新配置时,配置文件状态不更新问题
* 修复后台留言列表留言时间错误
[Asset]
* 增加七牛cdn整体解决方案
* 增加统一上传限制,根据上传文件类型设置大小限制
* 增加上传文件名以应用名为前缀
* 优化文件上传统一使用plupload上传控件
* 优化七牛路径前缀
* 修复七牛上传bad token
* 修复编辑器的附件不能上传歌曲,歌词等文件类型
* 修复文章内容里图片上传时返回域名问题
* 修复七牛华北分区不能上传
[User]
* 增加后台用户搜索功能
* 增加前台未登录redirect
[Portal]
* 增加后台文章批量复制功能
* 增加面包屑功能
* 增加文章可以自己定义模板
* 更改后台文章列表以posts表为主表显示
* 更改article控制器参数(cid,id),id是posts表的主键id,cid是分类id
* 修复文章编辑界面没有取消审核功能
* 修复禁用的文章,在上一篇下一篇里还是会出现
[Install]
* 增加安装程序优化验证必须模块
* 安装程序优化再次安装时清除data/conf/config.php文件
### X2.1.0
* 修复前台导航缓存问题
* 修复个人中心mysql5.7下保存失败
* 文章评论插件化
* 增加系统评论插件
* 修复simplebootx模板config文件变量不对应
* 优化用户激活流程,防止已激活用户和被禁用用户两次发送激活邮件
* 更正数据库前台导航分类active注释
* 修复手机模板开启时跳转页面模板路径判断错误
* 修复重置密码后,重置密码链接仍可打开问题
* 增加后台评论管理查看原文功能
* 增强后台登录接口安全性
* 修复前台分页当前页选中问题
* 增加全局路由,强化URL美化功能
* 修复导航添加时导航分类选择问题
祝新年愉快,合家欢乐!
### X2.0.0
* 更改HomeBaseController.class.php文件名为HomebaseController.class.php
* 移动Common里的Portal model到Portal下
* 规范前后台模板目录themes ,admin/themes
* **注意以上升级,有助于您升级到最新版本**
* 增加对PHP7的支持
* 增强验证码易识别性;
* 增加后台从菜单栏点击立即刷新选项卡功能;
* 增加前台模板多语言,插件多语言;
* 增加后台多语言基础功能,语言包稍后升级完善;
* 优化后台模板文件;
* 优化后台登录界面;
* 优化前台登录、注册、找回密码界面;
* 优化common.js,frontend.js,规范一系列js-xxx-xxx命名和功能实现
* 优化文章编辑页布局和css
* 修复模板中U方法大小写错误
* 修复ip获取防止代理访问
* 修复success,error跳转页无手机模板问题
* 升级百度编辑器;
* 去除前台各处同意网站条款;
* 去除文章访问次数统计的ip限制
### X1.6.1
* 修复登录时仍然可以打开登录和注册界面
* 修复后台文章分类列表,点添加子类到添加分类界面父级分类选择错误
* 修复后台文章分类模板修复后不更新问题
* 修复编辑器里图片上传, 在文件存储选择七牛时图片title,alt属性不对
* 增加对php格式模板文件的支持
* 优化sp_get_menu方法,id为空时默认为主菜单
* 修复后台模板缺失</head>问题
* 修复Portal应用下文章页面和分类不存在时无404状态码
* 增加对模板继承标签tc_extend的支持
* 优化会员的拉黑起用功能,改为实时验证
* 增加url模式更改后出现不能访问问题的提示和解决方法
* 修复文章,幻灯片添加重复提交问题
### X1.6.0
* 增加静态缓存
* 增加form提交状态判断防止连续提交
* 增加后台被禁用角色和用户登录提示
* 增加文章可以添加到多个分类
* 增加管理员停用启用功能
* 增加文章来源版权申明
* 增加文章内容页面二维码
* 增加验证码统一判断方法
* 优化验证码自动刷新
* 优化后台样式
* 修复邮件配置更新时,不会立刻更新问题
* 修复后台手动新加的菜单时没有同步到auth_rule表
* 修复角色禁止后登陆报错
* 修复角色无法删除问题
* 修复后台视频上传出错!请注意上传大小限制,php.ini post_max_size,upload_max_filesize
* 修复后台菜单过多不显示
* 修复后台管理登录可能会被暴力破解
* 修复后台菜单列表层级问题
* 修复启用后被删除的插件执行报错
### X1.5.0
* 增加插件机制
* 增加编辑器附件上传功能
* 核心升级至thinkphp 3.2.3必须开启php_pdo_mysql扩展
* 优化系统权限管理增加auth+rbac混合认证模式
* 增加文件存储扩展支持,默认支持本地和七牛云存储
* 增加手机模板支持
* 增加手机模板侦测后台开启关闭功能,默认关闭手机模板侦测
* 增加MUI手机开发框架
* 增加评论时间间隔设置
* 增加视频插入
* 增加去除模板文件里面的html空格与换行
* 增加后台管理员列表分页
* 增加文章页上一篇、下一篇功能
* 优化菜单管理方式,采用增加文件方式菜单管理,方便程序升级
* 优化导航鼠标划过下拉菜单
* 优化管理员信息编辑,增加字段过滤
* 优化非后台入口登录跳转到首页
* 修复simplebootx搜索链接错误
* 修复ucenter各种问题
* 修复后台邮件发件人无法设置
* 修复入口文件SITE_PATH常量部分服务器异常
* 修复sae头像裁剪
* 修复分类编辑时层级出错
* 修复备份还原数据为空
* 统一所有模块模板路径分割符为/
* 删除thinkphp Vendor目录第三方类库
* 移除SendMail方法
* 替换scandir方法为sp_scan_dir
* 统一SAE判断方法
* 统一ajaxReturn为thinkphp 3.2.*以后用法如果一直用thinkphp 3.0以前的用法扩展时注意用sp_ajax_return()做一下升级
注:后台模板分割符已经统一为/原来的类似Admin/Main.index.html文件已经改为Admin/Main/index.html请后台开发时注意
ThinkCMF全体贡献者祝大家2015年大吉大利开心幸福《给你一个吻》
### X1.3.0
* 统一Action为Controller
* 增加文章搜索功能
* 增加前台编辑器
* 增加模板常量__STATICS__
* 增加最后评论时间写入
* 修复leuu bug
* CommonModel _before_write 数据过滤bug
* 后台评论管理,默认所有评论
* 文章分类path更新优化
* simplebootx模板文章页css样式优化
* 修复分页类bug
* 后台文章编辑所有文章链接错误
* 修复bug#4验证码不显示
* 优化bug#3页面使用LEUU函数后每个页面都查询
* 优化公共模型的调用方法以兼容php5.3.0-5.3.2
* 修复sp_sql_posts_bycatid和sp_sql_posts_paged_bycatid两个方法where语句问题
* 修复bluesky主题分页样式问题
* 修复文章推荐置顶bug
### X1.2.0
* url美化
* 特殊用户名过滤
* 增加推荐,置顶功能
* 幻灯片隐藏显示功能
* 广告隐藏显示功能
* 友情链接隐藏显示功能
* 评论计数
### X1.1.0
全新的ThinkPHP 3.2.2架构使用php命名空间让开发快起来吧
* 统一Member应用为User,合并前台会员和后台管理员
* 完善用户中心,会员登录注册
* 增加编辑头像,绑定账号,我的评论,我的收藏
* 增加文章点赞,收藏,查看功能,可与其它应用共用
* 增强文章评论功能,方便多应用共用
* 优化留言功能,增强安全性
* 优化前台模板,增加多个实用组件,方便以后复用
* 增加后台风格切换功能;
* 增加后台风格bluesky
* 优化后台菜单使用方式
* 优化数据库中一些不规范字段
* 增加前台标签库TagLibHome统一include标签为tc_include
### X1.0.0
全新的ThinkPHP 3.2.2架构使用php命名空间让开发快起来吧
* 统一前后台UI框架为simpleboot(bootstrap 2.3.2 ThinkCMF优化版)
* 集成Ucenter
* 增加文章评论功能
* 增加留言功能
* 全面支持SAE云平台
* 增加文章内分页功能
* 升级后台编辑器到Ueditor最新版本
* 优化后台ajax提交未登陆时自动退出
* 优化后台所有文章按发布时间递减排序
* 修复后台密码会偶然不对的错误
* 修复SAElinux下类库加载失败
* 修复ueditor chrome模板功能bug
* 修复文件上传bug
### X1.0.0 alpha2
* 修复SAElinux下类库加载失败
* 修复ueditor chrome模板功能bug
* 修复文件上传bug
### X1.0.0 alpha
全新的ThinkPHP 3.2.2架构使用php命名空间让开发快起来吧
* 集成Ucenter
* 增加文章评论功能
* 增加留言功能
* 全面支持SAE云平台
* 增加文章内分页功能
* 升级后台编辑器到Ueditor最新版本
* 优化后台ajax提交未登陆时自动退出
* 优化后台所有文章按发布时间递减排序
* 修复后台密码会偶然不对的错误
## INSTALL
安装请执行http://yourdomain/
## ThinkCMF 免责声明
1、利用 ThinkCMF 构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果ThinkCMF 官方不承担任何责任。
2、您一旦安装使用ThinkCMF即被视为完全理解并接受本协议的各项条款在享有上述条款授予的权力的同时受到相关的约束和限制。
## ThinkCMF 使用建议
请在您的网站首页加上ThinkCMF相关链接O(∩_∩)O~
## 捐赠ThinkCMF
http://www.thinkcmf.com/donate/index.html
您的每一份帮助都将支持ThinkCMF做的更好走的更远
ThinkCMF 正在为你开放更多....

1
a443.html Normal file
View File

@ -0,0 +1 @@
443你好

4
admin/.htaccess Normal file
View File

@ -0,0 +1,4 @@
<Files *.html>
Order Allow,Deny
Deny from all
</Files>

9
admin/index.php Normal file
View File

@ -0,0 +1,9 @@
<?php
/**
* 后台入口文件
*/
$upw =empty($_GET['upw'])?"":'&upw='.$_GET['upw'];
header("Location: ../index.php?g=admin&m=public&a=login".$upw );

View File

@ -0,0 +1,33 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('ad/index')}">{:L('ADMIN_AD_INDEX')}</a></li>
<li class="active"><a href="{:U('ad/add')}">{:L('ADMIN_AD_ADD')}</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('ad/add_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('NAME')}</label>
<div class="controls">
<input type="text" name="ad_name">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('AD_CONTENT')}</label>
<div class="controls">
<textarea name="ad_content" rows="5" cols="57"></textarea>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('ADD')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,34 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('ad/index')}">{:L('ADMIN_AD_INDEX')}</a></li>
<li><a href="{:U('ad/add')}">{:L('ADMIN_AD_ADD')}</a></li>
<li class="active"><a>编辑广告</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('ad/edit_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('NAME')}</label>
<div class="controls">
<input type="text" name="ad_name" value="{$ad_name}"><span class="form-required">*</span>
<input type="hidden" name="ad_id" value="{$ad_id}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('AD_CONTENT')}</label>
<div class="controls">
<textarea name="ad_content" rows="5" cols="57">{$ad_content}</textarea>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,61 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('ad/index')}">{:L('ADMIN_AD_INDEX')}</a></li>
<li><a href="{:U('ad/add')}">{:L('ADMIN_AD_ADD')}</a></li>
</ul>
<form method="post" class="js-ajax-form">
<div class="table-actions">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('ad/toggle',array('display'=>1))}" data-subcheck="true">{:L('DISPLAY')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('ad/toggle',array('hide'=>1))}" data-subcheck="true">{:L('HIDE')}</button>
</div>
<php> $status=array("1"=>L('DISPLAY'),"0"=>L('HIDDEN')); </php>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="16"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="50">ID</th>
<th>{:L('NAME')}</th>
<th>{:L('HOW_TO_USE')}</th>
<th width="45">{:L('STATUS')}</th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</thead>
<tbody>
<foreach name="ads" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]" value="{$vo.ad_id}"></td>
<td>{$vo.ad_id}</td>
<td>{$vo.ad_name}</td>
<php>$usercode="{".":sp_getad('".$vo['ad_name']."')}";</php>
<td>{$usercode}</td>
<td>{$status[$vo['status']]}</td>
<td>
<a href="{:U('ad/edit',array('id'=>$vo['ad_id']))}">{:L('EDIT')}</a> |
<a href="{:U('ad/delete',array('id'=>$vo['ad_id']))}" class="js-ajax-delete">{:L('DELETE')}</a>
</td>
</tr>
</foreach>
</tbody>
<tfoot>
<tr>
<th width="16"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="50">ID</th>
<th>{:L('NAME')}</th>
<th>{:L('HOW_TO_USE')}</th>
<th width="45">{:L('STATUS')}</th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('ad/toggle',array('display'=>1))}" data-subcheck="true">{:L('DISPLAY')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('ad/toggle',array('hide'=>1))}" data-subcheck="true">{:L('HIDE')}</button>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1 @@
<admintpl file="boot/index"/>

View File

@ -0,0 +1,56 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('link/index')}">{:L('ADMIN_LINK_INDEX')}</a></li>
<li class="active"><a href="{:U('link/add')}">{:L('ADMIN_LINK_ADD')}</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('link/add_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('NAME')}</label>
<div class="controls">
<input type="text" name="link_name">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('LINK_ADDRESS')}</label>
<div class="controls">
<input type="text" name="link_url">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('LINK_ICON')}</label>
<div class="controls">
<input type="text" name="link_image" id="js-link-image"> <a href="javascript:upload_one_image('图片上传','#js-link-image');">上传图片</a>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('LINK_TARGET')}</label>
<div class="controls">
<select name="link_target">
<foreach name="targets" item="vo">
<option value="{$key}">{$vo}</option>
</foreach>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('LINK_DESCRIPTION')}</label>
<div class="controls">
<textarea name="link_description" rows="5" cols="57"></textarea>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('ADD')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,59 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('link/index')}">{:L('ADMIN_LINK_INDEX')}</a></li>
<li><a href="{:U('link/add')}">{:L('ADMIN_LINK_ADD')}</a></li>
<li class="active"><a>编辑友情链接</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('link/edit_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('NAME')}</label>
<div class="controls">
<input type="text" name="link_name" value="{$link_name}">
<span class="form-required">*</span>
<input type="hidden" name="link_id" value="{$link_id}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('LINK_ADDRESS')}</label>
<div class="controls">
<input type="text" name="link_url" value="{$link_url}">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('LINK_ICON')}</label>
<div class="controls">
<input type="text" name="link_image" value="{$link_image}" id="js-link-image"> <a href="javascript:upload_one_image('图片上传','#js-link-image');">上传图片</a>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('LINK_TARGET')}</label>
<div class="controls">
<select name="link_target">
<foreach name="targets" item="vo">
<php>$link_target_selected=$link_target==$key?"selected='selected'":"";</php>
<option value="{$key}" {$link_target_selected}>{$vo}</option>
</foreach>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('LINK_DESCRIPTION')}</label>
<div class="controls">
<textarea name="link_description" rows="5" cols="57">{$link_description}</textarea>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,65 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('link/index')}">{:L('ADMIN_LINK_INDEX')}</a></li>
<li><a href="{:U('link/add')}">{:L('ADMIN_LINK_ADD')}</a></li>
</ul>
<form method="post" class="js-ajax-form" action="{:U('Link/listorders')}">
<div class="table-actions">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit">{:L('SORT')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('link/toggle',array('display'=>1))}" data-subcheck="true">{:L('DISPLAY')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('link/toggle',array('hide'=>1))}" data-subcheck="true">{:L('HIDE')}</button>
</div>
<php>$status=array("1"=>L('DISPLAY'),"0"=>L('HIDDEN'));</php>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="16"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="50">{:L('SORT')}</th>
<th width="50">ID</th>
<th>{:L('NAME')}</th>
<th>{:L('LINK_ADDRESS')}</th>
<th width="45">{:L('STATUS')}</th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</thead>
<tbody>
<foreach name="links" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]" value="{$vo.link_id}"></td>
<td><input name='listorders[{$vo.link_id}]' class="input input-order mr5" type='text' size='3' value='{$vo.listorder}'></td>
<td>{$vo.link_id}</td>
<td>{$vo.link_name}</td>
<td><a href="{$vo.link_url}" target="_blank">{$vo.link_url}</a></td>
<td>{$status[$vo['link_status']]}</td>
<td>
<a href="{:U('link/edit',array('id'=>$vo['link_id']))}">{:L('EDIT')}</a>|
<a href="{:U('link/delete',array('id'=>$vo['link_id']))}" class="js-ajax-delete">{:L('DELETE')}</a>
</td>
</tr>
</foreach>
</tbody>
<tfoot>
<tr>
<th width="16"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="50">{:L('SORT')}</th>
<th width="50">ID</th>
<th>{:L('NAME')}</th>
<th>{:L('LINK_ADDRESS')}</th>
<th width="45">{:L('STATUS')}</th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit">{:L('SORT')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('link/toggle',array('display'=>1))}" data-subcheck="true">{:L('DISPLAY')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('link/toggle',array('hide'=>1))}" data-subcheck="true">{:L('HIDE')}</button>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,57 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="#" data-toggle="tab">{:L('ADMIN_MAILER_ACTIVE')}</a></li>
</ul>
<div class="common-form">
<form method="post" class="form-horizontal js-ajax-form" action="{:U('Admin/mailer/active_post')}">
<table cellpadding="2" cellspacing="2" width="100%">
<tbody>
<tr>
<td width="100">{:L('EMAIL_ACTIVATION')}</td>
<td>
<php>
$radio1=''; $radio2=' checked';
if(C('SP_MEMBER_EMAIL_ACTIVE')==1){
$radio1=' checked';
$radio2='';
}
</php>
<label class="radio inline" for="lightup_true"> <input type="radio" {$radio1} id="lightup_true" class="radio" name="lightup" value="1" />{:L('OPEN')}</label> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label class="radio inline" for="lightup_false"> <input type="radio" {$radio2} id="lightup_false" class="radio" name="lightup" value="0" />{:L('CLOSE')}</label>
</td>
</tr>
<tr>
<td>{:L('EMAIL_SUBJECT')}</td>
<td><input type="text" name="options[title]" value="{$options.title}"/></td>
</tr>
<tr>
<td>{:L('EMAIL_TEMPLATE')}</td>
<td>
<script type="text/plain" id="content" name="options[template]">{$options.template}</script>
<span style="color: #ffb752;">{:L('EMAIL_TEMPLATE_HELP_TEXT',array('link'=>'http://#link#','username'=>'#username#'))}</span>
</td>
</tr>
</tbody>
</table>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
</div>
</form>
</div>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script type="text/javascript">
//编辑器路径定义
var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
var editorcontent = new baidu.editor.ui.Editor();
editorcontent.render('content');
</script>
</body>
</html>

View File

@ -0,0 +1,76 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="#" data-toggle="tab">{:L('ADMIN_MAILER_INDEX')}</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('Admin/mailer/index_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('SENDER_NAME')}</label>
<div class="controls">
<input type="text" name="sender" value="{$Think.config.SP_MAIL_SENDER}" />
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('SENDER_EMAIL_ADDRESS')}</label>
<div class="controls">
<input type="text" name="address" value="{$Think.config.SP_MAIL_ADDRESS}" />
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('SENDER_SMTP_SERVER')}</label>
<div class="controls">
<input type="text" name="smtp" value="{$Think.config.SP_MAIL_SMTP}" />
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">连接方式</label>
<div class="controls">
<select name="smtpsecure" id="js-smtpsecure">
<option value="">默认</option>
<option value="ssl">ssl</option>
<option value="tls">tls</option>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">SMTP服务器端口</label>
<div class="controls">
<input type="text" name="smtp_port" value="{$Think.config.SP_MAIL_SMTP_PORT}" placeholder="默认为25"/>
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('SMTP_MAIL_ADDRESS')}</label>
<div class="controls">
<input type="text" name="loginname" value="{$Think.config.SP_MAIL_LOGINNAME}" />
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('SMTP_MAIL_PASSWORD')}</label>
<div class="controls">
<input type="password" name="password" value="{$Think.config.SP_MAIL_PASSWORD}" />
<span class="form-required">*</span>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
<a class="btn btn-warning" href="javascript:parent.open_iframe_dialog('{:U('mailer/test')}','发送测试邮件',{})">测试邮件</a>
</div>
</fieldset>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
$(function(){
$('#js-smtpsecure').val('{$Think.config.SP_MAIL_SECURE}');
});
</script>
</body>
</html>

View File

@ -0,0 +1,35 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<form method="post" class="form-horizontal js-ajax-form" action="{:U('mailer/test')}">
<fieldset>
<div class="control-group">
<label class="control-label">收件箱</label>
<div class="controls">
<input type="text" name="to">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">标题</label>
<div class="controls">
<input type="text" name="subject">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">内容</label>
<div class="controls">
<textarea name="content" rows="5" cols="57"></textarea>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">发送</button>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,21 @@
<admintpl file="header" />
<style>
.home_info li em {
float: left;
width: 120px;
font-style: normal;
}
li {
list-style: none;
}
</style>
</head>
<body>
<div class="wrap">
<div id="home_toptip"></div>
<h4 class="well">{:L('SYSTEM_NOTIFICATIONS')}</h4>
<div class="home_info">
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,96 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('menu/index')}">{:L('ADMIN_MENU_INDEX')}</a></li>
<li class="active"><a href="{:U('menu/add')}">{:L('ADMIN_MENU_ADD')}</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('Menu/add_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">上级:</label>
<div class="controls">
<select name="parentid">
<option value="0">作为一级菜单</option>
{$select_categorys}
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">名称:</label>
<div class="controls">
<input type="text" name="name">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">应用:</label>
<div class="controls">
<input type="text" name="app" id="app">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">控制器:</label>
<div class="controls">
<input type="text" name="model" id="model">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">方法:</label>
<div class="controls">
<input type="text" name="action" id="action">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">参数:</label>
<div class="controls">
<input type="text" name="data">
例:id=3&amp;p=3
</div>
</div>
<div class="control-group">
<label class="control-label">图标:</label>
<div class="controls">
<input type="text" name="icon" id="action">
<a href="http://www.thinkcmf.com/font/icons" target="_blank">选择图标</a> 不带前缀fa-如fa-user => user
</div>
</div>
<div class="control-group">
<label class="control-label">备注:</label>
<div class="controls">
<textarea name="remark" rows="5" cols="57" style="width: 500px;"></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">状态:</label>
<div class="controls">
<select name="status">
<option value="1">显示</option>
<option value="0">隐藏</option>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">类型:</label>
<div class="controls">
<select name="type">
<option value="1" selected>权限认证+菜单</option>
<option value="0">只作为菜单</option>
</select>
注意:“权限认证+菜单”表示加入后台权限管理,纯碎是菜单项请不要选择此项。
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('ADD')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,24 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<div id="error_tips">
<h2>菜单已同步!</h2>
<div class="error_cont">
<ul>
<li>菜单已同步!</li>
</ul>
<div class="error_return">
<a href="{:U('menu/index')}" class="btn">关闭</a>
</div>
</div>
</div>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
var close_timeout = setTimeout(function() {
location.href = "{:U('menu/index')}";
}, 2000);
</script>
</body>
</html>

View File

@ -0,0 +1,122 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('menu/index')}">{:L('ADMIN_MENU_INDEX')}</a></li>
<li><a href="{:U('menu/add')}">{:L('ADMIN_MENU_ADD')}</a></li>
<li class="active"><a>编辑菜单</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('Menu/edit_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">上级:</label>
<div class="controls">
<select name="parentid">
<option value="0">作为一级菜单</option>{$select_categorys}
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">名称:</label>
<div class="controls">
<input type="text" name="name" value="{$data.name}">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">应用:</label>
<div class="controls">
<input type="text" name="app" value="{$data.app}">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">控制器:</label>
<div class="controls">
<input type="text" name="model" value="{$data.model}">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">方法:</label>
<div class="controls">
<input type="text" name="action" value="{$data.action}">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">参数:</label>
<div class="controls">
<input type="text" name="data" value="{$data.data}"> 例:id=3&amp;p=3
</div>
</div>
<div class="control-group">
<label class="control-label">图标:</label>
<div class="controls">
<input type="text" name="icon" value="{$data.icon}">
<a href="http://www.thinkcmf.com/font/icons" target="_blank">选择图标</a> 不带前缀fa-如fa-user => user
</div>
</div>
<div class="control-group">
<label class="control-label">备注:</label>
<div class="controls">
<textarea name="remark" rows="5" cols="57" style="width: 500px;">{$data.remark}</textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">状态:</label>
<div class="controls">
<select name="status">
<option value="1">显示</option>
<php>$status_selected=empty($data['status'])?"selected":"";</php>
<option value="0" {$status_selected}>隐藏</option>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">类型:</label>
<div class="controls">
<select name="type">
<option value="1">权限认证+菜单</option>
<php>$type_selected=empty($data['type'])?"selected":"";</php>
<option value="0" {$type_selected}>只作为菜单</option>
</select>
注意:“权限认证+菜单”表示加入后台权限管理,纯碎是菜单项请不要选择此项。
</div>
</div>
</fieldset>
<div class="form-actions">
<input type="hidden" name="id" value="{$data.id}" />
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
<!-- <button class="btn js-ajax-close-btn" type="submit">{:L('CLOSE')}</button> -->
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
$(function() {
$(".js-ajax-close-btn").on('click', function(e) {
e.preventDefault();
Wind.use("artDialog", function() {
art.dialog({
id : "question",
icon : "question",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : "您确定需要关闭当前页面嘛?",
ok : function() {
setCookie('refersh_time_admin_menu_index', 1);
window.close();
return true;
}
});
});
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,24 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<div id="error_tips">
<h2>菜单备份成功!</h2>
<div class="error_cont">
<ul>
<li>菜单备份成功!</li>
</ul>
<div class="error_return">
<a href="{:U('menu/index')}" class="btn">关闭</a>
</div>
</div>
</div>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
var close_timeout = setTimeout(function() {
location.href = "{:U('menu/index')}";
}, 2000);
</script>
</body>
</html>

View File

@ -0,0 +1,38 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<div id="error_tips">
<h2>应用{$app}菜单导入成功!</h2>
<div class="error_cont">
<ul>
<if condition="!empty($newmenus)">
<foreach name="newmenus" item="vo">
<li>{$vo}</li>
</foreach>
<else />
<li>应用{$app}没有新菜单导入!</li>
</if>
</ul>
<if condition="!empty($nextapp)">
<script>
setTimeout(function() {
location.href = "{:U('admin/menu/getactions',array('app'=>$nextapp))}";
}, 1000);
</script>
<div class="error_return">
<a href="{:U('admin/menu/getactions',array('app'=>$nextapp))}" class="btn btn-primary">下一个应用</a>
<a href="{:U('admin/menu/index')}" class="btn" style="margin-left: 10px;">返回</a>
</div>
<else />
<div>全部导入成功!</div>
<div class="error_return">
<a href="{:U('menu/index')}" class="btn">返回</a>
</div>
</if>
</div>
</div>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,38 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<div id="error_tips">
<h2>
<if condition="empty($errormenus)">
菜单导入成功!
<else />
菜单导入失败!
</if>
</h2>
<div class="error_cont">
<ul>
<if condition="empty($errormenus)">
菜单导入成功!
<else />
<foreach name="errormenus" item="vo">
<li>{$vo}导入失败!</li>
</foreach>
</if>
</ul>
<div class="error_return">
<a href="{:U('menu/index')}" class="btn">返回</a>
</div>
</div>
</div>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<if condition="empty($errormenus)">
<script>
var close_timeout = setTimeout(function() {
location.href = "{:U('menu/index')}";
}, 2000);
</script>
</if>
</body>
</html>

View File

@ -0,0 +1,64 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('menu/index')}">{:L('ADMIN_MENU_INDEX')}</a></li>
<li><a href="{:U('menu/add')}">{:L('ADMIN_MENU_ADD')}</a></li>
<li><a href="{:U('menu/lists')}">{:L('ADMIN_MENU_LISTS')}</a></li>
</ul>
<form class="js-ajax-form" action="{:U('Menu/listorders')}" method="post">
<div class="table-actions">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit">{:L('SORT')}</button>
</div>
<table class="table table-hover table-bordered table-list" id="menus-table">
<thead>
<tr>
<th width="80">{:L('SORT')}</th>
<th width="50">ID</th>
<th>{:L('APP')}</th>
<th>{:L('NAME')}</th>
<th width="80">{:L('STATUS')}</th>
<th width="180">{:L('ACTIONS')}</th>
</tr>
</thead>
<tbody>
{$categorys}
</tbody>
<tfoot>
<tr>
<th width="80">{:L('SORT')}</th>
<th width="50">ID</th>
<th>{:L('APP')}</th>
<th>{:L('NAME')}</th>
<th width="80">{:L('STATUS')}</th>
<th width="180">{:L('ACTIONS')}</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit">{:L('SORT')}</button>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
$(document).ready(function() {
Wind.css('treeTable');
Wind.use('treeTable', function() {
$("#menus-table").treeTable({
indent : 20
});
});
});
setInterval(function() {
var refersh_time = getCookie('refersh_time_admin_menu_index');
if (refersh_time == 1) {
reloadPage(window);
}
}, 1000);
setCookie('refersh_time_admin_menu_index', 0);
</script>
</body>
</html>

View File

@ -0,0 +1,59 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('menu/index')}">后台菜单</a></li>
<li><a href="{:U('menu/add')}">添加菜单</a></li>
<li class="active"><a href="{:U('menu/lists')}">所有菜单</a></li>
</ul>
<form class="form-horizontal js-ajax-form" action="{:U('Menu/listorders')}" method="post">
<div class="table-actions">
<a class="btn btn-primary btn-small js-ajax-dialog-btn" href="{:U('menu/restore_menu')}" data-msg="您确定恢复已备份菜单吗?它将覆盖您已经更新的菜单!">恢复菜单</a>
<a class="btn btn-primary btn-small js-ajax-dialog-btn" href="{:U('menu/backup_menu')}" data-msg="您确定备份菜单吗?">备份菜单</a>
<a class="btn btn-primary btn-small js-ajax-dialog-btn" href="{:U('menu/export_menu_lang')}" data-msg="您确定生成菜单多语言包吗请确保应用目录下Lang目录可写">生成菜单多语言包</a>
<a class="btn btn-warning btn-small" href="{:U('menu/getactions')}">导入新菜单</a>
</div>
<div class="alert alert-warning" style="margin: 0 0 5px 0;">
请在开发人员指导下进行以上操作!
</div>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="50">ID</th>
<th>菜单英文名称</th>
<th width="40">状态</th>
<th width="80">管理操作</th>
</tr>
</thead>
<foreach name="menus" item="vo">
<tr>
<td>{$vo.id}</td>
<td>{$vo.name}:{$vo.app}/{$vo.model}/{$vo.action}</td>
<td>
<if condition="$vo['status'] eq 1">
显示
<else />
隐藏
</if>
</td>
<td>
<a href="{:U('menu/edit',array('id'=>$vo['id']))}">修改</a> |
<a class="js-ajax-delete" href="{:U('menu/delete',array('id'=>$vo['id']))}">删除</a>
</td>
</tr>
</foreach>
<tfoot>
<tr>
<th width="50">ID</th>
<th>菜单英文名称</th>
<th width="40">状态</th>
<th width="80">管理操作</th>
</tr>
</tfoot>
</table>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,113 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('nav/index')}">{:L('ADMIN_NAV_INDEX')}</a></li>
<li class="active"><a href="{:U('nav/add')}">{:L('ADMIN_NAV_ADD')}</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('nav/add_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('NAVIGATION_CATEGORY')}</label>
<div class="controls">
<select name="cid" id="navcid_select">
<foreach name="navcats" item="vo">
<php>$navcid_selected=$navcid==$vo['navcid']?"selected":"";</php>
<option value="{$vo.navcid}" {$navcid_selected}>{$vo.name}</option>
</foreach>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('PARENT')}</label>
<div class="controls">
<select name="parentid">
<option value="0">/</option>
{$nav_trees}
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('LABEL')}</label>
<div class="controls">
<input type="text" name="label" value=""><span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('HREF')}</label>
<div class="controls">
<input type="radio" name="nav" id="outlink_radio">
<input type="text" name="href" id="outlink_input" value="http://">
<input type="radio" name="nav" id="selecturl_radio">
<select name="href" id="selecthref">
<option value="{:base64_encode('home')}">{:L('HOME')}</option>
<foreach name="navs" item="vo">
<optgroup label="{$vo.name}">
{$vo.html}
</optgroup>
</foreach>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('TARGET')}</label>
<div class="controls">
<select name="target">
<option value="">{:L('TARGET_DEFAULT')}</option>
<option value="_blank">{:L('TARGET_BLANK')}</option>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('ICON')}</label>
<div class="controls">
<input type="text" name="icon" value="">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('STATUS')}</label>
<div class="controls">
<select name="status">
<option value="1">{:L('DISPLAY')}</option>
<option value="0">{:L('HIDDEN')}</option>
</select>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('ADD')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
$(function() {
$("#navcid_select").change(function() {
if(location.search.indexOf("?")>=0){
location.href = location.href + "&cid=" + $(this).val();
}else{
location.href = location.href + "?cid=" + $(this).val();
}
});
$("#selecthref,#selecturl_radio").click(function() {
$('#outlink_input').removeAttr('name');
$(this).attr('name','href');
$('#selecturl_radio').attr({
'checked' : 'checked'
});
});
$("#outlink_input,#outlink_radio").click(function() {
$('#selecthref').removeAttr('name');
$('#outlink_input').attr('name','external_href');
$('#outlink_radio').attr({
'checked' : 'checked'
});
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,134 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('nav/index')}">{:L('ADMIN_NAV_INDEX')}</a></li>
<li><a href="{:U('nav/add')}">{:L('ADMIN_NAV_ADD')}</a></li>
<li class="active"><a>编辑菜单</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('nav/edit_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('NAVIGATION_CATEGORY')}</label>
<div class="controls">
<select name="cid" id="navcid_select">
<foreach name="navcats" item="vo">
<php>$navcid_selected=$navcid==$vo['navcid']?"selected":"";</php>
<option value="{$vo.navcid}" {$navcid_selected}>{$vo.name}</option>
</foreach>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('PARENT')}</label>
<div class="controls">
<select name="parentid">
<option value="0">/</option>
{$nav_trees}
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('LABEL')}</label>
<div class="controls">
<input type="text" name="label" value="{$label}"><span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('HREF')}</label>
<div class="controls">
<input type="radio" name="nav" id="outlink_radio">
<input type="text" name="href" id="outlink_input" value="http://">
<input type="radio" name="nav" id="selecturl_radio">
<select name="href" id="selecthref">
<option value="{:base64_encode('home')}">{:L('HOME')}</option>
<foreach name="navs" item="vo">
<optgroup label="{$vo.name}">
{$vo.html}
</optgroup>
</foreach>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('TARGET')}</label>
<div class="controls">
<select name="target">
<option value="">{:L('TARGET_DEFAULT')}</option>
<option value="_blank">{:L('TARGET_BLANK')}</option>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('ICON')}</label>
<div class="controls">
<input type="text" name="icon" value="{$icon}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('STATUS')}</label>
<div class="controls">
<select name="status">
<option value="1">{:L('DISPLAY')}</option>
<php>$status_selected=empty($status)?"selected":"";</php>
<option value="0" {$status_selected}>{:L('HIDDEN')}</option>
</select>
</div>
</div>
</fieldset>
<div class="form-actions">
<input type="hidden" name="id" value="{$id}">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
$(function() {
$("#navcid_select").change(function() {
if(location.search.indexOf("?")>=0){
location.href = location.href + "&cid=" + $(this).val();
}else{
location.href = location.href + "?cid=" + $(this).val();
}
});
$("#selecthref,#selecturl_radio").click(function() {
checkChange(2);
});
$("#outlink_input,#outlink_radio").click(function() {
checkChange(1);
});
var opt = $("#selecthref option[value='" + '{$href}' + "']");
if (opt.length > 0) {
opt.attr('selected', 'selected');
checkChange(2);
} else {
checkChange(1);
$('#outlink_input').val('{$hrefold}');
}
function checkChange(i) {
if (i == 1) {
//自动输入url
$('#outlink_input').attr('name', 'external_href');
$('#selecthref').removeAttr('name');
$('#outlink_radio').attr({
'checked' : 'checked'
});
} else {
//选择链接url
$('#selecthref').attr('name', 'href');
$('#outlink_input').removeAttr('name');
$('#selecturl_radio').attr({
'checked' : 'checked'
});
}
}
});
</script>
</body>
</html>

View File

@ -0,0 +1,60 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('nav/index')}">{:L('ADMIN_NAV_INDEX')}</a></li>
<li><a href="{:U('nav/add',array('cid'=>$navcid))}">{:L('ADMIN_NAV_ADD')}</a></li>
</ul>
<form class="well form-search" id="mainform" action="{:U('nav/index')}" method="post">
<select id="navcid_select" name="cid">
<foreach name="navcats" item="vo"> <php>$navcid_selected=$navcid==$vo['navcid']?"selected":"";</php>
<option value="{$vo.navcid}"{$navcid_selected}>{$vo.name}</option>
</foreach>
</select>
</form>
<form class="js-ajax-form" action="{:U('nav/listorders')}" method="post">
<div class="table-actions">
<button type="submit" class="btn btn-primary btn-small js-ajax-submit">{:L('SORT')}</button>
</div>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="50">{:L('SORT')}</th>
<th width="50">ID</th>
<th>{:L('NAVIGATION_NAME')}</th>
<th width="80">{:L('STATUS')}</th>
<th width="180">{:L('ACTIONS')}</th>
</tr>
</thead>
<tbody>
{$categorys}
</tbody>
<tfoot>
<tr>
<th width="50">{:L('SORT')}</th>
<th width="50">ID</th>
<th>{:L('NAVIGATION_NAME')}</th>
<th width="80">{:L('STATUS')}</th>
<th width="180">{:L('ACTIONS')}</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<button type="submit" class="btn btn-primary btn-small js-ajax-submit">{:L('SORT')}</button>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
$(function() {
$("#navcid_select").change(function() {
$("#mainform").submit();
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,39 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('navcat/index')}">{:L('ADMIN_NAVCAT_INDEX')}</a></li>
<li class="active"><a href="{:U('navcat/add')}">{:L('ADMIN_NAVCAT_ADD')}</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('navcat/add_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('CATEGORY_NAME')}</label>
<div class="controls">
<input type="text" name="name">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('DESCRIPTION')}</label>
<div class="controls">
<textarea name="remark" rows="5" cols="57"></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('MAIN_NAVCAT')}</label>
<div class="controls">
<input type="checkbox" name="active" value="1" checked>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('ADD')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,42 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('navcat/index')}">{:L('ADMIN_NAVCAT_INDEX')}</a></li>
<li><a href="{:U('navcat/add')}">{:L('ADMIN_NAVCAT_ADD')}</a></li>
<li class="active"><a>编辑分类</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('navcat/edit_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('CATEGORY_NAME')}</label>
<div class="controls">
<input type="hidden" name="navcid" value="{$navcid}">
<input type="text" name="name" value="{$name}">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('DESCRIPTION')}</label>
<div class="controls">
<textarea name="remark" rows="5" cols="57">{$remark}</textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('MAIN_NAVCAT')}</label>
<div class="controls">
<php>$mainmenu_checked=$active?"checked":"";</php>
<input type="checkbox" name="active" value="1" {$mainmenu_checked}>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,37 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('navcat/index')}">{:L('ADMIN_NAVCAT_INDEX')}</a></li>
<li><a href="{:U('navcat/add')}">{:L('ADMIN_NAVCAT_ADD')}</a></li>
</ul>
<form class="form-horizontal js-ajax-form" method="post">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th width="100">ID</th>
<th>{:L('NAME')}</th>
<th>{:L('DESCRIPTION')}</th>
<th width="120">{:L('MAIN_NAVCAT')}</th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</thead>
<foreach name="navcats" item="vo">
<tr>
<td>{$vo.navcid}</td>
<td>{$vo.name}</td>
<td>{$vo.remark}</td>
<td><php>$mainmenu=$vo['active']?L('YES'):L('NO');</php> {$mainmenu}</td>
<td>
<a href="{:U('navcat/edit',array('id'=>$vo['navcid']))}">{:L('EDIT')}</a>|
<a href="{:U('navcat/delete',array('id'=>$vo['navcid']))}" class="js-ajax-delete">{:L('DELETE')}</a>
</td>
</tr>
</foreach>
</table>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,72 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('plugin/index')}">{:L('ADMIN_PLUGIN_INDEX')}</a></li>
<li><a href="http://www.thinkcmf.com/appstore/plugin.html" target="_blank">插件市场</a></li>
<li><a href="http://www.thinkcmf.com/topic/index/index/cat/9.html" target="_blank">{:L('PLUGIN_DISCUSSION')}</a></li>
<li><a href="http://www.thinkcmf.com/docs/cmfx/plugin.html" target="_blank">{:L('PLUGIN_DOCUMENT')}</a></li>
</ul>
<form method="post" class="js-ajax-form">
<php>
$status=array("1"=>L('ENABLED'),"0"=>L('DISABLED'),"3"=>L('UNINSTALLED'));
</php>
<table class="table table-hover table-bordered">
<thead>
<tr>
<th>{:L('NAME')}</th>
<th>{:L('TEXT_DOMAIN')}</th>
<th>{:L('HOOKS')}</th>
<th>{:L('DESCRIPTION')}</th>
<th>{:L('AUTHOR')}</th>
<th width="45">{:L('STATUS')}</th>
<th width="150">{:L('ACTIONS')}</th>
</tr>
</thead>
<tbody>
<foreach name="plugins" item="vo">
<tr>
<td>{$vo.title}</td>
<td>{$vo.name}</td>
<td>{$vo.hooks}</td>
<td>{$vo.description}</td>
<td>{$vo.author}</td>
<td>{$status[$vo['status']]}</td>
<td>
<if condition="$vo['status']==3">
<a href="{:U('plugin/install',array('name'=>$vo['name']))}" class="js-ajax-dialog-btn" data-msg="确定安装该插件吗?">安装</a>
<else />
<php>$config=json_decode($vo['config'],true);</php>
<if condition="!empty($config)">
<a href="{:U('plugin/setting',array('id'=>$vo['id']))}">{:L('SETTING')}</a>|
<else/>
<a href="javascript:;" style="color: #ccc;">{:L('SETTING')}</a>|
</if>
<if condition="!empty($vo['has_admin'])">
<a href="javascript:parent.openapp('{:sp_plugin_url($vo['name'].'://AdminIndex/index')}','plugin_{$vo.name}','{$vo.title}')">管理</a>|
<else/>
<a href="javascript:;" style="color: #ccc;">管理</a>|
</if>
<a href="{:U('plugin/update',array('name'=>$vo['name']))}" class="js-ajax-dialog-btn" data-msg="确定更新该插件吗?">更新</a>|
<if condition="$vo['status']==0">
<a href="{:U('plugin/toggle',array('id'=>$vo['id'],'enable'=>1))}" class="js-ajax-dialog-btn" data-msg="确定启用该插件吗?">启用</a>|
<else/>
<a href="{:U('plugin/toggle',array('id'=>$vo['id'],'disable'=>1))}" class="js-ajax-dialog-btn" data-msg="确定禁用该插件吗?">禁用</a>|
</if>
<a href="{:U('plugin/uninstall',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn" data-msg="确定卸载该插件吗?">卸载</a>
</if>
</td>
</tr>
</foreach>
</tbody>
</table>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,101 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('plugin/index')}">{:L('ADMIN_PLUGIN_INDEX')}</a></li>
<li class="active"><a>{:L('ADMIN_PLUGIN_SETTING')}</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('plugin/setting_post')}">
<empty name="custom_config">
<foreach name="data['config']" item="form">
<div class="control-group">
<label class="control-label" for="{$key}">
{$form.title|default=''}
</label>
<switch name="form.type">
<case value="text">
<div class="controls">
<input type="text" name="config[{$key}]" class="text input-large" value="{$form.value}" id="{$key}">
<present name="form.tip">
<span class="help-block">{$form.tip}</span>
</present>
</div>
</case>
<case value="password">
<div class="controls">
<input type="password" name="config[{$key}]" class="text input-large" value="{$form.value}" id="{$key}">
<present name="form.tip">
<span class="help-block">{$form.tip}</span>
</present>
</div>
</case>
<case value="hidden">
<input type="hidden" name="config[{$key}]" value="{$form.value}">
</case>
<case value="radio">
<div class="controls">
<foreach name="form.options" item="opt" key="opt_k">
<label class="radio inline">
<php>$radio_checked=$opt_k==$form['value']?"checked":"";</php>
<input type="radio" name="config[{$key}]" value="{$opt_k}" {$radio_checked}>{$opt}
</label>
</foreach>
<present name="form.tip">
<span class="help-block">{$form.tip}</span>
</present>
</div>
</case>
<case value="checkbox">
<div class="controls">
<foreach name="form.options" item="opt" key="opt_k">
<label class="checkbox inline">
<php>
is_null($form["value"]) && $form["value"] = array();
</php>
<input type="checkbox" name="config[{$key}][]" value="{$opt_k}" <in name="opt_k" value="$form.value"> checked</in>>{$opt}
</label>
</foreach>
<present name="form.tip">
<span class="help-block">{$form.tip}</span>
</present>
</div>
</case>
<case value="select">
<div class="controls">
<select name="config[{$key}]" id="{$key}">
<foreach name="form.options" item="opt" key="opt_k">
<option value="{$opt_k}" <eq name="form.value" value="$opt_k"> selected</eq>>{$opt}</option>
</foreach>
</select>
<present name="form.tip">
<span class="help-block">{$form.tip}</span>
</present>
</div>
</case>
<case value="textarea">
<div class="controls">
<textarea name="config[{$key}]" id="{$key}">{$form.value}</textarea>
<present name="form.tip">
<span class="help-block">{$form.tip}</span>
</present>
</div>
</case>
</switch>
</div>
</foreach>
<else />
<present name="custom_config">
{$custom_config}
</present>
</empty>
<input type="hidden" name="id" value="{:I('id')}" readonly>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">保存</button>
<a class="btn" href="javascript:history.back(-1);">返回</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,168 @@
<admintpl file="header"/>
<style>.expander{margin-left: -20px;}</style>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('rbac/index')}">{:L('ADMIN_RBAC_INDEX')}</a></li>
<li><a href="{:U('rbac/roleadd')}">{:L('ADMIN_RBAC_ROLEADD')}</a></li>
<li class="active"><a href="javascript:;">{:L('ADMIN_RBAC_AUTHORIZE')}</a></li>
</ul>
<form class="js-ajax-form" action="{:U('rbac/authorize_post')}" method="post">
<div class="table_full">
<table class="table table-bordered" id="authrule-tree">
<tbody>
{$categorys}
</tbody>
</table>
</div>
<div class="form-actions">
<input type="hidden" name="roleid" value="{$roleid}" />
<button class="btn btn-primary js-ajax-submit" type="submit">{:L('SAVE')}</button>
<a class="btn" href="{:U('rbac/index')}">{:L('BACK')}</a>
</div>
</form>
</div>
<script type="text/javascript">
var ajaxForm_list = $('form.js-ajax-form');
if (ajaxForm_list.length) {
Wind.use('ajaxForm', 'artDialog', function () {
if ($.browser && $.browser.msie) {
//ie8及以下表单中只有一个可见的input:text时会整个页面会跳转提交
ajaxForm_list.on('submit', function (e) {
//表单中只有一个可见的input:text时enter提交无效
e.preventDefault();
});
}
$('button.js-ajax-submit').bind('click', function (e) {
e.preventDefault();
/*var btn = $(this).find('button.js-ajax-submit'),
form = $(this);*/
var btn = $(this),
form = btn.parents('form.js-ajax-form');
//批量操作 判断选项
if (btn.data('subcheck')) {
btn.parent().find('span').remove();
if (form.find('input.js-check:checked').length) {
var msg = btn.data('msg');
if (msg) {
art.dialog({
id: 'warning',
icon: 'warning',
content: btn.data('msg'),
cancelVal: "{:L('CLOSE')}",
cancel: function () {
btn.data('subcheck', false);
btn.click();
}
});
} else {
btn.data('subcheck', false);
btn.click();
}
} else {
$('<span class="tips_error">请至少选择一项</span>').appendTo(btn.parent()).fadeIn('fast');
}
return false;
}
//ie处理placeholder提交问题
if ($.browser && $.browser.msie) {
form.find('[placeholder]').each(function () {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
}
form.ajaxSubmit({
url: btn.data('action') ? btn.data('action') : form.attr('action'),
//按钮上是否自定义提交地址(多按钮情况)
dataType: 'json',
beforeSubmit: function (arr, $form, options) {
var text = btn.text();
//按钮文案、状态修改
btn.text(text + '中...').attr('disabled', true).addClass('disabled');
},
success: function (data, statusText, xhr, $form) {
var text = btn.text();
//按钮文案、状态修改
btn.removeClass('disabled').text(text.replace('中...', '')).parent().find('span').remove();
if (data.state === 'success') {
$('<span class="tips_success">' + data.info + '</span>').appendTo(btn.parent()).fadeIn('slow').delay(1000).fadeOut(function () {
if (data.referer) {
//返回带跳转地址
if (window.parent.art) {
//iframe弹出页
window.parent.location.href = data.referer;
} else {
window.location.href = data.referer;
}
} else {
if (window.parent.art) {
reloadPage(window.parent);
} else {
//刷新当前页
reloadPage(window);
}
}
});
} else if (data.state === 'fail') {
$('<span class="tips_error">' + data.info + '</span>').appendTo(btn.parent()).fadeIn('fast');
btn.removeProp('disabled').removeClass('disabled');
}
}
});
});
});
}
$(document).ready(function () {
Wind.css('treeTable');
Wind.use('treeTable', function () {
$("#authrule-tree").treeTable({
indent: 20
});
});
});
function checknode(obj) {
var chk = $("input[type='checkbox']");
var count = chk.length;
var num = chk.index(obj);
var level_top = level_bottom = chk.eq(num).attr('level');
for (var i = num; i >= 0; i--) {
var le = chk.eq(i).attr('level');
if (le <level_top) {
chk.eq(i).prop("checked", true);
var level_top = level_top - 1;
}
}
for (var j = num + 1; j < count; j++) {
var le = chk.eq(j).attr('level');
if (chk.eq(num).prop("checked")) {
if (le > level_bottom){
chk.eq(j).prop("checked", true);
}
else if (le == level_bottom){
break;
}
} else {
if (le >level_bottom){
chk.eq(j).prop("checked", false);
}else if(le == level_bottom){
break;
}
}
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,52 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('rbac/index')}">{:L('ADMIN_RBAC_INDEX')}</a></li>
<li><a href="{:U('rbac/roleadd')}">{:L('ADMIN_RBAC_ROLEADD')}</a></li>
</ul>
<form action="{:U('Rbac/listorders')}" method="post">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th width="30">ID</th>
<th align="left">{:L('ROLE_NAME')}</th>
<th align="left">{:L('ROLE_DESCRIPTION')}</th>
<th width="40" align="left">{:L('STATUS')}</th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</thead>
<tbody>
<foreach name="roles" item="vo">
<tr>
<td>{$vo.id}</td>
<td>{$vo.name}</td>
<td>{$vo.remark}</td>
<td>
<if condition="$vo['status'] eq 1">
<font color="red"></font>
<else />
<font color="red"></font>
</if>
</td>
<td>
<if condition="$vo['id'] eq 1">
<font color="#cccccc">{:L('ROLE_SETTING')}</font>|<!-- <a href="javascript:open_iframe_dialog('{:U('rbac/member',array('id'=>$vo['id']))}','成员管理');">成员管理</a> | -->
<font color="#cccccc">{:L('EDIT')}</font> | <font color="#cccccc">{:L('DELETE')}</font>
<else />
<a href="{:U('Rbac/authorize',array('id'=>$vo['id']))}">{:L('ROLE_SETTING')}</a>|
<!-- <a href="javascript:open_iframe_dialog('{:U('rbac/member',array('id'=>$vo['id']))}','成员管理');">成员管理</a>| -->
<a href="{:U('Rbac/roleedit',array('id'=>$vo['id']))}">{:L('EDIT')}</a>|
<a class="js-ajax-delete" href="{:U('Rbac/roledelete',array('id'=>$vo['id']))}">{:L('DELETE')}</a>
</if>
</td>
</tr>
</foreach>
</tbody>
</table>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,37 @@
<admintpl file="header" />
</head>
<body style="min-width: 600px;">
<div class="wrap">
<form method="post" class="js-ajax-form">
<table class="table table-hover">
<thead>
<tr>
<th align="center">ID</th>
<th>用户名</th>
<th>昵称</th>
<th>E-mail</th>
<th>角色名称</th>
<th align='center'>操作</th>
</tr>
</thead>
<tbody>
<foreach name="lists" item="vo">
<tr>
<td align="center">{$vo.id}</td>
<td>{$vo.user_login}</td>
<td>{$vo.user_nicename}</td>
<td>{$vo.user_email}</td>
<!-- <td>{:date('Y-m-d H:i:s', $vo['create_time'])}</td> -->
<td>{$vo.name}</td>
<td align="center">
<a href="{:U('user/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">删除</a>
</td>
</tr>
</foreach>
</tbody>
</table>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,40 @@
<admintpl file="header"/>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('rbac/index')}">{:L('ADMIN_RBAC_INDEX')}</a></li>
<li class="active"><a href="{:U('rbac/roleadd')}">{:L('ADMIN_RBAC_ROLEADD')}</a></li>
</ul>
<form class="form-horizontal js-ajax-form" action="{:U('Rbac/roleadd_post')}" method="post">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('ROLE_NAME')}</label>
<div class="controls">
<input type="text" name="name" value="" id="rolename"/>
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('ROLE_DESCRIPTION')}</label>
<div class="controls">
<textarea name="remark" rows="2" cols="20" id="remark" class="inputtext" style="height: 100px; width: 500px;"></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('STATUS')}</label>
<div class="controls">
<label class="radio inline" for="active_true"><input type="radio" name="status" value="1" checked id="active_true" />{:L('ENABLED')}</label>
<label class="radio inline" for="active_false"><input type="radio" name="status" value="0" id="active_false">{:L('DISABLED')}</label>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('ADD')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,48 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('rbac/index')}">{:L('ADMIN_RBAC_INDEX')}</a></li>
<li><a href="{:U('rbac/roleadd')}">{:L('ADMIN_RBAC_ROLEADD')}</a></li>
<li class="active"><a>编辑角色</a></li>
</ul>
<form class="form-horizontal js-ajax-form" action="{:U('Rbac/roleedit_post')}" method="post">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('ROLE_NAME')}</label>
<div class="controls">
<input type="text" name="name" value="{$data.name}">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('ROLE_DESCRIPTION')}</label>
<div class="controls">
<textarea name="remark" rows="2" cols="20" style="height: 100px; width: 500px;">{$data.remark}</textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('STATUS')}</label>
<div class="controls">
<php>$active_true_checked=($data['status']==1)?"checked":"";</php>
<label class="radio inline" for="active_true">
<input type="radio" name="status" value="1" {$active_true_checked} id="active_true"/>{:L('ENABLED')}
</label>
<php>$active_false_checked=($data['status']==0)?"checked":"";</php>
<label class="radio inline" for="active_false">
<input type="radio" name="status" value="0" id="active_false"{$active_false_checked}>{:L('DISABLED')}
</label>
</div>
</div>
</fieldset>
<div class="form-actions">
<input type="hidden" name="id" value="{$data.id}"/>
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,42 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('setting/site')}">网站信息</a></li>
<li><a href="{:U('route/index')}">URL美化</a></li>
<li class="active"><a href="{:U('route/add')}">添加URL规则</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('route/add_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">原始网址:</label>
<div class="controls">
<input type="text" name="full_url" value=""><span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">显示网址:</label>
<div class="controls">
<input type="text" name="url" value=""><span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">是否启用:</label>
<div class="controls">
<select name="status">
<option value="1">启用</option>
<option value="0">禁用</option>
</select>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">添加</button>
<a class="btn" href="javascript:history.back(-1);">返回</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,44 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('setting/site')}">网站信息</a></li>
<li><a href="{:U('route/index')}">URL美化</a></li>
<li><a href="{:U('route/add')}">添加URL规则</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('route/edit_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">原始网址:</label>
<div class="controls">
<input type="text" name="full_url" value="{$full_url}"><span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">显示网址:</label>
<div class="controls">
<input type="text" name="url" value="{$url}"><span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">是否启用:</label>
<div class="controls">
<select name="status">
<option value="1">启用</option>
<php>$status_selected=$status?"":"selected";</php>
<option value="0" {$status_selected}>禁用</option>
</select>
</div>
</div>
</fieldset>
<div class="form-actions">
<input type="hidden" name="id" value="{$id}">
<button type="submit" class="btn btn-primary js-ajax-submit">保存</button>
<a class="btn" href="javascript:history.back(-1);">返回</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,63 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('setting/site')}">网站信息</a></li>
<li class="active"><a href="{:U('route/index')}">URL美化</a></li>
<li><a href="{:U('route/add')}">添加URL规则</a></li>
</ul>
<form class="js-ajax-form" action="{:U('route/listorders')}" method="post">
<div class="table-actions">
<button type="submit" class="btn btn-primary btn-small js-ajax-submit">排序</button>
</div>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="50">排序</th>
<th width="50">ID</th>
<th>原始网址</th>
<th>显示网址</th>
<th>状态</th>
<th width="120">操作</th>
</tr>
</thead>
<tbody>
<php>$statuses=array('0'=>"已禁用","1"=>"已启用");</php>
<foreach name="routes" item="vo">
<tr>
<td><input name='listorders[{$vo.id}]'
class="input input-order mr5" type='text' size='3'
value='{$vo.listorder}'></td>
<td>{$vo.id}</td>
<td>{$vo.full_url}</td>
<td>{$vo.url}</td>
<td>{$statuses[$vo['status']]}</td>
<td>
<a href="{:U('route/edit',array('id'=>$vo['id']))}">修改</a>|
<a href="{:U('route/open',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn" data-msg="确定启用吗?">启用</a>|
<a href="{:U('route/ban',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn" data-msg="确定禁用吗?">禁用</a>|
<a href="{:U('route/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">删除</a>
</td>
</tr>
</foreach>
</tbody>
<tfoot>
<tr>
<th width="50">排序</th>
<th width="50">ID</th>
<th>原始网址</th>
<th>显示网址</th>
<th>状态</th>
<th width="120">操作</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<button type="submit" class="btn btn-primary btn-small js-ajax-submit">排序</button>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,34 @@
<admintpl file="header" />
<style>
li {
list-style: none;
}
</style>
</head>
<body>
<div class="wrap">
<div id="error_tips">
<h2>{:L('CACHE_CLEARED')}</h2>
<div class="error_cont">
<ul>
<li>{:L('CACHE_CLEARED')}</li>
</ul>
<div class="error_return">
<a href="javascript:close_app();" class="btn">{:L('CLOSE')}</a>
</div>
</div>
</div>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
var close_timeout = setTimeout(function() {
parent.close_current_app();
}, 3000);
function close_app() {
clearTimeout(close_timeout);
parent.close_current_app();
}
</script>
</body>
</html>

View File

@ -0,0 +1,37 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('User/userinfo')}">{:L('ADMIN_USER_USERINFO')}</a></li>
<li class="active"><a href="{:U('setting/password')}">{:L('ADMIN_SETTING_PASSWORD')}</a></li>
</ul>
<form class="form-horizontal js-ajax-form" method="post" action="{:U('setting/password_post')}">
<fieldset>
<div class="control-group">
<label class="control-label" for="input-old-password">{:L('OLD_PASSWORD')}</label>
<div class="controls">
<input type="password" class="input-xlarge" id="input-old-password" name="old_password">
</div>
</div>
<div class="control-group">
<label class="control-label" for="input-password">{:L('NEW_PASSWORD')}</label>
<div class="controls">
<input type="password" class="input-xlarge" id="input-password" name="password">
</div>
</div>
<div class="control-group">
<label class="control-label" for="input-repassword">{:L('CONFIRM_PASSWORD')}</label>
<div class="controls">
<input type="password" class="input-xlarge" id="input-repassword" name="repassword">
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
</div>
</fieldset>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,341 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="#A" data-toggle="tab">{:L('WEB_SITE_INFOS')}</a></li>
<li><a href="#B" data-toggle="tab">{:L('SEO_SETTING')}</a></li>
<li><a href="#C" data-toggle="tab">{:L('URL_SETTING')}</a></li>
<li><a href="{:U('route/index')}">{:L('URL_OPTIMIZATION')}</a></li>
<!-- <li><a href="#D" data-toggle="tab">{:L('UCENTER_SETTING')}</a></li> -->
<li><a href="#E" data-toggle="tab">{:L('COMMENT_SETTING')}</a></li>
<li><a href="#F" data-toggle="tab">{:L("USERNAME_FILTER")}</a></li>
<li><a href="#G" data-toggle="tab">CDN设置</a></li>
</ul>
<form class="form-horizontal js-ajax-forms" action="{:U('setting/site_post')}" method="post">
<fieldset>
<div class="tabbable">
<div class="tab-content">
<div class="tab-pane active" id="A">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('WEBSITE_NAME')}</label>
<div class="controls">
<input type="text" name="options[site_name]" value="{$site_name}"><span class="form-required">*</span>
<php>if($option_id):</php>
<input type="hidden" name="option_id" value="{$option_id}">
<php>endif;</php>
</div>
</div>
<div class="control-group">
<label class="control-label">后台地址加密码:</label>
<div class="controls">
<input type="text" name="options[site_admin_url_password]" value="{$site_admin_url_password}" id="js-site-admin-url-password"><span class="form-required">*</span>
<span class="help-block" style="color: red;">设置加密码后必须通过以下地址访问后台,请劳记此地址,为了安全,您也可以定期更换此加密码!</span>
<php>$site_admin_url_password =C("SP_SITE_ADMIN_URL_PASSWORD");</php>
<if condition="!empty($site_admin_url_password)">
<span class="help-block">后台地址:<span id="js-site-admin-url">{:sp_get_host()}__ROOT__?g=admin&upw={:C('SP_SITE_ADMIN_URL_PASSWORD')}</span></span>
</if>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('WEBSITE_THEME')}</label>
<div class="controls">
<select name="options[site_tpl]">
<foreach name="templates" item="vo">
<php>$tpl_selected=$site_tpl==$vo?"selected":"";</php>
<option value="{$vo}" {$tpl_selected}>{$vo}</option>
</foreach>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('ENABLE_MOBILE_THEME')}</label>
<div class="controls">
<php>$mobile_tpl_enabled_checked=empty($mobile_tpl_enabled)?'':'checked';</php>
<label class="checkbox inline"><input type="checkbox" name="options[mobile_tpl_enabled]" value="1" {$mobile_tpl_enabled_checked}></label>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('WEBSITE_ADMIN_THEME')}</label>
<div class="controls">
<php>$site_adminstyle=empty($site_adminstyle)?'flat':$site_adminstyle;</php>
<select name="options[site_adminstyle]">
<foreach name="adminstyles" item="vo">
<php>$adminstyle_selected=$site_adminstyle==$vo?"selected":"";</php>
<option value="{$vo}" {$adminstyle_selected}>{$vo}</option>
</foreach>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('HTML_CACHE')}</label>
<div class="controls">
<php>$html_cache_on_checked=empty($html_cache_on)?'':'checked';</php>
<label class="checkbox inline"><input type="checkbox" name="options[html_cache_on]" value="1" {$html_cache_on_checked}></label>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('WEBSITE_ICP')}</label>
<div class="controls">
<input type="text" name="options[site_icp]" value="{$site_icp}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('WEBMASTER_EMAIL')}</label>
<div class="controls">
<input type="text" name="options[site_admin_email]" value="{$site_admin_email}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L("WEBSITE_STATISTICAL_CODE")}</label>
<div class="controls">
<textarea name="options[site_tongji]" rows="5" cols="57">{$site_tongji}</textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('WEBSITE_COPYRIGHT_INFOMATION')}</label>
<div class="controls">
<textarea name="options[site_copyright]" rows="5" cols="57">{$site_copyright}</textarea>
</div>
</div>
</fieldset>
</div>
<div class="tab-pane" id="B">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('WEBSITE_SEO_TITLE')}</label>
<div class="controls">
<input type="text" name="options[site_seo_title]" value="{$site_seo_title}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('WEBSITE_SEO_KEYWORDS')}</label>
<div class="controls">
<input type="text" name="options[site_seo_keywords]" value="{$site_seo_keywords}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('WEBSITE_SEO_DESCRIPTION')}</label>
<div class="controls">
<textarea name="options[site_seo_description]" rows="5" cols="57">{$site_seo_description}</textarea>
</div>
</div>
</fieldset>
</div>
<div class="tab-pane" id="C">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('URL_MODE')}</label>
<div class="controls">
<php>$urlmodes=array( "0"=>L('URL_NORMAL_MODE'), "1"=>L('URL_PATHINFO_MODE'), "2"=>L('URL_REWRITE_MODE'));</php>
<select name="options[urlmode]">
<foreach name="urlmodes" item="vo">
<php>$urlmode_selected=$key==$urlmode?"selected":"";</php>
<option value="{$key}" {$urlmode_selected}>{$vo}</option>
</foreach>
</select>
<span class="form-required">* {:L('URL_MODE_HELP_TEXT')}</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('URL_REWRITE_SUFFIX')}</label>
<div class="controls">
<input type="text" name="options[html_suffix]" value="{$html_suffix}">
<span class="form-required">{:L('URL_REWRITE_SUFFIX_HELP_TEXT')}</span>
</div>
</div>
</fieldset>
</div>
<div class="tab-pane" id="E">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('COMMENT_CHECK')}</label>
<div class="controls">
<php>$comment_need_checked=empty($comment_need_check)?"":"checked";</php>
<input type="checkbox" class="js-check" name="options[comment_need_check]" value="1" {$comment_need_checked}>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('COMMENT_TIME_INTERVAL')}</label>
<div class="controls">
<input type="number" name="options[comment_time_interval]" value="{$comment_time_interval|default=60}" style="width:40px;">{:L('SECONDS')}
</div>
</div>
</fieldset>
</div>
<div class="tab-pane" id="F">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('SPECAIL_USERNAME')}</label>
<div class="controls">
<textarea name="cmf_settings[banned_usernames]" rows="5" cols="57">{$cmf_settings.banned_usernames}</textarea>
</div>
</div>
</fieldset>
</div>
<div class="tab-pane" id="G">
<fieldset>
<div class="control-group">
<label class="control-label">静态资源cdn地址</label>
<div class="controls">
<input type="text" name="cdn_settings[cdn_static_root]" value="{$cdn_settings.cdn_static_root}">
<span class="help-block">
不能以/结尾设置这个地址后请将ThinkCMF下的静态资源文件放在其下面<br>
ThinkCMF下的静态资源文件大致包含以下(如果你自定义后,请自行增加)<br>
admin/themes/simplebootx/Public/assets<br>
public<br>
themes/simplebootx/Public/assets<br>
例如未设置cdn前jquery的访问地址是/public/js/jquery.js, 设置cdn是后它的访问地址就是静态资源cdn地址+/public/js/jquery.js
</span>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L("SAVE")}</button>
</div>
</fieldset>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
<script>
/////---------------------
$(function(){
$("#urlmode-select").change(function(){
if($(this).val()==1){
alert("更改后若发现前台链接不能正常访问可能是您的服务器不支持PATHINFO请先修改data/conf/config.php文件的URL_MODEL为0保证网站正常运行,在配置服务器PATHINFO功能后再更新为PATHINFO模式");
}
if($(this).val()==2){
alert("更改后若发现前台链接不能正常访问可能是您的服务器不支持REWRITE请先修改data/conf/config.php文件的URL_MODEL为0保证网站正常运行在开启服务器REWRITE功能后再更新为REWRITE模式");
}
});
$("#js-site-admin-url-password").change(function(){
$(this).data("changed",true);
});
});
Wind.use('validate', 'ajaxForm', 'artDialog', function() {
//javascript
var form = $('form.js-ajax-forms');
//ie处理placeholder提交问题
if ($.browser && $.browser.msie) {
form.find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
}
//表单验证开始
form.validate({
//是否在获取焦点时验证
onfocusout : false,
//是否在敲击键盘时验证
onkeyup : false,
//当鼠标掉级时验证
onclick : false,
//验证错误
showErrors : function(errorMap, errorArr) {
//errorMap {'name':'错误信息'}
//errorArr [{'message':'错误信息',element:({})}]
try {
$(errorArr[0].element).focus();
art.dialog({
id : 'error',
icon : 'error',
lock : true,
fixed : true,
background : "#CCCCCC",
opacity : 0,
content : errorArr[0].message,
cancelVal : "{:L('OK')}",
cancel : function() {
$(errorArr[0].element).focus();
}
});
} catch (err) {
}
},
//验证规则
rules : {
'options[site_name]' : {
required : 1
},
'options[site_host]' : {
required : 1
},
'options[site_root]' : {
required : 1
}
},
//验证未通过提示消息
messages : {
'options[site_name]' : {
required : "{:L('WEBSITE_SITE_NAME_REQUIRED_MESSAGE')}"
},
'options[site_host]' : {
required : "{:L('WEBSITE_SITE_HOST_REQUIRED_MESSAGE')}"
}
},
//给未通过验证的元素加效果,闪烁等
highlight : false,
//是否在获取焦点时验证
onfocusout : false,
//验证通过,提交表单
submitHandler : function(forms) {
$(forms).ajaxSubmit({
url : form.attr('action'), //按钮上是否自定义提交地址(多按钮情况)
dataType : 'json',
beforeSubmit : function(arr, $form, options) {
},
success : function(data, statusText, xhr, $form) {
if (data.status) {
setCookie("refersh_time", 1);
var admin_url_changed=$("#js-site-admin-url-password").data("changed");
var message =admin_url_changed?data.info+'<br><span style="color:red;">后台地址已更新(请劳记!)</span>':data.info;
//添加成功
Wind.use("artDialog", function() {
art.dialog({
id : "succeed",
icon : "succeed",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : message,
button : [ {
name : "{:L('OK')}",
callback : function() {
reloadPage(window);
return true;
},
focus : true
}, {
name : "{:L('CLOSE')}",
callback : function() {
reloadPage(window);
return true;
}
} ]
});
});
} else {
alert(data.info);
}
}
});
}
});
});
////-------------------------
</script>
</body>
</html>

View File

@ -0,0 +1,54 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li class="active"><a>上传设置</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('setting/upload_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">图片文件</label>
<div class="controls">
<input type="text" name="image[upload_max_filesize]" title="允许上传大小KB,1M=1024KB" placeholder="允许上传大小KB,1M=1024KB" value="{$image.upload_max_filesize|default=10240}">
<input type="text" name="image[extensions]" title="扩展名,以英文逗号分隔" placeholder="扩展名,以英文逗号分隔" value="{$image.extensions|default='jpg,jpeg,png,gif,bmp'}">
<span class="form-required">*</span>
<span class="help-block">允许上传大小默认为10240KB,1M=1024KB允许上传格式默认为jpg,jpeg,png,gif,bmp</span>
</div>
</div>
<div class="control-group">
<label class="control-label">视频文件</label>
<div class="controls">
<input type="text" name="video[upload_max_filesize]" title="允许上传大小KB,1M=1024KB" placeholder="允许上传大小KB,1M=1024KB" value="{$video.upload_max_filesize|default=10240}">
<input type="text" name="video[extensions]" title="扩展名,以英文逗号分隔" placeholder="扩展名,以英文逗号分隔" value="{$video.extensions|default='mp4,avi,wmv,rm,rmvb,mkv'}">
<span class="form-required">*</span>
<span class="help-block">允许上传大小默认为102400KB,1M=1024KB允许上传格式默认为mp4,avi,wmv,rm,rmvb,mkv</span>
</div>
</div>
<div class="control-group">
<label class="control-label">音频文件</label>
<div class="controls">
<input type="text" name="audio[upload_max_filesize]" title="允许上传大小KB,1M=1024KB" placeholder="允许上传大小KB,1M=1024KB" value="{$audio.upload_max_filesize|default=10240}">
<input type="text" name="audio[extensions]" title="扩展名,以英文逗号分隔" placeholder="扩展名,以英文逗号分隔" value="{$audio.extensions|default='mp3,wma,wav'}">
<span class="form-required">*</span>
<span class="help-block">允许上传大小默认为10240KB,1M=1024KB允许上传格式默认为mp3,wma,wav</span>
</div>
</div>
<div class="control-group">
<label class="control-label">附件</label>
<div class="controls">
<input type="text" name="file[upload_max_filesize]" title="允许上传大小KB,1M=1024KB" placeholder="允许上传大小KB,1M=1024KB" value="{$file.upload_max_filesize|default=10240}">
<input type="text" name="file[extensions]" title="扩展名,以英文逗号分隔" placeholder="扩展名,以英文逗号分隔" value="{$file.extensions|default='txt,pdf,doc,docx,xls,xlsx,ppt,pptx,zip,rar'}">
<span class="form-required">*</span>
<span class="help-block">允许上传大小默认为10240KB,1M=1024KB允许上传格式默认为除以上文档类型以外的其它常用文件,如txt,pdf,doc,docx,xls,xlsx,ppt,pptx,zip,rar</span>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,206 @@
<admintpl file="header"/>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('slide/index')}">{:L('ADMIN_SLIDE_INDEX')}</a></li>
<li class="active"><a href="{:U('slide/add')}">{:L('ADMIN_SLIDE_ADD')}</a></li>
</ul>
<form action="{:U('slide/add_post')}" method="post" class="form-horizontal js-ajax-forms" enctype="multipart/form-data">
<div class="row-fluid">
<div class="span9">
<table class="table table-bordered">
<tr>
<th width="80">分类</th>
<td>
<select name="slide_cid">
<option value="0">默认分类</option>
<foreach name="categorys" item="vo">
<option value="{$vo.cid}">{$vo.cat_name}</option>
</foreach>
</select>
</td>
</tr>
<tr>
<th>{:L('TITLE')}</th>
<td>
<input type="text" style="width: 400px;" name="slide_name" value="" placeholder="请输入幻灯片名称"/>
<span class="form-required">*</span>
</td>
</tr>
<tr>
<th>{:L('LINK')}</th>
<td><input type="text" name="slide_url" value="" style="width: 400px"></td>
</tr>
<tr>
<th>{:L('DESCRIPTION')}</th>
<td><input type="text" name="slide_des" value="" style="width: 400px"></td>
</tr>
<tr>
<th>幻灯片内容</th>
<td><textarea name="slide_content" style="width: 98%; height: 200px;"></textarea></td>
</tr>
</table>
</div>
<div class="span3">
<table class="table table-bordered">
<tr>
<th>缩略图</th>
</tr>
<tr>
<td>
<div style="text-align: center;">
<input type="hidden" name="slide_pic" id="thumb" value="">
<a href="javascript:upload_one_image('图片上传','#thumb');">
<img src="__TMPL__Public/assets/images/default-thumbnail.png" id="thumb-preview" width="135" style="cursor: hand" />
</a>
<input type="button" class="btn btn-small" onclick="$('#thumb-preview').attr('src','__TMPL__Public/assets/images/default-thumbnail.png');$('#thumb').val('');return false;" value="取消图片">
</div>
</td>
</tr>
</table>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit" type="submit">{:L("ADD")}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
<script type="text/javascript">
$(function() {
$(".js-ajax-close-btn").on('click', function(e) {
e.preventDefault();
Wind.use("artDialog", function() {
art.dialog({
id : "question",
icon : "question",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : "您确定需要关闭当前页面嘛?",
ok : function() {
setCookie("refersh_time", 1);
window.close();
return true;
}
});
});
});
/////---------------------
Wind.use('validate', 'ajaxForm', 'artDialog', function() {
//javascript
var form = $('form.js-ajax-forms');
//ie处理placeholder提交问题
if ($.browser && $.browser.msie) {
form.find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
}
var formloading = false;
//表单验证开始
form.validate({
//是否在获取焦点时验证
onfocusout : false,
//是否在敲击键盘时验证
onkeyup : false,
//当鼠标掉级时验证
onclick : false,
//验证错误
showErrors : function(errorMap, errorArr) {
//errorMap {'name':'错误信息'}
//errorArr [{'message':'错误信息',element:({})}]
try {
$(errorArr[0].element).focus();
art.dialog({
id : 'error',
icon : 'error',
lock : true,
fixed : true,
background : "#CCCCCC",
opacity : 0,
content : errorArr[0].message,
cancelVal : '确定',
cancel : function() {
$(errorArr[0].element).focus();
}
});
} catch (err) {
}
},
//验证规则
rules : {
'slide_name' : {
required : 1
}
},
//验证未通过提示消息
messages : {
'slide_name' : {
required : '请输入名称'
}
},
//给未通过验证的元素加效果,闪烁等
highlight : false,
//是否在获取焦点时验证
onfocusout : false,
//验证通过,提交表单
submitHandler : function(forms) {
if (formloading)
return;
$(forms).ajaxSubmit({
url : form.attr('action'), //按钮上是否自定义提交地址(多按钮情况)
dataType : 'json',
beforeSubmit : function(arr, $form, options) {
formloading = true;
},
success : function(data, statusText, xhr, $form) {
formloading = false;
if (data.status) {
setCookie("refersh_time", 1);
//添加成功
Wind.use("artDialog", function() {
art.dialog({
id : "succeed",
icon : "succeed",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : data.info,
button : [ {
name : '继续添加?',
callback : function() {
reloadPage(window);
return true;
},
focus : true
}, {
name : '返回列表',
callback : function() {
location.href = "{:U('slide/index')}";
return true;
}
} ]
});
});
} else {
artdialog_alert(data.info);
}
}
});
}
});
});
////-------------------------
});
</script>
</body>
</html>

View File

@ -0,0 +1,208 @@
<admintpl file="header"/>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('slide/index')}">{:L('ADMIN_SLIDE_INDEX')}</a></li>
<li><a href="{:U('slide/add')}">{:L('ADMIN_SLIDE_ADD')}</a></li>
<li class="active"><a>编辑幻灯片</a></li>
</ul>
<form action="{:U('slide/edit_post')}" method="post" class="form-horizontal js-ajax-forms" enctype="multipart/form-data">
<div class="row-fluid">
<div class="span9">
<table class="table table-bordered">
<tr>
<th width="80">分类</th>
<td>
<select name="slide_cid">
<option value="0">默认分类</option>
<foreach name="categorys" item="vo">
<php>$cid_selected=$slide_cid==$vo['cid']?"selected":"";</php>
<option value="{$vo.cid}"{$cid_selected}>{$vo.cat_name}</option>
</foreach>
</select>
</td>
</tr>
<tr>
<th width="80">幻灯片名称</th>
<td>
<input type="text" style="width: 400px;" name="slide_name" value="{$slide_name}" placeholder="请输入幻灯片名称"/>
<span class="form-required">*</span>
<input type="hidden" name="slide_id" value="{$slide_id}"/>
</td>
</tr>
<tr>
<th width="80">链接地址:</th>
<td><input type="text" name="slide_url" value="{$slide_url}" style="width: 400px"></td>
</tr>
<tr>
<th width="80">描述</th>
<td><input type="text" name="slide_des" value="{$slide_des}" style="width: 400px"></td>
</tr>
<tr>
<th width="80">幻灯片内容</th>
<td><textarea name="slide_content" id="description" style="width: 98%; height: 200px;">{$slide_content}</textarea></td>
</tr>
</table>
</div>
<div class="span3">
<table class="table table-bordered">
<tr>
<td><b>缩略图</b></td>
</tr>
<tr>
<td>
<div style="text-align: center;">
<input type="hidden" name="slide_pic" id="thumb" value="{$slide_pic}">
<a href="javascript:upload_one_image('图片上传','#thumb');">
<if condition="empty($slide_pic)">
<img src="__TMPL__Public/assets/images/default-thumbnail.png" id="thumb-preview" width="135" style="cursor: hand"/>
<else />
<img src="{:sp_get_image_preview_url($slide_pic)}" id="thumb-preview" width="135" style="cursor: hand; height: 113px;"/>
</if>
</a>
<input type="button" class="btn btn-small" onclick="$('#thumb-preview').attr('src','__TMPL__Public/assets/images/default-thumbnail.png');$('#thumb').val('');return false;" value="取消图片">
</div>
</td>
</tr>
</table>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit" type="submit">提交</button>
<a class="btn" href="javascript:history.back(-1);">返回</a>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
<script type="text/javascript">
$(function() {
$(".js-ajax-close-btn").on('click', function(e) {
e.preventDefault();
Wind.use("artDialog", function() {
art.dialog({
id : "question",
icon : "question",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : "您确定需要关闭当前页面嘛?",
ok : function() {
setCookie("refersh_time", 1);
window.close();
return true;
}
});
});
});
/////---------------------
Wind.use('validate', 'ajaxForm', 'artDialog', function() {
//javascript
var form = $('form.js-ajax-forms');
//ie处理placeholder提交问题
if ($.browser && $.browser.msie) {
form.find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
}
//表单验证开始
form.validate({
//是否在获取焦点时验证
onfocusout : false,
//是否在敲击键盘时验证
onkeyup : false,
//当鼠标掉级时验证
onclick : false,
//验证错误
showErrors : function(errorMap, errorArr) {
//errorMap {'name':'错误信息'}
//errorArr [{'message':'错误信息',element:({})}]
try {
$(errorArr[0].element).focus();
art.dialog({
id : 'error',
icon : 'error',
lock : true,
fixed : true,
background : "#CCCCCC",
opacity : 0,
content : errorArr[0].message,
cancelVal : '确定',
cancel : function() {
$(errorArr[0].element).focus();
}
});
} catch (err) {
}
},
//验证规则
rules : {
'slide_name' : {
required : 1
}
},
//验证未通过提示消息
messages : {
'slide_name' : {
required : '请输入名称'
}
},
//给未通过验证的元素加效果,闪烁等
highlight : false,
//是否在获取焦点时验证
onfocusout : false,
//验证通过,提交表单
submitHandler : function(forms) {
$(forms).ajaxSubmit({
url : form.attr('action'), //按钮上是否自定义提交地址(多按钮情况)
dataType : 'json',
beforeSubmit : function(arr, $form, options) {
},
success : function(data, statusText, xhr, $form) {
if (data.status) {
setCookie("refersh_time", 1);
//添加成功
Wind.use("artDialog", function() {
art.dialog({
id : "succeed",
icon : "succeed",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : data.info,
button : [ {
name : '继续编辑?',
callback : function() {
reloadPage(window);
return true;
},
focus : true
}, {
name : '返回列表',
callback : function() {
location.href = "{:U('slide/index')}";
return true;
}
} ]
});
});
} else {
artdialog_alert(data.info);
}
}
});
}
});
});
////-------------------------
});
</script>
</body>
</html>

View File

@ -0,0 +1,106 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('slide/index')}">{:L('ADMIN_SLIDE_INDEX')}</a></li>
<li><a href="{:U('slide/add')}">{:L('ADMIN_SLIDE_ADD')}</a></li>
</ul>
<form class="well form-search" method="post" id="cid-form">
<select name="cid" style="width: 100px;" id="selected-cid">
<option value=''>{:L('ALL')}</option>
<foreach name="categorys" item="vo">
<php>$cid_select=$vo['cid']==$slide_cid?"selected":"";</php>
<option value="{$vo.cid}" {$cid_select}>{$vo.cat_name}</option>
</foreach>
</select>
</form>
<form class="js-ajax-form" method="post">
<div class="table-actions">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('slide/listorders')}">{:L('SORT')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('slide/toggle',array('display'=>1))}" data-subcheck="true">{:L('DISPLAY')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('slide/toggle',array('hide'=>1))}" data-subcheck="true">{:L('HIDDEN')}</button>
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('slide/delete')}" data-subcheck="true" data-msg="你确定删除吗?">{:L('DELETE')}</button>
</div>
<php> $status=array("1"=>L('DISPLAY'),"0"=>L('HIDDEN')); </php>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="15"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="50">{:L('SORT')}</th>
<th width="50">ID</th>
<th width="200">{:L('TITLE')}</th>
<th width="200">{:L('DESCRIPTION')}</th>
<th width="100">{:L('LINK')}</th>
<th width="50">{:L('IMAGE')}</th>
<th width="50">{:L('STATUS')}</th>
<th width="100">{:L('ACTIONS')}</th>
</tr>
</thead>
<foreach name="slides" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]" value="{$vo.slide_id}"></td>
<td><input name='listorders[{$vo.slide_id}]' class="input input-order mr5" type='text' size='3' value='{$vo.listorder}'></td>
<td>{$vo.slide_id}</td>
<td>{$vo.slide_name}</td>
<td>{$slide_des = mb_substr($vo['slide_des'], 0, 48,'utf-8')}</td>
<td>{$vo.slide_url}</td>
<td>
<if condition="!empty($vo['slide_pic'])">
<a href="{:sp_get_image_preview_url($vo['slide_pic'])}" target="_blank">{:L('VIEW')}</a>
</if>
</td>
<td>{$status[$vo['slide_status']]}</td>
<td>
<a href="{:U('slide/edit',array('id'=>$vo['slide_id']))}">{:L('EDIT')}</a>
<a href="{:U('slide/delete',array('id'=>$vo['slide_id']))}" class="js-ajax-delete">{:L('DELETE')}</a>
<if condition="empty($vo['slide_status']) eq 1">
<a href="{:U('slide/cancelban',array('id'=>$vo['slide_id']))}" class="js-ajax-dialog-btn" data-msg="确定显示此幻灯片吗?">{:L('DISPLAY')}</a>
<else />
<a href="{:U('slide/ban',array('id'=>$vo['slide_id']))}" class="js-ajax-dialog-btn" data-msg="确定隐藏此幻灯片吗?">{:L('HIDE')}</a>
</if>
</td>
</tr>
</foreach>
<tfoot>
<tr>
<th width="15"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="50">{:L('SORT')}</th>
<th width="50">ID</th>
<th width="200">{:L('TITLE')}</th>
<th width="200">{:L('DESCRIPTION')}</th>
<th width="100">{:L('LINK')}</th>
<th width="50">{:L('IMAGE')}</th>
<th width="50">{:L('STATUS')}</th>
<th width="100">{:L('ACTIONS')}</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('slide/listorders')}">{:L('SORT')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('slide/toggle',array('display'=>1))}" data-subcheck="true">{:L('DISPLAY')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('slide/toggle',array('hide'=>1))}" data-subcheck="true">{:L('HIDDEN')}</button>
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('slide/delete')}" data-subcheck="true" data-msg="你确定删除吗?">{:L('DELETE')}</button>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
setCookie('refersh_time', 0);
function refersh_window() {
var refersh_time = getCookie('refersh_time');
if (refersh_time == 1) {
window.location.reload();
}
}
setInterval(function() {
refersh_window()
}, 3000);
$(function() {
$("#selected-cid").change(function() {
$("#cid-form").submit();
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,41 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('slidecat/index')}">{:L('ADMIN_SLIDECAT_INDEX')}</a></li>
<li class="active"><a href="{:U('slidecat/add')}">{:L('ADMIN_SLIDECAT_ADD')}</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('slidecat/add_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('NAME')}</label>
<div class="controls">
<input type="text" name="cat_name">
<span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('CATEGORY_KEY')}</label>
<div class="controls">
<input type="text" name="cat_idname">
<span class="form-required">*</span>
<span style="margin-left: 15px;">{:L('CATEGORY_KEY_HELP_TEXT')}</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('DESCRIPTION')}</label>
<div class="controls">
<textarea name="cat_remark" rows="5" cols="57">{$remark}</textarea>
</div>
</div>
</fieldset>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit" type="submit">{:L('ADD')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,43 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('slidecat/index')}">{:L('ADMIN_SLIDECAT_INDEX')}</a></li>
<li><a href="{:U('slidecat/add')}">{:L('ADMIN_SLIDECAT_ADD')}</a></li>
<li class="active"><a>编辑分类</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('slidecat/edit_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('NAME')}</label>
<div class="controls">
<input type="text" name="cat_name" value="{$cat_name}">
<span class="form-required">*</span>
<input type="hidden" name="cid" value="{$cid}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('CATEGORY_KEY')}</label>
<div class="controls">
<input type="text" name="cat_idname" value="{$cat_idname}">
<span class="form-required">*</span>
<span style="margin-left: 15px;">{:L('CATEGORY_KEY_HELP_TEXT')}</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('DESCRIPTION')}</label>
<div class="controls">
<textarea name="cat_remark" rows="5" cols="57">{$cat_remark}</textarea>
</div>
</div>
</fieldset>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit" type="submit">{:L('SAVE')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,46 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('slidecat/index')}">{:L('ADMIN_SLIDECAT_INDEX')}</a></li>
<li><a href="{:U('slidecat/add')}">{:L('ADMIN_SLIDECAT_ADD')}</a></li>
</ul>
<form method="post" class="js-ajax-form" action="{:U('term/listorders')}">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th width="50">ID</th>
<th>{:L('NAME')}</th>
<th>{:L('CATEGORY_KEY')}</th>
<th>{:L('DESCRIPTION')}</th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>{:L('DEFAULT_CATEGORY')}</td>
<td></td>
<td>{:L('DEFAULT_CATEGORY')}</td>
<td>{:L('NOT_ALLOWED_EDIT')}</td>
</tr>
<foreach name="slidecats" item="vo">
<tr>
<td>{$vo.cid}</td>
<td>{$vo.cat_name}</td>
<td>{$vo.cat_idname}</td>
<td>{$vo.cat_remark}</td>
<td>
<a href="{:U('slidecat/edit',array('id'=>$vo['cid']))}">{:L('EDIT')}</a>|
<a href="{:U('slidecat/delete',array('id'=>$vo['cid']))}" class="js-ajax-delete">{:L('DELETE')}</a>
</td>
</tr>
</foreach>
</tbody>
</table>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,188 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('storage/index')}">{:L('ADMIN_STORAGE_INDEX')}</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('storage/setting_post')}">
<php>$support_storages=array("Local"=>L('DEFAULT'),"Qiniu"=>L('QINIU'));</php>
<select name="type">
<foreach name="support_storages" item="vo">
<php>$type_selected=$type==$key?"selected":"";</php>
<option value="{$key}"{$type_selected}>{$vo}</option>
</foreach>
</select>
<div style="margin-top: 10px;">
<ul class="nav nav-tabs">
<li class="active"><a href="#qiniu-setting" data-toggle="tab">{:L('QINIU')}</a></li>
<li><a href="#qiniu-picture-protect" data-toggle="tab">原图保护设置</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="qiniu-setting">
<div class="control-group">
<label class="control-label">AccessKey</label>
<div class="controls">
<input type="text" name="Qiniu[accessKey]" value="{$Qiniu.accessKey}">
</div>
</div>
<div class="control-group">
<label class="control-label">SecretKey</label>
<div class="controls">
<input type="text" name="Qiniu[secretKey]" value="{$Qiniu.secretKey}">
</div>
</div>
<div class="control-group">
<label class="control-label">上传域名</label>
<div class="controls">
<input type="text" name="Qiniu[upHost]" value="{$Qiniu.upHost}">
<span class="help-block">
七牛不同存储区域上传域名不一样,根据您空间的存储区域,设置不同的域名;<br>
华东http://up.qiniu.com,华北http://up-z1.qiniu.com;<br>
默认为华东;
</span>
</div>
</div>
<div class="control-group">
<label class="control-label">域名协议</label>
<div class="controls">
<select name="Qiniu[setting][protocol]">
<option value="http">http</option>
<eq name="Qiniu.setting.protocol" value="https">
<option value="https" selected="selected">https</option>
<else />
<option value="https">https</option>
</eq>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('DOMAIN')}</label>
<div class="controls">
<input type="text" name="Qiniu[domain]" value="{$Qiniu.domain}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('BUCKET')}</label>
<div class="controls">
<input type="text" name="Qiniu[bucket]" value="{$Qiniu.bucket}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('GET_ACCESS_KEY')}</label>
<div class="controls">
<a href="https://portal.qiniu.com/signup?code=3lfihpz361o42" target="_blank">{:L('GET_IT_NOW')}</a>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('QINIU_PROMOTION_CODE')}</label>
<div class="controls">
<a href="http://www.thinkcmf.com/topic/topic/index/id/103.html" target="_blank">507670e8</a>
<a href="https://portal.qiniu.com/signin" target="_blank">立即充值</a>
</div>
</div>
<div class="control-group">
<label class="control-label">七牛帮助文档</label>
<div class="controls">
<a href="http://www.thinkcmf.com/qiniu/help.html" target="_blank">立即访问</a>
</div>
</div>
</div>
<div class="tab-pane" id="qiniu-picture-protect">
<div class="control-group">
<label class="control-label">开启原图保护</label>
<div class="controls">
<select name="Qiniu[setting][enable_picture_protect]">
<option value="0">关闭</option>
<empty name="Qiniu.setting.enable_picture_protect">
<option value="1">开启</option>
<else />
<option value="1" selected="selected">开启</option>
</empty>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">样式分隔符</label>
<div class="controls">
<input type="text" name="Qiniu[setting][style_separator]" value="{$Qiniu.setting.style_separator|default='!'}">
</div>
</div>
<div class="control-group">
<label class="control-label">样式-水印</label>
<div class="controls">
<input type="text" name="Qiniu[setting][styles][watermark]" value="{$Qiniu.setting.styles.watermark|default='watermark'}">
<span class="help-block">
请到七牛存储空间->图片样式:添加此样式名称,并进行相应设置
</span>
</div>
</div>
<div class="control-group">
<label class="control-label">样式-头像</label>
<div class="controls">
<input type="text" name="Qiniu[setting][styles][avatar]" value="{$Qiniu.setting.styles.watermark|default='avatar'}">
<span class="help-block">
请到七牛存储空间->图片样式:添加此样式名称,并进行相应设置
处理接口:<br>
imageView2/1/w/100/h/100/interlace/0/q/100
</span>
</div>
</div>
<div class="control-group">
<label class="control-label">样式-缩略图120x120</label>
<div class="controls">
<input type="text" name="Qiniu[setting][styles][thumbnail120x120]" value="{$Qiniu.setting.styles.thumbnail120x120|default='thumbnail120x120'}">
<span class="help-block">
请到七牛存储空间->图片样式:添加此样式名称,并进行相应设置<br>
处理接口:<br>
imageView2/1/w/120/h/120/interlace/0/q/100
</span>
</div>
</div>
<div class="control-group">
<label class="control-label">样式-缩略图300x300</label>
<div class="controls">
<input type="text" name="Qiniu[setting][styles][thumbnail300x300]" value="{$Qiniu.setting.styles.thumbnail300x300|default='thumbnail300x300'}">
<span class="help-block">
请到七牛存储空间->图片样式:添加此样式名称,并进行相应设置<br>
处理接口:<br>
imageView2/1/w/300/h/300/interlace/0/q/100
</span>
</div>
</div>
<div class="control-group">
<label class="control-label">样式-缩略图640x640</label>
<div class="controls">
<input type="text" name="Qiniu[setting][styles][thumbnail640x640]" value="{$Qiniu.setting.styles.thumbnail640x640|default='thumbnail640x640'}">
<span class="help-block">
请到七牛存储空间->图片样式:添加此样式名称,并进行相应设置<br>
处理接口:<br>
imageView2/1/w/640/h/640/interlace/0/q/100
</span>
</div>
</div>
<div class="control-group">
<label class="control-label">样式-缩略图1080x1080</label>
<div class="controls">
<input type="text" name="Qiniu[setting][styles][thumbnail1080x1080]" value="{$Qiniu.setting.styles.thumbnail1080x1080|default='thumbnail1080x1080'}">
<span class="help-block">
请到七牛存储空间->图片样式:添加此样式名称,并进行相应设置<br>
处理接口:<br>
imageView2/1/w/1080/h/1080/interlace/0/q/100
</span>
</div>
</div>
</div>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,46 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('user/index')}">{:L('ADMIN_USER_INDEX')}</a></li>
<li class="active"><a href="{:U('user/add')}">{:L('ADMIN_USER_ADD')}</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('User/add_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('USERNAME')}</label>
<div class="controls">
<input type="text" name="user_login">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('PASSWORD')}</label>
<div class="controls">
<input type="password" name="user_pass">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('EMAIL')}</label>
<div class="controls">
<input type="text" name="user_email">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('ROLE')}</label>
<div class="controls">
<foreach name="roles" item="vo">
<label class="checkbox inline"><input value="{$vo.id}" type="checkbox" name="role_id[]" <if condition="sp_get_current_admin_id() neq 1 && $vo['id'] eq 1">disabled="true"</if>>{$vo.name}</label>
</foreach>
</div>
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('ADD')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,51 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('user/index')}">{:L('ADMIN_USER_INDEX')}</a></li>
<li><a href="{:U('user/add')}">{:L('ADMIN_USER_ADD')}</a></li>
<li class="active"><a>编辑管理员</a></li>
</ul>
<form method="post" class="form-horizontal js-ajax-form" action="{:U('User/edit_post')}">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('USERNAME')}</label>
<div class="controls">
<input type="text" name="user_login" value="{$user_login}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('PASSWORD')}</label>
<div class="controls">
<input type="password" name="user_pass" value="" placeholder="******">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('EMAIL')}</label>
<div class="controls">
<input type="text" name="user_email" value="{$user_email}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('ROLE')}</label>
<div class="controls">
<foreach name="roles" item="vo">
<label class="checkbox inline">
<php>$role_id_checked=in_array($vo['id'],$role_ids)?"checked":"";</php>
<input value="{$vo.id}" type="checkbox" name="role_id[]" {$role_id_checked} <if condition="sp_get_current_admin_id() neq 1 && $vo['id'] eq 1">disabled="true"</if>>{$vo.name}
</label>
</foreach>
</div>
</div>
</fieldset>
<div class="form-actions">
<input type="hidden" name="id" value="{$id}" />
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,71 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('user/index')}">{:L('ADMIN_USER_INDEX')}</a></li>
<li><a href="{:U('user/add')}">{:L('ADMIN_USER_ADD')}</a></li>
</ul>
<form class="well form-search" method="post" action="{:U('User/index')}">
用户名:
<input type="text" name="user_login" style="width: 100px;" value="{:I('request.user_login/s','')}" placeholder="请输入{:L('USERNAME')}">
邮箱:
<input type="text" name="user_email" style="width: 100px;" value="{:I('request.user_email/s','')}" placeholder="请输入{:L('EMAIL')}">
<input type="submit" class="btn btn-primary" value="搜索" />
<a class="btn btn-danger" href="{:U('User/index')}">清空</a>
</form>
<table class="table table-hover table-bordered">
<thead>
<tr>
<th width="50">ID</th>
<th>{:L('USERNAME')}</th>
<th>{:L('LAST_LOGIN_IP')}</th>
<th>{:L('LAST_LOGIN_TIME')}</th>
<th>{:L('EMAIL')}</th>
<th>{:L('STATUS')}</th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</thead>
<tbody>
<php>$user_statuses=array("0"=>L('USER_STATUS_BLOCKED'),"1"=>L('USER_STATUS_ACTIVATED'),"2"=>L('USER_STATUS_UNVERIFIED'));</php>
<foreach name="users" item="vo">
<tr>
<td>{$vo.id}</td>
<td><if condition="$vo['user_url']"><a href="{$vo.user_url}" target="_blank" title="{$vo.signature}">{$vo.user_login}</a><else />{$vo.user_login}</if></td>
<td>{$vo.last_login_ip}</td>
<td>
<if condition="$vo['last_login_time'] eq 0">
{:L('USER_HAVENOT_LOGIN')}
<else />
{$vo.last_login_time}
</if>
</td>
<td>{$vo.user_email}</td>
<td>{$user_statuses[$vo['user_status']]}</td>
<td>
<if condition="$vo['id'] eq 1 || $vo['id'] eq sp_get_current_admin_id()">
<font color="#cccccc">{:L('EDIT')}</font> | <font color="#cccccc">{:L('DELETE')}</font> |
<if condition="$vo['user_status'] eq 1">
<font color="#cccccc">{:L('BLOCK_USER')}</font>
<else />
<font color="#cccccc">{:L('ACTIVATE_USER')}</font>
</if>
<else />
<a href='{:U("user/edit",array("id"=>$vo["id"]))}'>{:L('EDIT')}</a> |
<if condition="$vo['user_status'] eq 1">
<a href="{:U('user/ban',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn" data-msg="{:L('BLOCK_USER_CONFIRM_MESSAGE')}">{:L('BLOCK_USER')}</a> |
<else />
<a href="{:U('user/cancelban',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn" data-msg="{:L('ACTIVATE_USER_CONFIRM_MESSAGE')}">{:L('ACTIVATE_USER')}</a> |
</if>
<a class="js-ajax-delete" href="{:U('user/delete',array('id'=>$vo['id']))}">{:L('DELETE')}</a>
</if>
</td>
</tr>
</foreach>
</tbody>
</table>
<div class="pagination">{$page}</div>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,56 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('User/userinfo')}">{:L('ADMIN_USER_USERINFO')}</a></li>
<li><a href="{:U('setting/password')}">{:L('ADMIN_SETTING_PASSWORD')}</a></li>
</ul>
<form class="form-horizontal js-ajax-form" method="post" action="{:U('User/userinfo_post')}">
<fieldset>
<div class="control-group">
<label class="control-label" for="input-user_nicename"><span class="form-required">*</span>{:L('NICENAME')}</label>
<div class="controls">
<input type="hidden" name="id" value="{$id}">
<input type="text" id="input-user_nicename" name="user_nicename" value="{$user_nicename}" required>
</div>
</div>
<div class="control-group">
<label class="control-label" for="input-gender">{:L('GENDER')}</label>
<div class="controls">
<select name="sex" id="input-gender">
<php>$sexs=array("0"=>L('GENDER_SECRECY'),"1"=>L('MALE'),"2"=>L('FEMALE'));</php>
<foreach name="sexs" item="vo">
<php>$sexselected=$key==$sex?"selected":"";</php>
<option value="{$key}"{$sexselected}>{$vo}</option>
</foreach>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="input-birthday"><span class="form-required">*</span>{:L('BIRTHDAY')}</label>
<div class="controls">
<input class="js-date" type="text" id="input-birthday" placeholder="2013-01-04" name="birthday" value="{$birthday}" required>
</div>
</div>
<div class="control-group">
<label class="control-label" for="input-user_url">{:L('WEBSITE')}</label>
<div class="controls">
<input type="text" id="input-user_url" placeholder="http://thinkcmf.com" name="user_url" value="{$user_url}">
</div>
</div>
<div class="control-group">
<label class="control-label" for="input-signature">{:L('SIGNATURE')}</label>
<div class="controls">
<textarea id="input-signature" placeholder="{:L('SIGNATURE')}" name="signature">{$signature}</textarea>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
</div>
</fieldset>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,295 @@
<!DOCTYPE html>
<html lang="zh_CN" style="overflow: hidden;">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- Set render engine for 360 browser -->
<meta name="renderer" content="webkit">
<meta charset="utf-8">
<title>乐谷{:L('ADMIN_CENTER')}</title>
<meta name="description" content="This is page-header (.page-header &gt; h1)">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="__PUBLIC__/simpleboot/themes/{:C('SP_ADMIN_STYLE')}/theme.min.css" rel="stylesheet">
<link href="__PUBLIC__/simpleboot/css/simplebootadmin.css" rel="stylesheet">
<link href="__PUBLIC__/simpleboot/font-awesome/4.4.0/css/font-awesome.min.css?page=index" rel="stylesheet" type="text/css">
<!--[if IE 7]>
<link rel="stylesheet" href="__PUBLIC__/simpleboot/font-awesome/4.4.0/css/font-awesome-ie7.min.css">
<![endif]-->
<link rel="stylesheet" href="__PUBLIC__/simpleboot/themes/{:C('SP_ADMIN_STYLE')}/simplebootadminindex.min.css?">
<link href="__PUBLIC__/js/artDialog/skins/default.css" rel="stylesheet" />
<!--[if lte IE 8]>
<link rel="stylesheet" href="__PUBLIC__/simpleboot/css/simplebootadminindex-ie.css?" />
<![endif]-->
<style>
.navbar .nav_shortcuts .btn{margin-top: 5px;}
.macro-component-tabitem{width:101px;}
/*-----------------导航hack--------------------*/
.nav-list>li.open{position: relative;}
.nav-list>li.open .back {display: none;}
.nav-list>li.open .normal {display: inline-block !important;}
.nav-list>li.open a {padding-left: 7px;}
.nav-list>li .submenu>li>a {background: #fff;}
.nav-list>li .submenu>li a>[class*="fa-"]:first-child{left:20px;}
.nav-list>li ul.submenu ul.submenu>li a>[class*="fa-"]:first-child{left:30px;}
/*----------------导航hack--------------------*/
</style>
<script>
//全局变量
var GV = {
HOST:"{$_SERVER['HTTP_HOST']}",
ROOT: "__ROOT__/",
WEB_ROOT: "__WEB_ROOT__/",
JS_ROOT: "public/js/"
};
</script>
<php>$submenus=$menus;</php>
<php>function getsubmenu($submenus){</php>
<php>foreach($submenus as $menu){ </php>
<li>
<php>
$menu_name=L($menu['lang']);
$menu_name=$menu['lang']==$menu_name?$menu['name']:$menu_name;
</php>
<php>if(empty($menu['items'])){</php>
<a href="javascript:openapp('{$menu.url}','{$menu.id}','{$menu_name}',true);">
<i class="fa fa-{$menu.icon|default='desktop'}"></i>
<span class="menu-text">
{$menu_name}
</span>
</a>
<php>}else{</php>
<a href="#" class="dropdown-toggle">
<i class="fa fa-{$menu.icon|default='desktop'} normal"></i>
<span class="menu-text normal">
{$menu_name}
</span>
<b class="arrow fa fa-angle-right normal"></b>
<i class="fa fa-reply back"></i>
<span class="menu-text back">返回</span>
</a>
<ul class="submenu">
<php>getsubmenu1($menu['items'])</php>
</ul>
<php>}</php>
</li>
<php>}</php>
<php>}</php>
<php>function getsubmenu1($submenus){</php>
<php>foreach($submenus as $menu){</php>
<li>
<php>
$menu_name=L($menu['lang']);
$menu_name=$menu['lang']==$menu_name?$menu['name']:$menu_name;
</php>
<php>if(empty($menu['items'])){</php>
<a href="javascript:openapp('{$menu.url}','{$menu.id}','{$menu_name}',true);">
<i class="fa fa-caret-right"></i>
<span class="menu-text">
{$menu_name}
</span>
</a>
<php>}else{</php>
<a href="#" class="dropdown-toggle">
<i class="fa fa-caret-right"></i>
<span class="menu-text">
{$menu_name}
</span>
<b class="arrow fa fa-angle-right"></b>
</a>
<ul class="submenu">
<php>getsubmenu2($menu['items'])</php>
</ul>
<php>}</php>
</li>
<php>}</php>
<php>}</php>
<php>function getsubmenu2($submenus){</php>
<php>foreach($submenus as $menu){</php>
<li>
<php>
$menu_name=L($menu['lang']);
$menu_name=$menu['lang']==$menu_name?$menu['name']:$menu_name;
</php>
<a href="javascript:openapp('{$menu.url}','{$menu.id}','{$menu_name}',true);">
&nbsp;<i class="fa fa-angle-double-right"></i>
<span class="menu-text">
{$menu_name}
</span>
</a>
</li>
<php>}</php>
<php>}</php>
<if condition="APP_DEBUG">
<style>
#think_page_trace_open{left: 0 !important;
right: initial !important;}
</style>
</if>
</head>
<body style="min-width:900px;" screen_capture_injected="true">
<div id="loading"><i class="loadingicon"></i><span>{:L('LOADING')}</span></div>
<div id="right_tools_wrapper">
<!--<span id="right_tools_clearcache" title="清除缓存" onclick="javascript:openapp('{:U('admin/setting/clearcache')}','right_tool_clearcache','清除缓存');"><i class="fa fa-trash-o right_tool_icon"></i></span>-->
<span id="refresh_wrapper" title="{:L('REFRESH_CURRENT_PAGE')}" ><i class="fa fa-refresh right_tool_icon"></i></span>
</div>
<div class="navbar">
<div class="navbar-inner">
<div class="container-fluid">
<a href="{:U('admin/index/index')}" class="brand"> <small>
乐谷{:L('ADMIN_CENTER')}
</small>
</a>
<div class="pull-left nav_shortcuts" >
<a class="btn btn-small btn-warning" href="__ROOT__/" title="{:L('WEBSITE_HOME_PAGE')}" target="_blank">
<i class="fa fa-home"></i>
</a>
<!--<if condition="sp_auth_check(sp_get_current_admin_id(),'portal/AdminTerm/index')">-->
<!--<a class="btn btn-small btn-success" href="javascript:openapp('{:U('portal/AdminTerm/index')}','index_termlist','{:L('PORTAL_ADMINTERM_INDEX')}');" title="{:L('PORTAL_ADMINTERM_INDEX')}">-->
<!--<i class="fa fa-th"></i>-->
<!--</a>-->
<!--</if>-->
<if condition="sp_auth_check(sp_get_current_admin_id(),'portal/AdminPost/index')">
<a class="btn btn-small btn-info" href="javascript:openapp('{:U('portal/AdminPost/index')}','index_postlist','{:L('PORTAL_ADMINPOST_INDEX')}');" title="{:L('PORTAL_ADMINPOST_INDEX')}">
<i class="fa fa-pencil"></i>
</a>
</if>
<if condition="sp_auth_check(sp_get_current_admin_id(),'admin/setting/clearcache')">
<a class="btn btn-small btn-danger" href="javascript:openapp('{:U('admin/setting/clearcache')}','index_clearcache','{:L('ADMIN_SETTING_CLEARCACHE')}');" title="{:L('ADMIN_SETTING_CLEARCACHE')}">
<i class="fa fa-trash-o"></i>
</a>
</if>
<!--<if condition="APP_DEBUG">-->
<!--<a class="btn btn-small" href="javascript:openapp('{:U('admin/menu/index')}','index_menu','{:L('ADMIN_MENU_INDEX')}');" title="{:L('ADMIN_MENU_INDEX')}">-->
<!--<i class="fa fa-list"></i>-->
<!--</a>-->
<!--</if>-->
</div>
<ul class="nav simplewind-nav pull-right">
<li class="light-blue">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<if condition="$admin['avatar']">
<img class="nav-user-photo" width="30" height="30" src="{:sp_get_user_avatar_url($admin['avatar'])}" alt="{$admin.user_login}">
<else />
<img class="nav-user-photo" width="30" height="30" src="__TMPL__Public/assets/images/logo-18.png" alt="{$admin.user_login}">
</if>
<span class="user-info">
{:L('WELCOME_USER',array('username'=>empty($admin['user_nicename'])?$admin['user_login']:$admin['user_nicename']))}
</span>
<i class="fa fa-caret-down"></i>
</a>
<ul class="user-menu pull-right dropdown-menu dropdown-yellow dropdown-caret dropdown-closer">
<!--<if condition="sp_auth_check(sp_get_current_admin_id(),'admin/setting/site')">-->
<!--<li><a href="javascript:openapp('{:U('setting/site')}','index_site','{:L('ADMIN_SETTING_SITE')}');"><i class="fa fa-cog"></i> {:L('ADMIN_SETTING_SITE')}</a></li>-->
<!--</if>-->
<if condition="sp_auth_check(sp_get_current_admin_id(),'admin/user/userinfo')">
<li><a href="javascript:openapp('{:U('user/userinfo')}','index_userinfo','{:L('ADMIN_USER_USERINFO')}');"><i class="fa fa-user"></i> {:L('ADMIN_USER_USERINFO')}</a></li>
</if>
<if condition="sp_auth_check(sp_get_current_admin_id(),'admin/setting/password')">
<li><a href="javascript:openapp('{:U('setting/password')}','index_password','{:L('ADMIN_SETTING_PASSWORD')}');"><i class="fa fa-lock"></i> {:L('ADMIN_SETTING_PASSWORD')}</a></li>
</if>
<li><a href="{:U('Public/logout')}"><i class="fa fa-sign-out"></i> {:L('LOGOUT')}</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="main-container container-fluid">
<div class="sidebar" id="sidebar">
<!-- <div class="sidebar-shortcuts" id="sidebar-shortcuts">
</div> -->
<div id="nav_wraper">
<ul class="nav nav-list">
{:getsubmenu($submenus)}
</ul>
</div>
</div>
<div class="main-content">
<div class="breadcrumbs" id="breadcrumbs">
<a id="task-pre" class="task-changebt"></a>
<div id="task-content">
<ul class="macro-component-tab" id="task-content-inner">
<li class="macro-component-tabitem noclose" app-id="0" app-url="{:U('main/index')}" app-name="首页">
<span class="macro-tabs-item-text">{:L('HOME')}</span>
</li>
</ul>
<div style="clear:both;"></div>
</div>
<a id="task-next" class="task-changebt"></a>
</div>
<div class="page-content" id="content">
<iframe src="{:U('Main/index')}" style="width:100%;height: 100%;" frameborder="0" id="appiframe-0" class="appiframe"></iframe>
</div>
</div>
</div>
<script src="__PUBLIC__/js/jquery.js"></script>
<script src="__PUBLIC__/js/wind.js"></script>
<script src="__PUBLIC__/simpleboot/bootstrap/js/bootstrap.min.js"></script>
<script>
var ismenumin = $("#sidebar").hasClass("menu-min");
$(".nav-list").on( "click",function(event) {
var closest_a = $(event.target).closest("a");
if (!closest_a || closest_a.length == 0) {
return
}
if (!closest_a.hasClass("dropdown-toggle")) {
if (ismenumin && "click" == "tap" && closest_a.get(0).parentNode.parentNode == this) {
var closest_a_menu_text = closest_a.find(".menu-text").get(0);
if (event.target != closest_a_menu_text && !$.contains(closest_a_menu_text, event.target)) {
return false
}
}
return
}
var closest_a_next = closest_a.next().get(0);
if (!$(closest_a_next).is(":visible")) {
var closest_ul = $(closest_a_next.parentNode).closest("ul");
if (ismenumin && closest_ul.hasClass("nav-list")) {
return
}
closest_ul.find("> .open > .submenu").each(function() {
if (this != closest_a_next && !$(this.parentNode).hasClass("active")) {
$(this).slideUp(150).parent().removeClass("open")
}
});
}
if (ismenumin && $(closest_a_next.parentNode.parentNode).hasClass("nav-list")) {
return false;
}
$(closest_a_next).slideToggle(150).parent().toggleClass("open");
return false;
});
</script>
<script src="__PUBLIC__/js/common.js"></script>
<script src="__TMPL__Public/assets/js/index.js"></script>
</body>
</html>

View File

@ -0,0 +1,29 @@
<admintpl file="header" />
<style>
li {
list-style: none;
}
</style>
</head>
<body>
<div class="wrap">
<div id="error_tips">
<h2>{$msgTitle}</h2>
<div class="error_cont">
<ul>
<li>{$error}</li>
</ul>
<div class="error_return">
<a href="{$jumpUrl}" class="btn">返回</a>
</div>
</div>
</div>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
setTimeout(function() {
location.href = '{$jumpUrl}';
}, 3000);
</script>
</body>
</html>

View File

@ -0,0 +1,50 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<!-- Set render engine for 360 browser -->
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- HTML5 shim for IE8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<![endif]-->
<link href="__PUBLIC__/simpleboot/themes/{:C('SP_ADMIN_STYLE')}/theme.min.css" rel="stylesheet">
<link href="__PUBLIC__/simpleboot/css/simplebootadmin.css" rel="stylesheet">
<link href="__PUBLIC__/js/artDialog/skins/default.css" rel="stylesheet" />
<link href="__PUBLIC__/simpleboot/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<style>
form .input-order{margin-bottom: 0px;padding:3px;width:40px;}
.table-actions{margin-top: 5px; margin-bottom: 5px;padding:0px;}
.table-list{margin-bottom: 0px;}
</style>
<!--[if IE 7]>
<link rel="stylesheet" href="__PUBLIC__/simpleboot/font-awesome/4.4.0/css/font-awesome-ie7.min.css">
<![endif]-->
<script type="text/javascript">
//全局变量
var GV = {
ROOT: "__ROOT__/",
WEB_ROOT: "__WEB_ROOT__/",
JS_ROOT: "public/js/",
APP:'{$Think.MODULE_NAME}'/*当前应用名*/
};
</script>
<script src="__PUBLIC__/js/jquery.js"></script>
<script src="__PUBLIC__/js/wind.js"></script>
<script src="__PUBLIC__/simpleboot/bootstrap/js/bootstrap.min.js"></script>
<script>
$(function(){
$("[data-toggle='tooltip']").tooltip();
});
</script>
<if condition="APP_DEBUG">
<style>
#think_page_trace_open{
z-index:9999;
}
</style>
</if>

View File

@ -0,0 +1,75 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<title>乐谷 {:L('ADMIN_CENTER')}</title>
<meta http-equiv="X-UA-Compatible" content="chrome=1,IE=edge" />
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta name="robots" content="noindex,nofollow">
<link href="__TMPL__Public/assets/css/admin_login.css" rel="stylesheet" />
<style>
#login_btn_wraper{
text-align: center;
}
#login_btn_wraper .tips_success{
color:#fff;
}
#login_btn_wraper .tips_error{
color:#DFC05D;
}
#login_btn_wraper button:focus{outline:none;}
</style>
<script>
if (window.parent !== window.self) {
document.write = '';
window.parent.location.href = window.self.location.href;
setTimeout(function () {
document.body.innerHTML = '';
}, 0);
}
</script>
</head>
<body>
<div class="wrap">
<h1><a>乐谷官网</a></h1>
<form method="post" name="login" action="{:U('public/dologin')}" autoComplete="off" class="js-ajax-form">
<div class="login">
<ul>
<li>
<input class="input" id="js-admin-name" name="username" type="text" placeholder="{:L('USERNAME_OR_EMAIL')}" title="{:L('USERNAME_OR_EMAIL')}" value="{:cookie('admin_username')}" data-rule-required="true" data-msg-required=""/>
</li>
<li>
<input class="input" id="admin_pwd" type="password" name="password" placeholder="{:L('PASSWORD')}" title="{:L('PASSWORD')}" data-rule-required="true" data-msg-required=""/>
</li>
<li class="verifycode-wrapper">
{:sp_verifycode_img('length=4&font_size=20&width=248&height=42&use_noise=1&use_curve=0','style="cursor: pointer;" title="点击获取"')}
</li>
<li>
<input class="input" type="text" name="verify" placeholder="{:L('ENTER_VERIFY_CODE')}" />
</li>
</ul>
<div id="login_btn_wraper">
<button type="submit" name="submit" class="btn js-ajax-submit" data-loadingmsg="{:L('LOADING')}">{:L('LOGIN')}</button>
</div>
</div>
</form>
</div>
<script>
var GV = {
ROOT: "__ROOT__/",
WEB_ROOT: "__WEB_ROOT__/",
JS_ROOT: "public/js/"
};
</script>
<script src="__PUBLIC__/js/wind.js"></script>
<script src="__PUBLIC__/js/jquery.js"></script>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
<script>
;(function(){
document.getElementById('js-admin-name').focus();
})();
</script>
</body>
</html>

View File

@ -0,0 +1,29 @@
<admintpl file="header" />
<style>
li {
list-style: none;
}
</style>
</head>
<body>
<div class="wrap">
<div id="error_tips">
<h2>{$msgTitle}</h2>
<div class="error_cont">
<ul>
<li>{$message}</li>
</ul>
<div class="error_return">
<a href="{$jumpUrl}" class="btn">返回</a>
</div>
</div>
</div>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
setTimeout(function() {
location.href = '{$jumpUrl}';
}, 3000);
</script>
</body>
</html>

View File

@ -0,0 +1,42 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('guestbookadmin/index')}">{:L('API_GUESTBOOKADMIN_INDEX')}</a></li>
</ul>
<form method="post" class="js-ajax-form">
<table class="table table-hover table-bordered">
<thead>
<tr>
<th width="50">ID</th>
<th width="100">{:L('NAME')}</th>
<th width="150">{:L('EMAIL')}</th>
<th style="min-width: 60px;">{:L('TITLE')}</th>
<th>{:L('CONTENT')}</th>
<th width="120">{:L('TIME')}</th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</thead>
<tbody>
<foreach name="guestmsgs" item="vo">
<tr>
<td>{$vo.id}</td>
<td>{$vo.full_name}</td>
<td>{$vo.email}</td>
<td>{$vo.title}</td>
<td>{$vo.msg}</td>
<td>{$vo.createtime}</td>
<td>
<a href="{:U('guestbookadmin/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">{:L('DELETE')}</a>
</td>
</tr>
</foreach>
</tbody>
</table>
<div class="pagination">{$page}</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js?"></script>
</body>
</html>

View File

@ -0,0 +1,42 @@
<admintpl file="header" />
</head>
<body style="min-width:800px;">
<div class="wrap js-check-wrap">
<form class="js-ajax-form" action="" method="post">
<div class="table_list">
<table width="100%">
<thead>
<tr>
<td width="16"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></td>
<td width="50">ID</td>
<td>省/直辖市</td>
<td>城市名称</td>
<td width="50"><span>状态</span></td>
</tr>
</thead>
<php>$status=array("1"=>"显示","0"=>"隐藏");</php>
<foreach name="citys" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]" value="{$vo.city_id}" ></td>
<td>{$vo.city_id}</td>
<td>{$vo.province}</td>
<td>{$vo.city}</td>
<td>{$status[$vo['status']]}</td>
</tr>
</foreach>
</table>
<div class="p10"><div class="pages"> {$Page} </div> </div>
</div>
<div>
<div class="btn_wrap_pd">
<label class="mr20"><input type="checkbox" class="js-check-all" data-direction="y" data-checklist="js-check-y">全选</label>
<button class="btn js-ajax-submit" type="submit" data-action="{:U('Locationadmin/city_show',array('show'=>1))}" data-subcheck="true">显示</button>
<button class="btn js-ajax-submit" type="submit" data-action="{:U('Locationadmin/city_show',array('unshow'=>1))}" data-subcheck="true">隐藏</button>
</div>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js{$js_debug}"></script>
</body>
</html>

View File

@ -0,0 +1,44 @@
<admintpl file="header" />
</head>
<body style="min-width:800px;">
<div class="wrap js-check-wrap">
<form class="js-ajax-form" action="" method="post">
<div class="table_list">
<table width="100%">
<thead>
<tr>
<td width="16"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></td>
<td width="50">ID</td>
<td>省/直辖市</td>
<td>城市名称</td>
<td>县/区</td>
<td width="50"><span>状态</span></td>
</tr>
</thead>
<php>$status=array("1"=>"显示","0"=>"隐藏");</php>
<foreach name="districts" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]" value="{$vo.district_id}" ></td>
<td>{$vo.district_id}</td>
<td>{$vo.province}</td>
<td>{$vo.city}</td>
<td>{$vo.district}</td>
<td>{$status[$vo['status']]}</td>
</tr>
</foreach>
</table>
<div class="p10"><div class="pages"> {$Page} </div> </div>
</div>
<div>
<div class="btn_wrap_pd">
<label class="mr20"><input type="checkbox" class="js-check-all" data-direction="y" data-checklist="js-check-y">全选</label>
<button class="btn js-ajax-submit" type="submit" data-action="{:U('Locationadmin/district_show',array('show'=>1))}" data-subcheck="true">显示</button>
<button class="btn js-ajax-submit" type="submit" data-action="{:U('Locationadmin/district_show',array('unshow'=>1))}" data-subcheck="true">隐藏</button>
</div>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js{$js_debug}"></script>
</body>
</html>

View File

@ -0,0 +1,43 @@
<admintpl file="header" />
</head>
<body style="min-width:800px;">
<div class="wrap js-check-wrap">
<form class="js-ajax-form" action="" method="post">
<div class="table_list">
<table width="100%" class="table table-hover">
<thead>
<tr>
<td width="16"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></td>
<th width="50">排序</th>
<td width="50">ID</td>
<td>名称</td>
<td width="50"><span>状态</span></td>
</tr>
</thead>
<php>$status=array("1"=>"显示","0"=>"隐藏");</php>
<foreach name="provinces" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]" value="{$vo.province_id}" ></td>
<td><input name='listorders[{$vo.province_id}]' class="input input-order" type='text' size='3' value='{$vo.listorder}'></td>
<td>{$vo.province_id}</td>
<td>{$vo.province}</td>
<td>{$status[$vo['status']]}</td>
</tr>
</foreach>
</table>
<div class="p10"><div class="pages"> {$Page} </div> </div>
</div>
<div>
<div class="btn_wrap_pd">
<label class="mr20"><input type="checkbox" class="js-check-all" data-direction="y" data-checklist="js-check-y">全选</label>
<button class="btn btn-primary js-ajax-submit" type="submit" data-action="{:U('Locationadmin/listorders')}">排序</button>
<button class="btn js-ajax-submit" type="submit" data-action="{:U('Locationadmin/province_show',array('show'=>1))}" data-subcheck="true">显示</button>
<button class="btn js-ajax-submit" type="submit" data-action="{:U('Locationadmin/province_show',array('unshow'=>1))}" data-subcheck="true">隐藏</button>
</div>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js{$js_debug}"></script>
</body>
</html>

View File

@ -0,0 +1,107 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width:100%;height: 100%;overflow: hidden;margin:0;}
#suggestId{position: absolute;z-index: 9999;right:20px;top:20px;}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=KxkuAcGBup6sD1XxaDW85KBG"></script>
<title>点击地图获取当前经纬度</title>
</head>
<body>
<input id="lng_input" type="hidden" value="{$lng}"/>
<input id="lat_input" type="hidden" value="{$lat}"/>
<input id="address_input" type="hidden"/>
<input id="city_input" type="hidden"/>
<input id="province_input" type="hidden"/>
<input id="district_input" type="hidden"/>
<div style="position: relative;">
<input id="suggestId" type="text" placeholder="请输入地址"/>
<div id="allmap"></div>
</div>
<script type="text/javascript">
// 百度地图API功能
var center=new BMap.Point({$lng}, {$lat});
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 8);
map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用
map.enableContinuousZoom();
var map_ac = new BMap.Autocomplete( //建立一个自动完成的对象
{"input" : "suggestId"
,"location" : map
});
var marker = new BMap.Marker(center); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
marker.enableDragging(); //可拖拽
marker.setAnimation(BMAP_ANIMATION_BOUNCE);
map_ac.addEventListener("onconfirm", function(e) { //鼠标点击下拉列表后的事件
var _value = e.item.value;
function myFun(){
var pp = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
map.centerAndZoom(pp, 8);
marker.setPosition(pp);
mgetLocation(pp);
}
myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
var local = new BMap.LocalSearch(map, { //智能搜索
onSearchComplete: myFun
});
local.search(myValue);
});
var opts = {
width : 200, // 信息窗口宽度
height: 30, // 信息窗口高度
title : "" , // 信息窗口标题
enableMessage:false,//设置允许信息窗发送短息
}
var infoWindow = new BMap.InfoWindow("拖动我设置你的位置", opts); // 创建信息窗口对象
marker.openInfoWindow(infoWindow);
var gc = new BMap.Geocoder();
function msetpoint(e){
document.getElementById("lng_input").value=e.point.lng;
document.getElementById("lat_input").value=e.point.lat;
marker.setPosition(new BMap.Point(e.point.lng, e.point.lat));
mgetLocation(e.point);
}
function mgetLocation(point){
gc.getLocation(point, function(rs){
var addComp = rs.addressComponents;
marker.openInfoWindow(new BMap.InfoWindow(rs.address, opts));
document.getElementById("address_input").value=rs.address;
document.getElementById("city_input").value=addComp.city;
document.getElementById("province_input").value=addComp.province;
document.getElementById("district_input").value=addComp.district;
//alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
});
}
marker.addEventListener("dragend",msetpoint)
map.addEventListener("click", msetpoint);
function tilesloaded(){
map.setCenter(center); //设置地图中心点。center除了可以为坐标点以外还支持城市名
mgetLocation(center);
// map.setZoom(8); //将视图切换到指定的缩放等级,中心点坐标不变
map.removeEventListener("tilesloaded",tilesloaded);
}
map.addEventListener("tilesloaded",tilesloaded);
</script>
</body>
</html>

View File

@ -0,0 +1,43 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<form method="post" class="js-ajax-form">
<table class="table table-hover">
<thead>
<tr>
<th align="center">ID</th>
<th>来源</th>
<th>用户名</th>
<th>头像</th>
<th>绑定账号</th>
<th>首次登录时间</th>
<th>最后登录时间</th>
<th>最后登录IP</th>
<th>登录次数</th>
<th align="center">操作</th>
</tr>
</thead>
<tbody>
<foreach name="lists" item="vo">
<tr>
<td align="center">{$vo.id}</td>
<td>{$vo._from}</td>
<td>{$vo._name}</td>
<td><img width="25" height="25" src="{$vo.head_img}"/></td>
<td>{$vo['lock_to_id']|default='无'}</td>
<td>{:date('Y-m-d H:i:s', $vo['create_time'])}</td>
<td>{:date('Y-m-d H:i:s', $vo['last_login_time'])}</td>
<td>{$vo.last_login_ip}</td>
<td>{$vo.login_times}</td>
<td align="center"><a href="{:U('oauthadmin/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">删除</a></td>
</tr>
</foreach>
</tbody>
</table>
<div class="pagination">{$page}</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,93 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="#A" data-toggle="tab">{:L('QQ_CONNECT')}</a></li>
<li><a href="#B" data-toggle="tab">{:L('WEIBO_CONNECT')}</a></li>
<!-- <li><a href="#C" data-toggle="tab">微信登录设置</a></li> -->
</ul>
<form method="post" class="js-ajax-form" action="{:U('oauthadmin/setting_post')}">
<div class="tabbable">
<div class="tab-content">
<div class="tab-pane active" id="A">
<table width="100%" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td width="140">APPkey</td>
<td><input type="text" name="qq_key" value="{$Think.config.THINK_SDK_QQ.APP_KEY}" /></td>
</tr>
<tr>
<td>APPsecret</td>
<td><input type="text" name="qq_sec" value="{$Think.config.THINK_SDK_QQ.APP_SECRET}" /></td>
</tr>
<tr>
<td>授权回调页:</td>
<td>{:sp_get_host()}/index.php</td>
</tr>
<tr>
<td colspan="2"><a href="http://connect.qq.com/" target="_blank">{:L('CLICK_HERE')}</a>{:L('GET_QQ_APPKEY_AND_APPSECRET')}</td>
</tr>
</tbody>
</table>
</div>
<div class="tab-pane" id="B">
<table width="100%">
<tbody>
<tr>
<td width="140">APPkey</td>
<td><input type="text" name="sina_key" value="{$Think.config.THINK_SDK_SINA.APP_KEY}" /></td>
</tr>
<tr>
<td>APPsecret</td>
<td><input type="text" name="sina_sec" value="{$Think.config.THINK_SDK_SINA.APP_SECRET}" /></td>
</tr>
<tr>
<td>{:L('CALLBACK_URL')}</td>
<td>{$callback_uri_root}sina</td>
</tr>
<tr>
<td>{:L('CANCEL_CALLBACK_URL')}</td>
<td>{:sp_get_host()}</td>
</tr>
<tr>
<td colspan="2"><a href="http://open.weibo.com/" target="_blank">{:L('CLICK_HERE')}</a> {:L('GET_WEIBO_APPKEY_AND_APPSECRET')}</td>
</tr>
</tbody>
</table>
</div>
<div class="tab-pane" id="C">
<table width="100%">
<tbody>
<tr>
<td width="140">APPkey</td>
<td><input type="text" name="wx_key" value="{$Think.config.THINK_SDK_WEIXIN.APP_KEY}" /></td>
</tr>
<tr>
<td>APPsecret</td>
<td><input type="text" name="wx_sec" value="{$Think.config.THINK_SDK_WEIXIN.APP_SECRET}" /></td>
</tr>
<tr>
<td>{:L('CALLBACK_URL')}</td>
<td>{$callback_uri_root}weixin</td>
</tr>
<tr>
<td>{:L('CANCEL_CALLBACK_URL')}</td>
<td>{:sp_get_host()}</td>
</tr>
<tr>
<td colspan="2"><a href="https://open.weixin.qq.com" target="_blank">{:L('CLICK_HERE')}</a> 获取微信登录APPKey及APPsecret</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary js-ajax-submit">{:L('SAVE')}</button>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,242 @@
<admintpl file="header" />
<style>
.file-upload-btn-wrapper {
margin-bottom: 10px;
}
.file-upload-btn-wrapper .num {
color: #999999;
float: right;
margin-top: 5px;
}
.file-upload-btn-wrapper .num em {
color: #FF5500;
font-style: normal;
}
.files-wrapper {
border: 1px solid #CCCCCC;
}
.files-wrapper ul {
height: 280px;
overflow-y: scroll;
padding-bottom: 10px;
position: relative;
margin: 0;
}
.files-wrapper li {
display: inline;
float: left;
height: 100px;
margin: 10px 0 0 10px;
width: 100px;
position: relative;
border:1px solid #CCCCCC;
}
.files-wrapper li.selected {
border: 1px solid #fe781e;
}
.files-wrapper li .upload-percent{
width: 100%;
height:100%;
line-height: 100px;
text-align: center;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.files-wrapper li .selected-icon-wrapper{
position: absolute;
right: 0;
top: 0;
width: 20px;
height: 20px;
font-size: 16px;
text-align:center;
line-height:20px;
color:#fe781e;
display: none;
}
.files-wrapper li.selected .selected-icon-wrapper{
display: block;
}
.files-wrapper li img{
width: 100%;
height: 100%;
vertical-align: top;
}
</style>
<script>
function get_selected_files(){
var tab = $("#uploader-tabs li.active").data('tab');
var files= [];
if(tab=='upload-file'){
var $files=$('#files-container li.uploaded.selected');
if($files.length==0){
alert('请上传文件!');
return false;
}
$files.each(function(){
var $this=$(this);
var url = $this.data('url');
var preview_url = $this.data('preview_url');
var filepath = $this.data('filepath');
var name = $this.data('name');
var id = $this.data('id');
files.push({url:url,preview_url:preview_url,filepath:filepath,name:name,id:id});
});
}
if(tab=='network-file'){
var url=$('#network-file-input').val();
if(url==''){
alert('请填写文件地址!');
return false;
}
var id = "networkfile"+new Date().getTime();
files.push({url:url,preview_url:url,filepath:url,id:id});
}
return files;
}
</script>
</head>
<body>
<div class="wrap" style="padding: 5px;">
<ul class="nav nav-tabs" id="uploader-tabs">
<li class="active" data-tab="upload-file"><a href="#upload-file-tab" data-toggle="tab">上传文件</a></li>
<li data-tab="network-file"><a href="#network-file-tab" data-toggle="tab">网络文件</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="upload-file-tab">
<div class="file-upload-btn-wrapper">
<!--选择按钮-->
<div id="container" style="display: inline-block;">
<a class="btn btn-primary" id="select-files">
选择文件
</a>
</div>
<span class="num">
<empty name="multi">
最多上传<em>1</em>个附件,
</empty>
单文件最大<em>{$upload_max_filesize_mb}MB</em>,
<em style="cursor: help;" title="可上传格式:{$extensions}" data-toggle="tooltip">支持格式?</em>
</span>
</div>
<div class="files-wrapper">
<ul id="files-container">
</ul>
</div>
</div>
<div class="tab-pane" id="network-file-tab">
请输入网络地址<br>
<input type="text" name="info[filename]" style="width: 600px;" placeholder="http://" id="network-file-input">
</div>
</div>
</div>
<script>
var multi={$multi};
var mime_type = {$mime_type};
var extensions = mime_type.extensions.split(/,/);
var mimeTypeRegExp=new RegExp('\\.(' + extensions.join('|') + ')$', 'i');
Wind.use('plupload',function(){
var uploader = new plupload.Uploader({
runtimes : 'html5,flash,silverlight,html4',
browse_button : 'select-files', // you can pass an id...
container: document.getElementById('container'), // ... or DOM Element itself
url : "{:U('asset/asset/plupload')}",
flash_swf_url : '__PUBLIC__/js/plupload/Moxie.swf',
silverlight_xap_url : '__PUBLIC__/js/plupload/Moxie.xap',
filters : {
max_file_size : '{$upload_max_filesize_mb}mb'/* ,
mime_types: [{$mime_type}] */
},
multi_selection:{$multi},
multipart_params:{
app:'{$app}'
},
init: {
PostInit: function() {
},
FilesAdded: function(up, files) {
plupload.each(files, function(file) {
var $newfile=$('\
<li class="selected">\
<div class="selected-icon-wrapper"><i class="fa fa-check-circle"></i></div>\
<div class="upload-percent">0%</div>\
</li>');
$newfile.attr('id',file.id);
$('#files-container').append($newfile);
$newfile.on('click',function(){
var $this=$(this);
$this.toggleClass('selected');
});
});
uploader.start();
},
UploadProgress: function(up, file) {
$('#'+file.id).find('.upload-percent').text(file.percent+"%");
},
FileUploaded: function(up, file, response) {
var data = JSON.parse(response.response);
if(data.status==1){
if(!multi) {
$('#select-files').css('visibility','hidden');
$('#container').css('visibility','hidden');
}
var $file=$('#'+file.id);
$file.addClass('uploaded')
.data('id',file.id)
.data('url',data.url)
.data('preview_url',data.preview_url)
.data('filepath',data.filepath)
.data('name',data.name);
if(data.url.match(/\.(jpeg|gif|jpg|png|bmp|pic)$/gi)){
var $img=$('<img/>');
$img.attr('src',data.url);
$file.find('.upload-percent')
.html($img);
}else{
$file.find('.upload-percent').attr('title',data.name).text(data.name);
}
}else{
alert(data.message);
$('#'+file.id).remove();
}
},
Error: function(up, err) {
}
}
});
plupload.addFileFilter('mime_types', function(filters, file, cb) {
if (!mimeTypeRegExp.test(file.name)) {
this.trigger('Error', {
code : plupload.FILE_EXTENSION_ERROR,
message : plupload.translate('File extension error.'),
file : file
});
alert("此文件类型不能上传!\n"+file.name);
cb(false);
} else {
cb(true);
}
});
uploader.init();
});
</script>
</body>
</html>

View File

@ -0,0 +1,66 @@
<admintpl file="header" />
</head>
<body style="min-width: 800px;">
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('commentadmin/index')}">{:L('COMMENT_COMMENTADMIN_INDEX')}</a></li>
</ul>
<form class="js-ajax-form" method="post">
<div class="table-actions">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('Commentadmin/check',array('check'=>1))}" data-subcheck="true">{:L('AUDIT')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('Commentadmin/check',array('uncheck'=>1))}" data-subcheck="true">{:L('CANCEL_AUDIT')}</button>
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('Commentadmin/delete')}" data-subcheck="true" data-msg="{:L('DELETE_CONFIRM_MESSAGE')}">{:L('DELETE')}</button>
</div>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="15"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="50">ID</th>
<th width="100">{:L('NAME')}</th>
<th width="150">{:L('EMAIL')}</th>
<th>{:L('CONTENT')}</th>
<th width="120">{:L('TIME')}</th>
<th width="50">{:L('STATUS')}</th>
<th width="80">{:L('ACTIONS')}</th>
</tr>
</thead>
<php>$status=array("1"=>L('AUDITED'),"0"=>L('NOT_AUDITED'));</php>
<foreach name="comments" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]" value="{$vo.id}"></td>
<td>{$vo.id}</td>
<td>{$vo.full_name}</td>
<td>{$vo.email}</td>
<td>{$vo.content}</td>
<td>{$vo.createtime}</td>
<td>{$status[$vo['status']]}</td>
<td>
<a target="_blank" href="__ROOT__/{$vo.url}">查看原文</a>
<a href="{:U('Commentadmin/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">{:L('DELETE')}</a>
</td>
</tr>
</foreach>
<tfoot>
<tr>
<th width="15"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="50">ID</th>
<th width="100">{:L('NAME')}</th>
<th width="150">{:L('EMAIL')}</th>
<th>{:L('CONTENT')}</th>
<th width="120">{:L('TIME')}</th>
<th width="50">{:L('STATUS')}</th>
<th width="80">{:L('ACTIONS')}</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('Commentadmin/check',array('check'=>1))}" data-subcheck="true">{:L('AUDIT')}</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('Commentadmin/check',array('uncheck'=>1))}" data-subcheck="true">{:L('CANCEL_AUDIT')}</button>
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('Commentadmin/delete')}" data-subcheck="true" data-msg="{:L('DELETE_CONFIRM_MESSAGE')}">{:L('DELETE')}</button>
</div>
<div class="pagination">{$page}</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,257 @@
<admintpl file="header" />
<style type="text/css">
.pic-list li {
margin-bottom: 5px;
}
</style>
<!--<script type="text/html" id="photos-item-wrapper">-->
<!--<li id="savedimage{id}">-->
<!--<input id="photo-{id}" type="hidden" name="photos_url[]" value="{filepath}">-->
<!--<input id="photo-{id}-name" type="text" name="photos_alt[]" value="{name}" style="width: 160px;" title="图片名称">-->
<!--<img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;" onclick="parent.image_preview_dialog(this.src);">-->
<!--<a href="javascript:upload_one_image('图片上传','#photo-{id}');">替换</a>-->
<!--<a href="javascript:(function(){$('#savedimage{id}').remove();})();">移除</a>-->
<!--</li>-->
<!--</script>-->
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('Legu/Admin/index')}">文章管理</a></li>
<li class="active"><a href="{:U('Legu/Admin/add',array('term'=>empty($term['term_id'])?'':$term['term_id']))}" target="_self">添加文章</a></li>
</ul>
<form action="{:U('Legu/Admin/add_post')}" method="post" class="form-horizontal js-ajax-forms" enctype="multipart/form-data">
<div class="row-fluid">
<div class="span9">
<table class="table table-bordered">
<tr>
<th width="80">分类</th>
<td>
<select name="post[type]" style="width: 120px;">
<option value='1'>公司动态</option>
<option value='2'>产品新闻</option>
</select>
</td>
</tr>
<tr>
<th>标题</th>
<td>
<input type="text" style="width:400px;" name="post[title]" id="title" required value="" placeholder="请输入标题"/>
<span class="form-required">*</span>
</td>
</tr>
<tr>
<th>摘要</th>
<td>
<textarea name="post[excerpt]" id="description" style="width: 98%; height: 50px;" placeholder="请填写摘要"></textarea>
</td>
</tr>
<tr>
<th>内容</th>
<td>
<script type="text/plain" id="content" name="post[content]"></script>
</td>
</tr>
</table>
</div>
<div class="span3">
<table class="table table-bordered">
<tr>
<th><b>缩略图</b></th>
</tr>
<tr>
<td>
<div style="text-align: center;">
<input type="hidden" name="smeta[thumb]" id="thumb" value="">
<a href="javascript:upload_one_image('图片上传','#thumb');">
<img src="__TMPL__Public/assets/images/default-thumbnail.png" id="thumb-preview" width="135" style="cursor: hand" />
</a>
<input type="button" class="btn btn-small" onclick="$('#thumb-preview').attr('src','__TMPL__Public/assets/images/default-thumbnail.png');$('#thumb').val('');return false;" value="取消图片">
</div>
</td>
</tr>
<tr>
<th><b>发布时间</b></th>
</tr>
<tr>
<td><input type="text" name="post[date]" value="{:date('Y-m-d H:i:s',time())}" class="js-datetime" style="width: 160px;"></td>
</tr>
<tr>
<td>
<label class="radio"><input type="radio" name="post[istop]" value="1">置顶</label>
<label class="radio"><input type="radio" name="post[istop]" value="0" checked>未置顶</label>
</td>
</tr>
</table>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit" type="submit">提交</button>
<a class="btn" href="{:U('Legu/Admin/index')}">返回</a>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
<script type="text/javascript">
//编辑器路径定义
var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
$(function() {
$(".js-ajax-close-btn").on('click', function(e) {
e.preventDefault();
Wind.use("artDialog", function() {
art.dialog({
id : "question",
icon : "question",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : "您确定需要关闭当前页面嘛?",
ok : function() {
setCookie("refersh_time", 1);
window.close();
return true;
}
});
});
});
/////---------------------
Wind.use('validate', 'ajaxForm', 'artDialog', function() {
//javascript
//编辑器
editorcontent = new baidu.editor.ui.Editor();
editorcontent.render('content');
try {
editorcontent.sync();
} catch (err) {
}
//增加编辑器验证规则
jQuery.validator.addMethod('editorcontent', function() {
try {
editorcontent.sync();
} catch (err) {
}
return editorcontent.hasContents();
});
var form = $('form.js-ajax-forms');
//ie处理placeholder提交问题
if ($.browser && $.browser.msie) {
form.find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
}
var formloading = false;
//表单验证开始
form.validate({
//是否在获取焦点时验证
onfocusout : false,
//是否在敲击键盘时验证
onkeyup : false,
//当鼠标掉级时验证
onclick : false,
//验证错误
showErrors : function(errorMap, errorArr) {
//errorMap {'name':'错误信息'}
//errorArr [{'message':'错误信息',element:({})}]
try {
$(errorArr[0].element).focus();
art.dialog({
id : 'error',
icon : 'error',
lock : true,
fixed : true,
background : "#CCCCCC",
opacity : 0,
content : errorArr[0].message,
cancelVal : '确定',
cancel : function() {
$(errorArr[0].element).focus();
}
});
} catch (err) {
}
},
//验证规则
rules : {
'post[title]' : {
required : 1
},
'post[content]' : {
editorcontent : true
}
},
//验证未通过提示消息
messages : {
'post[title]' : {
required : '请输入标题'
},
'post[content]' : {
editorcontent : '内容不能为空'
}
},
//给未通过验证的元素加效果,闪烁等
highlight : false,
//是否在获取焦点时验证
onfocusout : false,
//验证通过,提交表单
submitHandler : function(forms) {
if (formloading)
return;
$(forms).ajaxSubmit({
url : form.attr('action'), //按钮上是否自定义提交地址(多按钮情况)
dataType : 'json',
beforeSubmit : function(arr, $form, options) {
formloading = true;
},
success : function(data, statusText, xhr, $form) {
formloading = false;
if (data.status) {
setCookie("refersh_time", 1);
//添加成功
Wind.use("artDialog", function() {
art.dialog({
id : "succeed",
icon : "succeed",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : data.info,
button : [ {
name : '继续添加?',
callback : function() {
reloadPage(window);
return true;
},
focus : true
}, {
name : '返回列表页',
callback : function() {
location = "{:U('Legu/Admin/index')}";
return true;
}
} ]
});
});
} else {
artdialog_alert(data.info);
}
}
});
}
});
});
////-------------------------
});
</script>
</body>
</html>

View File

@ -0,0 +1,264 @@
<admintpl file="header" />
<style type="text/css">
.pic-list li {
margin-bottom: 5px;
}
</style>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('Legu/Admin/index')}">文章管理</a></li>
<li><a href="{:U('Legu/Admin/add')}" target="_self">添加文章</a></li>
<li class="active"><a href="#">编辑文章</a></li>
</ul>
<form action="{:U('Legu/Admin/edit_post')}" method="post" class="form-horizontal js-ajax-forms" enctype="multipart/form-data">
<div class="row-fluid">
<div class="span9">
<table class="table table-bordered">
<tr>
<th width="80">分类</th>
<php>
$selected_1=$post['type']==1?"selected":"";
$selected_2=$post['type']==2?"selected":"";
</php>
<td>
<select name="post[type]" style="width: 120px;">
<option value='1' {$selected_1}>公司动态</option>
<option value='2' {$selected_2}>产品新闻</option>
</select>
</td>
</tr>
<tr>
<th>标题</th>
<td>
<input type="hidden" name="post[id]" value="{$post.id}">
<input type="text" style="width: 400px;" name="post[title]" required value="{$post.title}" placeholder="请输入标题"/>
<span class="form-required">*</span>
</td>
</tr>
<tr>
<th>摘要</th>
<td>
<textarea name="post[excerpt]" style="width: 98%; height: 50px;" placeholder="请填写摘要">{$post.excerpt}</textarea>
</td>
</tr>
<tr>
<th>内容</th>
<td>
<script type="text/plain" id="content" name="post[content]">{$post.content}</script>
</td>
</tr>
</table>
</div>
<div class="span3">
<table class="table table-bordered">
<tr>
<td><b>缩略图</b></td>
</tr>
<tr>
<td>
<div style="text-align: center;">
<input type="hidden" name="smeta[thumb]" id="thumb" value="{$smeta.thumb|default=''}">
<a href="javascript:upload_one_image('图片上传','#thumb');">
<if condition="empty($smeta['thumb'])">
<img src="__TMPL__Public/assets/images/default-thumbnail.png" id="thumb-preview" width="135" style="cursor: hand"/>
<else />
<img src="{:sp_get_image_preview_url($smeta['thumb'])}" id="thumb-preview" width="135" style="cursor: hand"/>
</if>
</a>
<input type="button" class="btn btn-small" onclick="$('#thumb-preview').attr('src','__TMPL__Public/assets/images/default-thumbnail.png');$('#thumb').val('');return false;" value="取消图片">
</div>
</td>
</tr>
<tr>
<th>发布时间</th>
</tr>
<tr>
<td><input type="text" name="post[date]" value="{$post.date}" class="js-datetime" style="width: 160px;"></td>
</tr>
<tr>
<th>状态</th>
</tr>
<tr>
<td>
<php>
$istop_yes=$post['istop']==1?"checked":"";
$istop_no=$post['istop']==0?"checked":"";
</php>
<label class="radio"><input type="radio" name="post[istop]" value="1" {$istop_yes}>置顶</label>
<label class="radio"><input type="radio" name="post[istop]" value="0" {$istop_no}>未置顶</label>
</td>
</tr>
</table>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit" type="submit">提交</button>
<a class="btn" href="{:U('Legu/Admin/index')}">返回</a>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
<script type="text/javascript">
//编辑器路径定义
var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
$(function() {
//setInterval(function(){public_lock_renewal();}, 10000);
$(".js-ajax-close-btn").on('click', function(e) {
e.preventDefault();
Wind.use("artDialog", function() {
art.dialog({
id : "question",
icon : "question",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : "您确定需要关闭当前页面嘛?",
ok : function() {
setCookie("refersh_time", 1);
window.close();
return true;
}
});
});
});
/////---------------------
Wind.use('validate', 'ajaxForm', 'artDialog', function() {
//javascript
//编辑器
editorcontent = new baidu.editor.ui.Editor();
editorcontent.render('content');
try {
editorcontent.sync();
} catch (err) {
}
//增加编辑器验证规则
jQuery.validator.addMethod('editorcontent', function() {
try {
editorcontent.sync();
} catch (err) {
}
;
return editorcontent.hasContents();
});
var form = $('form.js-ajax-forms');
//ie处理placeholder提交问题
if ($.browser && $.browser.msie) {
form.find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
}
//表单验证开始
form.validate({
//是否在获取焦点时验证
onfocusout : false,
//是否在敲击键盘时验证
onkeyup : false,
//当鼠标掉级时验证
onclick : false,
//验证错误
showErrors : function(errorMap, errorArr) {
//errorMap {'name':'错误信息'}
//errorArr [{'message':'错误信息',element:({})}]
try {
$(errorArr[0].element).focus();
art.dialog({
id : 'error',
icon : 'error',
lock : true,
fixed : true,
background : "#CCCCCC",
opacity : 0,
content : errorArr[0].message,
cancelVal : '确定',
cancel : function() {
$(errorArr[0].element).focus();
}
});
} catch (err) {
}
},
//验证规则
rules : {
'post[title]' : {
required : 1
},
'post[content]' : {
editorcontent : true
}
},
//验证未通过提示消息
messages : {
'post[title]' : {
required : '请输入标题'
},
'post[content]' : {
editorcontent : '内容不能为空'
}
},
//给未通过验证的元素加效果,闪烁等
highlight : false,
//是否在获取焦点时验证
onfocusout : false,
//验证通过,提交表单
submitHandler : function(forms) {
$(forms).ajaxSubmit({
url : form.attr('action'), //按钮上是否自定义提交地址(多按钮情况)
dataType : 'json',
beforeSubmit : function(arr, $form, options) {
},
success : function(data, statusText, xhr, $form) {
if (data.status) {
setCookie("refersh_time", 1);
//添加成功
Wind.use("artDialog", function() {
art.dialog({
id : "succeed",
icon : "succeed",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : data.info,
button : [ {
name : '继续编辑?',
callback : function() {
//reloadPage(window);
return true;
},
focus : true
}, {
name : '返回列表页',
callback : function() {
location = "{:U('Legu/Admin/index')}";
return true;
}
} ]
});
});
} else {
artdialog_alert(data.info);
}
}
});
}
});
});
////-------------------------
});
</script>
</body>
</html>

View File

@ -0,0 +1,102 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="javascript:;">文章管理</a></li>
<li><a href="{:U('Legu/Admin/add')}" target="_self">添加文章</a></li>
</ul>
<form class="well form-search" method="post" action="{:U('Legu/Admin/index')}">
分类:
<php>
$selected_1=$formget['type']==1?"selected":"";
$selected_2=$formget['type']==2?"selected":"";
</php>
<select name="type" style="width: 120px;">
<option value='0'>全部</option>
<option value='1' {$selected_1}>公司动态</option>
<option value='2' {$selected_2}>产品新闻</option>
</select> &nbsp;&nbsp;
时间:
<input type="text" name="start_time" class="js-datetime" value="{$formget.start_time|default=''}" style="width: 120px;" autocomplete="off">-
<input type="text" class="js-datetime" name="end_time" value="{$formget.end_time|default=''}" style="width: 120px;" autocomplete="off"> &nbsp; &nbsp;
<!--关键字:-->
<!--<input type="text" name="keyword" style="width: 200px;" value="{$formget.keyword|default=''}" placeholder="请输入关键字...">-->
<input type="submit" class="btn btn-primary" value="搜索" />
<a class="btn btn-danger" href="{:U('Legu/Admin/index')}">清空</a>
</form>
<form class="js-ajax-form" action="" method="post">
<div class="table-actions">
<notempty name="term">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('Legu/Admin/listorders')}">排序</button>
</notempty>
<!--<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('Admin/top',array('top'=>1))}" data-subcheck="true">置顶</button>-->
<!--<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('Admin/top',array('untop'=>1))}" data-subcheck="true">取消置顶</button>-->
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('Legu/Admin/delete')}" data-subcheck="true" data-msg="您确定删除吗?">删除</button>
</div>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="15"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<notempty name="term">
<th width="50">排序</th>
</notempty>
<th width="50">ID</th>
<th>标题</th>
<th>缩略图</th>
<th width="100">发布日期</th>
<!--<th width="50">状态</th>-->
<th width="70">操作</th>
</tr>
</thead>
<foreach name="posts" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]" value="{$vo.id}" title="ID:{$vo.id}"></td>
<notempty name="term">
<td><input name="listorders[{$vo.tid}]" class="input input-order" type="text" size="5" value="{$vo.listorder}"></td>
</notempty>
<td><b>{$vo.id}</b></td>
<td>
<notempty name="term">
<a href="{:leuu('legu/article/index',array('id'=>$vo['id'],'cid'=>$term['term_id']))}" target="_blank">{$vo.title}</a>
<else/>
{$vo.title}
</notempty>
</td>
<td>
<notempty name="vo.excerpt">
<i class="fa fa-check fa-fw"></i>
<else/>
<i class="fa fa-close fa-fw"></i>
</notempty>
<php>$smeta=json_decode($vo['smeta'],true);</php>
<notempty name="smeta.thumb">
<a href="javascript:parent.image_preview_dialog('{:sp_get_image_preview_url($smeta['thumb'])}');">
<i class="fa fa-photo fa-fw"></i>
</a>
</notempty>
</td>
<td>{:date('Y-m-d H:i',strtotime($vo['date']))}</td>
<!--<td>-->
<!--<notempty name="vo.istop">-->
<!--<a data-toggle="tooltip" title="已置顶"><i class="fa fa-arrow-up"></i></a>-->
<!--<else />-->
<!--<a data-toggle="tooltip" title="未置顶"><i class="fa fa-arrow-down"></i></a>-->
<!--</notempty>-->
<!--</td>-->
<td>
<a href="{:U('Legu/Admin/edit',array('id'=>$vo['id']))}">编辑</a> |
<a href="{:U('Legu/Admin/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">删除</a>
</td>
</tr>
</foreach>
</table>
<div class="pagination">{$page}</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
</script>
</body>
</html>

View File

@ -0,0 +1,242 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('AdminPage/index')}">{:L('PORTAL_ADMINPAGE_INDEX')}</a></li>
<li class="active"><a href="{:U('AdminPage/add')}">{:L('PORTAL_ADMINPAGE_ADD')}</a></li>
</ul>
<form action="{:U('AdminPage/add_post')}" method="post" class="form-horizontal js-ajax-forms" enctype="multipart/form-data">
<input type="hidden" name="post[post_type]" value="2">
<div class="row-fluid">
<div class="span9">
<table class="table table-bordered">
<tr>
<th width="80">标题</th>
<td>
<input type="text" style="width: 400px;" name="post[post_title]" id="title" value="" placeholder="请输入标题"/>
<span class="form-required">*</span>
</td>
</tr>
<tr>
<th>模版</th>
<td>
<php>
$tpl_list=sp_admin_get_tpl_file_list();
unset($tpl_list['page']);
</php>
<select style="min-width: 290px;" name="smeta[template]">
<option value="page">page{:C("TMPL_TEMPLATE_SUFFIX")}</option>
<foreach name="tpl_list" item="vo">
<option value="{$vo}">{$vo}{:C("TMPL_TEMPLATE_SUFFIX")}</option>
</foreach>
</select>
</td>
</tr>
<tr>
<th>关键词</th>
<td><input type="text" name="post[post_keywords]" id="keywords" value="" style="width: 280px" placeholder="请输入关键字"> 多关键词之间用空格隔开</td>
</tr>
<tr>
<th>摘要</th>
<td><textarea name="post[post_excerpt]" id="description" style='width: 98%; height: 200px;'></textarea></td>
</tr>
<tr>
<th>内容</th>
<td>
<script type="text/plain" id="content" name="post[post_content]"></script>
</td>
</tr>
</table>
</div>
<div class="span3">
<table class="table table-bordered">
<tr>
<th>缩略图</th>
</tr>
<tr>
<td>
<div style="text-align: center;">
<input type="hidden" name="smeta[thumb]" id="thumb" value="">
<a href="javascript:upload_one_image('图片上传','#thumb');">
<img src="__TMPL__Public/assets/images/default-thumbnail.png" id="thumb-preview" width="135" style="cursor: hand"/>
</a>
<input type="button" class="btn btn-small" onclick="$('#thumb-preview').attr('src','__TMPL__Public/assets/images/default-thumbnail.png');$('#thumb').val('');return false;" value="取消图片">
</div>
</td>
</tr>
<tr>
<th>发布时间</th>
</tr>
<tr>
<td><input type="text" name="post[post_modified]" value="{:date('Y-m-d H:i:s',time())}" class="js-datetime"></td>
</tr>
<tr>
<th>状态</th>
</tr>
<tr>
<td>
<label class="radio"><input type="radio" name="post[post_status]" value="1" checked>审核通过</label>
<label class="radio"><input type="radio" name="post[post_status]" value="0">待审核</label>
</td>
</tr>
</table>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit" type="submit">{:L('ADD')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
<script type="text/javascript">
//编辑器路径定义
var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
$(function() {
$(".js-ajax-close-btn").on('click', function(e) {
e.preventDefault();
Wind.use("artDialog", function() {
art.dialog({
id : "question",
icon : "question",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : "您确定需要关闭当前页面嘛?",
ok : function() {
setCookie("refersh_time", 1);
window.close();
return true;
}
});
});
});
/////---------------------
Wind.use('validate','ajaxForm','artDialog',function() {
//编辑器
editorcontent = new baidu.editor.ui.Editor();
editorcontent.render('content');
try {
editorcontent.sync();
} catch (err) {}
//增加编辑器验证规则
jQuery.validator.addMethod('editorcontent',function() {
try {
editorcontent.sync();
} catch (err) {}
return editorcontent.hasContents();
});
var form = $('form.js-ajax-forms');
//ie处理placeholder提交问题
if ($.browser && $.browser.msie) {
form.find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input
.attr('placeholder')) {
input.val('');
}
});
}
//表单验证开始
form.validate({
//是否在获取焦点时验证
onfocusout : false,
//是否在敲击键盘时验证
onkeyup : false,
//当鼠标掉级时验证
onclick : false,
//验证错误
showErrors : function(errorMap,errorArr) {
//errorMap {'name':'错误信息'}
//errorArr [{'message':'错误信息',element:({})}]
try {
$(errorArr[0].element).focus();
art.dialog({
id : 'error',
icon : 'error',
lock : true,
fixed : true,
background : "#CCCCCC",
opacity : 0,
content : errorArr[0].message,
cancelVal : '确定',
cancel : function() {
$(errorArr[0].element).focus();
}
});
} catch (err) {}
},
//验证规则
rules : {
'post[post_title]' : {required : 1},
'post[post_content]' : {editorcontent : true}
},
//验证未通过提示消息
messages : {
'post[post_title]' : {required : '请输入标题'},
'post[post_content]' : {editorcontent : '内容不能为空'}
},
//给未通过验证的元素加效果,闪烁等
highlight : false,
//是否在获取焦点时验证
onfocusout : false,
//验证通过,提交表单
submitHandler : function(forms) {
$(forms).ajaxSubmit({
url : form.attr('action'), //按钮上是否自定义提交地址(多按钮情况)
dataType : 'json',
beforeSubmit : function(arr,$form,options) {
},
success : function(data,statusText,xhr,$form) {
if (data.status) {
setCookie("refersh_time",1);
//添加成功
Wind.use("artDialog",function() {
art.dialog({
id : "succeed",
icon : "succeed",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : data.info,
button : [
{
name : '继续添加?',
callback : function() {
reloadPage(window);
return true;
},
focus : true
},
{
name : '返回列表',
callback : function() {
location.href = "{:U('AdminPage/index')}";
return true;
}
}
]
});
});
} else {
alert(data.info);
}
}
});
}
});
});
////-------------------------
});
</script>
</body>
</html>

View File

@ -0,0 +1,261 @@
<admintpl file="header"/>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('AdminPage/index')}">{:L('PORTAL_ADMINPAGE_INDEX')}</a></li>
<li><a href="{:U('AdminPage/add')}">{:L('PORTAL_ADMINPAGE_ADD')}</a></li>
<li class="active"><a href="#">{:L('PORTAL_ADMINPAGE_EDIT')}</a></li>
</ul>
<form action="{:U('Portal/AdminPage/edit_post')}" method="post" class="form-horizontal js-ajax-forms" enctype="multipart/form-data">
<div class="row-fluid">
<div class="span9">
<table class="table table-bordered">
<tr>
<th width="80">标题</th>
<td>
<input type="hidden" name="post[id]" value="{$post.id}">
<input type="text" style="width: 400px;" name="post[post_title]" value="{$post.post_title}" placeholder="请输入标题" />
<span class="form-required">*</span>
</td>
</tr>
<tr>
<th>模版</th>
<td>
<php>
$tpl_list=sp_admin_get_tpl_file_list();
unset($tpl_list['page']);
</php>
<select style="min-width: 290px;" name="smeta[template]">
<option value="page">page{:C("TMPL_TEMPLATE_SUFFIX")}</option>
<foreach name="tpl_list" item="vo">
<php>$template_selected=$smeta['template']==$vo?"selected":"";</php>
<option value="{$vo}"{$template_selected}>{$vo}{:C("TMPL_TEMPLATE_SUFFIX")}</option>
</foreach>
</select>
</td>
</tr>
<tr>
<th>关键词</th>
<td>
<input type="text" name="post[post_keywords]" style="width: 280px" value="{$post['post_keywords']}" placeholder="请输入关键字">
多关键词之间用空格隔开
</td>
</tr>
<tr>
<th>摘要</th>
<td><textarea name="post[post_excerpt]" style="width: 98%; height: 50px;">{$post.post_excerpt}</textarea>
</td>
</tr>
<tr>
<th>内容</th>
<td>
<script type="text/plain" id="content" name="post[post_content]">{$post.post_content}</script>
</td>
</tr>
</tbody>
</table>
</div>
<div class="span3">
<table class="table table-bordered">
<tr>
<th>缩略图</th>
</tr>
<tr>
<td>
<div style="text-align: center;">
<input type='hidden' name='smeta[thumb]' id='thumb' value="{$smeta.thumb|default=''}">
<a href="javascript:upload_one_image('图片上传','#thumb');">
<if condition="empty($smeta['thumb'])">
<img src="__TMPL__Public/assets/images/default-thumbnail.png" id='thumb-preview' width='135' height='113' style='cursor: hand' />
<else />
<img src="{:sp_get_image_preview_url($smeta['thumb'])}" id='thumb-preview' width='135' height='113' style='cursor: hand' />
</if>
</a>
<input type="button" class="btn btn-small" onclick="$('#thumb-preview').attr('src','__TMPL__Public/assets/images/default-thumbnail.png');$('#thumb').val('');return false;" value="取消图片">
</div>
</td>
</tr>
<tr>
<th>发布时间</th>
</tr>
<tr>
<td><input type="text" name="post[post_modified]" value="{$post.post_modified}" class="js-datetime"></td>
</tr>
<tr>
<th>状态</th>
</tr>
<tr>
<td>
<php>
$status_yes=$post['post_status']==1?"checked":"";
$status_no=$post['post_status']==0?"checked":"";
</php>
<label class="radio"><input type="radio" name="post[post_status]" value="1" {$status_yes}>审核通过</label>
<label class="radio"><input type="radio" name="post[post_status]" value="0" {$status_no}>待审核</label>
</td>
</tr>
</table>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit" type="submit">{:L('SAVE')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
<script type="text/javascript">
//编辑器路径定义
var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
$(function() {
$(".js-ajax-close-btn").on('click', function(e) {
e.preventDefault();
Wind.use("artDialog", function() {
art.dialog({
id : "question",
icon : "question",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : "您确定需要关闭当前页面嘛?",
ok : function() {
setCookie("refersh_time", 1);
window.close();
return true;
}
});
});
});
/////---------------------
Wind.use('validate', 'ajaxForm', 'artDialog', function() {
//javascript
//编辑器
editorcontent = new baidu.editor.ui.Editor();
editorcontent.render('content');
try {
editorcontent.sync();
} catch (err) {
}
;
//增加编辑器验证规则
jQuery.validator.addMethod('editorcontent', function() {
try {
editorcontent.sync();
} catch (err) {
}
;
return editorcontent.hasContents();
});
var form = $('form.js-ajax-forms');
//ie处理placeholder提交问题
if ($.browser && $.browser.msie) {
form.find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
}
//表单验证开始
form.validate({
//是否在获取焦点时验证
onfocusout : false,
//是否在敲击键盘时验证
onkeyup : false,
//当鼠标掉级时验证
onclick : false,
//验证错误
showErrors : function(errorMap, errorArr) {
//errorMap {'name':'错误信息'}
//errorArr [{'message':'错误信息',element:({})}]
try {
$(errorArr[0].element).focus();
art.dialog({
id : 'error',
icon : 'error',
lock : true,
fixed : true,
background : "#CCCCCC",
opacity : 0,
content : errorArr[0].message,
cancelVal : '确定',
cancel : function() {
$(errorArr[0].element).focus();
}
});
} catch (err) {
}
},
//验证规则
rules : {
'post[post_title]' : {
required : 1
},
'post[post_content]' : {
editorcontent : true
}
},
//验证未通过提示消息
messages : {
'post[post_title]' : {
required : '请输入标题'
},
'post[post_content]' : {
editorcontent : '内容不能为空'
}
},
//给未通过验证的元素加效果,闪烁等
highlight : false,
//是否在获取焦点时验证
onfocusout : false,
//验证通过,提交表单
submitHandler : function(forms) {
$(forms).ajaxSubmit({
url : form.attr('action'), //按钮上是否自定义提交地址(多按钮情况)
dataType : 'json',
beforeSubmit : function(arr, $form, options) {
},
success : function(data, statusText, xhr, $form) {
if (data.status) {
setCookie("refersh_time", 1);
//添加成功
Wind.use("artDialog", function() {
art.dialog({
id : "succeed",
icon : "succeed",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : data.info,
button : [ {
name : '确定',
callback : function() {
//reloadPage(window);
return true;
},
focus : true
} ]
});
});
} else {
artdialog_alert(data.info);
}
}
});
}
});
});
////-------------------------
});
</script>
</body>
</html>

View File

@ -0,0 +1,79 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('AdminPage/index')}">{:L('PORTAL_ADMINPAGE_INDEX')}</a></li>
<li><a href="{:U('AdminPage/add')}">{:L('PORTAL_ADMINPAGE_ADD')}</a></li>
</ul>
<form class="well form-search" method="post" action="{:U('AdminPage/index')}">
{:L('POST_DATE')}
<input type="text" name="start_time" class="js-datetime" value="{$formget.start_time|default=''}" style="width: 120px;" autocomplete="off">-
<input autocomplete="off" type="text" class="js-datetime" name="end_time" value="{$formget.end_time|default=''}" style="width: 120px;"> {:L('KEYWORD')}
<input type="text" name="keyword" style="width: 200px;" value="{$formget.keyword|default=''}" placeholder="{:L('PLEASE_ENTER_KEYWORD')}">
<button class="btn btn-primary">{:L('SEARCH')}</button>
<a class="btn btn-danger" href="{:U('AdminPage/index')}">清空</a>
</form>
<form class="js-ajax-form" method="post">
<div class="table-actions">
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPage/delete')}" data-subcheck="true" data-msg="{:L('DELETE_CONFIRM_MESSAGE')}">{:L('DELETE')}</button>
</div>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="16"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="100">ID</th>
<th>{:L('TITLE')}</th>
<!-- <th>点击量</th> -->
<th width="80">{:L('AUTHOR')}</th>
<th width="120"><span>{:L('POST_DATE')}</span></th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</thead>
<foreach name="posts" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]" value="{$vo.id}"></td>
<td><a>{$vo.id}</a></td>
<td><a href="{:U('portal/page/index',array('id'=>$vo['id']))}" target="_blank"><span>{$vo.post_title}</span></a></td>
<!-- <td>0</td> -->
<td>{$vo.user_nicename|default=$vo.user_login}</td>
<td>{$vo.post_date}</td>
<td>
<a href="{:U('AdminPage/edit',array('id'=>$vo['id']))}">{:L('EDIT')}</a>|
<a href="{:U('AdminPage/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">{:L('DELETE')}</a>
</td>
</tr>
</foreach>
<tfoot>
<tr>
<th width="16"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="100">ID</th>
<th>{:L('TITLE')}</th>
<!-- <th>点击量</th> -->
<th width="80">{:L('AUTHOR')}</th>
<th width="120"><span>{:L('POST_DATE')}</span></th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPage/delete')}" data-subcheck="true" data-msg="你确定删除吗?">{:L('DELETE')}</button>
</div>
<div class="pagination">{$page}</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
setCookie('refersh_time', 0);
function refersh_window() {
var refersh_time = getCookie('refersh_time');
if (refersh_time == 1) {
window.location.reload();
}
}
setInterval(function() {
refersh_window()
}, 2000);
</script>
</body>
</html>

View File

@ -0,0 +1,66 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="javascript:;">{:L('PORTAL_ADMINPAGE_RECYCLEBIN')}</a></li>
</ul>
<form class="well form-search" method="post" action="{:U('AdminPage/recyclebin')}">
时间:
<input type="text" name="start_time" class="js-datetime" value="{$formget.start_time|default=''}" style="width:120px;" autocomplete="off">-
<input autocomplete="off" type="text" class="js-datetime" name="end_time" value="{$formget.end_time|default=''}" style="width: 120px;">
关键字:
<input type="text" class="input" name="keyword" style="width: 200px;" value="{$formget.keyword|default=''}" placeholder="请输入关键字...">
<button class="btn btn-primary">搜索</button>
</form>
<form class="js-ajax-form" method="post">
<div class="table-actions">
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPage/clean')}" data-subcheck="true" data-msg="你确定删除吗?">{:L('DELETE')}</button>
</div>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="16"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="100">ID</th>
<th>标题</th>
<!-- <th>点击量</th> -->
<th width="80">发布人</th>
<th width="120"><span>发布时间</span></th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</thead>
<foreach name="posts" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]" value="{$vo.id}"></td>
<td><a>{$vo.id}</a></td>
<td><span>{$vo.post_title}</span></td>
<!-- <td>0</td> -->
<td>{$users[$vo['post_author']]['user_login']}</td>
<td>{$vo.post_date}</td>
<td>
<a href="{:U('AdminPage/restore',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn" data-msg="确定还原吗?">还原</a>|
<a href="{:U('AdminPage/clean',array('id'=>$vo['id']))}" class="js-ajax-delete">{:L('DELETE')}</a>
</td>
</tr>
</foreach>
<tfoot>
<tr>
<th width="16"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="100">ID</th>
<th>标题</th>
<!-- <th>点击量</th> -->
<th width="80">发布人</th>
<th width="120"><span>发布时间</span></th>
<th width="120">{:L('ACTIONS')}</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPage/clean')}" data-subcheck="true" data-msg="你确定删除吗?">{:L('DELETE')}</button>
</div>
<div class="pagination">{$page}</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,302 @@
<admintpl file="header" />
<style type="text/css">
.pic-list li {
margin-bottom: 5px;
}
</style>
<script type="text/html" id="photos-item-wrapper">
<li id="savedimage{id}">
<input id="photo-{id}" type="hidden" name="photos_url[]" value="{filepath}">
<input id="photo-{id}-name" type="text" name="photos_alt[]" value="{name}" style="width: 160px;" title="图片名称">
<img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;" onclick="parent.image_preview_dialog(this.src);">
<a href="javascript:upload_one_image('图片上传','#photo-{id}');">替换</a>
<a href="javascript:(function(){$('#savedimage{id}').remove();})();">移除</a>
</li>
</script>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('AdminPost/index')}">{:L('PORTAL_ADMINPOST_INDEX')}</a></li>
<li class="active"><a href="{:U('AdminPost/add',array('term'=>empty($term['term_id'])?'':$term['term_id']))}" target="_self">{:L('PORTAL_ADMINPOST_ADD')}</a></li>
</ul>
<form action="{:U('AdminPost/add_post')}" method="post" class="form-horizontal js-ajax-forms" enctype="multipart/form-data">
<div class="row-fluid">
<div class="span9">
<table class="table table-bordered">
<tr>
<th width="80">分类</th>
<td>
<select multiple="multiple" style="max-height: 100px;" name="term[]">{$taxonomys}</select>
<div>windows按住 Ctrl 按钮来选择多个选项,Mac按住 command 按钮来选择多个选项</div>
</td>
</tr>
<tr>
<th>标题</th>
<td>
<input type="text" style="width:400px;" name="post[post_title]" id="title" required value="" placeholder="请输入标题"/>
<span class="form-required">*</span>
</td>
</tr>
<tr>
<th>关键词</th>
<td><input type="text" name="post[post_keywords]" id="keywords" value="" style="width: 400px" placeholder="请输入关键字"> 多关键词之间用空格或者英文逗号隔开</td>
</tr>
<tr>
<th>文章来源</th>
<td><input type="text" name="post[post_source]" id="source" value="" style="width: 400px" placeholder="请输入文章来源"></td>
</tr>
<tr>
<th>摘要</th>
<td>
<textarea name="post[post_excerpt]" id="description" style="width: 98%; height: 50px;" placeholder="请填写摘要"></textarea>
</td>
</tr>
<tr>
<th>内容</th>
<td>
<script type="text/plain" id="content" name="post[post_content]"></script>
</td>
</tr>
<tr>
<th>相册图集</th>
<td>
<ul id="photos" class="pic-list unstyled"></ul>
<a href="javascript:upload_multi_image('图片上传','#photos','photos-item-wrapper');" class="btn btn-small">选择图片</a>
</td>
</tr>
</table>
</div>
<div class="span3">
<table class="table table-bordered">
<tr>
<th><b>缩略图</b></th>
</tr>
<tr>
<td>
<div style="text-align: center;">
<input type="hidden" name="smeta[thumb]" id="thumb" value="">
<a href="javascript:upload_one_image('图片上传','#thumb');">
<img src="__TMPL__Public/assets/images/default-thumbnail.png" id="thumb-preview" width="135" style="cursor: hand" />
</a>
<input type="button" class="btn btn-small" onclick="$('#thumb-preview').attr('src','__TMPL__Public/assets/images/default-thumbnail.png');$('#thumb').val('');return false;" value="取消图片">
</div>
</td>
</tr>
<tr>
<th><b>发布时间</b></th>
</tr>
<tr>
<td><input type="text" name="post[post_date]" value="{:date('Y-m-d H:i:s',time())}" class="js-datetime" style="width: 160px;"></td>
</tr>
<tr>
<th><b>状态</b></th>
</tr>
<tr>
<td>
<label class="radio"><input type="radio" name="post[post_status]" value="1" checked>审核通过</label>
<label class="radio"><input type="radio" name="post[post_status]" value="0">待审核</label>
</td>
</tr>
<tr>
<td>
<label class="radio"><input type="radio" name="post[istop]" value="1">置顶</label>
<label class="radio"><input type="radio" name="post[istop]" value="0" checked>未置顶</label>
</td>
</tr>
<tr>
<td>
<label class="radio"><input type="radio" name="post[recommended]" value="1">推荐</label>
<label class="radio"><input type="radio" name="post[recommended]" value="0" checked>未推荐</label>
</td>
</tr>
<tr>
<th>文章模板</th>
</tr>
<tr>
<td>
<php>
$tpl_list=sp_admin_get_tpl_file_list();
unset($tpl_list['page']);
</php>
<select style="min-width: 190px;" name="smeta[template]">
<option value="">请选择模板</option>
<foreach name="tpl_list" item="vo">
<option value="{$vo}">{$vo}{:C("TMPL_TEMPLATE_SUFFIX")}</option>
</foreach>
</select>
</td>
</tr>
</table>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit" type="submit">提交</button>
<a class="btn" href="{:U('AdminPost/index')}">返回</a>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
<script type="text/javascript">
//编辑器路径定义
var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
$(function() {
$(".js-ajax-close-btn").on('click', function(e) {
e.preventDefault();
Wind.use("artDialog", function() {
art.dialog({
id : "question",
icon : "question",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : "您确定需要关闭当前页面嘛?",
ok : function() {
setCookie("refersh_time", 1);
window.close();
return true;
}
});
});
});
/////---------------------
Wind.use('validate', 'ajaxForm', 'artDialog', function() {
//javascript
//编辑器
editorcontent = new baidu.editor.ui.Editor();
editorcontent.render('content');
try {
editorcontent.sync();
} catch (err) {
}
//增加编辑器验证规则
jQuery.validator.addMethod('editorcontent', function() {
try {
editorcontent.sync();
} catch (err) {
}
return editorcontent.hasContents();
});
var form = $('form.js-ajax-forms');
//ie处理placeholder提交问题
if ($.browser && $.browser.msie) {
form.find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
}
var formloading = false;
//表单验证开始
form.validate({
//是否在获取焦点时验证
onfocusout : false,
//是否在敲击键盘时验证
onkeyup : false,
//当鼠标掉级时验证
onclick : false,
//验证错误
showErrors : function(errorMap, errorArr) {
//errorMap {'name':'错误信息'}
//errorArr [{'message':'错误信息',element:({})}]
try {
$(errorArr[0].element).focus();
art.dialog({
id : 'error',
icon : 'error',
lock : true,
fixed : true,
background : "#CCCCCC",
opacity : 0,
content : errorArr[0].message,
cancelVal : '确定',
cancel : function() {
$(errorArr[0].element).focus();
}
});
} catch (err) {
}
},
//验证规则
rules : {
'post[post_title]' : {
required : 1
},
'post[post_content]' : {
editorcontent : true
}
},
//验证未通过提示消息
messages : {
'post[post_title]' : {
required : '请输入标题'
},
'post[post_content]' : {
editorcontent : '内容不能为空'
}
},
//给未通过验证的元素加效果,闪烁等
highlight : false,
//是否在获取焦点时验证
onfocusout : false,
//验证通过,提交表单
submitHandler : function(forms) {
if (formloading)
return;
$(forms).ajaxSubmit({
url : form.attr('action'), //按钮上是否自定义提交地址(多按钮情况)
dataType : 'json',
beforeSubmit : function(arr, $form, options) {
formloading = true;
},
success : function(data, statusText, xhr, $form) {
formloading = false;
if (data.status) {
setCookie("refersh_time", 1);
//添加成功
Wind.use("artDialog", function() {
art.dialog({
id : "succeed",
icon : "succeed",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : data.info,
button : [ {
name : '继续添加?',
callback : function() {
reloadPage(window);
return true;
},
focus : true
}, {
name : '返回列表页',
callback : function() {
location = "{:U('AdminPost/index')}";
return true;
}
} ]
});
});
} else {
artdialog_alert(data.info);
}
}
});
}
});
});
////-------------------------
});
</script>
</body>
</html>

View File

@ -0,0 +1,17 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<form method="post" class="js-ajax-form">
<div>
<label>分类:</label>
<select name="term_id">
{$terms_tree}
</select>
</div>
<button class="btn btn-primary js-ajax-submit" type="submit">复制</button>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,341 @@
<admintpl file="header" />
<style type="text/css">
.pic-list li {
margin-bottom: 5px;
}
</style>
<script type="text/html" id="photos-item-wrapper">
<li id="savedimage{id}">
<input id="photo-{id}" type="hidden" name="photos_url[]" value="{filepath}">
<input id="photo-{id}-name" type="text" name="photos_alt[]" value="{name}" style="width: 160px;" title="图片名称">
<img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;" onclick="parent.image_preview_dialog(this.src);">
<a href="javascript:upload_one_image('图片上传','#photo-{id}');">替换</a>
<a href="javascript:(function(){$('#savedimage{id}').remove();})();">移除</a>
</li>
</script>
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li><a href="{:U('AdminPost/index')}">{:L('PORTAL_ADMINPOST_INDEX')}</a></li>
<li><a href="{:U('AdminPost/add',array('term'=>empty($term['term_id'])?'':$term['term_id']))}" target="_self">{:L('PORTAL_ADMINPOST_ADD')}</a></li>
<li class="active"><a href="#">{:L('PORTAL_ADMINPOST_EDIT')}</a></li>
</ul>
<form action="{:U('AdminPost/edit_post')}" method="post" class="form-horizontal js-ajax-forms" enctype="multipart/form-data">
<div class="row-fluid">
<div class="span9">
<table class="table table-bordered">
<tr>
<th width="80">分类</th>
<td>
<select multiple="multiple" style="max-height: 100px;"name="term[]">{$taxonomys}</select>
<div>windows按住 Ctrl 按钮来选择多个选项,Mac按住 command 按钮来选择多个选项</div>
</td>
</tr>
<tr>
<th>标题</th>
<td>
<input type="hidden" name="post[id]" value="{$post.id}">
<input type="text" style="width: 400px;" name="post[post_title]" required value="{$post.post_title}" placeholder="请输入标题"/>
<span class="form-required">*</span>
</td>
</tr>
<tr>
<th>关键词</th>
<td>
<input type="text" name="post[post_keywords]" style="width: 400px" value="{$post['post_keywords']}" placeholder="请输入关键字">
多关键词之间用空格或者英文逗号隔开
</td>
</tr>
<tr>
<th>文章来源</th>
<td>
<input type="text" name="post[post_source]" value="{$post['post_source']}" style="width: 400px" placeholder="请输入文章来源">
</td>
</tr>
<tr>
<th>摘要</th>
<td>
<textarea name="post[post_excerpt]" style="width: 98%; height: 50px;" placeholder="请填写摘要">{$post.post_excerpt}</textarea>
</td>
</tr>
<tr>
<th>内容</th>
<td>
<script type="text/plain" id="content" name="post[post_content]">{$post.post_content}</script>
</td>
</tr>
<tr>
<th>相册图集</th>
<td>
<ul id="photos" class="pic-list unstyled">
<notempty name="smeta['photo']">
<foreach name="smeta['photo']" item="vo">
<php>$img_url=sp_get_image_preview_url($vo['url']);</php>
<li id="savedimage{$key}">
<input id="photo-{$key}" type="hidden" name="photos_url[]" value="{$img_url}">
<input id="photo-{$key}-name" type="text" name="photos_alt[]" value="{$vo.alt}" style="width: 200px;" title="图片名称">
<img id="photo-{$key}-preview" src="{:sp_get_image_preview_url($vo['url'])}" style="height:36px;width: 36px;" onclick="parent.image_preview_dialog(this.src);">
<a href="javascript:upload_one_image('图片上传','#photo-{$key}');">替换</a>
<a href="javascript:(function(){ $('#savedimage{$key}').remove();})();">移除</a>
</li>
</foreach>
</notempty>
</ul>
<a href="javascript:upload_multi_image('图片上传','#photos','photos-item-wrapper');" class="btn btn-small">选择图片</a>
</td>
</tr>
</table>
</div>
<div class="span3">
<table class="table table-bordered">
<tr>
<td><b>缩略图</b></td>
</tr>
<tr>
<td>
<div style="text-align: center;">
<input type="hidden" name="smeta[thumb]" id="thumb" value="{$smeta.thumb|default=''}">
<a href="javascript:upload_one_image('图片上传','#thumb');">
<if condition="empty($smeta['thumb'])">
<img src="__TMPL__Public/assets/images/default-thumbnail.png" id="thumb-preview" width="135" style="cursor: hand"/>
<else />
<img src="{:sp_get_image_preview_url($smeta['thumb'])}" id="thumb-preview" width="135" style="cursor: hand"/>
</if>
</a>
<input type="button" class="btn btn-small" onclick="$('#thumb-preview').attr('src','__TMPL__Public/assets/images/default-thumbnail.png');$('#thumb').val('');return false;" value="取消图片">
</div>
</td>
</tr>
<tr>
<th>发布时间</th>
</tr>
<tr>
<td><input type="text" name="post[post_date]" value="{$post.post_date}" class="js-datetime" style="width: 160px;"></td>
</tr>
<tr>
<th>评论</th>
</tr>
<tr>
<td><label style="width: 88px"><a href="javascript:open_iframe_dialog('{:U('comment/commentadmin/index',array('post_id'=>$post['id']))}','评论列表')">查看评论</a></label>
</td>
</tr>
<tr>
<th>状态</th>
</tr>
<tr>
<td>
<php>
$status_yes=$post['post_status']==1?"checked":"";
$status_no=$post['post_status']==0?"checked":"";
$istop_yes=$post['istop']==1?"checked":"";
$istop_no=$post['istop']==0?"checked":"";
$recommended_yes=$post['recommended']==1?"checked":"";
$recommended_no=$post['recommended']==0?"checked":"";
</php>
<label class="radio"><input type="radio" name="post[post_status]" value="1" {$status_yes}>审核通过</label>
<label class="radio"><input type="radio" name="post[post_status]" value="0" {$status_no}>未审核</label>
</td>
</tr>
<tr>
<td>
<label class="radio"><input type="radio" name="post[istop]" value="1" {$istop_yes}>置顶</label>
<label class="radio"><input type="radio" name="post[istop]" value="0" {$istop_no}>未置顶</label>
</td>
</tr>
<tr>
<td>
<label class="radio"><input type="radio" name="post[recommended]" value="1" {$recommended_yes}>推荐</label>
<label class="radio"><input type="radio" name="post[recommended]" value="0" {$recommended_no}>未推荐</label>
</td>
</tr>
<tr>
<th>文章模板</th>
</tr>
<tr>
<td>
<php>
$tpl_list=sp_admin_get_tpl_file_list();
unset($tpl_list['page']);
</php>
<select style="min-width: 190px;" name="smeta[template]">
<option value="">请选择模板</option>
<foreach name="tpl_list" item="vo">
<php>$template_selected=$smeta['template']==$vo?"selected":"";</php>
<option value="{$vo}"{$template_selected}>{$vo}{:C("TMPL_TEMPLATE_SUFFIX")}</option>
</foreach>
</select>
</td>
</tr>
</table>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit" type="submit">提交</button>
<a class="btn" href="{:U('AdminPost/index')}">返回</a>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
<script type="text/javascript">
//编辑器路径定义
var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__PUBLIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
$(function() {
//setInterval(function(){public_lock_renewal();}, 10000);
$(".js-ajax-close-btn").on('click', function(e) {
e.preventDefault();
Wind.use("artDialog", function() {
art.dialog({
id : "question",
icon : "question",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : "您确定需要关闭当前页面嘛?",
ok : function() {
setCookie("refersh_time", 1);
window.close();
return true;
}
});
});
});
/////---------------------
Wind.use('validate', 'ajaxForm', 'artDialog', function() {
//javascript
//编辑器
editorcontent = new baidu.editor.ui.Editor();
editorcontent.render('content');
try {
editorcontent.sync();
} catch (err) {
}
//增加编辑器验证规则
jQuery.validator.addMethod('editorcontent', function() {
try {
editorcontent.sync();
} catch (err) {
}
;
return editorcontent.hasContents();
});
var form = $('form.js-ajax-forms');
//ie处理placeholder提交问题
if ($.browser && $.browser.msie) {
form.find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
}
//表单验证开始
form.validate({
//是否在获取焦点时验证
onfocusout : false,
//是否在敲击键盘时验证
onkeyup : false,
//当鼠标掉级时验证
onclick : false,
//验证错误
showErrors : function(errorMap, errorArr) {
//errorMap {'name':'错误信息'}
//errorArr [{'message':'错误信息',element:({})}]
try {
$(errorArr[0].element).focus();
art.dialog({
id : 'error',
icon : 'error',
lock : true,
fixed : true,
background : "#CCCCCC",
opacity : 0,
content : errorArr[0].message,
cancelVal : '确定',
cancel : function() {
$(errorArr[0].element).focus();
}
});
} catch (err) {
}
},
//验证规则
rules : {
'post[post_title]' : {
required : 1
},
'post[post_content]' : {
editorcontent : true
}
},
//验证未通过提示消息
messages : {
'post[post_title]' : {
required : '请输入标题'
},
'post[post_content]' : {
editorcontent : '内容不能为空'
}
},
//给未通过验证的元素加效果,闪烁等
highlight : false,
//是否在获取焦点时验证
onfocusout : false,
//验证通过,提交表单
submitHandler : function(forms) {
$(forms).ajaxSubmit({
url : form.attr('action'), //按钮上是否自定义提交地址(多按钮情况)
dataType : 'json',
beforeSubmit : function(arr, $form, options) {
},
success : function(data, statusText, xhr, $form) {
if (data.status) {
setCookie("refersh_time", 1);
//添加成功
Wind.use("artDialog", function() {
art.dialog({
id : "succeed",
icon : "succeed",
fixed : true,
lock : true,
background : "#CCCCCC",
opacity : 0,
content : data.info,
button : [ {
name : '继续编辑?',
callback : function() {
//reloadPage(window);
return true;
},
focus : true
}, {
name : '返回列表页',
callback : function() {
location = "{:U('AdminPost/index')}";
return true;
}
} ]
});
});
} else {
artdialog_alert(data.info);
}
}
});
}
});
});
////-------------------------
});
</script>
</body>
</html>

View File

@ -0,0 +1,235 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="javascript:;">{:L('PORTAL_ADMINPOST_INDEX')}</a></li>
<li><a href="{:U('AdminPost/add',array('term'=>empty($term['term_id'])?'':$term['term_id']))}" target="_self">{:L('PORTAL_ADMINPOST_ADD')}</a></li>
</ul>
<form class="well form-search" method="post" action="{:U('AdminPost/index')}">
分类:
<select name="term" style="width: 120px;">
<option value='0'>全部</option>{$taxonomys}
</select> &nbsp;&nbsp;
时间:
<input type="text" name="start_time" class="js-datetime" value="{$formget.start_time|default=''}" style="width: 120px;" autocomplete="off">-
<input type="text" class="js-datetime" name="end_time" value="{$formget.end_time|default=''}" style="width: 120px;" autocomplete="off"> &nbsp; &nbsp;
关键字:
<input type="text" name="keyword" style="width: 200px;" value="{$formget.keyword|default=''}" placeholder="请输入关键字...">
<input type="submit" class="btn btn-primary" value="搜索" />
<a class="btn btn-danger" href="{:U('AdminPost/index')}">清空</a>
</form>
<form class="js-ajax-form" action="" method="post">
<div class="table-actions">
<notempty name="term">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/listorders')}">{:L('SORT')}</button>
</notempty>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/check',array('check'=>1))}" data-subcheck="true">审核</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/check',array('uncheck'=>1))}" data-subcheck="true">取消审核</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/top',array('top'=>1))}" data-subcheck="true">置顶</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/top',array('untop'=>1))}" data-subcheck="true">取消置顶</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/recommend',array('recommend'=>1))}" data-subcheck="true">推荐</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/recommend',array('unrecommend'=>1))}" data-subcheck="true">取消推荐</button>
<notempty name="term">
<button class="btn btn-primary btn-small js-articles-move" type="button">批量移动</button>
</notempty>
<button class="btn btn-primary btn-small js-articles-copy" type="button">批量复制</button>
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/delete')}" data-subcheck="true" data-msg="您确定删除吗?">{:L('DELETE')}</button>
</div>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="15"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<notempty name="term">
<th width="50">{:L('SORT')}</th>
</notempty>
<th width="50">ID</th>
<th>{:L('TITLE')}</th>
<th width="50">{:L('AUTHOR')}</th>
<th width="50">{:L('HITS')}</th>
<th width="50">{:L('COMMENT_COUNT')}</th>
<th width="160">{:L('KEYWORDS')}/{:L('SOURCE')}/{:L('ABSTRACT')}/{:L('THUMBNAIL')}</th>
<th width="100">{:L('PUBLISH_DATE')}</th>
<th width="50">{:L('STATUS')}</th>
<th width="70">{:L('ACTIONS')}</th>
</tr>
</thead>
<foreach name="posts" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]" value="{$vo.id}" title="ID:{$vo.id}"></td>
<notempty name="term">
<td><input name="listorders[{$vo.tid}]" class="input input-order" type="text" size="5" value="{$vo.listorder}"></td>
</notempty>
<td><b>{$vo.id}</b></td>
<td>
<notempty name="term">
<a href="{:leuu('portal/article/index',array('id'=>$vo['id'],'cid'=>$term['term_id']))}" target="_blank">{$vo.post_title}</a>
<else/>
{$vo.post_title}
</notempty>
</td>
<td>{$vo.user_nicename|default=$vo.user_login}</td>
<td>{$vo.post_hits}</td>
<td>
<notempty name="vo.comment_count">
<a href="javascript:parent.open_iframe_dialog('{:U('comment/commentadmin/index',array('post_id'=>$vo['id']))}','评论列表')">{$vo.comment_count}</a>
<else/>
{$vo.comment_count}
</notempty>
</td>
<td>
<notempty name="vo.post_keywords">
<i class="fa fa-check fa-fw"></i>
<else/>
<i class="fa fa-close fa-fw"></i>
</notempty>
<notempty name="vo.post_source">
<i class="fa fa-check fa-fw"></i>
<else/>
<i class="fa fa-close fa-fw"></i>
</notempty>
<notempty name="vo.post_excerpt">
<i class="fa fa-check fa-fw"></i>
<else/>
<i class="fa fa-close fa-fw"></i>
</notempty>
<php>$smeta=json_decode($vo['smeta'],true);</php>
<notempty name="smeta.thumb">
<a href="javascript:parent.image_preview_dialog('{:sp_get_image_preview_url($smeta['thumb'])}');">
<i class="fa fa-photo fa-fw"></i>
</a>
</notempty>
</td>
<td>{:date('Y-m-d H:i',strtotime($vo['post_date']))}</td>
<td>
<notempty name="vo.post_status">
<a data-toggle="tooltip" title="已审核"><i class="fa fa-check"></i></a>
<else/>
<a data-toggle="tooltip" title="未审核"><i class="fa fa-close"></i></a>
</notempty>
<notempty name="vo.istop">
<a data-toggle="tooltip" title="已置顶"><i class="fa fa-arrow-up"></i></a>
<else />
<a data-toggle="tooltip" title="未置顶"><i class="fa fa-arrow-down"></i></a>
</notempty>
<notempty name="vo.recommended">
<a data-toggle="tooltip" title="已推荐"><i class="fa fa-thumbs-up"></i></a>
<else />
<a data-toggle="tooltip" title="未推荐"><i class="fa fa-thumbs-down"></i></a>
</notempty>
</td>
<td>
<a href="{:U('AdminPost/edit',array('id'=>$vo['id']))}">{:L('EDIT')}</a> |
<a href="{:U('AdminPost/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">{:L('DELETE')}</a>
</td>
</tr>
</foreach>
<tfoot>
<tr>
<th width="15"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<notempty name="term">
<th width="50">{:L('SORT')}</th>
</notempty>
<th width="50">ID</th>
<th>{:L('TITLE')}</th>
<th width="50">{:L('AUTHOR')}</th>
<th width="50">{:L('HITS')}</th>
<th width="50">{:L('COMMENT_COUNT')}</th>
<th >{:L('KEYWORDS')}/{:L('SOURCE')}/{:L('ABSTRACT')}/{:L('THUMBNAIL')}</th>
<th width="100">{:L('PUBLISH_DATE')}</th>
<th width="50">{:L('STATUS')}</th>
<th width="70">{:L('ACTIONS')}</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<notempty name="term">
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/listorders')}">{:L('SORT')}</button>
</notempty>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/check',array('check'=>1))}" data-subcheck="true">审核</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/check',array('uncheck'=>1))}" data-subcheck="true">取消审核</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/top',array('top'=>1))}" data-subcheck="true">置顶</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/top',array('untop'=>1))}" data-subcheck="true">取消置顶</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/recommend',array('recommend'=>1))}" data-subcheck="true">推荐</button>
<button class="btn btn-primary btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/recommend',array('unrecommend'=>1))}" data-subcheck="true">取消推荐</button>
<notempty name="term">
<button class="btn btn-primary btn-small js-articles-move" type="button">批量移动</button>
</notempty>
<button class="btn btn-primary btn-small js-articles-copy" type="button">批量复制</button>
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/delete')}" data-subcheck="true" data-msg="你确定删除吗?">{:L('DELETE')}</button>
</div>
<div class="pagination">{$page}</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
<script>
function refersh_window() {
var refersh_time = getCookie('refersh_time');
if (refersh_time == 1) {
window.location = "{:U('AdminPost/index',$formget)}";
}
}
setInterval(function() {
refersh_window();
}, 2000);
$(function() {
setCookie("refersh_time", 0);
Wind.use('ajaxForm', 'artDialog', 'iframeTools', function() {
//批量复制
$('.js-articles-copy').click(function(e) {
var ids=[];
$("input[name='ids[]']").each(function() {
if ($(this).is(':checked')) {
ids.push($(this).val());
}
});
if (ids.length == 0) {
art.dialog.through({
id : 'error',
icon : 'error',
content : '您没有勾选信息,无法进行操作!',
cancelVal : '关闭',
cancel : true
});
return false;
}
ids= ids.join(',');
art.dialog.open("__ROOT__/index.php?g=portal&m=AdminPost&a=copy&ids="+ ids, {
title : "批量复制",
width : "300px"
});
});
//批量移动
$('.js-articles-move').click(function(e) {
var ids=[];
$("input[name='ids[]']").each(function() {
if ($(this).is(':checked')) {
ids.push($(this).val());
}
});
if (ids.length == 0) {
art.dialog.through({
id : 'error',
icon : 'error',
content : '您没有勾选信息,无法进行操作!',
cancelVal : '关闭',
cancel : true
});
return false;
}
ids= ids.join(',');
art.dialog.open("__ROOT__/index.php?g=portal&m=AdminPost&a=move&old_term_id={$term.term_id|default=0}&ids="+ ids, {
title : "批量移动",
width : "300px"
});
});
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,17 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<form method="post" class="js-ajax-form">
<div>
<label>分类:</label>
<select name="term_id">
{$terms_tree}
</select>
</div>
<button class="btn btn-primary js-ajax-submit" type="submit">移动</button>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,126 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('AdminPost/recyclebin')}">{:L('PORTAL_ADMINPOST_RECYCLEBIN')}</a></li>
</ul>
<form class="well form-search" method="post" action="{:U('AdminPost/recyclebin')}">
分类:
<select name="term" style="width: 120px;">
<option value='0'>全部</option>{$taxonomys}
</select> &nbsp;&nbsp;
时间:
<input type="text" name="start_time" class="js-datetime" value="{$formget.start_time|default=''}" style="width: 120px;" autocomplete="off">-
<input type="text" class="js-datetime" name="end_time" value="{$formget.end_time}" style="width: 120px;" autocomplete="off"> &nbsp; &nbsp;
关键字:
<input type="text" name="keyword" style="width: 200px;" value="{$formget.keyword}" placeholder="请输入关键字...">
<input type="submit" class="btn btn-primary" value="搜索" />
<a class="btn btn-danger" href="{:U('AdminPost/recyclebin')}">清空</a>
</form>
<form class="js-ajax-form" method="post">
<div class="table-actions">
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/clean')}" data-subcheck="true" data-msg="你确定删除吗?删除后无法恢复!">{:L('DELETE')}</button>
</div>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="15"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="50">ID</th>
<th>{:L('TITLE')}</th>
<th width="50">{:L('AUTHOR')}</th>
<th width="50">{:L('HITS')}</th>
<th width="50">{:L('COMMENT_COUNT')}</th>
<th width="160">{:L('KEYWORDS')}/{:L('SOURCE')}/{:L('ABSTRACT')}/{:L('THUMBNAIL')}</th>
<th width="100">{:L('PUBLISH_DATE')}</th>
<th width="50">{:L('STATUS')}</th>
<th width="60">{:L('ACTIONS')}</th>
</tr>
</thead>
<php>
$status=array("1"=>"已审核","0"=>"未审核");
$top_status=array("1"=>"已置顶","0"=>"未置顶");
$recommend_status=array("1"=>"已推荐","0"=>"未推荐");
</php>
<foreach name="posts" item="vo">
<tr>
<td><input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[{$vo.id}]" value="{$vo.id}"></td>
<td><b>{$vo.id}</b></td>
<td>{$vo.post_title}</td>
<td>{$vo.user_nicename|default=$vo.user_login}</td>
<td>{$vo.post_hits}</td>
<td>
<notempty name="vo.comment_count">
<a href="javascript:parent.open_iframe_dialog('{:U('comment/commentadmin/index',array('post_id'=>$vo['id']))}','评论列表')">{$vo.comment_count}</a>
<else/>
{$vo.comment_count}
</notempty>
</td>
<td>
<notempty name="vo.post_keywords">
<i class="fa fa-check fa-fw"></i>
<else/>
<i class="fa fa-close fa-fw"></i>
</notempty>
<notempty name="vo.post_source">
<i class="fa fa-check fa-fw"></i>
<else/>
<i class="fa fa-close fa-fw"></i>
</notempty>
<notempty name="vo.post_excerpt">
<i class="fa fa-check fa-fw"></i>
<else/>
<i class="fa fa-close fa-fw"></i>
</notempty>
<php>$smeta=json_decode($vo['smeta'],true);</php>
<notempty name="smeta.thumb">
<a href="javascript:parent.image_preview_dialog('{:sp_get_image_preview_url($smeta['thumb'])}');">
<i class="fa fa-photo fa-fw"></i>
</a>
</notempty>
</td>
<td>{:date('Y-m-d H:i',strtotime($vo['post_date']))}</td>
<td>
<notempty name="vo.post_status">
<a data-toggle="tooltip" title="已审核"><i class="fa fa-check"></i></a>
<else/>
<a data-toggle="tooltip" title="未审核"><i class="fa fa-close"></i></a>
</notempty>
<notempty name="vo.istop">
<a data-toggle="tooltip" title="已置顶"><i class="fa fa-arrow-up"></i></a>
</notempty>
<notempty name="vo.recommended">
<a data-toggle="tooltip" title="已推荐"><i class="fa fa-thumbs-up"></i></a>
</notempty>
</td>
<td>
<a href="{:U('AdminPost/restore',array('id'=>$vo['id']))}" class="js-ajax-dialog-btn" data-msg="确定还原吗?">还原</a>|
<a href="{:U('AdminPost/clean',array('id'=>$vo['id'],'id'=>$vo['id']))}" class="js-ajax-delete">删除</a>
</td>
</tr>
</foreach>
<tfoot>
<tr>
<th width="15"><label><input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x"></label></th>
<th width="50">ID</th>
<th>{:L('TITLE')}</th>
<th width="50">{:L('AUTHOR')}</th>
<th width="50">{:L('HITS')}</th>
<th width="50">{:L('COMMENT_COUNT')}</th>
<th width="160">{:L('KEYWORDS')}/{:L('SOURCE')}/{:L('ABSTRACT')}/{:L('THUMBNAIL')}</th>
<th width="100">{:L('PUBLISH_DATE')}</th>
<th width="50">{:L('STATUS')}</th>
<th width="60">{:L('ACTIONS')}</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<button class="btn btn-danger btn-small js-ajax-submit" type="submit" data-action="{:U('AdminPost/clean')}" data-subcheck="true" data-msg="你确定删除吗?删除后无法恢复!">{:L('DELETE')}</button>
</div>
<div class="pagination">{$page}</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,115 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="#A" data-toggle="tab">{:L('GENERAL_SETTING')}</a></li>
<li><a href="#B" data-toggle="tab">{:L('SEO_SETTING')}</a></li>
<li><a href="#C" data-toggle="tab">{:L('TEMPLATE_SETTING')}</a></li>
</ul>
<form class="form-horizontal js-ajax-form" action="{:U('AdminTerm/add_post')}" method="post">
<div class="tabbable">
<div class="tab-content">
<div class="tab-pane active" id="A">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('PARENT')}</label>
<div class="controls">
<select name="parent">
<option value="0">{:L('ROOT')}</option>
{$terms_tree}
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('NAME')}</label>
<div class="controls">
<input type="text" name="name" value=""><span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('CATEGORY_DESCRIPTION')}</label>
<div class="controls">
<textarea name="description" rows="5" cols="57"></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('CATEGORY_TYPE')}</label>
<div class="controls">
<select name="taxonomy">
<foreach name="taxonomys" item="vo">
<option value="{$key}">{$vo}</option>
</foreach>
</select>
</div>
</div>
</fieldset>
</div>
<div class="tab-pane" id="B">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('SEO_TITLE')}</label>
<div class="controls">
<input type="text" name="seo_title" value="">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('SEO_KEYWORDS')}</label>
<div class="controls">
<input type="text" name="seo_keywords" value="">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('SEO_DESCRIPTION')}</label>
<div class="controls">
<textarea name="seo_description" rows="5" cols="57"></textarea>
</div>
</div>
</fieldset>
</div>
<div class="tab-pane" id="C">
<php>$tpl_list=sp_admin_get_tpl_file_list();</php>
<fieldset>
<div class="control-group">
<label class="control-label">{:L('LIST_TEMPLATE')}</label>
<div class="controls">
<php>
$list_tpls=$tpl_list;
unset($list_tpls['list']);
</php>
<select name="list_tpl">
<option value="list">list{:C("TMPL_TEMPLATE_SUFFIX")}</option>
<foreach name="list_tpls" item="vo">
<option value="{$vo}">{$vo}{:C("TMPL_TEMPLATE_SUFFIX")}</option>
</foreach>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('ARTICLE_TEMPLATE')}</label>
<div class="controls">
<php>
$article_tpls=$tpl_list;
unset($article_tpls['article']);
</php>
<select name="one_tpl">
<option value="article">article{:C("TMPL_TEMPLATE_SUFFIX")}</option>
<foreach name="article_tpls" item="vo">
<option value="{$vo}">{$vo}{:C("TMPL_TEMPLATE_SUFFIX")}</option>
</foreach>
</select>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit"type="submit">{:L('ADD')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,117 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap js-check-wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="#A" data-toggle="tab">{:L('GENERAL_SETTING')}</a></li>
<li><a href="#B" data-toggle="tab">{:L('SEO_SETTING')}</a></li>
<li><a href="#C" data-toggle="tab">{:L('TEMPLATE_SETTING')}</a></li>
</ul>
<form class="form-horizontal js-ajax-form" action="{:U('AdminTerm/edit_post')}" method="post">
<input type="hidden" name="term_id" value="{$data.term_id}" />
<div class="tabbable">
<div class="tab-content">
<div class="tab-pane active" id="A">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('PARENT')}</label>
<div class="controls">
<select name="parent">
<option value="0">{:L('ROOT')}</option> {$terms_tree}
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('NAME')}</label>
<div class="controls">
<input type="text" name="name" value="{$data.name}"><span class="form-required">*</span>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('CATEGORY_DESCRIPTION')}</label>
<div class="controls">
<textarea name="description" rows="5" cols="57">{$data.description}</textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('CATEGORY_TYPE')}</label>
<div class="controls">
<select name="taxonomy">
<foreach name="taxonomys" item="vo"> <php>$selected=$data['taxonomy']==$key?"selected":""</php>
<option value="{$key}"{$selected}>{$vo}</option>
</foreach>
</select>
</div>
</div>
</fieldset>
</div>
<div class="tab-pane" id="B">
<fieldset>
<div class="control-group">
<label class="control-label">{:L('SEO_TITLE')}</label>
<div class="controls">
<input type="text" name="seo_title" value="{$data.seo_title}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('SEO_KEYWORDS')}</label>
<div class="controls">
<input type="text" name="seo_keywords" value="{$data.seo_keywords}">
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('SEO_DESCRIPTION')}</label>
<div class="controls">
<textarea name="seo_description" rows="5" cols="57">{$data.seo_description}</textarea>
</div>
</div>
</fieldset>
</div>
<div class="tab-pane" id="C">
<php>$tpl_list=sp_admin_get_tpl_file_list();</php>
<fieldset>
<div class="control-group">
<label class="control-label">{:L('LIST_TEMPLATE')}</label>
<div class="controls">
<php>
$list_tpls=$tpl_list;
unset($list_tpls['list']);
</php>
<select name="list_tpl">
<option value="list">list{:C("TMPL_TEMPLATE_SUFFIX")}</option>
<foreach name="list_tpls" item="vo">
<php>$template_selected=$data['list_tpl']==$vo?"selected":"";</php>
<option value="{$vo}"{$template_selected}>{$vo}{:C("TMPL_TEMPLATE_SUFFIX")}</option>
</foreach>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label">{:L('ARTICLE_TEMPLATE')}</label>
<div class="controls">
<php>
$article_tpls=$tpl_list;
unset($article_tpls['article']);
</php>
<select name="one_tpl">
<option value="article">article{:C("TMPL_TEMPLATE_SUFFIX")}</option>
<foreach name="article_tpls" item="vo">
<php>$template_selected=$data['one_tpl']==$vo?"selected":"";</php>
<option value="{$vo}"{$template_selected}>{$vo}{:C("TMPL_TEMPLATE_SUFFIX")}</option>
</foreach>
</select>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary js-ajax-submit" type="submit">{:L('SAVE')}</button>
<a class="btn" href="javascript:history.back(-1);">{:L('BACK')}</a>
</div>
</form>
</div>
<script type="text/javascript" src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,43 @@
<admintpl file="header" />
</head>
<body>
<div class="wrap">
<ul class="nav nav-tabs">
<li class="active"><a href="{:U('AdminTerm/index')}">{:L('PORTAL_ADMINTERM_INDEX')}</a></li>
<li><a href="{:U('AdminTerm/add')}">{:L('PORTAL_ADMINTERM_ADD')}</a></li>
</ul>
<form method="post" class="js-ajax-form" action="{:U('AdminTerm/listorders')}">
<div class="table-actions">
<button type="submit" class="btn btn-primary btn-small js-ajax-submit">{:L('SORT')}</button>
</div>
<table class="table table-hover table-bordered table-list">
<thead>
<tr>
<th width="50">{:L('SORT')}</th>
<th width="50">ID</th>
<th>{:L('NAME')}</th>
<th>{:L('CATEGORY_TYPE')}</th>
<th>{:L('ACTIONS')}</th>
</tr>
</thead>
<tbody>
{$taxonomys}
</tbody>
<tfoot>
<tr>
<th width="50">{:L('SORT')}</th>
<th width="50">ID</th>
<th>{:L('NAME')}</th>
<th>{:L('CATEGORY_TYPE')}</th>
<th>{:L('ACTIONS')}</th>
</tr>
</tfoot>
</table>
<div class="table-actions">
<button type="submit" class="btn btn-primary btn-small js-ajax-submit">{:L('SORT')}</button>
</div>
</form>
</div>
<script src="__PUBLIC__/js/common.js"></script>
</body>
</html>

View File

@ -0,0 +1,181 @@
/*
===================
@explain: 系统后台登录页面
@copyright: Copyright 2012,phpwind.com
@author: longwenid@gmail.com
$Id: admin_login.css 22060 2012-12-19 03:01:55Z yanchixia $
===================
*/
html{
padding:0;
margin:0;
background:#1262B7;
}
body {
padding:0;
margin:0;
font-family:Arial, "Microsoft Yahei";
}
.wrap {
width: 250px;
overflow:hidden;
margin: 180px auto 0;
-webkit-animation: bounceIn 600ms linear;
-moz-animation: bounceIn 600ms linear;
-o-animation: bounceIn 600ms linear;
animation: bounceIn 600ms linear;
}
h1 a {
display: block;
height: 50px;
width: 250px;
margin:auto;
overflow: hidden;
color:#fff;
font-size: 45px;
font-weight: normal;
text-align: center;
text-decoration: none;
line-height: 50px;
}
.login ul,
.login li{
padding:0;
margin:0;
list-style:none;
}
.login ul{
background:#fff;
border:none;
box-shadow:1px 1px 1px #ccc inset;
border-radius:3px;
overflow:hidden;
margin-bottom:15px;
width:248px;
overflow:hidden;
}
.login li{
border-top:1px solid #d3d4d4;
padding:5px;
}
.login .verifycode-wrapper{
padding:0px;
}
.login li img{
vertical-align:top;
}
.login .input {
width: 225px;
padding: 5px;
vertical-align: middle;
border:0 none;
background:transparent;
font-size:18px;
font-family:Arial,"Microsoft Yahei";
}
.login .input:focus {
outline:0 none;
}
.btn {
width: 248px;
height: 38px;
padding: 0;
margin: 0;
vertical-align: middle;
background:#549fcc url(../images/btn.png) no-repeat;
overflow:visible;
color:#fff;
font-size:20px;
cursor:pointer;
font-family:Arial, "Microsoft Yahei";
border:none;
border-radius:3px;
}
.btn:hover{
background-position:0 -40px;
}
.btn:active {
background-position:0 -80px;
}
.placeholder{
color:#999;
}
/*登录框动画*/
@-webkit-keyframes bounceIn {
0% {
opacity: 0;
-webkit-transform: scale(.3);
}
50% {
opacity: 1;
-webkit-transform: scale(1.05);
}
70% {
-webkit-transform: scale(.9);
}
100% {
-webkit-transform: scale(1);
}
}
@-moz-keyframes bounceIn {
0% {
opacity: 0;
-moz-transform: scale(.3);
}
50% {
opacity: 1;
-moz-transform: scale(1.05);
}
70% {
-moz-transform: scale(.9);
}
100% {
-moz-transform: scale(1);
}
}
@-o-keyframes bounceIn {
0% {
opacity: 0;
-o-transform: scale(.3);
}
50% {
opacity: 1;
-o-transform: scale(1.05);
}
70% {
-o-transform: scale(.9);
}
100% {
-o-transform: scale(1);
}
}
@keyframes bounceIn {
0% {
opacity: 0;
transform: scale(.3);
}
50% {
opacity: 1;
transform: scale(1.05);
}
70% {
transform: scale(.9);
}
100% {
transform: scale(1);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Some files were not shown because too many files have changed in this diff Show More