如何对每个模块使用不同的 CSS 类以使其成为网格


How to use different CSS classes with each module to make it grid

这是我正在创建的这个基本模块系统,用于在 joomla 模板中制作一个 6 列网格系统 是的,我已经成功地为每个网格创建了不同的类,即如果只有 4 个模块从 joomla 的后端启用,则类 dc-modules4 将自动启用,依此类推,但我需要帮助来调用一个类来保存单个模块,但现在当我调用 CSS 类时它包含所有模块并用 dc-module4 包装它,以便我可以在 CSS 中设置该类的样式,这是代码,这将有助于您理解它。

<?php
function Top(){
    $modules = array();
    $modules["top1"] = '<jdoc:include type="modules" name="top1" style="xhtml" />';
    $modules["top2"] = '<jdoc:include type="modules" name="top2" style="xhtml" />';
    $modules["top3"] = '<jdoc:include type="modules" name="top3" style="xhtml" />';
    $modules["top4"] = '<jdoc:include type="modules" name="top4" style="xhtml" />';
    $modules["top5"] = '<jdoc:include type="modules" name="top5" style="xhtml" />';
    $modules["top6"] = '<jdoc:include type="modules" name="top6" style="xhtml" />';
        foreach($modules as $module => $name){
            echo '<div class="dc-modules">'.$name.'</div>';
        }
}
if($this->countModules('top1')){
    $mod[0] = 'mod1';
}
if($this->countModules('top2')){
    $mod[1] = 'mod2';
}
if($this->countModules('top3')){
    $mod[2] = 'mod3';
}
if($this->countModules('top4')){
    $mod[3] = 'mod4';
}
if($this->countModules('top5')){
    $mod[4] = 'mod5';
}
if($this->countModules('top6')){
    $mod[5] = 'mod6';
}
$result = count($mod);
    if($result == 6){
        echo '<div class="dc-modules6">';
        echo Top();
        echo '</div>';
    }
    if($result == 5){
        echo '<div class="dc-modules5">';
        echo Top();
        echo '</div>';
    }
    if($result == 4){
        echo '<div class="dc-modules4">';
        echo Top();
        echo '</div>';
    }
    if($result == 3){
        echo '<div class="dc-modules3">';
        echo Top();
        echo '</div>';
    }
    if($result == 2){
        echo '<div class="dc-modules2">';
        echo Top();
        echo '</div>';
    }
    if($result == 1){
        echo '<div class="dc-modules1">';
        echo Top();
        echo '</div>';
    }
?>

花了两个小时后,我刚刚提出了网格系统的解决方案,希望你们可以利用这一点,希望有人能以更好的方式改进我的代码,所以这里是

<?php
    if($this->countModules('top1')){
        $modules["top1"] = '<jdoc:include type="modules" name="top1" style="xhtml" />';
    }
    if($this->countModules('top2')){
        $modules["top2"] = '<jdoc:include type="modules" name="top2" style="xhtml" />';
    }
    if($this->countModules('top3')){
        $modules["top3"] = '<jdoc:include type="modules" name="top3" style="xhtml" />';
    }
    if($this->countModules('top4')){
        $modules["top4"] = '<jdoc:include type="modules" name="top4" style="xhtml" />';
    }
    if($this->countModules('top5')){
        $modules["top5"] = '<jdoc:include type="modules" name="top5" style="xhtml" />';
    }
    if($this->countModules('top6')){
        $modules["top6"] = '<jdoc:include type="modules" name="top6" style="xhtml" />';
    }
if(isset($modules)){
    $result = count($modules);
    foreach($modules as $module => $name){
        if($result == 6){
            echo '<div class="dc-modules6">';
            echo $name;
            echo '</div>';
        }
        if($result == 5){
            echo '<div class="dc-modules5">';
            echo $name;
            echo '</div>';
        }
        if($result == 4){
            echo '<div class="dc-modules4">';
            echo $name;
            echo '</div>';
        }
        if($result == 3){
            echo '<div class="dc-modules3">';
            echo $name;
            echo '</div>';
        }
        if($result == 2){
            echo '<div class="dc-modules2">';
            echo $name;
            echo '</div>';
        }
        if($result == 1){
            echo '<div class="dc-modules1">';
            echo $name;
            echo '</div>';
        }
    }
}
?>