之前我们学习了index.php的代码,它在文章列表调用时使用了一段 foreach
的逻辑判断,调出了两种不同模板:post-muli.php和post-istop.php。我们先回来看看index.php文章中那段代码:
{foreach $articles as $article} {if $article.IsTop} {template:post-istop} {else} {template:post-multi} {/if}{/foreach}
逻辑很简单,当文章列表里面有内容的时候调出。如果文章置顶了,那么就使用post-istop.php的模板,否则就使用普通的post-multi.php模板。
post-multi.php模板:
如果文章列表(index)是一个书架,那么post-multi就是一本本的书。虽然他们有着不同的名字、作者、出版时间和中心内容等,但他们都有这些元素。我们要为每本书制作一个标签,但做到最后我们会发现其实他们的格式是相似的。
post-multi就是一个格式模板,它将文章的名字、作者、发布时间等内容提取出来组合成一个小窗口(div)。然后再按1、2、3、4的顺序展示出来。我们在文章列表页面看到的那么多相似的格式就是通过multi模板和foreach
循环来做的:
明白了这个道理我们来看看代码吧:
<div> <p>{$article.Time('Y年m月d日')}<p> <p><a href="{$article.Url}">{$article.Title}</a><p> <p>{$article.Intro}</p> <p> 作者:{$article.Author.StaticName} 分类:{$article.Category.Name} 浏览:{$article.ViewNums} 评论:{$article.CommNums} </p></div>
这里我们只做了一个简单的div输出,将一些我们可以调用的东西按顺序输出出来而已:
{$article.Time('Y年m月d日')}:输出了文章的时间,例如2016年3月6日;
{$article.Url}:文章的URL;
{$article.Title}:文章的标题;
{$article.Intro}:文章的摘要;
{$article.Author.StaticName}:文章的作者,有别名用别名;
{$article.Category.Name}:文章归属的分类;
{$article.ViewNums}:文章浏览次数;
{$article.CommNums}:文章评论数。
更多详细的你可以参考:模板标签
post-istop.php模板:
有时候,我们为了凸显“置顶"的文章会使用不同的模板,post-istop.php模板就是做这个用的。它的格式和编写方式基本和post-multi一致,输出东西和顺序上大家自行调整下即可。
文章不错,楼主辛苦了!