Auto nodetitle und PHP-Code
am 29.11.2010 - 17:00 Uhr in
Hallo Leute, ich habe gerade mal wieder ein Problem.
Ich möchte hier bei diesem Node: http://www.fck-handball.de/spiele/1-herren-mannschaft-msg-oggersheim-lu-2
gerne den Titel via auto nodetitles automatisch aus CCK-Feldern erstellen lassen.
Momentan trage ich einfach nur FCK-Mannschaft - Gegner als Titel ein.
Jetzt möchte ich jedoch gerne eine Unterscheidung zwischen Heim und Auswärtspielen haben. Unterhalb des Datums habe ich die Ausgabe auch schon dementsprechend umgesetzt.
Ich habe es jetzt bei der Content-Type auto nodetitle Einstellung mit folgendem Code versucht
<?php
if ($node->field_ort[0]['nid']==1) {
$heim=$node->field_gegner[0]['safe']['title'];
$gast=$node->field_mannschaft_spiele[0]['safe']['title'];
} else {
$gast=$node->field_gegner[0]['safe']['title'];
$heim=$node->field_mannschaft_spiele[0]['safe']['title'];
}
print ($heim." - ".$gast);
?>
Wenn ich jetzt speichern will erscheint eine Fehlermeldung:
Bei der Gültigkeitsüberprüfung ist ein Fehler aufgetreten, bitte erneut versuchen. Falls der Fehler fortbesteht, wenden Sie sich bitte an den Administrator der Website.
Was mache ich falsch? Der Code funktioniert in der node-spiele.tpl.php
- Anmelden oder Registrieren um Kommentare zu schreiben
Habe das so noch nie gemacht,
am 29.11.2010 - 17:20 Uhr
Habe das so noch nie gemacht, aber so aus dem Stegreif würde ich sagen, dass Du das nicht printen, sondern returnen müsstest:
return ($heim." - ".$gast);
lg leda
"Du liebst es, Du brauchst es oder Du gibst es weg"
www.leda.ch
In welcher Funktion ist der
am 29.11.2010 - 17:32 Uhr
In welcher Funktion ist der Code denn eingebunden?
Das wäre ja das entscheidende ...
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Nun ja, wie gesagt, meine
am 29.11.2010 - 17:46 Uhr
Nun ja, wie gesagt, meine Antwort kam aus dem Stegreif...Du konntest ja den obigen Code irgendwo eintragen. Dort mal statt "print", "return" probieren...
In Drupal wird manches über Hooks gelöst, welche im richtigen Moment feuern und das Code-Snippet "abholen". Von daher muss man meistens nicht wissen, wann und wo die Function steht, sondern nur, dass sie
den Return-Wert aus dem PHP-Feld holt. Ich gehe davon aus, dass im AutoNodeTitle-Modul das auch so funktioniert.
Ansonsten musst Du auf jemanden hoffen, der dies selbst schon umgesetzt hat.
lg leda
"Du liebst es, Du brauchst es oder Du gibst es weg"
www.leda.ch
Mhhh darauf hätte ich aber
am 29.11.2010 - 19:24 Uhr
Mhhh darauf hätte ich aber auch selbst kommen können :(
Ist ja nicht so das es nicht drunter stehen würde ;)
Put PHP code above that returns your string
Also jetzt funktioniert das prinzipiell. Nur funktionieren hier meine Variablen nicht. Dadurch wird jetzt als Titel nur nbsp-nbsp eingestellt.
Computerboard da wird dir geholfen
Dann werden an dieser Stelle
am 29.11.2010 - 21:35 Uhr
Dann werden an dieser Stelle evtl. die CCK-Felder anders angesprochen. Du müsstest mal herausfinden, was genau die Variable $node an dieser Stelle enthält.
Oder du installierst das Modul Token, dann kannst du ganz einfach über Tokens auf die CCK-Felder zugreifen.
Danke für die Tipps, habe es
am 29.11.2010 - 22:30 Uhr
Danke für die Tipps, habe es aber bereits selbst umgesetzt. $node enthielt nur die Id´s der referenzierten Beiträge und nicht deren Titel. Habe die Titel dann via node_load() ausgelesen.
Computerboard da wird dir geholfen