Filename : /home/admin/www/dansemusique.net/statique/util/dyna/generate_xml_from_csv.php
<?php
 
function init_xml()
{
	/* printf("<?xml version=\0421.0\042 encoding=\042ISO-8859-1\042 standalone=\042yes\042 ?>\n"); */
 
	printf("<?xml version=\0421.0\042 encoding=\042ISO-8859-1\042 ?>\n");
	printf("<!DOCTYPE xsl:stylesheet SYSTEM \042../../util/lib-xml-xsl/xml-html.dtd\042>\n");
 
	printf("<adherents>\n");
	printf("\n");
}
/*
// $T et $row variable globale 
function P($field) 
{
	if ($field == "")
	{
		return "";
	}
 
        // return trim($$T[$field]); // houla c'est compliqué ça... $($...)) en shell
        return trim($row[$T[$field]]);
}
*/
 
function duree_depuis_creneau($creneau)
{
   // 1. prétraitement
   // $string = 'IM2 Mer 14:30-16:00 soir';
   $string = $creneau;
   $pattern = '/^.*(\d\d:\d\d-\d\d:\d\d).*$/i';
   $creneau = ''; // preg_replace($pattern, $replacement, $string);
 
	$matches = array();
	if (preg_match($pattern, $string, $matches) == 1)
		$creneau = $matches[1];
 
   if ($creneau != '')
   {
      // 1. On décompose le créneau en 2 DateTime
      $arr_creneau = explode('-', $creneau);
      $datetime1 = new DateTime('1973-11-10 ' . $arr_creneau[0]);
      $datetime2 = new DateTime('1973-11-10 ' . $arr_creneau[1]);
 
      // 2. On fait la différence de ces 2 DateTime
      $diff_dateinterval = $datetime1->diff($datetime2);
      $diff_string = $diff_dateinterval->format('%H:%I');
 
      // 3. On convertit cette différence en minutes
      $arr_minutes = explode(':', $diff_string);
 
      $duree = (int)($arr_minutes[0]) * 60 + (int)($arr_minutes[1]);
	  return (string)($duree);
   }
 
   return '';
}
 
function is_empty($str)
{
	return (strcmp($str, "") == 0) ? true : false;
}
 
function is_filled($str)
{
	return (strcmp($str, "") != 0) ? true : false;
}
 
// $T et $row en paramètre
function P(&$T, &$R, $field) 
{
	if ($field == "")
	{
		return "";
	}
 
        // return trim($$T[$field]); // houla c'est compliqué ça... $($...)) en shell
        return trim($R[$T[$field]]);
}
// Attenion : Si on ajoute un champ, il faut aussi le mettre :
//  * \statique\util\dyna\init_title_arrays.php
//  * \statique\util\dyna\generate_xml_from_csv.php
//  * \statique\util\dyna\uniq_adherents_xslt.php
 
// R is row array
function fill_xml(&$T, &$R, &$id_adherent, &$prev_nom_adherent, &$prev_prenom_adherent)
{
/*
	echo("T[nom_adherent]=" . $T["nom_adherent"] . "\n");
	echo("R[T[nom_adherent]]=" . $R[$T["nom_adherent"]] . "\n");
	echo("P(nom_adherent)=" . P($T, $R, "nom_adherent") . "\n");
	print_r($R);
	echo("\n");
*/
	if (P($T, $R, "nom_adherent") == "")
	{
		return;
	}
 
	// S'agit-il du même adherent ?
	if ( ($prev_nom_adherent == P($T, $R, "nom_adherent")) && ($prev_prenom_adherent == P($T, $R, "prenom_adherent")) )
	{
		$id_adherent--;
	}
 
	printf("  <adherent id_adh=\042%d\042 genre=\042%s\042 nom=\042%s\042 prenom=\042%s\042 date_naissance=\042%s\042>\n", $id_adherent, P($T, $R, "genre_adherent"), P($T, $R, "nom_adherent"), P($T, $R, "prenom_adherent"), P($T, $R, "date_naissance"));
	printf("    <valide>y</valide>\n");
	printf("    <datetime>16/12/2011 16:44:42</datetime>\n");
	printf("\n");
	printf("    <responsable genre=\042%s\042 nom=\042%s\042 prenom=\042%s\042 />\n", P($T, $R, "genre_responsable"), P($T, $R, "nom_responsable"), P($T, $R, "prenom_responsable"));
 
	// il faut virer toutes les virgules de l'adresse
 
	printf("    <adresses>\n");
	printf("      <adresse rue=\042%s\042 code_postal=\042%s\042 ville=\042%s\042 />\n", P($T, $R, "adresse"), P($T, $R, "code_postal"), P($T, $R, "ville"));
	printf("    </adresses>\n");
	printf("    <qualites>\n");
	printf("      <qualite>%s</qualite>\n", P($T, $R, "qualite"));
	printf("    </qualites>\n");
	printf("    <tel_fixes>\n");
	printf("      <tel_fixe>%s</tel_fixe>\n", P($T, $R, "tel_fixe"));
	printf("    </tel_fixes>\n");
	printf("    <tel_portables>\n");
	printf("      <tel_portable>%s</tel_portable>\n", P($T, $R, "tel_portable_1"));
	printf("      <tel_portable>%s</tel_portable>\n", P($T, $R, "tel_portable_2"));
	printf("    </tel_portables>\n");
	printf("    <e_mails>\n");
	printf("      <e_mail>%s</e_mail>\n", P($T, $R, "e_mail_1"));
	printf("      <e_mail>%s</e_mail>\n", P($T, $R, "e_mail_2"));
	printf("    </e_mails>\n");
	printf("\n");
	printf("    <activites>\n");
 
 
	$arr_jours = array('lun', 'mar', 'mer', 'jeu', 'ven', 'sam', 'dim', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche');
 
	$lut_jours = array(
		'lun' => 'lundi',
		'mar' => 'mardi',
		'mer' => 'mercredi',
		'jeu' => 'jeudi',
		'ven' => 'vendredi',
		'sam' => 'samedi',
		'dim' => 'dimanche',
		'lundi' => 'lundi',
		'mardi' => 'mardi',
		'mercredi' => 'mercredi',
		'jeudi' => 'jeudi',
		'vendredi' => 'vendredi',
		'samedi' => 'samedi',
		'dimanche' => 'dimanche'
		);
 
/*	
	Valeurs rencontrées : P($T, $R, "formule_cours")
		Atelier
		Eveil musical
		FM
		Initiation musicale
		Instrument
		Matériel
		Pack FM
		Pack culture
*/
 
// Musique ?
if (   (is_filled(P($T, $R, "formule_cours")))
    && (strcmp(P($T, $R, "formule_cours"), "Danse") != 0)	)
{
 
/* Exemple de créneau horaire à parser
	C2 - A Mar 19:00-20:15 -> 10
	C2 - B Lun 19:00-20:15 -> 4
	EEA -> 1								<activite formule="Instrument" type="Cours" musique="Trompette" professeur="" niveau="">
	Eveil Mer 16:00-16:45 -> 10
	FM au Conservatoire -> 1
	IM Mer 17:00-18:00 -> 7
	IM1 Mer 13:30-15:00 -> 13
	IM2 Jeu 17:15-18:45 -> 4
	IM2 Mer 14:30-16:00 -> 15
	IM3 Lun 18:00-19:00 -> 12
	IM4 Mar 18:00-19:00 -> 7
	IMI Jeu 19:30-20:30 -> 12
	MAA1 Mar 18:15-19:15 -> 12
	MAA2 Mar 19:15-20:15 -> 7
	jeudi 18:00-18:30 -> 2
	mercredi 14:30-15:00 -> 16
 */
 
	if (is_filled(P($T, $R, "creneau_horaire")))
	{
		$jour = strtolower(P($T, $R, "jours_de_cours"));
		$niveau = '';
		$heure = '';
		$creneau_horaire = P($T, $R, "creneau_horaire");
		// $heure = preg_replace('/^.*(\d\d:\d\d-\d\d:\d\d).*$/i', '${1}', $creneau_horaire);
 
		// On retire le créneau que l'on met dans "heure" : le reste va dans "more"
		$matches = array();
		if (preg_match('/^.*(\d\d:\d\d-\d\d:\d\d).*$/i', $creneau_horaire, $matches) == 1)
		{
			$heure = $matches[1];
			$more  = trim( preg_replace('/^(.*)\d\d:\d\d-\d\d:\d\d.*$/i', '${1}', $creneau_horaire) );
		}
		else
		{
			$more = $creneau_horaire;
		}
 
		if (is_filled($more))
		{
			$last_field = '';
			$first_part = '';
 
			// On cherche le jour
			$matches = array();
			if (preg_match('/^.* ([^ ]*)$/i', $more, $matches) == 1)
			{
				$last_field = strtolower( $matches[1] );
 
				if (in_array($last_field, $arr_jours))
				{
					// jour trouvé
					$jour = $lut_jours[$last_field];
					// on retire le jour
					$matches = array();
					if (preg_match('/^(.*) [^ ]*$/i', $more, $matches) == 1)
						$niveau = strtoupper( trim( $matches[1] ) ); // jour trouvé : il reste le niveau
				}
				else 	$niveau = $more; // jour non trouvé, rien à retirer
			}
			else	$niveau = $more; // jour non trouvé
 
 
 
		}
 
		printf("      <activite  formule=\042%s\042 type=\042%s\042 musique=\042%s\042 professeur=\042%s\042 niveau=\042%s\042>\n", P($T, $R, "formule_cours"), "Cours", P($T, $R, "cours"), P($T, $R, "professeur_cours"), $niveau);
		printf("        <creneau date=\042%s\042 heure=\042%s\042 duree=\042%s\042 salle=\042%s\042 />\n", $jour, $heure, duree_depuis_creneau($heure), P($T, $R, "salle_cours"));
		printf("      </activite>\n");
	}
 
	if (	(is_filled(P($T, $R, "professeur_fm")))
		 || (is_filled(P($T, $R, "creneau_fm")))		)
	{
		$jour = '';
		$niveau = '';
		$heure = '';
		$creneau_fm = P($T, $R, "creneau_fm");
		// $heure = preg_replace('/^.*(\d\d:\d\d-\d\d:\d\d).*$/i', '${1}', $creneau_fm);
 
		$matches = array();
		if (preg_match('/^.*(\d\d:\d\d-\d\d:\d\d).*$/i', $creneau_fm, $matches) == 1)
		{
			$heure = $matches[1];
			$more  = trim( preg_replace('/^(.*)\d\d:\d\d-\d\d:\d\d.*$/i', '${1}', $creneau_fm) );
		}
		else
		{
			$more = $creneau_fm;
		}
 
		if (is_filled($more))
		{
			$last_field = strtolower( trim( preg_replace('/^.* ([^ ]*)$/i', '${1}', $more) ) );
			$first_part = strtoupper( trim( preg_replace('/^(.*) [^ ]*$/i', '${1}', $more) ) );
 
			if (in_array($last_field, $arr_jours))
				$jour = $lut_jours[$last_field];
			else $first_part .= ' ' . $last_field;
 
			$niveau = $first_part;
		}
 
		printf("      <activite formule=\042%s\042 type=\042%s\042 musique=\042%s\042 professeur=\042%s\042 niveau=\042%s\042>\n", P($T, $R, "formule_cours"), 'FM', P($T, $R, ""), P($T, $R, "professeur_fm"), $niveau);
		printf("        <creneau date=\042%s\042 heure=\042%s\042 duree=\042%s\042 salle=\042%s\042 />\n", $jour, $heure, duree_depuis_creneau($heure), P($T, $R, ""));
		printf("      </activite>\n");
	}
 
	if (	(is_filled(P($T, $R, "professeur_vocal")))
		 || (is_filled(P($T, $R, "creneau_vocal")))		)
	{
		$heure = P($T, $R, "creneau_vocal");
 
		printf("      <activite formule=\042%s\042 type=\042%s\042 musique=\042%s\042 professeur=\042%s\042 niveau=\042%s\042>\n", P($T, $R, "formule_cours"), 'Vocal', P($T, $R, ""), P($T, $R, "professeur_vocal"), P($T, $R, ""));
		printf("        <creneau date=\042%s\042 heure=\042%s\042 duree=\042%s\042 salle=\042%s\042 />\n", strtolower(P($T, $R, "")), $heure, duree_depuis_creneau($heure), P($T, $R, ""));
		printf("      </activite>\n");
	}
 
/*
Babies mardi 17:30-18:15 -> 5				<activite formule="Atelier" type="Atelier" musique="Babies mardi 17:30-18:15" professeur="" niveau="">
Dark Eyes mercredi 19:45-20:30 -> 5			<activite formule="Pack FM" type="Atelier" musique="Dark Eyes mercredi 19:45-20:30" professeur="" niveau="">
Ados mardi 20:15-21:15 -> 6					<activite formule="Pack FM" type="Atelier" musique="Ados mardi 20:15-21:15" professeur="" niveau="">
Jazz jeudi 20:45-22:00 -> 7					<activite formule="Pack FM" type="Atelier" musique="Jazz jeudi 20:45-22:00" professeur="" niveau="">
*/
 
	$atelier_1 = P($T, $R, "atelier_1");
 
    if (is_filled($atelier_1))
	{
		$professeur = P($T, $R, "professeur_atelier");
		$salle = 'R Cassin 1';
		$jour = '';
		$musique = '';
		$heure = '';
		$duree = '';
		$matches = array();
		if (preg_match('/^.*(\d\d:\d\d-\d\d:\d\d).*$/i', $atelier_1, $matches) == 1)
		{
			$heure = $matches[1];
			$more  = trim( preg_replace('/^(.*)\d\d:\d\d-\d\d:\d\d.*$/i', '${1}', $atelier_1) );
		}
		else
		{
			$more = $atelier_1;
		}
 
		if (is_filled($more))
		{
			$last_field = strtolower( trim( preg_replace('/^.* ([^ ]*)$/i', '${1}', $more) ) );
			$first_part =             trim( preg_replace('/^(.*) [^ ]*$/i', '${1}', $more) );
 
			if (in_array($last_field, $arr_jours))
				$jour = $lut_jours[$last_field];
			else $first_part .= ' ' . $last_field;
 
			$musique = $first_part;
 
			if (is_empty($professeur))
				$professeur = 'Christophe';
		}
 
		printf("      <activite formule=\042%s\042 type=\042%s\042 musique=\042%s\042 professeur=\042%s\042 niveau=\042%s\042>\n", P($T, $R, "formule_cours"), 'Atelier', $musique, $professeur, P($T, $R, ""));
		printf("        <creneau date=\042%s\042 heure=\042%s\042 duree=\042%s\042 salle=\042%s\042 />\n", $jour, $heure, duree_depuis_creneau($heure), $salle);
		printf("      </activite>\n");
	}
 
	$atelier_2 = P($T, $R, 'atelier_2');
 
    if (is_filled($atelier_2))
	{
		$professeur = P($T, $R, "professeur_atelier");
		$salle = 'R Cassin 1';
		$jour = '';
		$musique = '';
		$heure = '';
		$duree = '';
		$matches = array();
		if (preg_match('/^.*(\d\d:\d\d-\d\d:\d\d).*$/i', $atelier_1, $matches) == 1)
		{
			$heure = $matches[1];
			$more  = trim( preg_replace('/^(.*)\d\d:\d\d-\d\d:\d\d.*$/i', '${1}', $atelier_1) );
		}
		else
		{
			$more = $atelier_1;
		}
 
		if (is_filled($more))
		{
			$last_field = strtolower( trim( preg_replace('/^.* ([^ ]*)$/i', '${1}', $more) ) );
			$first_part =             trim( preg_replace('/^(.*) [^ ]*$/i', '${1}', $more) );
 
			if (in_array($last_field, $arr_jours))
				$jour = $lut_jours[$last_field];
			else $first_part .= ' ' . $last_field;
 
			$musique = $first_part;
 
			if (is_empty($professeur))
				$professeur = 'Christophe';
		}
 
		printf("      <activite formule=\042%s\042 type=\042%s\042 musique=\042%s\042 professeur=\042%s\042 niveau=\042%s\042>\n", P($T, $R, "formule_cours"), 'Atelier', $musique, $professeur, P($T, $R, ""));
		printf("        <creneau date=\042%s\042 heure=\042%s\042 duree=\042%s\042 salle=\042%s\042 />\n", $jour, $heure, duree_depuis_creneau($heure), $salle);
		printf("      </activite>\n");
	}
}
 
// Danse ?
if (   (strcmp(P($T, $R, "formule_cours"), "Danse") == 0)
    || (is_filled(P($T, $R, "niveau_cours_danse_1")))		// Niveau
    || (is_filled(P($T, $R, "niveau_cours_danse_2")))		// Niveau
    || (is_filled(P($T, $R, "duree_danse")))		// Durée
    || (is_filled(P($T, $R, "jour_de_cours_danse_1")))		// Jour de cours de danse
    || (is_filled(P($T, $R, "jour_de_cours_danse_2")))		// Jour de cours de danse
    || (is_filled(P($T, $R, "creneau_horaire_danse_1")))		// Créneau horaire danse
    || (is_filled(P($T, $R, "creneau_horaire_danse_2")))		// Créneau horaire danse
    )
{
    if (	(is_filled(P($T, $R, "niveau_cours_danse_1")))		// Niveau
		 || (is_filled(P($T, $R, "jour_de_cours_danse_1")))		// Jour de cours de danse
		 || (is_filled(P($T, $R, "creneau_horaire_danse_1")))		// Créneau horaire danse
	   )
	{
		printf("      <activite formule=\042%s\042 type=\042%s\042 musique=\042%s\042 professeur=\042%s\042 niveau=\042%s\042>\n", P($T, $R, ""), "Danse", P($T, $R, "cours_danse"), P($T, $R, "professeur_danse"), P($T, $R, "niveau_cours_danse_1"));
		printf("        <creneau date=\042%s\042 heure=\042%s\042 duree=\042%s\042 salle=\042%s\042 />\n", strtolower(P($T, $R, "jour_de_cours_danse_1")), P($T, $R, "creneau_horaire_danse_1"), P($T, $R, "duree_danse"), P($T, $R, ""));
		printf("      </activite>\n");
	}
 
    if (	(is_filled(P($T, $R, "niveau_cours_danse_2")))		// Niveau
		 || (is_filled(P($T, $R, "jour_de_cours_danse_2")))		// Jour de cours de danse
		 || (is_filled(P($T, $R, "creneau_horaire_danse_2")))		// Créneau horaire danse
	   )
	{
		printf("      <activite formule=\042%s\042 type=\042%s\042 musique=\042%s\042 professeur=\042%s\042 niveau=\042%s\042>\n", P($T, $R, ""), "Danse", P($T, $R, "cours_danse"), P($T, $R, "professeur_danse"), P($T, $R, "niveau_cours_danse_2"));
		printf("        <creneau date=\042%s\042 heure=\042%s\042 duree=\042%s\042 salle=\042%s\042 />\n", strtolower(P($T, $R, "jour_de_cours_danse_2")), P($T, $R, "creneau_horaire_danse_2"), P($T, $R, "duree_danse"), P($T, $R, ""));
		printf("      </activite>\n");
	}
}
 
	printf("    </activites>\n");
	printf("\n");
	printf("    <reglement etat=\042%s\042>\n", P($T, $R, "etat_reglement"));
	printf("      <adhesion mode_paiement=\042%s\042 montant=\042%s\042 numero_remise_cheque=\042%s\042 />\n", P($T, $R, "mode_paiement_adhesion"), P($T, $R, "montant_adhesion"), P($T, $R, "numero_remise_cheque"));
	printf("      <prelevement>%s</prelevement>\n", P($T, $R, "prelevement"));
	printf("      <echeances formule_paiement_cotisation=\042%s\042 montant_cours=\042%s\042 nombre_echeance=\042%s\042>\n", P($T, $R, "formule_paiement_cotisation"), P($T, $R, "montant_cours"), P($T, $R, "nombre_echeance"));
	printf("        <echeance montant=\042%s\042 numero_remise_cheque=\042%s\042 />\n", P($T, $R, "montant_echeance_1"), P($T, $R, "numero_remise_cheque_1"));
	printf("        <echeance montant=\042%s\042 numero_remise_cheque=\042%s\042 />\n", P($T, $R, "montant_echeance_2"), P($T, $R, "numero_remise_cheque_2"));
	printf("        <echeance montant=\042%s\042 numero_remise_cheque=\042%s\042 />\n", P($T, $R, "montant_echeance_3"), P($T, $R, "numero_remise_cheque_3"));
	printf("        <echeance montant=\042%s\042 numero_remise_cheque=\042%s\042 />\n", P($T, $R, "montant_echeance_4"), P($T, $R, "numero_remise_cheque_4"));
	printf("      </echeances>\n");
	printf("      <complement formule_paiement=\042%s\042 montant=\042%s\042 nombre_echeances=\042%s\042 />\n", P($T, $R, "formule_paiement_complement"), P($T, $R, "montant"), P($T, $R, "nombre_echeances"));
	printf("    </reglement>\n");
	printf("\n");
	printf("    <commentaires>\n");
	printf("      <commentaire>%s</commentaire>\n", P($T, $R, "commentaires"));
	printf("    </commentaires>\n");
	printf("\n");
	printf("    <pieces       adhesion=\042%s\042 reglement_interieur=\042%s\042 photo=\042%s\042 enveloppes=\042%s\042 statut=\042%s\042 timbres=\042%s\042 />\n", P($T, $R, "adhesion"), P($T, $R, "reglement_interieur"), P($T, $R, "photo"), P($T, $R, "enveloppes"), P($T, $R, "statut"), P($T, $R, "timbres") );
	printf("    <pieces_danse costume=\042%s\042 licence=\042%s\042 />\n", P($T, $R, "costume"), P($T, $R, "licence") );
	printf("    <pieces_resp  certif=\042%s\042 assurance=\042%s\042 fiche=\042%s\042 engagements=\042%s\042 droit_image=\042%s\042 depart_seul=\042%s\042 />\n", P($T, $R, "certif"), P($T, $R, "assurance"), P($T, $R, "fiche"), P($T, $R, "engagements"), P($T, $R, "droit_image"), P($T, $R, "depart_seul") );
	printf("  </adherent>\n");
	printf("\n");
 
    // next one;
    $id_adherent++;
 
    $prev_nom_adherent    = P($T, $R, "nom_adherent");
    $prev_prenom_adherent = P($T, $R, "prenom_adherent");    
}
 
 
 
function done_xml()
{
	printf("</adherents>\n");
}
 
?>

    Driven by DokuWiki Recent changes RSS feed        
   
Nous vous rappelons que vous disposez d'un droit d'accès, de modification, de rectification et de suppression des données qui vous concernent. Pour exercer ce droit, adressez-vous au webmaster .