Gestion des nœuds du plan du site : Différence entre versions
(Nouvelle page : == 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 un...) |
(→Ajouter des nœuds dans le plan du site pour un module) |
||
| Ligne 27 : | Ligne 27 : | ||
Il faut s'enregistrer sur l'événement <code>bab_eventBeforeSiteMapCreated</code> qui permet d'être appelé avant la création du plan du site. | Il faut s'enregistrer sur l'événement <code>bab_eventBeforeSiteMapCreated</code> 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 <code>createItem</code> permet de créer un instance de l'objet <code>bab_siteMap_item</code>, 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> | ||
Version du 15 juin 2009 à 13:55
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>