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
的字符串
我想为可以添加倒数计时器的文章编写一个 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