All pastes #967431 Raw Edit

Sylvain

public php v1 · immutable
·published 2008-04-02 12:40 UTC
rendered paste body
// 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&eacute;";					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&egrave;re <br />';					if(!empty($prog->nouveaute))						$tip .= "Nouveaut&eacute; <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&eacute;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;}