Carnet Wiki

Et si on automatisait tout ça ?

Version 22 — August 2013 — 84.6.xx.xx

Arnaud, Jean Christophe, Stéphane de Ch’Nord, Stéphane le charentais (Après le 15 août.) 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
  • Deux cases a cocher pour validation (confirmation de lecture)
    • Mentions légales
    • Règles d’inscription

exemple : Nursit pour la première partie du formulaire

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

-  l’inscription automatique d’un Auteur Webmestre
permettre au webmestre de la mutu de passer en tant que webmestre dans un site mutualisé, pratique pour du dépannage de configuration du squelette

-  Multilinguisme
Le squelette Escal est pré configuré pour le multilinguisme
il serait intéressant lors de l’activation que celui-ci que ça s’active

  • Non car beaucoup d’utilisateurs d’Escal n’utilisent pas le multilinguisme (Jean Christophe)

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é).
    • je m’y colle de tenter une Explication ;) (Stéphane)
  • 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,
      • ( ça serait bien car en plus , ça permettrai de coupler l’inscription au plugin newletters également (stéphane))
    • soit avec le plugin client en ajout si besoin de champs supplémentaires,
      • Malgré mes recherche je n’ai pas trouvé le plugin client (stéphane))
    • 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

(Arnaud Bérard et 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, pour pouvoir mettre a jour.

<paquet
    prefix="escal"
    categorie="squelette"
    version="3.71.18"
    schema="1.."
    etat="stable"
    compatibilite="[2.10.;["
    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..html">GNU/GPL</licence>
  
  <utilise nom="palette" compatibilite="[2..;[" />
  <utilise nom="spip_400" />
  
  <necessite nom="agenda" compatibilite="[3.11.2;[" />


<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();
}


?>

Fichier /escal/escal_fonctions.php

// Exemple de fonction d'instal de groupes et mots-clef
// a placer dans ./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'));
    
    // 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 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;
}

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