[gelöst mittels Modul] Profilfelder ausgeben über PHP

am 24.02.2010 - 15:43 Uhr in
Liebe Leute,
leider nicht PHP-kundig finde ich das einfach selbst nicht raus
und ersuche um Hilfe.
Ich verwende ein Theme, dass mit
<?php
print $picture;
?>
mir das Userbild im Node anzeigt. Mit
<?php
print $submitted;
?>
bekomme ich "Veröffentlicht von 'username' am 'Datum'".
(Datei node.tpl.php)
Mit dem Modul Profile habe ich Felder angelegt, u.a.
profiles_vorname und profiles_nachname und diese will ich da
auch in jedem Node haben.
Was muss ich tun, dass ich diese im Node auch ausgeben kann,
also in der Form
"Veröffentlich von 'vorname' 'nachname'' am 'Datum'"
Meine Versuche z.B. mit
<?php
print $profiles_vorname;
?>
nicht gefruchtet, offenbar muss mich da irgendwie anders auf die
definierten Felder beziehen.
Herzlichen Dank im voraus,
LG Andrea
- Anmelden oder Registrieren um Kommentare zu schreiben
print_r
am 24.02.2010 - 16:11 Uhr
Hey, versuch mal sowas wie
<?php
print_r($node);
?>
Aus der Array Struktur (schau am besten in den Quelltext) kannst du dir raussuchen wie die heißen! Ich habe das mal bei CCK erweiterungen benutzt. Sieht dann ungefähr so aus:
$node->field_kurzinfo[0]['value'];
field_kurzinfo war mein CCK Feld. Ich denke dass du so auch die Felder vom Profilemodul finden wirst.
lg. Hydra
Stell dich nicht so an, frag einfach!
Du hast in der node.tpl.php
am 26.02.2010 - 15:47 Uhr
Du hast in der node.tpl.php keinen Zugriff auf die Profilfelder. Am besten du machst es über template_preprocess_node in der template.php
z. B.
<?php
function phptemplate_preprocess_node(&$variables) {
$account = user_load(array('uid' => $node->uid));
$variables['vorname'] = $account->profile_FELDNAME;
$variables['nachname'] = $account->profile_FELDNAME;
// dann kannst du in der node.tpl.php direkt auf $vorname und $nachname zugreifen
// hier kannst du auch das submitted direkt überscheiben
$variables['submitted'] = "Veröffentlich von 'vorname' 'nachname'' am 'Datum'";
}
?>
Also alles was anch den muster
$variables['bezeichnung']
definiert wird ist dann in der node.tpl.php als$bezeichnung
verfügbar.» forward-media.de Drupal Entwicklung | Drupal Tutorials
hmmmm
am 24.02.2010 - 16:57 Uhr
Danke!
@Hydra Das verstehe ich leider überhaupt nicht ....
Ich weiss auch nicht, wie ich überhaupt den Quelltext anschaue ...
@ derjochenmeyer
Ich habe diesen Code in die template.php übernommen (mit und ohne der
letzten $variables Zeile - leider zeigt mit dann Drupal überhaupt nichts mehr
an.
Eingefügt habe ich es ganz am Ende der Datei - gibts da einen speziellen
Ort, wo das hin soll, damit es klappt?
LG Andrea
Den wenn du in deiner
am 26.02.2010 - 15:47 Uhr
Den wenn du in deiner node.tpl.php
<?php
print_r($node)
?>
Allerdings wirst du die Informationen die du suchst da nicht finden. Du musst sie zugänglich machen. Am besten du suchst die Datei template.php in deinem Theme und fügst die von mir vorgeschlagene Funktion irgendwo am Ende der Datei ein.
Etwas PHP wird leider nötig sein.
Aber ich habe eben auch noch ein Modul gefunden was dir weiterhelfen könnte, hier: RealName
» forward-media.de Drupal Entwicklung | Drupal Tutorials
funktioniert leider nicht ...
am 24.02.2010 - 17:08 Uhr
@ derjochenmeyer@...
Ich habe alles so gemacht, ganz genau, ausgeben probiere ich mit
<?php
print $vorname;
?>
<?php
print $nachname;
?>
aber leider nichts.
LG Andrea
Modul probieren
am 24.02.2010 - 17:10 Uhr
Lieben Dank,
ich probiere es jetzt erst mal mit dem Modul, das ist vielleicht für mich
doch der bessere Weg. Ich habe leider nie PHP gelernt und mache immer
nur trial & error.
LG Andrea
Versuche es mal mit: <?php
am 24.02.2010 - 17:19 Uhr
Versuche es mal mit:
<?php print $account->profile_vorname; ?>
oder eleganter mit Test, ob der Wert vorhanden ist:
<?php if($account->profile_vorname) {print $account->profile_vorname;} ?>
PS.: Da ist jetzt ein Feld fürs Profil! Für nen Node könntest Du analog $author nutzen! Bin aber selbst PHP Trottel, deshalb ohne Gewähr :-)
Drupal 7 Screencasts in deutsch!
Klappt super mit dem Modul
am 24.02.2010 - 17:25 Uhr
Ich habe das Modul installiert, Konfiguration ist nicht schwierig.
Und es klappt ganz hervorragend.
Ausserdem macht das Modul auch noch das unhübsche "not verified" bei
Gästen weg, was auch klasse ist und eh auf meiner To Do Liste war.
Ich danke ganz ganz herzlich für die Hilfe, aber plage mich
jetzt nicht mehr mit dem PHP weiter.
Vielen lieben Dank!
Andrea
Profil laden
am 24.02.2010 - 17:26 Uhr
Um auf die Profilfelder zugreifen zu können musst du das Profil zuerst laden.
$user = user_load(array($node->uid));
$profile = profile_load_profile($user);
print $profile -> vorname;
vgl. http://api.drupal.org/api/function/