Vikidia:Achille/sources/form.php

Aller à : navigation, rechercher
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
	[email protected]_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";
	}
}
?>