252 lines
12 KiB
PHP
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!
|
|
*****************************************************************************/
|
|
|