I have stopped developing joomla extensions because of my other works, but I won't turn off the site as long as possible so feel free download my Joomla 1.5 extensions. :)

I am on a freedom
Home Joomla tippek | My Joomla tips Üres Joomla modulpozíció és modul elrejtése

Üres Joomla modulpozíció és modul elrejtése

Nyomtatás E-mail
(9 szavazat)
Joomla - Tutorial
Írta: Manó - 2010. március 11. csütörtök, 21:18

Legtöbb Joomla sablonban a modulpozíció megjelenése feltételhez van kötve. Ha nincs az adott modulpozícióhoz modul beállítva akkor nem jelenik meg. Így lehetséges, hogy a 3 oszlopból csak 2 jelenik meg egyes menüpontok alatt.

Abban az esetben, ha be van állítva modul, de abban nem jelenik meg semmi, akkor is 3 oszlopos marad az oldalunk pedig csak kettőben van érdemleges tartalom, így azt el szeretnénk rejteni. (Ilyen lehet például a Kapcsolódó cikkek / Related Items modul). Természetesen erre is van megoldás.

 

Nézzünk néhány ismert megoldást a modulpozíció elrejtésére.

1., Modulpozíció elrejtése, ha nincs beállítva modul

A sablonod index.php állományában ez valahogy így kell kinézzen:

<?php if ($this->countModules('right')) : ?>
<div id="right">
 <jdoc:include type="modules" name="right" style="rounded"  />
 </div>
 <?php endif; ?>

A kód használata azt eredményezi, hogy ha nincs a right modulpozícióban semmi akkor nem jelenik meg a right div sem.

2., Bővítsük ki egy kicsit ezt a kódot (ez a megoldás található a beez sablonban is), tegyük ezt a sablon elejére:

$showRightColumn = $this->countModules('right');
$showRightColumn &= JRequest::getCmd('layout') != 'form';
$showRightColumn &= JRequest::getCmd('task') != 'edit';

Majd ahol a right modul van oda tegyük ezt:

<?php if ($showRightColumn) : ?>
<div id="right">
 <jdoc:include type="modules" name="right" style="rounded"  />
 </div>
 <?php endif; ?>

Ebben az esetben akkor sem fog megjelenni a right div (esetünkben a bal oldali oszlop), ha a front-end-ről viszünk fel / szerkesztünk cikket. Szerintem ez egy hasznos kiegészítése a kódnak.

De nézzük meg mi van akkor, ha van a right modulpozícióban modul, de annak a tartalma üres. Ilyenkor azt vehetjük észre, hogy a right div megjelenik, és a modul címe is látszódik (persze csak a modul paramétereiben is be van állítva.) Szerintem elég szavaró amikor a "doboz" címe látszik, közben nincs is benne semmi.

 

Modul elrejtése, ha abban nincs semmi

1., Modulcím eltüntetés

Ha a modulpozíció style értéke rounded, akkor látszik a modul neve. Ennél egy fokkal jobb, ha a style értéket xhtml-re állítjuk (persze, csak ha nincs szükségünk a lekerekítésre, azaz egymásba ágyazott divekre), ilyenkor ugyanis a modul címe nem jelenik meg. Ha van másik modul is a rigth pozícióban, akkor ez elég is lehet, mivel a bal oldali oszlopon úgy is megjelenik, de az üres modul címe legalább már nem látható.

Ugyanakkor, ha szükségünk van a rounded beállításra, vagy csak egy modul van az adott pozícióban, amit teljesen el szeretnénk tüntetni, ha az üres, akkor az alábbi hack-re lesz szükségünk. (és ami miatt ez a kicsit hosszúra nyúlt bejegyzés is született :) )

2., Üres modul elrejtése

libraries\joomla\application\module\helper.php. állományban a ~ 205. sorban cseréljük le ezt:

$chromeMethod = 'modChrome_'.$style;

erre:

if(!empty($module->content)){
 $chromeMethod = 'modChrome_'.$style;
} else {
 $chromeMethod = 'modChrome_raw';
}

Igaz találtam még 1-2 megoldást, de mindamellet, hogy ez egy hack, ezt tetszett a legjobb, kipróbáltam és bevált.

Mivel a Joomla alap állományait kell módosítani, ezért verziófrissítéskor felülíródhatnak változtatásaink

"Modul elrejtése ha az üres" kódrészlet forrása : http://forum.joomla.org/viewtopic.php?f=500&t=458390

 

 

Hozzászólások  

 
0 #9 Manó 2013-01-05 13:21
Szia,
Abban egyetértek, hogy nem szabad túlságosan függeni külső fejlesztők kiegészítőitől, de ebben az esetben:
- ha az alap modulba nyúlsz bele, akkor a frissítéseknél erre mindig oda kell figyelni. (nem változott, változott, át kell vezetni a módosításokat)
- ez csak egy modul amiből van kb egy tucat, bármikor pótolható, cserélhető, nem függ tőle az oldal működése
Szóval szerintem ebben az esetben nem jelent szinte semmilyen kockázatot a külső bővítmény használata.
üdv
Laci
 
 
0 #8 2013-01-05 13:16
Idézet - Manó:
Szia,

Fura, de tényleg nincs ilyen beállítás, fel sem tűnt :)
Az az igazság, hogy én a joomla 1.5-nél leragadtam, és mostanában nem tudok joomlával foglalkozni.
Én a helyedben keresnék a JED-en egy komolyabb related items modult. Vagy a joomla fórumon is megérhet egy kérdést, de ha ragaszkodsz az eredeti modulhoz, akkor valószínű bele kell nyúlni a kódba.

üdv
Laci

Szia
Azért akartam a beépített szolgáltatások által nyújtotta lehetőségeket használni mivel nem akarok külső bővítményektől függeni, a későbbiekben vagy frissül, vagy nem, de fizetőssé is válhat. Sajnos ebből volt már gondom... Sajna a frissítéseket meg követném, legalábbis a biztonság miatt. Kutatok, hátha találok valamit.
Köszi a gyors választ.
 
 
0 #7 Manó 2013-01-05 13:05
Szia,

Fura, de tényleg nincs ilyen beállítás, fel sem tűnt :)
Az az igazság, hogy én a joomla 1.5-nél leragadtam, és mostanában nem tudok joomlával foglalkozni.
Én a helyedben keresnék a JED-en egy komolyabb related items modult. Vagy a joomla fórumon is megérhet egy kérdést, de ha ragaszkodsz az eredeti modulhoz, akkor valószínű bele kell nyúlni a kódba.

üdv
Laci
 
 
0 #6 2013-01-05 12:58
Idézet - Kiss:
Szia!
Tudnál abban segíteni hogy lehet azt megoldani hogy joomla kapcsolódó cikkek modul esetén limitálni lehessen a megjelenített elemek számát? A beállítások között nem találtam megoldást, valamilyen hack-al kivitelezhető e. :-*


Oh...
A lényeg lemaradt!!!
Remek az oldal!!!
 
 
0 #5 2013-01-05 12:57
Szia!
Tudnál abban segíteni hogy lehet azt megoldani hogy joomla kapcsolódó cikkek modul esetén limitálni lehessen a megjelenített elemek számát? A beállítások között nem találtam megoldást, valamilyen hack-al kivitelezhető e.
 
 
0 #4 Manó 2011-02-16 18:22
Köszönöm ;)
 
 
0 #3 2011-02-16 17:25
Köszi Manó a szuper tippet! Napok óta ezen szenvedtem. Juhuuu (és nagyon jó az oldal,gratulálok!)
 
 
0 #2 Manó 2010-03-15 12:11
Hello coilevi! Semmi gond! Örülök, hogy szétnéztél az oldalon, és hasznosnak találod.
 
 
0 #1 2010-03-15 01:16
Háj! Ne haragudj, nem akartam lepontozni ezt a cikket, csak most bukkantam az oldaladra - ami egyébként tök jó kezdeményezés -, és véletlenül rossz helyen kattant a bal gomb.
 

Mi is ez az oldal?

mano

Molnár László vagyok és ezen az oldalon főként a Joomla tartalomkezelő rendszerrel kapcsolatos dolgaimat találhatod.

Jegyzeteim igyekszem mások által is emészthető formában hozni, és időről-időre publikálni az oldalon.

Készülőben néhány bővítményem, amiket remélem hasznosnak fogsz találni.

Hasznos böngészést!
Manó