phpcms后台万能字段活用--挂载js动态修改
2013-03-28 16:53
239 查看
本着少改动原平台的原生代码,为了能升级方便.毕竟官方的补丁还是不错的,没必要什么都自己改,自己加.
所以,增加功能时,原则是尽量的不动到原生代码.
发现万能字段可以动态生成html后,就利用它挂载个js,对编辑界面进行一些更改;
如 把select对象的选项改变成另一个网站的数据,或是phpcms无法提供的方式.
动态的隐藏掉某些功能块.方便编辑操作==
只要是不需要对接收步骤进行修改的,只需要在前端显示/编辑时用到的都可以通过本js来动态修改.所以这方便了很多;
如以下代码,就是实现select下拉选项是某一栏目下的文章id.用于文章与文章之间的关联
/*
* phpcms 资讯模型钩子js文件,页面加载完成才运行,所以,如果有页面内容无法加载完成,就导致本js失效
* 使用方式
建立万能字段在里面输入类似以下内容
<script id="hookJs">document.writeln('<script src="http://qidizi.com/phpcms/modules/chrd/statics/js/article.model.hook.js?r=' + new Date().getTime() + '"><\/script>');</script>
然后里面的选项全部全部否,尽量让此字段不影响编辑,达到加载js目的即可
*/
$('#hookJs').prev().hide();
$(function(){//对专栏id处理
var clumnId = 'colunm_id';//专栏id字段名,跟模型字段中一致
if (!$('#' +clumnId).length) return;//字段不存在
var newColumn = '<span> 专栏 : <select name="info[' +clumnId+ ']" id="' +clumnId+ '"><option value="' +$('#' +clumnId).val()+ '">初始值</option></select></span>';
$('#' +clumnId).parent().parent().remove();//把phpcms专栏tr移除
$(newColumn).insertAfter('#property');//移动专栏到文章属性后面
var reloadData = function () {
$.getScript('http://qidizi.com/caches/caches_admin/caches_data/column.json.js', function(){
});
}
$('<input type="button" title="如果没有数据,或是专栏数据发生变更都需要点击这里进行更新js文件后新加载,这些操作是自动的,但是需要人工判断是否需要执行而已" value="刷新专栏数据" id="flashColumnData"/>').insertAfter('#' +clumnId);
$('#flashColumnData').click(function(){
var btn = this;
btn.disabled = true;
$.get('http://qidizi.com/index.php?m=chrd&c=ajax&a=createColumnJson&r=' + new Date().getTime(), function (data) {
btn.disabled = false;
if (1 != data*1) {
return alert('更新失败:' + data);
}
reloadData();
});
});
reloadData();
$('#property').change(function(){
if (10 != this.value * 1) {//文章属性不是专栏,清空专栏选择
$('#' +clumnId)[0].selectedIndex = 0;//变为 请选择
}
});
});
所以,增加功能时,原则是尽量的不动到原生代码.
发现万能字段可以动态生成html后,就利用它挂载个js,对编辑界面进行一些更改;
如 把select对象的选项改变成另一个网站的数据,或是phpcms无法提供的方式.
动态的隐藏掉某些功能块.方便编辑操作==
只要是不需要对接收步骤进行修改的,只需要在前端显示/编辑时用到的都可以通过本js来动态修改.所以这方便了很多;
如以下代码,就是实现select下拉选项是某一栏目下的文章id.用于文章与文章之间的关联
/*
* phpcms 资讯模型钩子js文件,页面加载完成才运行,所以,如果有页面内容无法加载完成,就导致本js失效
* 使用方式
建立万能字段在里面输入类似以下内容
<script id="hookJs">document.writeln('<script src="http://qidizi.com/phpcms/modules/chrd/statics/js/article.model.hook.js?r=' + new Date().getTime() + '"><\/script>');</script>
然后里面的选项全部全部否,尽量让此字段不影响编辑,达到加载js目的即可
*/
$('#hookJs').prev().hide();
$(function(){//对专栏id处理
var clumnId = 'colunm_id';//专栏id字段名,跟模型字段中一致
if (!$('#' +clumnId).length) return;//字段不存在
var newColumn = '<span> 专栏 : <select name="info[' +clumnId+ ']" id="' +clumnId+ '"><option value="' +$('#' +clumnId).val()+ '">初始值</option></select></span>';
$('#' +clumnId).parent().parent().remove();//把phpcms专栏tr移除
$(newColumn).insertAfter('#property');//移动专栏到文章属性后面
var reloadData = function () {
$.getScript('http://qidizi.com/caches/caches_admin/caches_data/column.json.js', function(){
});
}
$('<input type="button" title="如果没有数据,或是专栏数据发生变更都需要点击这里进行更新js文件后新加载,这些操作是自动的,但是需要人工判断是否需要执行而已" value="刷新专栏数据" id="flashColumnData"/>').insertAfter('#' +clumnId);
$('#flashColumnData').click(function(){
var btn = this;
btn.disabled = true;
$.get('http://qidizi.com/index.php?m=chrd&c=ajax&a=createColumnJson&r=' + new Date().getTime(), function (data) {
btn.disabled = false;
if (1 != data*1) {
return alert('更新失败:' + data);
}
reloadData();
});
});
reloadData();
$('#property').change(function(){
if (10 != this.value * 1) {//文章属性不是专栏,清空专栏选择
$('#' +clumnId)[0].selectedIndex = 0;//变为 请选择
}
});
});
相关文章推荐
- 后台无刷新修改字段js
- 如何实现将JS动态添加的TR中的值传到后台中并批量插入
- [原创]通过动态Sql语句,一次性彻底删除或者修改SBO的某个字段对应内容的信息
- 【转】用JS创建json数据,并且可以动态往json数据里面添加新值,也可以修改值。
- 动态批量修改字段属性
- js动态添加删除,后台取数据(示例代码)
- JS动态修改页面EasyUI datebox不生效、EasyUI动态添加Class、EasyUI动态渲染解析解决方案
- 解决phpcms使用php7.1.9时修改后台菜单错误 "[] operator not supported for strings"错误提示
- phpcms--后台登录后显示页面修改
- js 动态修改属性值 动态修改图片,字等
- js 动态根据后台接受的Map<String,String>参数 动态增加参数input框
- ASP.NET程序中动态修改web.config中的设置项目(后台CS代码)
- js 修改svg样式、动态加入DOM元素、添加事件响应函数
- asp.net动态加载用户控件,关于后台添加、修改的思考
- 对于Vue-cli的路由跳转以及使用vue.js动态修改CSS样式
- Mybatis 实现不确定修改几个字段的修改方法(动态语句set、if实现),避免修改时其它没被修改的字段变为null
- js动态添加行hiddenfield保存xml或json 数据 提交给后台处理
- JS动态修改iframe内嵌网页地址的方法
- js学习(一)-动态添加、修改、删除对象的属性和方法
- 通过JS来动态的修改url,实现对url的增删查改