Tableauwiki, générateur de tableau : Différence entre versions

De Wiki ODR
Aller à : navigation, rechercher
 
(15 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Pour effectuer ce test le script de générateur de tableau a été utilisé
+
=== introduction ===
 +
 
 +
Pour faciliter la création de tableau dans le Wiki ODR, un module indépendant a été programmé. 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. Si ce n'est pas le cas vous devez autoriser votre navigateur à ouvrir les pages popup pour ce site.
 +
 
 +
*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 est généré, vous pouvez le copier et le coller dans votre article.
 +
 
 +
*en cliquant sur "revenir au formulaire", il est possible de corriger le tableau ou 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 le Wiki ODR.
 +
 
 +
*L'insertion d'espaces avant ou après le tableau dans le cadre du formulaire génèrent des lignes supplémentaires.
 +
 
 +
*Le navigateur doit autoriser l'ouverture de pages popup pour le site du Wiki ODR (conseil si vous rencontrez un problème : appliquer "toujours autoriser les pages popup pour ce site").
 +
 
 +
*Si vous ouvrez tableauwiki durant la rédaction d'un article, faîte au préalable une copie de l'article (Ctrl+A suivi de Ctrl+c) 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 est actuellement impossible avec tableauwiki de fusionner des cellules. L'utilisateur doit le faire lui-même en utilisant les balises html correspondantes (colspan).
 +
 
 +
===Exemple de tableaux générés===
 +
 
 +
 
 +
titre 1;titre 2;titre 3 
 +
colonne 1;colonne 2;colonne 3 
 +
;ligne 2;   
  
 
{| cellpadding="3" cellspacing="0" border="1" style="font-size: 95%; border: black solid 1px;border-collapse: collapse;"
 
{| cellpadding="3" cellspacing="0" border="1" style="font-size: 95%; border: black solid 1px;border-collapse: collapse;"
Ligne 15 : Ligne 54 :
 
| style="border:1px solid black;" align="center" | 
 
| style="border:1px solid black;" align="center" | 
 
|}
 
|}
 +
 +
 +
titre 1;titre 2;titre 3
 +
1;2;3.5
 +
 +
{| cellpadding="3" cellspacing="0" border="1" style="font-size: 95%; border: black solid 1px;border-collapse: collapse;"
 +
|-
 +
! bgcolor="#F2F2F2" style="border:1px solid black;" |titre 1
 +
! bgcolor="#F2F2F2" style="border:1px solid black;" |titre 2
 +
! bgcolor="#F2F2F2" style="border:1px solid black;" |titre 3
 +
|-
 +
| style="border:1px solid black;" align="center" | 1
 +
| style="border:1px solid black;" align="center" |2
 +
| style="border:1px solid black;" align="center" |3.5
 +
|}
 +
 +
 +
===Script tableauwiki :===
 +
 +
<pre>
 +
 +
<?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 du Wiki ODR:</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] == '&nbsp;' ) $champ[$y] = htmlentities('&nbsp;') ;
 +
 +
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 le Wiki ODR.</b><BR>&nbsp;<BR>Copiez votre futur tableau avec comme séparateur des point-virgules. <BR>&nbsp;<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>&nbsp;<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>
 +
 +
</pre>

Version actuelle datée du 12 août 2013 à 14:35

introduction

Pour faciliter la création de tableau dans le Wiki ODR, un module indépendant a été programmé. 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. Si ce n'est pas le cas vous devez autoriser votre navigateur à ouvrir les pages popup pour ce site.
  • 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 est généré, vous pouvez le copier et le coller dans votre article.
  • en cliquant sur "revenir au formulaire", il est possible de corriger le tableau ou 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 le Wiki ODR.
  • L'insertion d'espaces avant ou après le tableau dans le cadre du formulaire génèrent des lignes supplémentaires.
  • Le navigateur doit autoriser l'ouverture de pages popup pour le site du Wiki ODR (conseil si vous rencontrez un problème : appliquer "toujours autoriser les pages popup pour ce site").
  • Si vous ouvrez tableauwiki durant la rédaction d'un article, faîte au préalable une copie de l'article (Ctrl+A suivi de Ctrl+c) 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 est actuellement impossible avec tableauwiki de fusionner des cellules. L'utilisateur doit le faire lui-même en utilisant les balises html correspondantes (colspan).

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
colonne 1 colonne 2 colonne 3
ligne 2  


titre 1;titre 2;titre 3
1;2;3.5
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 du Wiki ODR:</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 le Wiki ODR.</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>