Sloupce - Jet\DataListing_Column
Každý sloupec použití v seznamu dat musí být reprezentován vlastní třídou, která musí dědit od této abstraktní třídy.
Definice sloupce umožňuje následující:
- Sloupec jednoznačně identifikovat - každý sloupec má mít svůj unikátní klíč.
- Generování titulku a případně ikony sloupce.
- Určuje zda sloupec je / není viditelný.
- Je možné určovat pořadí sloupců.
- Je možné určit, zda daný sloupec umožňuje / neumožňuje řazení.
- Generování řazení pro ORM.
- Automatické generování sloupečku UI_dataGrid s možností doplnění vlastní volitelné inicializace.
- Generování dat pro export.
View datové buňky
Každý sloupec má své view vykreslující datové buňky seznamu (konkrétní sloupec, konkrétní řádek). View buňku může mít například tuto podobu:
namespace JetApplicationModule\EventViewer\Admin;
use Jet\MVC_View;
use JetApplication\Logger_Admin_Event as Event;
/**
* @var MVC_View $this
* @var Event $item
* @var Listing $listing
*/
$item = $this->getRaw( 'item' );
$listing = $this->getRaw( 'listing' );
?>
<a href="<?=$listing->getItemURI($item->getId())?>"><?=$item->getEvent();?></a>
Název view skriptu musí odpovídat identifikačnímu klíči sloupce. Tedy v našem příkladu je to event.phtml.
Přehled metod
Metoda | Význam |
---|---|
public setListing( DataListing $listing ) : void |
Seznam automaticky při předání sloupce nastavuje sloupci referenci na sebe. K tomu slouží tato metoda. |
public getListing( ) : DataListing |
Vrací instanci seznamu dat do kterého sloupec náleží. |
abstract public getKey( ) : string |
Vrací unikátní klíč identifikující sloupec. Doporučuje se implementovat takto:
class Listing_Column_Event extends DataListing_Column
A se sloupcem následně pracovat takto:
$this->listing->column( Listing_Column_Event::KEY )->setIsVisible( false );
|
abstract public getTitle( ) : string |
Vrací vygenerovaný a případně již přeložený titulek sloupce. |
public getIcon( ) : string |
Může vrátit název ikony sloupce. Nepovinné. |
public getIsVisible( ) : bool |
Indikuje zda sloupec je / není viditelný. |
public setIsVisible( bool $is_visible ) : void |
Nastavuje zda sloupec je / není viditelný. |
public getIndex( ) : int |
Vrací pořadí sloupce podle kterého budou slupce seřazeny. |
public setIndex( int $index ) : void |
Nastavuje pořadí sloupce podle kterého budou slupce seřazeny. |
public isMandatory( ) : bool |
Určuje zda je sloupec povinný. Povinný sloupec nelze skrýt. |
public getDisallowSort( ) : bool |
Určuje zda je řazení podle daného sloupce vypnuto. |
public getOrderByAsc( ) : array|string |
Generuje parametry pro vzestupné řazení pro ORM. Výchozí implementace:
return '+'.$this->getKey();
Ovšem je možné přetížit např. takto:
return ['+some_property', '+some_model.some_property'];
|
public getOrderByDesc( ) : array|string |
Generuje parametry pro sestupné řazení pro ORM. Výchozí implementace:
return '-'.$this->getKey();
Ovšem je možné přetížit např. takto:
return ['-some_property', '-some_model.some_property'];
|
public render( mixed $item ) : string |
Postará se o vygenerování příslušného view skriptu pro řádek seznamu. Výchozí implementace je tato:
$view = $this->listing->getColumnView();
Z čehož plyne:
|
public initializer( UI_dataGrid_column $column ) : void |
Pomocí přetížení této metody je možné implementovat vlastní inicializaci sloupečku UI_dataGrid. |
public getExportHeader( ) : null|string|array |
Vrací hlavičku datového exportu. Může vracet následující hodnoty:
|
public getExportData( mixed $item ) : float|int|bool|string|array |
Vygeneruje data pro daný sloupec a daný řádek (parametr $item) pro sestavení exportu. Pokud metoda getExportHeader vrátila pole, pak také musí vracet odpovídající pole. |