Suite à ce qui a été rapporté dans la documentation de hook_views_query_alter () , j'ai créé un fichier nommé alterform.views.inc
et l' ai placé dans un module activé appelé alterform
. J'ai ajouté le code suivant dans alterform.views.inc
.mais cela ne fonctionne pas.
function alterform_views_query_alter(&$view, &$query) {
switch($view->name) {
case 'myViewName':
echo 'test test'; // test
$query->orderby[0] = "FIELD(node.type, 'story', 'page', 'productTypeC', 'productTypeD') ASC";
$query->orderby[1] = "node_title ASC";
break;
}
}
pourquoi ne produit-il pas "test test"? Qu'est ce qui ne va pas avec mon code?
il n'y a toujours pas de sortie de test et de vues. Qu'est ce qui ne va pas avec mon code? Merci
alterform.views.inc
ne l'ai jamais utilisé, mais est-il possible que vous deviez inclure / exiger l' intérieur de votre module et vous ne l'avez pas fait?Réponses:
Droite. Pour "faire" quoi que ce soit avec des vues dans un module, vous devez implémenter hook_views_api. Sans cela, votre module ne sera jamais reconnu par Views (AFAIK).
Veuillez ajouter ce qui suit à votre code de module:
Cela devrait le corriger pour que votre module soit au moins reconnu, alors vous pouvez commencer à le déboguer :)
Un bon moyen de déboguer une vue (c'est-à-dire un petit pas) est de placer
dpm($view);
au début de la fonction de vues que vous implémentez. Dans la plupart des cas, cela affichera des informations sur l'écran qui vous aideront à voir où vous en êtes. Je suggérerais de le faire avec devel.module installé / activé.Edit: Cela suppose que les vues 2 et Drupal 6. Vous feriez mieux de demander si ce ne sont pas vos armes de choix.
la source
vous pouvez tester 3 choses:
dpm()
au lieu deecho()
$view->name
avecdpm()
la source
Vous devez placer le fichier yourmodule.views.inc dans le répertoire du module, pas dans un sous-répertoire, sinon Views ne peut pas le récupérer automatiquement.
la source
devrait être
la source
si vous utilisez un répertoire pour yourmodule.views.inc, vous devez mentionner son chemin dans le fichier de module, en utilisant un code similaire au suivant:
la source