Ich verwende Views PHP , um Felder in Views neu zu schreiben. Ich kann auf alle Variablen zugreifen, ABER auf diejenigen, die einen Build-Modus haben. In meinem Fall habe ich das Feld Inhalt: Knoten (das gemäß jeder Anzeige erstellt werden kann), auf das über die Variable zugegriffen werden soll $row->nodefield
. Der Inhalt dieser Variablen ist jedoch immer leer. Ich habe es mit anderen Variablen versucht, und jedes Feld mit einem Erstellungsmodus wird in Views PHP nicht gerendert .
Ist das ein Designproblem oder fehlt mir etwas?
Ich verwende Drupal 7 und Views 3
BEARBEITEN
Wenn Sie dpm () für verfügbare Werte verwenden, wird Folgendes zurückgegeben:
dpm ($ row)
dpm ($ data)
dpm($data)
Bereich.Die
$row
Elemente " Verfügbare Variablen" in Ansichten sind für das Abrufen von Feldwerten nutzlos. Sie müssen jedoch nicht verwendennoad_load
, um die benötigten Daten abzurufen. Blenden Sie zunächst wie gewohnt die Ausgabe des Felds aus, das Sie neu schreiben möchten, und verwenden Sie dann im Feld Ausgabecode Ihres PHP-Felds Folgendes$data
:In diesem Fall entferne ich nicht zugelassene Tags und ordne sie dem Inhalt zur Verwendung in einem NITF-Export zu. Wenn Sie sich nicht sicher sind, was drin ist
$data
, können Sie es sich natürlichprint_r($data)
ansehen.quelle
$data->field_field_body[0]['raw']['value']
, um den Rohwert zu erhalten.Zusätzlicher Tipp: Das $ data-Array enthält tatsächlich die Rohknotendaten und kann gedruckt werden. Aber um es richtig zu rendern, müssen wir die Felder mit Funktionen wie field_view_field verarbeiten .
quelle
Versuchen Sie dies in Innenansichten zu tun? Warum nicht einfach die Ansichtsvorlage selbst thematisieren, anstatt PHP global zu verwenden? Ich bin nicht sicher, ob print_r im Ansichtsfeld funktioniert. Wenn ich es wäre, würde ich einfach auf Thema -> Informationen klicken. Sie sehen so etwas wie Ansichten-Ansichtsfeld - MyViewName.tpl.php
(Bearbeiten, Erläutern) Kopieren Sie im Themenordner des Ansichtsmoduls "views-view-field.tpl.php", benennen Sie es in "views-view-field - MyViewName.tpl.php" um und legen Sie es in Ihrem Ordner / templates ab auf Ihrer Website sie. In der Datei sehen Sie so etwas wie
Sie können das löschen und alle Ihre Felder manuell wie hinzufügen
usw. Oder wickeln Sie die $ -Ausgabe mit dem ein, was Sie wollen.
Außerdem hatte ich nie viel Glück mit DEVEL, ich benutze immer nur:
Schauen Sie sich dann die Quelle der Seite an, um die Variablen zu erhalten. Vielleicht verwende ich DEVEL nur falsch, aber ich finde, dass ich die Variablen für jede Zeile mit einem normalen alten PHP var_dump viel einfacher abrufen kann.
quelle
Ich habe zwei Tage damit verbracht, die Lösung zu finden. Am einfachsten ist es, das "Views Php Module" auf 7.x-2.x-dev zu aktualisieren. Der Maintainer hat dieses Problem in seiner 2.x-Version behoben.
Sie können von hier herunterladen ( Stellen Sie sicher, dass Sie 7.x-2.x-dev herunterladen ): https://www.drupal.org/project/views_php
Hoffnung kann jemandem helfen.
quelle
Sie sollten NIEMALS PHP-Code in Ihrer Datenbank speichern (und mit View PHP werden Sie). Verwenden Sie stattdessen einen Views-Hook, um die Ergebnisse zu ändern.
quelle