// 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 = '<br /><a href="index.php?option=com_cityguide&task=viewDetail&id='.$prog->id_lieu.'&type=1&id_genre='.$prog->id_genre.'" title="'.$prog->nom_lieu.'" >'.$prog->nom_lieu.' '.$prog->ville_lieu.' ('.$prog->cp_lieu.') </a> <div id="prog'.$nblieu.'"> {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 .= '<a href="javascript:void(0);" onClick="progSuivante('.$nblieu.','.$id_representation.', '.$date_param.');">Suivant >></a><br />'; } $id_representation = $prog->id_representation; $txt .= '</div>'; $nblieu++; $txt .= '<br /> <a href="index.php?option=com_cityguide&task=viewDetail&id='.$prog->id_lieu.'&type=1&id_genre='.$prog->id_genre.'" title="'.$prog->nom_lieu.'" >'.$prog->nom_lieu.' '.$prog->ville_lieu.' ('.$prog->cp_lieu.') </a> <div id="prog'.$nblieu.'">'; $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 <br />'; if(!empty($prog->av_premiere)) $tip .= constant("_".$prog->id_genre."evenement").' en avant première <br />'; if(!empty($prog->nouveaute)) $tip .= "Nouveauté <br />"; if(!empty($prog->vo)) $tip .= constant("_".$prog->id_genre."evenement").' en VO<br />'; if(!empty($prog->prix)) $tip .= "Prix : ".$prog->prix."<br />"; if(!empty($prog->commentaire)) $tip .= "Informations complémentaire : ".$prog->commentaire."<br />"; 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 .= '<a href="javascript:void(0);" onClick="progSuivante('.$nblieu.','.$id_representation.', '.$date_param.');">Suivant >></a><br />'; } $txt .= '</div>'; }// fin de si il y a des programmation } return $txt;}