Back to top

Autore Topic: Disabilitare il layout o la vista  (Letto 1163 volte)

Offline Davide

  • Nuovo arrivato
  • *
  • Post: 16
    • Mostra profilo
Disabilitare il layout o la vista
« il: 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

Offline Davide

  • Nuovo arrivato
  • *
  • Post: 16
    • Mostra profilo
Re:Disabilitare il layout o la vista
« Risposta #1 il: 31 Mar 2010, 18:11:51 »
Visto che nessuno mi risponde, mi rispondo da solo!

Ho risolto facendo una funzione nel controller:

Codice: [Seleziona]
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.

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re:Disabilitare il layout o la vista
« Risposta #2 il: 02 Apr 2010, 12:46:25 »
nono non usare l'exit :P è fondamentalmente sbagliato

per disabilitare il layout usa:

Codice: [Seleziona]

jimport( 'joomla.application.component.view' );


e poi usa la funzione setLayout().

 



Web Design Bolzano Kreatif