将j-ui(dwz)套用到thinkphp注意事项
目前我用的 thinkphp 版本是 3.1.3
J-UI dwz 版本好像是 1.4
现在 j-ui有 thinkphp的例子了,请尽量以他们原创为主,我这里都是一些自己搜集和自己钻研的土办法,
1 更改 Action.class.php 中 ajaxReturn函数 为
protected function ajaxReturn($data,$type='') {
if(func_num_args()>2) {// 兼容3.0之前用法
$args = func_get_args();
array_shift($args);
$info = array();
$info['data'] = $data;
$info['info'] = array_shift($args);
$info['status'] = array_shift($args);
$data = $info;
$type = $args?array_shift($args):'';
}
//
//较原版增加部分--
$data['statusCode'] = 1; //
$data['navTabId'] = $_REQUEST['navTabId'];//
$data['rel'] = $_REQUEST['rel']; //
$data['callbackType'] = $_REQUEST['callbackType']; //
$data['forwardUrl'] = $_REQUEST['forwardUrl']; //
$data['confirmMsg'] = $_REQUEST['confirmMsg'];//
$data['message'] = $data['info']; //840206883@qq.com
//较原版增加部分--
//
if(empty($type)) $type = C('DEFAULT_AJAX_RETURN');
switch (strtoupper($type)){
case 'JSON' :
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
exit(json_encode($data));
case 'XML' :
// 返回xml格式数据
header('Content-Type:text/xml; charset=utf-8');
exit(xml_encode($data));
case 'JSONP':
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
$handler = isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
exit($handler.'('.json_encode($data).');');
case 'EVAL' :
// 返回可执行的js脚本
header('Content-Type:text/html; charset=utf-8');
exit($data);
default :
// 用于扩展其他返回格式数据
tag('ajax_return',$data);
}
}
2 更改 ContentReplaceBehavior 中 templateContentReplace 函数为
protected function templateContentReplace($content) {
// 系统默认的特殊变量替换
$replace = array(
'__TMPL__' => APP_TMPL_PATH, // 项目模板目录
'__ROOT__' => __ROOT__, // 当前网站地址
'__APP__' => __APP__, // 当前项目地址
'__GROUP__' => defined('GROUP_NAME')?__GROUP__:__APP__,
'__ACTION__' => __ACTION__, // 当前操作地址
'__SELF__' => __SELF__, // 当前页面地址
'__URL__' => __URL__,
'../Public' => APP_TMPL_PATH.'Public',// 项目公共模板目录
'__PUBLIC__' => __ROOT__.'/Public',// 站点公共目录
'__MODULE__' => MODULE_NAME, // 这句是亮点
);
// 允许用户自定义模板的字符串替换
if(is_array(C('TMPL_PARSE_STRING')) )
$replace = array_merge($replace,C('TMPL_PARSE_STRING'));
$content = str_replace(array_keys($replace),array_values($replace),$content);
return $content;
}
3 检查你的 tpl/index/index.html 中 是否有这几个js 函数
<script type="text/javascript">
function fleshVerify(){
//重载验证码
$('#verifyImg').attr("src", '__APP__/Public/verify/'+new Date().getTime());
}
function dialogAjaxMenu(json){
dialogAjaxDone(json);
if (json.statusCode == DWZ.statusCode.ok){
$("#sidebar").loadUrl("__APP__/Public/menu");
}
}
function navTabAjaxMenu(json){
navTabAjaxDone(json);
if (json.statusCode == DWZ.statusCode.ok){
$("#sidebar").loadUrl("__APP__/Public/menu");
}
} $(function(){
DWZ.init("__PUBLIC__/dwz/dwz.frag.xml", {
loginUrl:"__APP__/Public/login_dialog", loginTitle:"登录", // 弹出登录对话框
// loginUrl:"__APP__/Public/login", //跳到登录页面
statusCode:{ok:1,error:0},
pageInfo:{pageNum:"pageNum", numPerPage:"numPerPage", orderField:"_order", orderDirection:"_sort"}, //【可选】
debug:false, // 调试模式 【true|false】
callback:function(){
initEnv();
$("#themeList").theme({themeBase:"__PUBLIC__/dwz/themes"});
}
});
});
</script>
这样基本就差不多了,可以正常刷新,显示 ajax返回的 success 和 error信息了
如果要关闭 dialog ,可以在 dialog form页面上放这个东西
<input name="callbackType" type="hidden" value="closeCurrent" />
成功执行完就自动关闭dialog了
总体来说 dwz是个不错的框架 ,不知道现在为啥改名 j-ui,导致seo一塌糊涂,他的js方面我用了快4年(从他第一个版本起),感觉进步不太大,
最近几个月经常生气来想换 bootstrap 下的后台框架,每次到最后都是安慰自己,支持国产支持国产,希望大家也辛苦支持国产
读了他的一些代码,感觉zhanghuihua@msn.com 做的代码移植工作比较多,其他人好像都在混奖状呢,呵呵
希望他越来越好,帮助文件能写的更详细,更多些,更有耐心些, 有偿服务的 字体能低调些。
将j-ui(dwz)套用到thinkphp注意事项的更多相关文章
- ThinkPHP 使用 SwaggerUi 自动生成 api 文档
1.下载swagger-ui GitHub地址:https://github.com/swagger-api/swagger-ui 2.修改 ThinkPHP 的 build.php ,执行命令生成需 ...
- 带UI的小初高数学学习软件—艰难地用C++(QT库)实现的过程
从互相了解对方的代码思路然后确定用C++编写,到用win32写界面时变得摇摆不定的考虑着要不要改变语言,再到用QT写完界面后发现短信接口一般都不提供C++,最后到QT打包出来的可执行文件在别的设备上无 ...
- [系统开发] 基于Ansible的产品上线系统
前言: 应部门急需,开发了一套基于Ansible Playbook的产品上线系统.由于时间很紧,UI直接套用了之前开发的一套perl cgi模板,后续计划用 django 重新编写. 个人感觉该系统的 ...
- hdu 5749 Colmerauer
题意:对于给定的$n \times m$矩阵$M$,定义$S(a,b)$为$M$的所有$a \times b$子矩阵的权重之和.一个矩阵的权重是指矩阵中所有马鞍点权值之和,在一个矩阵中某点是马鞍点当且 ...
- SVD
SVD分解(奇异值分解),本应是本科生就掌握的方法,然而却经常被忽视.实际上,SVD分解不但很直观,而且极其有用.SVD分解提供了一种方法将一个矩阵拆分成简单的,并且有意义的几块.它的几何解释可以看做 ...
- SVD分解的理解[转载]
http://www.bfcat.com/index.php/2012/03/svd-tutorial/ SVD分解(奇异值分解),本应是本科生就掌握的方法,然而却经常被忽视.实际上,SVD分解不但很 ...
- 转载:奇异值分解(SVD) --- 线性变换几何意义(下)
本文转载自他人: PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理 ...
- 奇异值分解(We Recommend a Singular Value Decomposition)
奇异值分解(We Recommend a Singular Value Decomposition) 原文作者:David Austin原文链接: http://www.ams.org/samplin ...
- We Recommend a Singular Value Decomposition
We Recommend a Singular Value Decomposition Introduction The topic of this article, the singular val ...
随机推荐
- 记录js的一些小技巧
1.取数组最大值,最小值 Math.max.apply(null,[1,2,3,32,3]); Math.min.apply(null,[1,2,3,32,3]); 2.旧版IE setTimeout ...
- 【Android】Android开源项目分类汇总
第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...
- [读书笔记]C#学习笔记五: C#3.0自动属性,匿名属性及扩展方法
前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好 ...
- atitit.团队建设总结fx O622
团队建设总结fx O622 大的title 2 建设团队文化 2 办公环境(3s+树+湖) 3 每人一个办公室 3 弹性工作制 3 重大的决定公投体制 3 每年一个kid经验日 3 做自己想到做的事. ...
- iOS开发——运行时OC篇&使用运行时获取系统的属性:使用自己的手势修改系统自带的手势
使用运行时获取系统的属性:使用自己的手势修改系统自带的手势 有的时候我需要实现一个功能,但是没有想到很好的方法或者想到了方法只是那个方法实现起来太麻烦,一或者确实为了装逼,我们就会想到iOS开发中最牛 ...
- python BeautifulSoup实例测验
- 前端开发-Weex初试
1 Weex介绍 weex是阿里2016年开源的一套跨移动端(Andriod/IOS/Wap)的前端框架,采用VUE,较React Native入门相对简单 官网地址 2 Weex安装与初始化 2.1 ...
- Swift开发iOS应用过程中的问题和解决记录
虚拟机里安装OSX+XCode开发环境 用真机的请直接跳过这个部分. 主要是在VitrualBox里安装mac系统和xcode,参考这篇教程,VirtualBox的版本是4.3.18 r96156,O ...
- Jquery EasyUI封装简化操作
//confirm function Confirm(msg, control) { $.messager.confirm('确认', msg, function (r) { if (r) { eva ...
- 使用Gulp和Browserify来搭建React应用程序
对React有一定了解之后,我们知道,需要把JSX文件转换成JS文件,组件需要导入导出.本篇就体验使用Gulp把JSX文件转换成JS文件,使用Browserify来把组件捆绑到一个文件并理顺组件之间的 ...