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 相关文章推荐
使用PHP维护文件系统
Oct 09 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
Jul 18 PHP
php 操作调试的方法
Jul 12 PHP
百度站点地图(百度sitemap)生成方法分享
Jan 09 PHP
PHP上传图片进行等比缩放可增加水印功能
Jan 13 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
php中运用http调用的GET和POST方法示例
Sep 29 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
Dec 18 PHP
PHP实现的DES加密解密实例代码
Apr 06 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
May 26 PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 PHP
PHP操作路由器实现方法示例
Apr 27 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
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
php+ajax实现无刷新分页的方法
2014/11/04 PHP
PHP制作万年历
2015/01/07 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
分享php多功能图片处理类
2016/05/15 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
js加强的经典分页实例
2013/03/15 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
用js实现in_array的方法
2013/11/05 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
javascript History对象原理解析
2020/02/17 Javascript
js数组的基本使用总结
2021/01/18 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
Python实现FTP弱口令扫描器的方法示例
2019/01/31 Python
Python autoescape标签用法解析
2020/01/17 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
几个常见的软件测试问题
2016/09/07 面试题
户外亲子活动策划方案
2014/02/07 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
奔腾年代观后感
2015/06/09 职场文书
诉讼和解协议书
2016/03/23 职场文书
python实战之用emoji表情生成文字
2021/05/08 Python