安企CMS#文档列表标签#

说明:用于获取文档常规列表、相关文档列表、文档分页列表

使用方法:{% archiveList 变量名称 with categoryId=“1” order=“id desc|views desc” type=“page|list” q=“搜索关键词” %} 如将变量定义为 archives {% archiveList archives with type=“page” %}…{% endarchiveList %}

archiveList 支持的参数有:

  • 模型ID moduleId
    moduleId 可以获取指定文档模型的文档列表如 moduleId=“1” 获取文章模型的文档列表。
  • 分类ID 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字段是男的文档内容。
  • 站点ID siteId
    siteId 一般不需要填写,如果你使用后台的多站点管理创建了多个站点,并且想调用其他站点的数据,则可以通过指定 siteId 来实现调用指定站点的数据。
  • 组合文档ID combineId
    combineId 这是一个特殊字段,用于在列表中附加一个文档,比如一篇文档是“北京”,组合的文档是“上海”,你可以使用{{item.Title}}到{{combine.Title}}的旅游线路,可以实现“从北京上海的旅游线路”的标题生成,并且新链接也会加上组合,如北京的ID是1,上海的ID是2,则URL可能是:”/tour/1/c-2.html”。
  • 前置组合文档ID combineFromId
    combineFromId 这是一个特殊字段,用于在列表中附加一个文档,比如一篇文档是“北京”,前置组合的文档是“上海”,你可以使用{{combine.Title}}到{{item.Title}}的旅游线路,可以实现“从上海到{\(1<a href="/product/15399.html" data-anchor="10088">7</a>}的旅游线路”的标题生成,并且新链接也会加上组合,如<strong data-anchor="29">北京</strong>的ID是1,{\)27}的ID是2,则URL可能是:”/tour/2/c-1.html”。和combineId顺序相反。

使用了 combineIdcombineFromId 后,列表中可用 {{combine.文档字段}} 来调用组合文档的字段内容。在组合文档URL下,有 {{combineArchive.文档字段}} 可用于调用组合文档的字段内容。

archives 是一个数组对象,因此需要使用 for 循环来输出

item 为 for循环体内的变量,可用的字段有:

  • 文档ID Id
  • 文档标题 Title
  • 文档链接 Link
  • 文档关键词 Keywords
  • 文档描述 Description
  • 文档分类ID CategoryId
  • 文档浏览量 Views
  • 文档封面图片 Images
  • 文档封面首图 Logo
  • 文档封面缩略图 Thumb
  • 文档评论数量 CommentCount
  • 文档添加时间 CreatedTime 时间戳,需要使用格式化时间戳为日期格式 {{stampToDate(item.CreatedTime, “2006-01-02”)}}
  • 文档更新时间 UpdatedTime 时间戳,需要使用格式化时间戳为日期格式 {{stampToDate(item.UpdatedTime, “2006-01-02 15:04:05”)}}
  • 文档标签
  • 文档模型设置的其他字段参数

代码示例

{# list 列表展示 #}
&lt;div&gt;
{% archiveList archives with type=“list” limit=“10” %}

{% for item in archives %}
&lt;li&gt;</code><code>        {#  如需判断当前是否是循环中的第一条,可以这么写: #}
    {% if forloop.Counter == 1 %}这是第一条{% endif %}
    {# 比如需要给第一条添加额外class="active",可以这么写: #}
    &lt;a class="{% if forloop.Counter == 1 %}active{% endif %}" href="{{item.Link}}"&gt;{{item.Title}}&lt;/a&gt;

    &lt;span&gt;当前第{{ forloop.Counter }}篇,剩余{{ forloop.Revcounter}}篇&lt;/span&gt;
    &lt;span&gt;文档ID:{{item.Id}}&lt;/span&gt;
    &lt;span&gt;文档标题:{{item.Title}}&lt;/span&gt;
    &lt;span&gt;文档链接:{{item.Link}}&lt;/span&gt;
    &lt;span&gt;文档关键词:{{item.Keywords}}&lt;/span&gt;
    &lt;span&gt;文档描述:{{item.Description}}&lt;/span&gt;
    &lt;span&gt;文档分类ID:{{item.CategoryId}}&lt;/span&gt;
    &lt;span&gt;文档浏览量:{{item.Views}}&lt;/span&gt;
    &lt;span&gt;文档发布日期:{{stampToDate(item.CreatedTime, "2006-01-02")}}&lt;/span&gt;
    &lt;span&gt;文档发布月日:{{stampToDate(item.CreatedTime, "01-02")}}&lt;/span&gt;
    &lt;span&gt;文档发布时间:{{stampToDate(item.CreatedTime, "15:04:05")}}&lt;/span&gt;
    &lt;span&gt;文档发布时分:{{stampToDate(item.CreatedTime, "15:04")}}&lt;/span&gt;
    &lt;span&gt;文档发布日期时间:{{stampToDate(item.CreatedTime, "2006-01-02 15:04:05")}}&lt;/span&gt;
    &lt;div&gt;封面首图&lt;img src="{{item.Logo}}" alt="{{item.Title}}" /&gt;&lt;/div&gt;
    &lt;div&gt;封面缩略图&lt;img src="{{item.Thumb}}" alt="{{item.Title}}" /&gt;&lt;/div&gt;
    封面组图图片
    &lt;ul&gt;
    {% for inner in item.Images %}
    &lt;li&gt;
        &lt;img src="{{inner}}" alt="{{item.Title}}" /&gt;
    &lt;/li&gt;
    {% endfor %}
    &lt;/ul&gt;

    文档标签:
    {% tagList tags with itemId=item.Id limit="10" %}
    {% for item in tags %}
    &lt;a href="{{item.Link}}"&gt;{{item.Title}}&lt;/a&gt;
    {% endfor %}
    {% endtagList %}

    文档额外字段
    {% archiveParams params with id=item.Id %}
    &lt;div&gt;
        {% for item in params %}
        &lt;div&gt;
            &lt;span&gt;{{item.Name}}:&lt;/span&gt;
            &lt;span&gt;{{item.Value}}&lt;/span&gt;
        &lt;/div&gt;
        {% endfor %}
    &lt;/div&gt;
    {% endarchiveParams %}
&lt;/li&gt;
{% empty %}
&lt;li&gt;
    该列表没有任何内容
&lt;/li&gt;
{% endfor %}

{% endarchiveList %} &lt;/div&gt;

列表展示文档

{# list 列表展示 #}
&lt;div&gt;
{% archiveList archives with type=“list” categoryId=“1” limit=“10” %}

{% for item in archives %}
&lt;li&gt;
    &lt;a href="{{item.Link}}"&gt;
        &lt;h5&gt;{{item.Title}}&lt;/h5&gt;
        &lt;div&gt;{{item.Description}}&lt;/div&gt;
        &lt;div&gt;
            &lt;span&gt;{% categoryDetail with name="Title" id=item.CategoryId %}&lt;/span&gt;
            &lt;span&gt;{{stampToDate(item.CreatedTime, "2006-01-02")}}&lt;/span&gt;
            &lt;span&gt;{{item.Views}} 阅读&lt;/span&gt;
        &lt;/div&gt;
    &lt;/a&gt;
    {% if item.Thumb %}
    &lt;a href="{{item.Link}}"&gt;
        &lt;img alt="{{item.Title}}" src="{{item.Thumb}}"&gt;
    &lt;/a&gt;
    {% endif %}
&lt;/li&gt;
{% empty %}
&lt;li&gt;
    该列表没有任何内容
&lt;/li&gt;
{% endfor %}

{% endarchiveList %} &lt;/div&gt;

展示相关文档

{# related 相关文档列表展示 #}
&lt;div&gt;
{% archiveList archives with type=“related” limit=“10” %}

{% for item in archives %}
&lt;li&gt;
    &lt;a href="{{item.Link}}"&gt;
        &lt;h5&gt;{{item.Title}}&lt;/h5&gt;
        &lt;div&gt;{{item.Description}}&lt;/div&gt;
        &lt;div&gt;
            &lt;span&gt;{% categoryDetail with name="Title" id=item.CategoryId %}&lt;/span&gt;
            &lt;span&gt;{{stampToDate(item.CreatedTime, "2006-01-02")}}&lt;/span&gt;
            &lt;span&gt;{{item.Views}} 阅读&lt;/span&gt;
        &lt;/div&gt;
    &lt;/a&gt;
    {% if item.Thumb %}
    &lt;a href="{{item.Link}}"&gt;
        &lt;img alt="{{item.Title}}" src="{{item.Thumb}}"&gt;
    &lt;/a&gt;
    {% endif %}
&lt;/li&gt;
{% empty %}
&lt;li&gt;
    该列表没有任何内容
&lt;/li&gt;
{% endfor %}

{% endarchiveList %} &lt;/div&gt;

{$7}分页展示文档
{# page 分页列表展示 #}
&lt;div&gt;
{% archiveList archives with type=“page” limit=“10” %}

{% for item in archives %}
&lt;li&gt;
    &lt;a href="{{item.Link}}"&gt;
        &lt;h5&gt;{{item.Title}}&lt;/h5&gt;
        &lt;div&gt;{{item.Description}}&lt;/div&gt;
        &lt;div&gt;
            &lt;span&gt;{% categoryDetail with name="Title" id=item.CategoryId %}&lt;/span&gt;
            &lt;span&gt;{{stampToDate(item.CreatedTime, "2006-01-02")}}&lt;/span&gt;
            &lt;span&gt;{{item.Views}} 阅读&lt;/span&gt;
        &lt;/div&gt;
    &lt;/a&gt;
    {% if item.Thumb %}
    &lt;a href="{{item.Link}}"&gt;
        &lt;img alt="{{item.Title}}" src="{{item.Thumb}}"&gt;
    &lt;/a&gt;
    {% endif %}
&lt;/li&gt;
{% empty %}
&lt;li&gt;
    该列表没有任何内容
&lt;/li&gt;
{% endfor %}

{% endarchiveList %}

{# 分页代码 #}
&lt;div &gt;
    {% pagination pages with show="5" %}
        {# 首页 #}
        &lt;a class="{% if pages.FirstPage.IsCurrent %}active{% endif %}" href="{{pages.FirstPage.Link}}"&gt;{{pages.FirstPage.Name}}&lt;/a&gt;
        {# 上一页 #}
        {% if pages.PrevPage %}
        &lt;a href="{{pages.PrevPage.Link}}"&gt;{{pages.PrevPage.Name}}&lt;/a&gt;
        {% endif %}
        {# 中间多页 #}
        {% for item in pages.Pages %}
        &lt;a class="{% if item.IsCurrent %}active{% endif %}" href="{{item.Link}}"&gt;{{item.Name}}&lt;/a&gt;
        {% endfor %}
        {# 下一页 #}
        {% if pages.NextPage %}
        &lt;a href="{{pages.NextPage.Link}}"&gt;{{pages.NextPage.Name}}&lt;/a&gt;
        {% endif %}
        {# 尾页 #}
        &lt;a class="{% if pages.LastPage.IsCurrent %}active{% endif %}" href="{{pages.LastPage.Link}}"&gt;{{pages.LastPage.Name}}&lt;/a&gt;
    {% endpagination %}
&lt;/div&gt;

&lt;/div&gt;

搜索文档分页展示

搜索接收默认路径为: /search

搜索表单示例代码:

&lt;form method=“get” action=“/search”&gt;

&lt;div&gt;
    &lt;input type="text" name="q" placeholder="请输入搜索关键词" value="{{urlParams.q}}"&gt;
    &lt;button type="submit"&gt;搜索&lt;/button&gt;
&lt;/div&gt;

&lt;/form&gt;

注意:这里的 q 可以不指定,而是通过浏览器的url的query参数来动态获取 如:https://www.kandaoni.com/search?q=seo

{# page 搜索指定关键词分页列表展示 #}
&lt;div&gt;
{% archiveList archives with type=“page” q=”seo” limit=“10” %}

{% for item in archives %}
&lt;li&gt;
    &lt;a href="{{item.Link}}"&gt;
        &lt;h5&gt;{{item.Title}}&lt;/h5&gt;
        &lt;div&gt;{{item.Description}}&lt;/div&gt;
        &lt;div&gt;
            &lt;span&gt;{% categoryDetail with name="Title" id=item.CategoryId %}&lt;/span&gt;
            &lt;span&gt;{{stampToDate(item.CreatedTime, "2006-01-02")}}&lt;/span&gt;
            &lt;span&gt;{{item.Views}} 阅读&lt;/span&gt;
        &lt;/div&gt;
    &lt;/a&gt;
    {% if item.Thumb %}
    &lt;a href="{{item.Link}}"&gt;
        &lt;img alt="{{item.Title}}" src="{{item.Thumb}}"&gt;
    &lt;/a&gt;
    {% endif %}
&lt;/li&gt;
{% empty %}
&lt;li&gt;
    该列表没有任何内容
&lt;/li&gt;
{% endfor %}

{% endarchiveList %}

{# 分页代码 #}
&lt;div&gt;
    {% pagination pages with show="5" %}
        {# 首页 #}
        &lt;a class="{% if pages.FirstPage.IsCurrent %}active{% endif %}" href="{{pages.FirstPage.Link}}"&gt;{{pages.FirstPage.Name}}&lt;/a&gt;
        {# 上一页 #}
        {% if pages.PrevPage %}
        &lt;a href="{{pages.PrevPage.Link}}"&gt;{{pages.PrevPage.Name}}&lt;/a&gt;
        {% endif %}
        {# 中间多页 #}
        {% for item in pages.Pages %}
        &lt;a class="{% if item.IsCurrent %}active{% endif %}" href="{{item.Link}}"&gt;{{item.Name}}&lt;/a&gt;
        {% endfor %}
        {# 下一页 #}
        {% if pages.NextPage %}
        &lt;a href="{{pages.NextPage.Link}}"&gt;{{pages.NextPage.Name}}&lt;/a&gt;
        {% endif %}
        {# 尾页 #}
        &lt;a class="{% if pages.LastPage.IsCurrent %}active{% endif %}" href="{{pages.LastPage.Link}}"&gt;{{pages.LastPage.Name}}&lt;/a&gt;
    {% endpagination %}
&lt;/div&gt;

&lt;/div&gt;

常见使用实例

  1. 在循环多个分类中显示分类下的文档。如图:


调用代码示例(代码不包含css样式控制)

{% categoryList categories with moduleId=“1” parentId=“0” %}
&lt;div&gt;

{% for item in categories %}
&lt;div&gt;
    &lt;h3&gt;&lt;a href="{{ item.Link }}"&gt;{{item.Title}}&lt;/a&gt;&lt;/h3&gt;
    &lt;ul&gt;
        {% archiveList archives with type="list" categoryId=item.Id limit="6" %}
        {% for archive in archives %}
        &lt;li&gt;
            &lt;a href="{{archive.Link}}"&gt;
                &lt;h5&gt;{{archive.Title}}&lt;/h5&gt;
                &lt;div&gt;{{archive.Description}}&lt;/div&gt;
                &lt;div&gt;
                    &lt;span&gt;{{stampToDate(archive.CreatedTime, "2006-01-02")}}&lt;/span&gt;
                    &lt;span&gt;{{archive.Views}} 阅读&lt;/span&gt;
                &lt;/div&gt;
            &lt;/a&gt;
            {% if archive.Thumb %}
            &lt;a href="{{archive.Link}}"&gt;
                &lt;img alt="{{archive.Title}}" src="{{archive.Thumb}}"&gt;
            &lt;/a&gt;
            {% endif %}
        &lt;/li&gt;
        {% empty %}
        &lt;li&gt;
            该列表没有任何内容
        &lt;/li&gt;
        {% endfor %}
    {% endarchiveList %}
    &lt;/ul&gt;
&lt;/div&gt;
{% endfor %}

&lt;/div&gt; {% endcategoryList %}

  1. 在循环多个分类中显示分类的下级分类,如果没有下级分类,则显示分类的文档。如图:

image

调用代码示例(代码不包含css样式控制)

&lt;div&gt;

{% categoryList productCategories with moduleId="2" parentId="0" %}
{% for item in productCategories %}
&lt;a href="{{item.Link}}"&gt;{{item.Title}}&lt;/a&gt;
&lt;ul class="ind-pro-nav-ul"&gt;
    {% if item.HasChildren %}
        {% categoryList subCategories with parentId=item.Id %}
        {% for inner in subCategories %}
        &lt;li&gt;&lt;a href="{{inner.Link}}" title=""&gt;{{inner.Title}}&lt;/a&gt;&lt;/li&gt;
        {% endfor %}
        {% endcategoryList %}
    {% else %}
        {% archiveList products with type="list" categoryId=item.Id limit="8" %}
        {% for inner in products %}
        &lt;li&gt;&lt;a href="{{inner.Link}}" title=""&gt;{{inner.Title}}&lt;/a&gt;&lt;/li&gt;
        {% endfor %}
        {% endarchiveList %}
    {% endif %}
&lt;/ul&gt;
{% endfor %}
{% endcategoryList %}

&lt;/div&gt;

上一篇: 没有了

下一篇: 安企CMS#文档详情标签#