Indirekte Verlinkungen per User wie "Mein Profil bearbeiten" ....? [gelöst]
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 29.12.2009 - 22:06 Uhr in
Hallo,
ich würde gerne einen Link auf "Profil bearbeiten" setzen, so dass jeder eingeloggte User sein Profil beatbeiten kann.
Wie lautet hierfür der korrekte link?
Bis jetzt habe ich leider immer nur direkte links gesetzt, sprich "..../?q=user/1/edit". Die "1" im Link ist dabei User bezogen. Welchen Befehl muss ich setzten, damit es für den JEWEILIGEN user funktioniert?
Thx
- Anmelden oder Registrieren um Kommentare zu schreiben
Vllt funktioniert
am 29.12.2009 - 23:19 Uhr
Vllt funktioniert das:
<?php
global $user;
echo '<a href="/user/"';print $user->uid; echo '/edit>Profil bearbeiten</a>';
?>
Bisschen quick und dirty
mfg Cyberschorsch
_________
Mei is des schee
Wo willst Du den Link
am 29.12.2009 - 23:43 Uhr
Wo willst Du den Link setzen? In hook_user()? Wenn ja, dann für diesen Fall ein Beispiel (Variable
$account
ist also bekannt):<?php
drupal_set_message(t('<a href="@useredit">Change your password</a> from time to time.', array(
'@useredit' => url('user/' . $account->uid . '/edit'))));
?>
(Der Zeilenumbruch vor der ersten Klammer wird übrigens vom hier eingesetzten Codefilter veranstaltet, aus welchem Grunde auch immer.)
Vielen Dank für den
am 30.12.2009 - 14:01 Uhr
Vielen Dank für den Code.
Falls ich ihn in einer Seite (Node) einsetzten werden, wird er mir weiterhelfen.
Ich möchte den Link allerdings ganz simple unter "Verwalten/Strukturierung/Menüs" setzen.
Mit einem Code kann ich dort nicht viel anfangen (glaub ich).
Gibt's da nicht einen einfacheren Befehl?
Oder gibt's eine PHP, die das Menü representiert, so das ich den oben geposteten Code dort im Editor einfügen kann und die Funktion hinterher unter "Navigation" funktioniert?
Für das Menu, bzw. Links im
am 30.12.2009 - 14:19 Uhr
Für das Menu, bzw. Links im Menu empfielt sich immer das Modul Me aliases. Einmal installiert lassen sich damit dort wo z.b. die UID stehen würde Platzhalter mittels me platzieren.
Im Menu, um auf die Einstellungen zu verweisen wäre das z.B.: user/me/edit
Teste es einfach mal aus.
Grüße vom,
Genesis
Wow! Das Ding ist ziemlich
am 30.12.2009 - 15:25 Uhr
Wow! Das Ding ist ziemlich powerful. Sieht genau nach dem aus, was ich gesucht habe :)
Ich werds gleich ausprobieren. Ich hatte zu viel Ärger mit dem 6.14 -> 6.15 Upate und habe 6.15 daher komplett neu installiert. Leider gibt es einige Probleme. Wenn mir dabei Jemand helfen könnte, kann ich das Modul schneller testen.
Zum Thread geht's hier: http://www.drupalcenter.de/node/23960
Funktioniert absolut
am 31.12.2009 - 00:14 Uhr
Funktioniert absolut einwandfrei und genau wie ich es mir vorgestellt hatte! Vielen Dank!
wie kann ich das denn ohne
am 31.01.2010 - 11:31 Uhr
wie kann ich das denn ohne diese me modul machen ?
Normalerweise sollte bei
am 31.01.2010 - 11:49 Uhr
Normalerweise sollte bei einer D6.15 installation, wenn der User sich eingeloggt hat, im Navigations-Menu,
ein Link auf "Mein Konto" da sein, hier kann der User sein Profil bearbeiten, sofern der Admin dies nicht verhindert hat.
Grüße Uwe
das ist aber nicht mein
am 01.02.2010 - 20:46 Uhr
das ist aber nicht mein anliegen :)
das das so ist ist klar, das ist denke ich bei jeder drupal version so.
ich würde aber gerne einen menüpunkt erstellen über den der user dann sein profil bearbeiten kann
me aliases
am 01.02.2010 - 22:37 Uhr
Du kannst das in einem Minimodul selber mit der Hilfe des Codes unten zusammenbasteln oder aber me aliases verwenden und für den edit-Alias einen Menüpunkt erstellen. Was spräche denn gegen "me"?
Also etwa so:
useredit.info
; $Id$
name = useredit
description = Provides a user-edit menu link
core = 6.x
useredit.module
<?php
// $Id$
/**
* Implementation of hook_menu()
*
* Adds a menu item for editing own account
*/
function useredit_menu(&$items) {
$items['user/edit'] = array(
'title' => t('Edit profile'),
'page callback' => 'useredit_goto',
'access callback' => 'user_access',
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
function useredit_goto() {
global $user;
drupal_goto('user/' . $user->uid . '/edit');
}
?>
Ach ja: Cache leeren nicht vergessen (via admin/settings/performance).
Spitze, hat geklappt. Vielen
am 02.02.2010 - 13:24 Uhr
Spitze, hat geklappt. Vielen Dank :)
Habe gerade ein Modul geupdatet und bekam dann diese Meldung:
warning: Missing argument 1 for useredit_menu() in /srv/www/vhosts/funnydate.de/httpdocs/sites/all/modules/useredit/useredit.module on line 10.
Ja - teste mal das
am 02.02.2010 - 14:39 Uhr
Ungetestet. Versuche mal das in der useredit.module:
<?php
// $Id$
/**
* Implementation of hook_menu()
*
* Adds a menu item for editing own account
*/
function useredit_menu(&$items) {
$items['user/edit'] = array(
'title' => t('Edit profile'),
'page callback' => 'useredit_goto',
'access callback' => 'useredit_access',
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
/**
* Page forwarding callback.
*/
function useredit_goto() {
drupal_goto('user/' . $GLOBALS['user']->uid . '/edit');
}
/**
* Access callback for user account editing.
*/
function useredit_access() {
return $GLOBALS['user']->uid > 0 || user_access('administer users');
}
?>
danke, test läuft :) noch
am 02.02.2010 - 21:00 Uhr
leider eine nachricht, diesmal eine andere:
Missing argument 1 for useredit_menu() in /srv/www/vhosts/funnydate.de/httpdocs/sites/all/modules/useredit/useredit.module in Zeile 9.
und
Cannot use a scalar value as an array in /srv/www/vhosts/funnydate.de/httpdocs/sites/all/modules/useredit/useredit.module in Zeile 10.
danke für deine mühe
Oh je
am 03.02.2010 - 00:15 Uhr
Klar, dummer Fehler: ich habe die Parameter für hook_menu und hook_menu_alter verwechselt - bitte mache aus der Zeile
<?php
function useredit_menu(&$items) {
?>
diese:
<?php
function useredit_menu() {
?>
dann ist der Fehler weg, also zusammengefasst noch einmal:
<?php
/**
* Implementation of hook_menu()
*
* Adds a menu item for editing own account
*/
function useredit_menu() {
$items['user/edit'] = array(
'title' => t('Edit my profile'),
'page callback' => 'useredit_goto',
'access callback' => 'useredit_access',
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
/**
* Page forwarding callback.
*/
function useredit_goto() {
drupal_goto('user/' . $GLOBALS['user']->uid . '/edit');
}
/**
* Access callback for user account editing.
*/
function useredit_access() {
return $GLOBALS['user']->uid > 0;
}
?>
Da es eine Weiterleitung ist, bleibt der Menüpunkt allerdings inaktiv. Das aber kümmert (zumindest) mich nicht.
Der Menüpunkt ist zwar
am 03.02.2010 - 09:11 Uhr
Der Menüpunkt ist zwar nicht mehr da aber ich kann einen erstellen der dann auch funktioniert
Cache geleert?
am 03.02.2010 - 11:27 Uhr
Cache geleert?
Cache geleert ja. Der
am 03.02.2010 - 13:58 Uhr
Cache geleert ja. Der Menüpunkt war aber schon nach deiner zweiten Verbesserung nicht mehr da :)