Joomla 3.x.x 简码插件和模块出错

Error with Joomla 3.x.x Shortcode plugin and module

我想为可以添加倒数计时器的文章编写一个 Joomla 插件。我希望能够 运行 它使用,例如,简码 [countdowntimer date = "23-9-2017" time = "13:42"]。我不知道如何将参数添加到短代码并将它们移动到我的模块。更换我柜台上的 [countdowntimer] 我已经完成了。

<?php
defined( '_JEXEC' ) or die();

class plgContentShortcode extends JPlugin
{  
    protected $autoloadLanguage = true;
    function onContentPrepare ($context, $article, $params, $limitstart)
    {
    // preg_match("/([[]countdowntimer(.*)[]])/", $article->text, $tmp, PREG_OFFSET_CAPTURE);
    // I'm trying to extract parameters in this way

    // preg_match("/date=\"([0-9-]+)\"/", $tmp[2][0], $return_tmp['date'], PREG_OFFSET_CAPTURE); //date
    // preg_match("/time=\"([0-9:]+)\"/", $tmp[2][0], $return_tmp['time'], PREG_OFFSET_CAPTURE); // time

    $article->text = preg_replace('/([[]countdowntimer(.*)[]])/', '{loadmodule mod_countdowntimer}', $article->text);
    return true;
    }
}
?>

您在标题中提到您有一个 "error"。但是您没有说出您的代码的确切问题是什么(除此之外它不起作用)。 您可以为此使用现有的扩展,而不是编写您自己的插件:https://extensions.joomla.org/extension/modules-anywhere/。此扩展程序可以完全满足您的需求。

但是如果您想创建自己的插件,请查看 JModuleHelper class 以使用参数加载模块(参见:https://api.joomla.org/cms-3/classes/JModuleHelper.html)。 JModuleHelper::renderModule 的结果是一个可以附加到 $article->text

的字符串