Content Profil themen+Profilseite unter "Mein Konto" sichtbar machen?
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 23.04.2010 - 10:37 Uhr in
Hey,
leider habe ich in der Suche nichts bzgl. meines Problems gefunden. Komisch. Falls ich mit den falschen Suchbegriffen gesucht habe, bitte ich um Nachsicht.
Mein Problem:
Ich möchte Content Profile als Standardprofil auf meiner Seite benutzen. Deshalb habe ich einen Inhaltstypen erstellt und das Häkchen bei Content Profile gesetzt.
Nun möchte ich die Seite themem. Außerdem möchte ich, dass die Profilseite aufgerufen wird wenn man auf "Mein Konto" klickt.
Wenn ich eine node-profile.tpl.php (der Inhaltstyp ist profile) anlege passiert nichts, wenn ich auf mein Konto klicke.
Wenn ich eine user-profile.tpl.php anlege nimmt das System schonmal dieses Template an. Aber ich kann in diesem reinschreiben was ich will, ich bekomme einfach keinen Zugriff auf die Profilfelder:
<?php
print "anfang";
?>
<?php
content_profile_load($type, $uid, $lang = '');
?>
<?php
print dsm($node);
?>
<?php
print_r($node);
?>
<?php
print_r($form);
?>
<?php
print "ende";
?>
Lediglich "Anfang" und "Ende" wird ausgegeben.
Was mache ich falsch?
Vielen Dank im Voraus,
liebe Grüße Line
EDIT: Das Core Profil ist deaktiviert
- Anmelden oder Registrieren um Kommentare zu schreiben
Variablen
am 26.04.2010 - 23:05 Uhr
Hallo.
Was mache ich falsch?
Ein paar Kleinigkeiten, die jedoch eine entscheidende Wirkung haben ...
<?php
content_profile_load($type, $uid, $lang = '');
?>
Das ist vom Ansatz her schonmal gut, jedoch musst Du auch irgendwo die Variablen, die Du hier als Parameter für den Funktionsaufruf verwendest, mit Inhalt füllen (also erstmal definieren).
Dann rufst Du die Funktion einfach so auf, ohne den zurückgegebenen Wert (in diesem Fall das Node-Objekt) irgendwohin abzulegen.
<?php
// aktuelles Benutzerobjekt holen
global $user;
// $type ist bei Dir "profile"
$content_profile = content_profile_load('profile', $user->uid);
?>
Jetzt hast Du das zusätzliche Profil in der Variablen
$content_profile
verfügbar und kannst Dir mittels<?php dsm($content_profile); ?>
den Inhalt Derselbigen ausgeben lassen.<?php
print dsm($node);
?>
Das wird in Deinem Fall nichts ausgeben, da 1. die Variable
$node
nicht definiert ist, 2.dsm($node)
somit auch nichts liefert und 3.print dsm($node)
dementsprechend auch nichts ausgeben kann.hth,
Stefan
Hey Stefan, vielen Dank für
am 27.04.2010 - 11:39 Uhr
Hey Stefan,
vielen Dank für die Hilfe. Ich glaube langsam bin ich kurz vorm Durchbruch ;). Aber leider erst kurz davor.
Ich glaube das Laden des Content Profiles klappt jetzt - dank deiner Hilfe.
Aber wie kann ich jetzt sehen welche Variablen mir zur Verfügung stehen? print dsm($form) oder print dsm($content_profile) klappt leider auch nicht :(
EDIT: Es klappt mit dsm($content_profile) <- ein Schreibfehler war die Ursache. DANKE!!
Dann schließt sich noch eine Frage an:
Ich benutzte Content Profile, habe aber einfach eine user-profile.tpl.php erstellt und baue in dieser das komplette Profil auf. Ist das okay? Weil, ich glaub die ist für das Core Profil gedacht, oder irre ich mich da?
Vielen Dank,
liebe Grüße
Line
dsm
am 27.04.2010 - 11:40 Uhr
print dsm($form) oder print dsm($content_profile) klappt leider auch nicht :(
Kann ja auch nicht. Versuch einfach nur
<?php dsm($content_profile) ?>
.Ich benutzte Content Profile, habe aber einfach eine user-profile.tpl.php erstellt und baue in dieser das komplette Profil auf. Ist das okay? Weil, ich glaub die ist für das Core Profil gedacht, oder irre ich mich da?
Nein, Du irrst Dich nicht.
Das mit Content Profile erstellte Profil kannst Du über ein Template namens node-profile.tpl.php (in Deinem Fall) anpassen.
Hey Stefan, danke für die
am 27.04.2010 - 12:17 Uhr
Hey Stefan,
danke für die Hilfe. Also sollte ich nicht die user-profile.tpl-php verwenden? Das klappt, obwohl das Core Profil abgeschaltet ist.
Das mit Content Profile erstellte Profil kannst Du über ein Template namens node-profile.tpl.php (in Deinem Fall) anpassen.
Das Problem ist, ich habe 2 Inhaltstypen die als Content Profile makiert sind. Wenn ich auf Mein Konto klicke erscheinen ohne user-profile.tpl.php beide Inhalte untereinander. Den Inhaltstyp selber mit node-profile.tpl.php zu themen klappt zwar, aber ich würde gerne die komplette Seite unter Mein Konto themen (Deshalb auch das extra laden der Variablen, was nun klappt.)
Weißt du da evtl. auch eine Lösung?
Vielen Dank,
liebe Grüße Line
Hallo Line, ich muss auch
am 27.04.2010 - 16:16 Uhr
Hallo Line,
ich muss auch mein Content Profile themen. Heisst das ich lege einfach eine neue Datei node-profile.tpl.php an, gehe vor wie oben beschrieben den Inhalt des Profiles einladen und dann kann ich die Elemente wie ich möchte auf der Seite plazieren?
Bisher hab ich mich immer vor dem Themeing gedrückt...
Gruss, hurgl.
Hey, ich bin leider auch noch
am 27.04.2010 - 17:40 Uhr
Hey,
ich bin leider auch noch Anfängerin...deshalb weiß ich nicht genau ob folgendes richtig ist:
diese Load-Anweisung brauchst du glaub ich nur wenn du Variablen außerhalb deines entsprechenden Inhaltstyps (node-Inhaltstyp.tpl.php) zusätzlich laden willst.
Wenn du nur ein Content Profile hast, reicht es eine node-Inhaltstyp.tpl.php zu erstellen. Welche Variablen dann verfügbar sind kannst du mit
print dsm($node);
bei installiertem Devel-Modul bzw. mit<pre> print_r($node); </pre>
anzeigen lassen.Auf die Variablen greifst du dann über
<?php print $node->Feldname ?>
zu und kannst diese frei plazieren.Kann jemand von euch Profis evtl. diese Frage und meine weiter oben beantworten? Wäre super nett.
Danke,
liebe Grüße Line