自定义智能功能'获取'和'替换'

时间:2013-09-06 02:39:50

标签: php html plugins smarty smarty3

我是Smarty的新手,我在为插件编写函数时面临一个小问题,我想从任意页面中插入的smarty标签中获取值,然后我希望在内部添加该值插件文件中的代码。确切地说,例如,这将是我的Smarty标签,我将在页面中插入:

{gallery link="../images/ball.png"}

现在我想要的是,我希望将我在link =“”标签中添加的图像链接插入到以下代码中的href =“”和src =“”标记内,将插入到插件文件中:

<a class="fancybox" rel="gallery1" href="IMAGE LINK FROM SMARTY TAG ABOVE"><img src="IMAGE LINK FROM SMARTY TAG ABOVE" alt="" width="200" height="200" /></a>

所以基本上,如果我使用以下标签:

{gallery link="../images/car.png"}

我希望在页面上回显:

<a class="fancybox" rel="gallery1" href="../images/car.png"><img src="../images/car.png" alt="" width="200" height="200" /></a>

经过大量的研究,我终于找到并阅读了这个tutorial,我已经学会了如何创建一个Smarty插件,但我不知道如何编写正确的函数以实现其功能我想要。

1 个答案:

答案 0 :(得分:1)

粗略地说,它会是这样的(未经测试):

插件文件夹中的

function.gallery.php

function smarty_function_gallery($params, $template)
{
    if (empty($params['link'])) {
        trigger_error("gallery: missing 'link' parameter",E_USER_WARNING);
        return;
    } else {
        $link = $params['link'];
    }

   return '<a class="fancybox" rel="gallery1" href="'.$link.'"><img src="'.$link.'" alt="" width="200" height="200" /></a>';
}

虽然我认为这是一个非常具体的html来制作一个插件只是为了那个