Joomla.it Forum
Non solo Joomla... => Sviluppo => : Davide 31 Mar 2010, 10:11:26
-
Ciao a tutti,
devo creare un componente per l'amministrazione, che semplicemente recupera dei dati dal db e crea un file excel da scaricare.
Il problema è che vorrei che al click di un bottone come questo:
JToolBarHelper::customX('scarica', 'export', '', 'Scarica file excel', false);
parta il download, cioè si apre la finestra del browser che ti chiede salva o esegui.
Per fare questo basterebbe tramite php, impostare l'header a seconda del file che si deve scaricare e sputare i dati recuperati dal db.
Ma come avrete già capito non riesco a farlo ;)
Non capisco se è necessario disabilitare il layout o la vista e come.
Qualcuno ha qualche consiglio?
Grazie
-
Visto che nessuno mi risponde, mi rispondo da solo!
Ho risolto facendo una funzione nel controller:
function scarica()
{
header("Content-type: application/vnd.ms-excel");
header('Content-Disposition: attachment; filename="tabella.xls"',false);
$model = $this->getModel('model_che_usi');
$excel = $model->getExcel();
echo $excel;
exit;
}
che richiama un metodo nel model che ritorna una semplice tabella html.
Poi dopo l'echo faccio un exit così non mi carica il layout.
Sembra funzionare!
Ciao e grazie lo stesso.
-
nono non usare l'exit :P è fondamentalmente sbagliato
per disabilitare il layout usa:
jimport( 'joomla.application.component.view' );
e poi usa la funzione setLayout().