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
{
    public const 
KEY 'event';
    
    public function 
getKey(): string
    
{
        return static::
KEY;
    }
}
A se sloupcem následně pracovat takto: $this->listing->columnListing_Column_Event::KEY )->setIsVisiblefalse );
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();
$view->setVar('item'$item);
$view->setVar('listing'$this->listing );
$view->setVar('column'$this );
        
return 
$view->render$this->getKey() );
Z čehož plyne:
  • Instanci Jet\MVC_View si drží instance seznamu. Sloupeček seznamu ji pouze přebírá.
  • Název view skriptu ve výchozí implementaci odpovídá klíči sloupce.
  • View skript má k dispozici instanci položky (řádku seznamu), instanci seznamu a instanci daného sloupce.
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:
  • null: Sloupec nebude exportován
  • string: Sloupec bude v exportu reprezentován jedním sloupcem. Hodnota je pak název sloupce vypsaný v exportu (např. titulek sloupce v tabulce).
  • array: Sloupec bude v exportu reprezentován více sloupci. Každá hodnota pole pak představuje název vypsaný v exportu.
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.
Předchozí kapitola
Práce se seznamy dat - Jet\DataListing
Další kapitola
Filtry - Jet\DataListing_Filter