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

Links nur im eigenen Profil sichtbar machen

Eingetragen von wanderfrosch (56)
am 14.03.2008 - 18:36 Uhr in
  • Modul-Entwicklung
  • Drupal 5.x

Hallo,

ich versuche gerade (seit einiger Zeit) einen Link in das Benutzerprofil einzubauen. Dieser soll aber nur auf der Seite des eigenen Profils sichtbar sein. Aber irgendwie funktioniert das nicht.

Was vielleicht noch interessant ist, ich habe versucht den Code über Minipanels einzufügen.

<?php
 
global $user; 
if (
$user->uid == $node->uid){
     return
"<a href=\"test/node/add/biete\">--> hinzuf&uuml;gen</a>";
    }
?>

Kann mir da jemand weiterhelfen???

‹ Was ist notwendig, um ext. Daten automatiesiert zu speichern? Wie fügt man einen Menüpunkt für einen Knoten ein? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Views ist Dein Freund.

Eingetragen von quiptime (4972)
am 15.03.2008 - 05:32 Uhr

Die Loesung ist ganz einfach:

1.
Der Inhalt welcher von der Seite gezeigt wird die Du als Tab im Userprofil einbinden willst wird als View - Seiten-View - erstellt.

2.
Als URL fuer diesen View verwendest Du user/$arg/meineseite

3.
Im Bereich der Seitenkonfiguration des View gibt es ganz unten den Link "Menü"
- Die beiden Optionen "Menü bereitstellen" und "Menü als Karteireiter bereitstellen" aktivieren.
- Mit "Karteireitergewichtung" kannst Du die Stelle bestimmen wo der Tab erscheinen soll, weiter links oder weiter rechts.
- Der "Menütitel" ist die Bezeichnung des einzufuegenden Tab.

Beim Link "Default Menu Tab" nicht aktivieren.

4.
Als Argument (bei der Viewkonfiguration) verwendest Du "Benutzer: UID ist der Autor".

5
Weiterhin koennte man auch wahlweise zu Pkt. 4. mit einem Filter auf die Inhalte eines Users einschraenken:
"Node: Autor ist der aktuelle Benutzer" oder "Node: Current User Authored or Commented".

6.
Meine Beschreibung geht davon aus das ein User Inhalte erstellen kann die mit dem View zusammengestellt werden. Gibt es fuer einen einzelnen User (noch) keinen Inhalt den der View anzeigen kann so ist folgendes moeglich, um dem User eine kleine Hilfe zu geben eine solchen Inhalt zu erstellen wenn er auf den Tab in seinem Profile klickt.

7.
Im Bereich der Seitenkonfiguration des View kann man unter dem Link "Leerer Text" eine Info mit einem Link zum Erstellen betreffender Inhalte bereitstellen.
Tipp:
Dabei beim Eingabeformat unter dem Textfeld darauf achten dass nicht die benoetigten Linktags weggefiltert werden.

Als Beispiel fuer ein solchen Eintrag fuer den leeren Text koennte stehen. Code:

<p>&nbsp;</p>
<p>In diesem Bereich gibt es noch keinen Inhalt. Um eine Seite in diesem Bereich zu erstellen <a href="/node/add/der-entsprechende-Inhaltstyp" target="_parent">hier klicken</a>.</p>

Den Namen des "der-entsprechende-Inhaltstyp" kann man im Bereich "Inhalte erstellen" erfahren.

8.
Solltest Du den Breadcrumb verwenden wollen wenn man auf den neuen Tab klickt bzw. wenn Du den Breadcrum beeinflussen willst wenn man auf den neuen Tab klickt kannst Du im View als "Argument Handling Code" entsprechend Einfluss auf den Breadcrumb nehmen.

Beispiel um einen Breadcrumb in einem View zu erstellen:

$arr = array(
    l(t('Home'), 'node'),
    l(t('User account'), 'user'),
    'Mein Thema'
  );
drupal_set_breadcrumb($arr);

Wobei "Mein Thema" dem Inhalt der Seiten entspricht wenn die einzelnen User auf den neuen Tab klicken.

Achtung:
Der Link "node" trifft nur zu wenn Du in der Administration "node" auch als Startseite festgelegt hast. Sonnst gilt fuer den Link "node" in der Breadcrumbdefinition das was als Startseite festgelegt wurde.

9.
Wenn Du den Breadcrumb auch noch beeinflussen willst wenn man auf Links von Inhalten auf der unter dem neuen Tab gezeigten Seite klickt kannst Du das Modul "custom_breadcrumbs" verwenden: http://drupal.org/project/custom_breadcrumbs

--------------------------------------------------------------------------------

So, ich hoffe das war Jetzt nicht zu viel auf Deine kurze Frage.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Views ist mein Freund...

Eingetragen von wanderfrosch (56)
am 15.03.2008 - 13:56 Uhr

...mit Freunden ist das immer so´ne Sache. :-))

Hallo quiptime,
erstmal Viiiielen Dank für die ausführliche, kompetente Antwort.
Nur leider hilft mir das nicht wirklich weiter.
Vielleicht habe ich mich nicht deutlich genug ausgedrückt.

Ich möchte innerhalb einen Panels einen Link einbauen.
Weil, TABs finde ich, für das was ich da vorhabe, eher unpassend.

Ich habe mal diesen Screenshot gemacht um die ganze Sache etwas zu verdeutlichen.

Also dürfte doch eine einfache if-Abfrage reichen ??? - grübel.
So nach dem Motto: "Wenn der eingeloggte User" == "dem angezeigten Profil ist" - dann zeige den Link" - sonst halt nichts.

So habe ich mir das zumindest vorgestellt und probiert.
Bei Panels: "Inhalt hinzufügen" >> "New custom content"

LG
Der Wanderfrosch

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie Jetzt?

Eingetragen von quiptime (4972)
am 15.03.2008 - 14:03 Uhr

ich versuche gerade (seit einiger Zeit) einen Link in das Benutzerprofil einzubauen. Dieser soll aber nur auf der Seite des eigenen Profils sichtbar sein. Aber irgendwie funktioniert das nicht.

Was vielleicht noch interessant ist, ich habe versucht den Code über Minipanels einzufügen.

Das habe ich noch kapiert. Nach deinem letzten Post weiss ich nicht wo der Link, der nun doch kein Tab sein soll, erscheinen soll.

Meinst Du im Navigationsblock des jeweiligen User?

Nebenbei, die Hauptnavigation im Userprofil besteht aus Tabs.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Na so...

Eingetragen von wanderfrosch (56)
am 15.03.2008 - 16:01 Uhr

...wie es auf dem Screenshot zusehen ist (siehe den roten Kreis).
Ich wollte es halt nicht über Tabs machen, weil ich das nicht so Benutzerfreundlich finde.
Ich möchte den Link neben dem Thread in einem seperaten Panel stehen haben.

Ist der Screenshot bei Dir sichtbar???

Ich wills mal anders beschreiben.

- User A sieht in seinem Profil den Link.
- Geht er auf das Profil von User B sieht er den Link nicht.

Ich hoffe, ich habe jetzt die Verwirrung perfekt gemacht. ;-))

LG
Der Wanderfrosch

  • Anmelden oder Registrieren um Kommentare zu schreiben

User Profile Template

Eingetragen von md (3717)
am 15.03.2008 - 20:24 Uhr
wanderfrosch schrieb

Hallo,

ich versuche gerade (seit einiger Zeit) einen Link in das Benutzerprofil einzubauen. Dieser soll aber nur auf der Seite des eigenen Profils sichtbar sein. Aber irgendwie funktioniert das nicht.

Was vielleicht noch interessant ist, ich habe versucht den Code über Minipanels einzufügen.

<?php
 
global $user; 
if (
$user->uid == $node->uid){
     return
"<a href=\"test/node/add/biete\">--> hinzuf&uuml;gen</a>";
    }
?>

Kann mir da jemand weiterhelfen???

Der Code von dir dient zum Vergleich des Users, der gerade einen Node ansieht, mit dem Autor des Nodes. Der global $user ist IMMER der gerade angemeldete User.

Was du möchtest ist etwas anderes.
Ich würde das über ein neues Profil-Template machen. Zuerst diesen Code in deine template.php schreiben:

<?php
function phptemplate_user_profile($user, $fields = array()) {
    return
_phptemplate_callback('user-profile', array('account' => $user, 'fields' => $fields));
}
?>

In der user-profile.tpl.php stehen dir jetzt 2 Variablen zur Verfügung:
$account ist der user, dessen Profil gerade auf der Seite angezeigt wird
$user ist der angemeldete User, der sich dieses Profil gerade anschaut.

Sind beide gleich, schaut sich ein Benutzer gerade sein eigenes Profil an und dann generierst du den Link.

vg
--
md - DrupalCenter

mdwp* :: Drupal Services

  • Anmelden oder Registrieren um Kommentare zu schreiben

Genau das möchte ich

Eingetragen von wanderfrosch (56)
am 17.03.2008 - 10:06 Uhr
md schrieb

Hallo,

Der Code von dir dient zum Vergleich des Users, der gerade einen Node ansieht, mit dem Autor des Nodes. Der global $user ist IMMER der gerade angemeldete User.

Genau diesen Vergleich will ich halt anstellen.
Aber der von mir gepostete Code will nicht mitarbeiten.

LG
Der Wanderfrosch

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wo will der Code denn nicht

Eingetragen von md (3717)
am 17.03.2008 - 10:20 Uhr

Wo will der Code denn nicht 'mitarbeiten'? Hast du den Code in die template.php geschrieben? Hast du ein neues User-Profil Template angelegt? So tut der Code ja noch nichts.

vg
--
md - DrupalCenter

mdwp* :: Drupal Services

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe versucht den Code

Eingetragen von wanderfrosch (56)
am 17.03.2008 - 11:04 Uhr

Ich habe versucht den Code über bei Panels: "Inhalt hinzufügen" >> "New custom content".
Einzufügen.

Das sollte doch ( ...in meiner Theorie!? ;-) ) auch funktionieren.

Ich will das alles über Panels machen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nee

Eingetragen von md (3717)
am 17.03.2008 - 14:09 Uhr

Mein Code ist für die template.php und ein neues User Profil Template gedacht.

vg
--
md - DrupalCenter

mdwp* :: Drupal Services

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • 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
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 1 Tag 6 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Tag 22 Stunden
  • melde mich mal wieder, da ich
    vor 7 Wochen 6 Tagen
  • Hey danke
    vor 7 Wochen 6 Tagen
  • Update: jetzt gibt's ein
    vor 8 Wochen 15 Stunden
  • Hallo, im Prinzip habe ich
    vor 8 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 8 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 9 Wochen 2 Tagen
  • In der entsprechenden View
    vor 9 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 9 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 23 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