【发布时间】:2018-02-28 02:46:05
【问题描述】:
我正在使用 Bootstrap 4.0 从头开始创建 Joomla 3.8 模板。同时我也在自学 Bootstrap 4.0 和 PHP,所以请多多包涵。
在主要组件区域下,我有一个全角位置,我称之为“feature_bottom”。目前,我有两个模块分配给该职位。在宽桌面屏幕上,它们垂直堆叠,每个全宽,但我希望它们并排直到较小的设备断点。在另一个菜单项上,该位置可能有三个或四个模块,因此硬编码模块的列宽是行不通的。
在我的 index.php 中,正文中有这段代码:
<?php if ($this->countModules('featurebottom')) : ?>
<div class="container-fluid">
<div class="row">
<div id="featurebottom" class="<?php echo $featurebottom_width; ?> featurebottom">
<jdoc:include type="modules" name="featurebottom" style="xhtml"/>
</div>
</div>
</div>
<?php endif; ?>
我无法解决的是如何以及在何处告诉模板在中加屏幕上如果 feature_bottom 位置有两个模块,那么它们应该与 col-md-6 并排,如果共有三个模块,每个模块与 col-md-4 并排,四个模块 col-md-3 以此类推,最多十二个模块分布在三行 col-md-4 上。
我已经在 head 标签上方尝试过这段代码(最多只有 4 个模块用于测试目的):
<?php if ($featurebottom == 2) {
$featurebottom_width = "col-md-6";
} elseif ($featurebottom == 3) {
$featurebottom_width = "col-md-4";
} elseif ($featurebottom == 4) {
$featurebottom_width = "col-md-3";
} else {
$featurebottom_width = "col-md-12";
}
?>
...但什么也没发生。这两个模块仍然相互堆叠。
我做错了什么?
模板可以在这里查看:https://www.vanillasponge.co.uk
更新:27.02.18
如果我通过浏览器的 Web Developer > Inspector 手动编辑页面并在“moduletable”之后添加类“col-md”(对于每个实例),我可以获得我想要的效果(见图)。
Screenshot of manually adjusted modules
如果我在 Joomla 模块高级选项卡中添加“col-md”作为模块类后缀,那么它也(有点)可以工作,但是 a)它会在模块标题下方缩进主要内容,并且 b)我不不想手动执行此操作,主要是因为我的技术不太熟练的客户将来可能必须在未来 18 个月左右更新他们当前的 Joomla 模板时使用此模块的版本才能使用Bootstrap 4. 我不能保证他们会记得添加模块类后缀。
【问题讨论】:
-
我不了解 Joomla,但查看您的模板我可以看到
$feature_bottom始终为 1(大概是计算模块而不是模块内的元素)。col-md-?类被应用于外部 DIV,而不是模块内的每个元素。我猜你需要在feature_bottom模块中进行类更改,而不是现在的位置。 -
谢谢。所以现在我需要弄清楚如何计算模块中的元素......或者放弃这个想法并拥有四个独立的模块位置并使用 countModules 函数。
标签: php bootstrap-4 joomla3.0