## 文章列表
文章列表的應用場景對于一個站點來講是必不可少的,主要包括以下一種場景。
* 指定數量的文章列表,用于首頁等調用
* 帶分頁的文章列表,用于文章列表頁使用
* 圖文混排的列表頁面
## 標簽庫的加載
由于CMF5在設計過程中采用了前端portal完全獨立,所以在文章列表中使用的標簽需要單獨來進行引用才能使用。
加載標簽庫代碼如下,一般建議在head里引用,一次引用就都能用了,當然如果你想每個頁面單獨引用或者寫在前端Portal的配置文件里也是可以的。
~~~
<taglib name="app\portal\taglib\Portal"/>
~~~
## articles標簽
| 標簽名 | 作用 | 包含屬性 |
| --- | --- | --- |
| articles | 獲取文章列表 | field,where,limit,order,page,relation,pageVarName,categoryIds,item |
標簽屬性:
| 標簽屬性名 | 含義 |
| --- | --- |
| where | 查詢條件變量, 支持數組和字符串,如`$where` |
| limit | 最多查出文章數,如果分頁開啟,此設置無效 |
| order | 文章排序方式 |
| page | 分頁參數,如果設置分頁參數會自動分頁 |
| relation | 關聯查詢,支持`categories`和`user`,多個以英文逗號分隔 |
| pageVarName | 分頁后生成的分頁變量名,只有設置分頁參數時才有效 |
| categoryIds | 分類 id,支持數組和字符串(英文逗號分開)|
## 生成文章列表
### 一個最新文章列表,不分頁
```
<portal:articles limit="5" order="post.published_time DESC"
categoryIds="$widget.vars.last_articles_category_id">
<dl class="dl-horizontal">
<dt>
<a class="img-wraper"
href="{:url('portal/article/index',array('id'=>$vo.id,'cid'=>$vo.category_id))}">
<if condition="empty($vo.more.thumbnail)">
<img src="__TMPL__/public/assets/images/default_tupian4.png"
class="img-responsive" alt="{$vo.post_title}"/>
<else/>
<img src="__TMPL__/public/assets/images/default_tupian4.png"
class="img-responsive" alt="{$vo.post_title}"/>
</if>
</a>
</dt>
<dd>
<a href="{:url('portal/article/index',array('id'=>$vo['id'],'cid'=>$vo.category_id))}">{$vo.post_title}</a>
</dd>
</dl>
</portal:articles>
```
### 一個文章列表,分頁
```html
<div>
<php>
$where=[
'post.create_time'=>['egt',0]
];
</php>
<portal:articles item="vo" field="" where="$where" order="post.published_time DESC" page="10"
relation="categories"
categoryIds="$category.id"
returnVarName="articles_data">
<div class="list-boxes">
<h2><a href="{:url('article/index',array('id'=>$vo['id'],'cid'=>$category['id']))}">{$vo.post_title}</a>
</h2>
<p>{$vo.post_excerpt}</p>
<div>
<div class="pull-left">
<div class="list-actions">
<a href="javascript:;"><i class="fa fa-eye"></i><span>{$vo.post_hits}</span></a>
<a href="{:url('article/doLike',array('id'=>$vo['id']))}"
class="js-count-btn"><i class="fa fa-thumbs-up"></i><span class="count">{$vo.post_like}</span></a>
<a href="{:url('user/favorite/add',array('id'=>$vo['id']))}"
class="js-favorite-btn" data-title="{$vo.post_title}"
data-url="{:url('portal/article/index',array('id'=>$vo['id'],'cid'=>$category['id']))}"
>
<i class="fa fa-star-o"></i>
</a>
</div>
</div>
<a class="btn btn-warning btn-sm pull-right"
href="{:url('article/index',array('id'=>$vo['id'],'cid'=>$category['id']))}">查看更多</a>
</div>
</div>
</portal:articles>
</div>
<ul class="pagination">
<page/>
</ul>
```
其中顯示字段( field="" )建議按需填寫,CMF默認是空,即顯示所有字段數據。CMF中,articles標簽默認調用3個表數據,分別為post表,category_post表,user表。默認獲取的字段為post.*,user.user_login,user.user_nickname,user.user_email,category_post.category_id這幾個,如果你需要其他的字段,則需要加上表名,如排序字段則需要category_post.list_order
比如你的列表只要顯示標題和日期,那么只需要寫成
~~~
field="post.id,post.post_title,post.published_time"
~~~
常用列表數據有
~~~
{$vo.id} //文章ID號
{$vo.user_id} //文章作者ID
{$vo.user_nickname} //文章作者昵稱
{$vo.user_login} //文章作者用戶名
{$vo.is_top} //是否置頂,0未置頂,1置頂
{$vo.post_status} //文章狀態,0未發布,1發布
{$vo.recommended} //是否推薦,0未推薦,1推薦
{$vo.post_hits} //文章訪問量
{$vo.post_like} //文章點贊量
{$vo.create_time} //文章創建時間
{$vo.update_time} //文章更新時間
{$vo.published_time} //文章發布時間
{$vo.published_time} //文章發布時間
{$vo.post_title} //文章標題
{$vo.post_keywords} //文章關鍵詞
{$vo.post_excerpt} //文章簡短描述
{$vo.post_source} //文章來源
{$vo.post_content} //文章詳細內容
{$vo['more']['thumbnail']} //文章縮略圖
{$vo['more']['photos']} //相冊圖集
{$vo['more']['files']} //文章附件
~~~
>所有日期均要使用{:date('Y-m-d H:i',$vo.published_time)}這種方式來獲取。數據庫默認存的是int型時間戳。
- 序言
- 最新更新
- 準備工作
- 程序安裝
- 常見問題
- 驗證碼失效
- redis報錯
- 郵件發送
- 項目部署
- 全局配置
- 虛擬主機配置
- 數據庫配置
- 模板管理
- 前端開發
- 模板文件配置
- 模板變量
- 模板變量類型
- 模板變量數據源
- 模板控件
- 導航制作
- 導航標簽
- 子導航標簽
- 幻燈片制作
- 文章列表
- 非標簽方式
- 模板配置文件配置列表
- 面包屑
- 友情鏈接
- 獲取縮略圖
- 獲取組圖
- 獲取附件
- 全局變量
- 公共頁面制作流程
- 首頁制作流程
- 頂部導航
- 首頁幻燈片
- 關于
- 服務
- 產品
- 新聞
- 底部導航
- 底部版權
- 返回頂部
- 在線客服
- 單頁制作流程
- 單頁模板制作
- 欄目頁制作流程
- 文章列表欄目頁
- 圖文列表欄目頁
- 圖片列表欄目頁
- 指定分類欄目頁
- 右側欄目列表
- 詳細頁制作流程
- 詳細頁模板制作
- 功能開發
- 開發功能列表
- 原功能修改
- 函數擴展
- 獲取當前和子欄目ID
- 功能擴展
- 表單功能
- 固定字段表單
- 表單的提交
- 表單的刪除
- 表單HTML模板
- JSON數據表單
- 前臺文章發布
- Ueditor的配置
- 后臺擴展編輯器
- 會員擴展
- QQ互聯實現
- 插件開發
- 后臺登錄插件
- 創建目錄及配置文件
- 創建插件控制器
- 創建插件展現模板
- 留言板插件
- 創建目錄及配置文件
- 創建插件控制器
- 創建數據庫
- 表單字段過濾
- 前臺控制器實現
- 前臺頁面實現
- 后臺控制器實現
- 后臺頁面實現
- 留言板多語言
- 留言板插件下載
- 多語言獨立模板切換插件
- 創建目錄及配置文件
- 插件控制器實現
- 多語言切換插件下載
- 產品相冊展示插件
- 插件控制器實現
- 前端模板實現
- 產品展示插件下載
- 擴展后的系統升級
- 應用開發
- 自定義函數
- 自定義標簽
- 新增應用
- 創建數據庫表
- 創建應用目錄
- 模型初始化
- 后臺菜單入口
- 后臺項目分類頁實現
- 分類頁控制器
- 分類頁模板
- 分類的添加
- 驗證器規則實現
- 模型中寫數據庫實現
- 分類的修改
- 分類的刪除
- 后臺項目首頁實現
- 列表頁控制器
- 列表頁模板
- 項目的添加
- 項目添加驗證器
- 模型中寫數據庫實現
- 標簽的添加
- 項目的編輯
- 項目的刪除
- 應用模板
- 源碼下載
- 其他相關
- CMF5.1采用Redis緩存
- 啟用redis
- redis緩存實例