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入门学习的几个不错的实例代码
Jul 13 PHP
php下载远程文件类(支持断点续传)
Nov 14 PHP
Discuz 模板语句分析及知识技巧
Aug 21 PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 PHP
使用php记录用户通过搜索引擎进网站的关键词
Feb 13 PHP
PHP中isset()和unset()函数的用法小结
Mar 11 PHP
php实例分享之二维数组排序
May 15 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 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常用代码
2006/11/23 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
javascript匿名函数应用示例介绍
2014/03/07 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
2019/09/26 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
Python datetime时间格式化去掉前导0
2014/07/31 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
Python线性方程组求解运算示例
2018/01/17 Python
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
Python API自动化框架总结
2019/11/12 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
python 实现图片裁剪小工具
2021/02/02 Python
大学生的网上创业计划书
2013/12/31 职场文书
银行办公室岗位职责
2014/03/10 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
学雷锋倡议书
2015/01/19 职场文书
护士求职简历自我评价
2015/03/10 职场文书
党员带头倡议书
2015/04/29 职场文书
MySQL创建管理HASH分区
2022/04/13 MySQL