说明:用于获取文档常规列表、相关文档列表、文档分页列表
使用方法:{% archiveList 变量名称 with categoryId="1" order="id desc|views desc" type="page|list" q="搜索关键词" %}
如将变量定义为 archives {% archiveList archives with type="page" %}...{% endarchiveList %}
moduleId
moduleId
可以获取指定文档模型的文档列表如 moduleId="1"
获取文章模型的文档列表。categoryId
categoryId
可以获取指定分类的文档列表如 categoryId="1"
获取文档分类ID为1的文档列表。如果未指定
categoryId
它会尝试读取当前页面分类的分类ID,因此如果希望它不自动读取当前分类ID,则可以通过categoryId="0"
来指定不自动读取。
flag
flag
支持的属性值有 头条[h]、推荐[c]、幻灯[f]、特荐[a]、滚动[s]、加粗[h]、图片[p]、跳转[j]。如要显示flag属性为推荐的,则标签为 flag="c"
child
child
支持的属性值有 false|true
,默认 true。如只想显示属于当前分类的文档,而不包括子分类的文档,则需指定 child=false
order
order
可以指定文档显示的排序规则,支持依据 最新文档排序 order="id desc"
、浏览量最多文档排序 order="views desc"
、按后台自定义排序 order="sort desc"
,默认按照自定义排序,可以不用填。limit
limit
可以指定显示数量,按多少数量来分页,比如limit="10"
则只会显示10条,limit
在不是分页列表的时候,支持offset
模式,也就是 ,
分隔模式,如想从第2条开始,获取10条数据,可以设置成 limit="2,10"
。type
type
支持按 page、list、related 方式列出。默认值为list,type="list"
时,只会显示 指定的 limit 指定的数量,如果type="page"
后续可用 pagination
来组织分页显示 {% pagination pages with show="5" %}
。q
q
仅在列表类型 type="page"
时生效,可以指定搜索内容,如果需要搜索内容,可以通过参数q
来展示指定包含关键词的标题搜索内容如 q="seo"
呈现结果将只显示标题包含seo
关键词的列表。也可以不指定,如果url中存在 q=关键词
的 query参数,则在分页列表中会自动读取 q
关键词内容并用于搜索。自定义
type="page"
时生效,筛选参数仅需要放到url的query参数上。在文档额外自动配置中,配置了可筛选的字段,可以通过将这些字段附加到url的query参数上,来完成对文档进行参数是筛选。如你的文档中设置了筛选自动为sex,默认值有 男,女,保密
,则你可以通过url的query参数sex=男
来搜索文档sex字段是男的文档内容。siteId
siteId
一般不需要填写,如果你使用后台的多站点管理创建了多个站点,并且想调用其他站点的数据,则可以通过指定 siteId
来实现调用指定站点的数据。archives 是一个数组对象,因此需要使用 for
循环来输出
Id
Title
Link
Keywords
Description
CategoryId
Views
Images
Logo
Thumb
CommentCount
CreatedTime
时间戳,需要使用格式化时间戳为日期格式 {{stampToDate(item.CreatedTime, "2006-01-02")}}
UpdatedTime
时间戳,需要使用格式化时间戳为日期格式 {{stampToDate(item.UpdatedTime, "2006-01-02 15:04:05")}}
{# list 列表展示 #} <div> {% archiveList archives with type="list" limit="10" %} {% for item in archives %} <li>
{# 如需判断当前是否是循环中的第一条,可以这么写: #} {% if forloop.Counter == 1 %}这是第一条{% endif %} {# 比如需要给第一条添加额外class="active",可以这么写: #} <a class="{% if forloop.Counter == 1 %}active{% endif %}" href="{{item.Link}}">{{item.Title}}</a> <span>当前第{{ forloop.Counter }}篇,剩余{{ forloop.Revcounter}}篇</span> <span>文档ID:{{item.Id}}</span> <span>文档标题:{{item.Title}}</span> <span>文档链接:{{item.Link}}</span> <span>文档关键词:{{item.Keywords}}</span> <span>文档描述:{{item.Description}}</span> <span>文档分类ID:{{item.CategoryId}}</span> <span>文档浏览量:{{item.Views}}</span> <span>文档发布日期:{{stampToDate(item.CreatedTime, "2006-01-02")}}</span> <span>文档发布月日:{{stampToDate(item.CreatedTime, "01-02")}}</span> <span>文档发布时间:{{stampToDate(item.CreatedTime, "15:04:05")}}</span> <span>文档发布时分:{{stampToDate(item.CreatedTime, "15:04")}}</span> <span>文档发布日期时间:{{stampToDate(item.CreatedTime, "2006-01-02 15:04:05")}}</span> <div>封面首图<img src="{{item.Logo}}" alt="{{item.Title}}" /></div> <div>封面缩略图<img src="{{item.Thumb}}" alt="{{item.Title}}" /></div> 封面组图图片 <ul> {% for inner in item.Images %} <li> <img src="{{inner}}" alt="{{item.Title}}" /> </li> {% endfor %} </ul> 文档标签: {% tagList tags with itemId=item.Id limit="10" %} {% for item in tags %} <a href="{{item.Link}}">{{item.Title}}</a> {% endfor %} {% endtagList %} 文档额外字段 {% archiveParams params with id=item.Id %} <div> {% for item in params %} <div> <span>{{item.Name}}:</span> <span>{{item.Value}}</span> </div> {% endfor %} </div> {% endarchiveParams %} </li> {% empty %} <li> 该列表没有任何内容 </li> {% endfor %} {% endarchiveList %} </div>
{# list 列表展示 #}
<div>
{% archiveList archives with type="list" categoryId="1" limit="10" %}
{% for item in archives %}
<li>
<a href="{{item.Link}}">
<h5>{{item.Title}}</h5>
<div>{{item.Description}}</div>
<div>
<span>{% categoryDetail with name="Title" id=item.CategoryId %}</span>
<span>{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
<span>{{item.Views}} 阅读</span>
</div>
</a>
{% if item.Thumb %}
<a href="{{item.Link}}">
<img alt="{{item.Title}}" src="{{item.Thumb}}">
</a>
{% endif %}
</li>
{% empty %}
<li>
该列表没有任何内容
</li>
{% endfor %}
{% endarchiveList %}
</div>
{# related 相关文档列表展示 #}
<div>
{% archiveList archives with type="related" limit="10" %}
{% for item in archives %}
<li>
<a href="{{item.Link}}">
<h5>{{item.Title}}</h5>
<div>{{item.Description}}</div>
<div>
<span>{% categoryDetail with name="Title" id=item.CategoryId %}</span>
<span>{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
<span>{{item.Views}} 阅读</span>
</div>
</a>
{% if item.Thumb %}
<a href="{{item.Link}}">
<img alt="{{item.Title}}" src="{{item.Thumb}}">
</a>
{% endif %}
</li>
{% empty %}
<li>
该列表没有任何内容
</li>
{% endfor %}
{% endarchiveList %}
</div>
{# page 分页列表展示 #}
<div>
{% archiveList archives with type="page" limit="10" %}
{% for item in archives %}
<li>
<a href="{{item.Link}}">
<h5>{{item.Title}}</h5>
<div>{{item.Description}}</div>
<div>
<span>{% categoryDetail with name="Title" id=item.CategoryId %}</span>
<span>{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
<span>{{item.Views}} 阅读</span>
</div>
</a>
{% if item.Thumb %}
<a href="{{item.Link}}">
<img alt="{{item.Title}}" src="{{item.Thumb}}">
</a>
{% endif %}
</li>
{% empty %}
<li>
该列表没有任何内容
</li>
{% endfor %}
{% endarchiveList %}
{# 分页代码 #}
<div >
{% pagination pages with show="5" %}
{# 首页 #}
<a class="{% if pages.FirstPage.IsCurrent %}active{% endif %}" href="{{pages.FirstPage.Link}}">{{pages.FirstPage.Name}}</a>
{# 上一页 #}
{% if pages.PrevPage %}
<a href="{{pages.PrevPage.Link}}">{{pages.PrevPage.Name}}</a>
{% endif %}
{# 中间多页 #}
{% for item in pages.Pages %}
<a class="{% if item.IsCurrent %}active{% endif %}" href="{{item.Link}}">{{item.Name}}</a>
{% endfor %}
{# 下一页 #}
{% if pages.NextPage %}
<a href="{{pages.NextPage.Link}}">{{pages.NextPage.Name}}</a>
{% endif %}
{# 尾页 #}
<a class="{% if pages.LastPage.IsCurrent %}active{% endif %}" href="{{pages.LastPage.Link}}">{{pages.LastPage.Name}}</a>
{% endpagination %}
</div>
</div>
搜索接收默认路径为: /search
搜索表单示例代码:
<form method="get" action="/search">
<div>
<input type="text" name="q" placeholder="请输入搜索关键词" value="{{urlParams.q}}">
<button type="submit">搜索</button>
</div>
</form>
注意:这里的 q 可以不指定,而是通过浏览器的url的query参数来动态获取 如:https://www.kandaoni.com/search?q=seo
{# page 搜索指定关键词分页列表展示 #}
<div>
{% archiveList archives with type="page" q="seo" limit="10" %}
{% for item in archives %}
<li>
<a href="{{item.Link}}">
<h5>{{item.Title}}</h5>
<div>{{item.Description}}</div>
<div>
<span>{% categoryDetail with name="Title" id=item.CategoryId %}</span>
<span>{{stampToDate(item.CreatedTime, "2006-01-02")}}</span>
<span>{{item.Views}} 阅读</span>
</div>
</a>
{% if item.Thumb %}
<a href="{{item.Link}}">
<img alt="{{item.Title}}" src="{{item.Thumb}}">
</a>
{% endif %}
</li>
{% empty %}
<li>
该列表没有任何内容
</li>
{% endfor %}
{% endarchiveList %}
{# 分页代码 #}
<div>
{% pagination pages with show="5" %}
{# 首页 #}
<a class="{% if pages.FirstPage.IsCurrent %}active{% endif %}" href="{{pages.FirstPage.Link}}">{{pages.FirstPage.Name}}</a>
{# 上一页 #}
{% if pages.PrevPage %}
<a href="{{pages.PrevPage.Link}}">{{pages.PrevPage.Name}}</a>
{% endif %}
{# 中间多页 #}
{% for item in pages.Pages %}
<a class="{% if item.IsCurrent %}active{% endif %}" href="{{item.Link}}">{{item.Name}}</a>
{% endfor %}
{# 下一页 #}
{% if pages.NextPage %}
<a href="{{pages.NextPage.Link}}">{{pages.NextPage.Name}}</a>
{% endif %}
{# 尾页 #}
<a class="{% if pages.LastPage.IsCurrent %}active{% endif %}" href="{{pages.LastPage.Link}}">{{pages.LastPage.Name}}</a>
{% endpagination %}
</div>
</div>
调用代码示例(代码不包含css样式控制)
{% categoryList categories with moduleId="1" parentId="0" %}
<div>
{% for item in categories %}
<div>
<h3><a href="{{ item.Link }}">{{item.Title}}</a></h3>
<ul>
{% archiveList archives with type="list" categoryId=item.Id limit="6" %}
{% for archive in archives %}
<li>
<a href="{{archive.Link}}">
<h5>{{archive.Title}}</h5>
<div>{{archive.Description}}</div>
<div>
<span>{{stampToDate(archive.CreatedTime, "2006-01-02")}}</span>
<span>{{archive.Views}} 阅读</span>
</div>
</a>
{% if archive.Thumb %}
<a href="{{archive.Link}}">
<img alt="{{archive.Title}}" src="{{archive.Thumb}}">
</a>
{% endif %}
</li>
{% empty %}
<li>
该列表没有任何内容
</li>
{% endfor %}
{% endarchiveList %}
</ul>
</div>
{% endfor %}
</div>
{% endcategoryList %}
调用代码示例(代码不包含css样式控制)
<div>
{% categoryList productCategories with moduleId="2" parentId="0" %}
{% for item in productCategories %}
<a href="{{item.Link}}">{{item.Title}}</a>
<ul class="ind-pro-nav-ul">
{% if item.HasChildren %}
{% categoryList subCategories with parentId=item.Id %}
{% for inner in subCategories %}
<li><a href="{{inner.Link}}" title="">{{inner.Title}}</a></li>
{% endfor %}
{% endcategoryList %}
{% else %}
{% archiveList products with type="list" categoryId=item.Id limit="8" %}
{% for inner in products %}
<li><a href="{{inner.Link}}" title="">{{inner.Title}}</a></li>
{% endfor %}
{% endarchiveList %}
{% endif %}
</ul>
{% endfor %}
{% endcategoryList %}
</div>