Token auswerten
am 29.03.2011 - 17:58 Uhr in
Hallo zusammen,
ich habe hier schon mal eine Anfrage gestellt: http://www.drupalcenter.de/node/34160
Möglicherweise ist die Frage hier aber besser aufgehoben.
Wie kann ich in einem node einen token-Wert auswerten? Ich möchte prüfen, ob der Token einen Wert enthält. Wenn ja, dann soll der Inhalt in der Anrede verwendet werden.
Wenn er leer ist, dann möchte ich ihn durch einen Platzhalter ersetzen.
Folgendes habe ich probiert - aber irgendwie funktioniert das nicht ....
Variante 1:
<?php
print '[simplenews-receiver-vorname]';
$vartemp ='';
$vartemp = '[simplenews-receiver-vorname]';
print $vartemp;
if ($vartemp == '') {
$name = 'Du';
} else {
$name = '[simplenews-receiver-vorname]';
}
?>
<?php
print 'Hallo ' . $name;
?>
Variante 2 mit if (empty($vartemp))
funktioniert auch nicht.
Es ist echt komisch, die Prüfung über print funktioniert immer richtig. Aber das Prüfen, ob die Variable leer ist geht einfach nicht.
Bei beiden Varianten wird der Name hinter Hallo gesetzt, wenn dieser in dem Token gespeichert ist. Dann gibt auch print 2x den Namen zuvor aus.
Wenn der Token aber leer ist, dann ist zwar auch 2x print leer, aber ich bekomme nie den Platzhalter "Du" angezeigt. Da kommt dann einfach nichts.
Das muss doch irgendwie gehen??? Ich verstehe nicht, warum ich zwar eine Variable mit dem Wert füllen kann, dieser aber dann nicht ausgewertet werden kann.
Kann mir da jemand helfen?
- Anmelden oder Registrieren um Kommentare zu schreiben
Vielleicht brauchst du noch
am 31.03.2011 - 08:23 Uhr
Vielleicht brauchst du noch ein rtrim() um evt. Steuerzeichen zu entfernen.
Mit empty() müsste das eigentlich gehen...
Temporäre Lösung
am 31.03.2011 - 16:27 Uhr
Hallo Luca,
leider hat auch das nicht funktioniert. Ich verstehe das einfach nicht. Ich habe jetzt aber eine temporäre Lösung:
ich habe das Modul so angepasst, dass dort der Platzhalter für den Token gesetzt wird wenn der Wert nicht anderweitig gefunden werden konnte.
Ich wäre aber immer noch an einer Lösung interessiert, da ich das Phänomen einfach nicht nachvollziehen kann ....
Hast du noch eine Idee, wie man am Bildschirm prüfen kann, ob da irgendwelche Steuerzeichen drin sind? Also, im Quelltext sieht man gar nichts ...
Wo rufst du das eigentlich
am 05.04.2011 - 14:52 Uhr
Wo rufst du das eigentlich auf?
Also, ich habe einen
am 05.04.2011 - 15:44 Uhr
Also, ich habe einen Inhaltstyp newsletter. In diesem habe ich ein CCK-Feld mit dem Eingabeformat php. Dort versuche ich den Token auszuwerten.
Auf drupal.org hab ich
am 06.04.2011 - 10:39 Uhr
Auf drupal.org hab ich folgenden Code für node-tokens gefunden, vielleicht besser so:
<?php
$nid = 1; // Replace with proper NID value here.
$node = node_load($nid);
$tokens = token_get_values('node', $node);
$tokens = array_combine($tokens->tokens, $tokens->values);
return !empty($tokens['simplenews-receiver-vorname']);
?>
Hi, Danke für den Code. Das
am 08.04.2011 - 12:36 Uhr
Hi,
Danke für den Code. Das hört sich ja super an.
Kannst du mir noch sagen, wie man nach dem return weiter verfährt?
Oder, würde man statt dem return dann ein
if (!empty($tokens['simplenews-receiver-vorname'])) {
....
Grüße