我想在加载任何页面时向Joomla插入一些代码。
为此,我创建了一个插入代码的模块。
我正在尝试使用
<?php
// $Id: helper.php
defined('_JEXEC') or die;
jimport( 'joomla.plugin.plugin' );
jimport( 'joomla.environment.response' );
class modInsertCode
{
function onAfterRender($params)
{
$code = 'some code';
$documentbody = JResponse::getBody();
$documentbody = str_replace ("</body>", $code." </body>", $documentbody);
JResponse::setBody($documentbody);
return true;
}
}
?>
但是JResponse :: getBody();返回一个空字符串。任何想法,修复此代码的解决方案?
谢谢,
答案 0 :(得分:1)
您必须使用插件执行此操作,您将无法使用模块执行此操作,因为在模块代码执行时尚未生成HTML响应。
我希望它有所帮助!
答案 1 :(得分:0)
我知道这有点旧,但为了将来参考,可以使用jQuery完成:
$doc = JFactory::getDocument();
$js = 'jQuery(document).ready( function() {
jQuery("#module'.$module->id.'").appendTo(document.body);
})';
$doc->addScriptDeclaration($js);
这假设您已将模块中的内容包装在以下内容中,包括模块ID以支持模块的多个实例。
<div id="module<?php echo $module->id; ?>"> Your content </div>