您的位置:首页 > 编程语言 > PHP开发

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;//变为 请选择
}
});
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: