diff --git a/base/gis.php b/base/gis.php index 3e2b194..fb4f956 100644 --- a/base/gis.php +++ b/base/gis.php @@ -1,89 +1,90 @@ - "bigint(21) NOT NULL", - "id_article" => "int(11) NULL NULL", - "id_rubrique" => "int(11) NULL NULL", - "lat" => "float(21) NULL NULL", - "lonx" => "float(21) NULL NULL", - "zoom" => "tinyint(4) NULL NULL", - "pays" => "text NOT NULL DEFAULT ''", - "code_pays" => "varchar(255) NOT NULL DEFAULT ''", - "region" => "text NOT NULL DEFAULT ''", - "ville" => "text NOT NULL DEFAULT ''", - "code_postal" => "varchar(255) NOT NULL DEFAULT ''" - ); - -$spip_gis_key = array( - "PRIMARY KEY" => "id_gis", - "KEY id_article" => "id_article", - "KEY id_rubrique" => "id_rubrique" - ); -$spip_gis_join = array( - "id_article"=>"id_article", - "id_rubrique"=>"id_rubrique", - ); - -$tables_principales['spip_gis'] = array( - 'field' => &$spip_gis, - 'key' => &$spip_gis_key, - 'joint' => &$spip_gis_join - ); -//------------------------------------------------------ -//taboa gis_mots -------------------------------------- -$spip_gis_mots = array( - "id_gis" => "bigint(21) NOT NULL", - "id_mot" => "int(11) NULL NULL", - "lat" => "float(21) NULL NULL", - "lonx" => "float(21) NULL NULL", - "zoom" => "tinyint(4) NULL NULL" - ); - -$spip_gis_mots_key = array( - "PRIMARY KEY" => "id_gis", - "KEY id_mot" => "id_mot" - ); -$spip_gis_mots_join = array( - "id_mot"=>"id_mot" - ); - -$tables_principales['spip_gis_mots'] = array( - 'field' => &$spip_gis_mots, - 'key' => &$spip_gis_mots_key, - 'joint' => &$spip_gis_most_join - ); -//------------------------------------------------------ -//on ajoute les kml ŕ la table spip_types_documents -------------------------------------- -$res = spip_query("SELECT extension FROM spip_types_documents WHERE extension='kml'"); -if (!$row = spip_fetch_array($res)) - spip_query("INSERT INTO `spip_types_documents` ( `id_type` , `titre` , `descriptif` , `extension` , `mime_type` , `inclus` , `upload` , `maj` ) VALUES ('', 'Google Earth Placemark', '', 'kml', 'application/vnd.google-earth.kml+xml', 'non', 'oui', NOW( ));"); - -//-- Relaci—ns ---------------------------------------------------- -global $table_des_tables; -$table_des_tables['gis']='gis'; -$table_des_tables['gis_config']='gis_config'; -$table_des_tables['gis_mots']='gis_mots'; -//-- Jointures ---------------------------------------------------- -//Les jointures sont pas necessaires parce que le champs a utiliser comme criteres sont dejŕ -//dans les tables de GIS -//global $tables_jointures; -//$tables_jointures['spip_articles'][]= 'gis'; -//$tables_jointures['spip_gis'][] = 'articles'; -//$tables_jointures['spip_rubriques'][]= 'gis'; -//$tables_jointures['spip_gis'][] = 'rubriques'; -//$tables_jointures['spip_mots'][]= 'gis_mots'; -//$tables_jointures['spip_gis_mots'][] = 'mots'; + "bigint(21) NOT NULL", + "id_article" => "int(11) NULL NULL", + "id_rubrique" => "int(11) NULL NULL", + "lat" => "float(21) NULL NULL", + "lonx" => "float(21) NULL NULL", + "zoom" => "tinyint(4) NULL NULL", + "pays" => "text NOT NULL DEFAULT ''", + "code_pays" => "varchar(255) NOT NULL DEFAULT ''", + "region" => "text NOT NULL DEFAULT ''", + "ville" => "text NOT NULL DEFAULT ''", + "code_postal" => "varchar(255) NOT NULL DEFAULT ''" + ); + +$spip_gis_key = array( + "PRIMARY KEY" => "id_gis", + "KEY id_article" => "id_article", + "KEY id_rubrique" => "id_rubrique" + ); +$spip_gis_join = array( + "id_article"=>"id_article", + "id_rubrique"=>"id_rubrique", + ); + +$tables_principales['spip_gis'] = array( + 'field' => &$spip_gis, + 'key' => &$spip_gis_key, + 'joint' => &$spip_gis_join + ); +//------------------------------------------------------ +//taboa gis_mots -------------------------------------- +$spip_gis_mots = array( + "id_gis" => "bigint(21) NOT NULL", + "id_mot" => "int(11) NULL NULL", + "lat" => "float(21) NULL NULL", + "lonx" => "float(21) NULL NULL", + "zoom" => "tinyint(4) NULL NULL" + ); + +$spip_gis_mots_key = array( + "PRIMARY KEY" => "id_gis", + "KEY id_mot" => "id_mot" + ); +$spip_gis_mots_join = array( + "id_mot"=>"id_mot" + ); + +$tables_principales['spip_gis_mots'] = array( + 'field' => &$spip_gis_mots, + 'key' => &$spip_gis_mots_key, + 'joint' => &$spip_gis_most_join + ); +//------------------------------------------------------ +//on ajoute les kml ŕ la table spip_types_documents -------------------------------------- +$res = spip_query("SELECT extension FROM spip_types_documents WHERE extension='kml'"); +if (!$row = spip_fetch_array($res)) + spip_query("INSERT INTO `spip_types_documents` ( `id_type` , `titre` , `descriptif` , `extension` , `mime_type` , `inclus` , `upload` , `maj` ) VALUES ('', 'Google Earth Placemark', '', 'kml', 'application/vnd.google-earth.kml+xml', 'non', 'oui', NOW( ));"); + +//-- Relaci—ns ---------------------------------------------------- +global $table_des_tables; +$table_des_tables['gis']='gis'; +$table_des_tables['gis_config']='gis_config'; +$table_des_tables['gis_mots']='gis_mots'; +//-- Jointures ---------------------------------------------------- +//Les jointures sont pas necessaires parce que le champs a utiliser comme criteres sont dejŕ +//dans les tables de GIS +//global $tables_jointures; +//$tables_jointures['spip_articles'][]= 'gis'; +//$tables_jointures['spip_gis'][] = 'articles'; +//$tables_jointures['spip_rubriques'][]= 'gis'; +//$tables_jointures['spip_gis'][] = 'rubriques'; +//$tables_jointures['spip_mots'][]= 'gis_mots'; +//$tables_jointures['spip_gis_mots'][] = 'mots'; ?> \ No newline at end of file diff --git a/base/gis_upgrade.php b/base/gis_upgrade.php index 0446473..bde03ff 100644 --- a/base/gis_upgrade.php +++ b/base/gis_upgrade.php @@ -1,111 +1,112 @@ - + diff --git a/formulaires/article_gis.php b/formulaires/article_gis.php index 2bab3b3..cc0691f 100644 --- a/formulaires/article_gis.php +++ b/formulaires/article_gis.php @@ -1,171 +1,172 @@ -'', - 'texte'=>'', - 'lat'=>'', - 'lonx'=>'', - 'editable'=>true - ); - - // si on a pas de rubrique, on n'edite pas le formulaire ! - if (!$id_rubrique = lire_config('gis/rubrique_cible')){ - $valeurs['editable']=false; - } - - // si l'on vien juste de poster le formlaire et qu'il a ete valide - // on veut pouvoir recommencer a poster un nouvelle photo - // on ne prend du coup pas les anciennes valeurs dans l'environnement - // pour ne pas polluer le nouveau formulaire - if (_request('soumission_gis_enregistre')){ - unset ($valeurs['titre']); - unset ($valeurs['texte']); - unset ($valeurs['lat']); - unset ($valeurs['lonx']); - } - return $valeurs; -} - - -function formulaires_article_gis_verifier_dist(){ - - $erreurs = array(); - $id_article = _request('id_article'); - - if ($id_article AND !_request('document')) - return $erreurs; - - if (!$titre = _request('titre')){ - $erreurs['titre'] = _T('gis:erreur_titre'); - } - - if (!$texte = _request('texte')){ - $erreurs['texte'] = _T('gis:erreur_texte'); - } - - if (!count($erreurs)){ - if ($afficher_texte != 'non') { - // ajout de l'article et de ses coordonnĂ©es - if(!$id_article){ - include_spip('base/abstract_sql'); - include_spip('inc/texte'); - // pour le traitement : - // 1) on demande un nouvel article - // 2) on lui donne un titre et un statut et on y colle le texte - //3) on insère les coordonnĂ©es de l'article - - // 1 - include_spip('action/editer_article'); - $id_rubrique = lire_config('gis/rubrique_cible'); - if (!$id_article = insert_article($id_rubrique)){ - return array(1,_T('gis:erreur_ajout_article')); - } - - // 2 - $titre = _request('titre'); - $statut = lire_config('gis/statut','prop'); - $texte = sql_quote(_request('texte')); - $c = array( - 'titre'=> $titre, - 'statut'=> $statut - ); - include_spip('inc/modifier'); - revision_article($id_article, $c); - instituer_article($id_article, $c); - sql_update('spip_articles', array('texte' => $texte), 'id_article=' . sql_quote($id_article)); - - - //3 - $lat = _request('lat'); - $lonx = _request('lonx'); - sql_insertq("spip_gis", array("id_article" => $id_article , "lat" => $lat, "lonx" => $lonx)); - } - // ajout des documents - if(_request('document')) { - // compatibilite php < 4.1 - if (!$_FILES) $_FILES = $GLOBALS['HTTP_POST_FILES']; - - // recuperation des variables - $fichier = $_FILES['doc']['name']; - $size = $_FILES['doc']['size']; - $tmp = $_FILES['doc']['tmp_name']; - $type = $_FILES['doc']['type']; - $error = $_FILES['doc']['error']; - $doc = &$_FILES['doc']; - - // verification si upload OK - if( !is_uploaded_file($tmp) ) { - $erreurs['document'] = _T('gis:erreur_upload'); - } - else { - // on rĂ©cupère l'extension du document envoyĂ© - include_spip('base/abstract_sql'); - include_spip('inc/ajouter_documents'); - list($extension,$fichier) = fixer_extension_document($doc); - $acceptes = array_map('trim', explode(',',lire_config('gis/formats_documents','jpg,png,gif'))); - // on vĂ©rifie que l'extension du document est autorisĂ©e - if (!in_array($extension, $acceptes)) { - if (!$formats = join(', ',$acceptes)) - $formats = _L('aucun'); - $erreurs['document'] = _T('gis:erreur_formats_acceptes',array('formats' => $formats)); - } - else { - // ajout du document - $ajouter_documents = charger_fonction('ajouter_documents','inc'); - if(!$ajouter_documents($tmp, $fichier, "article", $id_article, 'document', $id_document=0, $docs_actifs=array())) - $erreurs['document'] = _T('gis:erreur_copie_impossible'); - } - } - // supprimer des documents ? - if (is_array(_request('supprimer'))) - foreach (_request('supprimer') as $supprimer) { - if ($supprimer = intval($supprimer)) { - include_spip('inc/autoriser'); - $supprimer_document = charger_fonction('supprimer_document','action'); - $supprimer_document($supprimer); - $erreurs['document'] = _T('gis:document_supprime'); - } - } - } - $form_doc = inclure_formulaire_doc_gis($id_article); - $erreurs['form_doc'] = $form_doc; - } - } - - return $erreurs; -} - - -function formulaires_article_gis_traiter_dist(){ - - // signaler que l'on vient de soumettre le formulaire - // pour que charger ne remette pas les anciennes valeurs - // puisqu'on propose sa reedition dans la foulee - - set_request('soumission_gis_enregistre',true); - - return array('editable'=>true,'message_ok'=>_T('gis:ok_formulaire_soumis')); - -} - -function inclure_formulaire_doc_gis($id_article) -{ - $contexte = array(); - - $contexte = array_merge( - $contexte, - array( - 'id_article' => $id_article - ) - ); - return inclure_balise_dynamique(array('formulaires/documents_gis',0,$contexte),false); -} - +'', + 'texte'=>'', + 'lat'=>'', + 'lonx'=>'', + 'editable'=>true + ); + + // si on a pas de rubrique, on n'edite pas le formulaire ! + if (!$id_rubrique = lire_config('gis/rubrique_cible')){ + $valeurs['editable']=false; + } + + // si l'on vien juste de poster le formlaire et qu'il a ete valide + // on veut pouvoir recommencer a poster un nouvelle photo + // on ne prend du coup pas les anciennes valeurs dans l'environnement + // pour ne pas polluer le nouveau formulaire + if (_request('soumission_gis_enregistre')){ + unset ($valeurs['titre']); + unset ($valeurs['texte']); + unset ($valeurs['lat']); + unset ($valeurs['lonx']); + } + return $valeurs; +} + + +function formulaires_article_gis_verifier_dist(){ + + $erreurs = array(); + $id_article = _request('id_article'); + + if ($id_article AND !_request('document')) + return $erreurs; + + if (!$titre = _request('titre')){ + $erreurs['titre'] = _T('gis:erreur_titre'); + } + + if (!$texte = _request('texte')){ + $erreurs['texte'] = _T('gis:erreur_texte'); + } + + if (!count($erreurs)){ + if ($afficher_texte != 'non') { + // ajout de l'article et de ses coordonnĂ©es + if(!$id_article){ + include_spip('base/abstract_sql'); + include_spip('inc/texte'); + // pour le traitement : + // 1) on demande un nouvel article + // 2) on lui donne un titre et un statut et on y colle le texte + //3) on insère les coordonnĂ©es de l'article + + // 1 + include_spip('action/editer_article'); + $id_rubrique = lire_config('gis/rubrique_cible'); + if (!$id_article = insert_article($id_rubrique)){ + return array(1,_T('gis:erreur_ajout_article')); + } + + // 2 + $titre = _request('titre'); + $statut = lire_config('gis/statut','prop'); + $texte = sql_quote(_request('texte')); + $c = array( + 'titre'=> $titre, + 'statut'=> $statut + ); + include_spip('inc/modifier'); + revision_article($id_article, $c); + instituer_article($id_article, $c); + sql_update('spip_articles', array('texte' => $texte), 'id_article=' . sql_quote($id_article)); + + + //3 + $lat = _request('lat'); + $lonx = _request('lonx'); + sql_insertq("spip_gis", array("id_article" => $id_article , "lat" => $lat, "lonx" => $lonx)); + } + // ajout des documents + if(_request('document')) { + // compatibilite php < 4.1 + if (!$_FILES) $_FILES = $GLOBALS['HTTP_POST_FILES']; + + // recuperation des variables + $fichier = $_FILES['doc']['name']; + $size = $_FILES['doc']['size']; + $tmp = $_FILES['doc']['tmp_name']; + $type = $_FILES['doc']['type']; + $error = $_FILES['doc']['error']; + $doc = &$_FILES['doc']; + + // verification si upload OK + if( !is_uploaded_file($tmp) ) { + $erreurs['document'] = _T('gis:erreur_upload'); + } + else { + // on rĂ©cupère l'extension du document envoyĂ© + include_spip('base/abstract_sql'); + include_spip('inc/ajouter_documents'); + list($extension,$fichier) = fixer_extension_document($doc); + $acceptes = array_map('trim', explode(',',lire_config('gis/formats_documents','jpg,png,gif'))); + // on vĂ©rifie que l'extension du document est autorisĂ©e + if (!in_array($extension, $acceptes)) { + if (!$formats = join(', ',$acceptes)) + $formats = _L('aucun'); + $erreurs['document'] = _T('gis:erreur_formats_acceptes',array('formats' => $formats)); + } + else { + // ajout du document + $ajouter_documents = charger_fonction('ajouter_documents','inc'); + if(!$ajouter_documents($tmp, $fichier, "article", $id_article, 'document', $id_document=0, $docs_actifs=array())) + $erreurs['document'] = _T('gis:erreur_copie_impossible'); + } + } + // supprimer des documents ? + if (is_array(_request('supprimer'))) + foreach (_request('supprimer') as $supprimer) { + if ($supprimer = intval($supprimer)) { + include_spip('inc/autoriser'); + $supprimer_document = charger_fonction('supprimer_document','action'); + $supprimer_document($supprimer); + $erreurs['document'] = _T('gis:document_supprime'); + } + } + } + $form_doc = inclure_formulaire_doc_gis($id_article); + $erreurs['form_doc'] = $form_doc; + } + } + + return $erreurs; +} + + +function formulaires_article_gis_traiter_dist(){ + + // signaler que l'on vient de soumettre le formulaire + // pour que charger ne remette pas les anciennes valeurs + // puisqu'on propose sa reedition dans la foulee + + set_request('soumission_gis_enregistre',true); + + return array('editable'=>true,'message_ok'=>_T('gis:ok_formulaire_soumis')); + +} + +function inclure_formulaire_doc_gis($id_article) +{ + $contexte = array(); + + $contexte = array_merge( + $contexte, + array( + 'id_article' => $id_article + ) + ); + return inclure_balise_dynamique(array('formulaires/documents_gis',0,$contexte),false); +} + ?> \ No newline at end of file diff --git a/formulaires/editer_gis.php b/formulaires/editer_gis.php index c4ddd29..58756c9 100644 --- a/formulaires/editer_gis.php +++ b/formulaires/editer_gis.php @@ -1,82 +1,83 @@ - '', - 'lonx'=> '', - 'zoom'=> '', - 'recherche'=> $recherche, - 'editable'=>true - ); - - $row = sql_fetsel("lat,lonx,zoom", "spip_gis", "id_article=$id_article"); - if ($row) { - $valeurs['lat'] = $row['lat']; - $valeurs['lonx'] = $row['lonx']; - $valeurs['zoom'] = $row['zoom']; - }else{ - $api_carte = lire_config('gis/api_carte'); - $valeurs['lat'] = lire_config($api_carte.'/latitude'); - $valeurs['lonx'] = lire_config($api_carte.'/longitude'); - $valeurs['zoom'] = lire_config($api_carte.'/zoom'); - - } - - return $valeurs; -} - - -function formulaires_editer_gis_verifier_dist($id_article, $recherche='', $retour=''){ - - $erreurs = array(); - - return $erreurs; -} - - -function formulaires_editer_gis_traiter_dist($id_article, $recherche='', $retour=''){ - $res = array('editable'=>' '); - - // recuperation des donnees - $lat = _request('lat'); - $lonx = _request('lonx'); - $zoom = _request('zoom'); - - include_spip('base/abstract_sql'); - - $c = array( - "id_article" => $id_article , - "lat" => $lat, - "lonx" => $lonx, - "zoom" => $zoom - ); - - if(lire_config('gis/geocoding') == 'oui'){ - $geocoding = array( - "pays" => _request('pays'), - "code_pays" => _request('code_pays'), - "region" => _request('region'), - "ville" => _request('ville'), - "code_postal" => _request('code_postal') - ); - $c = array_merge($c,$geocoding); - } - - // mise a jour ou creation ? - if ($id_gis = sql_getfetsel("id_gis", "spip_gis", "id_article=$id_article")) { - sql_updateq("spip_gis", $c, "id_gis=$id_gis"); - $res['message_ok'] = _T('gis:coord_maj'); - }else{ - sql_insertq("spip_gis", $c); - $res['message_ok'] = _T('gis:coord_enregistre'); - } - if ($retour){ - include_spip('inc/headers'); - $res['redirect'] = $retour; - } - - return $res; -} - + '', + 'lonx'=> '', + 'zoom'=> '', + 'recherche'=> $recherche, + 'editable'=>true + ); + + $row = sql_fetsel("lat,lonx,zoom", "spip_gis", "id_article=$id_article"); + if ($row) { + $valeurs['lat'] = $row['lat']; + $valeurs['lonx'] = $row['lonx']; + $valeurs['zoom'] = $row['zoom']; + }else{ + $api_carte = lire_config('gis/api_carte'); + $valeurs['lat'] = lire_config($api_carte.'/latitude'); + $valeurs['lonx'] = lire_config($api_carte.'/longitude'); + $valeurs['zoom'] = lire_config($api_carte.'/zoom'); + + } + + return $valeurs; +} + + +function formulaires_editer_gis_verifier_dist($id_article, $recherche='', $retour=''){ + + $erreurs = array(); + + return $erreurs; +} + + +function formulaires_editer_gis_traiter_dist($id_article, $recherche='', $retour=''){ + $res = array('editable'=>' '); + + // recuperation des donnees + $lat = _request('lat'); + $lonx = _request('lonx'); + $zoom = _request('zoom'); + + include_spip('base/abstract_sql'); + + $c = array( + "id_article" => $id_article , + "lat" => $lat, + "lonx" => $lonx, + "zoom" => $zoom + ); + + if(lire_config('gis/geocoding') == 'oui'){ + $geocoding = array( + "pays" => _request('pays'), + "code_pays" => _request('code_pays'), + "region" => _request('region'), + "ville" => _request('ville'), + "code_postal" => _request('code_postal') + ); + $c = array_merge($c,$geocoding); + } + + // mise a jour ou creation ? + if ($id_gis = sql_getfetsel("id_gis", "spip_gis", "id_article=$id_article")) { + sql_updateq("spip_gis", $c, "id_gis=$id_gis"); + $res['message_ok'] = _T('gis:coord_maj'); + }else{ + sql_insertq("spip_gis", $c); + $res['message_ok'] = _T('gis:coord_enregistre'); + } + if ($retour){ + include_spip('inc/headers'); + $res['redirect'] = $retour; + } + + return $res; +} + ?> \ No newline at end of file diff --git a/gis_options.php b/gis_options.php index 624b039..6fe3e95 100755 --- a/gis_options.php +++ b/gis_options.php @@ -1,14 +1,15 @@ - \ No newline at end of file diff --git a/gis_pipeline.php b/gis_pipeline.php index 437f75f..f21b7a4 100644 --- a/gis_pipeline.php +++ b/gis_pipeline.php @@ -1,81 +1,82 @@ -'; - } - return substr_replace($flux, $incHead, strpos($flux, ''), 0); - } else { - return $flux; - } -} +'; + } + return substr_replace($flux, $incHead, strpos($flux, ''), 0); + } else { + return $flux; + } +} ?> \ No newline at end of file diff --git a/inc/cambiar_coordenadas.php b/inc/cambiar_coordenadas.php index 9013182..e0f93ec 100644 --- a/inc/cambiar_coordenadas.php +++ b/inc/cambiar_coordenadas.php @@ -1,7 +1,8 @@ - \ No newline at end of file diff --git a/inc/parte_privada.php b/inc/parte_privada.php index 006f6f3..1e5a652 100644 --- a/inc/parte_privada.php +++ b/inc/parte_privada.php @@ -1,224 +1,225 @@ -'; - $mapa .= $gis_append_view_map('viewMap',$glat,$glonx,$zoom,array(array('lonx'=>$glonx,'lat'=>$glat)),$gicon); - } else { - $mapa = '