smarty巧妙处理iframe中内容页的代码


Posted in PHP onMarch 07, 2012

废话不多说,进去正题
做过后台的,应该都知道,经常要用到iframe来处理导航,如果按一般的思路来做这个功能,还是挺简单的
可是当我用smarty的时候,就发现了问题,比如,一个iframeset分成了:头部top,左边menu,右边main,
正常情况,用smarty来处理的话,一般是这样:
如果3个页面仅仅只是静态页面的话,就是如下处理
iframe.html代码:

<frame src="top.html" name="topFrame" id="topFrame" scrolling="no"> 
<frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"> 
<frame src="menu.html" id="leftbar" noresize name="menu" scrolling="yes"> 
<frame src="main.html" id="rightbar" noresize name="main" scrolling="yes"> 
</frameset>

假设iframe里面的内容页都要应用到一些特殊处理,如:
top.html需要显示后台登陆用户名
menu.html中menu都是动态获取
main.html中需要读取服务器的信息
这样的话,我们会给3个内容页分别用3个后台处理页
//top.php: 
$smarty->assign('user', $names ); 
smarty_Output('top.php') 
//menu.php: 
$arr=array(); 
$arr=GetMenu(); 
$smarty->assign('menu', $arr); 
smarty_Output('menu.php'); 
//main.php 
$smarty->assign('serverInfo', $serverInfoArr); 
smarty_Output('main.php'); 
//显示iframe页 
smarty_Output('iframe.html')

上面的处理方法,完全能达到要求
iframe.html代码:
<frame src="top.php" name="topFrame" id="topFrame" scrolling="no"> 
<frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"> 
<frame src="menu.php" id="leftbar" noresize name="menu" scrolling="yes"> 
<frame src="main.php" id="rightbar" noresize name="main" scrolling="yes"> 
</frameset>

现在我们假设,我们现在要对这3个内容页分别进行分角色处理,不同角色,3个页面需要显示不同的效果
按上面的处理方法,我们就需要对3个页面分别处理,这样就自然的就多了冗余的处理,而且以后的维护也麻烦
于是我想到了下面的方法,独立出一个专门的处理程序iframe.php,通过条件来模拟出上面3个页面
直接贴代码了:
iframe.php 后台代码:
/*此处放共用处理代码*/ 
switch($src) 
{ 
case "top": 
/*此处放处理代码*/ 
smarty_Output('top.html'); 
break; 
case "menu": 
/*此处放处理代码*/ 
smarty_Output('menu.html'); 
break; 
case "main": 
/*此处放处理代码*/ 
smarty_Output('main.html'); 
break; 
default: 
break; 
}

iframe.html:
<frame src="iframe.php?src=top" name="topFrame" id="topFrame" scrolling="no"> 
<frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"> 
<frame src="iframe.php?src=menu" id="leftbar" noresize name="menu" scrolling="yes"> 
<frame src="iframe.php?src=main" id="rightbar" noresize name="main" scrolling="yes"> 
</frameset>

通过这样处理,我感觉方便多了
PHP 相关文章推荐
Windows2003 下 MySQL 数据库每天自动备份
Dec 21 PHP
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
PHP获取表单所有复选框的值的方法
Aug 28 PHP
php中try catch捕获异常实例详解
Nov 21 PHP
php实现通过cookie换肤的方法
Jul 13 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
May 23 PHP
浅析php如何实现App常用的秒发功能
Aug 03 PHP
thinkphp跨库操作的简单代码实例
Sep 22 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
Feb 28 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PHP中$GLOBALS与global的区别详解
Mar 21 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
php 操作符与控制结构
Mar 07 #PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 #PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 #PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
Mar 05 #PHP
php在服务器执行exec命令失败的解决方法
Mar 03 #PHP
Php Ctemplate引擎开发相关内容
Mar 03 #PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 #PHP
You might like
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
jQuery语法总结和注意事项小结
2012/11/11 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
热点新闻滚动特效的js代码
2013/08/17 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
Node.js的特点详解
2017/02/03 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
js实现手机web图片左右滑动效果
2017/12/29 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
Python计算一个文件里字数的方法
2015/06/15 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
python开头的coding设置方法
2019/08/08 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
毕业生的自我评价范文
2013/12/31 职场文书
甲乙双方合作协议书
2014/10/13 职场文书
全国助残日活动总结
2015/05/11 职场文书
同事欢送会致辞
2015/07/31 职场文书