Gestion des nœuds du plan du site

De OviWiki
Révision de 15 juin 2009 à 13:55 par Paul (discussion | contributions) (Ajouter des nœuds dans le plan du site pour un module)

Aller à : navigation, rechercher

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
    • DG0
      • babDG0User
        • babDG0UserSection
          • babDG0UserPublication


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>