Как правильно использовать view.raw.php

Я пытаюсь добавить пользовательскую кнопку JToolbar в мое представление списка, которое будет экспортировать содержимое списка в excel. Я создал новую задачу в моем контроллере списка, чтобы отобразить необработанный класс представления в файле с именем view.raw.php. Однако я не могу заставить контент загружать только исходные данные.

Я скопировал соответствующий код контроллера из com_banners track.raw.php controller

Метод контроллера:

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();
    }
}

И простой тестовый метод отображения в моем файле view.raw.php:

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

Это отображает «Тест», но также загружает шаблон.

Я пробовал использовать $document->setType('Raw'), но это дает мне

  

Невозможно загрузить класс рендеринга

ошибка.

Причиной этого является то, что он ищет

  

библиотеки /Joomla /документ /сырья /визуализатор /modules.php

, который не существует.

Возможно, я собираюсь сделать это неправильно, но как мне это сделать правильно?

7 голосов | спросил doovers 30 AMpWed, 30 Apr 2014 10:13:23 +040013Wednesday 2014, 10:13:23

1 ответ


5

Вам нужно указать тип документа в URL-вызове с помощью format=raw. Затем Joomla автоматически загрузит файл view.raw.php. Для этого вам даже не нужен специальный контроллер.

Чтобы создать кнопку панели инструментов, вы можете использовать это:

    $bar = JToolBar::getInstance('toolbar');
    $bar->appendButton('Custom', '<button onclick="window.location.href = \'http://www.google.com\';">Export</button>', 'export');
ответил Bakual 30 AMpWed, 30 Apr 2014 10:35:19 +040035Wednesday 2014, 10:35:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132