Sablon tipp: Modul elrejtése bejelentkezés után

A JoomlaWiki wikiből

A Joomla! nagyon jó abban, hogy elrejt dolgokat a nyilvánosság elől, majd megjeleníti azokat a felhasználó bejelentkezése után. Azonban mi történik, ha egy modulpozíciót szeretnénk elrejteni például akkor, ha a felhasználó bejelentkezik. Ehhez mindössze pár sornyi kódra van szükség.

A modul elrejtéséhez csupán annyit kell megtudnunk, hogy a felhasználó be van-e jelentkezve. A Joomla! keretrendszer API-jának (ez a neve annak a kódnak, amely a Joomla! oldalt működteti) segítségével könnyen megkaphatjuk ezt az információt. Mindössze annyit kell tennünk, hogy megvizsgáljuk a felhasználó azonosítóját. Ha ez nem nulla, akkor be van jelentkezve. Nézzük hogyan is tehetjük ezt meg.

Nyissuk meg a sablon index.php fájlját, amelynek elérési útja ehhez hasonlóan néz ki:

templates/ja_purity/index.php

Ismernünk kell azt, hogy a Joomla! hogyan jelenít meg egy modulpozíciót (ezek a <jdoc: ... /> tagok). Keressük meg az elrejteni kívánt modulpozíciót, majd helyezzük ebbe a kódba:

  1. <?php
  2.   // A felhasználó objektumának átadása
  3.   $user = &JFactory::getUser();
  4.   // A felhasználó azonosítójának (id) átadása
  5.   $userId = $user->get('id');
  6.   // Rejtsük el a modulpozíciót, ha a felhasználó be van jelentkezve
  7.   if ($userId == 0) :
  8. ?>
  9.   <jdoc:include type="modules" name="nyilvanos-jog" style="xhtml" />
  10. <?php endif; ?>

Készíthetünk ehhez egy speciális modulpozíciót. A mi esetünkben ennek 'nyilvanos-jog' a neve azért, hogy jelezze csak a nyilvános joggal rendelkező felhasználók számára látható. Amikor a felhasználó bejelentkezik az oldalra, az összes 'nyilvanos-jog' pozícióban lévő modul eltűnik.

Ez egy nagyon egyszerű technika, de komoly hatást érhetünk el vele az oldalalon.

A cikk forrása: The Art of Joomla!