Changeset 61855 in spip-zone


Ignore:
Timestamp:
May 30, 2012, 1:03:51 PM (7 years ago)
Author:
cedric@…
Message:

Renommage conventionnel des actions : objet_verbe

Location:
_plugins_/gis/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/gis/trunk/action/editer_gis.php

    r60882 r61855  
    1313        // si id_gis n'est pas un nombre, c'est une creation
    1414        if (!$id_gis = intval($arg)) {
    15                 if (!$id_gis = insert_gis())
     15                if (!$id_gis = gis_inserer())
    1616                        return array(false,_L('echec'));
    1717        }
    18         $err = revisions_gis($id_gis);
     18        $err = gis_modifier($id_gis);
    1919        return array($id_gis,$err);
    2020}
     
    2525 * @return int/false $id_gis : l'identifiant numérique du point ou false en cas de non création
    2626 */
    27 function insert_gis() {
     27function gis_inserer() {
    2828        if(autoriser('creer','gis')){
    2929                $champs = array();
     
    4949                );
    5050                return $id_gis;
    51         }else{
     51        }
     52        else{
    5253                return false;
    5354        }
     
    6061 * @param array $c : un array des valeurs à mettre en base (par défaut false, on récupère les valeurs passées en dans le POST)
    6162 */
    62 function revisions_gis($id_gis, $c=false) {
    63         $err = '';
    64         // recuperer les champs dans POST s'ils ne sont pas transmis
    65         if ($c === false) {
    66                 $c = array();
    67                 foreach (array(
    68                         'lat', 'lon', 'zoom', 'titre', 'descriptif', 'adresse', 'code_postal', 'ville', 'region', 'pays'
    69                 ) as $champ) {
    70                         if (($a = _request($champ)) !== null) {
    71                                 $c[$champ] = $a;
    72                         }
    73                 }
    74         }
    75        
     63/**
     64 * Appelle toutes les fonctions de modification d'un point gis
     65 * $err est de la forme chaine de langue ou vide si pas d'erreur
     66 * http://doc.spip.org/@articles_set
     67 *
     68 * @param  $id_gis
     69 * @param null $set
     70 * @return string
     71 */
     72function gis_modifier($id_gis, $set=null) {
    7673        include_spip('inc/modifier');
    77         modifier_contenu('gis', $id_gis, array(
     74        include_spip('inc/filtres');
     75        $c = collecter_requests(
     76                // white list
     77                objet_info('gis','champs_editables'),
     78                // black list
     79                array('id_objet','objet'),
     80                // donnees eventuellement fournies
     81                $set
     82        );
     83
     84        if ($err = objet_modifier_champs('gis', $id_gis,
     85                array(
    7886                        //'nonvide' => array('nom' => _T('info_sans_titre')),
    79                         'invalideur' => "id='id_gis/$id_gis'"
     87                        'invalideur' => "id='gis/$id_gis'",
    8088                ),
    81                 $c);
    82        
    83         if ((intval(_request('id_objet')) && _request('objet')) OR (intval($c['id_objet']) && $c['objet'])) {
    84                 $objet = _request('objet') ? _request('objet') : $c['objet'];
    85                 $id_objet = _request('id_objet') ? _request('id_objet') : $c['id_objet'];
    86                 lier_gis($id_gis, $objet, $id_objet);
    87         }
    88        
     89                $c))
     90                return $err;
     91
     92        // lier a un parent ?
     93        $c = collecter_requests(array('id_objet', 'objet'),array(),$set);
     94        if (isset($c['id_objet']) AND intval($c['id_objet']) AND isset($c['objet']) AND $c['objet']) {
     95                lier_gis($id_gis, $c['objet'], $c['id_objet']);
     96        }
     97
    8998        return $err;
    9099}
    91100
    92 /**
    93  * Lier un point géolocalisé à un objet SPIP
    94  *
    95  * @param int $id_gis identifiant numérique du point
    96  * @param string $objet Le type de l'objet à lier
    97  * @param int $id_objet L'identifiant numérique de l'objet lié
    98  *
    99  * @return bool : true si la liaison s'est bien passée, false à l'inverse
    100  */
    101 function lier_gis($id_gis, $objet, $id_objet){
    102         //$objet = objet_type($objet);
    103         if ($id_objet AND $id_gis
    104         AND preg_match('/^[a-z0-9_]+$/i', $objet) # securite
    105         AND !sql_getfetsel("id_gis", "spip_gis_liens", "id_gis=$id_gis AND id_objet=$id_objet AND objet=".sql_quote($objet))
    106         AND autoriser('lier','gis',$id_gis,$GLOBALS['visiteur_session'],array('objet' => $objet,'id_objet'=>$id_objet))
    107         ) {
    108                 sql_insertq('spip_gis_liens',
    109                         array('id_gis' => $id_gis,
    110                                 'id_objet' => $id_objet,
    111                                 'objet' => $objet));
    112                 include_spip('inc/invalideur');
    113                 suivre_invalideur("id='id_gis/$id_gis'");
    114                 return true;
    115         }
    116         return false;
    117 }
    118 
    119 /**
    120  * Délier un point géolocalisé d'un objet SPIP
    121  *
    122  * @param int $id_gis identifiant numérique du point
    123  * @param string $objet Le type de l'objet à lier
    124  * @param int $id_objet L'identifiant numérique de l'objet lié
    125  *
    126  * @return bool : true si la suppression de la liaison s'est bien passée, false à l'inverse
    127  */
    128 function delier_gis($id_gis, $objet, $id_objet){
    129         //$objet = objet_type($objet);
    130         if ($id_objet AND $id_gis
    131         AND preg_match('/^[a-z0-9_]+$/i', $objet) # securite
    132         AND autoriser('delier','gis',$id_gis,$GLOBALS['visiteur_session'],array('objet' => $objet,'id_objet'=>$id_objet))
    133         ) {
    134                 sql_delete('spip_gis_liens', "id_gis=$id_gis AND id_objet=$id_objet AND objet=". sql_quote($objet));
    135                 include_spip('inc/invalideur');
    136                 suivre_invalideur("id='id_gis/$id_gis'");
    137                 return true;
    138         }
    139         return false;
    140 }
     101
     102/**
     103 * Associer un point géolocalisé a des objets listes sous forme
     104 * array($objet=>$id_objets,...)
     105 * $id_objets peut lui meme etre un scalaire ou un tableau pour une liste d'objets du meme type
     106 *
     107 * on peut passer optionnellement une qualification du (des) lien(s) qui sera
     108 * alors appliquee dans la foulee.
     109 * En cas de lot de liens, c'est la meme qualification qui est appliquee a tous
     110 *
     111 * @param int $id_gis
     112 * @param array $objets
     113 * @param array $qualif
     114 * @return string
     115 */
     116function gis_associer($id_gis,$objets, $qualif = null){
     117        include_spip('action/editer_liens');
     118        $res = objet_associer(array('gis'=>$id_gis), $objets, $qualif);
     119        include_spip('inc/invalideur');
     120        suivre_invalideur("id='gis/$id_gis'");
     121        return $res;
     122}
     123
     124/**
     125 * Dossocier un point géolocalisé des objets listes sous forme
     126 * array($objet=>$id_objets,...)
     127 * $id_objets peut lui meme etre un scalaire ou un tableau pour une liste d'objets du meme type
     128 *
     129 * un * pour $id_auteur,$objet,$id_objet permet de traiter par lot
     130 *
     131 * @param int $id_gis
     132 * @param array $objets
     133 * @return string
     134 */
     135function gis_dissocier($id_gis,$objets){
     136        include_spip('action/editer_liens');
     137        $res = objet_dissocier(array('gis'=>$id_gis), $objets);
     138        include_spip('inc/invalideur');
     139        suivre_invalideur("id='gis/$id_gis'");
     140        return $res;
     141}
     142
     143
    141144
    142145/**
     
    144147 *
    145148 * @param int $id_gis identifiant numérique du point
    146  * @return 0/false 0 si réussite, false dans le cas ou le point n'existe pas
    147  */
    148 function supprimer_gis($id_gis){
     149 * @return int|false 0 si réussite, false dans le cas ou le point n'existe pas
     150 */
     151function gis_supprimer($id_gis){
    149152        $valide = sql_getfetsel('id_gis','spip_gis','id_gis='.intval($id_gis));
    150153        if($valide && autoriser('supprimer','gis',$valide)){
     
    159162}
    160163
     164
     165/**
     166 * Délier un point géolocalisé d'un objet SPIP
     167 *
     168 * @param int $id_gis identifiant numérique du point
     169 * @param string $objet Le type de l'objet à lier
     170 * @param int $id_objet L'identifiant numérique de l'objet lié
     171 *
     172 * @return bool : true si la suppression de la liaison s'est bien passée, false à l'inverse
     173 */
     174function delier_gis($id_gis, $objet, $id_objet){
     175        //$objet = objet_type($objet);
     176        if ($id_objet AND $id_gis
     177        AND preg_match('/^[a-z0-9_]+$/i', $objet) # securite
     178        AND autoriser('delier','gis',$id_gis,$GLOBALS['visiteur_session'],array('objet' => $objet,'id_objet'=>$id_objet))
     179        ) {
     180                gis_dissocier($id_gis,array($objet=>$id_objet));
     181                return true;
     182        }
     183        return false;
     184}
     185
     186/**
     187 * Lier un point géolocalisé à un objet SPIP
     188 *
     189 * @param int $id_gis identifiant numérique du point
     190 * @param string $objet Le type de l'objet à lier
     191 * @param int $id_objet L'identifiant numérique de l'objet lié
     192 *
     193 * @return bool : true si la liaison s'est bien passée, false à l'inverse
     194 */
     195function lier_gis($id_gis, $objet, $id_objet){
     196        //$objet = objet_type($objet);
     197        if ($id_objet AND $id_gis
     198        AND preg_match('/^[a-z0-9_]+$/i', $objet) # securite
     199        AND !sql_getfetsel("id_gis", "spip_gis_liens", "id_gis=$id_gis AND id_objet=$id_objet AND objet=".sql_quote($objet))
     200        AND autoriser('lier','gis',$id_gis,$GLOBALS['visiteur_session'],array('objet' => $objet,'id_objet'=>$id_objet))
     201        ) {
     202                gis_associer($id_gis,array($objet=>$id_objet));
     203                return true;
     204        }
     205        return false;
     206}
     207
     208function insert_gis() {return gis_inserer();}
     209function revisions_gis($id_gis, $c=false) {return gis_modifier($id_gis,$c);}
     210function supprimer_gis($id_gis){return gis_supprimer($id_gis);}
     211
    161212?>
  • _plugins_/gis/trunk/base/gis.php

    r61853 r61855  
    6464                'url_edit' => 'gis_edit',
    6565                'editable' => 'oui',
     66                'champs_editables' => array('lat', 'lon', 'zoom', 'titre', 'descriptif', 'adresse', 'code_postal', 'ville', 'region', 'pays'),
    6667                /*'champs_editables' => array(), */
    6768                'icone_objet' => 'gis',
Note: See TracChangeset for help on using the changeset viewer.