Spikini : un wiki qui marche avec SPIP

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Mise à jour du 30 mars 2005

Nous nous sommes amusés à modifier Wikini pour qu’il utilise des librairies de SPIP :
-  la connexion à la base de données (inc_connect.php3) ;
-  les règles de typographies (inc_texte.php3) ;
-  l’authentification des visiteurs.

L’idée est la suivante : on met le répertoire spikini/ dans le répertoire SPIP, on renseigne deux champs (le nom du wiki et le titre de sa page d’accueil), et hop.

L’installation prend 20 secondes.

Spikini étant maintenant développé sur SPIP Zone le fichier complet est à télécharger à l’adresse http://zone.spip.org/files/spip-zone/.

La version du 30 mars dispose d’un système rudimentaire de cache qui permet d’acccélérer le rendu des pages. Ce cache est stocké avec le cache de SPIP, il est donc vidé par la commande « vider le cache ». Il n’est pas nécessaire de « recalculer » les pages car le cache ne stocke pas les pages, mais uniquement le résultat de la fonction "propre".

* *

On s’en sert sur SPIP Contrib’ !

Avec le .htaccess suivant :

# pour spikini
## feuilles de style
RewriteRule .*/(wakka(\.basic|\.print)?\.(css|png)) spikini/$1 [L]

## spiperies
# envoi vers la version patchee de spip_cookie (qui regle le cookie-path sur /)
RewriteRule     ^spikini/(spip_cookie\.php3?)       spikini/$1      [QSA,L]

# les autres a la racine
RewriteRule ^spikini/(.*/)?(spip_.*\.(css|php3?)|puce\.gif)   /$2 [QSA,L]

## remonter les IMG/
RewriteRule ^spikini/(IMG/.*) /$1 [QSA,R,L]

## page spikini
RewriteCond %{REQUEST_URI} !^spikini/index\.php3?
RewriteRule ^spikini/(.*) spikini/index.php?wiki=$1 [QSA,L]

* *

Comment gérer une « machine à wikis »

L’intérêt de spikini, c’est de pouvoir gérer une machine où l’on peut créer à la volée autant de wikis que l’on souhaite, comme par exemple sur http://wiki.rezo.net/. Pour cela il suffit de suivre la procédure décrite ci-dessous :

-  1) installer un SPIP récent (1.8a CVS, version de développement), ce qui autorisera spikini à jouer avec la variable $cookie_path et à un contourner un bug de inc_ecrire.php3 (cf. forum ci-dessous).

-  2) installer le répertoire spikini/ à la racine de SPIP.

-  3) mettre les redirections apache qui suivent, dans httpd.conf ou dans .htaccess :

RewriteEngine On

## feuilles de style
RewriteRule ^/(wakka(.basic)?.css)$ /spikini/$1 [L]

## spiperies
# 1) la version patchee de spip_cookie, qui regle le cookie_path sur /
RewriteRule /spip_cookie\.php3?     /spikini$0  [QSA,L]
# 2) les autres a la racine
RewriteCond %{REQUEST_URI} !^/ecrire/
RewriteRule /(spip_.*\.(css|php3?)|puce\.gif)   $0 [QSA,L]

## passer ce qui reste a spikini
RewriteCond %{REQUEST_URI} !^(/ecrire/|/IMG/)
RewriteRule ^/([a-z0-9_]+)/(.*) /spikini/multi.php?wname=$1&wiki=$2 [QSA,L]

## urls incompletes (sans /)
RewriteRule ^/([a-z0-9_]+)$     /$1/ [R,L]

NB : si vous utilisez .htaccess, il faut probablement supprimer les ^/ des RewriteRule... à confirmer dans le forum ci-dessous.

-  4) pour que les visiteurs puissent s’authentifier sur le site public, sans qu’on ait besoin de leur donner accès à l’espace privé, il faut (c’est encore l’infâme bidouille de SPIP) installer, sur un article quelconque, un forum « sur abonnement ».

Discussion

57 discussions

  • 1

    j’avais Spikini installé sur mon site (pour tester) et voilà que du jour au lendemain, il affiche les textes bizarement avec des codes :
    @@SPIP_SPIKINI1@@

    j’ai supprimé les tables et réinstallé un version récente, et c’est pareil :
    http://tice.edres74.ac-grenoble.fr/spikini/?wiki=PagePrincipale

    quand on édite la page le texte est pourtant correcte

    une idée ? merci d’avance
    a+

    • bonjour,

      il est impératif d’installer une version SPIP 1.8.xxx - en-dessous, rien ne fonctionne !
      @+ jmg

    Répondre à ce message

  • 1
    vieilfrance

    Bonjour ,

    J’ai installé Spikini et j’ai un petit probleme ( peut etre pas ) : j’affiche la page principale mais les mots avec des majuscules ne se transforment pas en liens vers de nouvelles pages.
    Quand je double clique sur la page pricipale je peux la modifer , tout va bien. Les pages utiles ne sont pas accessibles sur la page principale, pareil pour ’DerniersChangements’.

    Est-ce que j’ai oublié un truc ?

    Répondre à ce message

  • 18
    Yves Grenier

    Bonjour ! J’ai installé en local (Apache 1.3.31 Win32, php 4.3.7, mysql 3.23.49 et spip 1.7.2) la version spikini du 26/6/2004.

    1) j’ai mis les rewrite rule dans un .htaccess, et j’ai essayé de supprimer les ^/ comme il est dit dans l’article => internal server error. J’ai donc rétabli les ^/ et ça marche mieux, mais :

    2) dans la PagePrincipale ou dans les pages que j’ai crées, les sauts de ligne sont remplacés par des @ et des SPIP_SPIKINI. Voici la copie de la page principale :

    @@SPIP_SPIKINI1@@ Bienvenue ! Cliquez sur le lien « Editer cette page » au bas de la page pour démarrer.@@SPIP_SPIKINI2@@ @@SPIP_SPIKINI3@@Ce wiki local nous permet de stocker et d’organiser diverses informations :@@SPIP_SPIKINI4@@ @@SPIP_SPIKINI5@@TrucsLinux @@SPIP_SPIKINI6@@GravureDvd@@SPIP_SPIKINI7@@ @@SPIP_SPIKINI8@@Page utiles : PagesOrphelines, PagesACreer, RechercheTexte, ReglesDeFormatage.@@SPIP_SPIKINI9@@

    • oui, moi aussi j’ai des @@SPIP_SPIKINI1@@ partout quel que soit le navigateur. J’ai la version 2004-06-29

      Ca serait sympa de dire quand ça sera corrigé. Merci

    • Quelle version de SPIP utilisez-vous ?

    • Yves Grenier

      En ce qui me concerne, c’est la 1.7.2

    • Essaie peut-être avec la version CVS, il y a une différence au niveau des @@ justement.

    • casimopon

      bonjour,

      moi aussi j’ai des @@ partout,
      j’utilise la 1.7.2

      faut installer la version CSV de spip ?

      sinon c’est génial !!!!!!
      bravo

    • J’ai cherché et trouvé que ça venait du fichier waka.php dans le sous-répertoire « formatter ». Cependant je ne sais pas ce qu’il faut mettre à la place !

      J’ai essayé de mettre des « 
       » pour forcer le retour à la ligne qui manque mais ça me crée des erreurs.

      Une idée ?

    • Rhâââ j’oublie toujours :)

      c’est des < br/ > que j’essayais de mettre :)

    • Je m’auto-réponds mais je n’ai pas le niveau en php pour corriger (j’ai bien essayé mais après 10 mails d’insultes de mon hébergeur comme quoi je surcharge leurs serveurs j’abandonne pour l’instant).

      Dans le fichier waka.php sous formatters :

      Vers les lignes 100, il manque une insertions de < p class="spip" > pour les entrées de ligne et de < /p > en fin de ligne. (Ce qui correspond dans le script à des $num_echapp impair en début de ligne et pair en fin de ligne...)

      Voilà, en espérant que ça puisse faire avancer le schmilblick à défaut de le corriger.

    • Oui la version CVS fait dispraître les @@

    • Tu as fait quelque chose de spécial ? J’ai récupéré la version du 10 et j’ai toujours les « @@SPIP... ».

      On récupère bien la version CVS ici http://lab.spip.net/fichiers/spikini/ ?

    • Non, Miss Mopi, la version CVS se trouve à l’adresse http://www.spip.net/spip-dev/devel/ ; tu as confondu avec le « labo spip »...

    • Je commençais à me dire aussi... :-P

      Merci

    • C’est une version CVS de SPIP qu’il faut installer et non une version CVS de spikini ?

      Je suis désolée d’insister :-), mais je ne suis pas très chaude de changer de version de SPIP directement sur mon site en fonctionnement. Alors je préfèrerais d’éviter de le faire pour rien si j’ai encore mal compris quelque chose.

    • Une version CVS de SPIP, oui.

    • Test effectué avec la version 1.8a2 FR, et ça fonctionne.

      Une mise à jour de la fiche ci-dessus serait peut-être utile (préciser qu’il faut une version 1.8 plutôt qu’à partir de la version 1.7.1).

      Merci

    • En fait, ce n’est pas tant le problème des arrobases que d’un problème de retour-charriot dans le code de formatters/wakka.php. Il semble que ce problème disparaisse avec la CVS v1.8a, mais pas encore avec 1.7.2RP4 (alors que tout le reste fonctionne).

      La zone de bogue est celle-ci (ligne 100) :

      function echappe_tags($letexte, $source) {
      	$regexp_echap = "|<.*?>|si";
      	$les_echap = array();
      
      	while (preg_match($regexp_echap, $letexte, $regs)) {
      		$num_echap++;
      		$les_echap[$num_echap] = $regs[0];
      		$pos = strpos($letexte, $regs[0]);
      		$letexte = substr($letexte,0,$pos)."@@SPIP_$source$num_echap@@"
      			.substr($letexte,$pos+strlen($regs[0]));
      	}
      
      	return array($letexte, $les_echap);	
      }

      Les arrobases disparaissent en dégageant le « @@SPIP_... » mais y’a toujours pas de retour-charriot. En fait, dans mon éditeur web, il m’indique un problème à partir du | de $regexp_echap = « |<.* ?>|si » (ligne 101).

      J’ai bien essayé de bricoler quelque chose, mais rien à faire, j’suis pas assez fort en php. Si quelqu’un touche un peu, ça serait vraiment super de nous dire quoi modifier...

      Merci à celui/celle-là et à tous ceux qui ont adapté la machine à wiki.

      thierry

    • Bonjour
      j’ai tout installé sous macosx en local (SPIP 1.8a + Spikini_2004-07-21.zip)

      Pbs : les Rewrite Rule. je les ai mises en .htaccess, à la racine de mon SPIP18a

      -  Si l’on laisse la rewriterule

      RewriteRule /(spip_.*\.(css|php3?)|puce\.gif)   $0 [QSA,L]

      ca fout la panique dans la partie privée de spip, et ne trouve plus la « puce ».

      -  Et quoi que je fasse

      mj.local/Spip18a/spikini/xxx

      (pour créer un nouveau wiki)
      répond :

      The requested URL /spip18a/spikini/xxx was not found on this server

      Donc la rewriterule qui doit tranformer ca en ?wiki=xxx se plante je pense...

      à part ca ca marche impec pour moi. Y-a-t’il un expert des RewriteRules dans la salle :-))
      MJ

    • J’ai exactement le meme probleme avec SPIP-v1.7.2 et spikini du 2004-09-15 ?

    Répondre à ce message

  • Un petite question qui me trotte la tête

    Je ne vois comment on sauvegarde les pages wikis (équivalent du dump sur spip) a moins que le dump de spip fasse le boulot ?

    Répondre à ce message

  • Thomas NOEL

    Sur ma « machine a wiki » j’ai eu le même problème que le spikini de spip-contrib : le bouton « connexion » ne fonctionnait pas. J’ai fait un sale patch, je sais pas ce que ça vaut :

    --- spikini/actions/header.php.orig     2004-08-26 13:16:51.000000000 +0200
    +++ spikini/actions/header.php  2004-08-26 13:24:18.000000000 +0200
    @@ -50,7 +50,11 @@
            echo "</div>";
            exit;
     } else {
    -       echo " (<a href=\"".$this->config["base_url"].$this->GetPageTag().($this->config["rewrite_mode"]?'?':'&')."login=oui\">Connexion</a>)\n";
    +       if (! $this->config["rewrite_mode"]) {
    +               echo " (<a href=\"".$this->config["base_url"].$this->GetPageTag().($this->config["rewrite_mode"]?'?':'&')."login=oui\">Connexion</a>)\n";
    +       } else {
    +               echo " (<a href=\"/spip_login.php3?var_url=".$this->config["base_url"].$this->GetPageTag()."\">Connexion</a>)";
    +       }
     }
     ?>
     </div>

    Répondre à ce message

  • 1

    Bonjour,

    J’ignore si c’est un problème relatis au moderewrite mais dans la page :
    /spikini/ ?wiki=PagePrincipale&login=oui

    le lien pour s’inscrire pointe vers :
    /spikini/spip_pass.php3

    Ce qui donne une erreur 404.

    merci de m’éclairer

    • Éric Noël

      Il doit exister quelque part une loi de Murphy qui permet de régler les problèmes soi même une fois la question posé sur un forum.

      Il s’agissait bien d’un problème de rewriterule.

      Je l’avais (mon .htaccess) mis à la base de spikini. En le mettant à la racine du site, cela règle mon problème.

      Désolé pour le bruit.

    Répondre à ce message

  • 2
    Jacques Chatignoux

    Lors d’une réinstallation spikini après avoir supprimé les tables via phpMyadmin et le dossier spikini du site, j’obtiens avec la version spikini_2004-08-17

    www.nomdusite/spikini
    Query failed : delete from wikini_referrers where time < date_sub(now(), interval ’24’ day) (Table ’hyrondelle_roannesept.wikini_referrers’ doesn’t exist)

    si l’un de vous peut me guider, merci d’avance

    • Je pense qu’il reste un vieux fichier de config wakka_xxx dans le répertoire ecrire/ de SPIP ?

    • Jacques Chatignoux

      Merci Fil.
      Bingo il y avait un vilain petit canard dénommé « wakka.config.php ».
      Au fait j’ai préféré réinstallé une ancienne version de Spikini vu que mon spip est en 1.7.2. Tout baigne.

    Répondre à ce message

  • j’ai (enfin) réussi à faire marcher le wikki, mais seulement à partir de la cvs 1.8 et ça se passe plutôt bien.
    Une petite question technique, toutefois : est-il possible simplement d’utiliser la routine spip d’envoi de courriel aux auteurs d’articles/forums pour informer les propriétaires des pages wikki des modifs apportées ? ça nous serait super utile, si ça demande pas trop de coding en php (on débute !)...
    Merci pour le coup de main sur ça et pour cette adaptation de wikini.

    Répondre à ce message

  • Yves Grenier

    Bonjour !
    Sous IE5, le code HTML reçu est exactement le même que sous Mozilla. Il semble que ce soient les feuilles de style qui ne sont pas lues. Sous IE5, l’importation de styles avec @import avait quelques bugs. Si on remplace les trois styles importés par des link, spikini s’affiche correctement sous IE5.

    Dans action/header.php, j’ai remplacé les lignes 18 à 20 par :

    <?php if($multi) echo '/'; ?>

    wakka.css" />
    <?php if($multi) echo '/'; ?>

    spip_style.css" />
    <?php if($multi) echo '/'; ?>

    wakka.print.css" />

    Est-ce que cette modif casse quelque chose pour d’autres navigateurs ? Le @import est souvent utilisé pour cacher des styles pour d’anciens navigateurs (Netscape 4 par exemple).

    Répondre à ce message

  • ce serait pas mal de pouvoir personnaliser le nom du dossier dans lequel est installé Spikini, par exemple dans le fichier « wakka.config.php »

    j’ai voulu le mettre dans un dossier wiki, et ... y a plein de fichiers a modifier

    Répondre à ce message

Ajouter un commentaire

Forum sur abonnement

Pour participer à ce forum, vous devez vous enregistrer au préalable. Merci d’indiquer ci-dessous l’identifiant personnel qui vous a été fourni. Si vous n’êtes pas enregistré, vous devez vous inscrire.

ConnexionS’inscriremot de passe oublié ?

Suivre les commentaires : RSS 2.0 | Atom