Tableauwiki, générateur de tableau

De Wiki ODR
Aller à : navigation, rechercher

Pour faciliter la création de tableau dans cartowiki, un module indépendant a été créé. Il permet de générer des tableaux formatés en code wiki à partir d'un tableau en format texte ayant comme délimiteur des point-virgules.

Utilisation du script

  • Cliquer sur "générateur de tableau" dans le menu de gauche
  • Une nouvelle fenêtre (popup) doit s'ouvrir exécutant le script tableauwiki
  • suivez les instructions, rédigez votre tableau en utilisant comme séparateur des colonnes des points virgules, ou copier-coller votre futur tableau à partir d'un document word, notepad etc.
  • Cliquez sur le bouton "traiter"
  • Le code wiki du tableau généré, vous pouvez le copier et le coller dans votre article.
  • en cliquant sur "revenir au formulaire", il est possible soit de corriger le tableau, soit d'écrire un nouveau tableau
  • Il est conseillé de garder la fenêtre tableauwiki ouverte tout au long de la rédaction de l'article, si d'autres tableaux doivent être insérés.


Limitations

Tableauwiki n'est pas un module officiel de mediawiki. Le script est réservé à un usage dans cartowiki.

Si vous ouvrez tableauwiki durant la rédaction d'un article, faîte au préalable une copie de l'article au cas où le navigateur perdrait la session. Normalement, la page en cours doit être réaffichée automatiquement dans la fenêtre principale.

Il actuellement impossible avec tableauwiki de fusionner des cellules entres-elles. L'utilisateur doit le faire lui-même en utilisant les balises html correspondantes.

Exemple de tableaux générés

titre 1 titre 2 titre 3
colonne 1 colonne 2 colonne 3
ligne 2  


titre 1 titre 2 titre 3
1 2 3.5


Script tableauwiki :


<?php

require "fichier de configuration...." ;

if($tableau != '')
	{
	// remplacer les retours chariot par des retours à la ligne 
	//$tableau=nl2br($tableau); 
	
	// sépare les lignes
	$ligne = explode("\r",$tableau) ;
	
	// définit un fond gris pour le corps de la page
	echo "<BODY BGCOLOR=\"#EEEEEE\" >";

	// commentaire à afficher
	echo "<P>copier les lignes ci-dessous et les insérer dans l'article cartowiki :</p>" ;
	
	// création d'un cadre contenant le code wiki
	echo "<table BGCOLOR=\"#FFFFFF\" cellpadding=\"10\" style=\"border:1px solid;border-color:#7F9DB9\"><tr><td>";
	
	// affichage de la première ligne du tableau wiki à copier
	echo htmlentities('{| cellpadding="3" cellspacing="0" border="1" style="font-size: 95%; border: black solid 1px;border-collapse: collapse;"')."<br>"; 
	
	// boucle de lecture des lignes du tableau
	for( $i=0 ; $i<count($ligne) ; $i++)
		{
		// séparateur en code wiki des lignes du tableau à afficher pour chaque nouvelle ligne
		echo "|- <br>" ;
		
		// séparation des champs pour chaque ligne (séparateur point-virgule)
		$champ = explode(";",$ligne[$i]) ;
		
		// affichage du contenu des cases en code wiki
		for( $y=0 ; $y<count($champ) ; $y++)
			{
			if($champ[$y] == '' or is_null($champ[$y]) or $champ[$y] == ' ' or $champ[$y] == ' ' ) $champ[$y] = htmlentities(' ') ;
			
			IF ($i==0 && $titre==TRUE) echo htmlentities('! bgcolor="#F2F2F2" style="border:1px solid black;" |').$champ[$y]."<br>" ;
			ELSE 
				{
				echo htmlentities('| style="border:1px solid black;"') ;
				if($position == "C" ) echo htmlentities(' align="center"');
				if($position == "D" ) echo htmlentities(' align="right"');
				echo " |".$champ[$y]."<br>" ;
				}
			}
		}
	
	// fin du tableau wiki
	echo "|}" ;
	
	// fermeture du cadre contenant le code wiki à copier
	echo "</td></tr></table>" ;
	
	// lien pour retour à la page précédente
	echo "<p /><a href=\"javascript:history.back()\">revenir au formulaire</a>" ;
	
	echo "</body>" ;

	// fin d'exécution du script
	exit ;
	}

?>
<html>
<!-- formulaire HTML pour récupérer les informations du futur tableau -->
<BODY BGCOLOR="#EEEEEE">
<table border="0" width="800px">
<tr>
	<TD>
		<CENTER><b>Générateur de tableau pour cartowiki.</b><BR> <BR>Copiez votre futur tableau avec comme séparateur des point-virgules. <BR> <br>La première ligne peut contenir le nom des colonnes, dans ce cas cochez la case ci-dessous. <br> cliquez sur le bouton Traiter en bas de page pour exécuter le script<br> <br><i>(Attention pas d'espace avant ou après le tableau sinon une ligne de tableau supplémentaire sera générée).</i></CENTER>
	</TD>
</TR>
</Table>

<FORM name='form' method='post' action='tableauwiki.php'>
<TABLE BORDER="0">
<TR>
	<TD>la première ligne correspond aux noms de colonnes ?&nbsp&nbsp<input type="checkbox" name="titre" value="TRUE"></TD>
</TR>
<TR>
	<TD>le contenu des colonnes doit être positionné à gauche<INPUT type=radio name="position" value="G" checked> centré<INPUT type=radio name="position" value="C"> à droite<INPUT type=radio name="position" value="D"></TD>
</TR>
<TR>
	<TD>
	<TEXTAREA cols="300" rows="40" name="tableau">coller vos lignes du tableau ici</TEXTAREA>
	</TD>
</TR>
<tr>
	<td>
	<input type="submit" name="envoyer" value="traiter">
	</td>
</tr>
</table>
</form>
</body>
</html>