在Joomla 的 Zt News 4 模板上,我试图在所有 k2 页面(如本节页面)上显示模块位置,但K2 项目页面页面除外。
没关系,但是有一个问题让我发疯;K2 项目页面从顶级页面(例如类别页面)继承“内容容器”的类因此,虽然在项目视图上我的模块位置比类别视图少 1 个,但内容容器不会填充足够的宽度。我使用此代码段在每个 k2 页面上显示模块位置,项目视图除外:
<?php
$com = JRequest::getCmd('option');
$view = JRequest::getCmd('view');
if(!($com =='com_k2' && $view!=='item')) : ?>
<jdoc:include type="modules" name="position-5" style="xhtml" />
<?php endif ?>
正如预期pistion-5
的那样,项目视图的 HTML 源代码中不存在代码,但内容容器仍然使用属于 3 列页面的“ span6 ”类。(实际上,我们需要为项目页面上的内容容器提供“span9”类)。ُ这些类是通过以下函数选择的:
public function isContent ()
{
$modLeft = $this->theme->countModules('position-7');
$modItem = $this->theme->countModules('position-custom');
$modRight = $this->theme->countModules('position-5');
switch(true) {
case (!$modLeft && !$modItem && !$modRight):
return "span12";
case (!$modLeft && !$modRight && $modItem):
return "span9";
case (!$modRight):
return "span9";
case (!$modLeft):
return "span9";
case (!$modItem):
return "span9";
default:
return "span6";
}
}
并以这种方式分配给容器:
<div class="<?php echo $function->isContent();?>">
<jdoc:include type="component" />
</div>
请把我从这个困境中拯救出来