Hauptmenü nur für angemeldete Benutzer

In Drupal 7 können einzelne Blöck nur für bestimmte Benutzerrollen angezeigt werden. Dazu müssen lediglich die Rollen des entsprechenden Blocks aktiviert werden.
Auch die Menüs sind Blöcke und können auf diese Weise z.B. für nicht angemeldete Benutzer oder bestimmte Benutzerrollen verborgen oder angezeigt werden.

Jedoch wird das Sekundärmenü (Hauptmenü) und das Primärmenü Standard mäßig über die page.tpl.php aufgerufen. Damit sind diese Menüs immer sichtbar, egal welche Einstellungen in dem „eigentlichen“ Menüblock getroffen wurde.

Um diese Menüs lediglich angemeldeten Benutzer angezeigt werden, muss die page.tpl.php etwas angepasst werden.
Dabei wird lediglich eine Abfrage hinzugefügt, die prüft, ob man angemeldet ist oder eben nicht. Falls man angemeldet ist, wird das Sekundär- und Primärmenü angezeigt.

    ...
    <?php print render($page['header']); ?>

// Original

// Beginn der eingefügten Zeilen

<?php
global $user;
if (
$user->uid) { ?>

// Ende der eingefügten Zeilen

//Originalcode

    <?php if ($main_menu): ?>
      <div id="main-menu" class="navigation">
    ...
      </div> <!-- /#secondary-menu -->
    <?php endif; ?>

//Originalcode

// Beginn der eingefügten Zeile

<?php } ?>

// Ende der eingefügten Zeile

//Originalcode

  </div></div> <!-- /.section, /#header -->
  ...