# 门户应用模板开发 [TOC=2,3] ## 门户首页 模板文件对应的是`模板目录/portal/index.html`,这个页面没有被控制器 assign任何变量,模板开发者完全可以用 `portal:articles`等其它模板标签制作此页面 ## 文章列表 ### 默认模板文件(可以增加更多) 默认模板文件对应的是`模板目录/portal/list.html` ### 控制器 assign 过的变量 `$category`这个变量是就是一个文章分类对象,可以当成数组直接用 ``` {$category.name} 分类名 {$category.id} 分类 id ... 更多变量请查看数据库 portal_category 表 ``` ## 文章内页 ### 默认模板文件(可以增加更多) 模板文件对应的是`模板目录/portal/article.html` ### 控制器 assign 过的变量 `$article`这个变量是就是一个文章对象,可以当成数组直接用 ``` {$article.post_title} 文章标题 {$article.id} 文章 id ... 更多变量请查看数据库portal_post表 <!--调用文章的扩展属性--> {$article.more.thumbnail|default=''} <empty name="article.more.thumbnail"> 没有设置文章缩略图 <else/> <img src=" {:cmf_get_image_url($article.more.thumbnail)}"/> </empty> <!--调用文章的相册--> <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 src=" {:cmf_get_file_download_url($file.url)}" title={$file.name}>下载文件</a> </foreach> </notempty> ``` `$category`这个变量是就是一个文章分类对象,可以当成数组直接用,但这个变量在 文章链接的 `cid`参数没有时是不会存在的,所以在用这个变量之前要先判断他时否存在 ``` {$category.name} 分类名 {$category.id} 分类 id ... 更多变量请查看数据库 ``` `$prev_article` 上一篇文章的变量,变量属性和文章的一样 `$next_article` 下一篇文章的变量,变量属性和文章的一样 ## 页面 ### 默认模板文件(可以增加更多) 模板文件对应的是`模板目录/portal/page.html` ### 控制器 assign 过的变量 `$page`这个变量是就是一个文章对象,可以当成数组直接用 ``` {$page.post_title} 页面标题 {$page.id} 页面 id ... 更多变量请查看数据库portal_post表 <!--调用页面的扩展属性--> {$page.more.thumbnail|default=''} <empty name="page.more.thumbnail"> 没有设置页面缩略图 <else/> <img src=" {:cmf_get_image_url($page.more.thumbnail)}"/> </empty> ``` ## 搜索页 ### 模板文件 模板文件对应的是`模板目录/portal/search.html` ### 控制器 assign 过的变量 `$keyword`这个变量是搜索关键字,模板开发可以利用这个关键字做为取文章列表条件结合`portal:articles`标签获取文章列表 ## 标签页 > 5.0.180123新增 模板文件对应的是`模板目录/portal/tag.html` ### 控制器 assign 过的变量 `$tag`这个变量是标签对象 ``` {$tag.name} 标签名 ... 更多变量请查看数据库 portal_category 表 ``` ## 视频讲解 http://dwz.cn/7HLQXA