Carnet Wiki

Et si on automatisait tout ça ?

Version 15 — August 2013 — 78.233.xx.xx

Arnaud, Jean Christophe, Stéphane participent et vous ? ; Ne pas hésiter a modifier, corriger ...

Suite a l’expérience d’utilisation de la mutualisation c’est a dire partager le noyau de SPIP entre plusieurs sites., des besoins d’automatisation se sont fait sentir.

Pourquoi faire ?

  • pour certains c’est diminuer les coûts
  • pour d’autres se simplifier la vie

Quels besoins ?

(Stéphane)

  • Un formulaire d’inscription
    qui permet d’installer un spip automatiquement en renseignant:
    • Nom de votre site
    • URL (Adresse)
    • une adresse mail

exemple : Nursit

Est-on sur que c’est pas fait en manuel derrière , déjà sur l’exemple proposé ? ;-)
Personnellement je pense que c’est pas fait en auto, déjà car il est pas mal d’avoir une validation manuelle de l’inscription au service. (Arnaud B.)

Que choisit on pour l’inscription / redirection adresse : (Arnaud B.)

  • Domaine : l’utilisateur doit le faire pointer lui-mème vers le serveur de la mutualisation (donc faut expliquer ^^ c’est pas gagné).
  • sous.domaine.tld : faut créer le vhost sur le serveur, via un script.sh

Process de l’install :

En partant du principe que le domaine a déjà été redirigé soit par une création de sous-domaine, soit par pointage des dns.

  • Soumission du formulaire d’inscription au service
  • Ajout de l’auteur (inscrit)
    • soit dans une table externe,
    • soit dans la table Auteur du site maitre,
    • soit avec le plugin client en ajout si besoin de champs supplémentaires,
    • soit LDAP.
  • Création des répertoires du site (idem plugin mutualisation)
  • Installation (ici prévoir la possibilité d’import d’une base de démarrage)

A la fin du process d’install :

  • Envoi d’un mail au nouvel inscrit avec son login et son mot de passe, webmestre

Comme nous sommes une plateforme participative :

  • Envoi d’un mail sur une liste de diffusion prévenant l’ensemble des mutualisés qu’il y a un nouvel inscrit
  • Dans notre cas utilisation du squelette Escal (aprés chacun fait ce qui lui plait plait plait ...))

Escal création automatique des Mots-clés

(Jean Christophe Villeneuve)

Création automatique des Mots-clés

( Jean Christophe Villeneuve )
-* Test en mutu locale, avec Escal placé en extension (ainsi que agenda/calendrier mini), l’installation des mots-clefs fonctionne dès la création du site. (cf ci dessous, les fichiers modifiés et exemples). (Arnaud B. 6/08/13)

Fichier /escal/paquet.xml

Ajouter un shema dans la description du paquet , // Ainsi de suite pour pouvoir mettre a jour . le groupe type_rubrique

<paquet
    prefix="escal"
    categorie="squelette"
    version="3.71.18"
    schema="1.0.0"
    etat="stable"
    compatibilite="[2.10.0;&#91;"
    logo="images/escal32.png"
    documentation="http://projetice.crdp.ac-lyon.fr/escal/"
>


<nom>Escal</nom>


<auteur>Jean-Christophe Villeneuve</auteur>
  <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GNU/GPL</licence>
  
  <utilise nom="palette" compatibilite="[2.0.0;[" />
  <utilise nom="spip_400" />
  
  <necessite nom="agenda" compatibilite="[3.11.2;&#91;" />


<menu nom="escal" titre="escal:escal" parent="menu_squelette" icone="images/escal16.png" action="configurer_escal" />


<pipeline nom="autoriser" inclure="inc/escal_autoriser.php" />


</paquet>

Fichier /escal/escal_administrations.php


<?php
/**
* Plugin Escal
* (c) xxxx
* Licence GNU/GPL
* Fichier ./escal_administrations.php
*/

if (!defined(’_ECRIRE_INC_VERSION’)) return;

/**
* Fonction d’installation du plugin et de mise à jour.
* Vous pouvez :
* - créer la structure SQL,
* - insérer du pre-contenu,
* - installer des valeurs de configuration,
* - mettre à jour la structure SQL
**/
function escal_upgrade($nom_meta_base_version, $version_cible)
$maj = array();
include_spip(’escal_fonctions’);
include_spip(’inc/config’);
include_spip(’action/editer_objet’);

$maj[’create’] = array(
array(’install_groupe_mots’),
array(’ecrire_config’, array(’escal’, array()))
);

include_spip(’base/upgrade’);
maj_plugin($nom_meta_base_version, $version_cible, $maj);
ecrire_meta($nom_meta_base_version,$version_cible);
ecrire_meta();

/**
* Fonction de désinstallation du plugin.
* Vous devez :
* - nettoyer toutes les données ajoutées par le plugin et son utilisation
* - supprimer les tables et les champs créés par le plugin.
**/
function escal_vider_tables($nom_meta_base_version)

include_spip(’inc/config’);
$affichage = lire_config(’escal/mots_techniques/affichage’);

sql_delete(’spip_groupes_mots’, sql_in(“id_groupe”, array($affichage)));
sql_delete(’spip_mots’, sql_in(“id_groupe”, array($affichage)));

effacer_meta(’escal’);
effacer_meta($nom_meta_base_version);
ecrire_meta();

?// Fin de la fonction
</
code >
</code >

Fichier /escal/escal_fonctions.php


// Exemple de fonction d’instal de groupes et mots-clef
//
a placer dans . function install_groupe_mots () /escal_fonctions.php

/*
* function install_groupe_mot
* install les groupes de mots techniques et les mots clefs correspondants
* on les stocke en spip_meta.
tbl pour pouvoir les désinstaller , mettre a jour , via une upgrade du shema
*

*/

function install_groupe_mots ()
// Création du groupe de mot Clef : affichage
$groupe_affichage = sql_insertq(’spip_groupes_mots’,array(’titre’=>’affichage’,’tables_liees’=>’articles,rubriques sql_insertq(’spip_groupes_mots’,array(’titre’=>’affichage ’, ’tables_liees’=>’articles,rubriques ’));

// Création des mots clefs -----------

// Mot : pas_au_menu
$pas_au_menu = objet_inserer(’mot’,$groupe_affichage);
objet_modifier(’mot’,$pas_au_menu,array (
’titre’=>’pas-au-menu ’,
’descriptif’=>’pour ne objet_modifier(’mot’,$pas_au_menu,array(’titre’=>’pas-au-menu’,’description’=>’ne pas afficher une rubrique ou un article dans le menu horizontal
)
);

$result = array (
’affichage’=>$groupe_affichage ,
’affichage_mots ’=> array (
’pas_au_menu’=>$pas_au_menu
)

);

ecrire_config(’escal/mots_techniques’,$result );

return $ result ;

</
code > EscalV3 seulement pour les articles )’));

----

// Ainsi de suite ... pour le groupe affichage

// Création du groupe de mots-clef : type_rubrique
$groupe_type_rubrique = sql_insertq(’spip_groupes_mots’,array(’titre’=>’type_rubrique’));

// Mot : trombino
$trombino = objet_inserer(’mot’,$groupe_type_rubrique);
objet_modifier(’mot’,$trombino,array(’titre’=>’trombino’,’description’=>’appeler inc-rubrique_trombino à la place de inc-rubrique_normal dans la page rubrique afin d\’afficher la rubrique avec ce mot-clé, donc le trombinoscope’));

Comment ?

Une mutualisation de site spip avec le site maître dans la mutualisation

  • permet d’utiliser les fonctions spip

Sur quoi s’appuyer ?

Donc si on peut s’y coller à plusieurs ça serait sympa et profitable à tous.

@micalement