Wikini

JeanMorlet

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-34-230-84-106.compute-1.amazonaws.com

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 :
<?
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 "&lt;";
        else if ($thing == ">")
            return "&gt;";
        //EF=> tableaux
        else if (preg_match("/^\[\|(.*)\|\]/s", $thing))
        {
            $dansTable=1;
            $result=parsetable($thing);
            $dansTable=0;
            return $result;
        }    //end tableaux
        // bold
        else if ($thing == "**")
      ?>


<?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.

Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]