Quiero mostrar la consulta que se ejecuta en el drupal vista. Actualmente en el editor de la vista que muestra la consulta sin embargo tengo necesidad de utilizar esa consulta en mi código para descargar una versión de excel de la vista.

Es allí una manera de conseguir la consulta ejecutada de la misma manera que se muestra en el «editor» de la ventana del menú vistas? Quiero que este en el momento en que la vista se muestra.

Lo que va a hacer aquí es capturar la consulta en el pie de página, y que la consulta enviado a un proceso que va a enviar de vuelta un XLS conjunto de resultados. Así que me gustaría la consulta exacta de la vista para mostrar los resultados.

OriginalEl autor Mech Software | 2010-02-25

7 Comentarios

  1. 3

    La consulta existe en el objeto de la vista. Dependiendo de donde usted desea utilizar, puede que desee agregar a la variable en una vistas preprocesar la función, o la ubicación en la que está llamando a la vista (si llama él mediante programación).

    Si sólo está utilizando la plantilla predeterminada para ello, aunque, usted puede tener acceso a ella hay:

    //ex. somewhere in your views-view--VIEW_NAME.tpl.php
    <?php print db_prefix_tables($view->build_info['query']); ?>

    Tenga cuidado si el proceso se lleva a SQL arbitrarias sin embargo, puede ser mejor llamarlo con el nombre de la vista, y la tienen a través de programación a recoger los resultados. O bien, tener una pantalla secundaria en su punto de vista, que devuelve el resultado en un XLS conjunto de resultados directamente.

    Esto se ve más o menos lo que quiero, pero estoy tratando de poner esto en el «pie de página» vs el view.tps.php. He intentado añadir globals $ver, pero que devolvió nada. Esto se ve prometedor si puedo conseguir un trabajo.
    Woot, estoy casi allí, yo tengo trabajo, EXCEPTO para la expansión de los datos del formulario. ¿Qué falta? $current_view = views_get_current_view(); print db_prefix_tables($current_view->build_info[‘consulta’]); sin Embargo, la consulta devuelve [sql recortada] DONDE (nodo.estado <> 0) Y (nodo.tipo DE (‘%s’)) Y (casetracker_case.case_status_id = ‘%s’) ORDER BY node_comment_statistics_last_updated DESC ¿Cómo puedo obtener el %s de sustitución incluido?
    Tengo trabajo mediante el uso de la query_args y ejecutar a través de sprintf. Un millón de gracias, me has salvado de una gran cantidad de trabajo.
    bueno! me alegra ser de ayuda 🙂

    OriginalEl autor Owen

  2. 4

    Establecer el Pie de página del Formato de Entrada de PHP, y pega este fragmento de código en el texto del Pie de página:

    <pre><?php
      $v = views_get_current_view();
      $query = db_prefix_tables(vsprintf($v->build_info['query'], $v->build_info['query_args']));
      $replacements = module_invoke_all('views_query_substitutions', $v);
      $query = str_replace(array_keys($replacements), $replacements, $query);
      echo $query;
    ?></pre>

    Para un resaltado consulta (mediante geshifilter.module), utilice el siguiente fragmento de código:

    <pre><?php
      require_once drupal_get_path('module', 'geshifilter') .'/geshifilter.pages.inc';
      $v = views_get_current_view();
      $query = db_prefix_tables(vsprintf($v->build_info['query'], $v->build_info['query_args']));
      $replacements = module_invoke_all('views_query_substitutions', $v);
      $query = str_replace(array_keys($replacements), $replacements, $query);
      echo geshifilter_process($query, 'sql');
    ?></pre>

    (Deriva de @Owen respuesta y discusión con @Mech-Software en los comentarios.)

    OriginalEl autor smokris

  3. 0

    Cómo a la vista del resultado de las consultas a la pantalla.

    Esto funciona para mí en Drupal 7.

    ir a:

    vistas/plugins/views_plugin_query_default.inc

    encontrar esta función:

    /**
     * Generate a query and a countquery from all of the information supplied
     * to the object.
     *
     * @param $get_count
     *   Provide a countquery if this is true, otherwise provide a normal query.
     */
    function query($get_count = FALSE) {

    justo antes de la final de la función, el uso dpq($consulta);

      //Add all query substitutions as metadata.
      $query->addMetaData('views_substitutions', module_invoke_all('views_query_substitutions', $this));
    dpq($query);
        return $query;
      }

    OriginalEl autor mcaleaa

  4. 0

    como una nota del lado,
    para el excel de exportación, Han tratado de Vistas de Datos del Módulo de Exportación?

    OriginalEl autor arcsum

Dejar respuesta

Please enter your comment!
Please enter your name here