Comme la GenClass, le Treeview est un concept central de Gabox permettant de catégoriser les données, et bien plus.
Le treeview peut gérer tous les types de catégorisation et tous les menus du site.
Comme toute entité de données de Gabox, il s'agit d'un collector correspondant à la table gen_treeview, et il est accessible via le tableau collector de la GenClass ou du Displayer.
La table gen_treeview est arborescente (champ id_parent) et permet donc d'organiser plusieurs types de données :
A vous de bien organiser la structure du projet pour que cette dernière soit évolutive et maintenable.
En dehors de la clé primaire, les champs importants du treeview sont les suivants :
$this->collector['treeview']->getChildren('main-menu')
Partons du principe qu'un treeview a été défini avec le champ controller défini à listing_elements.php
. Ce controller peut afficher tous les éléments classés dans le même treeview sous forme de liste paginée.
Si nous cliquons sur un élément de cette liste, quel controller sera appelé ? Gabox regarde alors le treeview lié à l'élément, récupère son controller, puis retire listing_ afin d'obtenir le controller de l'élément. Cela signifie qu'il suffit de créer un controller elements.php
qui sera en charge de traiter l'affichage de la page de l'élément.
string hook : nom du hook du treeview à rechercher
string url : url complète du treeview
Permet de récupérer l'URL d'un élément du treeview à partir de son hook
array $path : tableau des enfants du hook rechercher en fonction des critères précisés dans les paramètres.
Permet de récupérer l'arborescence des enfants en fonction du hook du parent