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 相关文章推荐
构建简单的Webmail系统
Oct 09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续四
Apr 03 PHP
PHP HTML代码串 截取实现代码
Jun 29 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 PHP
php计算两个整数的最大公约数常用算法小结
Mar 05 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
PHP中isset与array_key_exists的区别实例分析
Jun 02 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
Nov 20 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/16 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
php修改数组键名的方法示例
2017/04/15 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
一个选择最快的服务器转向代码
2009/04/27 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
python定时器使用示例分享
2014/02/16 Python
分享15个最受欢迎的Python开源框架
2014/07/13 Python
Python端口扫描简单程序
2016/11/10 Python
Python绑定方法与非绑定方法详解
2017/08/18 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
Lookfantastic挪威官网:英国知名美妆购物网站
2017/07/26 全球购物
STP的判定过程
2012/10/01 面试题
大学生新闻专业个人自我评价
2013/11/12 职场文书
服务宗旨标语
2014/07/01 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
详解php中流行的rpc框架
2021/05/29 PHP
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis