smarty巧妙处理iframe中内容页,smartyiframe
做过后台的,应该都知道,经常要用到iframe来处理导航,如果按一般的思路来做这个功能,还是挺简单的
可是当我用smarty的时候,就发现了问题,比如,一个iframeset分成了:头部top,左边menu,右边main,
正常情况,用smarty来处理的话,一般是这样:
如果3个页面仅仅只是静态页面的话,就是如下处理
iframe.html代码:
<frame src="top.html" name="topFrame" id="topFrame" scrolling="no"><br /> <frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"><br /> <frame src="menu.html" id="leftbar" noresize name="menu" scrolling="yes"><br /> <frame src="main.html" id="rightbar" noresize name="main" scrolling="yes"><br /> </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"><br /> <frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"><br /> <frame src="menu.php" id="leftbar" noresize name="menu" scrolling="yes"><br /> <frame src="main.php" id="rightbar" noresize name="main" scrolling="yes"><br /> </frameset>
========================================================================
现在我们假设,我们现在要对这3个内容页分别进行分角色处理,不同角色,3个页面需要显示不同的效果
按上面的处理方法,我们就需要对3个页面分别处理,这样就自然的就多了冗余的处理,而且以后的维护也麻烦
于是我想到了下面的方法,独立出一个专门的处理程序iframe.php,通过条件来模拟出上面3个页面
直接贴代码了:
iframe.php 后台代码:
/*此处放共用处理代码*/<br /><br />switch($src)<br />{<br /> case "top":<br /> /*此处放处理代码*/<br /> smarty_Output('top.html');<br /> break;<br /> case "menu":<br /> /*此处放处理代码*/<br /> smarty_Output('menu.html');<br /> break;<br /> case "main":<br /> /*此处放处理代码*/<br /> smarty_Output('main.html');<br /> break;<br /> default:<br /> break;<br />}
iframe.html:
<frame src="iframe.php?src=top" name="topFrame" id="topFrame" scrolling="no"><br /> <frameset cols="180,*" name="btFrame" id="btFrame" frameborder="NO" border="0" framespacing="0"><br /> <frame src="iframe.php?src=menu" id="leftbar" noresize name="menu" scrolling="yes"><br /> <frame src="iframe.php?src=main" id="rightbar" noresize name="main" scrolling="yes"><br /> </frameset>
通过这样处理,我感觉方便多了

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
