Alternatieve login

Drupal is een heel mooi en leuk CMS waar ik zeer graag mee werk. En ja, er is een maar... Ik ben niet echt te vinden voor iets wat je direct herkent. In drupal kan je origineel uit de hoek komen door een theme aan te passen of te maken maar waar je bijna onmiddelijk Drupal aan kan herkennen is de loginbox... Die is bij bijna elk theme heel gelijkaardig. Daarom heb ik even wat gezocht en gedaan om toch een iets wat andere login te creëeren.

Op deze site maak ik gebruik van een menu. Voor elke menu die er gemaakt wordt, wordt er automatisch een block aangemaakt die je op de site kan plaatsen.
Bij het configureren van een block kan je een PHP snippet toevoegen die bepaald wanneer de block getoond moet worden. Als we dus als PHP snippet code kunnen ingeven die ervoor kan zorgen dat die controleerd of iemand ingelogd is of niet, dan heb je de oplossing.
De code die dat doet voor ons, is de volgende:

<?php
 
global $user;
  return !
$user-&gt;uid != 0;
?>

$user is een variabele die verwijst naar de gebruiker die ingelogd is. Wanneer de gebruikers ID gelijk is aan 0, dan wil dat zeggen dat er niemand is ingelogd.

Dit is alles wat nodig is om de block te definiëren. Hieronder vind u de nodige stappen om de block aan te maken:

Menu aanmaken

  1. administer >> menu >> add menu
  2. Menu naamgeven, voorbeeld Login en dit opslaan
  3. Bij het overzicht van de menu, scrollen naar de zopas aangemaakte menu en klikken op add item
  4. Bij het Path dient u user in te geven. Deze path verwijst dan naar het loginscherm waar de gebruiker kan inloggen.
  5. Een 2de item toevoegen met Path gelijk aan user/register. Deze verwijst dan naar de registratiepagina zodat gebruikers ook kunnen registreren.

De menu is nu aangemaakt. De volgende stap is de block configureren en inschakelen.

Block configureren

  1. Block inschakelen via: administer >> blocks en op opslaan klikken.
  2. Naast de block op de link configure klikken.
  3. Show block on specific pages de derde optie kiezen: Show if the following PHP code returns TRUE (PHP-mode, experts only). . Daardoor kan u in het tekstveld onderaan, php code ingeven die bepaald wanneer de block beschikbaar is. Daarin geeft u volgende code in:
    <?php
     
    global $user;
      return !
    $user-&gt;uid != 0;
    ?>

Wanneer u dit hebt opgeslaan zal de niet ingelogde gebruiker een block zien met 2 links. 1 Voor het inloggen en 1 voor het registreren. Wanneer de gebruiker is ingelogd zal de block niet getoond worden.