Changeset 63400 in spip-zone


Ignore:
Timestamp:
Jul 11, 2012, 4:31:58 PM (7 years ago)
Author:
marcimat@…
Message:

+ Passage en stable
+ PHP Doc
+ Quelques Notices

Location:
_plugins_/motus/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/motus/trunk/base/motus.php

    r55263 r63400  
    22if (!defined("_ECRIRE_INC_VERSION")) return;
    33
     4/**
     5 * Déclarer le champs extras
     6 *
     7 * Ajoute un champ «rubrique_on» sur les groupes de mots
     8 *
     9 * @param array $champs
     10 *     Description des champs extras pour chaque table SQL
     11 * @return array
     12 *     Description des champs extras complétée
     13**/
    414function motus_declarer_champs_extras($champs = array()){
    515        $champs['spip_groupes_mots']['rubriques_on'] = array(
     
    1424                        'multiple' => 'oui',
    1525                ),
    16         'verifier' => array());
     26                'verifier' => array());
    1727
    18         return $champs; 
     28        return $champs;
    1929}
    2030
  • _plugins_/motus/trunk/motus_administrations.php

    r55269 r63400  
    11<?php
     2/**
     3 * Fichier gérant l'installation et désinstallation du plugin
     4**/
    25if (!defined("_ECRIRE_INC_VERSION")) return;
    36
     
    58include_spip('base/motus');
    69
     10/**
     11 * Installation du plugin
     12 *
     13 * @param string $nom_meta_base_version
     14 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
     15 * @param string $version_cible
     16 *     Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
     17 * @return void
     18**/
    719function motus_upgrade($nom_meta_base_version,$version_cible){
    820        $maj = array();
     
    1325}
    1426
     27/**
     28 * Dénstallation du plugin
     29 *
     30 * @param string $nom_meta_base_version
     31 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
     32 * @return void
     33**/
    1534function motus_vider_tables($nom_meta_base_version) {
    1635        cextras_api_vider_tables(motus_declarer_champs_extras());
  • _plugins_/motus/trunk/motus_autorisations.php

    r55237 r63400  
    11<?php
    22
     3/**
     4 * Définition d'autorisations
     5 *
     6 * Essentiellement des surcharges d'autorisations du plugin mots
     7**/
     8
     9/** Fonction d'appel du pipeline **/
    310function motus_autoriser(){}
    411
    512
    613/**
    7  * Autorisation pour verifier le droit d'associer des mots
    8  * a un objet
     14 * Autorisation d'associer des mots à un objet
    915 *
    10  * Si l'affichage est autorise par la fonction mere,
     16 * Si l'affichage est autorisé par la fonction mère,
    1117 * On teste que les restrictions eventuelles sur le groupe
    12  * ne viennent pas faire qu'il n'y aurait aucun groupe d'affiche ensuite
     18 * ne viennent pas faire qu'il n'y aurait aucun groupe d'affiché ensuite
    1319 *
    14  * @return bool
     20 * @param  string $faire Action demandée
     21 * @param  string $type  Type d'objet sur lequel appliquer l'action
     22 * @param  int    $id    Identifiant de l'objet
     23 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     24 * @param  array  $opt   Options de cette autorisation
     25 * @return bool          true s'il a le droit, false sinon
    1526 */
    16 function autoriser_associermots($faire,$quoi,$id,$qui,$opts) {
    17         if (!autoriser_associermots_dist($faire,$quoi,$id,$qui,$opts)) {
     27function autoriser_associermots($faire,$type,$id,$qui,$opt) {
     28        if (!autoriser_associermots_dist($faire,$type,$id,$qui,$opt)) {
    1829                return false;
    1930        }
     
    2132        // il existe des groupes pour l'objet en question.
    2233        // on ne s'occupe que du cas ou nous ne connaissons pas de groupe precis d'association
    23         if (isset($opts['groupe_champs']) OR isset($opts['id_groupe'])){
     34        if (isset($opt['groupe_champs']) OR isset($opt['id_groupe'])){
    2435                return true;
    2536        }
    26        
     37
    2738        // chercher si un groupe est autorise pour mon statut
    2839        // et pour la table demandee
    29         $table = addslashes(table_objet($quoi));
     40        $table = addslashes(table_objet($type));
    3041        $droit = substr($qui['statut'],1);
    3142        $restrictions = sql_allfetsel('rubriques_on', 'spip_groupes_mots',"tables_liees REGEXP '(^|,)$table($|,)' AND ".addslashes($droit)."='oui'");
    3243        $restrictions = array_map('array_shift', $restrictions);
    33        
     44
    3445        // pour chaque resultat, on teste si on peut l'associer ou non...
    3546        // deja, un des groupes est sans restriction : c'est OK !
     
    3748                if (!$r) return true;
    3849        }
    39        
     50
    4051        // puis via l'autorisation...
    4152        foreach ($restrictions as $r) {
    42                 if (motus_autoriser_groupe_si_selection_rubrique($r, $quoi, $id, $qui))
     53                if (motus_autoriser_groupe_si_selection_rubrique($r, $type, $id, $qui))
    4354                        return true;
    4455        }
     
    5061
    5162/**
    52  * Autorisation pour verifier le droit d'afficher le selecteur de mots
    53  * pour un groupe de mot donne, dans un objet / id_objet donne
     63 * Autorisation d'afficher le selecteur de mots
    5464 *
    55  * @return bool
     65 * Autorisation pour un groupe de mot donné, dans un objet / id_objet donne
     66 *
     67 * @param  string $faire Action demandée
     68 * @param  string $type  Type d'objet sur lequel appliquer l'action
     69 * @param  int    $id    Identifiant de l'objet
     70 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     71 * @param  array  $opt   Options de cette autorisation
     72 * @return bool          true s'il a le droit, false sinon
    5673 */
    57 function autoriser_groupemots_afficherselecteurmots($faire,$quoi,$id,$qui,$opts){
     74function autoriser_groupemots_afficherselecteurmots($faire,$type,$id,$qui,$opt){
    5875
    5976        static $groupes = array();
    6077       
    61         $objet = $opts['objet'];
    62         $id_objet = $opts['id_objet'];
     78        $objet    = $opt['objet'];
     79        $id_objet = $opt['id_objet'];
    6380
    6481        if (!$objet) return true;
    6582
    6683        // premier tri
    67         if (!autoriser_associermots_dist($faire,$objet,$id_objet,$qui,$opts))
     84        if (!autoriser_associermots_dist($faire,$objet,$id_objet,$qui,$opt))
    6885                return false;
    6986
     87        // liste des rubriques autorisées pour le groupe donné
    7088        if (!isset($groupes[$id])) {
    7189                $groupes[$id] = sql_getfetsel('rubriques_on', 'spip_groupes_mots', 'id_groupe='.$id);
     
    7896
    7997        // si restriction a une rubrique...
     98        // on passe la liste des rubriques concerné et on regarde si l'objet à lier est dedans ou non
    8099        return motus_autoriser_groupe_si_selection_rubrique($groupes[$id], $objet, $id_objet, $qui);
    81        
    82100}
    83101
    84102
    85103/**
    86  * Retourne vrai si une selection de rubrique s'applique a cet objet
    87  * autrement dit, si l'objet appartient a une des rubriques donnees
     104 * Retourne vrai si une selection de rubrique s'applique à cet objet
     105 *
     106 * Autrement dit, si l'objet appartient à une des rubriques données
    88107 * 
    89  * @param string $restriction Liste des restrictions issues d'une selection avec le selecteur generique (rubrique|3)
    90  * @param string $objet Objet sur lequel on teste l'appartenance a une des rubriques (article)
    91  * @param int $id_objet Identifiant de l'objet.
    92  * @param int $qui De qui teste t'on l'autorisation.
     108 * @param string $restriction
     109 *     Liste des restrictions issues d'une selection avec le selecteur generique (rubrique|3)
     110 * @param string $objet
     111 *     Objet sur lequel on teste l'appartenance a une des rubriques (article)
     112 * @param int $id_objet
     113 *     Identifiant de l'objet.
     114 * @param int $qui
     115 *     De qui teste t'on l'autorisation.
    93116 * @return bool
    94117**/
     
    108131                        $id_rub = $id_objet;
    109132                }
    110                 $opts = array();
    111                 $opts['rubriques_on'] = $rubs;
    112                 return autoriser('dansrubrique', 'groupemots', $id_rub, $qui, $opts);
     133                $opt = array();
     134                $opt['rubriques_on'] = $rubs;
     135                // ici on sait dans quelle rubriuqe est notre objet ($id_rub)
     136                // et on connait la liste des rubriques acceptées ($opt['rubriques_on'])
     137                return autoriser('dansrubrique', 'groupemots', $id_rub, $qui, $opt);
    113138        }
    114139
     
    118143
    119144
     145/**
     146 * Retourne vrai si la rubrique $id fait partie d'une des branches de $opt['rubriques_on']
     147 *
     148 * Autrement dit, si la rubrique appartient à une des rubriques données
     149 *
     150 * @param  string $faire Action demandée
     151 * @param  string $type  Type d'objet sur lequel appliquer l'action
     152 * @param  int    $id    Identifiant de l'objet
     153 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     154 * @param  array  $opt   Options de cette autorisation
     155 * @return bool          true s'il a le droit, false sinon
     156**/
     157function autoriser_groupemots_dansrubrique_dist($faire,$type,$id,$qui,$opt){
     158        static $rubriques = array();
    120159
    121 function autoriser_groupemots_dansrubrique_dist($faire,$quoi,$id,$qui,$opts){
    122         static $rubriques = -1;
    123 
    124         // init
    125         if ($rubriques === -1) $rubriques = array();
    126 
    127         if (!$rubs = $opts['rubriques_on']  // pas de liste de rubriques ?
     160        if (!isset($opt['rubriques_on'])
     161        or !$rubs = $opt['rubriques_on']  // pas de liste de rubriques ?
    128162        or !$id  // pas d'info de rubrique... on autorise par defaut...
    129163        or in_array($id, $rubs)) // la rubrique est dedans
     
    132166        // la ca se complique...
    133167        // si deja calcule... on le retourne.
    134         $hash = md5(implode('',$rubs) . '_' . $opts['id_groupe']);
     168        $hash = md5(implode('',$rubs));
    135169        if (isset($rubriques[$id][$hash]))
    136170                return $rubriques[$id][$hash];
     
    143177                $rubriques[$id][$hash] = false;
    144178        } else {
    145                 $rubriques[$id][$hash] = autoriser('dansrubrique','groupemots',$id_parent,$qui,$opts);
     179                $rubriques[$id][$hash] = autoriser('dansrubrique','groupemots',$id_parent,$qui,$opt);
    146180        }
    147181
  • _plugins_/motus/trunk/paquet.xml

    r55267 r63400  
    22        prefix="motus"
    33        categorie="maintenance"
    4         version="1.0.0"
     4        version="1.0.1"
    55        etat="stable"
    66        compatibilite="[3.0.0-beta;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.