Action listItems
Sommaire
- 1 Action_ListItems : afficher une liste d'objets
- 1.1 Exemple d'action listItems
- 1.2 Méthodes à redéfinir
- 1.2.1 Bool isMajax()
- 1.2.2 Array getPagesOptions()
- 1.2.3 SydonieQuery getBasicQuery()
- 1.2.4 String getFiltersId()
- 1.2.5 Array getFilters()
- 1.2.6 Array getFiltersOption()
- 1.2.7 String getFilterMethodForm()
- 1.2.8 Array getActionLinkList()
- 1.2.9 String getTemplateFilter()
- 1.2.10 String getTemplateName()
- 1.2.11 String getPaginatorTemplateName()
- 1.2.12 Mixed getItemTemplateName()
Action_ListItems : afficher une liste d'objets
L'action prédéfinie listItems permet d'afficher une liste d'instance d'un objet en vue, par exemple, d'afficher un résultat après une recherche, de créer un espace d'administration, etc.
L'action listItems utilise deux concepts :
- les sydonieQuery
- les sydonieQueryFilters
Chaque objet peut définir plusieurs actions de type listItems en vue de proposer des affichages en liste en fonction des besoins.
Exemple d'action listItems
Ci-dessous, un exemple d'action_listItems sur un object SydonieDocument_Test.
<?php class SydonieDocument_Test_action_listItems extends Abstract_SydonieDocument_action_listItems { protected function getActionLinkList() { return array('view', 'edit', 'delete'); } protected function getPagesOptions() { return array( 'itemsPerPage' => 3, 'pageRange' => 2 ); } protected function getFilters() { $array_filters = array( 'myConditions1' => array( 'SydonieDocument_Test' => array('title', 'description', 'workText') ) ); return $array_filters; } protected function getFiltersOption(){ $param = array('Split_MultiLike', array('splitRule'=>'[ ,\-.]+')); $option_filters = array( 'myConditions1' => array( 'SydonieDocument_Test' => array( 'workText.text' => $param, 'description.text' => $param, 'title.text' => $param, ) ) ); return $option_filters; } } ?>
Dans ce cas particulier, est redéfinit :
- getActionLinkList() : les actions associées à l'affichage de chaque instance.
- getPagesOptions() : le nombre de pages affichées dans le paginateur associé, le nombre d'instance à afficher par page.
- getFilters() : les filtres appliqués à la recherche associée à l'affichage de chaque instance.
- getFiltersOption() : les options sur les filtres.
Méthodes à redéfinir
Bool isMajax()
Bool isMajax()
Méthode permettant de définir si l'affichage prend compte les fonctionnalités Majax ou non. Si la méthode renvoie true, alors certains templates sont définis de la manière suivante :
- template de filter : "sydonieQueryFilter/formMajax"
- template de paginateur : "paginatorAjax"
Par défaut :
protected function isMajax(){ return false; }
Array getPagesOptions()
Array getPagesOptions()
Méthode permettant de définir le nombre d'instance par page ainsi que le nombre de page visible sur le paginateur La méthode renvoie un tableau associatif avec pour clef :
- itemsPerPage : nombre d'instances par page
- pageRange : nombre de pages visibles sur le paginateur
Par défaut :
protected function getPagesOptions() { return array( 'itemsPerPage' => PER_PAGE, 'pageRange' => MAX_LINKS, ); }
SydonieQuery getBasicQuery()
SydonieQuery getBasicQuery()
Méthode permettant de définir la requête utilisée. La méthode renvoie une SydonieQuery qui sera traitée pour afficher les instances répondant aux critères de cette requête. Cette SydonieQuery sera potentiellement modifiée par une SydonieQueryFilter définie dans les autres méthodes de cette actions.
Par défaut :
protected function getBasicQuery() { $c = $this->class; $basicQuery = $c::baseQuery($c); return $basicQuery; }
Code équivalant :
protected function getBasicQuery() { return new SydonieQuery_Query(array( new SydonieQuery_Entity($this->class, $this->class), new SydonieQuery_Rights($this->class, 'read'), new SydonieQuery_Return($this->class) )); }
String getFiltersId()
String getFiltersId()
Méthode définissant l'identifiant associé au filtre utilisé. Cet identifiant doit être différent d'un autre déjà définit sous risque d'être écrasé par le manager de SydonieQueryFilter.
Par défaut :
protected function getFiltersId(){ return 'filterId'; }
Array getFilters()
Array getFilters()
Méthode définissant un filtre sur la requête SydonieQuery définit via la méthode self::getBasicQuery(). Si cette méthode renvoie un array vide, alors aucun filtre ne sera appliqué sur la requête.
Par défaut :
protected function getFilters() { return array(); }
Array getFiltersOption()
Array getFiltersOption()
Méthode définissant les options sur le filtre définit via la méthode self::getFilterOption(). Si cette méthode renvoie un array vide, alors aucune option ne sera appliqué sur les filtres.
Par défaut :
protected function getFiltersOption() { return array(); }
String getFilterMethodForm()
String getFilterMethodForm()
Méthode définissant les accesseurs liées à l'envoie du formulaire du filtre. La chaîne renvoyée par cette méthode peut avoir deux valeurs :
- "get"
- "post"
Par défaut :
protected function getFilterMethodForm(){ return 'get'; }
Array getActionLinkList()
Array getActionLinkList()
Méthode définissant les actions disponibles liées à chaque instance affichée. Cette méthode renvoie un tableau ordonné des noms des actions. A chaque action sera créé automatiquement un lien associé à l'instance affiché.
Par défaut :
protected function getActionLinkList(){ return array('view', 'edit', 'delete'); }
String getTemplateFilter()
String getTemplateFilter()
Méthode définissant le template associé à l'affichage du formulaire issu du filtre. Deux templates d'affichage de ce formulaire sont déjà prédéfinis dans Sydonie :
- sydonieQueryFilter/form
- sydonieQueryFilter/formMajax
Par défaut :
protected function getTemplateFilter(){ return 'sydonieQueryFilter/form'; }
String getTemplateName()
String getTemplateName()
Méthode définissant le template associé à l'affichage du formulaire associé au listItems. Ce template utilise les templates issus de :
- self::getTemplateFilter()
- self::getPaginatorTemplateName()
- self::getItemTemplateName()
Par défaut :
protected function getTemplateName() { return 'listItems'; }
String getPaginatorTemplateName()
String getPaginatorTemplateName()
Méthode définissant le template associé au paginateur. Deux templates d'affichage du paginateur sont déjà prédéfinis dans Sydonie :
- paginator
- paginatorAjax
Par défaut :
protected function getPaginatorTemplateName() { return 'paginator'; }
Mixed getItemTemplateName()
Mixed getItemTemplateName()
Méthode définissant le template associé à chaque instance affichée. Si la méthode renvoie null, alors le résultat de la méthode getInstanceHeading() appelée sur l'instance est affiché.
protected function getItemTemplateName() { return null; }