Changeset 76805 in spip-zone for _plugins_/itineraires
- Timestamp:
- Oct 1, 2013, 12:37:17 AM (8 years ago)
- Location:
- _plugins_/itineraires/trunk
- Files:
-
- 3 added
- 2 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/itineraires/trunk/base/itineraires.php
r76747 r76805 23 23 */ 24 24 function itineraires_declarer_tables_interfaces($interfaces) { 25 26 25 $interfaces['table_des_tables']['itineraires'] = 'itineraires'; 26 $interfaces['table_des_traitements']['LONGUEUR']['itineraires'] = 'floatval(%s)'; 27 27 28 28 return $interfaces; … … 40 40 */ 41 41 function itineraires_declarer_tables_objets_sql($tables) { 42 43 42 $tables['spip_itineraires'] = array( 44 43 'type' => 'itineraire', … … 87 86 ), 88 87 'texte_changer_statut' => 'itineraire:texte_changer_statut_itineraire', 89 90 91 88 ); 92 89 … … 94 91 } 95 92 96 93 /** 94 * Déclarer les tables auxiliaires des itinéraires 95 * 96 * @pipeline declarer_tables_auxiliaires 97 * 98 * @param array $tables_auxiliaires 99 * Description des tables 100 * @return array 101 * Description complétée des tables 102 */ 103 function itineraires_declarer_tables_auxiliaires($tables_auxiliaires){ 104 //-- Table organisations_contacts ------------------------------------- 105 $itineraires_locomotions = array( 106 "id_itineraire" => "bigint(21) not null", 107 "type_locomotion" => "varchar(25) not null default ''", 108 "duree" => "int(11) not null default 0", 109 ); 110 $itineraires_locomotions_key = array( 111 "PRIMARY KEY" => "id_itineraire, type_locomotion", 112 "KEY id_itineraire" => "id_itineraire", 113 "KEY type_locomotion" => "type_locomotion" 114 ); 115 $tables_auxiliaires['spip_itineraires_locomotions'] = 116 array('field' => &$itineraires_locomotions, 'key' => &$itineraires_locomotions_key); 117 118 return $tables_auxiliaires; 119 } 97 120 98 121 ?> -
_plugins_/itineraires/trunk/formulaires/editer_itineraire.php
r76747 r76805 78 78 'label' => _T('itineraire:champ_texte_label'), 79 79 'rows' => 10, 80 ), 81 ), 82 array( 83 'saisie' => 'locomotions_durees', 84 'options' => array( 85 'nom' => 'locomotions_durees', 86 'label' => _T('itineraire:champ_locomotions_durees'), 87 'defaut' => array('actives' => array('pied')), 80 88 ), 81 89 ), … … 198 206 function formulaires_editer_itineraire_charger_dist($id_itineraire='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){ 199 207 $valeurs = formulaires_editer_objet_charger('itineraire',$id_itineraire,'',$lier_trad,$retour,$config_fonc,$row,$hidden); 208 $id_itineraire = intval($id_itineraire); 209 210 // Enlever les 0 superflus 211 $valeurs['longueur'] = floatval($valeurs['longueur']); 200 212 201 213 // Pour les trucs numériques, laisser vide si c'est 0 … … 206 218 } 207 219 208 // Enlever les 0 superflus 209 $valeurs['longueur'] = floatval($valeurs['longueur']); 220 // On ajoute locomotions_durees 221 $valeurs['locomotions_durees'] = array(); 222 // Si c'est une modif on cherche l'existant 223 if ($id_itineraire > 0 224 and $locomotions = sql_allfetsel('*', 'spip_itineraires_locomotions', 'id_itineraire = '.$id_itineraire) 225 and is_array($locomotions) 226 ){ 227 $valeurs['locomotions_durees'] = array('actives'=>array(), 'durees'=>array()); 228 foreach ($locomotions as $locomotion){ 229 $valeurs['locomotions_durees']['actives'][] = $locomotion['type_locomotion']; 230 // Seulement s'il y a une durée 231 if ($duree = $locomotion['duree']){ 232 $h = floor($duree/3600); 233 $m = floor(($duree-$h*3600)/60); 234 if ($h) { $valeurs['locomotions_durees']['durees'][$locomotion['type_locomotion']]['heures'] = $h; } 235 if ($m) { $valeurs['locomotions_durees']['durees'][$locomotion['type_locomotion']]['minutes'] = $m; } 236 } 237 } 238 } 210 239 211 240 // On ajoute l'identifiant dans l'envoi … … 238 267 */ 239 268 function formulaires_editer_itineraire_verifier_dist($id_itineraire='new', $retour='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){ 240 return formulaires_editer_objet_verifier('itineraire',$id_itineraire, array('titre')); 269 $erreurs = formulaires_editer_objet_verifier('itineraire',$id_itineraire, array('titre')); 270 271 if ($locomotions_durees = _request('locomotions_durees')){ 272 // S'il y a au moins une cochée 273 if (!empty($locomotions_durees['actives'])) { 274 $verifier = charger_fonction('verifier', 'inc/'); 275 foreach($locomotions_durees['actives'] as $type_locomotion){ 276 if (!in_array($type_locomotion, array_keys($GLOBALS['itineraires_locomotions']))) { 277 $erreurs['locomotions_durees'] = _T('itineraire:erreur_type_locomotion_inconnu'); 278 } 279 else{ 280 // Si heures ou minutes sont en erreur 281 if ( 282 $erreur = $verifier($locomotions_durees['durees'][$type_locomotion]['heures'], 'entier', array('min'=>0)) 283 or $erreur = $verifier($locomotions_durees['durees'][$type_locomotion]['minutes'], 'entier', array('min'=>0, 'max'=>59)) 284 ){ 285 $erreurs['locomotions_durees'] = $erreur; 286 } 287 } 288 } 289 } 290 } 291 292 return $erreurs; 241 293 } 242 294 … … 268 320 } 269 321 $retours = formulaires_editer_objet_traiter('itineraire',$id_itineraire,'',$lier_trad,$retour,$config_fonc,$row,$hidden); 322 $id_itineraire = intval($retours['id_itineraire']); 323 324 // On traite les locomotions et durées 325 // On supprime tout pour cet itinéraire 326 sql_delete('spip_itineraires_locomotions', 'id_itineraire = '.$id_itineraire); 327 // On ajoute la nouvelle config 328 $locomotions_durees = _request('locomotions_durees'); 329 foreach ($locomotions_durees['actives'] as $type_locomotion){ 330 sql_insertq( 331 'spip_itineraires_locomotions', 332 array( 333 'id_itineraire' => $id_itineraire, 334 'type_locomotion' => $type_locomotion, 335 'duree' => intval($locomotions_durees['durees'][$type_locomotion]['heures'])*3600 + intval($locomotions_durees['durees'][$type_locomotion]['minutes']) * 60, 336 ) 337 ); 338 } 339 270 340 return $retours; 271 341 } -
_plugins_/itineraires/trunk/itineraires_administrations.php
r76719 r76805 25 25 $maj = array(); 26 26 27 $maj['create'] = array(array('maj_tables', array('spip_itineraires' )));27 $maj['create'] = array(array('maj_tables', array('spip_itineraires', 'spip_itineraires_locomotions'))); 28 28 29 29 include_spip('base/upgrade'); … … 42 42 43 43 sql_drop_table("spip_itineraires"); 44 sql_drop_table("spip_itineraires_locomotions"); 44 45 45 46 # Nettoyer les versionnages et forums -
_plugins_/itineraires/trunk/lang/itineraire_fr.php
r76747 r76805 21 21 'champ_difficulte_explication' => 'Entre @min@ et @max@', 22 22 'champ_difficulte_label' => 'Difficulté', 23 'champ_duree_en' => 'en', 24 'champ_duree_heures' => 'heure(s)', 25 'champ_duree_heures_abbr' => 'h', 26 'champ_duree_minutes' => 'minutes(s)', 27 'champ_duree_minutes_abbr' => 'min', 23 28 'champ_handicap_label' => 'Handicap', 24 29 'champ_handicap_label_case' => 'L\'itinéraire est-il accessible aux handicapés ?', 30 'champ_locomotions_durees' => 'Moyens de locomotion et durées', 25 31 'champ_longueur_explication' => 'En kilomètres', 26 32 'champ_longueur_label' => 'Longueur', … … 29 35 'champ_transport_label' => 'Transport', 30 36 'champ_transport_label_case' => 'Existe-t-il un transport autour de cet itinéraire ?', 37 38 // E 39 'erreur_type_locomotion_inconnu' => 'Un moyen de locomotion choisi ne fait pas partie de la liste.', 31 40 32 41 // I … … 37 46 'info_itineraires_auteur' => 'Les itinéraires de cet auteur', 38 47 'info_nb_itineraires' => '@nb@ itinéraires', 48 49 // L 50 'locomotion_canoe' => 'Canoë', 51 'locomotion_cheval' => 'Cheval', 52 'locomotion_pied' => 'Pédestre', 53 'locomotion_velo' => 'Vélo de route', 54 'locomotion_vtt' => 'VTT', 39 55 40 56 // R -
_plugins_/itineraires/trunk/paquet.xml
r76719 r76805 18 18 19 19 <licence>GNU/GPL v3</licence> 20 <necessite nom="saisies" compatibilite="[1.35.0;]" /> 20 <necessite nom="saisies" compatibilite="[1.35.0;]" /> 21 <necessite nom="verifier" compatibilite="[1.0.3;]" /> 22 <necessite nom="yaml" compatibilite="[1.5.1;]" /> 21 23 22 24 <pipeline nom="autoriser" inclure="itineraires_autorisations.php" /> 23 25 24 <pipeline nom="declarer_tables_objets_sql" inclure="base/itineraires.php" /> 25 <pipeline nom="declarer_tables_interfaces" inclure="base/itineraires.php" /> 26 <pipeline nom="declarer_tables_objets_sql" inclure="base/itineraires.php" /> 27 <pipeline nom="declarer_tables_interfaces" inclure="base/itineraires.php" /> 28 <pipeline nom="declarer_tables_auxiliaires" inclure="base/itineraires.php" /> 26 29 <pipeline nom="affiche_milieu" inclure="itineraires_pipelines.php" /> 27 30 <pipeline nom="affiche_auteurs_interventions" inclure="itineraires_pipelines.php" /> -
_plugins_/itineraires/trunk/prive/objets/contenu/itineraire.html
r76747 r76805 13 13 [<div class="champ contenu_longueur[ (#LONGUEUR*|strlen|?{'',vide})]"> 14 14 <label><:itineraire:champ_longueur_label:> : </label> 15 <span dir='#LANG_DIR' class='#EDIT{longueur} longueur'>(#LONGUEUR |floatval) km</span>15 <span dir='#LANG_DIR' class='#EDIT{longueur} longueur'>(#LONGUEUR) km</span> 16 16 </div>] 17 17
Note: See TracChangeset
for help on using the changeset viewer.