// Fonction qui permet d'afficher les detail sur les horaires (sous forme d'onglet) d'un lieu, representation, evt sur un horizon du mois en cours + 1 mois
// Parametre passé
// id : correspond à l'identifiant de l'élément a affiché
// type : correspond au type element (0 -> evt, 1 -> lieu, 2 -> representation)
function programmation($id=0, $type=0, $limitStart=0)
{
global $database;
// controle
if(empty($id))
exit();
$suivant = false; // variable qui permet de dire si on va ou non afficher le bouton suivant
// Si nous un evenement
if($type == 0)
{
$aujourdhui = date ('Y-m-d');
$sql = "SELECT L.id AS id_lieu, L.nom AS nom_lieu, V.nom AS ville_lieu, V.cp AS cp_lieu, R.id_genre, P.dateDebut, P.horaireDebut,
P.horaireFin, P.annuler, P.av_premiere, P.nouveaute, P.vo, P.prix, P.commentaire, R.id AS id_representation
FROM #__programmation P
INNER JOIN #__representation R ON R.id = P.id_representation
INNER JOIN #__lieu L ON R.id_lieu = L.id
INNER JOIN #__localite V ON L.id_ville = V.id
INNER JOIN #__evenement E ON R.id_evenement = E.id
WHERE R.id_evenement = '$id'
AND P.dateDebut >= '$aujourdhui'
ORDER BY R.id_lieu, P.dateDebut, P.horaireDebut";
$database->setQuery($sql);
//echo $database->getQuery();
$progs = $database->loadObjectList();
$txt ="";
if(count($progs)>0)
{
$init = false; // Permet d'initialiser la parcours des resultats
$suivant = false; // indique s'il faut un bouton suivant ou pas
$nbOnglet = 1; // compteur d'onglet par lieux
foreach ($progs as $prog)
{
// on passe dans cette condition uniquement la premiere fois, pour initialiser les variables
if($init == false)
{
$lieu = $prog->id_lieu;
$id_representation = $prog->id_representation;
$date_onglet = $prog->dateDebut;
$nblieu = 1;
// Ecriture de la date dans les ongets
$date = $prog->dateDebut;
// tableau des jours de la semaine
$joursem = array('Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.');
// extraction des jour, mois, an de la date
list($annee, $mois, $jour) = explode('-', $date);
// calcul du timestamp
$timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
// affichage du jour de la semaine
$jourJ = $joursem[date("w",$timestamp)].$jour."/".$mois." ";
// Infos sur le lieu
// on passe en parametre a la fonction viewDetail l'id du lieu ou evt ou representation, ainsi qu'un type
//1 pour lieu, 2 pour evt, 3 pour representation
$txt = '
'.$prog->nom_lieu.' '.$prog->ville_lieu.' ('.$prog->cp_lieu.')
{tab='.$jourJ.'} ';
}
if($lieu != $prog->id_lieu)
{
// Infos sur le lieu
// on passe en parametre a la fonction viewDetail l'id du lieu ou evt ou representation, ainsi qu'un type
//1 pour lieu, 2 pour evt, 3 pour representation
$txt .= ' {/tabs} ';
// Si plus de 7 onglets on fait apparaitre le bouton suivant
if($nbOnglet > 7)
{
// on supprime les "-" pour pouvoir passé la date en parametre
$date_param = str_replace( "-", "", $date );
$txt .= '
Suivant >>';
}
$id_representation = $prog->id_representation;
$txt .= '
';
$nblieu++;
$txt .= '
'.$prog->nom_lieu.' '.$prog->ville_lieu.' ('.$prog->cp_lieu.')
';
$lieu = $prog->id_lieu;
$nbOnglet = 0; // reinitialise le compteur
}
// Pour faire afficher uniquement 7 onglets;
if($nbOnglet < 7)
{
// creation d'un nouvelle onglet, a chaque fois qu'on change de date
if($date_onglet != $prog->dateDebut)
{
$nbOnglet++; // compteur d'onglet par lieux
$date_onglet = $prog->dateDebut;
// Ecriture de la date dans les ongets
$date = $prog->dateDebut;
// tableau des jours de la semaine
$joursem = array('Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.');
// extraction des jour, mois, an de la date
list($annee, $mois, $jour) = explode('-', $date);
// calcul du timestamp
$timestamp = mktime (0, 0, 0, $mois, $jour, $annee);
// affichage du jour de la semaine
$jourJ = $joursem[date("w",$timestamp)].$jour."/".$mois." ";
$txt .= ' {tab='.$jourJ.'} ';
}
else
{
if($init == true)
$txt .= ", ";
else
$init = true;
}
}
else // si il y a plus de 7 onglets
{
if($date_onglet != $prog->dateDebut)
$nbOnglet++; // compteur d'onglet par lieux
else
$txt .= ", ";
}
// On affiche tout les horaires, mais uniquement dans les 7 premiers onglets affiché
if($nbOnglet <= 7)
{
// contruction du contnu des onglets, ici les horaires (si il y a des horaires)
$horaire = "Horaire non communiqué";
if(!empty($prog->horaireDebut))
$horaire = substr($prog->horaireDebut,0,5);
if(!empty($prog->horaireFin))
$horaire .= " - ".substr($prog->horaireDebut,0,5);
// En infosbulles nous allons afficher toutes les infos complémentaire à la séance
$tip ="";
if(!empty($prog->annuler))
$tip = 'ANNULER
';
if(!empty($prog->av_premiere))
$tip .= constant("_".$prog->id_genre."evenement").' en avant première
';
if(!empty($prog->nouveaute))
$tip .= "Nouveauté
";
if(!empty($prog->vo))
$tip .= constant("_".$prog->id_genre."evenement").' en VO
';
if(!empty($prog->prix))
$tip .= "Prix : ".$prog->prix."
";
if(!empty($prog->commentaire))
$tip .= "Informations complémentaire : ".$prog->commentaire."
";
if(!empty($tip))
$tip = infoBull( $tip );
// On ecris les horaires et info bulle dans les onglets
$txt .= $horaire." ".$tip;
} // fin de si de plus de 7 onglets
}
$txt .= ' {/tabs} ';
// Si plus de 7 onglets on fait apparaitre le bouton suivant
if($nbOnglet > 7)
{
// on supprime les "-" pour pouvoir passé la date en parametre
$date_param = str_replace( "-", "", $date );
$txt .= '
Suivant >>';
}
$txt .= '
';
}// fin de si il y a des programmation
}
return $txt;
}