【问题标题】:expression engine / truncation - remove anything inside a <pre> tag表达式引擎/截断 - 删除 <pre> 标记内的任何内容
【发布时间】:2012-07-30 21:45:04
【问题描述】:

我正在使用表达式引擎字段来发布使用&lt;pre&gt; 元素和[code] 标记的代码示例,但我也将此字段用作摘录。在摘录中,我想删除这些前置元素中的任何内容(或以某种方式停止,一旦它到达&lt;pre&gt; 元素。有人知道该怎么做吗?这是我的摘录代码:

<p class="excerpt">{exp:trunchtml chars="300"}{code_content}{/exp:trunchtml}</p>

这是一个包含代码的示例条目:

</p>Blah blah blah Lorem Ipsum</p> <pre>[code]camera.position.set(0,20,35); [/code]</pre>

【问题讨论】:

    标签: php expressionengine truncate pre truncation


    【解决方案1】:

    这是一个非常具体的需求,我知道没有现有的插件可以做到这一点。您的两个选择是:

    创建一个专门的摘录字段(在制作更好的摘录和保持数据结构化方面确实是最好的)。

    或者,write your own plugin(真的不是很困难)哪个会取你传递的内容,然后 对其执行一些preg_replace() 以消除您的&lt;pre&gt; 元素及其所有内容,返回清理后的结果。

    所以它看起来像这样:

    <p class="excerpt">
        {exp:trunchtml chars="300"}
            {exp:my_plugin:replace_pre}{code_content}{/exp:my_plugin:replace_pre}
        {/exp:trunchtml}
    </p>
    

    这部分 PHP 将在您的插件中为您带来魔力:

    $content = $this->EE->TMPL->tagdata;
    preg_replace('/<pre[^>]*>.*?<\/pre>/i', '', $content);
    return $content;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-25
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      • 2010-09-12
      相关资源
      最近更新 更多