我正在为类别博客视图创建一个覆盖,我希望在此布局中有一个模块位置。那么,是否可以放置
<jdoc:include type="modules" name="modName" style="none" />
在templates / template / html / com_content / category / blog.php中,还是需要不同的代码?
答案 0 :(得分:8)
使用:
<?php
$document = JFactory::getDocument();
$renderer = $document->loadRenderer('modules');
$position = "YOURPOSITIONNAME";
$options = array('style' => 'raw');
echo $renderer->render($position, $options, null);
?>
来源:http://www.jeepstone.co.uk/2012/07/26/load-module-position-in-template-override-in-joomla-2-5/
文章写了Joomla 2.5,但我在Joomla的文章视图覆盖中测试了它! 3.3.6并且它也有效。
答案 1 :(得分:1)
jdoc:include标记在您的覆盖中不起作用。您需要的是以下代码(将MODULEPOSITION替换为位置名称)。
<?php
jimport('joomla.application.module.helper');
$modules = JModuleHelper::getModules('MODULEPOSITION');
foreach($modules as $module) {
echo JModuleHelper::renderModule($module);
}
?>
要将模块发布到该位置,您只需徒手将其输入到位置字段并按Enter键,您无需在XML文件中指定它。