完成したコードがあり、完成したコード内に別のコードを追加したいと思います。
完成したコード:
function module( $prefix, $comma_seperated_suffixes ) {
foreach( (array)explode( ",", $comma_seperated_suffixes ) as $suffix ) {
$module_name = $prefix.trim($suffix);
if(count(JModuleHelper::getModules($module_name))) {
module_block($module_name);
}
}
}
私は機能に移動count(JModuleHelper::getModules($module_name))
しましたmodule
、以前はmodule_block
tovoltクラスを使用しないでください。つまり、phpクラスのない単純なコードです。
モジュールカウントブロック
私はこのモジュールを呼んでいると仮定しmodule("top-col-", "1,2,3");
ているので、3つのモジュールが呼ばれていますtop-col-1, top-col-2, top-col-3
次に、私のカウントモジュールは次のようになります。
$TopCol1 = (int)(count(JModuleHelper::getModules($module_name)) > 0);
$TopCol2 = (int)(count(JModuleHelper::getModules($module_name)) > 0);
$TopCol3 = (int)(count(JModuleHelper::getModules($module_name)) > 0);
上記のコードは、アクティブなモジュール(アクティブなモジュールをチェックする唯一の方法)をカウントするだけです。モジュールがアクティブな場合は、var
になります1
。
そして今、アクティブなモジュールを数える時間:
$topColCount = $TopCol1 + $TopCol2 + $TopCol3;
if ($topColCount) : $TopColClass = 'count-' . $topColCount;
endif;
count-1, count-2, count-3
このようなCSSクラスをアクティブなモジュールに設定したい場合はモジュールを数えています。そのクラスをで使用したいmodule_block
。上記の変数は静的であるため、手動で作成したことに注意してください。しかし、関数を呼び出す場合は、varを関数の値で変更する必要があります。たとえば、ユーザーが呼び出す場合はmodule("bottom", "1,2,3");
、そのcount_modules
ようになり$bottom1, $bottom2, $bottom3
、クラスはになります$bottomClass
。
count_module
同じコードを使って 生成したいmodule("bottom", "1,2,3");
助けてくれてありがとう@steve