Carnet Wiki

Plugin SiloSPIP

Version 1 — May 2009 dani

Plugin en développement, pas encore opérationnel: http://zone.spip.org/trac/spip-zone...

L’idée: ¿Comment faire aussi des sites SPIP libres grand public?

Des sites SPIP en libre-service, aussi facile qu’un blog-bigbrother.com, mais qui ne séquestrent ni le contenu du site, ni l’accès à la techno qu’il y a en dessous.

La motivation: les premiers barreaux de l’échelle qui manquent?

Lors de la SPIP design party à Nantes en 2007, Tétue illustrait la situation de SPIP comme une échelle qui va très très haut, mais à laquelle il manque les premiers barreaux. Pour ceux qui peuvent arriver par d’autres moyens jusqu’à l’echélle c’est super, mais pas tout le monde peut y arriver.

Du coup, plein de gens -y compris beaucoup qui pourraient tenir aux principe du manifeste du web indépendant- vont vers des services commerciaux (ou puubli-gratuits) de réalisation de blogs ou de sites, plutôt que de choisir une solution et une infrastructure qui leur permettrait de préserver leur liberté.

Dans l’esprit des solutions de mutualisation de SPIP, ce plugin SiloSPIP (pas de spéciale préférence pour ce nom), tente les idées ci-dessus, en particulier celle d’ouvrir l’accès aux technos en dessous: on peut créer un site SPIP “en libre service web”, choisir des squelettes, activer ou non des plugin, etc. mais par la suite, si on veut, on peut avoir accès, “en dessous”, aux squelettes SPIP, au PHP MySQL, etc.

La vision de solution: Plugin d’inscription, couplage à une mutualisation ewt à un panel AlternC

  1. On s’inscrit comme visiteur -ou par le mécanisme Inscription 2 que l’on veut- dans un site SiloSPIP
  2. De là on peut créer un ou des sites SPIP. on choisit:
    1. un nom et éventuellement un domaine
    2. un titre de site
    3. une description
    4. un jeu de squelettes et un habillage
  3. Un compte AlternC est automatiquement créé,
  4. l’utilisateur ne le sait pas forcément, mais la base de données et les répertoires de contenu du site sont crées dans son compte AlternC
  5. éventuellement les sites créés sont syndiqués dans le site silo.
  6. en accès authentifé au site Silo, le visiteur voit ses sites SPIP, peut lesgérer, supprimer,
  7. de là il a son accès au compte AlternC, dans un coin “expert”.
  8. AlternC n’ayant pas de mécanisme de récupération de mot de passe oublié, il pourrait se modifier depuis le site SPIP.

L’embryon de développment

les balises et boucles

Une balise #FORMULAIRE_SILO_CREER_SITE qui permet à un utilisateur authentifier de créer un site dans le silo, à appeler ainsi:

   <div class="ajax">
        #FORMULAIRE_SILO_CREER_SITE{#SESSION{id_auteur}}
   </div>

Une balise #FORMULAIRE_SILO_SITES, à appeler de même, qui permet de lister les sites créés.

Aucune fonctionnalités n’est encore finie. La création d’un site l’inscrit dans la base, et tente quelques appels à l’interface du panneau AlternC pour la créer l’utilisateur AlternC, la base MySQL pour le site, le user mysql et ses droits.

Est ajoutée une table spip_silosites et sa boucle . On purrait imaginer de coupler cette table à la table spip_sites des syndications dans un ste, de même que le plugin Inscription2 crée une table auteurs_elargis, qui simplement étend la notion d’auteur.

Le plugin comprend un panneau de config CFG, dans lequel on donne l’adresse du panel AlternC auquel le service est couplé, avec un nom d’administrateur AlternC et son mot de passe. On y définit aussi le domaine, ou la liste de domaines en sous-dpmaine desquels on peut créer des sites du silo.

Le mode d’organisation de la mutualisation de sites

On installe un AlternC

Dans un répertoire, a priori hors d’un compte AlternC, on installe un code SPIP avec le plugin de mutualisation. Par exemple dans /usr/share/spip/

On crée un alias Apache de ce répertoire valable dans tout VirtualHost. Par exemple, on crée un fichier /etc/apache2/conf.d/spip.conf avec le contenu suivant:

Alias /spip_mut /usr/share/spip

<Directory /usr/share/php/spip>
        Options Indexes FollowSymLinks
        DirectoryIndex index.php

                AddType application/x-httpd-php .php
                php_flag magic_quotes_gpc Off
                php_flag track_vars On
                php_flag register_globals Off
                php_value include_path .
        </IfModule>
</Directory>

La mutualisation pourra être faite de la manière suivante:
-  la création de la base de données dans le user AlternC correspondant
-  la déclaration du sous domaine comme “domaine par défaut” login.domaine_mutu.org, proposé par AlternC lors de la crréation d’un utilisateur,
-  la configuration de ce domaine vers un répertoire de l’utilisateur, où une règle de réecriture (RewriteRule Apache dans le fichier .htaccess) le renvoie vers l’alias du SPIP mutualisé: http//login.domaine_mutu.org/spip_mut/
-  dans le dossier ’sites’ du SPIP mutualisé, au lieu d’un dossier par site, on trouver un lien symbolique vers le un dossier dans le compte AlternC de l’utilisateur: /usr/share/spip/sites/login.domaine_mutu.org -> /var/alternc/html/l/login/login.domaine_mutu.org qui, comme pour le plugin mutualisation, contient les dossiers de contenus: /tmp/, /IMG/, etc.