【问题标题】:custom smarty function to 'get' and 'replace'自定义 smarty 函数来“获取”和“替换”
【发布时间】:2013-09-06 02:39:50
【问题描述】:

我对 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 插件,但我不确定如何编写正确的函数以实现我想要的功能.

【问题讨论】:

    标签: php html plugins smarty smarty3


    【解决方案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 片段,无法为此制作插件

    【讨论】:

    • 这对于我想要实现的功能来说非常有效,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2020-07-19
    • 2018-03-09
    • 1970-01-01
    相关资源
    最近更新 更多