Définir des onglets

Il est possible de déclarer des onglets pour les pages exec de l’espace privé. Ils se manifestent sous la forme d’une rangée de boutons en haut de la page.

Par exemple, pour les statistiques :

Exemple de barre d'onglets sur les pages des statistiques

La déclaration de ces onglets est voisine de celle des boutons ou entrées des menus principaux. Il faut déclarer l’onglet dans paquet.xml.

Exemple :

xml <onglet nom="stats_visites" titre="statistiques:icone_statistiques_visites" parent="statistiques" icone="images/statistique-24.png" action="stats_visites" />

On retrouve les mêmes attributs que pour les menus, complétées par :

  • parent : obligatoire, il correspond à un paramètre transmis dans la fonction d’appel de l’onglet dans le fichier exec, et
    indique quel est l’identifiant du menu parent
  • action, qui indique le nom du fichier exécuté.

Il faut également créer la fonction qui implémente l’autorisation, avec cette fois-ci le suffixe _onglet_dist :

function autoriser_statsvisites_onglet_dist($faire, $type, $id, $qui, $opt) {
    return autoriser('voirstats', $type, $id, $qui, $opt);
}

Enfin, on peut appeler une barre d’onglet au moyen de la fonction barre_onglets. Le premier argument est l’identifiant de la barre d’onglet souhaitée, le second l’identifiant de l’onglet en cours. On peut également construire une barre d’onglet avec les fonctions debut_onglet(), onglet() et fin_onglet().

Exemple pour la page de gestion des plugins :

// Barre d'onglets de premier niveau
echo barre_onglets("plugins", "plugins_actifs");

// Barre d'onglets de second niveau
$onglet2 = ($quoi == 'actifs' ? 'plugins_actifs' : 'admin_plugin');
echo debut_onglet('onglets_simple second');
echo onglet(_T('plugins_tous_liste'), generer_url_ecrire("admin_plugin", "voir=tous"), 'admin_plugin', $onglet2);
echo onglet(_T('plugins_actifs_liste'), generer_url_ecrire("admin_plugin"), 'plugins_actifs', $onglet2);
echo fin_onglet();

Auteur JLuc Publié le : Mis à jour : 12/03/23

Traductions : English, français, Nederlands