所以我将ExpressionEngine字段导入php数组。我想显示一个名为{gearboxx_body}的字段,除非该字段有超过300个字符,在这种情况下我想显示一个名为{article_blurb}的字段。我很确定在ExpressionEngine字段和条件语中没有办法做到这一点,所以我尝试了一些PHP,我刚刚开始学习:
<?php
$info = array('{gearboxx_body}','{article_blurb}');
if(mb_strlen($info[0]) <= 300)
echo($info[0]);
}
else {
echo($info[1]);
}
?>
这样效果很好,但是有问题。如果标记包含任何撇号或引号,则它将结束字符串,并且页面将不会加载。那我该怎么办呢?我试图替换字符串中的引号,但我必须首先从字段中加载字符串,并且一旦我这样做,页面就已经破坏了。
希望这是有道理的。有什么建议吗?
答案 0 :(得分:1)
我建议您在EE插件中而不是在模板中处理:
我想到的插件有三个参数:
身体,模糊和角色限制。
假设您将插件称为“Blurby”。在模板中你只需要:
{exp:blurby body="{gearboxx_body}" blurb="{article_blurb}" char_limit="300"}
它会根据您在插件本身中定义的逻辑,可变地返回任一字段。
请参阅plugin developer documentation。
或者,您可以使用可怕的HEREDOC语法在将变量传递到数组之前设置变量:
$body = <<<EOT
{gearboxx_body}
EOT;
$blurb = <<<EOT
{article_blurb}
EOT;