Ich möchte die Abfrage anzeigen, die in der Drupal-Ansicht ausgeführt wird. Derzeit im Ansichtseditor zeigt es die Abfrage, aber ich muss diese Abfrage in meinem Code verwenden, um eine Excel-Version der Ansicht herunterzuladen.
Gibt es eine Möglichkeit, die ausgeführte Abfrage auf dieselbe Weise zu erhalten, wie sie im "Editor" -Fenster des Ansichten-Menüs angezeigt wird? Ich möchte das zu dem Zeitpunkt, zu dem die Ansicht angezeigt wird.
Was ich hier vorhabe, ist, die Abfrage in der Fußzeile zu erfassen und diese Abfrage an einen Prozess zu senden, der eine XLS-Ergebnismenge zurücksendet. Also ich möchte die genaue Abfrage, die die Ansicht verwendet, um die Ergebnisse anzuzeigen.
Die Abfrage existiert im View-Objekt. Abhängig davon, wo Sie es verwenden möchten, können Sie die Variable in einer Vorverarbeitungsfunktion für Ansichten hinzufügen oder den Speicherort, an dem Sie die Ansicht aufrufen (wenn sie programmgesteuert aufgerufen wird).
Wenn Sie nur die Standardvorlage dafür verwenden, können Sie dort darauf zugreifen:
%Vor%Seien Sie vorsichtig, wenn Ihr Prozess willkürliche SQL-Anweisungen verwendet, besser, sie mit dem View-Namen aufzurufen und die Ergebnisse nach Bedarf programmatisch abzurufen. Oder haben Sie eine sekundäre Anzeige in Ihrer Ansicht, die das Ergebnis in einem XLS-Ergebnis direkt zurückgibt.
Oder Sie können hook_views_pre_execute
zusammen mit devel's dpq verwenden Funktion:
Legen Sie das Eingabeformat der Fußzeile auf PHP fest und fügen Sie dieses Codefragment in den Fußzeilentext ein:
%Vor% Verwenden Sie für eine Syntax-hervorgehobene Abfrage (mit geshifilter.module
) das folgende Snippet:
(Hervorgegangen aus @ Owens Antwort und Diskussion mit @ Mech-Software in den Kommentaren.)
Tags und Links php drupal drupal-6 drupal-views