// de commande // // // // 1. une requête récupère le nombre de taxon par projet à produire // // 2. Vérification des taxons déjà produits // // 3. fonction de production de carte. // // // // Version 1.00 05/10/2015 - FCBN // //------------------------------------------------------------------------------// // ------------------------------------------------------------------------------ INIT. include "fonctions.inc.php"; include "commun.inc.php"; // ------------------------------------------------------------------------------ VAR. $mode = 'masse'; $flag = 0; // ------------------------------------------------------------------------------ Core /* $req_nb_taxon rassemble les requête de récupération du nombre de taxon par projet */ foreach ($req_nb_taxon as $projet => $requete) { /*récupération de la liste des taxons*/ $table = query_bdd($requete, 1); echo "nombre total de taxons : " . $table[0] . "\n"; /*test si toutes les cartes ont été produites ou non*/ $result_verif = verif($projet, $output); echo "carte pour le projet" . $projet . " : " . $result_verif[1] . "\n"; if ($result_verif[1] < $table[0] and $flag == 0) { $projet_todo = $projet; $flag = 1; } } echo "projet en cours de production : " . $projet_todo . "<BR>"; /*Toute la gestion de la production de la carte est géré dans cette fonction*/ prod_cart($projet_todo, $projection, $mode, $input, $output);
function prod_cart($projet, $projection, $mode, $nb_carte) { /*FONCTION DE PRODUCTION DE CARTE EN MASSE*/ include "_INCLUDE/commun.inc.php"; if (securite($projet) == "ok") { /*création ou test du fichier de log*/ $result_verif = verif($projet, $output); /*Affichage*/ if ($mode == "html") { echo "nb carte produites : " . $result_verif[1] . "<BR>"; } else { echo ""; } if ($mode == "html") { echo "PROJET : " . $projet . "<BR>"; } else { echo ""; } /* $req_liste_taxon récupère la liste de taxon en fonction du projet*/ $query = $req_liste_taxon[$projet] . " " . $result_verif[0]; echo "{$query}<BR>"; $reponse = query_bdd($query, 2); $table = $reponse[0]; $nom = $reponse[1]; /*Construction de l'URL utilisé pour produire la carte*/ /*$URL initialisé dans .sql_config.inc*/ $URL = $URL_qgisserver; $URL .= "{$projet}.out.qgs"; $URL .= $source[$projet] . $layer[$projet]; /*Affichage*/ if ($mode == "html") { $nb_carte_prod = $nb_carte; } else { $nb_carte_prod = count($table); } if (!empty($table[0])) { for ($i = 0; $i < $nb_carte_prod; $i++) { /*Création du nouveau fichier projet avec le taxon à interroger*/ $file = file_get_contents("{$input}/{$projet}.qgs"); $texte = str_replace("100024", $table[$i], $file); file_put_contents("{$input}/{$projet}.out.qgs", $texte); /*Soucis d'encodage*/ $espece = nettoyerChaine($nom[$i]); $espece = utf8_decode($espece); /*Affichage*/ if ($mode == "html") { echo "{$table[$i]}<BR>"; } else { echo "Taxon {$table[$i]} \n "; } if ($mode == "html") { echo "{$URL}<BR>"; } else { echo "{$URL}\n"; } /*Enregistrement de l'image*/ if (file_get_contents($URL)) { $taxprod = "ok"; $img = file_get_contents($URL); file_put_contents("{$output}/{$projet}/" . $espece . "_" . $short[$projet] . "_" . $table[$i] . ".jpg", $img); imagethumb("{$output}/{$projet}/" . $espece . "_" . $short[$projet] . "_" . $table[$i] . ".jpg", "{$output}/{$projet}/" . $espece . "_" . $short[$projet] . "_thumb_" . $table[$i] . ".jpg", 400); } else { $taxprod = "no"; } /*Nettoyage et log*/ unlink("{$input}/{$projet}.out.qgs"); if ($taxprod == "ok") { file_put_contents("{$output}/{$projet}/cartes_taxons_produit_{$projet}.txt", "'{$table[$i]}'\n", FILE_APPEND); } /*activation affichage*/ $buffer = strlen($table[$i]) + 3; flush_buffers($buffer); } } } }