zaterdag 23 februari 2013

Drupal7: Tekst onzichtbaar maken voor ingelogde gebruiker.

Stel je wil de bezoeker aanmoedigen om zich te registreren op je site. Vb. met deze tekst:

Registreer je en voeg commentaar toe!

Uiteraard is het zinloos dat bovenstaande tekst nog zichtbaar is voor een ingelogde gebruiker.

Je kan dit zoals altijd in Drupal op verschillende manieren doen, vb. door het toevoegen van een blok en deze een gebruikersrol meegeven, maar onderstaande code-snippet kun je overal gebruiker op je site, vb. in Panels, modules, templates, Basic-page, ...
Enige voorwaarde als je de code in een blok, basic-page, artikel, ... gebruikt moet je de PHP-filter activeren in de Drupal core.

Hier de code-snippet:

<?php
global $user;
// Indien een anonieme gebruiker
if ($user->uid == 0) {
  // Toon tekst
  echo 'Registreer je en voeg commentaar toe!';
}
?>


Woordje uitleg...

Een anonieme gebruiker geeft altijd een uid (=User Id) die gelijk is aan nul!
Een ingelogde gebruiker geeft altijd een uid die groter is dan nul!

Dus bovenstaande code in mensentaal betekent:
Wanneer een NIET ingelogde bezoeker de site bezoekt heeft deze een uid die gelijk is aan nul en is de tekst zichtbaar.
Wanneer een bezoeker is ingelogd heeft deze een uid gekregen die groter is dan nul en is de tekst niet zichtbaar.

Je kunt er ook voor zorgen dat een stukje tekst (vb. je bent ingelogd!) enkel zichtbaar is voor een ingelogde gebruiker.


<?php

global $user;
// Indien een gebruiker is ingelogd
if ($user->uid > 0) {
  // Toon tekst
  echo 'Je bent ingelogd!';
}

?>

In dit code-voorbeeld zie je indien de uid (dus ingelogde gebruiker) groter is dan nul de tekst 'Je bent ingelogd!' wordt getoont.



Geen opmerkingen:

Een reactie posten