website_jukni/dokuwiki/lib/tpl/dokuwikha/tabs.php
2017-12-29 15:51:59 +01:00

252 lines
12 KiB
PHP

<?php
/**
* Default tab configuration of the "monobook" DokuWiki template
*
*
* LICENSE: This file is open source software (OSS) and may be copied under
* certain conditions. See COPYING file for details or try to contact
* the author(s) of this file in doubt.
*
* @license GPLv2 (http://www.gnu.org/licenses/gpl2.html)
* @author Andreas Haerter <ah@bitkollektiv.org>
* @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:
//<http://www.freelists.org/post/dokuwiki/Question-about-tpl-buttonsubscribe>
} 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!
*****************************************************************************/