Changeset 63400 in spip-zone
- Timestamp:
- Jul 11, 2012, 4:31:58 PM (9 years ago)
- Location:
- _plugins_/motus/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/motus/trunk/base/motus.php
r55263 r63400 2 2 if (!defined("_ECRIRE_INC_VERSION")) return; 3 3 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 **/ 4 14 function motus_declarer_champs_extras($champs = array()){ 5 15 $champs['spip_groupes_mots']['rubriques_on'] = array( … … 14 24 'multiple' => 'oui', 15 25 ), 16 26 'verifier' => array()); 17 27 18 return $champs; 28 return $champs; 19 29 } 20 30 -
_plugins_/motus/trunk/motus_administrations.php
r55269 r63400 1 1 <?php 2 /** 3 * Fichier gérant l'installation et désinstallation du plugin 4 **/ 2 5 if (!defined("_ECRIRE_INC_VERSION")) return; 3 6 … … 5 8 include_spip('base/motus'); 6 9 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 **/ 7 19 function motus_upgrade($nom_meta_base_version,$version_cible){ 8 20 $maj = array(); … … 13 25 } 14 26 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 **/ 15 34 function motus_vider_tables($nom_meta_base_version) { 16 35 cextras_api_vider_tables(motus_declarer_champs_extras()); -
_plugins_/motus/trunk/motus_autorisations.php
r55237 r63400 1 1 <?php 2 2 3 /** 4 * Définition d'autorisations 5 * 6 * Essentiellement des surcharges d'autorisations du plugin mots 7 **/ 8 9 /** Fonction d'appel du pipeline **/ 3 10 function motus_autoriser(){} 4 11 5 12 6 13 /** 7 * Autorisation pour verifier le droit d'associer des mots 8 * a un objet 14 * Autorisation d'associer des mots à un objet 9 15 * 10 * Si l'affichage est autoris e par la fonction mere,16 * Si l'affichage est autorisé par la fonction mère, 11 17 * On teste que les restrictions eventuelles sur le groupe 12 * ne viennent pas faire qu'il n'y aurait aucun groupe d'affich eensuite18 * ne viennent pas faire qu'il n'y aurait aucun groupe d'affiché ensuite 13 19 * 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 15 26 */ 16 function autoriser_associermots($faire,$ quoi,$id,$qui,$opts) {17 if (!autoriser_associermots_dist($faire,$ quoi,$id,$qui,$opts)) {27 function autoriser_associermots($faire,$type,$id,$qui,$opt) { 28 if (!autoriser_associermots_dist($faire,$type,$id,$qui,$opt)) { 18 29 return false; 19 30 } … … 21 32 // il existe des groupes pour l'objet en question. 22 33 // on ne s'occupe que du cas ou nous ne connaissons pas de groupe precis d'association 23 if (isset($opt s['groupe_champs']) OR isset($opts['id_groupe'])){34 if (isset($opt['groupe_champs']) OR isset($opt['id_groupe'])){ 24 35 return true; 25 36 } 26 37 27 38 // chercher si un groupe est autorise pour mon statut 28 39 // et pour la table demandee 29 $table = addslashes(table_objet($ quoi));40 $table = addslashes(table_objet($type)); 30 41 $droit = substr($qui['statut'],1); 31 42 $restrictions = sql_allfetsel('rubriques_on', 'spip_groupes_mots',"tables_liees REGEXP '(^|,)$table($|,)' AND ".addslashes($droit)."='oui'"); 32 43 $restrictions = array_map('array_shift', $restrictions); 33 44 34 45 // pour chaque resultat, on teste si on peut l'associer ou non... 35 46 // deja, un des groupes est sans restriction : c'est OK ! … … 37 48 if (!$r) return true; 38 49 } 39 50 40 51 // puis via l'autorisation... 41 52 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)) 43 54 return true; 44 55 } … … 50 61 51 62 /** 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 54 64 * 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 56 73 */ 57 function autoriser_groupemots_afficherselecteurmots($faire,$ quoi,$id,$qui,$opts){74 function autoriser_groupemots_afficherselecteurmots($faire,$type,$id,$qui,$opt){ 58 75 59 76 static $groupes = array(); 60 77 61 $objet = $opts['objet'];62 $id_objet = $opt s['id_objet'];78 $objet = $opt['objet']; 79 $id_objet = $opt['id_objet']; 63 80 64 81 if (!$objet) return true; 65 82 66 83 // premier tri 67 if (!autoriser_associermots_dist($faire,$objet,$id_objet,$qui,$opt s))84 if (!autoriser_associermots_dist($faire,$objet,$id_objet,$qui,$opt)) 68 85 return false; 69 86 87 // liste des rubriques autorisées pour le groupe donné 70 88 if (!isset($groupes[$id])) { 71 89 $groupes[$id] = sql_getfetsel('rubriques_on', 'spip_groupes_mots', 'id_groupe='.$id); … … 78 96 79 97 // si restriction a une rubrique... 98 // on passe la liste des rubriques concerné et on regarde si l'objet à lier est dedans ou non 80 99 return motus_autoriser_groupe_si_selection_rubrique($groupes[$id], $objet, $id_objet, $qui); 81 82 100 } 83 101 84 102 85 103 /** 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 88 107 * 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. 93 116 * @return bool 94 117 **/ … … 108 131 $id_rub = $id_objet; 109 132 } 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); 113 138 } 114 139 … … 118 143 119 144 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 **/ 157 function autoriser_groupemots_dansrubrique_dist($faire,$type,$id,$qui,$opt){ 158 static $rubriques = array(); 120 159 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 ? 128 162 or !$id // pas d'info de rubrique... on autorise par defaut... 129 163 or in_array($id, $rubs)) // la rubrique est dedans … … 132 166 // la ca se complique... 133 167 // si deja calcule... on le retourne. 134 $hash = md5(implode('',$rubs) . '_' . $opts['id_groupe']);168 $hash = md5(implode('',$rubs)); 135 169 if (isset($rubriques[$id][$hash])) 136 170 return $rubriques[$id][$hash]; … … 143 177 $rubriques[$id][$hash] = false; 144 178 } else { 145 $rubriques[$id][$hash] = autoriser('dansrubrique','groupemots',$id_parent,$qui,$opt s);179 $rubriques[$id][$hash] = autoriser('dansrubrique','groupemots',$id_parent,$qui,$opt); 146 180 } 147 181 -
_plugins_/motus/trunk/paquet.xml
r55267 r63400 2 2 prefix="motus" 3 3 categorie="maintenance" 4 version="1.0. 0"4 version="1.0.1" 5 5 etat="stable" 6 6 compatibilite="[3.0.0-beta;3.0.*]"
Note: See TracChangeset
for help on using the changeset viewer.