Gestion des nœuds du plan du site
Sommaire
Structure du plan
Dans le plan du site, tout les nœuds ont un identifiant unique
les noeuds principaux sont des identifiants de délégation, par exemple sur un site avec une seule délégation on aura à la racine du plan du site :
- DGAll : branche contenant les nœuds toutes délégations confondues
- DG0 : branche contenant les nœuds hors délégation
- DG1 : branche contenant les nœuds de la première délégation
exemple de structure du plan du site pour le lien publication de la section utilisateur :
- root
- DGAll
- babUser
- babUserSection
- babUserPublication
- babUserSection
- babUser
- DG0
- babDG0User
- babDG0UserSection
- babDG0UserPublication
- babDG0UserSection
- babDG0User
- DGAll
Ajouter des nœuds dans le plan du site pour un module
Il faut s'enregistrer sur l'événement bab_eventBeforeSiteMapCreated qui permet d'être appelé avant la création du plan du site.
Méthodes de l'événement du plan de site
createItem($uid)
La méthode createItem permet de créer un instance de l'objet bab_siteMap_item, c'est l'objet utilisé lors de la création d'un nœud du plan du site.
addFolder($item)
Permet d'ajouter un nœud sur le plan de site qui sera considéré comme un répertoire (des enfants pourrons lui être ajoutés)
addFunction($item)
Permet d'ajouter un nœud sur le plan de site qui sera considéré comme une fonction, il ne pourra pas avoir de nœuds enfants
Exemple
Créer un nœud dans toutes les branches de délégation :
<source lang="php">
$delegations = bab_getUserVisiblesDelegations();
foreach($delegations as $id_delegation => $deleg) {
$core_prefix = false === $deleg['id'] ? 'bab' : 'babDG'.$deleg['id']; $addon_prefix = false === $deleg['id'] ? 'MyCustomAddon' : 'MyCustomAddonDG'.$deleg['id'];
$link = $event->createItem($addon_prefix.'Articles'); $link->setLabel('les articles de mon module'); $link->setLink('?tg=addon/MyCustomAddon/articles'); $link->setPosition(array('root', $id_delegation, $core.'User', $core.'UserSectionAddons')); $event->addFunction($link); }
</source>