ajout infos formulaire envoi

This commit is contained in:
Tykayn 2025-07-07 23:06:04 +02:00 committed by tykayn
parent 44b4f49289
commit 2bcec59281
11 changed files with 211 additions and 61 deletions

View file

@ -316,16 +316,26 @@ class PublicController extends AbstractController
$osm_kind = $request->request->get('osm_kind', 'node');
// Récupérer tous les tags du formulaire
$tags = [];
$request_post = $request->request->all();
$request_post = $request->request->all();
$request_post = $this->motocultrice->map_post_values($request_post);
$request_post = $request_post ?? [];
// Log temporaire pour debug POST
file_put_contents('/tmp/debug_post.txt', print_r($request_post, true));
// Debug visuel immédiat
$excluded_post_fields = [];
foreach ($request_post as $key => $value) {
if (strpos($key, 'commerce_tag_value__') === 0) {
$tagKey = str_replace('commerce_tag_value__', '', $key);
if (!empty($value)) {
$tags[$tagKey] = trim($value);
}
// On ajoute la clé même si la valeur est vide (pour affichage suppression)
$tags[$tagKey] = trim($value);
} else {
$excluded_post_fields[] = $key;
}
}
// Récupérer les tags Overpass avant modification
$currentObjectData = $this->motocultrice->get_osm_object_data($osm_kind, $osm_object_id);
$tags_before_modif = $currentObjectData['tags_converted'] ?? [];
$tags_after_modif = $tags;
// var_dump('POST brut', $_POST);
// var_dump('request->request->all()', $request->request->all());
// var_dump('tags extraits', $tags);
@ -359,9 +369,6 @@ class PublicController extends AbstractController
$newChangesetId = $changesetResponse->getBody()->getContents();
// Récupérer les données actuelles de l'objet
$currentObjectData = $this->motocultrice->get_osm_object_data($osm_kind, $osm_object_id);
// 2. Modifier l'objet avec le nouveau changeset
$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><osm version="0.6"></osm>');
$object = $xml->addChild($osm_kind);
@ -474,6 +481,9 @@ class PublicController extends AbstractController
'maptiler_token' => $_ENV['MAPTILER_TOKEN'],
'hide_filled_inputs' => false,
'excluded_tags_to_render' => $this->motocultrice->excluded_tags_to_render,
'tags_before_modif' => $tags_before_modif ?? null,
'tags_after_modif' => $tags_after_modif ?? null,
'excluded_post_fields' => $excluded_post_fields ?? null,
]);
}

View file

@ -123,22 +123,25 @@ out meta;';
) {
}
/**
* fait le lien entre les tags du formulaire et les tags OSM pour les champs personnalisés
*
* @param [type] $request_post
* @return void
*/
public function map_post_values($request_post) {
$has_ask_angela = false;
$remove_ask_angela = false;
$has_ask_angela = false;
$has_opening_hours = false;
$modified_request_post = [];
foreach ($request_post as $key => $value) {
if (strpos($key, 'custom__ask_angela') === 0 ) {
if($value == 'ask_angela'){
$has_ask_angela = true;
}else{
$remove_ask_angela = true;
}
}
}
if (strpos($key, 'custom__opening_hours') === 0 && $value != '') {
$has_opening_hours = true;
@ -148,10 +151,7 @@ out meta;';
if($has_ask_angela) {
$modified_request_post['commerce_tag_value__harassment_prevention'] = 'ask_angela';
}
if($remove_ask_angela) {
unset($modified_request_post['commerce_tag_value__harassment_prevention']);
}
}
if($has_opening_hours) {
$modified_request_post['commerce_tag_value__opening_hours'] = $request_post['commerce_tag_value__opening_hours'];