Tôi nên sử dụng view.raw.php đúng cách


7

Tôi đang cố gắng thêm một JToolbarnút tùy chỉnh vào chế độ xem danh sách của mình để xuất nội dung danh sách sang excel. Tôi đã tạo một tác vụ mới trong trình điều khiển danh sách của mình để hiển thị lớp khung nhìn thô trong một tệp có tên là view.raw.php. Tuy nhiên tôi không thể lấy nội dung để tải dữ liệu thô.

Tôi đã sao chép mã trình điều khiển có liên quan từ trình điều khiển com_banners track.raw.php

Phương pháp điều khiển:

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

Và một phương thức hiển thị thử nghiệm đơn giản trong tệp view.raw.php của tôi:

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

Điều này sẽ hiển thị "Kiểm tra" nhưng cũng tải mẫu.

Tôi đã thử sử dụng $document->setType('Raw')nhưng điều này mang lại cho tôi một

Không thể tải lớp kết xuất

lỗi.

Lý do cho điều này là nó đang tìm kiếm

thư viện / j Joomla / document / raw / renderer / Module.php

mà không tồn tại

Có lẽ tôi đang đi sai hướng này nhưng làm thế nào để làm điều này một cách chính xác?

Câu trả lời:


5

Bạn cần chỉ định loại tài liệu trong lệnh gọi URL với format=raw. Joomla sau đó sẽ tự động tải view.raw.phptập tin. Bạn thậm chí không cần một bộ điều khiển đặc biệt cho điều đó.

Để tạo nút thanh công cụ, bạn có thể sử dụng:

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

Nhưng làm thế nào để chuyển URL đến nút thanh công cụ? AFAIK là không thể, bạn chỉ có thể chỉ định tên và tác vụ của bộ điều khiển.
Dmitry Rekun

Sử dụng JToolbarHelpernó là không thể, nhưng nó có thể được sử dụng JToolbar->appendButton()như chúng ta không cho nút lô. Tôi sẽ kiểm tra :)
Bakual
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.