example ctools php drupal drupal-6 drupal-views

php - ctools - ¿Cómo crear un filtro personalizado para el Módulo de Drupal View?



view php (5)

Tengo instalados los módulos Profile, CCK y Views2 en un sitio de Drupal 6. Agregué un campo de cadena al perfil de usuario. Puedo filtrar fácilmente en valores preestablecidos, a través del constructor de la GUI de Vistas, muy bien. Sin embargo, me gustaría que los criterios de filtro se establezcan dinámicamente en función de otras variables de entorno (a saber, $_SERVER[''SERVER_NAME''] ).

¿Hay algún ''filtro de vistas-de-cómo-hacer-personalizar-drupal'' básico en algún lugar? He estado buscando en la documentación, pero no es obvio para mi simple mente cómo hacerlo.


Existe la posibilidad, después de haber analizado el tipo de filtros instalados para mi propio sitio, de que los filtros deben basarse en algún campo de base de datos, en cuyo caso lo que está tratando de lograr no es posible. Parece que los filtros proporcionan la cláusula WHERE a la consulta SQL generada.

Habiendo dicho todo eso, si quiere seguir adelante, su mejor opción es comenzar con un módulo que ya proporcione filtros para Vistas. Hay filtros provistos con Vistas para el módulo Nodo; alternativamente, podría mirar el módulo de audio que también proporciona algunos filtros. Además, publicar en los foros de Drupal o en la lista de asistencia puede aparecer en otro módulo que le permitirá lograr lo que está intentando.


Sí, tú puedes hacerlo. Intente usar el módulo "bloque de filtro de vistas". Una vez que habilite el bloque, extraiga el html del bloque de "ver fuente" cuando vea la página. Ahora deshabilite el "bloque de filtro de vistas" ... cree su propio bloque personalizado ... agregue el código con el CSS que desee para que se vea bonito. Dentro de este código, use php para especificar dinámicamente lo que desea para la selección inicial del filtro. Asegúrate de elegir realmente el campo en el que se basa el filtro ... luego, dentro del bloque php personalizado usa el código php para escribir la condición IF para verificar el valor server_name y asignar el valor correcto a la variable filter ".

Quizás haya otras formas (posiblemente incluso mejores) de hacerlo para escribir un módulo para usar el filtro. Entonces esta es solo una sugerencia. También pruebe "Views PHP Filter". No lo he usado todavía, pero parece que vale la pena intentarlo.

  • por drupal usuario (nombre de usuario drupal: drupdrips)

Puede crear su propia función como sigue para agregar sus propios filtros.

<?php custom_views_embed_view($view_name, $display_id) { $view = views_get_view($view_name); $view->set_display($display_id); $id = $view->add_item($display_id, ''filter'', ''node'', ''created'', array( ''value'' => array(''type'' => ''date'', ''value'' => date(''c'')), ''operator'' => ''<='')); return $view->execute_display($display_id); } ?>


Puede usar el módulo viewsphpfilter que permite vistas de filtro por node id. Sin embargo, hay un parche si necesita extender esto para user views