当前页可用变量有`$category`,`$article`,`$prev_article`,`$next_article`,这三个变量都是模型对象,取值时可以直接把它当成数组用。
## 输出`$category`内部的值
`$category`代表当前文章分类
```
{$category.id} <!--输出分类 id-->
{$category.parent_id} <!--输出分类父级分类 id-->
{$category.name} <!--输出分类名称-->
{$category.description} <!--输出分类描述-->
{$category.seo_title} <!--输出分类seo标题-->
{$category.seo_keywords} <!--输出分类 seo 关键字-->
{$category.seo_description} <!--输出分类 seo 描述-->
```
以上的值也可以当成 php 变量直接输出,这里只演示一下怎么输出 id 属性
```
<php>
echo $category['id']; /*输出分类 id*/
</php>
```
## 输出`$article`内部的值
`$article`代表当前文章
```
{$article.id} <!--输出文章id-->
{$article.is_top} <!--输出文章置顶状态,1:置顶;0:不置顶-->
{$article.recommended} <!--输出文章推荐状态,1:推荐;0:不推荐-->
{$article.post_hits} <!--输出文章查看数-->
{$article.post_like} <!--输出文章点选数-->
{$article.comment_count} <!--输出文章评论数-->
{$article.create_time} <!--输出文章创建时间-->
{$article.update_time} <!--输出文章更新时间-->
{$article.published_time} <!--输出文章发布时间-->
{$article.post_title} <!--输出文章标题-->
{$article.post_keywords} <!--输出文章关键字,以英文逗号隔开-->
{$article.post_excerpt} <!--输出文章摘要-->
{$article.post_content} <!--输出文章内容-->
```
以上的值也可以当成 php 变量直接输出,这里只演示一下怎么输出 id 属性
```
<php>
echo $article['id']; /*输出分类 id*/
</php>
```
`$prev_article`代表前上一篇文章,属性列表和`$article`一样,这里就不在举例
`$next_article`代表前下一篇文章,属性列表和`$article`一样,这里就不在举例
## 调用文件缩略图
```
<notempty name="article.more.thumbnail">
<img src=" {:cmf_get_image_url($article.more.thumbnail)}"/>
</notempty>
```
## 调用文章的相册
```
<!--调用文章的相册-->
<notempty name="article.more.photos">
<foreach name="article.more.photos" item="photo">
<img src=" {:cmf_get_image_url($photo.url)}" alt={$photo.name}/>
</foreach>
</notempty>
```
## 调用文章的附件
```
<!--调用文章的附件-->
<notempty name="article.more.files">
<foreach name="article.more.files" item="file">
<a href="{:cmf_get_file_download_url($file.url)}" title={$file.name}>下载文件</a>
</foreach>
</notempty>
```
## 文章 SEO
```
<head>
<title>{$article.post_title}</title>
<meta name="keywords" content="{$site_info.site_seo_keywords|default=''}"/>
<meta name="description" content="{$site_info.site_seo_description|default=''}">
<!--省略...-->
</head>
```
## 创建文章页模板
在`public/themes/quick_start/portal`目录下创建`article.html`文件,内容如下:
```
<!DOCTYPE html>
<html>
<head>
<title>{$article.post_title}</title>
<meta name="keywords" content="{$site_info.site_seo_keywords|default=''}"/>
<meta name="description" content="{$site_info.site_seo_description|default=''}">
<include file="public@head"/>
<style>
#article_content img {
height: auto !important;
max-width: 100%;
}
#article_content {
word-wrap: break-word;
}
</style>
</head>
<body class="body-white">
<include file="public@nav"/>
<div class="container">
<div class="row">
<div class="col-md-9">
<div class="tc-box article-box">
<h2>{$article.post_title}</h2>
<div class="article-infobox">
<span>{:date('Y-m-d H:i',$article.published_time)} by {$article.user.user_nickname}</span>
<span>
<a href="javascript:;"><i class="fa fa-eye"></i><span>{$article.post_hits}</span></a>
<a href="{:url('portal/Article/doLike',array('id'=>$article['id']))}" class="js-count-btn"><i
class="fa fa-thumbs-up"></i><span class="count">{$article.post_like}</span></a>
<a href="{:url('user/favorite/add')}"
class="js-favorite-btn"
data-title="{:base64_encode($article.post_title)}"
data-url="{:cmf_url_encode('portal/Article/index',array('id'=>$article['id']))}"
data-table="portal_post"
data-id="{$article['id']}"
>
<i class="fa fa-star-o"></i>
</a>
</span>
</div>
<hr>
<div id="article_content">
{$article.post_content}
</div>
</div>
</div>
<div class="col-md-3">
</div>
</div>
</div>
<include file="public@footer"/>
<include file="public@scripts"/>
</body>
</html>
```
## 添加模板配置文件
在`public/themes/quick_start/portal`目录下创建`article.json`文件,内容如下:
```
{
"name": "文章页",
"action": "portal/Article/index",
"description": "文章页模板文件",
"order": 10.0,
"more": {
"vars": {
}
}
}
```
## 更新模板
至此门户文章页模板制作完成。