Changeset 60838 in spip-zone


Ignore:
Timestamp:
May 1, 2012, 1:57:47 PM (9 years ago)
Author:
eric@…
Message:

Démarrage de la page d'ajout de commentaires.
Sécurité sur les filtres.
Ajout d'un filtre permettant de lister les éléments d'article pouvant être commentés.

Location:
_plugins_/relecture
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/relecture/lang/relecture_fr.php

    r60764 r60838  
    3535
    3636// L
    37         'label_article_chapeau' => 'Chapeau',
     37        'label_article_chapo' => 'Chapeau',
    3838        'label_article_descriptif' => 'Descriptif',
    3939        'label_article_ps' => 'Post-Scriptum',
  • _plugins_/relecture/prive/squelettes/contenu/relecture.html

    r60827 r60838  
    8585                        <div>#ARTICLE_DESCR</div>]
    8686                [(#ARTICLE_CHAPO*|strlen|oui)
    87                         <h5><a href="#"><:relecture:label_article_chapeau:></a></h5>
     87                        <h5><a href="#"><:relecture:label_article_chapo:></a></h5>
    8888                        <div>#ARTICLE_CHAPO</div>]
    8989                [(#ARTICLE_TEXTE*|strlen|oui)
  • _plugins_/relecture/prive/squelettes/inclure/relecture-fil_ariane.html

    r60413 r60838  
    11[(#REM) <!-- hierarchie specifique pour la relecture :
    22        - Lien parent vers la page de l'article associe
    3         - Titre de la relecture compose ou sans titre sinon
     3        - Titre de la relecture ou sans titre sinon
    44--> ]
    55
  • _plugins_/relecture/relecture_fonctions.php

    r60196 r60838  
    1111        $texte = '';
    1212
    13         if (intval($id)>0) {
     13        if ($id_relecture=intval($id)) {
    1414                $from = 'spip_commentaires';
    15                 $where = array("id_relecture=$id");
     15                $where = array("id_relecture=$id_relecture");
    1616                $nb_commentaires = sql_countsel($from, $where);
    17                 $where = array("id_relecture=$id", "statut<>" . sql_quote('ouvert'));
     17                $where = array("id_relecture=$id_relecture", "statut<>" . sql_quote('ouvert'));
    1818                $nb_commentaires_fermes = sql_countsel($from, $where);
    1919
     
    3838}
    3939
     40
    4041/**
    4142 * Renvoyer les compteurs de commentaires par statut pour une relecture donnee.
     
    4647 */
    4748function relecture_compter_commentaires($id) {
    48         $compteurs = array('ouvert' => 0, 'accepte' => 0, 'refuse' => 0,);
     49        $compteurs = array('ouvert' => 0, 'accepte' => 0, 'refuse' => 0);
    4950
    50         if (intval($id)>0) {
     51        if ($id_relecture = intval($id)) {
    5152                $select = array('statut', 'count(*) AS compteur');
    5253                $from = 'spip_commentaires';
    53                 $where = array("id_relecture=$id");
     54                $where = array("id_relecture=$id_relecture");
    5455                $group_by = 'statut';
    5556                if ($lignes = sql_select($select, $from, $where, $group_by)) {
     
    6465}
    6566
     67
     68/**
     69 * Renvoyer la liste ordonnee des elements d'article non vides pouvant etre relus et commentes
     70 *
     71 * @param int $id
     72 * @return array
     73 */
     74function relecture_lister_elements($id) {
     75        $elements = array();
     76
     77        if ($id_relecture = intval($id)) {
     78                $select = array('article_chapo AS chapo', 'article_descr AS descriptif', 'article_texte AS texte', 'article_ps AS ps');
     79                $from = 'spip_relectures';
     80                $where = array("id_relecture=$id_relecture");
     81                $champs = sql_fetsel($select, $from, $where);
     82
     83                foreach ($champs as $_cle => $_valeur) {
     84                        if (strlen(trim($_valeur)) > 0)
     85                                $elements[] = $_cle;
     86                }
     87        }
     88
     89    return $elements;
     90}
     91
    6692?>
  • _plugins_/relecture/relecture_pipelines.php

    r60824 r60838  
    9393/**
    9494 * Surcharge de la fonction charger des formulaires concernes, a savoir :
    95  * - dater : dans la page relecture permet de choisir la date de fin des commentaires
    96  * - editer_liens : dans la page relecture permet de choisir les relecteurs
    97  * - instituer_objet : dans la page de l'article en cours de relecture bloque le statut de l'article
     95 * - relecture / dater : dans la page relecture permet de choisir la date de fin des commentaires
     96 * - relecture / editer_liens : dans la page relecture permet de choisir les relecteurs
     97 * - relecture / instituer_objet : renforce le test standard base sur l'autorisation modifier en testant si tous les
     98 *   commentaires ont ete traites
     99 * - article / instituer_objet : dans la page de l'article en cours de relecture bloque le statut de l'article
    98100 *
    99101 * @param array $flux
     
    108110
    109111        if ($objet == 'relecture') {
    110                 // Rendre editable le formulaire si la relecture n'est pas cloturee
    111                 $from = 'spip_relectures';
    112                 $where = array("id_relecture=$id_objet");
    113                 $statut = sql_getfetsel('statut', $from, $where);
    114                 $flux['data']['editable'] = autoriser('modifier', 'relecture', $id_objet);
    115112
    116113                if ($form == 'dater') {
    117114                        // Identifier le label comme la date de fin des commentaires
    118115                        $flux['data']['_label_date'] = _T('relecture:label_date_fin_commentaire');
     116                        // Le formulaire n'est editable que si l'autprisation modifier est accordee.
     117                        $flux['data']['editable'] = autoriser('modifier', 'relecture', $id_objet);
    119118                }
    120119                else if ($form == 'editer_liens') {
    121120                        // Changer le titre du formulaire pour désigner clairement les relecteurs
    122121                        $flux['data']['titre'] = _T('relecture:titre_liste_relecteurs');
     122                        // Le formulaire n'est editable que si l'autprisation modifier est accordee.
     123                        $flux['data']['editable'] = autoriser('modifier', 'relecture', $id_objet);
     124                }
     125                else if ($form == 'instituer_objet') {
     126                        // A ce stade, le formulaire instituer_objet est deja teste avec l'autorisation modifier.
     127                        // On rajoute le fait qu'il n'y ait plus de commentaires a traiter
     128                        // TODO : verifier qu'on le fait ici et pas dans l'autorisation instituer sur le verifier ?
    123129                }
    124130        }
     
    159165                        $article = sql_fetsel($select, $from, $where);
    160166                        foreach ($article as $_cle => $_valeur) {
    161                                 $flux['data'][$_cle] = $_valeur;
     167                                if ($_cle == 'id_article')
     168                                        $flux['data'][$_cle] = intval($_valeur);
     169                                else
     170                                        // On ne recupere que les textes qui comportent des mots !
     171                                        $texte = trim($_valeur);
     172                                        if ($texte)
     173                                                $flux['data'][$_cle] = $texte;
    162174                        }
    163175
Note: See TracChangeset for help on using the changeset viewer.