我是Joomla的新手,Joomla中的插件很少使用{}括号等变量。例如,“{mosmap}”在Joomla中显示Google地图。我想知道它是如何工作的,这样我就可以根据我的要求自定义插件。
答案 0 :(得分:3)
{}标记在Joomla插件中用作替换标记。它使用正则表达式匹配和替换。
作为示例,我们可以看到使用{loadposition}作为替换标记的加载模块插件的代码(您可以在文件中找到完整代码<Joomla_installation_folder>/plugins/content/loadmodule.php
)
它的工作方式如下 -
// expression to search for
$regex = '/{loadposition\s*.*?}/i';
$pluginParams = new JParameter( $plugin->params );
// check whether plugin has been unpublished
if ( !$pluginParams->get( 'enabled', 1 ) ) {
$row->text = preg_replace( $regex, '', $row->text );
return true;
}
// find all instances of plugin and put in $matches
preg_match_all( $regex, $row->text, $matches );
以上代码适用于Joomla 1.5。 Joomla 1.7使用相同的方法但存在一些差异,但您可以在<Joomla_installation_folder>plugins/content/loadmodule/loadmodule.php
函数中的onContentPrepare()
找到确切的代码。
答案 1 :(得分:1)
{},在wordpress中的[],它们被称为替换标签。我从未做过Joomla插件,虽然我做了一些模块和组件,但我在Wordpress中做了短标签,我猜他们的工作方式完全相同。
引擎,Joomla或Wordpress,检测{}或[]并将内容解析为可以转移到您的插件的内容,然后您的插件可以对其进行操作。
例如,在Wordpress中:
[mytag id="6" image="blabla.jpg"]
在我的函数中继续使用我的wordpress插件作为数组:
function mytag_plugin($data){
var_dump($data);
}
array(2){
[id] => (int)6,
[image] => (string)"blabla.jpg",
}
我建议您阅读http://docs.joomla.org/Plugin了解更多信息......