Table of Contents
Page d'accueil / Home page
Permet de créer facilement des nouvelles pages dans des catégories voulues - Allows you to easily create new pages into appropriate categories
author: Anthony Prévost
Objet / Object
Permet de créer une page d'accueil qui liste les catégories du wiki et permet de créer une nouvelle page dans la catégorie choisie.
Permet aussi de créer une nouvelle catégorie.
La liste des catégories est aussi affichée sur la droite.
Creates a home page that lists categories of wiki to create a new page in the category chosen.
Also allows to Create a new category.
The list of categories is also displayed on the right.
Exemple / Sample
Plugin
Copier le code ci-dessous dans le contenu de la page start.
Copy the code below into the contents of the home page.
Code
~~NOCACHE~~ <php> require_once(DOKU_INC.'inc/search.php'); global $conf; global $ID; $dir = $conf['datadir']; $ns = cleanID($ns); #fixme use appropriate function if(empty($ns)){ $ns = dirname(str_replace(':','/',$ID)); if($ns == '.') $ns =''; } $ns = utf8_encodeFN(str_replace(':','/',$ns)); echo '<div id="index__tree" style="position:absolute;top:170px;width:95px;background: #dfd;border: 1px solid #9d9;>'; $data = array(); search($data,$conf['datadir'],'search_index',array('ns' => $ns)); echo html_buildlist($data,'idx','html_list_index','html_li_index'); echo ' </div>'; function search2(&$data,$base,$func,$opts,$dir='',$lvl=1){ $n=0; $dirs = array(); $files = array(); //read in directories and files $dh = @opendir($base.'/'.$dir); if(!$dh) return; while(($file = readdir($dh)) !== false){ if(preg_match('/^[\._]/',$file)) continue; //skip hidden files and upper dirs if(is_dir($base.'/'.$dir.'/'.$file)){ $dirs[] = $dir.'/'.$file; $tony = $tony.'liste['.$n.']="'.$file.'";'; $n=$n+1; continue; } $files[] = $dir.'/'.$file; } closedir($dh); sort($files); sort($dirs); return $tony; } echo '<script>'; echo 'var liste = new Array();</script>'; $tony=search2($data,$conf['datadir'],'search_index',array('ns' => $ns)); echo '<script>'.$tony.'</script>'; </php> <html> <body onload=""> <form class="button btn_create" method="post" action="/doku.php?do=index" name=tony> <style> .ap {font-family:tahoma;font-size:12px} .b {font-family:tahoma;font-size:12px;width:150;background: #e0e0e0;; } .tony {font-family:tahoma;font-size:12px;background: #ffffff;;font-weight:bold;color: #000080 } TD {font-family:tahoma;font-size:12px;background: #ffffff;text-align:left;font-weight:bold;color: #000080 } .TD2 {font-family:tahoma;font-size:14px;background: #e0e0e0;;font-weight:bold;color: #000080 } .tony2 {font-family:tahoma;font-size:12px;background: #ffffff;;font-weight:bold;color: #000080 } .tony3 {font-family:tahoma;font-size:8px;background: #ffffff;;font-weight:bold;color: #000080 } .tony3_2 {font-family:tahoma;font-size:8px;background: #000080;;font-weight:bold;color: #e0e0e0 } .c {font-family:tahoma;font-size:10px;background: #87CEFA;;font-weight:bold;color: #000080 } input {font-family:tahoma;font-size:12px;} textarea {font-family:tahoma;font-size:12px;} select {font-family:tahoma;font-size:12px;} A:link {font-family: tahoma, arial, geneva, sans-serif; font-size: 12px; text-decoration: underline; color: #0088bb} A:visited {font-family: tahoma, arial, geneva, sans-serif; font-size: 12px; text-decoration: underline; color: #0088bb} A:hover {font-family: tahoma, arial, geneva, sans-serif; font-size: 12px; text-decoration: none; color: #008000;} </style> <center> <span id=k2000></span> </center> <b><span style="cursor:hand" onclick='window.location="doku.php?do=index&id=accueil"'>Index</span></b> <b><span>Créer une nouvelle page</span></b> <br> <br> <div id=maliste></div> <style> TD {background: #dfd} </style> <script> function code(an) { liste.sort() a='' a=a+'<center><div style="width:950px;background: #dfd;border: 0px solid #9d9;">' a=a+'<table border=0 cellspacing=2 cellpadding=2 style="background: #dfd;"><tr><td colspan=3> </td></tr>' a=a+'<tr><td rowspan=4 width=20px> </td><td>' a=a+'Choix de la catégorie</td><td><select id="sel" class="edit" name=sel onfocus=this.select size=8>' for(var i=0;i<liste.length;i++) { if(liste[i]!='wiki' && liste[i] !='playground' && liste[i]!='Wiki' && liste[i] !='Playground') { a=a+'<option value="'+liste[i]+'" ' if((i==0 && an =='') || (liste[i]==an && an !='')) {a=a+'selected'} a=a+'>'+liste[i]+'</option>' } } a=a+'</select></td></tr>' a=a+'<tr><td>Titre de la page</td><td><input type=text size=100 id="taixt" name="taixt" class="edit" onfocus="this.select()" value="">' a=a+' <input type=button value="Créer cette page" class="button" accesskey="e" title="Créer cette page [E]" onclick="lance()" /></td></tr>' a=a+'<tr><td height=20px> </td></tr>' a=a+'<tr><td>Ajouter une nouvelle catégorie </td><td><input type=text size=40 id="ajout" name="ajout" class="edit" value="">' a=a+' <input type=button value="Ajouter une nouvelle catégorie" class="button" onclick="aj()"></td></tr>' a=a+'</table></div></center>' document.getElementById('maliste').innerHTML=a if(an !='') {document.getElementById('taixt').focus()} } code('') document.getElementById('sel').focus() function aj() {if(document.tony.ajout.value=='')return false; var an=liste.length var chaine=document.tony.ajout.value var chaine1= chaine.substring(0,1) var chaine2= chaine.substring(1) chaine= chaine1.toUpperCase()+ chaine2.toLowerCase() document.tony.ajout.value=chaine liste[an]=document.tony.ajout.value document.tony.ajout.value="" code(liste[an]) } function Remplacer(a) { var a, tmp; tmp = ""; for(var i = 0; i < a.length; i++) {tmp = tmp + a.charAt(i); if (a.charAt(i) == ":") { tmp = tmp.replace(":"," _ "); } } a = tmp; return a; } </script> <input type="hidden" name="do" value="edit" /> <input type="hidden" name="rev" value="" /> <input type="hidden" name="id" value="" /> <script> function lance() {if(document.tony.taixt.value=='') {alert('Il faut saisir le titre de la page') return false;} document.tony.taixt.value=Remplacer(document.tony.taixt.value) document.getElementById('qsearch__in').value=document.getElementById('sel').options[document.getElementById('sel').selectedIndex].value+":"+document.tony.taixt.value document.tony.id.value=document.getElementById('sel').options[document.getElementById('sel').selectedIndex].value+":"+document.tony.taixt.value document.tony.submit() } </script> <script> k2000text = ""; k2000pos = 0; k2000increment = 1; k2000text='- Bienvenue sur le wiki -' function k2000effet() { k2000aff = "" for(k2000a=0;k2000a<k2000text.length;k2000a++) { k2000lettre = k2000text.charAt(k2000a); if(k2000a == k2000pos || k2000a == (k2000pos+k2000increment)) k2000aff += "<FONT COLOR=#0000ef face=tahoma size=5><b>"+k2000lettre+"</b></FONT>"; else k2000aff += "<FONT COLOR=black face=tahoma size=6><b>"+k2000lettre+"</b></FONT>";; } document.getElementById("k2000").innerHTML = k2000aff; if(k2000pos == k2000text.length) k2000increment = -1; if(k2000pos == 0 && k2000increment== -1) k2000increment = 1; k2000pos = k2000pos+k2000increment; timer = setTimeout("k2000effet()",200) } </script> <script> k2000effet() </script> <br> <b><span>Liens utiles</span></b> </form> </body> </html> <note tip> {{:nfleche.gif|}}[[wiki:syntax|Syntaxe du Wiki]] \\ {{:nfleche.gif|}}[[wiki:dokuwiki|Documentation sur le Wiki]] \\ </note>
Discussion
Cela ne fonctionne pas si je copie cela dans la page se terminant par “doku.php?id=Accueil&do=edit&rev=”
L'aperçu ne marche pas mais si tu enregistres la page, ça doit marcher.
Tu as quoi comme erreur?
J'ai activé le php et la html dans la console d'admin
Excuse me… What home page you are talking about?… Where do I paste this code?