phpcms 针对特定碎片用特定后台碎片编辑模板
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-24 16:11:41 浏览: 评论:0
涉及的模块有两个 1./phpcms/modules/block/ 2./phpcms/modules/template/
打开block模块目录 /phpcms/modules/block/.
一.按照phpcms二次开发建议,为了升级后不影响源代码,复制一份block_admin.php 重命名为 MY_block_admin.php.
二.打开MY_block_admin.php,修改类名,集成原类并继承构造函数.
- <?php
- defined('IN_PHPCMS') or exit('No permission resources.');
- pc_base::load_app_class('admin', 'admin', 0);
- class MY_block_admin extends block_admin {
- private $db, $siteid, $priv_db, $history_db, $roleid;
- public function __construct() {
- parent::__construct();
- }
- ?>
三.现在我们假设针对 id = 20 的这个碎片进行特定编辑模板加载,首先排除全部其他不必要的函数,留下function block_update() 并改名为block_update20() //便于区别:
- /**
- * 针对碎片ID=20所用的方法
- */
- ublic function block_update20() {
- //code.......
- include $this->admin_tpl('block_update20');//加载针对id=20所用的模板
- }
四.进入/phpcms/modules/block/template后台模板文件夹,其中block_list.tpl.php是碎片列表页模板,block_update.tpl.php是碎片编辑模板.
(1) 首先来修改block_list.tpl.php 这个文件需要修改的地方就是下面JS 的block_update()方法:
- function block_update(id, name) {
- if(id == 20) {
- window.top.art.dialog({id:'edit'}).close();
- //这里需要注意的是下面iframe地址中的a参数, 这样修改可以调用我们上面写的block_update20()方法
- window.top.art.dialog({title:'<?php echo L('edit')?>《'+name+'》',id:'edit',iframe:'?m=block&c=block_admin&a=<span style="color:#FF0000">block_update20</span>&id='+id,width:'700',height:'500'}, function(){var d = window.top.art.dialog({id:'edit'}).data.iframe;d.document.getElementById('dosubmit').click();return false;}, function(){window.top.art.dialog({id:'edit'}).close()});
- } else {
- window.top.art.dialog({id:'edit'}).close();
- window.top.art.dialog({title:'<?php echo L('edit')?>《'+name+'》',id:'edit',iframe:'?m=block&c=block_admin&a=block_update&id='+id,width:'700',height:'500'}, function(){var d = window.top.art.dialog({id:'edit'}).data.iframe;d.document.getElementById('dosubmit').click();return false;}, function(){window.top.art.dialog({id:'edit'}).close()});
- }
- }
(2) 然后把block_update.tpl.php 复制并改名为 block_update20.tpl.php
五.可以改模板了,如果添加了input等表单,记得在模板的js里也要加上,并且修改控制器block_update20()中接收的数据,//添加表单不需要在数据库添加字段.
六. 上面几步只是针对碎片列表中的修改按钮,还有一个就是针对虚拟页面而修改的按钮,要修改的地方在 /phpcms/modules/template/functions/global.func.php,找到 visualization() 方法,修改为:
- /**
- * 生成可视化模板
- * @param $html 模板代码
- * @param $style 风格
- * @param $dir 目录
- * @param $file 文件名
- */
- function visualization($html, $style = '', $dir = '', $file = '') {
- $change = "<link href=\"".CSS_PATH."dialog.css\" rel=\"stylesheet\" type=\"text/css\" />
- <link rel=\"stylesheet\" type=\"text/css\" href=\"".CSS_PATH."admin_visualization.css\" />
- <script language=\"javascript\" type=\"text/javascript\" src=\"".JS_PATH."dialog.js\"></script>
- <script type='text/javascript' src='".JS_PATH."jquery.min.js'></script>
- <script type='text/javascript'>
- var pc_hash = '".$_SESSION['pc_hash']."';
- $(function(){
- $('a').attr('href', 'javascript:void(0)').attr('target', '');
- $('.admin_piao_edit').click(function(){
- var url = '?m=template&c=file&a=edit_pc_tag';
- if($(this).parent('.admin_piao').attr('pc_action') == 'block') url = '?m=block&c=block_admin&a=add';
- window.top.art.dialog({title:'".L('pc_tag','' ,'template')."',id:'edit',iframe:url+'&style=$style&dir=$dir&file=$file&'+$(this).parent('.admin_piao').attr('data'),width:'700',height:'500'}, function(){var d = window.top.art.dialog({id:'edit'}).data.iframe;d.document.getElementById('dosubmit').click();return false;}, function(){window.top.art.dialog({id:'edit'}).close()});})
- //修改的部分下面
- $('.admin_block').click(function(){
- if($(this).attr('blockid')==20) {
- window.top.art.dialog({title:'".L('pc_tag','' ,'template')."',id:'edit',iframe:'?m=block&c=block_admin&a=block_update20&id='+$(this).attr('blockid'),width:'700',height:'500'}, function(){var d = window.top.art.dialog({id:'edit'}).data.iframe;d.document.getElementById('dosubmit').click();return false;}, function(){window.top.art.dialog({id:'edit'}).close()});
- } else {
- window.top.art.dialog({title:'".L('pc_tag','' ,'template')."',id:'edit',iframe:'?m=block&c=block_admin&a=block_update&id='+$(this).attr('blockid'),width:'700',height:'500'}, function(){var d = window.top.art.dialog({id:'edit'}).data.iframe;d.document.getElementById('dosubmit').click();return false;}, function(){window.top.art.dialog({id:'edit'}).close()});
- } //开源软件:phpfensi.com
- });
- })</script><div id=\"PC__contentHeight\" style=\"display:none\">80</div>";
- $html = str_replace('</body>', $change.'</body>', $html, $num);
- if (!$num) $html .= $change;
- return $html;
- }
Tags: phpcms碎片模板 phpcms编辑模板
相关文章
- ·PHPCMS开启在线编辑模板(2015-09-28)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)