Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

[gelöst] - hook_menu_link_alter

Eingetragen von fk (23)
am 08.08.2011 - 10:16 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x

Hallo,

wie kann ich per hook_menu_link_alter die Ausgabe eines existierenden Links (z.B. user/register) verhindern? Der folgende Code funktioniert nicht - Cache natürlich geleert:

function beispiel_menu_link_alter(&$item) {
  if ($item['link_path'] == 'user/register') {
    $item['hidden'] = 1;
  }
}

Vielen Dank.
Gruß
Frank

‹ Blog als Unterseite im Userprofil Moduleanzeige ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Soll der Tab komplett

Eingetragen von Sense (1559)
am 08.08.2011 - 10:35 Uhr

Soll der Tab komplett deaktiviert werden, wenn ja kannst Du das entsprechend in der Administration einstellen, dass sich Benutzer nicht registrieren dürfen.
Wenn Du den Tab ausblenden möchtest, geht dies über den hook_menu_alter(). Dort steht auch der Code wie man mit disable den Eintrag deaktivieren kann oder als MENU_CALLBACK setzen kann, damit er nicht mehr ausgegeben wird, aber weiterhin verfügbar ist.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mir geht es in diesem Fall

Eingetragen von fk (23)
am 08.08.2011 - 10:54 Uhr

Mir geht es in diesem Fall nur um das Prinzip, wie ich per Modul-Programmierung einen vorhandenen Link nicht mehr anzeigen kann.

function beispiel_menu_alter(&$item) {

  // Tab nicht anzeigen - funktioniert
  $item['user/register']['type'] = MENU_CALLBACK;

  // Aufruf verbieten - funktioniert
  $item['user/register']['access callback'] = FALSE;

  // Link nicht anzeigen - funktioniert nicht
  $item['user/register']['disable'] = 1;

  // Link nicht anzeigen - funktioniert auch nicht
  $item['user/register']['hidden'] = 1;

}

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dann verwende doch das setzen

Eingetragen von Sense (1559)
am 08.08.2011 - 11:36 Uhr

Dann verwende doch das setzen als MENU_CALLBACK, dieses blendet den Link ja entsprechend aus lässt ihn aber weiterhin im Zugriff.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hhmm, bei mir wird der Link

Eingetragen von fk (23)
am 08.08.2011 - 11:52 Uhr

Hhmm, bei mir wird der Link trotzdem angezeigt (Standard Drupal-Installation). Der Tab wird ausgeblendet.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dann deaktivier doch einfach

Eingetragen von Sense (1559)
am 08.08.2011 - 12:48 Uhr

Dann deaktivier doch einfach über die Administration den Menüpunkt

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie am Anfang gesagt - ich

Eingetragen von fk (23)
am 08.08.2011 - 13:01 Uhr

Wie am Anfang gesagt - ich möchte das per Code machen und es geht nicht um den Link user/register. Ich will einfach Menü-Links per Code ausschalten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dann pass die entsprechenden

Eingetragen von Sense (1559)
am 08.08.2011 - 13:25 Uhr

Dann pass die entsprechenden Links im Menü doch via hook_menu_alter() an und setz diese auf MENU_CALLBACK, dann werden sie nicht mehr ausgegeben, außer Du verwendest einen manuell angelegten Menüpunkt, diesen musste Du aus der Administration entfernen oder deaktivieren (kann ich Dir aber auch nicht zu 100% bestätigen, mit dem manuellen Menüpunkten, habs noch nie getestet).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Entweder reden wir aneinander

Eingetragen von fk (23)
am 08.08.2011 - 14:16 Uhr

Entweder reden wir aneinander vorbei oder ich verstehe dich nicht.

function beispiel_menu_alter(&$item) {

  $item['user/register']['type'] = MENU_CALLBACK;

}

Durch diesen Code wird der Tab "Create new account" ausgeblendet. Bei einem anonymen User wird aber trotzdem, unter dem Login-Form, der Link "Create new account" weiterhin angezeigt. Den möchte ich per Code ausblenden - was aber anscheinend nicht geht. Ein Beispiel-Schnipsel für diesen Fall wäre hilfreich. Danke das du so lange durchhältst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Jetzt weiss ich auch endlich

Eingetragen von Sense (1559)
am 08.08.2011 - 14:38 Uhr

Jetzt weiss ich auch endlich was Du vor hast, Du möchtest aus dem Block den entsprechenden Link unter dem Formular entfernen:

<?php
function MODULENAME_form_alter(&$form, $form_state, $form_id) {
  if (
$form_id == 'user_login_block') {
   
// Remove "Create new account" link and override items array
    // @see user_login_block()
   
$items = array();
   
$items[] = l(t('Request new password'), 'user/password', array('attributes' => array('title' => t('Request new password via e-mail.'))));
   
$form['links'] = array('#value' => theme('item_list', $items));
  }
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Eine lange Geburt - ich werde

Eingetragen von fk (23)
am 08.08.2011 - 14:51 Uhr

Eine lange Geburt - ich werde in Zukunft verständlichere Fragen stellen. Vielen Dank für deine Geduld - es funktioniert. Das die Links zu einem Form gehören war mir zwar grundsätzlich klar - aber trotzdem nicht richtig bewusst.

Gruß
Frank

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
Weiter

Neue Kommentare

  • Arrrrg. Nix Tabelle :-D /*
    vor 4 Tagen 11 Stunden
  • Textboxen mit Tabelle
    vor 4 Tagen 17 Stunden
  • Du sollst ja auch keine
    vor 4 Tagen 17 Stunden
  • Theme
    vor 4 Tagen 18 Stunden
  • Welches Theme benutzt du
    vor 5 Tagen 4 Minuten
  • Mit Responsive Raster hatte
    vor 5 Tagen 14 Stunden
  • Hallo Alex,um das Häkchen
    vor 5 Tagen 22 Stunden
  • Modul view_unpublished
    vor 1 Woche 2 Stunden
  • Modul "override node options"
    vor 1 Woche 20 Stunden
  • Im Grunde ist dass ein
    vor 1 Woche 3 Tagen

Statistik

Beiträge im Forum: 250270
Registrierte User: 20477

Neue User:

  • Robertnobia
  • AltonRaf
  • JeffreyPaf

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 25 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association