1.1. 文章列表 ms:arclist

读取文章列表数据

1.2. 适用模版

首页模版、列表模版、内容模版、自定义页面模版

[!tip]主页面模版使用:如果不设置typeid会取出所有的栏目下的数据,推荐增加typeid值;
列表模版使用: 可以不设置typeid参数,默认为当前访问的栏目ID,分页列表必须使用ispaging属性,注意:每个列表模版只能有一个使用了ispaging属性的arclist标签,且ispaging获取的分页数据是当前栏目的数据; 内容模版使用: 可以不设置typeid,默认为当前文章的所属栏目id;

1.3. 格式

{ms:arclist [参数1=值1 参数2=值2]}
    ${field.*}
{/ms:arclist}

[!tip]可以嵌套在 channel 里面来实现栏目动态获取文章列表

1.4. 嵌套格式

多级栏目文章嵌套格式

{ms:channel type="nav"} <!--顶级栏目-->
    +${field.typetitle} <br> 

    {ms:channel} <!--二级栏目-->

        ++${field.typetitle} <br>

            {ms:arclist typeid=field.id}<!--二级栏目下的文章-->
                ${field.title}<br>
            {/ms:arclist}


    {/ms:channel}

{/ms:channel}

[!tip] 在内容模版页、列表模版页使用栏目嵌套 ms:arclist标签时, 必须增加typeid=field.id参数,在主页、自定义页面 可以不使用

1.5. 参数

名称 类型 必须 示列值 默认值 描述
typeid 整型 >0 栏目ID,在列表模板和内容模板会默认获取当前所属栏目ID,可以不用设置typeid参数,在内容详情页不设置可以实现类似相关文章的效果
typeids 字符串 1,2,3 栏目IDs,以逗号分隔,返回多个栏目下的文章,如果设置了typeid参数,该参数将不会生效;目前只支持在首页使用
size 整型 >0 20 返回文档列表总数,默认为20条全部返回,也可以配合分页使用
topflag 字符串 c,f,h,p, 指定某类属性的文章固定优先获取,即文章置顶效果
flag 字符串 c,f,h,p, 指定显示某个属性的文章数据,幻灯f,图片p,推荐c,头条h,跳转 j;请按照示例值顺序设置,例如:flag=c,f
noflag 字符串 c,f,h,p, noflag=c,显示文章属性除c之外的所有文章;请按照示例值顺序设置,例如:noflag=c,f;c,p
orderby 字符串 date 根据时间排序:date,根据更新时间排序:updatedate,根据文章自定义顺序排序:sort,根据文章点击数排序:hit(如果点击量增加了,需要重新生成排序才会变化),不填则显示默认顺序
order 字符串 asc desc desc:按照倒序(降序)排列,asc:按照正序(升序)排列,必须与orderby一起使用,默认为创建时间;
ispaging 布尔型 true false 当文章列表出现分页标签时必须添加本属性,且只能使用一次。注意不要双引号,可以不设置typeid参数默认获取当前栏目数据
tableName 字符串 mdiy_model_mobile typeid必须指定对应栏目才有效,使用代码生成器导入的模型表名

[!tip]属性类型为字符串使用需要使用引号 flag="c,h" order="desc";
flag可以通过后台自定义字典进行维护;
ispaging只能列表模版下使用,使用ispaging之后flag、noflag不能使用,会导致分页不同步;
tablename可以自定义模型决定,自定义模型创建流程:先在 代码生成器 拖出模型并下载模型代码 -> 打开系统后台自定义管理,进行自定义模型导入 -> 打开栏目管理,进行栏目绑定自定义模型 -> 打开文章管理,进行发布内容;
取自定义模型字段数据时,字段名是数据库字段名,严格区分大小写;

1.6. 输出字段

字段名称 描述
${field.index} 序号,根据显示条数显示的序号1 2 …..10
${field.id} 文章编号
${field.title} 文章标题
${field.author} 文章作者
${field.source} 文章来源
${field.outlink} 文章外链接,必须以http/http开头,使用格式如:<a href="${field.outlink}"/>
${field.typetitle} 文章所属分类的名称
${field.typeshorttitle} 文章所属分类的副标题
${field.typeid} 文章所属分类的编号
${field.typelitpic} 文章所属分类的banner图
${field.typeico} 文章所属分类的小图
${field.typekeyword} 文章所属分类的关键字
${field.topid} 文章所属分类的顶级分类
${field.parentid} 文章所属分类的父栏目编号
${field.parentids} 文章所属分类的所有父栏目编号
${field.type} 文章所属分类的栏目类型,如列表栏目输出为1,链接栏目输出为3
${field.typelink} 文章分类链接,点击连接连接到当前分类的列表:{ms:global.html/}${field.typelink}
{@ms:file field.litpic/} 文章缩略图,上传文章的缩略图,调用缩略图地址:{@ms:file field.litpic/},支持上传多张图片
${field.link} 文章内容链接,点击显示文章具体的内容地址,一般配合文章标题使用:{ms:global.html/}${field.link}
${field.date?string("")} 根据用户指定的格式输出时间,${field.date?string("yyyy-MM-dd")}
${field.descrip} 文章摘要
${field.hit} 文章点击量
${field.flag} 文章flag属性
${field.keyword} 文章关键字
${field.tags} 文章标签,多个以","隔开;推荐文章标签字典的label和值一致
${field.css} 文章标题样式,常规用法为用来控制某篇文章标题的样式特殊展示;企业版本及政务版本支持。
${field.*} 其他自定义标签,使用代码生成器拖拽的字段名

[!tip] field.title 长度的控制通过{@ms:len field.title 长度 /};

field.litpic缩略图必须要使用 {@ms:file field.litpic /} 来获取缩略图路径,多张缩略图的模板用法参考范例2.4;

field.data 日期格式通过 ?string("yyyy-MM-dd hh:mm:ss") 格式化

自定义模型字段 通过 ${field.扩展模型字段名} 获取 html属性中使用field.title后,""建议替换为title="${field.title?replace('\"','“')}"title="${field.title?replace('\"','')}";

orderby不能使用在上下篇的文章列表,会导致上下篇和列表显示不一致;

列表页通过标签获取的文章点击数默认是不支持动态的,需要在列表页动态获取文章点击数,推荐列表页通过接口获取文章列表数据,接口查看swagger 前端-内容模块接口-查询文章列表接口(企业版或政务版查看前端-文章接口)

2. 范例

2.1. 基础使用格式

获取 typeid=62 下面size=5 五篇 flag="c" 推荐的文章

{ms:arclist flag="c" size=5  typeid=62}
<img src="{@ms:file field.litpic/}"/>
<a href='{ms:global.html/}${field.link}' target="_self">${field.title}</a>
{/ms:arclist}

在列表页,获取全部文章中文章属性为推荐的前4篇文章 默认按时间排序

...
<div class="tit">猜您喜欢</div>
  {ms:arclist size=4 flag='c' typeid=0}
    <a href='{ms:global.html/}${field.link}' target="_self">${field.title}</a>  
  {/ms:arclist}
</div>
...

2.2. 列表第一条凸显显示

{ms:arclist size=10  typeid=62}
<!--第一条图片方式显示-->
<#if field.index == 1>
<img src="{@ms:file field.litpic/}"/>
<#else>
<a href='{ms:global.html/}${field.link}' target="_self">${field.title}</a>
</#if>
{/ms:arclist}

2.3. topflag使用范例

[!tip] topflag 不影响分页

类似效果如微博热搜

{ms:arclist size=10 typeid=62 topflag='h' orderby='date'}
<img src="{@ms:file field.litpic/}"/>
<a href='{ms:global.html/}${field.link}'>${field.title}</a>
{/ms:arclist}

属性为h的文章会固定展示在列表顶部,多篇该属性文章之间会按照时间排序,其余文章在'置顶文章'之后按时间排序

{ms:arclist size=10 ispaging=true typeid=62 topflag='h,c' orderby='date'}
<img src="{@ms:file field.litpic/}"/>
<a href='{ms:global.html/}${field.link}'>${field.title}</a>
{/ms:arclist}

多置顶属性设置,优先置顶属性为h的文章(同属性按时间排序),再排属性为c的文章,其余文章在'置顶文章'之后按时间排序

2.4. 带自定模型基础使用格式

{ms:arclist typeid=70 tableName="自定义模型表名"}
    ${field.自定义模型表字段名称}
{/ms:arclist}

2.5. 获取当前文章的文章标签

{ms:arclist typeid=70}
    <#list field.tags?split(",") as cur_content_tag>
        <a href="/mcms/search?content_tag=${cur_content_tag}">${cur_content_tag} </a>
    </#list>
{/ms:arclist}

2.6. 多张缩略图获取方式

{ms:arclist typeid=70}

    获取第一张缩略图
    <img src="{@ms:file field.litpic/}"/>
    <a href='{ms:global.html/}${field.link}' target="_self">${field.title}</a>

    获取所有缩略图
    <#if field.litpic && field.litpic!=''>
        <#list field.litpic?eval as img>
        ${img.path}
        </#list>
    </#if>
    获取除指定位置外的所有缩略图
    <#if field.litpic && field.litpic!=''>
        <#list field.litpic?eval as img>
        <#if img?index!=0> 获取除第一张缩略图外的所有缩略图
          ${img.path}
        </#if>
        </#list>
    </#if>

    获取指定位置的缩略图
    <#if field.litpic && field.litpic!=''>
        ${field.litpic?eval[2].path}
    </#if>
{/ms:arclist}

[!tip] 多图情况下{@ms:file field.litpic/}默认只会取出第一张图片,取指定位置的缩略图需要指定准确的数组下标ieval[i]; 在范例中缩略图的判空是必要的,否则模板解析会失败,类似于java的NullPointerException

2.7. 如果没有上传缩略图就显示一张默认图片

{ms:arclist}
<#if field.litpic>
 <img src="{@ms:file field.litpic/}"/>
<#else>
 <img src="默认图片"/>
</#if>
{/ms:arclist}

[!tip] 部分老版本的旧数据使用 field.litpic!="[]" 去做缩略图判空。 新版本无旧数据则无需使用此方法。

2.8. 首页大幻灯

背景图幻灯可以通过创建一个 幻灯栏目 ,再创建对应的文章,文章只上传缩略图,如果还有其他文章信息,可以灵活使用其他字段填充,通过对应标签获取

2.9. 列表页获取文章详情

<!-- 如果在首页获取需要指定typeid -->
{ms:arclist} 
  {ms:data dataid=field.id}
    ${field.title} <br>
    ${field.content} <br>
  {/ms:data}
{/ms:arclist}

2.10. 列表页获取文章纯文本详情(5.3.5及以上版本)

{ms:arclist}
  {ms:data dataid=field.id}
    <div>
      全部内容纯文本: ${MUtil.html2text(field.content)}
    </div>
    <div>
      <#assign _fieldContent = MUtil.html2text(field.content)>
      截取部分内容纯文本: {@ms:len _fieldContent 50 /}
    </div>
  {/ms:data}
{/ms:arclist}
Copyright © mingsoft.net 2021 all right reserved,powered by Gitbook该文件修订时间: 2024-03-01 08:43:18

results matching ""

    No results matching ""

    results matching ""

      No results matching ""