Eu tenho uma exibição no meu site que tem um nome de classe específico. Quero saber, dentro do arquivo template.php de um tema, como posso saber se uma exibição com nome de classe específico está disponível na página solicitada.
Isso é muito importante para mim, porque preciso incluir JavaScript e CSS específicos, quando uma exibição com um nome de classe específico (como galeria de imagens) é usada em uma página.
views
theming
javascript
Mehrdad201
fonte
fonte
if($view->name == 'your-view-name' && $view->display_id == 'your-display-id')
Você pode usar a função views_get_page_view para descobrir qual exibição está sendo veiculada na página. Ele retorna o objeto de vistas. Observe que no snippet de código abaixo você deve comparar com o nome legível da máquina de visualizações, mas é claro que você pode escrever sua própria comparação com base no objeto de exibição retornado por views_get_page_view
fonte
Caso isso seja útil para qualquer pessoa que se depare com essa questão, procurando como eu fiz para anexar JavaScript a uma Drupal View . Em termos de D7 e Views 3.7, o seguinte funcionou melhor para mim:
Isso foi benéfico, pois eu queria manter o código dentro do meu módulo, e não o tema - porque os aprimoramentos trazidos pelo JavaScript não tinham nada a ver com a aparência visual.
fonte
HOOK_views_pre_process
( api.drupal.org/api/views/views.api.php/7 ), a menos que você esteja entendendo a razão pela qual usar issoTHEME_preprocess_views_view
- nesse caso, é apenas fora de preferência de onde você deseja adicionar suas modificações de código.HOOK_views_pre_render
pode ser conectado a partir de um módulo, enquanto queTHEME_preprocess_views_view
deve ir no seu arquivo de tema / modelo. Você também pode usarHOOK_views_post_render
se preferir.THEME_preprocess_views_view
, sim ... Tenho certeza que já fizhook_preprocess_views_view
em módulos antes.Se você usa o drupal 6 ou 7, também pode incluir recursos javascript no contexto do módulo e adicionar ativos. O que exige contexto, mas você terá certeza de que ele sempre será incluído quando a exibição estiver sendo renderizada.
https://drupal.org/project/context_addassets
Na página do projeto do módulo:
fonte
Escreva o código JavaScript que pesquisa por classe específica na visualização, usando hasClass () do jQuery , e inclua seu arquivo JavaScript quando a condição for atendida.
Outra maneira é colocar um modelo para sua visualização e adicionar código JavaScript através desse modelo usando drupal_add_js () .
fonte