PDA

Zobacz pełną wersję : [j1.5.23]Autorski komponent i generowanie pliku RAW



seeb
21-06-2011, 17:35
Potrzebuję wygenerować widok z którego można wygenerować plik w czystej postaci.

dla przykładu:

view.raw.php:


<?php

defined('_JEXEC') or die;

jimport('joomla.application.component.view');
jimport( 'joomla.environment.response' ); // potrzebne żeby użyć setHeader($1,$2,true);

class AnkietyViewRaw extends JView
{
function display(){

$ala="Ala ma kota.";

setHeader('Content-Type', 'application/vnd.ms-excel',true);
setHeader('Content-Disposition', 'attachment;filename="ankiety.txt"',true);
setHeader('Cache-Control', 'max-age=0',true);
echo $ala;
exit;
}// koniec display
}//koniec klasy
?>
Niestety w wyniku działania tego skryptu otrzymuję:


Fatal error: Class 'JResponse' not found in /var/www/html/libraries/joomla/document/document.php on line 776

danieladrianka
21-06-2011, 19:03
Nie wiem czy Ci to pomoże ale moze warto spróbowac:

To według książki Joomla!1.5 od kuchni J.Kennard

Aby zwrócić dokument w formacie tekstowym, należy w żądaniu wskazać ten format, np.:
http://przykład.org/index.php?option=com_mojkomponent&format=text
Następnie trzeba utworzyć klasę potomną po JView, która będzie zdolna do obsługi formatu text.
Plik widoku musi nosić nazwę view.text.php i musi się znajdować w przeznaczonym do tego folderze widoku.
Np. widok pliku widoku mojwidok, wchodzący w skład komponentu mojkomponent, powinien znajdować się w folderze components/com_mojkomponent/views/mojwidok/
W pliku musi mieścić się definicja klasy MojkomponentViewMojwidok potomna po klasie JView.

W klasie tej trzeba pokryć metodę JView::display().
W metodzie display() należy odpowiednio zmienić typ MIME odpowiedzi, a następnie tę odpowiedź zwrócić.


class MojkomponentViewMojwidok extends JView{

function display($tpl=null){
//pobranie dokumentu
$document =& JFactory::getDocument();
//ustawienie typu MIME
$document->setMimeEncoding('text/plain');

//odczytanie informacji, która ma zostać wyświetlona
$item =& this->get('Data');
//wygenerowanie pliku tekstowego
echo $item->title ."\n\n" . $item->text;
}
}

Mam nadzieję że pomoże ;)
pozdrawiam

seeb
08-07-2011, 00:03
Pomogłeś tylko nie mogę znaleźć jak zmienić nazwę pliku
jak to


Header('Content-Disposition', 'attachment;filename="ankiety.txt"',true);


cały czas każe zapisywać jako index.php