Import des mesures


'; echo $out; return true; } //Récupération et traitement du fichier HTML function import_posts($url) { //on inclut le DOM Parser include_once('simple_html_dom.php'); //et on récupère le dOM du document $dom = file_get_html($url); //Structure : div globale = .panel-container //puis pour chaque année une div //puis div.news-wrap // p.news-date // h2.news-title // p.lead-in !!exclure le a !! // p.led-in a >> choper le href et rajouter http:://erytech.com/ au début // Structure : en deux pages //Page 1 : catégorie globale, sous catégorie (deux tags à stocker) et URL // Page 2 à partir de l'URL : titre de la mesure, ID de l'ancre à ajouter à l'url, premier paragraphe $i = 0; $errors = ""; $nb_err = 0; // On récupère la famille globale $family = $dom->find("h1.elementor-heading-title", 0)->plaintext; foreach ($dom->find("div.jet-listing-grid__item") as $main){ // On récupère le titre de la grande catégorie $cat = $main->find("section", 0); $cat_title = $cat->find('div.jet-listing-dynamic-field__content', 0)->plaintext; // puis le nom et le lien de la sous-cat $ss_cat = $main->find("section", 1); $ss_cat_title = $ss_cat->find("a.jet-listing-dynamic-link__link", 0)->plaintext; $link = $ss_cat->find("a.jet-listing-dynamic-link__link", 0)->href; sleep(5); //on va chercher les mesures maintenant $dom2 = file_get_html($link); foreach ($dom2->find("div.elementor-accordion div.elementor-accordion-item") as $measure) { $measure_title = preg_replace("/^[0-99]\. /", "", $measure->find("a.elementor-accordion-title", 0)->plaintext); $measure_link = $link . "#" . $measure->find("div.elementor-tab-title", 0)->id; $measure_desc = $measure->find("div.elementor-tab-content p", 0)->plaintext . "..."; // On a tout, on peut créer la mesure en bdd! $id_post = wp_insert_post([ 'post_title' => $measure_title, 'post_excerpt' => $measure_desc, 'post_status' => 'publish', 'tags_input' => [$family, $cat_title, $ss_cat_title], 'post_author' => 2 ], true); if ($id_post != 0) { update_field("proposition-url", $measure_link, $id_post); $i++; } else { $nb_err++; $errors .= "
  • $measure_title
  • "; } } } /*foreach ($dom->find('div.news-wrap') as $article) { //On récupère les données pour chaque article $title = $article->find('h2.news-title', 0)->plaintext; $date = $article->first_child()->plaintext; $content = $article->find('p.lead-in', 0) ?? $article->find('p.news-body', 0) ?? " "; $pdf = $article->find('a.sec-01-btn', 0); //Traitement de la date pour la mettre au bon format $date_ok = false; //définition deséléments à remplacer dans la date $month = ["1", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; $mois = ["/1er/", "/Janvier/i", "/Février/i", "/Mars/i", "/Avril/i", "/Mai/i", "/Juin/i", "/Juillet/i", "/Ao[û|u]t/i", "/Septembre/i", "/Octobre/i", "/Novembre/i", "/Décembre/i"]; // C'est parti ! $date = preg_replace($mois,$month,$date); $date = explode(" ", $date); $date = strtotime("$date[0] $date[1] $date[2]"); if (date('Y', $date) > '2010') { $date_ok = true; //pis on la transforme $date = date("Y-m-d H:i:s", $date); } //Nettoyage de la section content pour virer le lien et le saut de ligne if ($content != " ") { if ($content->find('a', 0)) { $content->find('a', 0)->outertext = ""; } if ($content->find('br', -1)) { $content->find('br', -1)->outertext = ""; } } $content = addslashes($content); //Récupération du fichier PDF, ajout en mediathèque et génération du lien //on récupère le nom du fichier if(isset($pdf->href)) { $pdf_name = explode("/", $pdf->href); $pdf_name = end($pdf_name); //on récupère l'url complète du fichier $pdf_url = "http://erytech.com/" . str_replace(["../", "./"], "", $pdf->href); //et on copie le distant sur le serveur $upload_dir = wp_upload_dir(); $pdf_local_path = $upload_dir['basedir'] . "/pdf/" . $pdf_name; // on récupère le retour dans une fonction pour vérifier que tout est ok $pdf_ok = copy($pdf_url, $pdf_local_path); } //Ajout de l'article ! if($pdf_ok && $date_ok ){ $id_post = wp_insert_post([ 'post_date' => $date, 'post_title' => $title, 'post_content' => $content, 'meta_input' => ["_url_pdf" => substr($pdf_local_path, 39)], 'post_status' => 'publish', // ajout de la catégorie 'post_category' => ['16'], ], true); if ($id_post != 0) { //définition de la langue pll_set_post_language($id_post, 'en'); $i++; } else { $nb_err++; $errors .= "
  • $date : $title
  • "; } } // Sinon on recense l'erreur else { $nb_err++; $errors .= "
  • $date : $title
  • "; } }*/ // Affichage du récap' echo "$i mesure(s) importé(s)
    $nb_err erreurs d'import :
    "; }