[gelöst] Menüpunkt mit UID als Variable erzeugen
am 24.03.2010 - 11:41 Uhr in
Hallo,
ich möchte einen Menüpunkt mit der uid des derzeitigen Benutzers erstellen.
Wie ich nun unter folgendem Beitrag gelesen habe, ist dies nicht so einfach möglich.
Aber ich möchte ja keinen neuen Menüpunkt "erfinden", sondern lediglich den Link von "Mein Konto -> Bearbeiten" direkt in das Hauptmenü "verpflanzen". Ist das über das Drupal Menüsystem nicht möglich
Danke, viele Grüße Stefan
EDIT:
Ich habe jetzt ein Minimodul geschrieben und folgenden Code eingefügt:
<?php
function edituser_menu() {
$menu['myself'] = array
(
'menu_name' => 'Benutzer bearbeiten'
);
return $menu;
}
?>
leider wird nichtmal der Menüpunkt unter Strukturierung > Menüs angezeigt.
Und wie die Funktion weiter ausgefüllt werden muss, dass dynamisch die UID eingesetzt wird, weiß ich leider auch nicht.
Kann mir jemand helfen?
Danke,
viele Grüße Stefan
- Anmelden oder Registrieren um Kommentare zu schreiben
Also ich kenne mich da jetzt
am 24.03.2010 - 16:16 Uhr
Also ich kenne mich da jetzt auch nicht so aus, aber das sieht mir nicht nach dem aus, was das handbuch darüber sagt, wie man so einen Eintrag über einen hook erstellt: http://www.drupalcenter.de/handbuch/15665
Der Aufbau des Menü-Items in
am 24.03.2010 - 16:43 Uhr
Der Aufbau des Menü-Items in hook_menu ist nicht vollständig. Du brauchst noch eine Callback-Funktion und Argumente für diese Funktion.
function edituser_menu() {
global $user
$menu['myself'] = array
(
'title' => 'Benutzer bearbeiten',
'page callback' => 'drupal_goto',
'page arguments' => array('user/' . $user->uid . '/edit'),
'access arguments' => array('access content'),
'description' => 'Direct to user edit page',
'type' => MENU_NORMAL_ITEM,
);
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
danke für die Hilfe. @Werner:
am 24.03.2010 - 17:40 Uhr
danke für die Hilfe.
@Werner: Ist deine Funktion jetzt vollständig? Sieht auf jedenfall gut aus ;-) Danke für die Mühe.
Habe jetzt den Cache gelöscht und das Minimodul in welcher ich die Funktion eingeplegt habe, deinstalliert und wieder installiert.
Wenn ich jetzt auf Verwalten -> Strukturierung -> Menüs -> Hauptlinks (oder Navigation, Sekundärlinks) gehe, erscheint der neue Menüpunkt aber leider nicht. Müsste er doch, oder?
Danke,
viele Grüße Stefan
Also zur Verfollständigung:
am 25.03.2010 - 10:23 Uhr
Also zur Verfollständigung: Du brauchst ein eigenes Modul, das ich "edituser" genannt habe. Also legst Du in sites/all/modules einen Ordner namens edituser an. darein kommen 2 Dateien edituser.info:
; $Id: edituser.info
name = Edituser
description = Create user edit menu.
core = 6.x
und edituser.module:
<?php
function edituser_menu() {
global $user;
$menu['myself'] = array
(
'title' => 'Benutzer bearbeiten',
'page callback' => 'drupal_goto',
'page arguments' => array('user/' . $user->uid . '/edit'),
'access arguments' => array('access content'),
'description' => 'Direct to user edit page',
'type' => MENU_NORMAL_ITEM,
);
return $menu;
}
Diese Modul findest Du dann unter Sonstige. Aktivieren und Du findest den Menüpunkt "Benutzer bearbeiten" im Navigation Menü. Willst Du ihn in einem anderen Menü haben noch die Zeile
'menu_name' => 'mein menu',
in den Menü-Array einfügen um den Eintrag in das gewünschte Menü zu schieben.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Hallo Werner, vielen Dank für
am 25.03.2010 - 11:12 Uhr
Hallo Werner,
vielen Dank für die klasse Erläuterung. Jetzt klappts. Ich hatte den Returnwert vergessen sowie den Link vergebens unter "Hauptlinks" gesucht. Jetzt klappt aber alles :)
Freut mich, das es bei Dir
am 25.03.2010 - 11:14 Uhr
Freut mich, das es bei Dir geht. Markiere dann bitte noch den Titel des ersten Beitrags im Thead mit [gelöst].
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ich bekomme immer einen falschen Wert für die uid
am 09.04.2010 - 19:41 Uhr
Ich weiß nicht was ich falsch mache. Der Menu-punkt erscheint ordnungsgemäß, aber ich werde immer auf den pfad: "user/collage/1/" geleitet, auch wenn ich nicht als admin eingeloggt bin. Weiß jemand warum das so ist? Normalerweise müsste §user->uid doch imm er die user id des eigenen Nutzers liefern.
<?php
function collagemenu_menu() {
global $user;
$menu['mycollage'] = array
(
'title' => 'Meine Collage',
'page callback' => 'drupal_goto',
'page arguments' => array('user/collage/' . $user->uid . '/'),
'access arguments' => array('access content'),
'description' => 'Direct to user collage',
'type' => MENU_NORMAL_ITEM,
);
return $menu;
}
selbe Problem
am 22.04.2010 - 14:10 Uhr
Hallo,
ich habe genau das gleiche Problem. Wie kann man das ganze nicht cachen lassen - oder woran liegt das?
Gruß Matze