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 XML备份Mysql数据库
May 27 PHP
PHP 工厂模式使用方法
May 18 PHP
解析在PHP中使用全局变量的几种方法
Jun 24 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
php页码形式分页函数支持静态化地址及ajax分页
Mar 28 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
简单谈谈php中ob_flush和flush的区别
Nov 27 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
常用PHP封装分页工具类
Jan 14 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
PHP的cookie与session原理及用法详解
Sep 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
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
2017/07/07 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
python实现自动更换ip的方法
2015/05/05 Python
详解python运行三种方式
2019/05/13 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
django form和field具体方法和属性说明
2020/07/09 Python
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
C面试题
2015/10/08 面试题
护士自我鉴定
2013/10/23 职场文书
社区庆八一活动方案
2014/02/02 职场文书
技术负责人任命书
2014/06/05 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
大学生党员个人总结
2015/02/13 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
使用Springboot实现健身房管理系统
2021/07/01 Java/Android
Python学习之异常中的finally使用详解
2022/03/16 Python
Python中npy和mat文件的保存与读取
2022/04/24 Python