Joomla 模块位置 else if

3
我正在制作一个响应式joomla模板,但是遇到了问题。
我有四个模块位置:header1,header2,header3和header4。如果只有一个位置激活,则它的类将是“col12”和“last”。
如果有两个位置,则两个位置的类都为“col6”,最后一个位置的类为“last”。
如果有三个位置,则所有位置的类都为“three”,最后一个位置的类为“last”。
如何在数组中实现这个功能?是否有更好的解决方法?
目前我正在使用这个方法,但是不起作用。请告诉我JAT3框架中使用的块系统,以及如何为我的模板创建类似于jat3的块系统。
if($header1 && $header2 && $header3 && $header4 > 0){
    $hCols='three';
}elseif($header1 && $header2 && $header3 > 0){
    $hCols='four';
    $h3last='last';
}elseif($header1 && $header2 > 0){
    $hCols='six';
    $h2last='last';
}elseif($header1 > 0){
    $hCols='twelve';
    $h1last='last';
}
1个回答

0

你可能想要检查所有的值是否都不为空(我更喜欢使用isset)- 但实际上你只检查了每个if中的最后一个值,你可以这样做:

if($header1 > 0 && $header2 > 0 && $header3 > 0 && $header4 > 0){
    $hCols='three';
}elseif($header1 > 0 && $header2 > 0 && $header3 > 0){
    $hCols='four';
    $h3last='last';
}elseif($header1 > 0 && $header2 > 0){
    $hCols='six';
    $h2last='last';
}elseif($header1 > 0){
    $hCols='twelve';
    $h1last='last';
}

你也可以只使用一个 &(按位运算符)来完成它(这可能是你最初的意图):

if($header1 & $header2 & $header3 & $header4 > 0){
    $hCols='three';
}elseif($header1 & $header2 & $header3 > 0){
    $hCols='four';
    $h3last='last';
}elseif($header1 & $header2 > 0){
    $hCols='six';
    $h2last='last';
}elseif($header1 > 0){
    $hCols='twelve';
    $h1last='last';
}

这不是我要求的,但它非常有帮助。 - user1289939

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接