it-swarm-es.tech

¿Cómo debo usar view.raw.php correctamente?

Estoy tratando de agregar un botón personalizado JToolbar a mi vista de lista que exportará el contenido de la lista a Excel. Creé una nueva tarea en mi controlador de lista para representar la clase de vista sin procesar en un archivo llamado view.raw.php. Sin embargo, no puedo obtener el contenido para cargar solo los datos sin procesar.

Copié el código del controlador relevante del controlador com_banners tracks.raw.php

Método del controlador:

public function exportToExcel()
{
    // Get the document object.
    $document   = JFactory::getDocument();
    $vName      = 'Mylist';
    $vFormat    = 'raw';

    // Get and render the view.
    if ($view = $this->getView($vName, $vFormat))
    {
        // Get the model for the view.
        $model = $this->getModel($vName);

        // Push the model into the view (as default).
        $view->setModel($model, true);

        // Push document object into the view.
        $view->document = $document;

        $view->display();
    }
}

Y un método de visualización de prueba simple en mi archivo view.raw.php:

public function display($tpl = null)
{
   echo "Test";
}

Esto muestra "Prueba" pero también carga la plantilla.

He intentado usar $document->setType('Raw') pero esto me está dando un

No se puede cargar la clase de renderizador

error.

La razón de esto es que está buscando

bibliotecas/joomla/document/raw/renderer/modules.php

que no existe.

Tal vez estoy haciendo esto de manera incorrecta, pero ¿cómo debo hacer esto correctamente?

7
doovers

Debe especificar el tipo de documento en la llamada URL con format=raw. Joomla cargará automáticamente el view.raw.php archivo. Ni siquiera necesita un controlador especial para eso.

Para crear el botón de la barra de herramientas puede usar esto:

    $bar = JToolBar::getInstance('toolbar');
    $bar->appendButton('Custom', '<button onclick="window.location.href = \'http://www.google.com\';">Export</button>', 'export');
5
Bakual