Vikidia:Achille/sources/form.php
| Version 0.1.5 (c) Ces pages sont données pour consultation. Si vous souhaitez utiliser Achille, téléchargez de préférence les sources au format zip |
<?php
/*
Achille/form.php
GPL v3
Thomas Pimmel 2008
*/
// Regroupement de tous les formulaires
// Bouton connexion
function form_connect()
{
$status=$_SESSION['status'];
$user=$_SESSION['user'];
if ($status==3) message ("Ceci est une démonstration, les fonctions d'écriture sont inactivées");
print ('<table style="width:100%; margin:0px; clear:both;"><tbody><tr><td valign="top" align="left">');
form_aide($_SESSION['command']);
print ('</td>');
if ($status)
{
print('<td valign="top" align="right"><form method="post" action="index.php">');
print ('<button value="deconnect" name="menu" type="submit"><img src="images/actions/system-log-out.png" align="left">');
if ($status==2) print ("$user (administrateur)");
else print ("$user (utilisateur)");
print('</button></form></td>');
}
print ('</tr></tbody></table>');
}
// Bouton retour menu principal (css)
function form_mainmenu()
{
print('
<form method="post" action="index.php">
<table class="invtable">
<tbody>
<tr>
<td style="text-align: center;"><button value="mainmenu" name="menu" style="width : 50%" type="submit">
<img src="images/actions/go-home.png" align="left">Retour au menu principal</button></td>
</tr>
</tbody>
</table>
</form>');
}
// Menu admin (css)
function form_admin()
{
print('
<form method="post" action="index.php">
<table class="invtable">
<tbody>
<tr>
<td style="text-align: center;">Menu de l'Administrateur d'Achille</td>
</tr>
<tr><td style="text-align: center;"><button value="userprefs" name="menu" style="width : 50%;" type="submit">
<img src="images/actions/system-lock-screen.png" align="left">Changer de mot de passe</button></td></tr>
<tr>
<td style="text-align: center;"><button value="gestion" name="menu" style="width : 50%;" type="submit">
<img src="images/actions/system-users.png" align="left">Gestion des utilisateurs</button></td>
</tr>
<tr>
<td style="text-align: center;"><button value="preferences" name="menu" style="width : 50%;" type="submit">
<img src="images/actions/preferences-system.png" align="left">Préférences</button>
</td>
</tr>
</tbody>
</table>
</form>');
}
// Menu user (css)
function form_user()
{
$pcent="90%";
$pcent2="45%";
if (isset($_SESSION['ctc']))
{
$disa=false;
$ctext="Déconnexion de Vikidia";
$cim="images/actions/system-log-out.png";
}
else
{
$disa="disabled='disabled'";
$ctext="Connexion à Vikidia";
$cim="images/actions/applications-internet.png";
}
print(" <form method='post' action='index.php'>");
print("
<table class='invtable' style='width:100%'><tbody><tr><td style='width:50%'>
<div style='width:80%;float:right'>
<table class='invtable' style='width:100%'>
<tbody>
<tr><td style='text-align: center;'>Menu utilisateur</td></tr>
<tr><td style='text-align: center;'><button value='userprefs' name='menu' style='width : $pcent;' type='submit'>
<img src='images/actions/system-lock-screen.png' align='left'>Changer de mot de passe</button></td></tr>
<tr><td style='text-align: center;'><button value='test' name='menu' style='width : $pcent;' type='submit'>
<img src='images/actions/utilities-system-monitor.png' align='left'>Tester les connexions</button></td></tr>
<tr><td style='text-align:center;'><button value='connectwiki' name='menu' style='width : $pcent;' type='submit'>
<img src='$cim' align='left'>$ctext</button></td></tr>
<tr>
<td style='text-align: center;'><button value='readmail' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/mail-message-new.png' align='left'>Page de discussion</button></td>
</tr>
<tr>
<td style='text-align: center;'><button value='readlog' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/x-office-calendar.png' align='left'>Page de logs</button></td>
</tr>
<tr>
<td style='text-align: center;'><button value='readreq' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/req.png' align='left'>Page de demandes</button></td>
</tr>
<tr><td style='text-align: center;'>Importation d'images</td></tr>
<tr><td style='text-align: center;'>
<button value='import' name='menu' style='width : $pcent2;' type='submit' $disa>
<img src='images/actions/emblem-photos.png' align='left'>Importation d'images</button>
<button value='pod' name='menu' style='width : $pcent2;' type='submit' $disa>
<img src='images/actions/application-certificate.png' align='left'>Fichier Image du jour</button>
</td></tr>
</tbody></table></div></td>
<td style='width:50%'>
<div style='width:80%;float:left'>
<table class='invtable' style='width:100%'><tbody>
<tr><td style='text-align: center;'>Travaux</td></tr>
<tr>
<td style='text-align: center;'><button value='annonce' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/mail-forward.png' align='left'>Envoyer des messages</button></td>
</tr>
<tr>
<td style='text-align: center;'><button value='rncat' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/cat-change.png' align='left'>Changer de catégorie</button></td>
</tr>
<tr>
<td style='text-align: center;'><button value='replace' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/edit-find-replace.png' align='left'>Chercher / Remplacer</button></td>
</tr>
<tr>
<td style='text-align: center;'><button value='wikif' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/bookmark-new.png' align='left'>Wikifier un mot</button></td>
</tr>
<tr><td style='text-align: center;'>Maintenance</td></tr>
<tr>
<td style='text-align: center;'><button value='image' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/applications-graphics.png' align='left'>Vérifier des images</button></td>
</tr>
<tr>
<td style='text-align: center;'><button value='inter' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/inter.png' align='left'>Liens Interwiki</button></td>
</tr>
<tr>
<td style='text-align: center;'><button value='typo' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/format-text-bold.png' align='left'>Corriger la typographie</button></td>
</tr>
<tr>
<td style='text-align: center;'><button value='cato' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/folder-new.png' align='left'>Maintenance des catégories</button></td>
</tr>
</tbody></table></div></td></tr>
</tbody>
</table>
</form>");
/* <tr>
<td style='text-align: center;'><button value='tmp' name='menu' style='width : $pcent;' type='submit' $disa>
<img src='images/actions/format-text-bold.png' align='left'>Mise en forme</button></td>
</tr>*/
}
// Demande mot de passe (css)
function form_mdp()
{
/*message ("Si vous utilisez Internet explorer, Achille ne fonctionnera pas. Ceci est dû au non-respect de Microsoft des spécifications
internationales concernant le HTML.");*/
print('
<form method="post" action="index.php"><br>
<table class="invtable">
<tbody>
<tr>
<td style="text-align: right;">Identifiant</td>
<td style="text-align: left;"><input name="user"></td>
</tr>
<tr>
<td style="text-align: right;" valign="undefined">Mot de passe</td>
<td style="text-align: left;"><input name="passwd" type="password"></td>
</tr>
<tr>
<td style="text-align: center;" colspan="2" rowspan="1" >
<button type="submit">Envoyer</button></td>
</tr>
</tbody>
</table>
</form>');
}
//Liste des utilisateurs (css)
function form_userlist()
{
$statx=array("supprimé","utilisateur","administrateur","démonstration");
//comptage des entrées
$nbusers=us_comptage();
//début tableau
print ("<center><b>Gestion des utilisateurs</b></center>
<table class='modiftable' border='1'>
<tbody>
<tr>
<td colspan='3' rowspan='1'>Nombre d'utilisateurs : $nbusers</td>
</tr>");
//liste
if ($nbusers)
{
$liste=us_read();
for ($n=0 ; $n<$nbusers ; $n++)
{
$pseudo=$liste[$n+1][USUSER];
$stat=$statx[$liste[$n+1][USTAT]];
print ("<form method='post' action='index.php'>");
print ("<INPUT TYPE=HIDDEN NAME='user' value=");
print('"');
print("$pseudo");
print('">');
print("<tr><td>$pseudo ($stat)</td>");
print("<td><button style='width : 100%;' name='menu' value='deluser' type='submit'>Supprimer</button></td></tr></form>");
}
}
//fin tableau
if ($nbusers<MAX_USERS)
{
print (' <tr>
<form method="post" action="index.php">
<td style="width:80%;"></td>
<td style="width:20%;"><button name="menu" value="adduser" style="width:100%;" type="submit">Ajouter</button></td>
</form>
</tr>');
}
else
{
// Limites de la constante MAX_USERS
print (' <tr>
<td style="width:80%;"><b>Limite du nombre d'utilisateurs atteinte<b></td>
<td style="width:20%;"></td>
</form>
</tr>');
}
// fin de tableau
print('</tbody>
</table>
</form>');
}
// Bouton retour menu principal (css)
function form_retour($message)
{
message ($message,2);
print(" <form method='post' action='index.php'>
<div style='text-align: center;'><button value='gestion' name='menu' style='width : 50%' type='submit'>
<img src='images/actions/go-home.png' align='left'>Retour au menu gestion</button></div>
</form>");
}
// Ajouter un utilisateur (css)
function form_add_user()
{
print('
<form method="post" action="index.php"><br>
<table class="modiftable" border="1">
<tbody>
<tr>
<td style="text-align: right;">Compte Vikidia</td>
<td><input name="user"></td>
</tr>
<tr>
<td style="text-align: right;">Mot de passe provisoire</td>
<td> <input name="passwd" type="password"></td></tr>
<tr>
<tr>
<td style="text-align: right;">Entrez le mot de passe à nouveau</td>
<td> <input name="passwd2" type="password"></td></tr>
<tr>
<td style="text-align: right;">
<button type="submit">Ajouter</button>
<select name="stat">
<option>Administrateur</option>
<option selected="selected">Utilisateur</option>
<option>Démonstration</option>
</select>
</td>
<td style="text-align: left;"><button value="gestion" name="menu" type="submit">Annuler</button></td>
</tr>
</tbody>
</table>
</form>');
}
// Préférences (css)
function form_prefs()
{
$max=MAX_USERS;
$delay=EDIT_DELAY;
$url=URL_VIKIDIA;
print(" <center><b>Préférences (lecture seule)</b></center>
<table class='infotable' border='1'>
<tbody>
<tr><td>Nombre d'utilisateurs maxi</td><td>$max</td></tr>
<tr><td>Attente entre deux éditons</td><td>$delay secondes</td></tr>
<tr><td>URL de Vikidia</td><td>$url</td></tr>
</tbody>
</table>");
}
// préférences utilisateur
function form_userprefs()
{
if ($_SESSION['status']==3)
{
message ("Cette fonction n'est pas accessible en mode démonstration",1);
return;
}
// changer le mot de passe
print(' <form method="post" action="index.php"><br>
<table class="modiftable" border="1">
<tbody>
<tr><td style="text-align: center;" colspan="2" rowspan="1">Changement du mot de passe</td></tr>
<tr>
<td style="text-align: right;">Nouveau mot de passe</td>
<td><input name="newpassword" type="password"></td>
</tr>
<tr>
<td style="text-align: right;">Entrer à nouveau</td>
<td><input name="password2" type="password"></td>
</tr>
<tr>
<td style="text-align: center;" colspan="2" rowspan="1">
<button type="submit">Changer</button></td>
</tr>
</tbody>
</table>
</form>');
}
// formulaire image du jour
function form_pod()
{
// démo ?
if ($_SESSION['status']==3)
{
message ("Fonction désactivée en mode démonstration",1);
return;
}
// charger le fichier POD
$pod=@file_get_contents("users/".$_SESSION['user'].".podfile");
if (!$pod)
{
message ("Le fichier POD est vide, importez des images",1);
return;
}
print("<form method='post' action='index.php'>
<div class='vikidiv'>
<center><b>Création d'images du jour</b><br>D'après le fichier des images importées</center><br>
<table style='width:100%;'>
<tbody>
<tr><td colspan='2'><textarea wrap='soft' cols='1' rows='20' name='podlist' style='width: 100%;'>$pod</textarea>
<tr><td align=right>Date de début aaaa-mm-jj (exemple : 2008-04-01) :</td>
<td width=50%><input name='date' value='' style='width:100%;'></td></tr>
</tbody>
</table>
<div style='text-align: right;'>
<button value='pod' name='pod' type='submit'>
<img src='images/actions/go.png' align='left'><font color=#0000AA><b>Création des images du jour</b></font></button>
</div>
</div></form>");
}
// Formulaire création liste d'importation
function form_import($url='',$cat='',$reduce=true,$day=false)
{
// chercher catégorie de départ
print ("<div id='msgid' style='width=100%'><center>
Chargement des catégories... veuillez patienter</center></div>");
flush();
@ob_flush();
$listcat=GetCatList("Image par thème");
print ("<script type='text/javascript'>masque('msgid')</script>");
flush();
@ob_flush();
// formulaire
print("<form method='post' action='index.php'>
<div class='vikidiv'>
<center><b>Importation d'images de Commons</b></center><br>
<table style='width:100%;'>
<tbody>
<tr><td align=right>Page de Commons (voir aide) :</td><td width=80%><input name='url' value=\"$url\" style='width:100%;'></td></tr>
<tr><td align=right>Catégorie principale :</td>
<td><select name='maincat'>");
$n=0;
while (isset($listcat[$n]))
{
if ($cat==$listcat[$n])
{
print ("<option selected='selected'>$listcat[$n]</option>");
$cat='';
}
else print ("<option>$listcat[$n]</option>");
$n++;
}
print ("
</select>
</td></tr>
<tr><td align=right>Autre catégorie :</td><td width=80%><input name='othercat' value=\"$cat\" style='width:100%;'></td></tr>
<tr>
<td align=right>Options :</td><td>
<label><input name='reduce' value='1' type='checkbox'");
if ($reduce) print (" checked='checked'");
print (">Réduire les images</label>
<label><input name='day' value='1' type='checkbox'");
if ($day) print (" checked='checked'");
print (">Ajouter aux images du jour</label>
</td>
</tr>
</tbody>
</table>
<div style='text-align: right;'><button value='first' name='import' type='submit'>Import des images</button></div>
</div></form>");
}
function form_next_image()
{
require ("includes/adrs.php");
$cat=$_SESSION['import']['maincat'];
$nb=$_SESSION['import']['nb'];
$list=$_SESSION['import']['list'];
$listcat=$_SESSION['import']['catlist'];
// total atteint ?
$total=count($list);
if (!isset($list[$nb]))
{
message ("Fin de la liste",2);
form_import ($_SESSION['import']['url'],$_SESSION['import']['cat'],
$_SESSION['import']['reduce'],$_SESSION['import']['day']);
return false;
}
// info page commons
$image=str_replace(" ", "_",$list[$nb]);
$page=w_Curl($adrs['commons']['idx']."/".$image);
if ($page) $url=extract_url($page);
else $url=false;
$imagered=$url[1];
$imagefull=$url[0];
// description et auteur
$page=w_GetPage($image,$adrs['commons']['api']);
if ($page)
{
$des=GetTemplArgs2("fr",$page);
if (!$des) $des=GetImInfo($page,'Description');
$des=str_replace(":fr:","",$des);
$auteur=GetImInfo($page,'Author');
$date=GetImInfo($page,'Date');
$date=str_replace("[","",$date);
$date=str_replace("]","",$date);
}
// licences
$listmod=w_GetPageInfo($image,'templates',$adrs['commons']['api']);
$l=modlicence_exists("Template:CC-BY-",$listmod);
if (is_int($l)) $licence1=str_replace("Template:","",$listmod[$l]);
$l=modlicence_exists("Template:GFDL",$listmod);
if (is_int($l)) $licence2=str_replace("Template:","",$listmod[$l]);
$l=modlicence_exists("Template:CopyrightedFreeUse",$listmod);
if (is_int($l)) $licence3=str_replace("Template:","",$listmod[$l]);
$l=modlicence_exists("Template:PD",$listmod);
if (is_int($l))
{
$licence3=str_replace("Template:","",$listmod[$l]);
$lics=array("PD-user","PD-old","PD-USGov-NASA","PD-NASA","PD-self","PD-author","PD-USGov-CIA-WF","PD-OpenClipart","money-EU");
$licr=array("DP-auteur","DP-vieux","DP-US-NASA","DP-US-NASA","DP-auteur","DP-auteur","DP-US-CIA","DP-openclipart","Monnaie-UE");
$licence3=str_ireplace($lics,$licr,$licence3);
if (is_int(stripos($licence3,"PD-USGov"))) $licence3="DP-US";
$licence3=str_ireplace("pd","DP",$licence3);
}
// affichage
$nbr=$nb+1;
$link="<a href='".$adrs['commons']['idx']."/".$list[$nb]."' target='_blank'>".$list[$nb]."</a>";
print("<form method='post' action='index.php'>
<div class='vikidiv'>
<table style='width:100%;'>
<tbody>
<tr><td align=center>
<b>Importation : Image $nbr / $total</b><br>$link
</td></tr>
<tr><td>
<textarea wrap='soft' cols='1' rows='3' name='imagedes' style='width: 100%;'>$des</textarea>
</td></tr>
<tr><td>
Licence Commons : <input name='licence1' value=\"$licence1\">
Licence GNU : <input name='licence2' value=\"$licence2\">
Autre licence : <input name='licence3' value=\"$licence3\">
</td></tr>
<tr><td>
Auteur : <input name='auteur' value=\"$auteur\" style='width: 40%;'>
Date : <input name='date' value=\"$date\" style='width: 40%;'>
</td></tr>
<tr><td>Catégorie de l'image : <select name='cat'>");
$n=0;
while (isset($listcat[$n]))
{
if ($n==0) print ("<option selected='selected'>$listcat[$n]</option>");
else print ("<option>$listcat[$n]</option>");
$n++;
}
print ("
</select>
<input name='catbis' value='' style='width: 40%;'>
</td></tr>
<tr><td align=center>
<button value='pass' name='import' style='width:40%;' type='submit'>
<img src='images/actions/edit-clear.png' align='left'>Passer l'image</button>
<button value='import' name='import' style='width:40%;' type='submit'>
<img src='images/actions/go.png' align='left'><font color=#0000AA><b>Importer</b></font></button>
</td></tr>
<tr>
<td align=center><img src='$imagered'></td>
</tr>
</tbody>
</table>
</div>
<input name='imagered' value=\"$imagered\" type='hidden'>
<input name='imagefull' value=\"$imagefull\" type='hidden'>
</form>");
}
// Formulaire annonce
function form_annonce($category,$section,$message)
{
if (!$_SESSION['msg']['catlist'])
{
print ("<div id='msgid' style='width=100%'><center>
Chargement des catégories utilisateurs... veuillez patienter</center></div>");
flush();
@ob_flush();
$_SESSION['msg']['catlist']=FilterCat(w_GetPagesCat("Utilisateurs"));
print ("<script type='text/javascript'>masque('msgid')</script>");
flush();
@ob_flush();
}
$list=$_SESSION['msg']['catlist'];
// formulaire
print("<form method='post' action='index.php'>
<div class='vikidiv'>
<center><b>Envoyer un message à une liste</b></center><br>
<table style='width:100%;'>
<tbody>
<tr>
<td>Envoyer à la liste :</td>
<td><select name='category'>");
$n=0;
while (isset($list[$n]))
{
if ($category==$list[$n]) print ("<option selected='selected'>$list[$n]</option>");
else print ("<option>$list[$n]</option>");
$n++;
}
print ("
</select></td>
<tr>
<td>Titre :</td>
<td style='width: 80%;'><input name='section' value=\"$section\" style='width: 100%;'></td>
</tr>
<tr>
<td valign='top'>Message :</td>
<td style='width: 80%;'><textarea wrap='soft' cols='1' rows='10' name='message' style='width: 100%;'>$message</textarea></td>
</tr>
</tbody>
</table>
<div style='text-align: right;'><button value='preview' name='annonce' type='submit'>Aperçu</button></div>
</div></form>");
}
// Formulaire annonce -> prévisualiser
function form_preview($msg)
{
$user=$_SESSION['user'];
$texte=$msg['texte'];
$section=$msg['section'];
$category=$msg['category'];
print("<div align=center><b>Prévisualisation du message</b><br>Envoyé à la liste : $category");
print ("<br>
<p align=left><big><b>$section</b></big>
<hr noshade style='width:100%; color:gray; height:1px;'>
</p>");
$mois=GetMois(date("F"));
$date=date("d ").$mois.date(" Y à G:i (T)");
$prev=w_Parse("{{Achille message|$user $date|".$category."|".$texte."}}");
print ($prev);
print ("<br /><form method='post' action='index.php'>
<div style='text-align: center;'>
<button value='annonce' name='annonce' type='submit'>
<img src='images/actions/go.png' align='left'><font color=#0000AA><b>Envoyer</b></font></button>
<button value='correction' name='annonce' type='submit'>
<img src='images/actions/edit-clear.png' align='left'>Corriger</button>
</div></form></div>");
}
// Formulaire renommage catégorie
function form_rncat($from,$to,$com)
{
print("<form method='post' action='index.php'>
<div class='vikidiv'>
<center><b>Changer de catégorie</b></center><br>
<table style='width:100%;'>
<tbody>
<td style='text-align:right;'><b>De</b> (exemple, <i>léporidé</i>) :</td>
<td style='width: 60%;'><input name='from' value=\"$from\" style='width: 100%;'></td>
</tr>
<tbody>
<td style='text-align:right;'><b>Vers</b> (exemple, <i>lagomorphe</i>) :</td>
<td style='width: 60%;'><input name='to' value=\"$to\" style='width: 100%;'></td>
</tr>
<tbody>
<td style='text-align:right;'><b>Commentaire</b> (laissez vide pour défaut) :</td>
<td style='width: 60%;'><input name='com' value=\"$com\" style='width: 100%;'></td>
</tr>
</tbody>
</table>
<div style='text-align: right;'><button value='preview' name='rncat' type='submit'>Changer</button></div>
</div></form>");
}
// preview et confirmation
function form_rn_preview($mode)
{
$rnfrom=$_SESSION['rncat']['from'];
$rnto=$_SESSION['rncat']['to'];
$rncom=$_SESSION['rncat']['com'];
if (!$rncom)
{
$rncom='Changement catégorie de \'' .$rnfrom. '\' vers \'' . $rnto.'\'';
$_SESSION['rncat']['com']=$rncom;
}
if ($_SESSION['rncat']['list']) $result=$_SESSION['rncat']['list'];
else $result=w_GetPagesCat($rnfrom);
if (!$result)
{
message ("La page de catégorie $rnfrom est vide ou n'existe pas<br>");
form_rncat($rnfrom,$rnto,'');
return false;
}
// haut
print("
<form method='post' action='index.php'>
<div class='vikidiv100'>
<center>
<b>Renommer une catégorie de $rnfrom vers $rnto</b><br>Liste des pages concernées<br>
<table border='1'><tbody><tr>
");
// liste
$n=0;
$i=0;
$line=0;
while (isset($result[$n]))
{
if ($line==3)
{
$line=0;
print ("</tr><tr>");
}
$chkbox='<td>'.$result[$n].'</td><td><input name="select[]" value="' . $result[$n] . '" type="checkbox"';
print ("$chkbox");
switch ($mode)
{
case 0:
print (" checked='checked'");
break;
case 1:
break;
case 2:
if (isset($_POST['select'][$i]) && $_POST['select'][$i]==$result[$n]) $i++;
else print (" checked='checked'");
break;
}
print ("></td>");
$n++;
$line++;
}
// bas
print ("
</tr>
</tbody></table>
<p>
Sélection : <button value='selall' name='rncat' type='submit'>Tous</button>
<button value='selno' name='rncat' type='submit'>Aucun</button>
<button value='selinv' name='rncat' type='submit'>Inverser</button></p>
<p>Commentaire d'édition : $rncom</p>
</center>
<div style='text-align: center;'><button value='rncat' name='rncat' style='width:40%;' type='submit'>
<img src='images/actions/go.png' align='left'><font color=#0000AA><b>Changer</b></font></button>
<button value='correction' name='rncat' style='width:40%;' type='submit'>
<img src='images/actions/edit-clear.png' align='left'>Corriger</button></div>
</div></form>
");
return $result;
}
// menu recherche remplacement
function form_sr($search,$replace,$com,$case,$maj,$cat,$namesp=0)
{
print("<form method='post' action='index.php'>
<div class='vikidiv'>
<center><b>Rechercher / Remplacer</b></center><br>
<table style='width:90%; margin-left:auto; margin-right:auto;'>
<tbody>
<td style='text-align:right;'><b>Rechercher</b> :</td>
<td><input name='search' value=\"$search\" style='width: 100%;'></td>
</tr>
<td style='text-align:right;'><b>Remplacer</b> :</td>
<td><input name='replace' value=\"$replace\" style='width: 100%;'></td>
</tr>
<td style='text-align:right;'><b>Commentaire :</b><br>(laissez vide pour défaut)</td>
<td><input name='com' value=\"$com\" style='width: 100%;'></td>
</tr>
<tr><td></td><td style='text-align:right;'>
<label><input name='case' value='1' type='checkbox'");
if ($case) print (" checked='checked'");
print (">Sensible à la casse</label>
<label><input name='maj' value='1' type='checkbox'");
if ($maj) print (" checked='checked'");
print (">Respecter première majuscule</label>
</td></tr>
<tr><td colspan='2' style='text-align:center;'><b>Domaine de la recherche</b></td></tr>
<tr>
<td style='text-align:right;'>Par catégorie :</td>
<td>
<input name='cat' value=\"$cat\" style='width: 50%;'>
<label><input name='model' value='1' type='checkbox'");
if ($namesp&1) print (" checked='checked'");
print (">Modèles</label>
<label><input name='image' value='2' type='checkbox'");
if ($namesp&2) print (" checked='checked'");
print (">Images</label>
</td>
</tr>
</tbody>
</table>
<div style='text-align: right;'><button value='preview' name='sr' type='submit'>Chercher/Remplacer</button></div>
</div></form>");
}
// menu preview recherche/remplacmeent
function form_sr_preview($mode)
{
$search=$_SESSION['sr']['search'];
$replace=$_SESSION['sr']['replace'];
$com=$_SESSION['sr']['com'];
$case=$_SESSION['sr']['case'];
$maj=$_SESSION['sr']['maj'];
$cat=$_SESSION['sr']['cat'];
$namesp=$_SESSION['sr']['namesp'];
$details=$_SESSION['sr']['details'];
if ($_SESSION['sr']['list']) $result=$_SESSION['sr']['list'];
else
{
$namespace="0";
if ($namesp&2) $namespace=$namespace."|6";
if ($namesp&1) $namespace=$namespace."|10";
if (!$cat) $result=w_Search($search,$namespace);
else $result=w_GetPagesCat($cat);
}
if (!$result)
{
message ("La recherche ne donne pas de résultats");
form_sr($search,$replace,$com,$case,$maj,$cat,$namesp);
return false;
}
if (!$com)
{
$com='Remplacement de \'' .$search. '\' par \'' . $replace . '\'';
$_SESSION['sr']['com']=$com;
}
// haut
print("
<form method='post' action='index.php'>
<div class='vikidiv100'>
<center>
<b>Remplacer $search par $replace</b><br>Liste des pages concernées ");
if (isset($details)) print ("<button value='details' name='sr' type='submit'>Cacher les détails</button>");
else print ("<button value='details' name='sr' type='submit'>Voir les détails (lent)</button>");
print ("<br>
<table border='1'><tbody><tr>
");
// liste
$n=0;
$ligne=0;
$i=0;
if (isset($details)) $colomns=1;
else $colomns=3;
while (isset($result[$n]))
{
if ($line==$colomns)
{
$line=0;
print ("</tr><tr>");
}
$chkbox='<td>'.$result[$n].'</td><td><input name="select[]" value="' . $result[$n] . '" type="checkbox"';
print ("$chkbox");
switch ($mode)
{
case 0:
print (" checked='checked'");
break;
case 1:
break;
case 2:
if (isset($_POST['select'][$i]) && $_POST['select'][$i]==$result[$n]) $i++;
else print (" checked='checked'");
break;
case 3:
if ($_SESSION['sr']['details'][$n]) print (" checked='checked'");
break;
case 4:
if (isset($_POST['select'][$i]) && $_POST['select'][$i]==$result[$n])
{
$i++;
print (" checked='checked'");
}
break;
}
print ("></td>");
if (isset($details)) print ("<td>$details[$n]</td>");
$n++;
$line++;
}
// bas
print ("
</tr>
</tbody></table>
<p>
Sélection : <button value='allart' name='sr' type='submit'>Tous</button>
<button value='noart' name='sr' type='submit'>Aucun</button>
<button value='invart' name='sr' type='submit'>Inverser</button></p>
<p>Commentaire d'édition : $com</p>
</center>
<div style='text-align: center;'><button value='sr' name='sr' style='width:40%;' type='submit'>
<img src='images/actions/go.png' align='left'><font color=#0000AA><b>Remplacer</b></font></button>
<button value='correction' name='sr' style='width:40%;' type='submit'>
<img src='images/actions/edit-clear.png' align='left'>Corriger</button></div>
</div></form>
");
return $result;
}
// menu wikification
function form_wikif($mot,$com,$pluriel)
{
print("<form method='post' action='index.php'>
<div class='vikidiv'>
<center><b>Wikifier un mot</b></center><br>
<table style='width:80%;'>
<tbody>
<td style='text-align:right;'><b>Mot à wikifier</b> (exemple, <i>tortue<i>) :</td>
<td style='width: 60%;'><input name='mot' value=\"$mot\" style='width: 100%;'></td>
</tr>
<tr>
<td colspan='2' style='text-align:right;'><label><input name='pluriel' value='1' type='checkbox'");
if ($pluriel) print (" checked='checked'");
print (">Gérer le pluriel (<b>en s</b>)</label></td>
</tr>
<td style='text-align:right;'><b>Commentaire</b> (laissez vide pour défaut) :</td>
<td style='width: 60%;'><input name='com' value='$com' style='width: 100%;'></td>
</tr>
</tbody>
</table>
<div style='text-align: right;'><button value='preview' name='wikif' type='submit'>Wikifier</button></div>
</div></form>");
}
// menu preview recherche/remplacmeent
function form_wikif_preview($mode)
{
$mot=$_SESSION['wikif']['mot'];
$com=$_SESSION['wikif']['com'];
$pluriel=$_SESSION['wikif']['pluriel'];
$details=$_SESSION['wikif']['details'];
if ($_SESSION['wikif']['list']) $result=$_SESSION['wikif']['list'];
else $result=w_Search($mot,"0");
if (!$result)
{
message ("La recherche ne donne pas de résultats");
form_wikif($mot,$com,$pluriel);
return false;
}
if (!$com)
{
$com='Wikification de "' .$mot . '"';
$_SESSION['wikif']['com']=$com;
}
// haut
print("
<form method='post' action='index.php'>
<div class='vikidiv100'>
<center>
<b>Wikifier $mot</b><br>Liste des pages concernées ");
if (isset($details)) print ("<button value='details' name='wikif' type='submit'>Cacher les détails</button>");
else print ("<button value='details' name='wikif' type='submit'>Voir les détails (lent)</button>");
print("<br>
<table border='1'><tbody><tr>
");
// liste
$n=0;
$ligne=0;
$i=0;
if (isset($details)) $colomns=1;
else $colomns=3;
while (isset($result[$n]))
{
if ($line==$colomns)
{
$line=0;
print ("</tr><tr>");
}
$chkbox='<td>'.$result[$n].'</td><td><input name="select[]" value="' . $result[$n] . '" type="checkbox"';
print ("$chkbox");
switch ($mode)
{
case 0:
print (" checked='checked'");
break;
case 1:
break;
case 2:
if (isset($_POST['select'][$i]) && $_POST['select'][$i]==$result[$n]) $i++;
else print (" checked='checked'");
break;
case 3:
if ($_SESSION['wikif']['details'][$n]) print (" checked='checked'");
break;
case 4:
if (isset($_POST['select'][$i]) && $_POST['select'][$i]==$result[$n])
{
$i++;
print (" checked='checked'");
}
break;
}
print ("></td>");
if (isset($details)) print ("<td>$details[$n]</td>");
$n++;
$line++;
}
// bas
print ("
</tr>
</tbody></table>
<p>
Sélection : <button value='allart' name='wikif' type='submit'>Tous</button>
<button value='noart' name='wikif' type='submit'>Aucun</button>
<button value='invart' name='wikif' type='submit'>Inverser</button></p>
<p>Commentaire d'édition : $com</p>
</center>
<div style='text-align: center;'><button value='wikif' name='wikif' style='width:40%;' type='submit'>
<img src='images/actions/go.png' align='left'><font color=#0000AA><b>Wikifier</b></font></button>
<button value='correction' name='wikif' style='width:40%;' type='submit'>
<img src='images/actions/edit-clear.png' align='left' type='submit'>Corriger</button></div>
</div></form>
");
return $result;
}
function form_verif_image($from='',$nbr=500,$flag=15,$jours=0,$heures=0)
{
print("<form method='post' action='index.php'>
<div class='vikidiv'>
<center><b>Maintenance des images</b></center><br>
<table style='width:100%;'>
<tbody>
<tr>
<td>Commencer à <br>(<i>exemple, télévision<i>) :</td><td><input name='from' value='$from' style='width:100%;'></td>
<td>Nombre d'images (1 - 500) :</td><td><input name='nbr' value=$nbr></td>
</tr>
<tr>
<td colspan='2'>Limiter aux importations récentes :</td>");
form_rc($jours,$heures);
//<td><input name='jours' value=$jours> jour(s)</td><td><input name='heures' value=$heures> heure(s)</td>
print("</tr>
<tr>
<td colspan='4' align=center><b>Opérations à effectuer</b></td>
</tr>
<tr>
<td><label>Mettre bandeau mise en forme<input name='chmef' value=1 type='checkbox'");
if ($flag&1) print("checked='checked'");
print ("></label></td>
<td><label>Vérifier licence<input name='chlicence' value=2 type='checkbox'");
if ($flag&2) print("checked='checked'");
print ("></label></td>
<td><label>Vérifier source<input name='chsource' value=4 type='checkbox'");
if ($flag&4) print("checked='checked'");
print ("></label></td>
<td><label>Vérifier catégorie<input name='chcat' value=8 type='checkbox'");
if ($flag&8) print("checked='checked'");
print ("></label></td>
</tr>
<tr><td></td><td></td><td></td><td><button value='mif' name='mif' type='submit'>
<img src='images/actions/go.png' align=left><font color=#0000AA>Vérifier les images</font></button></td>
</tbody>
</table>
</div></form>");
}
function form_inter($from='',$nbr=500,$jours=0,$heures=0)
{
print("<form method='post' action='index.php'>
<div class='vikidiv'>
<center><b>Maintenance des liens Interwiki</b></center><br>
<table style='width:100%;'>
<tbody>
<tr>
<td>Commencer à <br>(<i>exemple, lapin<i>) :</td><td><input name='from' value='$from' style='width:100%;'></td>
</tr>
<td>Nombre d'articles (1 - 500) :</td><td><input name='nbr' value='$nbr'></td>
</tr>
<tr>
<td>Limiter aux créations récentes :</td>");
//<td><input name='jours' value=$jours> jour(s)<input name='heures' value=$heures> heure(s)</td>
form_rc($jours,$heures,true);
print("</tr>
<tr><td></td><td><button value='inter' name='inter' type='submit'>
<img src='images/actions/go.png' align=left><font color=#0000AA>Vérifier les liens</font></button></td>
</tbody>
</table>
</div></form>");
}
function form_typo($from='',$nbr=500,$flag=15,$jours=0,$heures=0)
{
print("<form method='post' action='index.php'>
<div class='vikidiv'>
<center><b>Maintenance des articles : typographie</b></center><br>
<table style='width:100%;'>
<tbody>
<tr>
<td>Commencer à <br>(<i>exemple, télévision<i>) :</td><td><input name='from' value='$from' style='width:100%;'></td>
<td>Nombre d'articles (1 - 500) :</td><td><input name='nbr' value=$nbr></td>
</tr>
<tr>
<td colspan='2'>Limiter aux changements récents :</td>");
form_rc($jours,$heures);
//<td><input name='jours' value=$jours> jour(s)</td><td><input name='heures' value=$heures> heure(s)</td>
print("
</tr>
<tr>
<td colspan='4' align=center><b>Typographie à vérifier</b></td>
</tr>
<tr>
<td><label>Vérifier la ponctuation et les espaces<input name='chpon' value=1 type='checkbox'");
if ($flag&1) print("checked='checked'");
print ("></label></td>
<td><label>Remplacer les guillemets<input name='chgui' value=2 type='checkbox'");
if ($flag&2) print("checked='checked'");
print ("></label></td>
<td><label>Remplacer les tirets<input name='chtir' value=4 type='checkbox'");
if ($flag&4) print("checked='checked'");
print ("></label></td>
<td><label>Limiter aux créations récentes<input name='chmod' value=8 type='checkbox'");
if ($flag&8) print("checked='checked'");
print ("></label></td>
</tr>
<tr><td></td><td></td><td></td><td><button value='typo' name='typo' type='submit'>
<img src='images/actions/go.png' align=left><font color=#0000AA>Vérifier la typographie</font></button></td>
</tbody>
</table>
</div></form>");
}
// formulaire maintenance cat
function form_cato($from='',$nbr=500,$flag=15,$jours=0,$heures=0,$categ='')
{
print("<form method='post' action='index.php'>
<div class='vikidiv'>
<center><b>Maintenance des articles : catégorie</b></center><br>
<table style='width:100%;'>
<tbody>
<tr>
<td>Commencer à <br>(<i>exemple, télévision<i>) :</td><td><input name='from' value='$from' style='width:100%;'></td>
<td>Nombre d'articles (1 - 500) :</td><td><input name='nbr' value=$nbr></td>
</tr>
<tr>
<td colspan='2'>Limiter à la catégorie (<i>exemple, Mammifère<i>) :</td>
<td colspan='2'><input name='categ' value='$categ' style='width:100%;'></td>
</tr>
<tr>
<td colspan='2'>Limiter aux changements récents :</td>");
form_rc($jours,$heures);
print("</tr>
<tr>
<td colspan='4' align=center><b>Catégories à vérifier</b></td>
</tr>
<tr>
<td><label>Ajouter<br><i>Article à illustrer</i><input name='illplus' value=1 type='checkbox'");
if ($flag&1) print("checked='checked'");
print ("></label></td>
<td><label>Enlever<br><i>Article à illustrer</i><input name='illmoins' value=2 type='checkbox'");
if ($flag&2) print("checked='checked'");
print ("></label></td>
<td><label>Ajouter<br><i>Illustration manquante</i><input name='missplus' value=4 type='checkbox'");
if ($flag&4) print("checked='checked'");
print ("></label></td>
<td><label>Enlever<br><i>Illustration manquante</i><input name='missmoins' value=8 type='checkbox'");
if ($flag&8) print("checked='checked'");
print ("></label></td>
</tr>
<tr><td></td><td></td><td></td><td><button value='cato' name='cato' type='submit'>
<img src='images/actions/go.png' align=left><font color=#0000AA>Maintenir les catégories</font></button></td>
</tbody>
</table>
</div></form>");
}
// pour modifs récentes
function form_rc($jours,$heures,$span=false)
{
$n=0;
print ("<td>Jours : <select name='jours'>");
while ($n<16)
{
if ($n==$jours) print ("<option selected='selected'>$n</option>");
else print ("<option>$n</option>");
$n++;
}
if ($span) print ("</select> ");
else print ("</select></td><td>");
$n=0;
print ("Heures : <select name='heures'>");
while ($n<24)
{
if ($n==$heures) print ("<option selected='selected'>$n</option>");
else print ("<option>$n</option>");
$n++;
}
print ("</select></td>");
//"<td><input name='jours' value=$jours> jour(s)</td><td><input name='heures' value=$heures> heure(s)</td>"
}
// fonction utiles
function form_test()
{
print("
<div class='vikidiv'>
<center><b>Connexions des serveurs</b></center><br>
<center>
<table style='width:80%;' border='2'>
<tbody>
<tr><th>Site (page d'accueil)</th><th>Temps de chargement</th></tr>
<tr><td><a href='http://fr.vikidia.org/index.php/Accueil' target=_blank>Vikidia</a></td><td><p id='url1' align='right'>###</p></td></tr>
<tr><td><a href='http://commons.wikimedia.org/wiki/Main_Page' target=_blank>Commons</a></td><td><p id='url2' align='right'>###</p></td></tr>
<tr><td><a href='http://fr.wikipedia.org/wiki/Accueil' target=_blank>Wikipédia</a></td><td><p id='url3' align='right'>###</p></td></tr>
<tr><td><a href='http://kennisnet.wikia.com/wikikids/wiki/Hoofdpagina' target=_blank>Wikikids</a></td><td><p id='url4' align='right'>###</p></td></tr>
</tbody>
</table>
</center>
</div>");
flush();
@ob_flush();
// changer vikidia
get_url_time("http://fr.vikidia.org/index.php/Accueil","url1");
get_url_time("http://commons.wikimedia.org/wiki/Main_Page","url2");
get_url_time("http://fr.wikipedia.org/wiki/Accueil","url3");
get_url_time("http://kennisnet.wikia.com/wikikids/wiki/Hoofdpagina","url4");
}
// appeler une page et mesurer le temps
function get_url_time($url,$id)
{
$start=microtime(true);
$result=w_Curl($url);
if (!$result) print ("<script type='text/javascript'>chgp('$id','(erreur)')</script>");
else
{
$time=round (microtime(true)-$start,1);
$time=str_replace (".",",",$time);
print ("<script type='text/javascript'>chgp('$id','$time seconde(s)')</script>");
}
flush();
@ob_flush();
}
// Affichage d'une erreur
function message($msg,$importance=0)
{
switch ($importance)
{
// warning
case 0:
print('<div class="divwarn"><img src="images/actions/dialog-warning.png" align="left">');
break;
// erreur
case 1:
print('<div class="divfatal"><img src="images/actions/dialog-error.png" align="left">');
break;
// ok
case 2:
print('<div class="divok"><img src="images/actions/dialog-information.png" align="left">');
break;
default:
print('<div>');
break;
}
print("<center><b>$msg</b></center></div>");
}
//écrire sous forme de log
function dateprint($text)
{
$date=date("H:i:s");
print ("$date $text<br>");
}
//éliminer les \ dans une sélection
function antislash($select)
{
$n=0;
while (isset($select[$n]))
{
$select[$n]=stripslashes($select[$n]);
$n++;
}
return $select;
}
//Filtrer une catégorie (éliminer users et catégorie)
function FilterCat ($list)
{
$n=0;
$i=0;
$newlist=false;
while (isset($list[$n]))
{
// tester si cat
if (strncasecmp("Catégorie:",$list[$n],10)==0)
{
$newlist[$i]=substr($list[$n],11,255);
$i++;
}
$n++;
}
return $newlist;
}
// Filtrer utilisateur
function FilterUser($user)
{
// tester si user
if (strncasecmp("Utilisateur:",$user,12)==0)
{
$new=substr($user,12,255);
$slash=strpos($user,'/'); // pas de sous-page !
if (is_int($slash)) $new=false;
return $new;
}
return false;
}
// traduire les mois
function GetMois($mois)
{
switch ($mois)
{
case "January":
return "janvier";
case "February":
return "février";
case "March":
return "mars";
case "April":
return "avril";
case "May":
return "mai";
case "June":
return "juin";
case "July":
return "juillet";
case "August":
return "août";
case "September":
return "septembre";
case "October":
return "octobre";
case "November":
return "novembre";
case "December":
return "décembre";
default:
return "mois inconnu";
}
}
?>
