内容列表
网站分普通内容和商品两种
这里的内容列表即指普通内容列表,比如新闻列表、产品列表、案例列表、下载列表、视频列表、博客列表等等
内容有以下通用字段可调用(可以在列表中输出这些字段)
字段 | 说明 | 其他说明 |
---|---|---|
cid | 内容id | |
cate_id | 所属栏目id | |
sequence | 排序号 | 相同栏目内容之间的排序 |
title | 标题 | 纯标题,不显示标题的颜色和粗细 |
font_color | 标题颜色 | |
font_weight | 标题粗细 | |
ctitle | 标题 | 已经把标题颜色和粗细封装进去处理后的标题,可显示标题的颜色和粗细 |
link | 链接 | 标题链接,内容链接 |
subtitle | 副标题 | |
root_id | 所属一级栏目id | |
rootpath | 所属一级栏目URL路径 | |
urlpath | URL路径 | |
url | 跳转链接 | 即跳转到其他网址 |
views | 浏览量/阅读量 | |
post_time | 发布时间 | |
update_time | 更新时间 | |
summary | 内容摘要 | |
recommend | 是否推荐 | 值为0表示不推荐,值为1表示推荐 |
内容详细字段(一般只用于内容详细页显示,不能在列表中输出这4个字段)
字段 | 说明 | 其他说明 |
---|---|---|
seo_title | 内容SEO标题 | |
keywords | 内容SEO关键词 | |
description | 内容SEO描述 | |
content | 内容详细 | |
mob_content | 手机端内容详细 |
新闻栏目页按栏目id调用内容列表
{content top="2000" cate_id="{$cate:cate_id}" model="news"} [content:count] {content:loop} [content:title] [content:link] [content:summary] {/content:loop} {/content}
{$cate:cate_id}为当前栏目页的栏目id
其中cate_id可以直接指定栏目id
如cate_id="16"即是调用栏目id为16(公司动态)下的所有内容,如cate_id="16,17"即是调用多个栏目(公司动态、行业资讯)的内容!
完成写法为:
{content top="2000" cate_id="2" model="news"} (注意:加上 model="news" 表示可以调用news模型(新闻模型)的字段内容,没有则表示不能调用模型字段内容)
{content top="2000" cate_id="16,17" model="news"}
{content top="2000" cate_id="2,3,4"} (注意:因为 新闻资讯、产品中心、案例展示 栏目属于不同的内容模型,所以不能再用 model="news")
调用产品模型推荐位id为2的第一个产品
{content top="1" position_id="2" model="product"} {content:loop} [content:title] 标题 [content:link] 链接 [content:thumbnail] 缩略图 [content:images] 组图 [content:summary] 摘要 {/content:loop} {/content}
栏目页下调用产品模型推荐位id为2的属于此栏目的前10个产品(按最新产品的顺序)
{content top="10" cate_id="{$cate:cate_id}" position_id="2" model="product" orderby="a.cid desc"} [content:count] 输出数据量(条) {content:loop} [content:title] 标题 [content:link] 链接 [content:thumbnail] 缩略图 [content:images] 组图 [content:summary] 摘要 {/content:loop} {/content}
model="product"表示可以调用产品模型的字段内容,如 thumbnail、images 都是产品模型里的字段
orderby="a.cid desc"表示按cid(内容id)从最大到最小排序,即从最新的排序 等同于 orderby="post_time desc"
orderby="views desc"表示按浏览量(阅读量)从最多到最少排序
直接写sql语句调用内容数据
{content sql="SELECT top 20 * FROM [db_content] a INNER JOIN db_content_news ON a.cid=db_content_news.cid and db_content_news.author='DX.Lin' WHERE a.status=0 ORDER BY a.sequence"} {content:loop} [content:title] 标题(不显示标题的颜色和粗细) [content:ctitle] 标题(可显示标题的颜色和粗细) [content:link] 链接 [content:summary] 摘要 {/content:loop} {/content}
说明:
db_content_news 是新闻的模型表
author 是新闻模型表的作者字段,因为sql是用 INNER JOIN 链表查询方式,所以sql语句中要写成 db_content_news.author
上面这段语句的意思是:按sequence排序输出作者为DX.Lin的前20条新闻
如果要把这段语句放在新闻详细页,并按新闻作者输出此作者的前20条新闻,则把DX.Lin换成{$content:author}即可,如下代码{content sql="SELECT top 20 * FROM [db_content] a INNER JOIN db_content_news ON a.cid=db_content_news.cid and db_content_news.author='{$content:author}' WHERE a.status=0 ORDER BY a.sequence"} {content:loop} [content:title] 标题(不显示标题的颜色和粗细) [content:ctitle] 标题(可显示标题的颜色和粗细) [content:link] 链接 [content:summary] 摘要 {/content:loop} {/content}
直接写sql语句注意事项
数据表前缀用db_表示,内容表用content表示,比如数据库中真实的内容表名是ow_content1或ow_content2或ow_content3,但在sql语句中都应该写成db_content
因为在标签解析的时候系统自动会把db_content解析成对应的真实内容表(ow_content1 、ow_content2、ow_content3)
db_content_news 则解析成真实的内容模型表(ow_content1_new 、 ow_content2_new 、 ow_content3_new)
调用新闻模型表里缩略图字段不为空的内容,并按时间最新的排序(最新的10条)
{content sql="SELECT top 6 * FROM [db_content] a INNER JOIN db_content_news ON (a.cid=db_content_news.cid) WHERE db_content_news.thumbnail<>'' AND a.status=0 ORDER BY a.cid DESC"} {content:loop} [content:title] 标题(不显示标题的颜色和粗细) [content:ctitle] 标题(可显示标题的颜色和粗细) [content:link] 链接 [content:summary] 摘要 [content:thumbnail] 缩略图 {/content:loop} {/content}