【问题标题】:Output modifier on modx placeholder is not workingmodx 占位符上的输出修饰符不起作用
【发布时间】:2014-01-15 09:50:14
【问题描述】:

我在模板中有这段代码

[[+isShowMore:is=`1`:then=`show more`:else=`no`]]

它正在打印no。但它应该将show more 显示为占位符isShowMore 在sn-p 中被这行代码设置为1

$modx->setPlaceHolder('isShowMore', 1);

也被这段代码检查过

[[+isShowMore]]
[[+isShowMore:is=`1`:then=`show more`:else=`no`]]

[[+isShowMore]] 正在打印1,但带有输出修饰符的行显示no

有什么线索吗?我正在使用 modx 革命 2.2.8 传统版。

modx 论坛也发布了类似的问题。 http://forums.modx.com/thread/85150/output-filter-on-placeholder-problem#dis-post-469615

【问题讨论】:

    标签: php modx modx-revolution modx-templates


    【解决方案1】:

    我遇到了这个问题;我的页面使用的是具有[[*content]] 的模板。将其更改为 [[!*content]] 以摆脱缓存解决了我的问题。

    仅供参考,我的 sn-p 正在使用 ! 调用,因此它的输出也不会被缓存。

    【讨论】:

    • 天啊,我一直在努力解决输出修饰符不起作用的问题,这似乎解决了所有这些输出修饰符不起作用的问题。
    • 不幸的是,这并不能解决所有问题,实际上现在有了这个集合,当我运行一个从 sn-p 加载它的数据的页面时,无论查询字符串参数是什么,它都会加载一个缓存版本
    【解决方案2】:

    您是否以某种方式在另一个条件中执行该条件?嵌套条件通常会导致这种奇怪的问题。您是否尝试过不缓存调用 sn-p 和占位符输出?

    我也经历过几次,似乎没有明显的原因,modx 输出条件逻辑中有一些未知的魔法。经验告诉我要尽量避免使用它们。

    这很难看,但也许您可以通过将您希望输出的任何内容放在实际占位符中然后直接打印占位符来解决您的问题。

    【讨论】:

    • 无条件。在 sn-p 中设置一个占位符并尝试根据设置值输出。我还检查了新的 modx 安装。没有运气。
    【解决方案3】:

    不知道为什么这在你的情况下不起作用,所以我建议你用 sn-p 来做。

    [[EvalIsShowMore? &val=`[[+isShowMore]]`]]
    

    在 EvalIsShowMore sn-p 中放类似

    <?php
    
    if($val){
      echo 'something';
    }else{
      echo 'nothing';
    }
    

    【讨论】:

      【解决方案4】:

      嗯,可能您的占位符位于 sn-p 上方! 在 Modx 中,输出发生在最后一刻,但逻辑始终如一地工作(级联)。

      这是一个如何做的例子:

       [[+isShowMore]]
       [[!yourSnippet]]
       [[+isShowMore:is=`1`:then=`show more`:else=`no`:toPlaceholder=`isShowMore`]]
      

      另一个例子:

       [[+snippet_placeholder1]]
       [[!snippet]]
       [[+snippet_placeholder1:add=`[[+snippet_placeholder2]]`:toPlaceholder=`snippet_placeholder1`]]
      

      【讨论】:

        【解决方案5】:

        试试 eq 修饰符:

        [[+isShowMore:eq=`1`:then=`show more`:else=`no`]]
        

        【讨论】:

        • iseq 根据文档被处理为相同的输出修饰符,所以这不是真的。
        猜你喜欢
        • 2013-08-31
        • 2019-11-16
        • 1970-01-01
        • 1970-01-01
        • 2014-12-07
        • 2016-10-17
        • 2020-01-23
        • 2020-11-06
        • 1970-01-01
        相关资源
        最近更新 更多