Tengo una vista en mi sitio que tiene un nombre de clase específico. Quiero saber, dentro del archivo template.php de un tema, cómo puedo saber si una vista con un nombre de clase específico está disponible en la página solicitada.
Esto es muy importante para mí porque necesito incluir JavaScript y CSS específicos, cuando se usa una vista con un nombre de clase específico (como galería de imágenes) en una página.
views
theming
javascript
Mehrdad201
fuente
fuente
if($view->name == 'your-view-name' && $view->display_id == 'your-display-id')
Puede usar la función views_get_page_view para averiguar qué vista se está sirviendo en la página. Devuelve vistas objeto. Tenga en cuenta que en el fragmento de código a continuación debe comparar con el nombre legible por máquina de las vistas, pero, por supuesto, puede escribir su propia comparación basándose en el objeto de vista devuelto por views_get_page_view
fuente
En caso de que esto sea útil para cualquier otra persona que se encuentre con esta pregunta, busque como adjunto JavaScript para una vista de Drupal . En términos de D7 y Views 3.7, lo siguiente funcionó mejor para mí:
Esto fue beneficioso ya que quería mantener el código dentro de mi módulo, en lugar del tema, porque las mejoras aportadas por JavaScript no tenían nada que ver con la apariencia visual.
fuente
HOOK_views_pre_process
( api.drupal.org/api/views/views.api.php/7 ) a menos que se refiera a la razón por la que usar estoTHEME_preprocess_views_view
, en cuyo caso es solo por preferencia de dónde desea agregar sus modificaciones de código.HOOK_views_pre_render
se puede conectar desde un módulo, mientras queTHEME_preprocess_views_view
debe ir en su archivo de tema / plantilla. TambiénHOOK_views_post_render
puedes usarlo si lo prefieres.THEME_preprocess_views_view
, sí ... estoy seguro de que lo he hechohook_preprocess_views_view
en módulos antes.Si está en drupal 6 o 7, también puede incluir activos de JavaScript con el contexto de módulo agregar activos. Lo cual requiere contexto, pero puede estar seguro de que siempre se incluirá cuando se visualice la vista.
https://drupal.org/project/context_addassets
Desde la página del proyecto del módulo:
fuente
Escriba el código JavaScript que busca una clase específica en la vista, utilizando jQuery's hasClass () , e incluya su archivo JavaScript cuando se cumpla la condición.
Otra forma es poner una plantilla para su vista y agregar código JavaScript a través de esa plantilla usando drupal_add_js () .
fuente