Views und Customfield PHP-Code

am 05.02.2011 - 15:50 Uhr in
Hallo Forum,
ich kämpfe nun schon wieder mit dem Problem, dass ich mit Costumfield mittels PHP die Variablen nicht konstant abrufen kann.
Aktuell habe ich folgenden Code verwendet:
<?php
if(isset($data->node_data_field_kurs_kuerzel_field_kurs_bezid_value)) {
print views_embed_view('Kursbeschreibung', 'kurz', $data->node_data_field_kurs_kuerzel_field_kurs_bezid_value);
} elseif(isset($data->node_data_field_kurs_bezid_field_kurs_bezid_value)) {
print views_embed_view('Kursbeschreibung', 'kurz', $data->node_data_field_kurs_bezid_field_kurs_bezid_value);
} elseif(isset($data->node_data_field_kurs_bezid_field_kurs_bezid_value)) {
print views_embed_view('Kursbeschreibung', 'kurz', $data->node_data_field_kurs_bezid_field_kurs_bezid_value);
}
/* print "<pre>".var_export($data, TRUE)."</pre>"; */
?>
Das habe ich so "gebastelt" da bei der Erstellung eines hervorgehobenen Filters der PHP-Code nciht mehr funktioniert, da sich:
$data->node_data_field_kurs_kuerzel_field_kurs_bezid_value
in
$data->node_data_field_kurs_bezid_field_kurs_bezid_value
"verwandelt"
Das ging auch ganz gut, nur sobald ich einen hervorgehobenen Filter verwende, also einen Wert eingebe, bekomme ich folgende Fehlermeldung:
user warning: Unknown column 'node_data_field_kurs_bezid.field_kurs_bezid_value' in 'field list' query: SELECT node_data_field_kurs_kuerzel.field_kurs_bezid_value AS node_data_field_kurs_kuerzel_field_kurs_bezid_value, node.type AS node_type, node.nid AS nid, node.vid AS node_vid, node_data_field_kurs_kuerzel.field_kurs_kuerzel_value AS node_data_field_kurs_kuerzel_field_kurs_kuerzel_value, node.uid AS node_uid, node_revisions.format AS node_revisions_format, node_data_field_kurs_kuerzel.field_kurs_stat_maxteilnehmer_value AS node_data_field_kurs_kuerzel_field_kurs_stat_maxteilnehmer_v, node_data_field_kurs_kuerzel.field_kurs_stat_preis_value AS node_data_field_kurs_kuerzel_field_kurs_stat_preis_value, node_data_field_kurs_kuerzel.field_kurs_stat_stundenzahl_value AS node_data_field_kurs_kuerzel_field_kurs_stat_stundenzahl_val, node_data_field_kurs_bezid.field_kurs_bezid_value AS node_data_field_kurs_kuerzel_field_kurs_bezid_value_1 FROM node node LEFT JOIN content_type_kurs node_data_field_kurs_kuerzel ON node.vid = node_data_field_kurs_kuerzel.vid LEFT JOIN node_revisions node_revisions ON node.vid = node_revisions.vid WHERE (node.type in ('kurs')) AND ((node_data_field_kurs_kuerzel.field_kurs_kuerzel_value) LIKE ('%509%')) ORDER BY node_data_field_kurs_kuerzel_field_kurs_bezid_value_1 ASC in /srv/www/650-fit-im-wasser/sites/default/modules/views/plugins/views_plugin_query_default.inc on line 1096.
Es muss doch eine Möglichkeit geben die Werte aus Drupal mittels PHP auszulesen.
Das Modul ist ja - so wie sich Drupal mit den Variablen verhält - nicht brauchbar. Oder liege ich da komplett falsch und muss die Werte anders abfragen?
In einem früheren Post erhielt ich die Info von $static, das klappte aber gar nicht und ich habe dazu auch gar nichts gefunden.
Für Hilfe bin ich dankbar!
Stefan
- Anmelden oder Registrieren um Kommentare zu schreiben
Views custom field
am 06.02.2011 - 20:10 Uhr
Hallo.
Oder liege ich da komplett falsch und muss die Werte anders abfragen?
Ja, Du liegst mit dieser Einschätzung komplett falsch und ja, die Daten müssen anders abgefragt werden.
Siehe dazu Be careful with Views Custom Field.
hth,
Stefan
Hi, letztendlich fasse ich
am 06.02.2011 - 20:49 Uhr
Hi,
letztendlich fasse ich zusammen, dass es keine Lösung gibt. Es sei denn, ich bastle die zehnfache Menge in meinen Code und in die Templates?
Andere Frage, gibt es eine Alternative zu costumfield PHP? Mir ist das zu viel "gebastel" und ich bin nicht so tief im Thema, dass ich das aktuell verstehe, was ich im Detail tun muss.
Besten Dank
Stefan
[Solution]
am 15.02.2011 - 14:52 Uhr
So, nu wird es interessant.
Ich bin in die Tiefen abgetaucht ;-) und auf "Node_load" (Node_load) gestoßen!
Damit sollten sich die Probleme an sich ganz einfach lösen lassen ;-)
Hier mal für den Schnelltest:
<?php
// wobei hier 6 die Node-ID ist.
$node = node_load(6, NULL, TRUE);
print "<pre>";
print_r($node);
print "</pre>";
?>