substr PhpFox变量

时间:2014-03-19 04:05:05

标签: php phpfox templatetags

如何使用带有substr的PhpFox变量?当我在{php} {/php}中使用变量时,它给出了未定义的变量:

示例:

我有变量:{$aFeed.feed_image_onclick}

现在我想在我的模板文件中包含这个变量:

{php} substr($aFeed.feed_image_onclick, 1, 3);{/php} 

但是甚至可以在{php}标签中使用类生成的变量吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

避免使用{php} {/ php}块,这是做事的hacky方式。 相反,在php控制器中执行所有处理(/module/my_module/include/component/controller/my_controller.class.php),包括子串,调用服务函数,等等。然后分配给模板变量:

$this->template()->assign(array('some_var' => $my_thing));

当您在模板中使用{php}块时,您正在编写稍后将编译的内容,您可以使用类变量,但这是一种糟糕的方式(查看其中一个缓存文件,您将会找到所有使用的变量)

答案 1 :(得分:0)

是的,你可以。该变量称为

$this->_aVars['your_variable']

但如果你在一个循环中,那么你必须这样做

{foreach from=$aPage key=i item=page}
   {php} echo $this->_aVars['page']; {/php}
{/foreach}

要回答你的问题,你必须这样做:

<span class="values">{php} echo substr($this->_aVars['aFeed']['feed_image_onclick'],1,3); {/php}</span>

PS只是我的2美分:如果有可能这样做,开发人员会使用它 - 天气是否“hacky”。​​

答案 2 :(得分:0)

试试这个

    {$aFeed.feed_image_onclick|substr:1:3}

Phpfox模板之前|是函数的第一个参数,如果要将多个参数传递给函数,|之后是函数的名称,则只需添加{ {1}}在函数或参数之后添加像我在此代码中添加的参数。此代码将结果打印到模板。