IsWritable()) { $text = "

Le script n'a pas le droit d'écrire sur son répertoire, sur le répertoire _data ou sur un sous-répertoire de _data.

"; $text.= "

Merci de vérifier les permissions sur ces répertoires.

"; } else { if($wiki->WriteConfig($wiki->defaultConfig) && $wiki->InitPaths()) { $text = "

L'installation de WikiKubbe s'est bien déroulée.

Votre mot de passe administrateur est « ".$wiki->defaultConfig['password']." ».

Rechargez cette page pour accéder à votre wiki.

"; } else { $text = "

Impossible d'installer WikiKubbe.

Vérifiez que le script à le droit d'écrire dans le répertoire courant.

"; } } $wiki->config = $wiki->defaultConfig; $wiki->Template('Installation',$text); exit; } require_once('config.inc.php'); $wiki->config = $config; // Migration 0.6.0 -> 0.6.1 if($wiki->version == "0.6.1" && $version == "0.6.0") { function PathToLower($path) { $dir = opendir($path); while($file = readdir($dir)) { if(ereg('[A-Z]', $file)) { rename($path.'/'.$file, $path.'/'.strtolower($file)); } } } PathToLower("_data/pages"); PathToLower("_data/locks"); PathToLower("_data/cache"); $wiki->WriteConfig($config); die("La version de WikiKubbe a été mise à jour de la version 0.6.0 à 0.6.1. Rechargez cette page pour accéder au wiki."); } if(isset($_GET['page'])) $page = $_GET['page']; elseif(!empty($_SERVER['argv'][0])) $page = $_SERVER['argv'][0]; elseif(!empty($_SERVER['REDIRECT_STATUS']) && ($_SERVER['REDIRECT_STATUS'] == "404")) { $base = ereg_replace("/$","",dirname($_SERVER['SCRIPT_NAME']))."/"; $page = str_replace($base,'',$_SERVER['REDIRECT_URL']); // Par défaut le header est 404 et IE souvent renvoie sa propre page d'erreur... // Donc on met dans tous les cas un code 200 header("HTTP/1.1 200 OK"); } else $page = $wiki->defaultHome; # Hardlimit pagename lenght if(strlen($page) > 64) die("Pagename too long."); $page = $wiki->getPageName($page); if($_POST['edit']) $mode = 'edit'; elseif($_POST['save']) $mode = 'save'; elseif(in_array($page,array("_login","_logout","_syntax","_config"))) $mode = "special"; elseif($_POST['delete']) $mode = 'delete'; elseif($_POST['delete_all']) $mode = 'delete_all'; elseif($_POST['rename']) { $mode = 'rename'; $newName = $wiki->getPageName($_POST['rename']); } else $mode = "view"; $haveAccess = $wiki->CheckAccess(); $wiki->haveAccess = $haveAccess; if($mode == 'save') { if($wiki->config['type'] == "prive" && !$haveAccess && $wiki->IsLocked($page) == NULL) die("Vous n'avez pas le droit d'éditer cette page."); elseif($wiki->IsLocked($page) === TRUE && !$haveAccess) die("Vous n'avez pas le droit d'éditer cette page."); if($_POST['lock'] == "yes") $lock = "lock"; elseif($_POST['unlock'] == "yes") $lock = "unlock"; if($wiki->SavePage($page,$_POST['text'],$lock)) header("location: ".$wiki->PageURL($page)); else { $mode = "edit"; $error = "Impossible d'enregistrer la page."; } } if($mode == "view") { if(($wiki->enableIndexes || $haveAccess) && (substr($page,-7) == "%_index")) { $title = 'Catégorie: '.str_replace('%','/',substr($page,0,-7)); $text = $wiki->getIndex(substr($page,0,-6)); $mode = "special"; } elseif(($wiki->enableIndexes || $haveAccess) && $page == "_index") { $text = $wiki->getIndex(); $title = "Index des pages"; $mode = "special"; } else { $page = $wiki->CheckPageExists($page); if($wiki->config['cache'] == "light") $text = $wiki->GetCache($page); else $text = $wiki->GetPage($page); } if(!isset($title)) { if($page == $wiki->defaultHome) { $title = $wiki->config['name']; } else { $title = $wiki->getPageTitle($page); } } $wiki->Template($title,$text); } elseif($mode == "edit") { if($wiki->config['type'] == "prive" && !$haveAccess && $wiki->IsLocked($page) == NULL) die("Vous n'avez pas le droit d'éditer cette page."); elseif($wiki->IsLocked($page) === TRUE && !$haveAccess) die("Vous n'avez pas le droit d'éditer cette page."); $text = htmlspecialchars($wiki->GetEditPage($page)); $wiki->Template("Edition de ".$wiki->getPageTitle($page),$text); } elseif($mode == "special") { $page = substr($page,1); $title = ucfirst($page); if($page == "login") { if($_POST['password']) { if($wiki->Login($_POST['password'])) header("location: ".$wiki->PageURL($wiki->defaultHome)); $text = '

Mot de passe invalide.

'; } $text.= '
Mot de passe

'; } elseif($page == "logout") { $wiki->Logout(); header("location: ".$wiki->PageURL($wiki->defaultHome)); } elseif($page == "syntax") { include_once("class.wiki2xhtml.php"); $wiki2xhtml = new wiki2xhtml(); $title = "Syntaxe"; $text = '
Faire un lien wiki:
'. $wiki2xhtml->help().'

Nota: les retours à la ligne sont forcés sur ce wiki.

'; } elseif($page == "config") { if(!$haveAccess) die("Vous n'avez pas accès à cette page."); if($_POST['saveconfig']) { $wiki->WriteConfig($_POST); header("location: ".$wiki->PageURL($wiki->defaultHome)); } $text = '
Accès administrateur
Restriction d\'accès
Mot de passe
Adresse IP
Nom du wiki
Type de wiki
config['type'] == "prive" ? 'checked="checked" ' : '').'/>
Seul l\'administrateur peut éditer les pages et en rendre certaines éditables par les visiteurs.
config['type'] == "public" ? 'checked="checked" ' : '').'/>
Toutes les pages sont éditables et l\'administrateur peut en bloquer certaines.
Cache des pages
config['cache'] == "" ? 'checked="checked" ' : '').'/>
Recommandé pour un wiki personnel peu ou pas visité.
config['cache'] == "light" ? 'checked="checked" ' : '').'/>
Recommandé pour tout wiki ayant des visiteurs: accélère l\'affichage des pages.
Adresse des pages:
config['urls'] == "404" ? 'checked="checked" ' : '').'/>
Adresses jolies et pratiques mais ne fonctionne pas partout.
config['urls'] == "pathinfo" ? 'checked="checked" ' : '').'/>
Fonctionne à peu près partout.
config['urls'] == "get" ? 'checked="checked" ' : '').'/>
Essayez cette méthode si les autres ne fonctionnent pas sur votre hébergeur.

'; } $wiki->Template($title,$text); } elseif($mode == "delete") { if(!$haveAccess) die("Vous n'avez pas le droit de supprimer cette page."); $wiki->DeletePage($page); header("location: ".$wiki->PageURL('_index')); } elseif($mode == "delete_all") { if(!$haveAccess) die("Vous n'avez pas le droit de supprimer cette page."); foreach($_POST['check'] as $page) $wiki->DeletePage($page); header("location: ".$wiki->PageURL('_index')); } elseif($mode == "rename") { if(!$haveAccess) die("Vous n'avez pas le droit de renommer cette page."); if(!$wiki->Rename($page,$newName)) die("Cette page existe déjà, choisissez un autre nom."); header("location: ".$wiki->PageURL($newName)); } ?>