Exporty - Jet\DataListing_Export

Každý export dat použití v seznamu dat musí být reprezentován vlastní třídou, která musí dědit od této abstraktní Jet\DataListing_Export.

Příklad použití naleznete v ukázkové aplikaci v modulech EventViewer.Admin, EventViewer.REST a EventViewer.Web.

Přehled metod

Metoda Význam
public setListing(
DataListing $listing
) : void
Seznam automaticky při předání exportu nastavuje exportu referenci na sebe. K tomu slouží tato metoda.
public getListing(
) : DataListing
Vrací instanci seznamu dat do kterého export náleží.
public getKey(
) : string
Vrací unikátní klíč identifikující export. Doporučuje se implementovat takto: class Listing_Export_CSV extends DataListing_Export_CSV
{
    public const 
KEY 'CSV';
    
    public function 
getKey(): string
    
{
        return static::
KEY;
    }
}
A s exportem lze následně pracovat takto: $listing->exportListing_Export_CSV::KEY )->export();
public getTitle(
) : string
Vrací vygenerovaný a případně již přeložený titulek exportu.
public getIcon(
) : string
Může vrátit název ikony exportu. Nepovinné.
public export(
array $column_keys=[]
) : void
Provede samotný a to ze sloupců určených parametrem $column_keys, nebo aktuálně zobrazených sloupců.

Funguje následovně:
  • Na základě nastavení filtrů a řazení nahraje relevantní datové položky.
  • Požádá definice sloupců o přípravu dat k exportu. Viz definice sloupců, metody getExportHeader() a getExportData($item).
  • Zavolá metodu formatData( array $export_header, array $data ), která se postará o transformaci dat do požadovaného formátu a pošle data na výstup.
abstract protected formatData(
array $export_header,
array $data
) : void
Postará se o transformaci dat do požadovaného formátu a odeslání dat na výstup. Příklad implementace - převod do CSV: protected function formatData( array $export_header, array $data ): void
{
    
$file_name $this->generateFileName();
        
    
header'Content-Type: text/csv' );
    
header'Content-Disposition: attachment;filename="' $file_name '"' );
    
header'Cache-Control: max-age=0' );
        
    
$fp fopen('php://output''w');
        
    
fputcsv$fp$export_header );
        
    foreach( 
$data as $row ) {
        
fputcsv$fp$row );
    }
        
    
fclose$fp );
        
}
Předchozí kapitola
Jet\DataListing_Filter_OptionSelect
Další kapitola
Hromadné operace - Jet\DataListing_Operation