Jean Morlet
Informaticien, spécialisé dans le multi-tâches, temps réel embarqué.
J'ai découvert le wiki depuis peu et trouvant ce système génial, j'ai décidé dans un premier temps de le tester sur un petit site dédié à mon équipe de jeu réseau. Je l'ai maintenant intégré sur l'intranet à mon boulot. Résultat, tout le monde ou presque s'y est mis pour publier de la documentation, lancer des idées, garder des notes...
J'ai lu dans les commentaires que tu avais corrigé quelques bug de la gestion des tableaux, pourrais tu me faire parvenir le code de ta correction que je la mette à disposition sur mon site ou me faire parvenir un lien vers cette archive.
Quel est l'adresse de ton site ? --
GarfieldFr
Le code de
GarfieldFR pour les tableaux, modifié pour régler quelques problèmes d'alignements :
- formatters/wakka.php (Début du fichier...)
<?
if (!function_exists("wakka2callback"))
{
include("formatters/tableaux.php"); //EF => tableaux
function wakka2callback($things)
{
$thing = $things[1];
$result='';
static $oldIndentLevel = 0;
static $oldIndentLength= 0;
static $indentClosers = array();
static $newIndentSpace= array();
static $br = 1;
static $dansTable = 0;
global $wiki;
// convert HTML thingies
if ($thing == "<")
return "<";
else if ($thing == ">")
return ">";
//EF=> tableaux
else if (preg_match("/^\[\|(.*)\|\]/s", $thing))
{
$dansTable=1;
$result=parsetable($thing);
$dansTable=0;
return $result;
} //end tableaux
// bold
else if ($thing == "**")
?>
- formatters/tableaux.php :
<?php
function parsetable($thing)
{
$tableattr = 'class="jm_table"';
// echo "parsetable debut : \$thing = $thing<br>";
// recuperation des attributs
preg_match("/^\[\|(.*)$/m",$thing,$match);
// echo "parsetable : \$match = ";var_dump($match);echo "<br>";
if ($match[1]){
$tableattr = $match[1];
}
$table = "<div $tableattr><table>\n";
//suppression de [|xxxx et de |]
$thing = preg_replace("/^\[\|(.*)$/m","",$thing);
$thing = trim(preg_replace("/\|\]/m","",$thing));
// echo "parsetable suppression [| |]: \$thing = $thing<br>";
//recuperation de chaque ligne
$rows = preg_split("/$/m",$thing,-1,PREG_SPLIT_NO_EMPTY);
// echo "parsetable preg_split:";var_dump($rows);echo "<br>";
//analyse de chaque ligne
foreach ($rows as $row){
$table .= parsetablerow($row);
}
$table.= "</table></div>";
return $table;
}
//parse la definition d'une ligne
function parsetablerow($row)
{
$rowattr = "";
$row = trim($row);
// echo "parsetablerow debut : \$row = \"$row\"<br>";
//detection des attributs de ligne => si la ligne ne commence pas par | alors attribut
if (!preg_match("/^\|/",$row,$match)){
preg_match("/^!([^\|]*)!\|/",$row,$match);
$rowattr = $match[1];
// echo "\$rowattr = \"$rowattr\"<br>";
$row = trim(preg_replace("/^!([^\|]*)!/","",$row));
}
$result .= " <tr $rowattr>\n";
$row = preg_replace("/^\|/","",$row);
$row = preg_replace("/\|$/","",$row);
// echo "parsetablerow sans attribut : \$row = \"$row\"<br>";
if ($row!="") {
//recuperation de chaque cellule
$cells = explode("|",$row); //nb : seule les indices impaire sont significatif
// echo "parsetablerow preg_split \$cells:";var_dump($cells);echo "<br>";
$i=0;
foreach ($cells as $cell){
// if ($i % 2){
// echo "\$cell = \"$cell\"<br>";
$result .= parsetablecell($cell);
// }
$i++;
}
}
$result .= " </tr>\n";
return $result;
}
//parse la definition d'une cellule
function parsetablecell($cell)
{
global $wiki;
$cellattr = "";
// echo "\$cell = \"$cell\"<br>";
if (preg_match("/^!(.*)!/",$cell,$match)){
$cellattr = $match[1];
}
$cell = preg_replace("/^!(.*)!/","",$cell);
//si espace au debut => align=right
//si espace a la fin => align=left
//si espace debut et fin => align=center
if (preg_match("/^\s(.*)/",$cell)){
$align="right";
}
if (preg_match("/^(.*)\s$/",$cell)){
$align="left";
}
if (preg_match("/^\s(.*)\s$/",$cell)){
$align="center";
}
if ($align) $cellattr .= " align=\"$align\"";
// echo "\$this->classname = ".get_class($wiki)."<br>";
return " <td $cellattr>".$wiki->Format($cell)."</td>\n";
}
?>
div.wikki_table { padding-top: 1em;
padding-bottom: 1em;
}
div.wikki_table table { border: 2px solid rgb(0, 0, 0);
border-collapse: collapse;
vertical-align: middle;
margin-right: auto;
}
div.wikki_table td { border: 1px solid rgb(0, 0, 0);
padding: 1px 1em;
}
Je crois que c'est tout.... s'il manque quelque chose, je le rajoute rapidement !
Le lien vers mon wiki avec pour le moment peu de choses... :
http://jean.morlet.free.fr/wikini/wakka.php?wiki=PagePrincipale
Je suis désolé, mais le menu de gauche ne réagit pas de la même façon sous IE et sous Mozilla... Si quelqu'un peut me dire comment le rendre fixe en CSS sous IE...
Pour m'écrire :
A quoi correspond ton script ? un béotien !--
FidelioEspoir
Théoriquement, cela permet d'empécher les robots de récupérer ton adresse e-mail. J'ai lu ça sur le site de la cnil si mes souvenirs sont exacts. Après qques recherche, j'ai trouvé ces pages
http://assiste.free.fr/p/internet_attaques/spam_030_crypter_adresse.php, http://www.hiveware.com/enkoder_form.php et
http://www.caspam.org/cas_cryptemail_adv.html. Ce n'est pas là que j'ai trouvé l'info, mais elle semble interressante. --
JeanMorlet
Mieux que le javascript concernant le cryptage des emails :)
EncodageDesEmails, en hexadécimal c'est plus propre et facile à automatiser pour le wiki. Cordialement, --
JeremieCook
25 janvier 2005
Il m'est venu une idée aujourd'hui (ça m'arrive). Je la colle ici par manque de temps. Je verrais plus tard où cela doit aller.
- J'utilise le wiki que j'ai installé à ma boite pour faire de la documentation interne. Il m'arrive relativement souvent d'être obligé d'insérer des "non breakable space" (nbsp) dans le code pour éviter de voir un ':' ou ';' se retrouver seul à la ligne. J'ai vu que SPIP gère les espaces insécables tout seul comme en grand. Alors pourquoi pas WikiNi ? Cela ne devrait pas être trop compliqué non ?