首页 安企CMS模板标签手册 文档标签 正文

文档列表标签

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

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

  • archiveList 支持的参数有:
  • 模型ID moduleIdmoduleId 可以获取指定文档模型的文档列表如 moduleId="1" 获取文章模型的文档列表。
  • 分类ID categoryIdcategoryId 可以获取指定分类的文档列表如 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"
  • 显示数量 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字段是男的文档内容。

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 列表展示 #}
<div>
{% archiveList archives with type="list" order="views desc" limit="10" %}
    {% for item in archives %}
    <li class="item layui-flex">
        <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 style="width: 200px" src="{{item.Logo}}" alt="{{item.Title}}" /></div>
        <div>封面缩略图<img style="width: 200px" src="{{item.Thumb}}" alt="{{item.Title}}" /></div>
        封面组图图片
        <ul>
        {% for inner in item.Images %}
        <li>
            <img src="{{inner}}" alt="{{item.Title}}" />
        </li>
        {% endfor %}

        文档标签:
        {% tagList tags with type="1" 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 class="extra">
            <table class="layui-table">
                <colgroup>
                    <col width="100">
                    <col>
                </colgroup>
                <tbody>
                {% for item in params %}
                <tr>
                    <td>{{item.Name}}</td>
                    <td>
                        {{item.Value}}
                    </td>
                </tr>
                {% endfor %}
                </tbody>
            </table>
        </div>
        {% endarchiveParams %}
</ul>
    </li>
    {% empty %}
    <li class="item empty">
        该列表没有任何内容
    </li>
    {% endfor %}
{% endarchiveList %}
</div>


列表展示文档


{# list 列表展示 #}
<div>
{% archiveList archives with type="list" order="views desc" categoryId="1" limit="10" %}
    {% for item in archives %}
    <li class="item layui-flex">
        <a href="{{item.Link}}" class="link flex-item">
            <h5 class="title">{{item.Title}}</h5>
            <div class="description">{{item.Description}}</div>
            <div class="meta">
                <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}}" class="thumb">
            <img class="thumb-image" alt="{{item.Title}}" src="{{item.Thumb}}">
        </a>
        {% endif %}
    </li>
    {% empty %}
    <li class="item empty">
        该列表没有任何内容
    </li>
    {% endfor %}
{% endarchiveList %}
</div>


展示相关文档


{# related 相关文档列表展示 #}
<div>
{% archiveList archives with type="related" limit="10" %}
    {% for item in archives %}
    <li class="item layui-flex">
        <a href="{{item.Link}}" class="link flex-item">
            <h5 class="title">{{item.Title}}</h5>
            <div class="description">{{item.Description}}</div>
            <div class="meta">
                <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}}" class="thumb">
            <img class="thumb-image" alt="{{item.Title}}" src="{{item.Thumb}}">
        </a>
        {% endif %}
    </li>
    {% empty %}
    <li class="item empty">
        该列表没有任何内容
    </li>
    {% endfor %}
{% endarchiveList %}
</div>


分页展示文档


{# page 分页列表展示 #}
<div>
{% archiveList archives with type="page" limit="10" %}
    {% for item in archives %}
    <li class="item layui-flex">
        <a href="{{item.Link}}" class="link flex-item">
            <h5 class="title">{{item.Title}}</h5>
            <div class="description">{{item.Description}}</div>
            <div class="meta">
                <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}}" class="thumb">
            <img class="thumb-image" alt="{{item.Title}}" src="{{item.Thumb}}">
        </a>
        {% endif %}
    </li>
    {% empty %}
    <li class="item empty">
        该列表没有任何内容
    </li>
    {% endfor %}
{% endarchiveList %}

    {# 分页代码 #}
    <div class="layui-box layui-laypage layui-laypage-default">
        {% pagination pages with show="5" %}
            {# 首页 #}
            <a class="layui-laypage-first {% if pages.FirstPage.IsCurrent %}layui-laypage-curr{% endif %}" href="{{pages.FirstPage.Link}}">{{pages.FirstPage.Name}}</a>
            {# 上一页 #}
            {% if pages.PrevPage %}
            <a class="layui-laypage-prev" href="{{pages.PrevPage.Link}}">{{pages.PrevPage.Name}}</a>
            {% endif %}
            {# 中间多页 #}
            {% for item in pages.Pages %}
            <a class="{% if item.IsCurrent %}layui-laypage-curr{% endif %}" href="{{item.Link}}">{{item.Name}}</a>
            {% endfor %}
            {# 下一页 #}
            {% if pages.NextPage %}
            <a class="layui-laypage-next" href="{{pages.NextPage.Link}}">{{pages.NextPage.Name}}</a>
            {% endif %}
            {# 尾页 #}
            <a class="layui-laypage-last {% if pages.LastPage.IsCurrent %}layui-laypage-curr{% endif %}" href="{{pages.LastPage.Link}}">{{pages.LastPage.Name}}</a>
        {% endpagination %}
    </div>
</div>


搜索文档分页展示

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

搜索表单示例代码:


<form method="get" action="/search">
    <div class="input-group">
        <input class="form-control" type="text" name="q" placeholder="请输入搜索关键词" value="{{urlParams.q}}">
        <span class="input-group-btn"><button class="btn" type="submit">搜索</button></span>
    </div>
</form>

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


{# page 搜索指定关键词分页列表展示 #}
<div>
{% archiveList archives with type="page" q="seo" limit="10" %}
    {% for item in archives %}
    <li class="item layui-flex">
        <a href="{{item.Link}}" class="link flex-item">
            <h5 class="title">{{item.Title}}</h5>
            <div class="description">{{item.Description}}</div>
            <div class="meta">
                <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}}" class="thumb">
            <img class="thumb-image" alt="{{item.Title}}" src="{{item.Thumb}}">
        </a>
        {% endif %}
    </li>
    {% empty %}
    <li class="item empty">
        该列表没有任何内容
    </li>
    {% endfor %}
{% endarchiveList %}

    {# 分页代码 #}
    <div class="layui-box layui-laypage layui-laypage-default">
        {% pagination pages with show="5" %}
            {# 首页 #}
            <a class="layui-laypage-first {% if pages.FirstPage.IsCurrent %}layui-laypage-curr{% endif %}" href="{{pages.FirstPage.Link}}">{{pages.FirstPage.Name}}</a>
            {# 上一页 #}
            {% if pages.PrevPage %}
            <a class="layui-laypage-prev" href="{{pages.PrevPage.Link}}">{{pages.PrevPage.Name}}</a>
            {% endif %}
            {# 中间多页 #}
            {% for item in pages.Pages %}
            <a class="{% if item.IsCurrent %}layui-laypage-curr{% endif %}" href="{{item.Link}}">{{item.Name}}</a>
            {% endfor %}
            {# 下一页 #}
            {% if pages.NextPage %}
            <a class="layui-laypage-next" href="{{pages.NextPage.Link}}">{{pages.NextPage.Name}}</a>
            {% endif %}
            {# 尾页 #}
            <a class="layui-laypage-last {% if pages.LastPage.IsCurrent %}layui-laypage-curr{% endif %}" href="{{pages.LastPage.Link}}">{{pages.LastPage.Name}}</a>
        {% endpagination %}
    </div>
</div>