DomůČlánkyTipy a trikyPokročilé řízení zobrazování modulů

V Joomle lze pomocí nastavení ukrývat položky směrem opačným, tzn určit, že se má něco zobrazit pouze registrovaným a speciál uživatelům, nebo jenom speciál uživatelům, ale ne naopak, v tomto článku si ukážeme jak na to pomocí úpravy šablony.

Joomla API nám k tomu naštěstí nabízí potřebné funkce. Nejprve si musíme získat objekt uživatele:

$user=JFactory::getUser();

A tento objekt nám nabízí dvě pro nás užitečné položky - gid a id, které získáme metodou get(). První jmenovaný nám zpřístupní číslo skupiny, do které uživatel patří a druhý id uživatele. Seznam přiřazení čísla ke skupině uživatele najdeme v tabulce s poněkud komplikovaným názvem jos_core_acl_aro_groups:

+----+-----------+---------------------+-----+-----+---------------------+
| id | parent_id | name | lft | rgt | value |
+----+-----------+---------------------+-----+-----+---------------------+
| 17 | 0 | ROOT | 1 | 22 | ROOT |
| 28 | 17 | USERS | 2 | 21 | USERS |
| 29 | 28 | Public Frontend | 3 | 12 | Public Frontend |
| 18 | 29 | Registered | 4 | 11 | Registered |
| 19 | 18 | Author | 5 | 10 | Author |
| 20 | 19 | Editor | 6 | 9 | Editor |
| 21 | 20 | Publisher | 7 | 8 | Publisher |
| 30 | 28 | Public Backend | 13 | 20 | Public Backend |
| 23 | 30 | Manager | 14 | 19 | Manager |
| 24 | 23 | Administrator | 15 | 18 | Administrator |
| 25 | 24 | Super Administrator | 16 | 17 | Super Administrator |
+----+-----------+---------------------+-----+-----+---------------------+

Z této tabulky nás zajímají hlavně sloupce id a name. Jediné co zbývá upřesnit je jak zjistit jestli je uživatel příhlášen. Vězte je to jednoduché, nepřihlášený uživatel má id rovné 0.

Pokud tedy chceme zobrazit nějaký modul, nebo třeba menu pouze pro nepřihlášeného uživatele stačí před jeho defnici v šabloně uvést:

<?php
if($user->get('id')==0) {
?>
<jdoc:include type="modules" name="left_noreg" style="rounded" />

A do této pozice pak daný modul umístit.

Stejné je to i s parametrem gid. Pokud chceme, aby se jeden modul zobrazoval jinak pro uživatele ve skupině Registered a jinak pro Author a Editor, provedeme to následovně:


<jdoc:include type="modules" name="left_reg" style="rounded" />

<jdoc:include type="modules" name="left_auth_ed" style="rounded" />
<?php
}
?>

Stejný princip lze použít i u modulů, které umožňují přímo vkládání PHP kódu.

Komentářů (0)
Přidat komentář
YOUR_CONTACT_DETAILS:
Komentářů:
[b] [i] [u] [s] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
SECURITY
Prosím=vložte text z obrázku (anti-SPAM ochrana

Zprávičky

Napsat novou zprávičku  |  Vše

sh404SEF 2.0.3.545

Nová verze

Napsal Peter Smrčák | 13.08 22:12

Kunena 1.6 RC1

Nová verze

Napsal Peter Smrčák |  9.08 15:28

Vyšla nová Kunena RC1 pre pripravovanú Joomlu 1.6.

EasyBook reloaded!

Nová verze

Napsal Peter Smrčák |  4.08 06:41

Vyšla stabilná verzia obľúbenej návštevnej knihy EasyBook reloaded vo verzii 2.0.4.

VirtueMart 1.1.5

Nová verze

Napsal Peter Smrčák | 28.07 15:11

Práve vyšiel nový VirtueMart.

Táto verzia opravuje rôzne problémy.

changelog | download

Joomla 1.5.19

Bezpečnost

Napsal Filip Bartmann | 16.07 18:30

Dnešním dnem spatřila světlo světa další aktualizace stabilní řady Joomly 1.5, tentokrát s pořadovým číslem 19 a kódovým jménem Wojmamni ama batani. Jedná se o opravu několika menších bezpečnostních chyb v administraci a také novou verzi js frameworku Mootools.

Více...

Jméno Joomla!® je použito pod limitovanou licenci od Open Source Matters ve Spojených státech a ostatních zemích. Joomladev nemá spojení s Open Source Matters, nebo projektem Joomla! a není součástí jejich podpory
Logo Joomla!® je použito pod limitovanou licenci od Open Source Matters ve Spojených státech a ostatních zemích. http://joomladev.eu nemá spojení s Open Source Matters, nebo projektem Joomla! a není součástí jejich podpory