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() && $wiki->addUser('admin', 'abcd', 'test@example.com', 'admin') && $wiki->saveGroups($wiki->defaultGroups) ) { $text = "

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

Vous pouvez vous connecter en administrateur avec les identifiants suivants:
- Login: admin
- Mot de passe: abcd

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; $page = '_install'; $mode = 'special'; $wiki->Template('Installation',$text); exit; } require_once('config.inc.php'); $wiki->config = $config; // Procédure de mise à jour externe if($wiki->version != $version) { header('location: upgrade.php'); exit; } 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(!empty($_POST['edit'])) $mode = 'edit'; elseif(!empty($_POST['save'])) $mode = 'save'; elseif(substr($page, 0, 1) == '_') $mode = "special"; elseif(!empty($_POST['delete'])) $mode = 'delete'; elseif(!empty($_POST['delete_all'])) $mode = 'delete_all'; elseif(!empty($_POST['rename'])) { $mode = 'rename'; $newName = $wiki->getPageName($_POST['rename']); } else $mode = "view"; $logged = $wiki->isLogged(); if($mode == 'save') { if(!$wiki->haveAccess('EDIT') || !$wiki->canEdit($page)) $wiki->errorRedir('_login', "Vous n'avez pas le droit d'éditer cette page."); if($wiki->SavePage($page, $_POST['text'])) header("location: ".$wiki->PageURL($page)); else { $mode = "edit"; $error = "Impossible d'enregistrer la page."; } } if($mode == "view") { $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->haveAccess('EDIT') || !$wiki->canEdit($page)) 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") { $title = ucfirst(substr($page, 1)); function adminMenu($current) { global $wiki; $txt = ' '; return $txt; } if(($wiki->enableIndexes || ($logged && $wiki->haveAccess('INDEXES'))) && (substr($page,-7) == "%_index")) { $title = 'Catégorie: '.str_replace('%','/',substr($page,0,-7)); $text = $wiki->getIndex(substr($page,0,-6)); } elseif(($wiki->enableIndexes || ($logged && $wiki->haveAccess('INDEXES'))) && $page == "_index") { $text = $wiki->getIndex(); $title = "Index des pages"; } elseif($page == "_login") { $text = ''; if(!empty($_POST['login']) && !empty($_POST['password'])) { if(!empty($_POST['permanent'])) $permanent = true; else $permanent = false; if($wiki->login($_POST['login'], $_POST['password'], $permanent)) { header("location: ".$wiki->PageURL($wiki->defaultHome)); exit; } $text.= '

Mot de passe ou login invalide.

'; } if($msg = $wiki->getError()) $text.= '

'.$msg.'

'; $title = 'Connexion'; $text.= '
Connexion

'; } 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 == "_prefs") { if(!$logged) die("Vous devez être connecté-e pour accéder à cette page."); $title = 'Préférences'; $text = '
Changer de mot de passe

Ne remplir ces champs que si vous désirez changer votre mot de passe.

(encore)

'; } elseif($page == "_admin") { if(!$logged || !$wiki->haveAccess('CONFIG')) $wiki->errorRedir('_login', "Vous n'avez pas accès à cette page."); $title = 'Administration'; $text = adminMenu('admin'); $text.= '

La version de Wikikubbe que vous utilisez est la: '.$wiki->version.'

Mettre à jour ma version de Wikikubbe

Site officiel de Wikikubbe: plugins et thèmes à télécharger, documentations...

'; } elseif($page == "_config") { if(!$logged || !$wiki->haveAccess('CONFIG')) $wiki->errorRedir('_login', "Vous n'avez pas accès à cette page."); if(!empty($_POST['saveconfig'])) { if(empty($_POST['users_register']) || $_POST['users_register'] != "yes") $_POST['users_register'] = "no"; $wiki->WriteConfig($_POST); header("location: ".$wiki->PageURL($wiki->defaultHome)); } $title = 'Configuration'; $text = adminMenu('config').'
Nom du wiki
Cette adresse sera utilisée par le wiki comme adresse d\'expédition des messages envoyés. Laisser vide pour désactiver l\'envoi de mails du wiki.
config['users_register'] == "yes" ? ' checked="checked"' : '').'/>
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.
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.

'; } elseif($page == "_groups") { if(!$logged || !$wiki->haveAccess('CONFIG')) $wiki->errorRedir('_login', "Vous n'avez pas accès à cette page."); if(!empty($_POST['savegroups'])) { $groups = $_POST['group']; if(!empty($groups['new'])) { $id = $groups['new']['id']; $groups[$id] = $groups['new']; unset($groups['new']); unset($groups[$id]['id']); } foreach($groups as $id=>$group) { if($id != 'guest' && $id != 'admin') { if(empty($group['name'])) $wiki->errorRedir('_groups', "Le nom de groupe est vide pour le groupe '$id'."); } if($id != 'admin') { foreach($wiki->defaultPermissions as $perm=>$name) { if(empty($group[$perm])) $groups[$id][$perm] = '0'; else $groups[$id][$perm] = '1'; } } } $groups['guest']['name'] = 'Visiteurs'; $groups = array('admin'=>$wiki->defaultGroups['admin']) + $groups; if($wiki->saveGroups($groups)) $msg = "Les changements dans les groupes/permissions ont été enregistrés."; else $msg = "Erreur dans l'enregistrement des groupes/permissions."; $wiki->errorRedir('_groups', $msg); } if(!empty($_GET['delete'])) { $id = $_GET['delete']; $groups = $wiki->getGroups(); unset($groups[$id]); $wiki->saveGroups($groups); $wiki->errorRedir('_groups', "Le groupe $id a été supprimé."); } $title = 'Groupes/Permissions'; $text = adminMenu('groups'); $groups = $wiki->getGroups(); ksort($groups); if(!empty($_POST['add_group'])) $groups = array('new'=>array('name'=>'Nouveau groupe')) + $groups; if($msg = $wiki->getError()) $text.= '

'.$msg.'

'; $text.= '

'; foreach($groups as $id=>$group) { $text.= '
Groupe: '.$group['name'].'
'; if($id != 'admin') { if($id != 'guest') { $text.= '
'; } if($id == 'new') { $text.= '
'; } $text.= '
Droits
'; foreach($wiki->defaultPermissions as $perm=>$name) { $text.= ''.$name.'
'; } $text.= '
'; } else { $text.= '
Droits
Tous
'; } $text.= '
'; if($id != 'guest' && $id != 'admin' && $id != 'new') $text.= '

Supprimer ce groupe

'; $text.= '
'; } $text.= '

'; } elseif($page == "_themes") { if(!$logged || !$wiki->haveAccess('CONFIG')) $wiki->errorRedir('_login', "Vous n'avez pas accès à cette page."); $title = 'Thèmes'; $text = adminMenu('themes'); } else { $text = 'Cette page n\'existe pas, mais cette syntaxe est réservée.'; } $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)); } ?>