content profile und menu trail [gelöst]
am 04.11.2010 - 08:30 Uhr in
Moin moin,
ich habe eine Frage (oh wunder ^^)
Ich benütze Content Profile. Funktioniert eigentlich alles wunderbar.
Aber:
Wenn ich ein beliebiges Userprofil aufrufe, ist immer der Menüpunkt "Mein Konto" aktiv.
Nun habe ich eine user übersicht erstellt mit dem Menüpunkt "Mitglieder" (users/), und hätte nun gerne, dass dieser aktiv ist wenn man auf userprofilen ist, und "Mein Konto" nur aktiv ist, wenn man auf dem eigenen Profil ist.
Habe mir schon das Modul "Menutrails" geholt, aber das kann nur den aktiven Menüpunkt für "Profile" setzen, und somit nicht differenzieren zwischen dem eigenen und den anderen.
Für irgendwelche Anregungen wäre ich sehr dankbar...
Grüße,
Martin
- Anmelden oder Registrieren um Kommentare zu schreiben

zugehörige Module?
am 04.11.2010 - 09:54 Uhr
Guck doch mal unter http://drupalmodules.com/module/content-profile auf die "Related Modules", ob da was Passendes dabei ist.
danke für den Tipp, ganz
am 04.11.2010 - 12:19 Uhr
danke für den Tipp, ganz geschickt die related Modules...
Aber leider hab ich nichts passendes gefunden.
Irgendwie kann ich mir nicht vorstellen, dass das so kompliziert ist, schliesslich benutzen doch massig Leute content profile.
Da muss es doch irgendeine Standartlösung geben.
Mit Drupal 6 kannst Du das
am 04.11.2010 - 13:05 Uhr
Mit Drupal 6 kannst Du das theoretisch mit menu_set_item() auch manuell setzen: Siehe http://drupal.org/node/520106#comment-2040054
Danke für den Hinweis, aber
am 05.11.2010 - 10:53 Uhr
Danke für den Hinweis, aber leider komm ich damit nicht ganz klar.
Habs mit nem kleinen Modul und dem Hook menu_alter versucht.
Könntest du mir vllt noch ne kleine Starthilfe geben, wo und wie ich den Code am besten einsetze?
@xsonic Ich mache es so. Das
am 05.11.2010 - 11:17 Uhr
@xsonic
Ich mache es so.
Das (interne) Menü von Drupal blende ich komplett aus. Dann lege ich mir einen neuen Block an und gebe darüber die (Menü)Links aus. (Input-Filter: PHP-Code)
Mit diesem Code kannst Du Dir z.B. Links anzeigen lassen - ausschließlich - wenn Du auf Deinem eigenen Profil bist.
<?phpglobal $user;
if ($user->uid == arg(1) && arg(0) == 'user') {
print l("Profil bearbeiten", "user/" . $user->uid ."/edit" ."/profile");
}
?>
Unter print l - gibst Du halt die Links aus die Du für Dein Projekt brauchst.
Wenn Du den Code entsprechend anpasst, kannst Du das natürlich auch umgekehrt machen "Zeige Menüpunkt nur wenn ich auf Fremdprofilen bin".
if ($user->uid != arg(1) && arg(0) == 'user') {
Oder aber Du legst Dir zwei Blöcke an - einmal für die Links auf dem eigenen Profile und einen Block für Links fürs Fremdprofile - da "packst" Du dann die entsprechenden Links rein und steuerst die Sichtbarkeit über die "Block-Sichtbarkeitseinstellungen" (Nur anzeigen, wenn der folgende PHP-Code TRUE zurückgibt )
ok...das sieht nicht schlecht
am 05.11.2010 - 15:56 Uhr
ok...das sieht nicht schlecht aus, und funktioniert auch gut...
kann ich sicher mal gebrauchen...
Ich weiß allerdings nicht so recht was damit anzufangen.
Mein Menü steht schon und ist eigentlich fix und fertig.
Mir gings ja nicht darum, ein Item ein- oder auszublenden, sondern lediglich als aktiv zu markieren.
Wenn man irgendein Profil anschaut soll das item "Mitglieder" aktiv sein, wenn man sein eigenes Profil anschaut soll "Mein Profil" aktiv sein.
Gelöst hab ich's jetzt ganz einfach.
In der View vom content-profile folgender code:
<?phpglobal $user;
if ( arg(0) == 'user' && arg(1) != 'me' ) {
menu_set_active_item('users/');
}
?>
das 'me' weil ich das Me-Alias Modul benütze...