2.1. Récupération des services propriétaires
La génération du Guide de Recherche depuis la page web se fait par l'intermédiaire d'appels AJAX, permettant une interaction dynamique avec le serveur sans rechargement de la page. Ces requêtes asynchrones jouent un rôle essentiel dans le processus, en envoyant les données nécessaires au serveur pour la création des documents Word et en gérant les retours pour l'utilisateur.
2.1 Configuration de l'action AJAX
Pour permettre la génération du Guide de Recherche, un action AJAX principale est configurée dans notre thème WordPress :
add_action('wp_ajax_SID_getServicesProprietaires', 'SID_getServicesProprietaires');
2.2 Le Traitement du serveur
Récupération des Services Propriétaires
La fonction SID_getServicesProprietaires
exécute une requête SQL personnalisée pour obtenir une liste des services propriétaires des archives, éventuellement filtrée pour inclure uniquement les archives relevant de la "Transparence 39-45" si spécifié. Cette liste est ensuite renvoyée au client sous forme de JSON pour utilisation dans les étapes suivantes de la génération du guide.
function SID_getServicesProprietaires(){
// Init ------------------------------------------------------------------------
global $wpdb;
// SQL Get service proprietaires -----------------------------------------------
if (isset($_POST['transparence_3945']) && $_POST['transparence_3945'] == 'true') {
$query = "SELECT pm1.meta_value, COUNT(*) as total
FROM {$wpdb->postmeta} pm1
INNER JOIN {$wpdb->postmeta} pm2 ON pm1.post_id = pm2.post_id
WHERE pm1.meta_key = 'service_proprietaire'
AND pm2.meta_key = 'transparence_3945'
AND pm2.meta_value = '1'
GROUP BY pm1.meta_value
ORDER BY
CASE
WHEN pm1.meta_value = '' OR pm1.meta_value IS NULL THEN 1
ELSE 0
END,
pm1.meta_value ASC";
$results = $wpdb->get_results($query);
}
else {
$query = "SELECT meta_value, COUNT(*) as total
FROM {$wpdb->postmeta}
WHERE meta_key = 'service_proprietaire'
GROUP BY meta_value
ORDER BY
CASE
WHEN meta_value = '' OR meta_value IS NULL THEN 1
ELSE 0
END,
meta_value ASC";
$results = $wpdb->get_results($query);
}
// Return ----------------------------------------------------------------------
echo json_encode( $results );
die;
}