Ignore:
Timestamp:
Jun 22, 2011, 12:36:19 PM (10 years ago)
Author:
cedric@…
Message:

modification du fonctionnement du plugin :
au lieu de stocker le verrou dans la base, on le stocke via un fichier sur le filesystem, dans local/
La meta n'est qu'un cache qui permet d'eviter les acces disques.
Cela permet de ne pas perdre la protection du plugin si jamais on importe une nouvelle base sur un site en travaux.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/en_travaux/trunk/entravaux_install.php

    r48270 r48993  
    1919
    2020        include_spip('inc/autoriser');
     21        // upgrade inconditionnel
     22        if (isset($GLOBALS['meta']['entravaux_id_auteur'])){
     23                entravaux_poser_verrou("accesferme");
     24                effacer_meta('entravaux_id_auteur');
     25        }
     26
    2127        // seul un webmestre peut activer les travaux sur le site
    2228        // si c'est un autre admin qui active le plugin, il ne fait rien en base
    2329        if (autoriser('travaux')) {
    2430                $maj['create'] = array(
    25                         array('ecrire_meta','entravaux_id_auteur',$GLOBALS['visiteur_session']['id_auteur']),
     31                        array('entravaux_poser_verrou','accesferme'),
    2632                );
    2733                include_spip('base/upgrade');
    2834                maj_plugin($nom_meta_base_version, $version_cible, $maj);
    2935        }
    30         else
    31                 // sans mise a jour de $nom_meta_base_version ce qui fera une erreur dans le panneau plugin
    32                 effacer_meta('entravaux_id_auteur');
     36        // sinon on ne fait *rien* (activation par un admin, ou upgrade silencieux apres import de base)
    3337}
    3438
     
    4650
    4751
     52/**
     53 * Poser un verrou sous forme de fichier dans local/
     54 * pour ne pas qu'il saute si on importe une base
     55 * On loge dans le verrou l'id_auteur qui l'a pose a toute fin utile
     56 * On force la mise a jour de la meta
     57 * @param string $nom
     58 */
     59function entravaux_poser_verrou($nom){
     60        ecrire_fichier(_DIR_VAR.'entravaux_'.$nom.'.lock',"auteur:".$GLOBALS['visiteur_session']['id_auteur']);
     61        entravaux_check_verrou($nom, true);
     62}
     63
     64/**
     65 * Lever un verrou sous forme de fichier dans local/
     66 * pour ne pas qu'il saute si on importe une base
     67 * On force la mise a jour de la meta
     68 * @param string $nom
     69 */
     70function entravaux_lever_verrou($nom){
     71        spip_unlink(_DIR_VAR.'entravaux_'.$nom.'.lock');
     72        entravaux_check_verrou($nom, true);
     73}
    4874
    4975?>
Note: See TracChangeset for help on using the changeset viewer.