1. 标签使用

1.1. 现有字段不满足需求,给文章表等加字段,推荐使用自定义模型

不建议直接在数据库表里面加字段,建议使用自定义模型。拖拽生成,一键绑定,即可使用。

1.在代码生成器制作模型

2.在自定义模型处导入模型json

3.在栏目管理处绑定导入的模型

4.在文章管理处使用导入的模型

5.在模板中使用带自定义模型的标签,需先了解模板基本使用



6.根据示例代码中 计数开关 字段控制输出内容,开、关效果分别如下

1.2. 扩展标签输出字段

[!tip]如果单纯是增加一个显示的属性,推荐使用自定义模型,简单使用,无需后台开发

场景举例:扩展的字段有需要处理的业务逻辑,这里以ContentEntity新增一个contentExtend属性为例

  1. 新增属性产生的基本修改,实体、xml等

  2. 标签修改

如果该属性需要在列表和详情展示,那么对应需要修改arclist标签和field标签(data标签按需)

这里以arclist标签为例
...
SELECT
  cms_content.id AS "id",
  content_title AS "title",
  content_short_title AS "shorttitle",
  content_author AS "author",
  content_source AS "source",
  content_out_link AS "outlink",
  content_tags AS "tags",
  content_extend AS "extend"  # 新增扩展字段属性
...
  1. 列表模板写法

    {ms:arclist}
    ${field.title}---${field.extend}
    {/ms:arclist}
    
  2. 栏目CategoryEntity扩展,比文章需要多一步添加实体属性

channel标签
...
cms_category.category_img as "typelitpic" ,
cms_category.category_ico as "typeico" ,
cms_category.category_extend as "typeextend", # 新增扩展字段属性
...
// CategoryEntity
...
/**
 * 获取栏目新增扩展字段属性 (标签使用) 这里的get后的属性名是上方扩展字段属性as的别名
 */
public String getTypeextend() {
    return this.categoryExtend;
}

[!tip] 对于二次开发的业务数据展示,不推荐新增标签获取,开发成本较高,推荐走接口获取

1.3. 自定义标签获取时间数据中时间多了个T(5.4.3及其以下版本处理)

以update_date(别名updateDate)为例,

通过string("yyyy-MM-dd HH:mm:ss") 自定义时间格式

最终格式 ${field.updateDate?replace("T"," ")?datetime?string("yyyy-MM-dd HH:mm:ss")}

1.4. 设置分页文章序号

<!-- 效果  xxx(文章标题)--10、xxx--11、xxx--12...   -->

<!-- 定义计算 上一页的index值  pageSize按需填写 -->
<!-- eg:当前为第二页 , pageSize=10 则index=(2-1)*10-->
<#assign index = (page.cur?number - 1) * pageSize/>

{ms:arclist size=pageSize ispaging=true}
<!-- 定义计算 当前的index值 -->
<!--计算后 result = 10,11,12... -->
<#assign result = index + field.index>
${field.title}--${result}
{/ms:arclist}

1.5. 标签解析报错 The following has evaluated to null or missing

提示信息一般表现为缺少了某个标签,或标签的某个属性丢失;

1、如果提示为field.date问题,优先查看 静态化报错

2、其他问题,建议先将开源中国最新的sql(mdiy_tag表)执行一遍;仍有问题,第一时间反馈,我们会立即解决

1.6. 生成报错?

1、标签没有正确的闭合{ms:page} 最后一个/符合不能少 正确:{ms:page /}

2、字符串类型参数没有加双引号,{ms:channel type=nav } 正确:{ms:channel type="nav" },注意:数值不需要

3、include标签使用了注释 <!-- <#include "url"> --> 正确:<#-- <#include "url"> -->

报错分析参考

1.7. 标签能嵌套使用吗?

目前只有部分标签支持嵌套,具体可以参考下方标签说明。

  1. 多级channel嵌套
  2. channel 与 arclist嵌套
  3. channel中使用include
  4. arclist与data嵌套

1.8. 怎么获取动态的栏目或文章的typeid?

当你在某个列表页时,使用ms:channel、ms:arclist两个标签时,如果不写typeid,会自动获取当前页面所属栏目的typeid值

1.9. 文章点击量不自动增加

文章点击量是需要使用了的点击量标签之后前后端数据才会增加,同一台电脑多次访问只会增加一次点击量,注意后台的点击数量在去点击文章,看点击量是否增加。

1.10. 用图片标签获取出来的图片总是裂开

如果是开源版,图片标签前面需要加上域名标签({ms:global.host/})才会正常显示图片。

1.11. 标签有类似if判断的功能吗?

mcms4.7.0之后的版本可以支持简单的if判断,5.1之后支持freemarker if指令

<!-- freemarker if简单使用 -->
<!-- eg: 文章如果没有上传缩略图就显示一张默认图片 -->
{ms:arclist}
<#if field.litpic>
 <img src="{@ms:file field.litpic/}"/>
<#else>
 <img src="默认图片"/>
</#if>
{/ms:arclist}

使用参考

1.12. 标签属性使用无效

5.1之后属性为字符串类型的需要加引号使用例如:type="son"

1.13. 页面静态化没有更新

1、按shift刷新浏览器 清除浏览器缓存
2、如果清楚缓存还不行,直接编辑一下文章,再静态化刷新页面

1.14. css文件、js文件能用标签吗?

不能,因为标签需要mcms系统解析之后才会渲染效果,而系统不会渲染引入css与js文件

1.15. 在模板中使用了js的模板表达式用法如${xx * xx},导致报错

Alt text Alt text

原因:这种模板表达式用法与freemarker的标签解析冲突了,导致报错。

解决方式:在模板中使用noparse标签包裹模板表达式,如 <#noparse> ${xx * xx} </#noparse> Alt text

Copyright © mingsoft.net 2021 all right reserved,powered by Gitbook该文件修订时间: 2025-08-01 17:50:09

results matching ""

    No results matching ""

    results matching ""

      No results matching ""