AMP, phplib template使用心得

主要讨论侧边栏

很多网站主体右侧,都会有一个侧边栏。譬如友情链接之类什么的,每个页面都有,而且重复。
这里讨论一个处理动态侧边栏的解决方法(动态就是会根据数据库更新的意思)。

主体方法如下:
 $tpl->set_file("link_link","link_link.html");
 $tpl->parse("link_area","link_link",true);
第一句是把侧边栏的页面读入,第二句是把侧边栏放到页面{link_area}处。

咋一看好像很简单,其实真的很简单。

这里贴一个刚做的网站的其中一个侧边栏的代码:


html页面最终侧边栏:

                <div class="cb_link" align="left">
                    
<table width="100%" cellspacing="0">
                        {link_area}                
                    
</table>
                
</div>

配对的php页面最终关于侧边栏的所有代码:

setLinkBlock($tpl);
setMovieBlock(
$tpl, $progid);
setMsgBlock(
$tpl, $progid);

这个页面的侧边栏共有三层,友情链接+movieblock+msgblock

经过服务器解析的侧边栏:

<div class="cb_link" align="left">
                    
<table width="100%" cellspacing="0">
                        
<tr height="8" bgcolor="#a11f25"><td colspan="2"></td></tr>
<tr><td align="left" height="28" colspan="2"><b><a>&nbsp;友情链接</a></b></td></tr>
<tr><td align="left" class="mt2" colspan="2"><a>&nbsp;1231321</a></td></tr>
<tr><td align="left" class="mt2" colspan="2"><a>&nbsp;那啥</a></td></tr>
<tr><td align="left" class="mt2" colspan="2"><a>&nbsp;还是那啥</a></td></tr>
<tr><td>&nbsp;</td></tr>
<!--last program block -->
<tr height="8" bgcolor="#a11f25"><td colspan="2"></td></tr>
<tr>
    
<td align="left" height="28"><b><a>&nbsp;近期节目</a></b></td>
    
<td align="right"><href="prog_list.php"><img src="./templates/images/more.png" /></a></td>
</tr>

<tr><td class="mt2" align="left" colspan="2">
    
<href="prog_article.php?issue=d9f17e4d8460bb463bddff33ad4075e0"><b>[第3期]</b>fffffffffffffffffffffffffffff</a>
</td></tr>

<tr><td class="mt2" align="left" colspan="2">
    
<href="prog_article.php?issue=8f274cca46324ceeb141e30d67d42488"><b>[第2期]</b>cccccccccccccccccccccccc</a>
</td></tr>

<tr><td class="mt2" align="left" colspan="2">
    
<href="prog_article.php?issue=f6cb2e20c5d965cefae00f52a44a6c27"><b>[第1期]</b>那个那个那个</a>
</td></tr>

<tr><td>&nbsp;</td></tr><!--this is the message blob -->
<tr height="8" bgcolor="#a11f25"><td colspan="2"></td></tr>
<tr>
    
<td align="left" height="28"><b><a>&nbsp;最新留言</a></b></td>
    
<td align="right"><href="message_list.php"><img src="./templates/images/more.png" /></a></td>
</tr>

<tr><td class="mt2" align="left" colspan="2"><a>&nbsp;123</a></td></tr>
<tr><td class="mt2" align="right" colspan="2"><a>--<style="color:black;">游客</b></a></td></tr>

<tr><td>&nbsp;</td></tr>
                    
</table>
                    
                
</div>



想象一下,每个页面就这样几行就已经把侧边栏弄好了,那是多么干净。。


这里讨论侧边栏的其中一段的实现方式:
link_prog.html文件:

<!--last program block -->
<tr height="8" bgcolor="#a11f25"><td colspan="2"></td></tr>
<tr>
    
<td align="left" height="28"><b><a>&nbsp;近期节目</a></b></td>
    
<td align="right"><href="prog_list.php"><img src="./templates/images/more.png" /></a></td>
</tr>
<!--  BEGIN link_progblob -->
<tr><td class="mt2" align="left" colspan="2">
    
<href="prog_article.php?issue={progid}"><b>[第{issue}期]</b>{intro}</a>
</td></tr>
<!--  END link_progblob  -->
<tr><td>&nbsp;</td></tr>

这里已经是整个文件了,不需要<html>之类的文件头,因为是直接内嵌在表格里面的


php函数:

function setProgBlock($tpl) {
    
$tpl->set_file("link_prog","link_prog.html");
    
$proglist = listProgram($page, 5);
    
$tpl->set_block("link_prog", "link_progblob", "pb");
    
$tpl->set_var("mb");
    
while(!$proglist->EOF) {
        
$tpl->set_var("progid", $proglist->fields['PROGRAM_ID']);
        
$tpl->set_var("issue", $proglist->fields['PROGRAM_ISSUE']);
        
$tpl->set_var("intro", substr($proglist->fields['PROGRAM_INTRODUCTION'],0,64));
        
$proglist->moveNext();
        
$tpl->parse("pb", "link_progblob", true);
    }
    
$tpl->parse("link_area","link_prog",true);
}



有了以上的基础,就可以在php页面里面调用 setProgBlock($tpl) 来设置侧边栏了

假如侧边栏有几层(友情链接+最新留言+。。。),一样调用

其实这里还有个问题懒得改,就是把html里面的侧边栏区域{link_area}也作为变量输入setXxxBlock,这样才比较好看。

注意:每个php函数里面,
 $tpl->set_file("link_prog","link_prog.html");处变量名需要设置为不同,否则会出错。
于是就搞定了

有了很nnd干净的侧边栏html页面和php页面,最最重要,侧边栏修改时不再需要每个页面改了。






posted on 2009-06-06 17:27 whitech 阅读(105) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2020年3月>
23242526272829
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜