* * @folder /home/newsite-lepage-vivaces.com/CRON/ * @since 1.0 * @param db adodb object database * 0 champ : 422Conditionnement exemple : AGAPAFG8, AGAPAFC2, AGAPAFC3. 1 champ : Conditionnement. 2 champs : DISPONIBLE, EPUISE et INACTIF DISPONIBLE : plante avec des stocks dispo>0 (sauf lieu fournisseur) ou plantes avec des stocks <0 && stock réservé =0 && Statut =’’ (pour Laurent). EPUISE : Plante avec le statut EPUISE et NEGOCE. INACTIF : plante avec le statut INACTIF. 3 champs : Id Aquila. * * *--------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------- *--------------------------------------------------------------------------------------------------------------- */ require_once ('/home/ubuntu/pepiniere-bretagne.fr/ini.php'); // Database access functions ini_set('display_errors', 1); ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1'); error_reporting(E_ERROR); define('XMLVERBOSE', 2); set_time_limit(0); set_time_limit(-1); $basename = 'web-abelia.xml'; $basename = 'test.xml'; $log = ''; $xmlstr = file_get_contents(REPIMPORT . $basename); $jsonname = 'web-abelia.json'; $jsonname = 'test.json'; libxml_use_internal_errors(true); $whitelist = array('id', 'tarif_id', 'tva_id', 'libelle1_variete', 'libelle2_variete', 'Nom_vermaculaire_1', 'Nom_vermaculaire_2', 'Rusticite', 'Couleur_fleur', 'Famille_botanique', 'Epoque_floraison', 'Epoque_maturite_fruit', 'Type_fruitier', 'variete_memo_texte', 'variete_texte', 'genre', 'espece', 'variete', 'code_famille', 'Exposition1', 'Exposition2', 'Exposition3', 'Exposition4', 'Exposition_solaire', 'Flashcode', 'Type_feuillage', 'Libre', 'Nature_sol', 'Maritime_vent', 'Melifere_odorant_couvre_sol', 'Hauteur_Mini', 'Hauteur_Maxi', 'Largeur_Mini', 'Largeur_Maxi', 'libelle_conditionnement', 'poids_conditionnement', 'libelle_taille', 'libelle1_article', 'libelle2_article', 'prix_base_article', 'unite_vente', 'poids_article', 'stk_dispo', 'nouveaute', 'libelle_famille', 'libelle_sous_famille', 'libelle_forme', 'code_variete', 'code_conditionnement', 'code_taille', 'code_totalisateur', 'mis_en_avant', 'famille_variete', 'code_regroupement', 'Descriptif_article', 'Texte_Genre', 'Texte_Espece', 'Texte_Entretien', 'Vendabilite', 'Prix_Vente_TTC', 'Stock_disponible', 'date_Maj_Variete', 'date_Maj_Article', 'Date_Dernier_Mvt_Stock', 'Images', 'Statut_Web'); $blacklist = array('date', 'colonne52', 'colonne53', 'colonne54', 'colonne55', 'colonne56', 'colonne57', 'colonne58', 'colonne59', 'colonne60', 'colonne61', 'colonne62', 'colonne63', 'colonne64', 'colonne65'); $whiteliste_collection = array('VIV', 'ANN', 'ZAQ', 'AR', 'ARB', 'BAM', 'ZBR', 'ZBU', 'CVI', 'DIV', 'ZFO', 'FRU', 'ZGR', 'GRI', 'HOR', 'LIV', 'ZMA', 'ZOF', 'ZOM', 'OUT', 'ENG', 'DIV', 'GAZ', 'PAI', 'PRO', 'TER', 'PAL', 'LEG', 'SEC', 'ZRE', 'ZZZ', 'ROT', 'ROG', 'ROB', 'CON', 'TOP'); $delais_cron = 30; $datecompare = date('Ymd', strtotime(date('Ymd'). ' - '.$delais_cron.' days')); $_SESSION['blacklist_produit'] = array(14529, 14605, 14604, 12084, 5641, 5640, 14762, 6085, 9915); $_SESSION['liste_ref_conditionnement'] = array(); $_SESSION['liste_ref_tarif'] = array(); $_SESSION['liste_ref_couleurs'] = array(); $_SESSION['liste_ref_couleurs_feuille'] = array(); $_SESSION['liste_ARTICLE'] = array(); $_SESSION['liste_ARTICLE_EXISTER_CONDITIONNEMENT'] = array(); define('XMLVERBOSE',2); /** *ETAPE 1 *Lecture, conversion et enregistrement du fichier XML au format Json *du fichier XML au format Json */ if ($dh = opendir(REPIMPORT)) { while (($file = readdir($dh)) !== false) { //$log .= $basename.'--->'.$file.'
'; if ($file == $basename) { $timestamp_debut = microtime(true); $XML = simplexml_load_string($xmlstr, "SimpleXMLElement", LIBXML_NOCDATA); // $xml = explode("\n", $xmlstr); if ($XML === false) { $errors = libxml_get_errors(); foreach ($errors as $error) { $log .= display_xml_error($error, $xml); $log .= '
'; } libxml_clear_errors(); } $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= '
************************************************************************************************************************************************
'; $log .= 'traitement simplexml_load_string de '. $basename.' - '. $difference_ms .'
'; $log .= '
************************************************************************************************************************************************
'; //print_r($XML); $json = json_encode($XML, JSON_INVALID_UTF8_SUBSTITUTE); $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= '
************************************************************************************************************************************************
'; $log .= 'traitement json_encode de '.$jsonname.' - '. $difference_ms .'
'; $log .= '
************************************************************************************************************************************************
'; $resultat = file_put_contents(REPIMPORT.$jsonname, $json); // Vérifiez si l'écriture a réussi if ($resultat !== false) { $log .= 'Le fichier JSON a été enregistré avec succès.
'; } else { $log .= 'Une erreur s\'est produite lors de l\'enregistrement du fichier JSON.
'; } $My_array = json_decode($json, TRUE); $timestamp_fin = microtime(true); $difference_ms = $timestamp_fin - $timestamp_debut; $log .= '
************************************************************************************************************************************************
'; $log .= 'traitement json_decode '. $difference_ms .'
'; $log .= '
************************************************************************************************************************************************
'; } } } //print_r($My_array); /** *ETAPE 2 *test des variables en entrée *pour vérifier les contenus récupérés * formatage des données */ foreach ($My_array['produits']['produit'] as $produit) { // On prend chaque noeud enfant séparément. if ($produit['date_Maj_Article'] <= 0) { $produit['date_Maj_Article'] = 20200101; } if ($produit['date_Maj_Variete'] <= 0) { $produit['date_Maj_Variete'] = 20200101; } if ($produit['Date_Dernier_Mvt_Stock'] <= 0) { $produit['Date_Dernier_Mvt_Stock'] = 20200101; } // si l'article n'est pas blacklisté et que son code famille est géré if (!in_array($produit['id'], $_SESSION['blacklist_produit']) && in_array($produit['code_famille'], $whiteliste_collection)) { if (1 == 1 || (int)$date_Maj_Article > (int)$datecompare || (int)$date_Maj_Variete > (int)$datecompare || (int)$Date_Dernier_Mvt_Stock > (int)$datecompare) { $log .= "###".$produit['id'].' '.$produit['libelle1_article']."
"; $log .= Affiche_Valeur($produit, 0, $blacklist); /** * formatage de la collection conditionnements et des tarifs puis mise à jour * */ $log .= formatage_liste_ref_conditionnement($produit); $log .= formatage_liste_ref_tarif($produit); /** * formatage de la collection des couleurs et mise à jour * */ $log .= formatage_liste_ref_couleurs($produit); /** * formatage de la collection des couleurs de feuillage et mise à jour * */ //$log .= formatage_liste_ref_couleurs_feuille($produit); $log .= formatage_liste_ARTICLE($produit); } } } /** *ETAPE 3 *enregistrement des entrées recuperees a partir du fichier json *dans la base de donnees */ $log .= existe_en_base_ARTICLES($db); $log .= insert_update_ARTICLES($db); file_put_contents(REPIMPORT."Import_logs.html", $log); echo $log; //print_r($_SESSION['blacklist_produit']); //echo '
'; //print_r($_SESSION['liste_ref_conditionnement']); //echo '
'; //print_r($_SESSION['liste_ref_tarif']); //echo '
'; //print_r($_SESSION['liste_ref_couleurs']); /** * FUNCTION * */ function insert_update_ARTICLES($db) { foreach ($_SESSION['liste_ARTICLE'] as $ARTICLE) { $log .= '########################################################
'; $log .= 'INSERT UPDATE EN BASE
'; $log .= '########################################################
'; if ($ARTICLE['BE_A_SURCHARGE'] == 1) { $log .= $ARTICLE['CHAR_A_REFERENCE'].' '.$ARTICLE['ARTICLE_EXIST'].' surchargé... abandon
'; } else if ($ARTICLE['ARTICLE_EXIST'] == 1) { $log .= dl_update_ARTICLE($db, $ARTICLE); } else { $log .= dl_insert_ARTICLE($db, $ARTICLE); } } return $log; } function br2nl($foo) { return preg_replace("/\/i", "\n", $foo); } function gl_generation_ARTICLE($ARTICLE) { //génération de l'article "au propre" $ARTICLE_FORMATE = gl_generation_ARTICLE($ARTICLE); //////////////////////////////////////////////////////////////////////////////////////////// // TABLE ARTICLE //////////////////////////////////////////////////////////////////////////////////////////// $ARTICLE_FORMATE['ID_ARTICLE'] = '0'; // clé primaire de la table ARTICLE $ARTICLE_FORMATE['FKID_REF_TYPE_ARTICLE'] = '1'; // clé étrangere table REF_TYPE_ARTICLE pour classement rapide $ARTICLE_FORMATE['CHAR_A_TITRE'] = $ARTICLE['libelle1_article']; // titre de l'article (optionnel prioritaire sur le nom recherche) $ARTICLE['libelle1_variete']. $ARTICLE_FORMATE['CHAR_A_SOUSTITRE'] = $ARTICLE['libelle2_article'];;// sous-titre de l'article (optionnel prioritaire sur les noms de recherche secondaire) $ARTICLE_FORMATE['CHAR_A_REFERENCE'] = $ARTICLE['code_variete']; // reference de l'article $ARTICLE_FORMATE['BE_A_NEW'] = (int)$ARTICLE['nouveaute']; // l'article est une nouveauté(0=indéfini, 1=oui, 2=non) //$ARTICLE_FORMATE['TEXT_A_DESCRIPTIF']=$ARTICLE['Descriptif_article'];// descriptif de l'article TEXT_A_METATITLE $ARTICLE_FORMATE['TEXT_A_DESCRIPTIF'] = $ARTICLE['variete_texte']; // descriptif de l'article TEXT_A_METATITLE //$ARTICLE_FORMATE['TEXT_A_DESCRIPTIF']=br2nl(($ARTICLE_FORMATE['TEXT_A_DESCRIPTIF'])); $ARTICLE_FORMATE['TEXT_A_METATITLE'] = ''; // $ARTICLE_FORMATE['TEXT_A_METATITLEVENTE'] = ''; //$ARTICLE['Texte_Espece'];// $ARTICLE_FORMATE['TEXT_A_METADESC'] = $ARTICLE['Texte_Genre']; // Texte_Genre //$ARTICLE_FORMATE['TEXT_A_METADESC']=br2nl(($ARTICLE_FORMATE['TEXT_A_METADESC'])); //$ARTICLE_FORMATE['TEXT_A_METADESCVENTE']=$ARTICLE['Texte_Genre'];// //$ARTICLE_FORMATE['TEXT_A_METADESCVENTE']=convert_quotes($ARTICLE_FORMATE['TEXT_A_METADESCVENTE']); $ARTICLE_FORMATE['BE_A_TV'] = '0'; // vu a la télévision (0=indéfini, 1=oui, 2=non) $ARTICLE_FORMATE['CHAR_P_LINKTV'] = ''; // vu a la télévision - url du replay $ARTICLE_FORMATE['CHAR_A_PINTEREST'] = ''; // lien pinterest d'association $ARTICLE_FORMATE['CHAR_A_FACEBOOK'] = ''; // url facebook spécifique $ARTICLE_FORMATE['CHAR_A_YOUTUBE'] = ''; // url youtube spécifique $ARTICLE_FORMATE['BE_A_UNE'] = '0'; // l'article est en première page (0=indéfini, 1=oui, 2=non) $ARTICLE_FORMATE['TEXT_A_UNE'] = ''; // Texte spécifique à la une $ARTICLE_FORMATE['VAL_A_HAUTEUR'] = '0'; // dimension de l'article - hauteur $ARTICLE_FORMATE['VAL_A_LARGEUR'] = '0'; // dimension de l'article - largeur $ARTICLE_FORMATE['VAL_A_PROFONDEUR'] = '0'; // dimension de l'article - profondeur $ARTICLE_FORMATE['BE_A_COMPOSE'] = '0'; // est un article compose $ARTICLE_FORMATE['BE_A_ACTIVE'] = '0'; // l'article est ACTIVE (0=indéfini, 1=oui, 2=non) $ARTICLE_FORMATE['BE_A_DELETE'] = '0'; // l'article a été supprimé (suppression virtuelle 0 indéfini, 1 oui 2 non) $ARTICLE_FORMATE['DATET_A_CREATE'] = date('Y-m-d H:i:s'); // date de création de de l'article $ARTICLE_FORMATE['DATET_A_LASTMODIF'] = date('Y-m-d H:i:s'); // date de la dernière modification de l'article OLD_ID ancienne ID base $ARTICLE_FORMATE['CHAR_A_COMPLEMENTAIRE1'] = $ARTICLE['Nom_vermaculaire_1']; // nom complémentaire article 1 $ARTICLE_FORMATE['CHAR_A_COMPLEMENTAIRE2'] = $ARTICLE['Nom_vermaculaire_2']; // nom complémentaire article 2 $ARTICLE_FORMATE['CHAR_A_COMPLEMENTAIRE3'] = stripaccents($ARTICLE['Nom_vermaculaire_1']); // nom complémentaire article 3 $ARTICLE_FORMATE['CHAR_A_COMPLEMENTAIRE4'] = stripaccents($ARTICLE['Nom_vermaculaire_2']); // nom complémentaire article 4 $ARTICLE_FORMATE['CHAR_A_COMPLEMENTAIRE5'] = ''; // nom complémentaire article 5 $ARTICLE_FORMATE['CHAR_A_COMPLEMENTAIRE6'] = ''; // nom complémentaire article 6 $ARTICLE_FORMATE['CHAR_A_COMPLEMENTAIRE7'] = ''; // nom complémentaire article 7 $ARTICLE_FORMATE['CHAR_A_COMPLEMENTAIRE8'] = ''; // nom complémentaire article 8 $ARTICLE_FORMATE['CHAR_A_COMPLEMENTAIRE9'] = ''; // nom complémentaire article 9 $ARTICLE_FORMATE['CHAR_A_COMPLEMENTAIRE10'] = ''; // nom complémentaire article 10 //////////////////////////////////////////////////////////////////////////////////////////// // TABLE PLANTE //////////////////////////////////////////////////////////////////////////////////////////// $ARTICLE_FORMATE['ID_PLANTE'] = '0'; // clé primaire heritee table PLANTE identique $ARTICLE_FORMATE['PKFKID_ARTICLE'] = ''; // cle étrangère heritee table ARTICLE identique ID_PLANTE $ARTICLE_FORMATE['FKID_REF_OBTENTEUR'] = '0'; // cle étrangère table REF_OBTENTEUR $ARTICLE_FORMATE['FKID_FAMILLE'] = '0'; // cle étrangère genre associe $ARTICLE_FORMATE['FKID_REF_FORME'] = '0'; // $ARTICLE_FORMATE['CHAR_P_FAMILLE'] = $ARTICLE['Famille_botanique'];;// $ARTICLE_FORMATE['CHAR_P_GENRE'] = $ARTICLE['libelle1_variete']; // espece botanique $ARTICLE_FORMATE['CHAR_P_ESPECE'] = ''; // Espèce botanique $ARTICLE_FORMATE['CHAR_P_SESPECE'] = ''; // Sous espèce botanique $ARTICLE_FORMATE['CHAR_P_GROUPE'] = ''; // Groupe Botanique $ARTICLE_FORMATE['CHAR_P_VARIETE'] = ''; // variete botanique $ARTICLE_FORMATE['BE_P_VARIETETM'] = '0'; // variete est tm $ARTICLE_FORMATE['BE_P_VARIETEC'] = '0'; // variete est c $ARTICLE_FORMATE['BE_P_VARIETER'] = '0'; // variete est r CHAR_P_MARQUE marque botanique $ARTICLE_FORMATE['BE_P_MARQUETM'] = '0'; // marque est tm $ARTICLE_FORMATE['BE_P_MARQUEC'] = '0'; // marque est c $ARTICLE_FORMATE['BE_P_MARQUER'] = '0'; // marque est r $ARTICLE_FORMATE['CHAR_P_CULTIVAR'] = ''; // cultivar botanique $ARTICLE_FORMATE['BE_P_CULTIVARTM'] = '0'; // cultivar est tm $ARTICLE_FORMATE['BE_P_CULTIVARC'] = '0'; // cultivar est c $ARTICLE_FORMATE['BE_P_CULTIVARR'] = '0'; // cultivar est r $ARTICLE_FORMATE['CHAR_P_COMPLEMENT'] = ''; // complement de nom botanique $ARTICLE_FORMATE['BE_P_COMPLEMENTTM'] = '0'; // complement est tm $ARTICLE_FORMATE['BE_P_COMPLEMENTR'] = '0'; // complement est r $ARTICLE_FORMATE['BE_P_COMPLEMENTC'] = '0'; // complement est c $ARTICLE_FORMATE['BE_P_LEPAGE'] = '0'; // est creation lepage $ARTICLE_FORMATE['TEXT_P_GENRE'] = br2nl(($ARTICLE['Texte_Espece'])); // Texte_Genre texte genre de la plante. ira dans une table séparée en version 3.1 $ARTICLE_FORMATE['TEXT_P_ESPECE'] = //br2nl(utf8_encode($ARTICLE['Texte_Espece']));;// texte espece $ARTICLE_FORMATE['TEXT_P_CULTIVAR'] = ''; // texte cultivar $ARTICLE_FORMATE['TEXT_P_ENTRETIEN'] = br2nl(($ARTICLE['Texte_Entretien'])); // texte entretien $ARTICLE_FORMATE['VAL_P_DENSITE'] = '0'; // densite au metre carre peut etre inf à 1 $ARTICLE_FORMATE['VAL_P_HAUTEUR'] = '0'; $ARTICLE_FORMATE['VAL_P_HAUTEUR_MIN'] = '0'; $ARTICLE_FORMATE['VAL_P_HAUTEUR_MAX'] = '0'; //INVERSION régulière LE FICHIER D'IMPORT !!!! //INVERSION régulière LE FICHIER D'IMPORT !!!! //INVERSION régulière LE FICHIER D'IMPORT !!!! if ($ARTICLE['Hauteur_Mini'] == $ARTICLE['Hauteur_Maxi']) { if ($ARTICLE['Hauteur_Maxi'] > 0) $ARTICLE_FORMATE['VAL_P_HAUTEUR_MIN'] = $ARTICLE['Hauteur_Maxi']; if ($ARTICLE['Hauteur_Mini'] > 0) { $ARTICLE_FORMATE['VAL_P_HAUTEUR'] = $ARTICLE['Hauteur_Mini']; $ARTICLE_FORMATE['VAL_P_HAUTEUR_MAX'] = $ARTICLE['Hauteur_Mini']; } } else if ($ARTICLE['Hauteur_Mini'] > $ARTICLE['Hauteur_Maxi']) { if ($ARTICLE['Hauteur_Maxi'] > 0) $ARTICLE_FORMATE['VAL_P_HAUTEUR_MIN'] = $ARTICLE['Hauteur_Maxi']; if ($ARTICLE['Hauteur_Mini'] > 0) $ARTICLE_FORMATE['VAL_P_HAUTEUR_MAX'] = $ARTICLE['Hauteur_Mini']; } else { if ($ARTICLE['Hauteur_Mini'] > 0) $ARTICLE_FORMATE['VAL_P_HAUTEUR_MIN'] = $ARTICLE['Hauteur_Mini']; if ($ARTICLE['Hauteur_Maxi'] > 0) $ARTICLE_FORMATE['VAL_P_HAUTEUR_MAX'] = $ARTICLE['Hauteur_Maxi']; } $ARTICLE_FORMATE['VAL_P_LARGEUR'] = '0'; $ARTICLE_FORMATE['Images'] = $ARTICLE['Images']; //INVERSION régulière DANS LE FICHIER D'IMPORT !!!! //INVERSION régulière LE FICHIER D'IMPORT !!!! //INVERSION régulière LE FICHIER D'IMPORT !!!! $ARTICLE_FORMATE['VAL_P_LARGEUR_MIN'] = '0'; // largeur mini $ARTICLE_FORMATE['VAL_P_LARGEUR_MAX'] = '0'; // largeur maxi if ($ARTICLE['Largeur_Mini'] == $ARTICLE['Largeur_Maxi']) { if ($ARTICLE['Largeur_Maxi'] > 0) $ARTICLE_FORMATE['VAL_P_LARGEUR_MIN'] = $ARTICLE['Largeur_Maxi']; if ($ARTICLE['Largeur_Mini'] > 0) { $ARTICLE_FORMATE['VAL_P_LARGEUR'] = $ARTICLE['Largeur_Mini']; $ARTICLE_FORMATE['VAL_P_LARGEUR_MAX'] = $ARTICLE['Largeur_Mini']; } } else if ($ARTICLE['Largeur_Mini'] > $ARTICLE['Largeur_Maxi']) { if ($ARTICLE['Largeur_Maxi'] > 0) $ARTICLE_FORMATE['VAL_P_LARGEUR_MIN'] = $ARTICLE['Largeur_Maxi']; if ($ARTICLE['Largeur_Mini'] > 0) $ARTICLE_FORMATE['VAL_P_LARGEUR_MAX'] = $ARTICLE['Largeur_Mini']; } else { if ($ARTICLE['Largeur_Mini'] > 0) $ARTICLE_FORMATE['VAL_P_LARGEUR_MIN'] = $ARTICLE['Largeur_Mini']; if ($ARTICLE['Largeur_Maxi'] > 0) $ARTICLE_FORMATE['VAL_P_LARGEUR_MAX'] = $ARTICLE['Largeur_Maxi']; } $ARTICLE_FORMATE['VAL_P_HAUTEUR'] = str_replace(",", ".", $ARTICLE_FORMATE['VAL_P_HAUTEUR']); $ARTICLE_FORMATE['VAL_P_HAUTEUR_MIN'] = str_replace(",", ".", $ARTICLE_FORMATE['VAL_P_HAUTEUR_MIN']); $ARTICLE_FORMATE['VAL_P_HAUTEUR_MAX'] = str_replace(",", ".", $ARTICLE_FORMATE['VAL_P_HAUTEUR_MAX']); $ARTICLE_FORMATE['VAL_P_LARGEUR'] = str_replace(",", ".", $ARTICLE_FORMATE['VAL_P_LARGEUR']); $ARTICLE_FORMATE['VAL_P_LARGEUR_MIN'] = str_replace(",", ".", $ARTICLE_FORMATE['VAL_P_LARGEUR_MIN']); $ARTICLE_FORMATE['VAL_P_LARGEUR_MAX'] = str_replace(",", ".", $ARTICLE_FORMATE['VAL_P_LARGEUR_MAX']); $Exposition_solaire = str_replace(' ', '', $ARTICLE['Exposition_solaire']); $listeexposition = explode(',', $Exposition_solaire); $ctlisteexposition = count($listeexposition); $ARTICLE_FORMATE['BE_P_SOLEIL'] = '0'; // peut se planter au soleil $ARTICLE_FORMATE['BE_P_OMBRE'] = '0'; // peut se planter a lombre $ARTICLE_FORMATE['BE_P_MIOMBRE'] = '0'; // peut se planter a miombre for ($j = 0; $j < $ctlisteexposition; $j++) { switch (strtolower($listeexposition[$j])) { case 'soleil': { $ARTICLE_FORMATE['BE_P_SOLEIL'] = 1; break; } case 'mi-ombre': { $ARTICLE_FORMATE['BE_P_MIOMBRE'] = 1; break; } case 'ombre': { $ARTICLE_FORMATE['BE_P_OMBRE'] = 1; break; } } } $Nature_sol = str_replace(' ', '', $ARTICLE['Nature_sol']); $listeNature_sol = explode(',', $Nature_sol); $ctNature_sol = count($listeNature_sol); $ARTICLE_FORMATE['BE_P_CALCAIRE'] = '0'; $ARTICLE_FORMATE['BE_P_ACIDE'] = '0'; $ARTICLE_FORMATE['BE_P_DRAINE'] = '0'; for ($j = 0; $j < $ctNature_sol; $j++) { switch (stripAccents(strtolower($listeNature_sol[$j]))) { case 'calcaire': { $ARTICLE_FORMATE['BE_P_CALCAIRE'] = 1; break; } case 'acide': { $ARTICLE_FORMATE['BE_P_ACIDE'] = 1; break; } case 'draine': { $ARTICLE_FORMATE['BE_P_DRAINE'] = 1; break; } } } $ARTICLE_FORMATE['BE_P_SEC'] = '0'; //; $ARTICLE_FORMATE['BE_P_FRAIS'] = '0'; // $ARTICLE_FORMATE['BE_P_HUMIDE'] = '0'; // $ARTICLE_FORMATE['BE_P_FLEURCOUPE'] = '0'; // sutilise en fleur coupee //$Maritime_vent=$ARTICLE['Maritime_vent'][0]; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // le renvoi Abelia est pourri, y'a tout et n'importe quoi dans cette balise... seule solution tester la présence d'un 1 ou d'un 2... pas fiable, mais on a pas mieux !!!! // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $ARTICLE_FORMATE['BE_P_MARITIME'] = '0'; // supporte le climat maritime $ARTICLE_FORMATE['BE_P_VENT'] = '0'; // supporte le vent $ARTICLE_FORMATE['BE_P_PASVENT'] = '0';; if (strpos($ARTICLE['Maritime_vent'], '1') === false and strpos($ARTICLE['Maritime_vent'], '2') === false) { $ARTICLE_FORMATE['BE_P_MARITIME'] = '0'; if (strpos($ARTICLE['Maritime_vent'], 'Vent') === false) { $ARTICLE_FORMATE['Vent'] = '0'; } else { $ARTICLE_FORMATE['Vent'] = '1'; } } else { if (strpos($ARTICLE['Maritime_vent'], '1') >= 0 && strpos($ARTICLE['Maritime_vent'], '2') === false) { $ARTICLE_FORMATE['BE_P_MARITIME'] = 1; $ARTICLE_FORMATE['BE_P_VENT'] = 1; } else if (strpos($ARTICLE['Maritime_vent'], '2') >= 0 && strpos($ARTICLE['Maritime_vent'], '1') === false) { $ARTICLE_FORMATE['BE_P_MARITIME'] = 2; $ARTICLE_FORMATE['BE_P_VENT'] = 1; } } $Melifere_odorant_couvre_sol = str_replace(' ', '', $ARTICLE['Melifere_odorant_couvre_sol']); $listeMelifere_odorant_couvre_sol = explode(',', $Melifere_odorant_couvre_sol); $ctlisteMelifere_odorant_couvre_sol = count($listeMelifere_odorant_couvre_sol); $ARTICLE_FORMATE['BE_P_MELLIFERE'] = '0'; // plante mellifere $ARTICLE_FORMATE['BE_P_ODORANTE'] = '0'; // plante odorante valeur 1 à 5 $ARTICLE_FORMATE['BE_P_COUVRESOL'] = '0'; // plante couvre sol for ($j = 0; $j < $ctlisteMelifere_odorant_couvre_sol; $j++) { switch (trim(stripAccents(strtolower($listeMelifere_odorant_couvre_sol[$j])))) { case 'mellifere': { $ARTICLE_FORMATE['BE_P_MELLIFERE'] = 1; break; } case 'melifere': { $ARTICLE_FORMATE['BE_P_MELLIFERE'] = 1; break; } case 'odorant': { $ARTICLE_FORMATE['BE_P_ODORANTE'] = 1; break; } case 'couvre-sol': { $ARTICLE_FORMATE['BE_P_COUVRESOL'] = 1; break; } } } $ARTICLE_FORMATE['BE_P_PERSISTANT'] = '0'; // feuillage persistant if (strpos($ARTICLE['Type_feuillage'], 'Persistant') === false) { $ARTICLE_FORMATE['BE_P_PERSISTANT'] = '2'; } else { $ARTICLE_FORMATE['BE_P_PERSISTANT'] = '1'; } if ($ARTICLE['Largeur_Maxi'] > 0) $ARTICLE_FORMATE['BE_P_LONGUEF'] = '0'; // plante a longue floraison $ARTICLE_FORMATE['BE_P_FLORIFERE'] = '0'; // BE_P_ISOLE sutilise en isole $ARTICLE_FORMATE['BE_P_ISOLE'] = '0'; $ARTICLE_FORMATE['BE_P_GRIMPANTE'] = '0'; // plante grimpante $ARTICLE_FORMATE['BE_P_PRIOFLEUR'] = '0'; // principalement cultivee pour ses fleurs $ARTICLE_FORMATE['BE_P_HYBRIDE'] = '0'; // est une plante hybride $ARTICLE_FORMATE['BE_P_F1'] = '0'; // $ARTICLE_FORMATE['BE_P_SEMIS'] = '0'; // $ARTICLE_FORMATE['BE_P_FERTILE'] = '0'; // $ARTICLE_FORMATE['BE_P_POTFLEURI'] = '0'; // s'utilise en pot $ARTICLE_FORMATE['BE_P_COMMESTIBLE'] = '0'; // est une plante commestible $ARTICLE_FORMATE['BE_P_TOXIQUE'] = '0'; // est une plante toxique $ARTICLE_FORMATE['BE_P_FRUIT'] = '0'; // est une plante a fruit $ARTICLE_FORMATE['BE_P_CONDIMENT'] = '0'; // $ARTICLE_FORMATE['TEXT_P_COMMESTIBLE'] = ''; // texte commestible $ARTICLE_FORMATE['BE_P_GEL'] = '0'; // supporte le gel $ARTICLE_FORMATE['VAL_P_TEMPGEL'] = '0'; // temperature la plus basse supportee $ARTICLE_FORMATE['BE_P_SECHERESSE'] = '0'; // supporte des périodes de secheresse $ARTICLE_FORMATE['VAL_P_ARROSAGE'] = '0'; // valeur 0 1 2 3 4 $ARTICLE_FORMATE['BE_P_ACTIVE'] = '0'; // est une plante active(0=indéfini, 1=oui, 2=non) $ARTICLE_FORMATE['BE_P_DELETE'] = '0'; // est une plante supprimee(0=indéfini, 1=oui, 2=non) $ARTICLE_FORMATE['DATET_P_CREA'] = date('Y-m-d H:i:s'); // date de creation de la plante $ARTICLE_FORMATE['DATET_P_LASTMODIF'] = date('Y-m-d H:i:s'); // date derniere modification $ARTICLE_FORMATE['DATE_MAJ_ARTICLE'] = $ARTICLE['date_Maj_Article']; $ARTICLE_FORMATE['DATE_MAJ_VARIETE'] = $ARTICLE['date_Maj_Variete']; $ARTICLE_FORMATE['DATE_DERNIER_MVT_STOCK'] = $ARTICLE['Date_Dernier_Mvt_Stock']; //mise en correspondance des particularisme en fonction de la famille Abelia //////////////////////////////////////////////////////////////////////////////////////////// //GESTION DES FAMILLES //////////////////////////////////////////////////////////////////////////////////////////// $liste_famille = explode(',', $ARTICLE['code_famille']); $ctliste_famille = count($liste_famille); $familleARTICLE = array("OUT", "ZRE", "ZZZ",); for ($j = 0; $j < $ctliste_famille; $j++) { if (in_array($liste_famille[$j], $familleARTICLE)) { $ARTICLE_FORMATE['FKID_REF_TYPE_ARTICLE'] = 2; } if ($liste_famille[$j] == 'PAL') { $ARTICLE_FORMATE['collection'][] = 'ARB'; } $ARTICLE_FORMATE['collection'][] = $liste_famille[$j]; if ($liste_famille[$j] == 'CVI' || $liste_famille[$j] == 'ZAQ' || $liste_famille[$j] == 'ZBR' || $liste_famille[$j] == 'ZBU' || $liste_famille[$j] == 'ZFO' || $liste_famille[$j] == 'ZGR' || $liste_famille[$j] == 'ZMA' || $liste_famille[$j] == 'ZOF' || $liste_famille[$j] == 'ZOM' ) { $ARTICLE_FORMATE['collection'][] = 'VIV'; } if ($liste_famille[$j] == 'FRU') { switch ($ARTICLE['Type_fruitier']) { case 'abricotier': { $ARTICLE_FORMATE['collection'][] = 'FRUPRU'; break; } case 'agrume': { $ARTICLE_FORMATE['collection'][] = 'FRUAGR'; break; } case 'autre': { $ARTICLE_FORMATE['collection'][] = 'FRUAUT'; break; } case 'cerisier': { $ARTICLE_FORMATE['collection'][] = 'FRUCER'; break; } case 'châtaignier/noyer': { $ARTICLE_FORMATE['collection'][] = 'FRUCHA'; break; } case 'cognassier': { $ARTICLE_FORMATE['collection'][] = 'FRUCOG'; break; } case 'figuier': { $ARTICLE_FORMATE['collection'][] = 'FRUFIG'; break; } case 'kiwi': { $ARTICLE_FORMATE['collection'][] = 'FRUKIW'; break; } case 'noisetier': { $ARTICLE_FORMATE['collection'][] = 'FRUNOI'; break; } case 'pêcher': { $ARTICLE_FORMATE['collection'][] = 'FRUPEC'; break; } case 'petits fruits': { $ARTICLE_FORMATE['collection'][] = 'FRUPET'; break; } case 'poirier': { $ARTICLE_FORMATE['collection'][] = 'FRUPOI'; break; } case 'pommier': { $ARTICLE_FORMATE['collection'][] = 'FRUPOM'; break; } case 'prunier': { $ARTICLE_FORMATE['collection'][] = 'FRUPRU'; break; } case 'raisin': { $ARTICLE_FORMATE['collection'][] = 'FRURAI'; break; } } } if ($liste_famille[$j] == 'ROT' || $liste_famille[$j] == 'ROG' || $liste_famille[$j] == 'ROB') { $ARTICLE_FORMATE['collection'][] = 'ROS'; } //article qui ne sont pas des plantes if ( $liste_famille[$j] == 'DIV' || $liste_famille[$j] == 'ENG' || $liste_famille[$j] == 'GAZ' || $liste_famille[$j] == 'PAI' || $liste_famille[$j] == 'PRO' || $liste_famille[$j] == 'TER') { $ARTICLE_FORMATE['collection'][] = 'OUTACC'; $ARTICLE_FORMATE['collection'][] = $liste_famille[$j]; $ARTICLE_FORMATE['FKID_REF_TYPE_ARTICLE'] = '2'; // clé étrangere table REF_TYPE_ARTICLE pour classement rapide } if ( $liste_famille[$j] == 'SEC' || $liste_famille[$j] == 'OUT' ) { $ARTICLE_FORMATE['collection'][] = 'OUTACC'; $ARTICLE_FORMATE['collection'][] = 'OUT'; $ARTICLE_FORMATE['FKID_REF_TYPE_ARTICLE'] = '2'; // clé étrangere table REF_TYPE_ARTICLE pour classement rapide } } $ARTICLE_FORMATE['collection'][] = 'ALL'; $ARTICLE_FORMATE['collection'][] = 'DEAAZ'; if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'A') { $ARTICLE_FORMATE['collection'][] = 'DEAAZA'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'B') { $ARTICLE_FORMATE['collection'][] = 'DEAAZB'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'C') { $ARTICLE_FORMATE['collection'][] = 'DEAAZC'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'D') { $ARTICLE_FORMATE['collection'][] = 'DEAAZD'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'E') { $ARTICLE_FORMATE['collection'][] = 'DEAAZE'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'F') { $ARTICLE_FORMATE['collection'][] = 'DEAAZF'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'G') { $ARTICLE_FORMATE['collection'][] = 'DEAAZG'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'H') { $ARTICLE_FORMATE['collection'][] = 'DEAAZH'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'I') { $ARTICLE_FORMATE['collection'][] = 'DEAAZI'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'J') { $ARTICLE_FORMATE['collection'][] = 'DEAAZJ'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'K') { $ARTICLE_FORMATE['collection'][] = 'DEAAZK'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'L') { $ARTICLE_FORMATE['collection'][] = 'DEAAZL'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'M') { $ARTICLE_FORMATE['collection'][] = 'DEAAZM'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'N') { $ARTICLE_FORMATE['collection'][] = 'DEAAZN'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'O') { $ARTICLE_FORMATE['collection'][] = 'DEAAZO'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'P') { $ARTICLE_FORMATE['collection'][] = 'DEAAZP'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'Q') { $ARTICLE_FORMATE['collection'][] = 'DEAAZQ'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'R') { $ARTICLE_FORMATE['collection'][] = 'DEAAZR'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'S') { $ARTICLE_FORMATE['collection'][] = 'DEAAZS'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'T') { $ARTICLE_FORMATE['collection'][] = 'DEAAZT'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'U') { $ARTICLE_FORMATE['collection'][] = 'DEAAZU'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'V') { $ARTICLE_FORMATE['collection'][] = 'DEAAZV'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'W') { $ARTICLE_FORMATE['collection'][] = 'DEAAZW'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'X') { $ARTICLE_FORMATE['collection'][] = 'DEAAZX'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'Y') { $ARTICLE_FORMATE['collection'][] = 'DEAAZY'; } if (strtoupper(substr($ARTICLE_FORMATE['CHAR_A_TITRE'], 0, 1)) == 'Z') { $ARTICLE_FORMATE['collection'][] = 'DEAAZZ'; } //////////////////////////////////////////////////////////////////////////////////////////// //PERIODE FLORAISON //////////////////////////////////////////////////////////////////////////////////////////// $mytab = explode('/', $ARTICLE['Epoque_floraison']); if (isset($mytab[0])) { $ARTICLE_FORMATE['PERIODE_FLORAISON']['FKID_REF_MOIS_DEBUT'] = $mytab[0]; $ARTICLE_FORMATE['PERIODE_FLORAISON']['FKID_REF_MOIS_FIN'] = $mytab[0]; } if (isset($mytab[1])) { $ARTICLE_FORMATE['PERIODE_FLORAISON']['FKID_REF_MOIS_FIN'] = $mytab[1]; } //////////////////////////////////////////////////////////////////////////////////////////// //PERIODE Feuillaison //////////////////////////////////////////////////////////////////////////////////////////// $mytab = explode('/', $ARTICLE['Epoque_feuillaison']); if (isset($mytab[0])) { $ARTICLE_FORMATE['PERIODE_FEUILLAISON']['FKID_REF_MOIS_DEBUT'] = $mytab[0]; $ARTICLE_FORMATE['PERIODE_FEUILLAISON']['FKID_REF_MOIS_FIN'] = $mytab[0]; } if (isset($mytab[1])) { $ARTICLE_FORMATE['PERIODE_FEUILLAISON']['FKID_REF_MOIS_FIN'] = $mytab[1]; } //////////////////////////////////////////////////////////////////////////////////////////// //PERIODE CUEILLETTE //////////////////////////////////////////////////////////////////////////////////////////// $mytab = explode('/', $ARTICLE['Epoque_maturite_fruit']); if (isset($mytab[0])) { $ARTICLE_FORMATE['PERIODE_CUEILLETTE']['FKID_REF_MOIS_DEBUT'] = $mytab[0]; $ARTICLE_FORMATE['PERIODE_CUEILLETTE']['FKID_REF_MOIS_FIN'] = $mytab[0]; } if (isset($mytab[1])) { $ARTICLE_FORMATE['PERIODE_CUEILLETTE']['FKID_REF_MOIS_FIN'] = $mytab[1]; } //////////////////////////////////////////////////////////////////////////////////////////// //ZONE DE RUSTICITE //////////////////////////////////////////////////////////////////////////////////////////// $ARTICLE_FORMATE['REF_ZONE'] = $ARTICLE['Rusticite']; //////////////////////////////////////////////////////////////////////////////////////////// //IMAGES ASSOCIEES //////////////////////////////////////////////////////////////////////////////////////////// $mytab = explode(';', $ARTICLE['Images']); $myct = count($mytab); for ($z = 0; $z < $myct; $z++) { $ARTICLE_FORMATE['PHOTO'][$z]['CHAR_PH_ORIG'] = $mytab[$z]; $ARTICLE_FORMATE['PHOTO'][$z]['CHAR_PH_NAME'] = $mytab[$z]; $ARTICLE_FORMATE['PHOTO'][$z]['CHAR_PH_TITLE'] = $ARTICLE['libelle1_variete'].$ARTICLE['libelle1_article']; $ARTICLE_FORMATE['PHOTO'][$z]['CHAR_PH_ALT'] = $ARTICLE['libelle1_variete'].$ARTICLE['libelle1_article']; } //////////////////////////////////////////////////////////////////////////////////////////// //COULEUR PLANTE //////////////////////////////////////////////////////////////////////////////////////////// $mytab = explode(';', $ARTICLE['Couleur_fleur']); $myct = count($mytab); for ($z = 0; $z < $myct; $z++) { $ARTICLE_FORMATE['PLANTE_AVOIR_REF_COULEUR_FLEUR'][$z] = $mytab[$z]; } //////////////////////////////////////////////////////////////////////////////////////////// //COULEUR FEUILLE //////////////////////////////////////////////////////////////////////////////////////////// $mytab = explode(';', $ARTICLE['Couleur_feuilla']); $myct = count($mytab); for ($z = 0; $z < $myct; $z++) { $ARTICLE_FORMATE['PLANTE_AVOIR_REF_COULEUR_FEUILLE'][$z] = $mytab[$z]; } $ARTICLE_FORMATE['CONDITIONNEMENT'] = $ARTICLE['code_conditionnement'].$ARTICLE['code_taille']; $ARTICLE_FORMATE['PRIX'] = $ARTICLE['tarif_id']; $ARTICLE_FORMATE['UNITE'] = $ARTICLE['unite_vente']; $ARTICLE_FORMATE['POIDS'] = $ARTICLE['poids_article']; $ARTICLE_FORMATE['STOCK'] = $ARTICLE['stk_dispo']; $ARTICLE_FORMATE['VAL_PFC_VENDABILITE'] = $ARTICLE['Vendabilite'][0]; $ARTICLE_FORMATE['ID_AQUILA'] = $ARTICLE['id']; return $ARTICLE_FORMATE; } function dl_update_ARTICLE($db, $ARTICLE) { //génération de l'article "au propre" $ARTICLE_FORMATE = gl_generation_ARTICLE($ARTICLE); $sql='update ARTICLE set FKID_REF_TYPE_ARTICLE="'.$article['FKID_REF_TYPE_ARTICLE'].'", BE_A_NEW="'.$article['BE_A_NEW'].'", BE_A_TV="'.$article['BE_A_TV'].'", BE_A_UNE="'.$article['BE_A_UNE'].'", TEXT_A_UNE="'.$article['TEXT_A_UNE'].'", VAL_A_HAUTEUR="'.$article['VAL_A_HAUTEUR'].'", VAL_A_LARGEUR="'.$article['VAL_A_LARGEUR'].'", VAL_A_PROFONDEUR="'.$article['VAL_A_PROFONDEUR'].'", BE_A_COMPOSE="2", BE_A_ACTIVE="1", BE_A_DELETE="2", DATET_A_LASTMODIF=now() where ID_ARTICLE="'.$id.'"'; $log.='Maj VAL article :
'; if(XMLVERBOSE>1){$log.=''.($sql).'

'; } //$result= update($db,$sql); $sql='update ARTICLE set CHAR_A_TITRE="'.htmlentities($article['CHAR_A_TITRE'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_SOUSTITRE="'.htmlentities($article['CHAR_A_SOUSTITRE'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_REFERENCE="'.htmlentities($article['CHAR_A_REFERENCE'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_LINKTV="'.htmlentities($article['CHAR_A_LINKTV'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_PINTEREST="'.htmlentities($article['CHAR_A_PINTEREST'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_FACEBOOK="'.htmlentities($article['CHAR_A_FACEBOOK'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_YOUTUBE="'.htmlentities($article['CHAR_A_YOUTUBE'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_COMPLEMENTAIRE1="'.htmlentities($article['CHAR_A_COMPLEMENTAIRE1'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_COMPLEMENTAIRE2="'.htmlentities($article['CHAR_A_COMPLEMENTAIRE2'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_COMPLEMENTAIRE3="'.htmlentities($article['CHAR_A_COMPLEMENTAIRE3'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_COMPLEMENTAIRE4="'.htmlentities($article['CHAR_A_COMPLEMENTAIRE4'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_COMPLEMENTAIRE5="'.htmlentities($article['CHAR_A_COMPLEMENTAIRE5'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_COMPLEMENTAIRE6="'.htmlentities($article['CHAR_A_COMPLEMENTAIRE6'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_COMPLEMENTAIRE7="'.htmlentities($article['CHAR_A_COMPLEMENTAIRE7'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_COMPLEMENTAIRE8="'.htmlentities($article['CHAR_A_COMPLEMENTAIRE8'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_COMPLEMENTAIRE9="'.htmlentities($article['CHAR_A_COMPLEMENTAIRE9'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", CHAR_A_COMPLEMENTAIRE10="'.htmlentities($article['CHAR_A_COMPLEMENTAIRE10'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", DATET_A_LASTMODIF=now() where ID_ARTICLE="'.$id.'"'; $log.='Maj CHAR article :
'; if(XMLVERBOSE>1){$log.=''.($sql).'

'; } //$result= update($db,$sql); $sql='update ARTICLE set TEXT_A_DESCRIPTIF="'.($article['TEXT_A_DESCRIPTIF']).'", DATET_A_LASTMODIF=now() where ID_ARTICLE="'.$id.'"'; $log.='Maj TEXT article :
'; if(XMLVERBOSE>1){$log.=''.($sql).'

'; } //$result= update($db,$sql); $sql='update ARTICLE set TEXT_A_METATITLE="'.$article['TEXT_A_METATITLE'].'", DATET_A_LASTMODIF=now() where ID_ARTICLE="'.$id.'"'; $log.='Maj TEXT article :
'; if(XMLVERBOSE>1){$log.=''.($sql).'

'; } //$result= update($db,$sql); $sql='update ARTICLE set TEXT_A_METATITLEVENTE="'.$article['TEXT_A_METATITLEVENTE'].'", DATET_A_LASTMODIF=now() where ID_ARTICLE="'.$id.'"'; $log.='Maj TEXT article :
'; if(XMLVERBOSE>1){$log.=''.($sql).'

'; } //$result= update($db,$sql); $sql='update ARTICLE set TEXT_A_METADESC="'.$article['TEXT_A_METADESC'].'", DATET_A_LASTMODIF=now() where ID_ARTICLE="'.$id.'"'; $log.='Maj TEXT article :
'; if(XMLVERBOSE>1){$log.=''.($sql).'

'; } //$result= update($db,$sql); $sql='update ARTICLE set TEXT_A_METADESCVENTE="'.$article['TEXT_A_METADESCVENTE'].'", DATET_A_LASTMODIF=now() where ID_ARTICLE="'.$id.'"'; $log.='Maj TEXT article :
'; if(XMLVERBOSE>1){$log.=''.($sql).'

'; } //$result= update($db,$sql); $sql='update ARTICLE set TEXT_A_UNE="'.$article['TEXT_A_UNE'].'", DATET_A_LASTMODIF=now() where ID_ARTICLE="'.$id.'"'; $log.='Maj TEXT article :
'; if(XMLVERBOSE>1){$log.=''.($sql).'

'; } //$result= update($db,$sql); return $log; } function dl_insert_ARTICLE($db, $ARTICLE) { //génération de l'article "au propre" $ARTICLE_FORMATE = gl_generation_ARTICLE($ARTICLE); $sql=' INSERT INTO ARTICLE (ID_ARTICLE, FKID_REF_TYPE_ARTICLE, CHAR_A_TITRE, CHAR_A_SOUSTITRE, CHAR_A_REFERENCE, BE_A_NEW, TEXT_A_DESCRIPTIF, TEXT_A_METATITLE, TEXT_A_METATITLEVENTE, TEXT_A_METADESC, TEXT_A_METADESCVENTE, BE_A_TV, CHAR_A_LINKTV, CHAR_A_PINTEREST, CHAR_A_FACEBOOK, CHAR_A_YOUTUBE, BE_A_UNE, TEXT_A_UNE, VAL_A_HAUTEUR, VAL_A_LARGEUR, VAL_A_PROFONDEUR, BE_A_COMPOSE, BE_A_ACTIVE, BE_A_DELETE, DATET_A_CREATE, DATET_A_LASTMODIF, CHAR_A_COMPLEMENTAIRE1, CHAR_A_COMPLEMENTAIRE2, CHAR_A_COMPLEMENTAIRE3, CHAR_A_COMPLEMENTAIRE4, CHAR_A_COMPLEMENTAIRE5, CHAR_A_COMPLEMENTAIRE6, CHAR_A_COMPLEMENTAIRE7, CHAR_A_COMPLEMENTAIRE8, CHAR_A_COMPLEMENTAIRE9, CHAR_A_COMPLEMENTAIRE10) VALUES ( "'.$newid_ARTICLE.'", "'.$article['FKID_REF_TYPE_ARTICLE'].'", "'.htmlentities($article['CHAR_A_TITRE'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", "'.htmlentities($article['CHAR_A_SOUSTITRE'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", "'.$article['CHAR_A_REFERENCE'].'", "'.$article['BE_A_NEW'].'", "'.htmlentities($article['TEXT_A_DESCRIPTIF'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", "'.htmlentities($article['TEXT_A_METATITLE'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", "'.htmlentities($article['TEXT_A_METATITLEVENTE'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", "'.htmlentities($article['TEXT_A_METADESC'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", "'.htmlentities($article['TEXT_A_METADESCVENTE'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", "'.$article['BE_A_TV'].'", "'.$article['CHAR_A_LINKTV'].'", "'.$article['CHAR_A_PINTEREST'].'", "'.$article['CHAR_A_FACEBOOK'].'", "'.$article['CHAR_A_YOUTUBE'].'", "'.$article['BE_A_UNE'].'", "'.$article['TEXT_A_UNE'].'", "'.$article['VAL_A_HAUTEUR'].'", "'.$article['VAL_A_LARGEUR'].'", "'.$article['VAL_A_PROFONDEUR'].'", "'.$article['BE_A_COMPOSE'].'", "1", "2", now(), now(), "'.$article['CHAR_A_COMPLEMENTAIRE1'].'", "'.$article['CHAR_A_COMPLEMENTAIRE2'].'", "'.$article['CHAR_A_COMPLEMENTAIRE3'].'", "'.$article['CHAR_A_COMPLEMENTAIRE4'].'", "'.$article['CHAR_A_COMPLEMENTAIRE5'].'", "'.$article['CHAR_A_COMPLEMENTAIRE6'].'", "'.$article['CHAR_A_COMPLEMENTAIRE7'].'", "'.$article['CHAR_A_COMPLEMENTAIRE8'].'", "'.$article['CHAR_A_COMPLEMENTAIRE9'].'", "'.$article['CHAR_A_COMPLEMENTAIRE10'].'") '; $log.='insert article :
'; if(XMLVERBOSE>1){$log.=''.($sql).'

'; } $sql='INSERT INTO PLANTE (ID_PLANTE, PKFKID_ARTICLE, FKID_REF_OBTENTEUR, FKID_FAMILLE, FKID_REF_FORME, CHAR_P_FAMILLE, CHAR_P_GENRE, CHAR_P_ESPECE, CHAR_P_SESPECE, CHAR_P_GROUPE, CHAR_P_VARIETE, BE_P_VARIETETM, BE_P_VARIETEC, BE_P_VARIETER, CHAR_P_MARQUE, BE_P_MARQUETM, BE_P_MARQUEC, BE_P_MARQUER, CHAR_P_CULTIVAR, BE_P_CULTIVARTM, BE_P_CULTIVARC, BE_P_CULTIVARR, CHAR_P_COMPLEMENT, BE_P_COMPLEMENTTM, BE_P_COMPLEMENTR, BE_P_COMPLEMENTC, BE_P_LEPAGE, TEXT_P_GENRE, TEXT_P_ESPECE, TEXT_P_CULTIVAR, TEXT_P_ENTRETIEN, VAL_P_DENSITE, VAL_P_HAUTEUR, VAL_P_HAUTEUR_MIN, VAL_P_HAUTEUR_MAX, VAL_P_LARGEUR, VAL_P_LARGEUR_MIN, VAL_P_LARGEUR_MAX, BE_P_SOLEIL, BE_P_OMBRE, BE_P_MIOMBRE, BE_P_CALCAIRE, BE_P_ACIDE, BE_P_DRAINE, BE_P_SEC, BE_P_FRAIS, BE_P_HUMIDE, BE_P_FLEURCOUPE, BE_P_MARITIME, BE_P_VENT, BE_P_PASVENT, BE_P_MELLIFERE, BE_P_PERSISTANT, BE_P_ODORANTE, BE_P_LONGUEF, BE_P_FLORIFERE, BE_P_ISOLE, BE_P_COUVRESOL, BE_P_GRIMPANTE, BE_P_PRIOFLEUR, BE_P_HYBRIDE, BE_P_F1, BE_P_SEMIS, BE_P_FERTILE, BE_P_POTFLEURI, BE_P_COMMESTIBLE, BE_P_TOXIQUE, BE_P_FRUIT, BE_P_CONDIMENT, TEXT_P_COMMESTIBLE, BE_P_GEL, VAL_P_TEMPGEL, BE_P_SECHERESSE, VAL_P_ARROSAGE, BE_P_ACTIVE, BE_P_DELETE, DATET_P_CREA, DATET_P_LASTMODIF) VALUES ("'.$newid_PLANTE.'", "'.$newid_ARTICLE.'", "'.$article['FKID_REF_OBTENTEUR'].'", "'.$article['FKID_FAMILLE'].'", "'.$article['FKID_REF_FORME'].'", "'.$article['CHAR_P_FAMILLE'].'", "'.$article['CHAR_P_GENRE'].'", "'.$article['CHAR_P_ESPECE'].'", "'.$article['CHAR_P_SESPECE'].'", "'.$article['CHAR_P_GROUPE'].'", "'.$article['CHAR_P_VARIETE'].'", "'.$article['BE_P_VARIETETM'].'", "'.$article['BE_P_VARIETEC'].'", "'.$article['BE_P_VARIETER'].'", "'.$article['CHAR_P_MARQUE'].'", "'.$article['BE_P_MARQUETM'].'", "'.$article['BE_P_MARQUEC'].'", "'.$article['BE_P_MARQUER'].'", "'.$article['CHAR_P_CULTIVAR'].'", "'.$article['BE_P_CULTIVARTM'].'", "'.$article['BE_P_CULTIVARC'].'", "'.$article['BE_P_CULTIVARR'].'", "'.$article['CHAR_P_COMPLEMENT'].'", "'.$article['BE_P_COMPLEMENTTM'].'", "'.$article['BE_P_COMPLEMENTR'].'", "'.$article['BE_P_COMPLEMENTC'].'", "'.$article['BE_P_LEPAGE'].'", "'.htmlentities($article['TEXT_P_GENRE'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", "'.htmlentities($article['TEXT_P_ESPECE'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", "'.htmlentities($article['TEXT_P_CULTIVAR'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", "'.htmlentities($article['TEXT_P_ENTRETIEN'], ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8").'", "'.$article['VAL_P_DENSITE'].'", "'.$article['VAL_P_HAUTEUR'].'", "'.$article['VAL_P_HAUTEUR_MIN'].'", "'.$article['VAL_P_HAUTEUR_MAX'].'", "'.$article['VAL_P_LARGEUR'].'", "'.$article['VAL_P_LARGEUR_MIN'].'", "'.$article['VAL_P_LARGEUR_MAX'].'", "'.$article['BE_P_SOLEIL'].'", "'.$article['BE_P_OMBRE'].'", "'.$article['BE_P_MIOMBRE'].'", "'.$article['BE_P_CALCAIRE'].'", "'.$article['BE_P_ACIDE'].'", "'.$article['BE_P_DRAINE'].'", "'.$article['BE_P_SEC'].'", "'.$article['BE_P_FRAIS'].'", "'.$article['BE_P_HUMIDE'].'", "'.$article['BE_P_FLEURCOUPE'].'", "'.$article['BE_P_MARITIME'].'", "'.$article['BE_P_VENT'].'", "'.$article['BE_P_PASVENT'].'", "'.$article['BE_P_MELLIFERE'].'", "'.$article['BE_P_PERSISTANT'].'", "'.$article['BE_P_ODORANTE'].'", "'.$article['BE_P_LONGUEF'].'", "'.$article['BE_P_FLORIFERE'].'", "'.$article['BE_P_ISOLE'].'", "'.$article['BE_P_COUVRESOL'].'", "'.$article['BE_P_GRIMPANTE'].'", "'.$article['BE_P_PRIOFLEUR'].'", "'.$article['BE_P_HYBRIDE'].'", "'.$article['BE_P_F1'].'", "'.$article['BE_P_SEMIS'].'", "'.$article['BE_P_FERTILE'].'", "'.$article['BE_P_POTFLEURI'].'", "'.$article['BE_P_COMMESTIBLE'].'", "'.$article['BE_P_TOXIQUE'].'", "'.$article['BE_P_FRUIT'].'", "'.$article['BE_P_CONDIMENT'].'", "'.$article['TEXT_P_COMMESTIBLE'].'", "'.$article['BE_P_GEL'].'", "'.$article['VAL_P_TEMPGEL'].'", "'.$article['BE_P_SECHERESSE'].'", "'.$article['VAL_P_ARROSAGE'].'", "'.$article['BE_P_ACTIVE'].'", "'.$article['BE_P_DELETE'].'", "'.$article['DATET_P_CREA'].'", "'.$article['DATET_P_LASTMODIF'].'") '; $log.='insert article :
'; if(XMLVERBOSE>1){$log.=''.($sql).'

'; } return $log; } function existe_en_base_ARTICLES($db) { $log = ''; //$_SESSION['liste_ARTICLE']=array(); //$_SESSION['liste_ARTICLE_EXISTER_CONDITIONNEMENT']=array(); /** * Pour chaque ARTICLES * 1- verifier s'il existe en base */ $list_CHAR_A_REFERENCE = dl_select_list_CHAR_A_REFERENCE_in_base($db); $ctlist_CHAR_A_REFERENCE = count($list_CHAR_A_REFERENCE); $list_CHAR_A_REFERENCE_surcharge = dl_select_list_CHAR_A_REFERENCE_in_base_SURCHARGE($db); $ctlist_CHAR_A_REFERENCE_surcharge = count($list_CHAR_A_REFERENCE_surcharge); $ctliste_ARTICLE = count($_SESSION['liste_ARTICLE']); $log .= '########################################################
'; $log .= 'EXISTE EN BASE
'; $log .= '########################################################
'; for ($i = 0; $i < $ctliste_ARTICLE; $i++) { for ($j = 0; $j < $ctlist_CHAR_A_REFERENCE; $j++) { if ($_SESSION['liste_ARTICLE'][$i]['code_variete'] == $list_CHAR_A_REFERENCE[$j]['CHAR_A_REFERENCE']) { $_SESSION['liste_ARTICLE'][$i]['ARTICLE_EXIST'] = $list_CHAR_A_REFERENCE[$j]['ID_ARTICLE']; for ($k = 0; $k < $ctlist_CHAR_A_REFERENCE_surcharge; $k++) { if ($_SESSION['liste_ARTICLE'][$i]['code_variete'] == $list_CHAR_A_REFERENCE_surcharge[$k]['CHAR_A_REFERENCE']) { $_SESSION['liste_ARTICLE'][$i]['ARTICLE_EXIST_SURCHARGE'] = 1; if ($list_CHAR_A_REFERENCE_surcharge[$k]['BE_A_SURCHARGE'] == 1)$_SESSION['liste_ARTICLE'][$i]['BE_A_SURCHARGE'] = 1; break; } else {} } break; } else {} } if ($_SESSION['liste_ARTICLE'][$i]['ARTICLE_EXIST'] > 1) { $log .= $_SESSION['liste_ARTICLE'][$i]['code_variete'].' existe id '.$list_CHAR_A_REFERENCE[$j]['ID_ARTICLE'].'.'; if ($_SESSION['liste_ARTICLE'][$i]['ARTICLE_EXIST_SURCHARGE'] == 1) { $log .= ' Existe surcharge.'; if ($_SESSION['liste_ARTICLE'][$i]['BE_A_SURCHARGE'] == 1) { $log .= 'SURCHARGE.'; } $log .= '
'; } else { $log .= ' N\'existe pas surcharge.
'; } } else { $log .= $_SESSION['liste_ARTICLE'][$i]['code_variete'].' n\'existe pas en base.
'; $_SESSION['liste_ARTICLE'][$i]['ARTICLE_EXIST'] = 2; } } return $log; } function dl_select_list_CHAR_A_REFERENCE_in_base_SURCHARGE($db) { $sql = "SELECT ID_ARTICLE_SURCHARGE, CHAR_A_REFERENCE, BE_A_SURCHARGE FROM `ARTICLE_SURCHARGE` ORDER BY `CHAR_A_TITRE` ASC"; return select_list($db, $sql); } function dl_select_list_CHAR_A_REFERENCE_in_base($db) { $sql = "SELECT ID_ARTICLE, CHAR_A_REFERENCE FROM `ARTICLE` ORDER BY `CHAR_A_TITRE` ASC"; return select_list($db, $sql); } function formatage_liste_ARTICLE($produit) { //$_SESSION['liste_ARTICLE'] $ctliste_ARTICLE = count($_SESSION['liste_ARTICLE']); $ARTICLE_exist = 0; for ($i = 0; $i < $ctliste_ARTICLE; $i++) { //echo count($_SESSION['liste_ARTICLE']).':'.$_SESSION['liste_ARTICLE'][$i]['libelle1_article'].'
'; if ($_SESSION['liste_ARTICLE'][$i]['code_variete'] == $produit['code_variete']) { $ARTICLE_exist = 1; break; } } if ($ARTICLE_exist == 0) { $_SESSION['liste_ARTICLE'][$ctliste_ARTICLE] = $produit; } $ct = count($_SESSION['liste_ARTICLE_EXISTER_CONDITIONNEMENT']); $_SESSION['liste_ARTICLE_EXISTER_CONDITIONNEMENT'][$ct]['libelle1_variete'] = $produit['code_variete']; $_SESSION['liste_ARTICLE_EXISTER_CONDITIONNEMENT'][$ct]['libelle1_variete'] = $produit['libelle1_variete']; $_SESSION['liste_ARTICLE_EXISTER_CONDITIONNEMENT'][$ct]['id'] = $produit['id']; $_SESSION['liste_ARTICLE_EXISTER_CONDITIONNEMENT'][$ct]['tarif_id'] = $produit['tarif_id']; $_SESSION['liste_ARTICLE_EXISTER_CONDITIONNEMENT'][$ct]['tva_id'] = $produit['tva_id']; $_SESSION['liste_ARTICLE_EXISTER_CONDITIONNEMENT'][$ct]['libelle_conditionnement'] = $produit['libelle_conditionnement']; $_SESSION['liste_ARTICLE_EXISTER_CONDITIONNEMENT'][$ct]['libelle_taille'] = $produit['libelle_taille']; } function formatage_liste_ref_conditionnement($produit) { //$_SESSION['liste_ref_conditionnement']; $ctliste_ref_conditionnement = count($_SESSION['liste_ref_conditionnement']); $ref_conditionnement_exist = 0; for ($i = 0; $i < $ctliste_ref_conditionnement; $i++) { if ($liste_ref_conditionnement[$i]['CHAR_C_ABREVIATION2'] == $produit['code_conditionnement'].$produit['code_taille']) { $ref_conditionnement_exist = 1; break; } } if ($ref_conditionnement_exist == 0) { $_SESSION['liste_ref_conditionnement'][$ctliste_ref_conditionnement]['CHAR_C_ABREVIATION2'] = $produit['code_conditionnement'].$produit['code_taille']; $_SESSION['liste_ref_conditionnement'][$ctliste_ref_conditionnement]['CHAR_C_TITRE'] = $produit['libelle_conditionnement'].' '.$produit['libelle_taille']; } } function formatage_liste_ref_tarif($produit) { //$_SESSION['liste_ref_tarif']; $ctliste_ref_tarif = count($_SESSION['liste_ref_tarif']); $ref_tarif_exist = 0; for ($i = 0; $i < $ctliste_ref_tarif; $i++) { if ($_SESSION['liste_ref_tarif'][$i]['CHAR_CODE_COURT'] == $produit['tarif_id']) { $ref_tarif_exist = 1; break; } } if ($ref_tarif_exist == 0) { $_SESSION['liste_ref_tarif'][$ctliste_ref_tarif]['ID_AQUILA'] = $produit['id']; $_SESSION['liste_ref_tarif'][$ctliste_ref_tarif]['CHAR_CODE_COURT'] = $produit['tarif_id']; $_SESSION['liste_ref_tarif'][$ctliste_ref_tarif]['VAL_RT_PRIXPART'] = $produit['Prix_Vente_TTC']; } } function formatage_liste_ref_couleurs($produit) { //$_SESSION['liste_ref_couleurs']; $couleurs = trim($produit['Couleur_fleur']); $tab_couleurs = explode(',', $couleurs); $cttab_couleurs = count($tab_couleurs); for ($i = 0; $i < $cttab_couleurs; $i++) { $couleurexist = 0; $ctliste_couleur = count($_SESSION['liste_ref_couleurs']); //echo $tab_couleurs[$j].'--->'.trim(strtolower($tab_couleurs[$i])).'
'; for ($j = 0; $j < $ctliste_couleur; $j++) { if ($tab_couleurs[$j] == trim(strtolower($tab_couleurs[$i]))) { $couleurexist = 1; break; } } if ($couleurexist == 0 && trim(strtolower(stripAccents($tab_couleurs[$i]))) != '') { $_SESSION['liste_ref_couleurs'][$ctliste_couleur] = trim(strtolower($tab_couleurs[$i])); } } } function formatage_liste_ref_couleurs_feuille($produit) { //$_SESSION['liste_ref_couleurs_feuille'; } function affiche_controle_response($clef, $valeur, $controle_response, $id) { //$txt= "$clef : "; switch ($controle_response) { case 0: //$txt .= $clef.': ---> OK
//'; break; case 1: $txt .= $clef.': ---> le contenu est au format ISO8859-1
'; break; case 3: $txt .= $clef.': ---> le contenu n\'est pas UTF8
'; break; //case 103: $txt.=$clef.': ---> information facultative manquante
';break; case 1003: { $txt .= $id.' '.$clef.': ---> information obligatoire manquante
'; break; $_SESSION['blacklist_produit'][] = $id; } case 1000000: $txt .= $clef.': ---> nouveau balisage XML non géré
'; break; } //$valeur return $txt; } function Affiche_Valeur($tableau, $indentation = 0, $blacklist = array()) { foreach ($tableau as $clef => $valeur) { $controle_response = Controler_valeur($clef, $valeur); $valeur = formatage_valeur($clef, $valeur); $affiche_controle_response = affiche_controle_response($clef, $valeur, $controle_response, $tableau['id']); // Ajoutez l'indentation $log .= str_repeat('   ', $indentation); if (!in_array($clef, $blacklist)) { // Affiche la clé et la valeur // Si la valeur est un tableau, appelle récursivement la fonction if (is_array($valeur) && !empty($valeur)) { $log .= "
"; Affiche_Valeur($valeur, $indentation + 1); } else { // Si la valeur n'est pas un tableau, affiche la valeur $log .= $affiche_controle_response; } } } return $log; } function formatage_valeur($clef, $valeur) { $valeur = trim($valeur); switch ($clef) { case 'id' : { break; } case 'tarif_id' : { break; } case 'tva_id' : { break; } case 'date' : { break; } case 'libelle1_variete' : { break; } case 'libelle2_variete' : { break; } case 'Nom_vermaculaire_1' : { break; } case 'Nom_vermaculaire_2' : { break; } case 'Rusticite' : { break; } case 'Couleur_fleur' : { break; } case 'Famille_botanique' : { break; } case 'Epoque_floraison' : { break; } case 'Epoque_maturite_fruit' : { break; } case 'Type_fruitier' : { break; } case 'variete_memo_texte' : { break; } case 'variete_texte' : { break; } case 'genre' : { break; } case 'espece' : { break; } case 'variete' : { break; } case 'code_famille' : { break; } case 'Exposition1' : { break; } case 'Exposition2' : { break; } case 'Exposition3' : { break; } case 'Exposition4' : { break; } case 'Exposition_solaire' : { break; } case 'Flashcode' : { break; } case 'Type_feuillage' : { break; } case 'Libre' : { break; } case 'Nature_sol' : { break; } case 'Maritime_vent' : { break; } case 'Melifere_odorant_couvre_sol' : { break; } case 'Hauteur_Mini' : { break; } case 'Hauteur_Maxi' : { break; } case 'Largeur_Mini' : { break; } case 'Largeur_Maxi' : { break; } case 'libelle_conditionnement' : { break; } case 'poids_conditionnement' : { break; } case 'libelle_taille' : { break; } case 'libelle1_article' : { break; } case 'libelle2_article' : { break; } case 'prix_base_article' : { break; } case 'unite_vente' : { break; } case 'poids_article' : { break; } case 'stk_dispo' : { break; } case 'nouveaute' : { break; } case 'libelle_famille' : { break; } case 'libelle_sous_famille' : { break; } case 'libelle_forme' : { break; } case 'code_variete' : { break; } case 'code_conditionnement' : { break; } case 'code_taille' : { break; } case 'colonne52' : { break; } case 'colonne53' : { break; } case 'colonne54' : { break; } case 'colonne55' : { break; } case 'colonne56' : { break; } case 'colonne57' : { break; } case 'colonne58' : { break; } case 'colonne59' : { break; } case 'colonne60' : { break; } case 'colonne61' : { break; } case 'colonne62' : { break; } case 'colonne63' : { break; } case 'colonne64' : { break; } case 'colonne65' : { break; } case 'code_totalisateur' : { break; } case 'mis_en_avant' : { break; } case 'famille_variete' : { break; } case 'code_regroupement' : { break; } case 'Descriptif_article' : { break; } case 'Texte_Genre' : { break; } case 'Texte_Espece' : { break; } case 'Texte_Entretien' : { break; } case 'Vendabilite' : { break; } case 'Prix_Vente_TTC' : { break; } case 'Stock_disponible' : { break; } case 'date_Maj_Variete' : { break; } case 'date_Maj_Article' : { break; } case 'Date_Dernier_Mvt_Stock' : { break; } case 'Images' : { break; } case 'Statut_Web' : { break; } default : { break; }// champs inconnu; } return $valeur; } function Controler_valeur($clef, $valeur) { $error = 0; //test nul $error += test_encoding($valeur); $type = test_type($valeur); $valeur = trim($valeur); switch ($clef) { case 'id' : { $error += test_obligatoire($valeur); break; } case 'tarif_id' : { $error += test_obligatoire($valeur); break; } case 'tva_id' : { $error += test_null($valeur); break; } case 'date' : { $error += test_null($valeur); break; } case 'libelle1_variete' : { $error += test_null($valeur); break; } case 'libelle2_variete' : { $error += test_null($valeur); break; } case 'Nom_vermaculaire_1' : { $error += test_null($valeur); break; } case 'Nom_vermaculaire_2' : { $error += test_null($valeur); break; } case 'Rusticite' : { $error += test_null($valeur); break; } case 'Couleur_fleur' : { $error += test_null($valeur); break; } case 'Famille_botanique' : { $error += test_null($valeur); break; } case 'Epoque_floraison' : { $error += test_null($valeur); break; } case 'Epoque_maturite_fruit' : { $error += test_null($valeur); break; } case 'Type_fruitier' : { $error += test_null($valeur); break; } case 'variete_memo_texte' : { $error += test_null($valeur); break; } case 'variete_texte' : { $error += test_null($valeur); break; } case 'genre' : { $error += test_null($valeur); break; } case 'espece' : { $error += test_null($valeur); break; } case 'variete' : { $error += test_null($valeur); break; } case 'code_famille' : { $error += test_obligatoire($valeur); break; } case 'Exposition1' : { $error += test_null($valeur); break; } case 'Exposition2' : { $error += test_null($valeur); break; } case 'Exposition3' : { $error += test_null($valeur); break; } case 'Exposition4' : { $error += test_null($valeur); break; } case 'Exposition_solaire' : { $error += test_null($valeur); break; } case 'Flashcode' : { $error += test_null($valeur); break; } case 'Type_feuillage' : { $error += test_null($valeur); break; } case 'Libre' : { $error += test_null($valeur); break; } case 'Nature_sol' : { $error += test_null($valeur); break; } case 'Maritime_vent' : { $error += test_null($valeur); break; } case 'Melifere_odorant_couvre_sol' : { $error += test_null($valeur); break; } case 'Hauteur_Mini' : { $error += test_null($valeur); break; } case 'Hauteur_Maxi' : { $error += test_null($valeur); break; } case 'Largeur_Mini' : { $error += test_null($valeur); break; } case 'Largeur_Maxi' : { $error += test_null($valeur); break; } case 'libelle_conditionnement' : { $error += test_null($valeur); break; } case 'poids_conditionnement' : { $error += test_null($valeur); break; } case 'libelle_taille' : { $error += test_null($valeur); break; } case 'libelle1_article' : { $error += test_null($valeur); break; } case 'libelle2_article' : { $error += test_null($valeur); break; } case 'prix_base_article' : { $error += test_null($valeur); break; } case 'unite_vente' : { $error += test_null($valeur); break; } case 'poids_article' : { $error += test_null($valeur); break; } case 'stk_dispo' : { break; } case 'nouveaute' : { $error += test_null($valeur); break; } case 'libelle_famille' : { $error += test_null($valeur); break; } case 'libelle_sous_famille' : { $error += test_null($valeur); break; } case 'libelle_forme' : { $error += test_null($valeur); break; } case 'code_variete' : { $error += test_obligatoire($valeur); break; } case 'code_conditionnement' : { $error += test_obligatoire($valeur); break; } case 'code_taille' : { $error += test_null($valeur); break; } case 'colonne52' : { $error += test_null($valeur); $error += test_null($valeur); break; } case 'colonne53' : { $error += test_null($valeur); break; } case 'colonne54' : { $error += test_null($valeur); break; } case 'colonne55' : { $error += test_null($valeur); break; } case 'colonne56' : { $error += test_null($valeur); break; } case 'colonne57' : { $error += test_null($valeur); break; } case 'colonne58' : { $error += test_null($valeur); break; } case 'colonne59' : { $error += test_null($valeur); break; } case 'colonne60' : { $error += test_null($valeur); break; } case 'colonne61' : { $error += test_null($valeur); break; } case 'colonne62' : { $error += test_null($valeur); break; } case 'colonne63' : { $error += test_null($valeur); break; } case 'colonne64' : { $error += test_null($valeur); break; } case 'colonne65' : { $error += test_null($valeur); break; } case 'code_totalisateur' : { $error += test_null($valeur); break; } case 'mis_en_avant' : { $error += test_null($valeur); break; } case 'famille_variete' : { $error += test_null($valeur); break; } case 'code_regroupement' : { $error += test_null($valeur); break; } case 'Descriptif_article' : { $error += test_null($valeur); break; } case 'Texte_Genre' : { $error += test_null($valeur); break; } case 'Texte_Espece' : { $error += test_null($valeur); break; } case 'Texte_Entretien' : { $error += test_null($valeur); break; } case 'Vendabilite' : { $error += test_null($valeur); break; } case 'Prix_Vente_TTC' : { $error += test_obligatoire($valeur); break; } case 'Stock_disponible' : { break; } case 'date_Maj_Variete' : { $error += test_null($valeur); break; } case 'date_Maj_Article' : { $error += test_null($valeur); break; } case 'Date_Dernier_Mvt_Stock' : { $error += test_null($valeur); break; } case 'Images' : { $error += test_null($valeur); break; } case 'Statut_Web' : { $error += test_null($valeur); break; } default : { $error += 1000000; break; }// champs inconnu; } return (int)$error; } function test_obligatoire($valeur) { if (empty($valeur))return 1000; else return 0; } function test_null($valeur) { if (empty($valeur))return 100; else return 0; } function test_type($chaine) { if (is_numeric($chaine)) { return 10; } else { $type = gettype($chaine); switch ($type) { case "boolean": { return 20; break; } case "integer": { return 10; break; } case "double": { return 10; break; } case "string": { return 30; break; } case "array": { return 40; break; } case "object": { return 50; break; } case "resource": { return 60; break; } case "resource (closed)": { return 70; break; } case "NULL": { return 80; break; } case "unknown type": { return 90; break; } } } } function test_encoding($chaine) { $encodage = mb_detect_encoding($chaine, "UTF-8, ISO-8859-1"); if ($encodage === "UTF-8") { //echo "La chaîne est encodée en UTF-8."; return 0; } elseif ($encodage === "ISO-8859-1") { return 1; //echo "La chaîne est encodée en ISO-8859-1 (Latin-1)."; } else { return 3; // echo "L'encodage de la chaîne n'est pas reconnu comme UTF-8 ou ISO-8859-1."; } } function display_xml_error($error, $xml) { $return = $xml[$error->line - 1] . "\n"; $return .= str_repeat('-', $error->column) . "^\n"; switch ($error->level) { case LIBXML_ERR_WARNING: $return .= "Warning $error->code: "; break; case LIBXML_ERR_ERROR: $return .= "Error $error->code: "; break; case LIBXML_ERR_FATAL: $return .= "Fatal Error $error->code: "; break; } $return .= trim($error->message) . "\n Line: $error->line" . "\n Column: $error->column"; if ($error->file) { $return .= "\n File: $error->file"; } return "$return\n\n--------------------------------------------\n\n"; } ?>