Nos, 7-8 pozícióból 5-6-ban saját "alap" bannert berakni tényleg fura lenne. Az alap banner beállítása nem épp elegáns megoldás.
Viszont nem teljesen értem, miért áll fel a probléma?
1. Ha a sablonban megfelelően van beillesztve a banner modul pozíciója
- Kód: Az összes kijelölése
<?php if($this->countModules('banner1')) : ?>
<div id="banner1">
<jdoc:include type="modules" name="banner1" />
</div>
<?php endif; ?>
akkor a baner1 div csak akkor jelenik meg, ha ténylegesen van publikálva a baner1 pozícióban pld. egy banner modul. Tehát ha nincs mgfelelő bannered a banner1 pozícióra, akkor egyszerűen nem publikálod a modult. Olyan esetben, hogy publikált a modul, de a beállításaival sikerül olyan kombinációt összehozni, hogy a modul nem talál egyetlen megfelelő bannert sem - nos ez már inkább adminisztráció/logikai megfontolás kérdése. Ugye nem úgy vannak definiálva a most "nem használt" pozíciók, hogy egy nagy üresség van ott - banner helyett?
Másik megoldás a mod_banner módosítása (MVC használatával is akár )
- Kód: Az összes kijelölése
<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>
<div class="advs bannergroup<?php echo $params->get( 'moduleclass_sfx' ) ?>">
<?php if ($headerText) : ?>
<div class="bannerheader"><?php echo $headerText ?></div>
<?php endif;
foreach($list as $item) :
?><div class="banneritem<?php echo $params->get( 'moduleclass_sfx' ) ?>"><?php
echo modBannersHelper::renderBanner($params, $item);
?>
</div>
<?php endforeach; ?>
<?php if ($footerText) : ?>
<div class="bannerfooter<?php echo $params->get( 'moduleclass_sfx' ) ?>">
<?php echo $footerText ?>
</div>
<?php endif; ?>
</div>
Ezen annyit kellene változtatni, hogy a
if ($headerText) : feltétel esetleg bővíteni úgy, hogy pld. ellenőrizze a $list tömb méretét/tartalmát (empty, size) - és abban az esetben, ha a $list több üres (ez azt jelenti, hogy nincs megfelelő banner!), akkor a
<div class="bannerheader"><?php echo $headerText ?></div> részt ne hajtsa végre.