Siguiendo lo informado en la documentación de hook_views_query_alter () , creé un archivo llamado alterform.views.inc
y lo puse en un módulo habilitado llamado alterform
. Agregué el siguiente código en alterform.views.inc
.but no funciona.
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;
}
}
¿Por qué no muestra "prueba de prueba"? ¿Qué tiene de malo mi código?
todavía no hay salida de prueba y vistas. ¿Qué tiene de malo mi código? gracias
alterform.views.inc
interior de su módulo y no lo hizo?Respuestas:
Correcto. Para "hacer" cualquier cosa con vistas en un módulo, debe implementar hook_views_api. Sin esto, su módulo no será reconocido por Views, en absoluto, nunca (AFAIK).
Agregue lo siguiente a su código de módulo:
Esto debería solucionarlo para que su módulo sea al menos reconocido, entonces puede comenzar a depurarlo :)
Una buena forma de comenzar a depurar una vista (es decir, un pequeño paso) es colocarlo
dpm($view);
justo al comienzo de la función de vistas que está implementando. En la mayoría de los casos, eso descargará información en la pantalla que lo ayudará a ver dónde se encuentra. Sugeriría hacer esto con devel.module instalado / encendido.Editar: Esto supone Vistas 2 y Drupal 6. Será mejor que preguntes si esas no son tus armas preferidas.
fuente
puedes probar 3 cosas:
dpm()
lugar deecho()
$view->name
condpm()
fuente
Debe colocar el archivo yourmodule.views.inc en el directorio del módulo, no dentro de un subdirectorio, o las Vistas no pueden recogerlo automáticamente.
fuente
debiera ser
fuente
Si está utilizando un directorio para yourmodule.views.inc, debe mencionar su ruta en el archivo del módulo, utilizando un código similar al siguiente:
fuente