Changeset 60664 in spip-zone


Ignore:
Timestamp:
Apr 25, 2012, 7:29:04 PM (9 years ago)
Author:
eric@…
Message:

Blocage du statut de l'article tant qu'une relecture est en cours.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/relecture/relecture_pipelines.php

    r60584 r60664  
    6666 * - dater : dans la page relecture permet de choisir la date de fin des commentaires
    6767 * - editer_liens : dans la page relecture permet de choisir les relecteurs
     68 * - instituer_objet : dans la page de l'article en cours de relecture bloque le statut de l'article
    6869 *
    6970 * @param array $flux
     
    7374function relecture_formulaire_charger($flux){
    7475
    75         static $forms_concernes = array('dater', 'editer_liens');
     76        $form = $flux['args']['form'];
     77        $objet = $flux['data']['objet'] ? $flux['data']['objet'] : $flux['data']['_objet'];
     78        $id_objet = intval($flux['data']['id_objet']) ? intval($flux['data']['id_objet']) : intval($flux['data']['_id_objet']);
    7679
    77         $form = $flux['args']['form'];
    78         $objet = $flux['data']['objet'];
    79         $id_objet = intval($flux['data']['id_objet']);
    80 
    81         if ((in_array($form, $forms_concernes)) AND ($objet == 'relecture')) {
     80        if ($objet == 'relecture') {
    8281                // Rendre editable le formulaire si la relecture n'est pas cloturee
    8382                $from = 'spip_relectures';
     
    8685                $flux['data']['editable'] = ($statut !== 'fermee');
    8786
    88                 if ($form =='dater') {
     87                if ($form == 'dater') {
    8988                        // Identifier le label comme la date de fin des commentaires
    9089                        $flux['data']['_label_date'] = _T('relecture:label_relecture_date_fin_commentaire');
    9190                }
    92                 else if ($form =='editer_liens') {
     91                else if ($form == 'editer_liens') {
    9392                        // Changer le titre du formulaire pour désigner clairement les relecteurs
    9493                        $flux['data']['titre'] = _T('relecture:titre_liste_relecteurs');
     94                }
     95        }
     96        else if ($objet == 'article') {
     97                if ($form == 'instituer_objet') {
     98                        // Si une relecture est ouverte sur l'article alors on interdit de modifier
     99                        // le statut de l'article qui reste a "en cours de redaction"
     100                        $from = 'spip_relectures';
     101                        $where = array("id_article=$id_objet", "statut=" . sql_quote('ouverte'));
     102                        $flux['data']['editable'] = (sql_countsel($from, $where) == 0);
    95103                }
    96104        }
Note: See TracChangeset for help on using the changeset viewer.