* @link http://www.dokuwiki.org/template:monobook * @link http://www.dokuwiki.org/devel:configuration */ /****************************************************************************** ******************************** ATTENTION ********************************* DO NOT MODIFY THIS FILE, IT WILL NOT BE PRESERVED ON UPDATES! ****************************************************************************** If you want to add some own tabs, have a look at the README of this template and "/user/tabs.php". You have been warned! *****************************************************************************/ //check if we are running within the DokuWiki environment if (!defined("DOKU_INC")){ die(); } //note: The tabs will be rendered in the order they were defined. Means: first // tab will be rendered first, last tab will be rendered at last. //article tab //ATTENTION: "ca-nstab-main" is used as css id selector! if (substr(getID(), 0, strlen("wiki:user:")) !== "wiki:user:"){ $_monobook_tabs["ca-nstab-main"]["text"] = $lang["monobook_tab_general"]; // modifié par Reoddyn //ajout par Reoddyn $page_link = noNS(getID()); //recupération de la page visité (ex : pour "fr:dev:pendo", il s'agit de pendo) $spacename_link = curNS(getID()); //récupération de l'espace de nom courrant. On peut obtenir dev, animation, gameplay $language_link = curNS(getNS(getID())); //récupération du langage courrant (via l'espace de nom). // Dans le cas des pages de discutions, ou de pages générales, obtenir la langue ou l'espace de nom peut être compliqué. // Les vérifications qui suivent servent à éviter les erreurs et à permettre le bon fonctionnement des espaces de noms, des //discutions et des langues en même temps. Normalement ça marche. // la boucle qui suit sert à récupéré l'emplacement du visiteur dans un tableau. // de manière générale, le visiteur va visiter des liens de types : // talk/langue/[espace/]page // langue/[espace/]page // si le visiteur n'est pas dans un espace qui correspont à ces deux choses (ex : espace/page), // on affiche un onglet simple, comme sur un wiki classique. $id = getID(); // id de la page visité. $nb = -1; // cette variable stocke l'indice max du tableau. On a au moins une case rempli, pour la page start. while ($id != "") { // cette boucle récupère les différents espaces de nom en cours d'utilisation dans un tableau $page = noNS($id); $space = curNS($id); // $_monobook_tabs["tab".$cpt]["text"] = "page : ".$page." // space : ".$space; $id = getNS($id); $etat[] = $page; $nb = $nb + 1; } $etat = array_reverse($etat); // on inverse la tableau pour avoir les espaces de nom dans l'ordre. $language_link = ""; $lien = ""; $espace = ""; if ($etat[0] == "talk") { // est-on dans un espace de discussion ? if ( ($etat[1] == "fr") or ($etat[1] == "jbo") or ($etat[1] == "en") ) { //si oui, on vérifie que l'utilisateur est dans un espace $language_link = $etat[1]; // dédié à une langue, et si oui, on récupère la langue. if ( ($etat[2] == "dev") or ($etat[2] == "anim") or ($etat[2] == "gameplay") ) { $espace = $etat[2]; for ($i = 3; $i <= $nb; $i++) { // et on récupère le lien, moins les éventuels espaces dev/anim/gameplay $lien = $lien.":".$etat[$i]; } } else { for ($i = 2; $i <= $nb; $i++) { $lien = $lien.":".$etat[$i]; } } $lien = substr($lien, 1); // les boucles précédentes place deux points au début du lien ; cette ligne les supprime. $_monobook_tabs["ca-nstab-main"]["text"] = $lang["monobook_tab_general"]; // $_monobook_tabs["animation"]["text"] = $lang["monobook_tab_animation"]; // ajout de trois onglets pour les pages des espaces de noms. // $_monobook_tabs["gameplay"]["text"] = $lang["monobook_tab_gameplay"]; // $_monobook_tabs["dev"]["text"] = $lang["monobook_tab_dev"]; $_monobook_tabs["ca-nstab-main"]["wiki"] = $language_link.":".$lien; // création des liens corrects, tenant compte des espaces et // $_monobook_tabs["animation"]["wiki"] = $language_link.":animation:".$lien; // de la langue. // $_monobook_tabs["gameplay"]["wiki"] = $language_link.":gameplay:".$lien; // $_monobook_tabs["dev"]["wiki"] = $language_link.":dev:".$lien; } else { // si l'on n'est pas dans un espace de langue, on affiche un simple onglet pour l'article. $_monobook_tabs["ca-nstab-main"]["text"] = $lang["monobook_tab_article"]; $_monobook_tabs["ca-nstab-main"]["wiki"] = ":".substr(getID(), strlen(tpl_getConf("monobook_discuss_ns"))-1); } } elseif ( ($etat[0] == "fr") or ($etat[0] == "jbo") or ($etat[0] == "en") ) { // si l'on est pas dans un espace de discussion, $language_link = $etat[0]; //vérifications précédantes doivent être effectuées (langue, récup du lien) if ( ($etat[1] == "dev") or ($etat[1] == "animation") or ($etat[1] == "gameplay") ) { $espace = $etat[1]; for ($i = 2; $i <= $nb; $i++) { // et on récupère le lien, moins les éventuels espaces dev/anim/gameplay $lien = $lien.":".$etat[$i]; } } else { for ($i = 1; $i <= $nb; $i++) { $lien = $lien.":".$etat[$i]; } } $lien = substr($lien, 1); // les boucles précédantes place deux points au début du lien ; cette ligne les supprime. $_monobook_tabs["ca-nstab-main"]["text"] = $lang["monobook_tab_general"]; // $_monobook_tabs["animation"]["text"] = $lang["monobook_tab_animation"]; // ajout de trois onglets pour les pages des espaces de noms. // $_monobook_tabs["gameplay"]["text"] = $lang["monobook_tab_gameplay"]; // $_monobook_tabs["dev"]["text"] = $lang["monobook_tab_dev"]; $_monobook_tabs["ca-nstab-main"]["wiki"] = $language_link.":".$lien; // création des liens corrects, tenant compte des espaces et // $_monobook_tabs["animation"]["wiki"] = $language_link.":animation:".$lien; // de la langue. // $_monobook_tabs["gameplay"]["wiki"] = $language_link.":gameplay:".$lien; // $_monobook_tabs["dev"]["wiki"] = $language_link.":dev:".$lien; switch ($espace) { // pour afficher l'onglet courant comme étant sélectionné (ce qui fait plus classe). // case "animation" : $_monobook_tabs["animation"]["class"] = "selected"; break; // case "gameplay" : $_monobook_tabs["gameplay"]["class"] = "selected"; break; // case "dev" : $_monobook_tabs["dev"]["class"] = "selected"; break; default : $_monobook_tabs["ca-nstab-main"]["class"] = "selected"; break; } } else { // si l'on n'est pas dans un espace de langue, on affiche un simple onglet pour l'article. $_monobook_tabs["ca-nstab-main"]["text"] = $lang["monobook_tab_article"]; $_monobook_tabs["ca-nstab-main"]["wiki"] = ":".substr(getID(), strlen(tpl_getConf("monobook_discuss_ns"))-1); } //fin des ajouts par Reoddyn }else{ $_monobook_tabs["ca-nstab-main"]["text"] = $lang["monobook_tab_userpage"]; //pour les affichages des pages utilisateurs. } $_monobook_tabs["ca-nstab-main"]["accesskey"] = "V"; //suite immédiate commentée par Reoddyn // J'étais pas sûr de ce que ça faisait, mais ça gênait mes modifs. Dans le doute je laisse un trace quelques temps, surtout pour le else. /*if ($monobook_context !== "discuss"){ //$monobook_context was defined within main.php $_monobook_tabs["ca-nstab-main"]["wiki"] = ":".getID(); $_monobook_tabs["ca-nstab-main"]["class"] = "selected"; } else{ $_monobook_tabs["ca-nstab-main"]["wiki"] = ":".substr(getID(), strlen(tpl_getConf("monobook_discuss_ns"))-1); }*/ //hide some tabs for anonymous clients (closed wiki)? if (empty($conf["useacl"]) || //are there any users? $loginname !== "" || //user is logged in? !tpl_getConf("monobook_closedwiki")){ //discussion tab //ATTENTION: "ca-talk" is used as css id selector! if (tpl_getConf("monobook_discuss")){ $_monobook_tabs["ca-talk"]["text"] = $lang["monobook_tab_discussion"]; if ($monobook_context === "discuss"){ //$monobook_context was defined within main.php $_monobook_tabs["ca-talk"]["wiki"] = ":".getID(); $_monobook_tabs["ca-talk"]["class"] = "selected"; }else{ if ($language_link != "") { $_monobook_tabs["ca-talk"]["wiki"] = "talk:".$language_link.":".$lien; } else $_monobook_tabs["ca-talk"]["wiki"] = tpl_getConf("monobook_discuss_ns").getID(); } } //edit/create/show source tab //ATTENTION: "ca-edit" is used as css id selector! $_monobook_tabs["ca-edit"]["href"] = wl(cleanID(getId()), array("do" => "edit", "rev" => (int)$rev), false, "&"); $_monobook_tabs["ca-edit"]["accesskey"] = "E"; if ($ACT === "edit"){ //$ACT comes from DokuWiki core $_monobook_tabs["ca-edit"]["class"] = "selected"; } if (!empty($INFO["writable"])){ //$INFO comes from DokuWiki core if (!empty($INFO["draft"])){ $_monobook_tabs["ca-edit"]["href"] = wl(cleanID(getId()), array("do" => "draft", "rev" => (int)$rev), false, "&"); $_monobook_tabs["ca-edit"]["text"] = $lang["btn_draft"]; //language comes from DokuWiki core }else{ if(!empty($INFO["exists"])){ $_monobook_tabs["ca-edit"]["text"] = $lang["btn_edit"]; //language comes from DokuWiki core }else{ $_monobook_tabs["ca-edit"]["text"] = $lang["btn_create"]; //language comes from DokuWiki core } } }elseif (actionOK("source")){ //check if action is disabled $_monobook_tabs["ca-edit"]["text"] = $lang["btn_source"]; //language comes from DokuWiki core $_monobook_tabs["ca-edit"]["accesskey"] = "E"; } //old versions/revisions tab if (!empty($INFO["exists"]) && actionOK("revisions")){ //check if action is disabled //ATTENTION: "ca-history" is used as css id selector! $_monobook_tabs["ca-history"]["text"] = $lang["btn_revs"]; //language comes from DokuWiki core $_monobook_tabs["ca-history"]["href"] = wl(cleanID(getId()), array("do" => "revisions"), false, "&"); $_monobook_tabs["ca-history"]["accesskey"] = "O"; if ($ACT === "revisions"){ //$ACT comes from DokuWiki core $_monobook_tabs["ca-history"]["class"] = "selected"; } } //(un)subscribe tab //ATTENTION: "ca-watch" is used as css id selector! if (!empty($conf["useacl"]) && !empty($conf["subscribers"]) && !empty($loginname)){ //$loginname was defined within main.php //2010-11-07 "Anteater" and newer ones if (empty($lang["btn_unsubscribe"])) { if (actionOK("subscribe")){ //check if action is disabled $_monobook_tabs["ca-watch"]["href"] = wl(cleanID(getId()), array("do" => "subscribe"), false, "&"); $_monobook_tabs["ca-watch"]["text"] = $lang["btn_subscribe"]; //language comes from DokuWiki core } //2009-12-25 "Lemming" and older ones. See the following for information: // } else { if (empty($INFO["subscribed"]) && //$INFO comes from DokuWiki core actionOK("subscribe")){ //check if action is disabled $_monobook_tabs["ca-watch"]["href"] = wl(cleanID(getId()), array("do" => "subscribe"), false, "&"); $_monobook_tabs["ca-watch"]["text"] = $lang["btn_subscribe"]; //language comes from DokuWiki core }elseif (actionOK("unsubscribe")){ //check if action is disabled $_monobook_tabs["ca-watch"]["href"] = wl(cleanID(getId()), array("do" => "unsubscribe"), false, "&"); $_monobook_tabs["ca-watch"]["text"] = $lang["btn_unsubscribe"]; //language comes from DokuWiki core } } } } /****************************************************************************** ******************************** ATTENTION ********************************* DO NOT MODIFY THIS FILE, IT WILL NOT BE PRESERVED ON UPDATES! ****************************************************************************** If you want to add some own tabs, have a look at the README of this template and "/user/tabs.php". You have been warned! *****************************************************************************/