我想在加载任何页面时向 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();返回一个空字符串。修复此代码的任何想法、解决方案?
谢谢你,
您必须使用插件来完成此操作,您将无法使用模块来完成此操作,因为在执行模块代码时尚未生成 HTML 响应。
希望对你有帮助!
我知道这有点旧,但为了将来的参考,这可以使用 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>