Seguindo o que foi relatado na documentação de hook_views_query_alter () , criei um arquivo chamado alterform.views.inc
e o coloquei em um módulo ativado chamado alterform
. Adicionei o seguinte código em alterform.views.inc
.mas não 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 que não gera "teste de teste"? O que há de errado com o meu código?
ainda não há saída de teste e visualizações. o que há de errado com o meu código? obrigado
alterform.views.inc
interior do seu módulo e não o fez?Respostas:
Direita. Para "fazer" qualquer coisa com visualizações em um módulo, você precisa implementar hook_views_api. Sem isso, seu módulo não será reconhecido pelo Views, de forma alguma (AFAIK).
Adicione o seguinte ao código do seu módulo:
Isso deve corrigi-lo para que seu módulo seja pelo menos reconhecido, e você poderá começar a depurá-lo :)
Uma boa maneira de começar a depurar uma visualização (ou seja, um pequeno passo) é colocar
dpm($view);
logo no início da função de visualizações que você está implementando. Na maioria dos casos, isso despejará informações na tela que o ajudarão a ver onde você está. Sugiro fazer isso com o devel.module instalado / ativado.Edit: Isso assume as Views 2 e Drupal 6. É melhor você perguntar se essas não são suas armas de escolha.
fonte
você pode testar 3 coisas:
dpm()
vez deecho()
$view->name
comdpm()
fonte
Você precisa colocar o arquivo yourmodule.views.inc no diretório do módulo, não dentro de um subdiretório, ou o Views não pode buscá-lo automaticamente.
fonte
deveria estar
fonte
se você estiver usando um diretório para yourmodule.views.inc, precisará mencionar o caminho no arquivo do módulo, usando um código semelhante ao seguinte:
fonte