如何在tpl文件中调用php函数?

问题描述:

我试图调用一个TPL文件内PHP函数:如何在tpl文件中调用php函数?

这里是我的功能:

public function encrypt($tag){ 
    return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, SALT, $tag, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)))); 
} 

我怎样才能把它从第三方物流?

请帮帮我!

+2

因为你有一个'public'可见性,这个方法是类的一部分吗? – NDM

+0

是的这种方法是类的一部分 –

似乎为smarty创建自定义修饰符是不错的选择。

http://www.smarty.net/docs/en/plugins.modifiers.tpl

或者你可以通过周围的PHP {} {/ PHP}标签函数调用。 http://www.smarty.net/docs/en/language.function.php.tpl

{php}encrypt($tag){/php} 

试试这个:

智者/库/插件/ modifier.tag.php:

<?php 
function smarty_modifier_tag($tag) 
{ 
    return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, SALT, $tag, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)))); 
} 
?> 

Smarty的文件:

{$foo|tag} 
+0

我在PHP中创建一个prestashop的插件,smarty是自动加载的!所以我不能访问smarty/libs/plugins/modifier.tag.php –

+0

对不起,我不熟悉prestashop。尝试在tools \ smarty \ plugins \文件夹中创建modifier.tag.php – Peca

请说清楚什么框架你在工作!如果 - 虽然 - 你在drupal框架中工作,你可以在template.php文件中的相应预处理函数中为任何tpl文件执行php代码。

+0

我正在为PHP中的prestashop创建一个插件,而且smarty是自动加载的! –