[gelöst]noch eine PHP-Frage
Eingetragen von Ionit (1802)
am 18.08.2010 - 17:30 Uhr in
am 18.08.2010 - 17:30 Uhr in
Hallo,
ich muss leider nochmal bzgl. PHP fragen.
Ich gebe über die "views-view-field--field-1-kosten1-value.tpl.php" mit Hilfe von
<pre><?php print_r($view); ?></pre>
folgendes aus.
view Object
(
[db_table] => views_view
[base_table] => node
[args] => Array
(
[0] => 1
)
[use_ajax] =>
[result] => Array
(
[0] => stdClass Object
(
[nid] => 68
[node_data_field_1_kosten1_field_1_kosten1_value] => Kosten angeben
[node_language] =>
[node_type] => model
[node_vid] => 68
Weiter unten gibt es dann auch noch
[last_render] => Kosten angeben
[original_value] => Kosten angeben
Ich versuche nun die ganze Zeit schon "Kosten angeben" per PHP ausgeben - ich weiß abe rnicht welcher Wert dafür zuständig ist. Ist es [node_data_field_1_kosten1_field_1_kosten1_value]
oder [last_render]
oder doch [original_value]
?
Wenn ich <?php print $view['node_data_field_1_kosten1_field_1_kosten1_value']; ?>
nehme, bekomme ich nur ein Fehlermeldung - das selbe bei
<?php print $view['original_value']; ?>
Wie müsste der print Aufruf lauten damit ich diesen Wert ausgeben kann - ich kapiere es nicht.
Könnte mir bitte jemand erklären wie man schreibt?
- Anmelden oder Registrieren um Kommentare zu schreiben
Also wenn ich ganz oben "view
am 18.08.2010 - 18:26 Uhr
Also wenn ich ganz oben "view object" richtig deute, ist $view ein Object und kein Array, also müsstest du für "original_value" eher sowas schreiben:
<?php
print $view->original_value;
?>
(Objekte spricht man mit diesem Pfeil an, Arrays über den Index in eckigen Klammern)
Und diese Zeile:
<?php
print $view['node_data_field_1_kosten1_field_1_kosten1_value'];
?>
Kann so nicht funktionieren, weil dieses "node_data_field_1_kosten1_field_1_kosten1_value" kein direkter Unterpunkt von $views ist, sondern tiefer verschachtelt wurde. Das hier könnte evtl. funktionieren:
<?php
print $view->result[0]->node_data_field_1_kosten1_field_1_kosten1_value;
?>
Wenn ich dir übrigens einen Tipp geben darf:
Installiere dir Devel und dann verwende anstatt "print_r($view)" lieber "dsm($view)", das ist - meiner Meinung nach - wesentlich übersichtlicher ;-)
Hallo Toni, danke für die
am 19.08.2010 - 09:38 Uhr
Hallo Toni,
danke für die Hilfe.
Ich habe gestern - bzgl. des oben aufgeführten Problems - aufgegeben. Ich setze mich jetzt aber gleich nochmal ran und versuche den Aufruf nach Deinen Vorgaben.
Weiterhin fange ich heute mit diversen PHP-Tutorials an - ich habe in den letzten Wochen so viel Zeit "verplempert" weil ich die richtigen PHP-Aufrufe nicht hinbekommen habe .... mein PHP-Verständnis ist fast immer noch NULL ... damit muss mal Schluß sein.
Dank Dir und schöne Grüße
Matthias
Mensch Toni, <?phpprint
am 19.08.2010 - 12:47 Uhr
Mensch Toni,
<?php
print $view->result[0]->node_data_field_1_kosten1_field_1_kosten1_value;
?>
funktioniert super - auch
dsm
erzeugt eine schöne übersichtliche Ausgabe. Super!Jetzt bekomme ich endlich das hin was ich wollte ... (wenn "Kosten angeben" angegeben wurde, soll keine Ausgabe erfolgen)
<?php
switch($view->result[0]->node_data_field_1_kosten1_field_1_kosten1_value) {
case 'auf Anfrage': echo 'auf Anfrage'; break;
case 'Kosten angeben': echo ''; break;
}
?>
Perfekt - ich hab gestern den ganzen Nachmittag im Nebel gestochert und graue Haare bekommen und nun gehts so einfach.
Spitze!
Mal wieder besten Dank ;-)
Schöne Grüße
Matthias