我有一个自定义模板,在某些位置呈现模块。该模块对数据库进行查询并根据结果呈现。但是,如果对数据库的查询返回空行,则不必显示模块。
我在模板中有这个:
<!-- lo más de la semana -->
<?php if ($this->countModules('lo-mas') > 0): ?>
<div class="row">
<div class="lomas"> <h3>LO MÁS DE LA SEMANA</h3></div>
<jdoc:include type="modules" name="lo-mas" />
</div>
<?php endif; ?>
<!-- fin lo más de la semana -->
我可以有几个模块在"LO -mas"的位置,但如果,由于某种原因,所有的模块不呈现任何输出,我不希望显示标题("LO MÁS DE LA SEMANA")
这在Joomla 3中可能吗?
我认为您可以通过手动渲染模块来解决这个问题:
<?php
jimport( 'joomla.application.module.helper' );
$modules = JModuleHelper::getModules( 'lo-mas' );
$output = '';
foreach ($modules as $module) {
$output .= JModuleHelper::renderModule($module);
}
if (trim($output)){
?>
<div class="row">
<div class="lomas"> <h3>LO MÁS DE LA SEMANA</h3></div>
<?php echo $output; ?>
</div>
<?php
}
?>
您可以通过指定样式(通常是xhtml),并在输出中应用更多的html代码来确定模块的呈现方式。