【问题标题】:Typoscript Split Wrap only when not empty?Typoscript Split Wrap 仅在不为空时拆分?
【发布时间】:2018-08-02 23:06:01
【问题描述】:

我有一个COA,我需要使用拆分从描述字段中获取第二行。问题是我只想在线路上有东西时包装它。我尝试使用required = 1,但它仅在根本没有行的情况下才有效(例如,我有一个空的第二行,第三行有一些东西)。

11 = TEXT
11 {
  stdWrap.field = rowDescription
  stdWrap.split {
    token.char = 10
    returnKey = 1
  }
  required = 1
  wrap = <h6>|</h6>
}

【问题讨论】:

    标签: split typo3 typoscript typo3-7.6.x


    【解决方案1】:

    在使用 required 检查结果之前尝试修剪掉空白区域。 为此,由于 stdWrap 工具包中的功能顺序,您需要切换到 listNum 而不是 split:

    10 = COA
    10 {
      stdWrap.wrap = <h6>|</h6>
      stdWrap.required=1
      10 = TEXT
      10 {
        field = rowDescription
        listNum = 1
        listNum.splitChar = 10
        trim = 1
      }
    }
    

    【讨论】:

    • 我不知道 listNum 是一个东西,所以谢谢你。但是修剪似乎没有做任何事情,所以我得到了相同的结果。
    • 你能把实际的字符串贴在这里吗?由于在 stdWrap 中 trim 肯定在 listNum 之后执行,并且它只是 PHP trim 的 TS 简写,因此它应该在拆分后删除值周围的任何空格。如果还剩下一些东西,也许它不是空白。
    • 好吧,textarea 使用 4 行可能存在也可能不存在。我测试了一个只有前两行的地方。 (即,您甚至不能在文本区域的第二行之外向下箭头)。但是第三行的换行仍然呈现。
    • 数据库字段中是否还有其他内容,可能由于覆盖 RTE 配置或由于其他转换在进出数据库的过程中完成内容而在文本区域中不可见?即可能有一个空标签或类似的东西。
    • 编辑了 sn-p,以确保在进行换行之前检查 required。不确定 COA 参数的顺序,因为 wrap 和 if 是除了完整的 stdWrap 工具包之外唯一可用于 COA 的参数。需要的 stdWrap 内部在 wrap 之前,所以这应该可以工作。
    【解决方案2】:
    11 = COA
    11 {
      10 = TEXT
      10 {
        field = rowDescription
        split.token.char = 10
        split.returnKey = 1
      }
      stdWrap.required=1
      stdWrap.wrap = <h6>|</h6>
    }
    

    这将是我解决这个问题的尝试。优点是它是可扩展的,并且可以将其他行或因素添加到列表中。

    仅当列表中的任何项目返回“”、null 或 0 以外的任何值时,才会打印 COA

    【讨论】:

    • 同样的结果。当该行为空时,拆分似乎将换行符作为值。所以我在代码中用换行符换行。
    猜你喜欢
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2013-05-14
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多