2010-03-21 20 views
7

Suelo usar el Módulo de vistas de Drupal para compilar SQL que pego en mi código. Entiende bastante bien el esquema de la base de datos Drupal.Creador de consultas de Drupal

¿Hay un módulo que me daría esta funcionalidad o puedo este factor de Visitas?

Respuesta

3

estaría bien del módulo Vistas fue extendido para soportar mejor el uso programático, pero hasta entonces es posible que tal vez desee echar un vistazo a uno de mis colegas intento de crear algo similar a una cosa así: http://github.com/hugowetterberg/query_builder

relación a esto podría ser el intento de proyecto de servicios a proporcionar datos de puntos de vista como un servicio, un esfuerzo que en este momento estamos separando hacia fuera en su propio módulo: http://drupal.org/node/709100 Puede valer la pena seguir, ya que va a necesitar algún nivel de acceso programático a Vistas.

Otro ejemplo de un módulo que está accediendo Vistas programación es Semillas de Desarrollo Litenode: http://developmentseed.org/blog/2009/feb/4/litenode

actualización 15/12-2010: El EntityFieldQuery en Drupal 7 es casi como el uso de vistas mediante programación para construir consultas - la diferencia de que EntityQueryBuilder trabaja únicamente en entidades y campos y también con la ventaja de que puede generar consultas contra cualquier tipo de almacenamiento de campo en uso, por ej. una base de datos NoSQL como MongoDB. Ejemplo se puede encontrar aquí: http://drupal4hu.com/node/267

0

Sí, supongo que las vistas son las mejores para saber qué tablas se usan para el campo actual, porque muchos módulos (y más en vistas) tienen funciones de enlace, que proporcionan información sobre este campo, tabla y tipo de conexión con otros mesas.

También se puede leer esquema de las tablas y los campos a través de: http://drupal.org/project/schema

1

Aunque esta no es la manera ideal de hacer las cosas, puede obtener los resultados de una vista de la siguiente manera:

$view = views_get_view('search'); 
$view->set_display('main'); 
$view->set_items_per_page(0); 
$view->execute(); 

$items = array(); 
foreach ($view->result as $row) { 
    $items[] = $row; 
} 

De esta manera, cada vez que se modifique la consulta vistas , no tiene que volver a copiar el código. Acepto que Views debe dividirse en una API de creación de consultas y una UI.

+2

La versión 2.8 del módulo de vistas introdujo el 'views_get_view_result ($ nombre, $ display_id = NULL)' función para hacer esto. –

0

estoy curious- ¿para qué usar para construir Vistas SQL, y luego no utilizar Vistas?

Cuando se trata de cosas más difíciles, como relaciones de muchos a muchos, GROUP BY, COUNT, SUM, subquerying, etc. sea lo que sea que requiera la función, es mejor que la escriba usted mismo (especialmente si los módulos contrib no tienen soporte para vistas y necesita más que la tabla de nodos).

Para mí, cuando las Vistas no pueden hacerlo, escribo un módulo simple que invoca hook_menu (para registrar las rutas) con una devolución de llamada que hace las consultas que necesito.

+0

Creo que la pregunta acerca de qué tablas Drupal datas se eliminan ... – Nikit

+0

¡Respondió la pregunta usted mismo! "cuando Views no puede hacerlo" – Rimian

Cuestiones relacionadas