ti-enxame.com

Como devo usar o view.raw.php corretamente

Estou tentando adicionar um botão JToolbar personalizado à minha exibição de lista que exportará o conteúdo da lista para o Excel. Criei uma nova tarefa no meu controlador de lista para renderizar a classe de exibição bruta em um arquivo chamado view.raw.php. No entanto, não consigo que o conteúdo carregue apenas os dados brutos.

Copiei o código do controlador relevante do controlador com_banners tracks.raw.php

Método do 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();
    }
}

E um método simples de exibição de teste no meu arquivo view.raw.php:

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

Isso exibe "Teste", mas também carrega o modelo.

Eu tentei usar $document->setType('Raw') mas isso está me dando uma

Não foi possível carregar a classe do renderizador

erro.

A razão para isso é que ele está procurando

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

que não existe.

Talvez eu esteja fazendo isso da maneira errada, mas como devo fazer isso corretamente?

7
doovers

Você precisa especificar o tipo de documento na chamada URL com format=raw. O Joomla carregará automaticamente o view.raw.php Arquivo. Você nem precisa de um controlador especial para isso.

Para criar o botão da barra de ferramentas, você pode usar este:

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