SaBlog-x 1.6标准模式下的模板教程

SaBlog由于其出色的负载能力和优秀的安全系数,为不少博客爱好者所用。但是其模板还是比较难写的。刚找到一篇教程,转来大家一起学习。有空好好写一个自己的风格。
 
关于 SaBlog-x 1.6 [标准模式]下的模板教程。
 
记住在Sablog模板中,任何 print <<<EOT 的开始,一定会以 EOT; 结束,这不仅是sablog的模板规范,它是确切应用于PHP的字符串应用规范。
 
<!--<?php
print <<<EOT
-->
<div id="top"><div id="viewmode">浏览模式: 标准 | <a href="http://www.bpsky.net/viewmode.html=list{$modelink}">列表</a></div><b>$navtext</b></div>
<!--
EOT;

这是[标准模式]的切换条。
 
if ($tatol > 0) {
foreach($articledb as $key => $article){
print <<<EOT
--><div class="post">
<div class="posttitle"><!--
EOT;

$tatol在这里指Blog里所包含的文章总数,用大白话来解释就是,如果文章总数超过0篇(存在有文章才列显出来),则将$articledb数据集数组(可能是分类数据)递归返回给$article变量(数组)。

PS:我刚刚查看了一下Sablog的index.php文件,确认了,articledb是不是单纯的数据集,而是数据集数组。已经将额定条目的数据集打包成数组,这和我们常识的db有点区别。我也差点被骗了. 
 
if($article['stick']){
print <<<EOT
-->[置顶] <!--
EOT;
}
 
 

$article['stick'] 这个变量是置顶变量,如果其值不为0,表示条件成立,它来判断是否置顶被选择.

print <<<EOT
--><a href="http://www.bpsky.net/action.html=show&amp;id=$article[articleid]">$article[title]</a></div>
<div class="postdate">Submitted by <a href="http://www.bpsky.net/action.html=showuser&amp;id=$article[authorid]">$article[author]</a> on $article[dateline]</div>
<div class="content">$article[content]
<!--
EOT;
if (!empty($article['description'])) {print <<<EOT
-->
<p><a href="http://www.bpsky.net/action.html=show&amp;id=$article[articleid]">阅读全文</a></p>
<!--
EOT;
}print <<<EOT
--></div>
<!--
EOT;

!empty($article['description']判断:如果文章不包函文章描述时,条件成立!,也就是说,当文章不包描述时也列显“阅读全文”开关。如果包涵描述而不会显示阅读全文开关。
PS:sablog里有一个潜规则,就是当采用描述作为文章概文时,说明文章本身内容过大,不易于首显。

if ($options['attachments_display'] == 0) {
if ($article['image']) {
foreach ($article['image'] as $image) {
if($image[6]){print <<<EOT
--><div class="attach">图片附件(缩略图):<br /><a href="./attachment.php?id=$image[0]" target="_blank"><img src="$image[1]" border="0" alt="大小: $image[2]&#13;尺寸: $image[3] x $image[4]&#13;浏览: $image[5] 次&#13;点击打开新窗口浏览全图" width="$image[3]" height="$image[4]" /></a></div>
<!--
EOT;
} else {print <<<EOT
--><div class="attach">图片附件:<br /><a href="./attachment.php?id=$image[0]" target="_blank"><img src="$image[1]" border="0" alt="大小: $image[2]&#13;尺寸: $image[3] x $image[4]&#13;浏览: $image[5] 次&#13;点击打开新窗口浏览全图" width="$image[3]" height="$image[4]" /></a></div>
<!--
EOT;
}}}

$options['attachments_display']估计是控制直显方式的图片。

$article['image']这个变量很有趣。在index.php中,对混排方式处理过后的余图片附件总数!也就是说,如果混排图片中还有余下的图片,则以附件方式列显。 

if($article[file]){
foreach($article[file] as $file){
if($file){print <<<EOT
--><div class="attach"><b>附件: </b><a href="attachment.php?id=$file[0]" target="_blank">$file[1]</a> ($file[2], 下载次数:$file[3])</div>
<!--
EOT;

非图附件依次列出。
 
}}}} elseif ($options['attachments_display'] == 1) {
$imagenum = count($article['image']);
$filenum = count($article['file']);
$attachnum = $filenum+$imagenum;
if ($attachnum != 0) {
print <<<EOT
--><div class="attach"><div class="attach-desc">本文有${attachnum}个附件 (图片:$imagenum, 文件:$filenum)</div></div>
<!--
EOT;
}}

如果在设置中图片以文件模式提供的,那么这段代码将有效。
 
if (!empty($article['keywords'])) {
print <<<EOT
--><div class="tags"><b>Tags</b>: $article[alltags]</div>
<!--
EOT;
}

标签的处理:

$cname = urlencode($article[cname]);

$cname就是分类信息,而对其进行了urlencode加密,是为了方便中文以get方式传输。
 
print <<<EOT
--><div class="postmetadata"><a href="http://www.bpsky.net/cid.html=$article[cid]&amp;cname=$cname">$article[cname]</a> | <a href="http://www.bpsky.net/action.html=show&amp;id=$article[articleid]#comment">评论</a>:<font color="#CC0000">$article[comments]</font> | <a href="http://www.bpsky.net/action.html=show&amp;id=$article[articleid]#trackbacks">Trackbacks</a>:<font color="#CC0000">$article[trackbacks]</font> | <a href="http://www.bpsky.net/action.html=show&amp;id=$article[articleid]">阅读</a>:<font color="#CC0000">$article[views]</font></div>
</div>
<!--
EOT;

文章状态信息:
 
print <<<EOT
-->
$multipage
<!--
EOT;

$multipage是sablog封装好的"分页条"变量:
 
} else {print <<<EOT
-->
<p><strong>没有任何文章</strong></p>
<!--
EOT;
}
?>

(教程来自bpsky.net)
Trackbacks: 点击获得Trackback地址,Encode: UTF-8  点击获得Trackback地址,Encode: GB2312 or GBK  点击获得Trackback地址,Encode: BIG5
Tags: sablog | 分类:PHP技术
浏览概况:评论:3 | 阅读:8999
文章评论(3)
[1楼] [引用] [TOP]
陌路阑珊 发表于 2008, September 15, 3:10 PM
感觉还是wp主题多,有点想叛变了
[2楼] [引用] [TOP]
Copterfly 发表于 2008, September 15, 4:39 PM
我也有点想换,不过,模板不是很重要了,自己有空改改也行。今天给加了幅banner,有点不伦不类的样子,呵呵。
[3楼] [引用] [TOP]
qvod 发表于 2009, April 19, 4:33 PM
sablog1.6还是不错的 除了风格少点 但是用的人多了 风格也会多的
发表评论
用户名:
密码(游客无需):
网址/E-mail:
      记住我的信息