当前位置:首页 > CMS教程 > phpcms > 列表

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,修改类名,集成原类并继承构造函数.

  1. <?php   
  2. defined('IN_PHPCMS'or exit('No permission resources.');    
  3. pc_base::load_app_class('admin''admin', 0);   
  4. class MY_block_admin extends block_admin {   
  5.     private $db$siteid$priv_db$history_db$roleid;   
  6.     public function __construct() {   
  7.         parent::__construct();   
  8.     }   
  9. ?> 

三.现在我们假设针对 id = 20 的这个碎片进行特定编辑模板加载,首先排除全部其他不必要的函数,留下function block_update() 并改名为block_update20() //便于区别:

  1.  /**   
  2. * 针对碎片ID=20所用的方法  
  3. */   
  4. ublic function block_update20() {   
  5. //code.......   
  6.               include $this->admin_tpl('block_update20');//加载针对id=20所用的模板   
  7.       } 

四.进入/phpcms/modules/block/template后台模板文件夹,其中block_list.tpl.php是碎片列表页模板,block_update.tpl.php是碎片编辑模板.

(1) 首先来修改block_list.tpl.php 这个文件需要修改的地方就是下面JS 的block_update()方法:

  1. function block_update(id, name) {   
  2.     if(id == 20) {   
  3.         window.top.art.dialog({id:'edit'}).close();   
  4.                 //这里需要注意的是下面iframe地址中的a参数, 这样修改可以调用我们上面写的block_update20()方法   
  5.                 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()});   
  6.     } else {   
  7.         window.top.art.dialog({id:'edit'}).close();   
  8.         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()});   
  9.     }   

(2) 然后把block_update.tpl.php 复制并改名为 block_update20.tpl.php

五.可以改模板了,如果添加了input等表单,记得在模板的js里也要加上,并且修改控制器block_update20()中接收的数据,//添加表单不需要在数据库添加字段.

六. 上面几步只是针对碎片列表中的修改按钮,还有一个就是针对虚拟页面而修改的按钮,要修改的地方在 /phpcms/modules/template/functions/global.func.php,找到 visualization() 方法,修改为:

  1. /**  
  2.  * 生成可视化模板  
  3.  * @param $html 模板代码  
  4.  * @param $style 风格  
  5.  * @param $dir 目录  
  6.  * @param $file 文件名  
  7.  */   
  8. function visualization($html$style = ''$dir = ''$file = '') {   
  9.     $change = "<link href=\"".CSS_PATH."dialog.css\" rel=\"stylesheet\" type=\"text/css\" />   
  10.         <link rel=\"stylesheet\" type=\"text/css\" href=\"".CSS_PATH."admin_visualization.css\" />   
  11.         <script language=\"javascript\" type=\"text/javascript\" src=\"".JS_PATH."dialog.js\"></script>   
  12.         <script type='text/javascript' src='".JS_PATH."jquery.min.js'></script>   
  13.         <script type='text/javascript'>   
  14.         var pc_hash = '".$_SESSION['pc_hash']."';   
  15.         $(function(){   
  16.         $('a').attr('href''javascript:void(0)').attr('target''');   
  17.         $('.admin_piao_edit').click(function(){   
  18.         var url = '?m=template&c=file&a=edit_pc_tag';   
  19.         if($(this).parent('.admin_piao').attr('pc_action') == 'block') url = '?m=block&c=block_admin&a=add';   
  20.         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()});})   
  21.         //修改的部分下面   
  22.                 $('.admin_block').click(function(){   
  23.             if($(this).attr('blockid')==20) {   
  24.                 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()});   
  25.             } else {   
  26.                 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()});   
  27.             }   //开源软件:phpfensi.com 
  28.         });   
  29.     })</script><div id=\"PC__contentHeight\" style=\"display:none\">80</div>";   
  30.         $html = str_replace('</body>'$change.'</body>'$html$num);   
  31.         if (!$num$html .= $change;   
  32.            
  33.         return $html;   
  34. }

Tags: phpcms碎片模板 phpcms编辑模板

分享到:

相关文章