Je veux afficher la requête exécutée dans la vue Drupal. Actuellement, dans l'éditeur d'affichage, il affiche la requête, mais j'ai besoin d'utiliser cette requête dans mon code pour télécharger une version Excel de la vue. P>
Y a-t-il un moyen d'obtenir la requête exécutée de la même manière que celle indiquée dans la fenêtre "Editeur" du menu Vues? Je le veux au moment où la vue est affichée. P>
Qu'est-ce que je prévois de faire ici est de capturer la requête dans le pied de page et d'avoir cette requête affichée à un processus qui renvoie à un résultateur XLS. Je voudrais donc que la question exacte de la vue utilise pour afficher les résultats. P>
7 Réponses :
La requête existe dans l'objet View. Selon l'endroit où vous souhaitez l'utiliser, vous voudrez peut-être ajouter la variable dans une fonction de préprocession de vues ou l'emplacement que vous appelez la vue (si vous l'appelez de manière programmative).
Si vous utilisez simplement le modèle par défaut Pour ce faire, vous pouvez y avoir accès là-bas: P>
// ex. somewhere in your views-view--VIEW_NAME.tpl.php <?php print db_prefix_tables($view->build_info['query']); ?>
Cela semble plus ou moins ce que je veux, mais j'essaie de mettre cela dans le "pied de page" vs la vue.tps.php. J'ai essayé d'ajouter des globales $ vue mais cela n'a rien retourné. Cela semble prometteur si je peux le faire fonctionner.
Woot, je suis presque là, je l'ai eu du travail, à l'exception de la substitution des données de formulaire. Qu'est-ce qui manque? $ Current_View = Vues_GET_CURRENT_VIEW (); Imprimer db_prefix_tables ($ Current_View-> build_info ['Query']); Cependant, la requête revient avec [SQL CLIPPED] où (nœud.status <> 0) et (node.type in ('% s')) et (casetracker_case.case_status_id = '% s') Commande par node_comment_statistics_last_updétistique Desc Comment faire Je reçois la substitution% s incluse?
Je l'ai utilisé en utilisant le Query_args et en fonctionnant sur Sprintf. Merci une tonne, tu m'as sauvé beaucoup de travail.
Définissez le format d'entrée du pied de page sur PHP et coller cet extrait dans le texte de pied de page: pour une requête en surbrillance de la syntaxe (utilisation (tigu de la réponse @ Owen et de la discussion avec @ Mech-logiciel dans les commentaires.) P> P> geshifilter.module code>) , utilisez l'extrait de suivi: p>
Comment générer des requêtes sur l'écran.
Cela fonctionne pour moi à Drupal 7. P>
aller à: p>
vues / plugins / vues_plugin_query_default.inc P >
trouver cette fonction: p> juste avant la fin de la fonction, utilisez dpq ($ requis); p>
comme une note latérale, Pour l'exportation Excel, avez-vous essayé des vues Module d'exportation de données? P>
ou vous pouvez utiliser Hook_views_pre_execute Code>
ainsi que la fonction DPQ de Devel:
function MY_MODULE_views_pre_execute(&$view) { dpq($view->build_info['query']); }