All pastes #979651 Raw Edit

Cory

public php v1 · immutable
·published 2008-04-10 14:33 UTC
rendered paste body
<?php// no direct accessdefined( '_VALID_MOS' ) or die( 'Appel direct interdit.' );// Pour la liste dÈroulante gÈnÈrer en AJAXheader('Content-type: text/html; charset=iso-8859-1'); // load the html drawing classrequire_once( $mainframe->getPath( 'front_html', 'com_cityguide' ) );require_once( 'voc_rubrique.php' ); // permet d'aller chercher le vocabulaire des rubriques (genres)$mainframe->setPageTitle( 'CityGuide' );switch( $task ) {			case 'viewUnes':		viewUnes( $option );		break;			case 'recordVote':		recordVote();		break;			case  'viewDetail':		viewDetail($option);		break;			case 'programmation':		programmation($id, $type);		break;		case 'progSuivante':		progSuivante();		break;			default:		viewUnes( $option );		break;}// Fonction qui permet a partir d'un idGenre de rechercher ces parents et de les retourner sous forme de tableau// idGenre : correspond ‡ l'identifiant genre, a partir duquel nous allons rechercher ces parents (les niveaux superieur au niveau du genre donnÈ en parametre)// niveau: permet de retourner les parents d'un niveau prÈdÈfini, si niveau = 0 on retourne les parents de tout les niveaux// Retourne un tableau des idgenre du niveau le plus bas au niveau le plus hautfunction searchFils($idGenre, $niveau=0){	global $database;		// controle de l'existance du genre	$sqlexiste = "SELECT count(*) FROM #__genre WHERE id = '$idGenre'";	$database->setQuery($sqlexiste);	$existe = $database->query();	$tab = array();	$index = 0;	// si le genre passÈ en parametre existe bien	if($existe>0)	{				while(!empty($idGenre))		{			$sql = "SELECT id, name, niveau, parent FROM #__genre WHERE id = '$idGenre'";			$database->setQuery($sql);			$database->loadObject($info);			// Si on recupere les genre de tout les niveaux			if(empty($niveau))			{				if(!empty($idGenre))				{					$tab[$index][0] = $info->name;					$tab[$index][1] = $info->id;					$index++;				}			}			else // si on recupere les genres d'un seul niveau			{				if(!empty($idGenre) && $info->niveau == $niveau)				{					$tab[$index][0] = $info->name;					$tab[$index][1] = $info->id;					$index++;				}			}			$idGenre = $info->parent;		}	}	return $tab;	}// Fonction pour voter// row : correspond ‡ l'objet lieu ou evt// objet : permet de dÈfinir s'il s'agit d'un evt (0) ou d'un lieu (1) ou d'un article (3)function afficher_vote($row, $objet=0){    global $mosConfig_live_site,$mainframe,$entete_vote,$database,$mosConfig_absolute_path;		$script='		<script  type="text/javascript" src="'.$mosConfig_live_site.'/components/com_cityguide/js/ajax.php"></script>		<script type="text/javascript">			 var vote_etoile_langue = new Array();			 vote_etoile_langue[\'UPDATING\'] = \'Mise ‡ jour...\';			 vote_etoile_langue[\'THANKS\'] = \'Votre vote est enregistrÈ!\';			 vote_etoile_langue[\'ALREADY_VOTE\'] = \'Vous avez dÈj‡ votÈ!\';			 vote_etoile_langue[\'VOTES\'] = \'votes\';			 vote_etoile_langue[\'VOTE\'] = \'vote\';		</script>		<link href="'.$mosConfig_live_site.'/components/com_cityguide/css/ajaxvote.php" rel="stylesheet" type="text/css" />';				$mainframe->addCustomHeadTag($script);			if($objet == 0)		$suffixe = "_evt";		if($objet == 1)		$suffixe = "_lieu";			if($objet == 2)		$suffixe = "_article";	$rating_sum = "rating_sum".$suffixe; 	$rating_count = "rating_count".$suffixe; 	$id = "id".$suffixe; 		$html .= '<form method="post" action="index.php?option=com_cityguide&task=recordVote" id="formulaire">';	// Affichage des etoiles	$result=0;	if($row->$rating_count!=0)			$result = number_format(intval($row->$rating_sum) / intval( $row->$rating_count ),2)*20;	$html .= '<div class="jwajaxvote-inline-rating">	<ul class="jwajaxvote-star-rating">		<li id="rating'.$row->$id.'" class="current-rating" style="width:'.$result.'%;"></li>		<li><a href="javascript:void(null)" onclick="javascript:VoteAjax('.$row->$id.',1, '.$objet.');" title="1 Ètoile sur 5" class="one-star">1</a></li>		<li><a href="javascript:void(null)" onclick="javascript:VoteAjax('.$row->$id.',2, '.$objet.');" title="2 Ètoiles sur 5" class="two-stars">2</a></li>		<li><a href="javascript:void(null)" onclick="javascript:VoteAjax('.$row->$id.',3, '.$objet.');" title="3 Ètoiles sur 5"  class="three-stars">3</a></li>		<li><a href="javascript:void(null)" onclick="javascript:VoteAjax('.$row->$id.',4, '.$objet.');" title="4 Ètoiles sur 5" class="four-stars">4</a></li>		<li><a href="javascript:void(null)" onclick="javascript:VoteAjax('.$row->$id.',5, '.$objet.');" title="5 Ètoiles sur 5" class="five-stars">5</a></li>  	</ul>';  			if($row->$rating_count > 1) {		$result = $row->$rating_count." votes";	} else { 		if($row->$rating_count == 1)			$result = $row->$rating_count." vote";		else			$result = $result." vote";	}			$html .='<div id="'.$objet.'zoneValeur'.$row->$id.'">&nbsp;&nbsp;('.$result.')</div></div><br />';	$html .= '</form>';		return $html;	}function recordVote() {	global $database;		// RÈcuperation des variables	$user_rating 	= intval( $_GET['user_rating']);	$cid 			= intval( $_GET['cid']);	$objet 			= intval( $_GET['objet']); // permet de dÈfinir si on vote pour un evt (0) ou un lieu(1)	$currip = ( phpversion() <= '4.2.1' ? @getenv( 'REMOTE_ADDR' ) : $_SERVER['REMOTE_ADDR'] );		$nom_id = "id"; // Nom de l'identifiant dans la requete	if($objet == 0)	{		$table = "#__evenement";		$nomCookie = 'vote_evt'.$cid;		$suffixe = "evt";	}	if($objet == 1)	{		$table = "#__lieu";		$nomCookie = 'vote_lieu'.$cid;		$suffixe = "lieu";	}	if($objet == 2)	{		$table = "#__content_rating";		$nomCookie = 'vote_article'.$cid;		$suffixe = "article";		$nom_id = "content_id";	}			$rating_sum = "rating_sum_".$suffixe;	$rating_count = "rating_count_".$suffixe;			$query = "SELECT *"			. "\n FROM $table"			. "\n WHERE $nom_id ='". (int) $cid."'";		$database->setQuery( $query );	$database->loadObject($row);	// Securite par cookie et IP	if($_COOKIE[$nomCookie] || $currip == ($row->lastip))	{		// envoie a la page Javascript les infos actualisÈ (vote pris en compte)		$sql = "SELECT rating_sum AS $rating_sum, rating_count AS $rating_count FROM $table WHERE $nom_id='".$cid."'";		$database->setQuery( $sql );		$tab = $database->loadRow();		echo '0:'; // dÈj‡ votÈ		echo $tab[0].":"; // rating_sum		echo $tab[1].":"; // rating_count		exit();	}	else	{		setcookie($nomCookie, $nomCookie, time()+86400);  /* expire dans une heure */			if (($user_rating >= 1) and ($user_rating <= 5)) 		{									if($objet == 0 || $objet == 1)			{				$query = "UPDATE $table"				. "\n SET rating_count = rating_count + 1, rating_sum = rating_sum + " . (int) $user_rating . ", lastip = " . $database->Quote( $currip )				. "\n WHERE $nom_id = '" . (int) $cid."'"				;				$database->setQuery( $query );				$database->query() or die( $database->stderr() );								// envoie a la page Javascript les infos actualisÈ (vote pris en compte)				$sql = "SELECT rating_sum, rating_count FROM $table WHERE $nom_id='".$cid."'";				$database->setQuery( $sql );				$tab = $database->loadRow();				echo '1:'; // pas encore votÈ				echo $tab[0].":"; // rating_sum				echo $tab[1].":"; // rating_count				exit();			}			else if ($objet == 2)			{							$sql = "SELECT count(*) FROM $table WHERE $nom_id='".$cid."'";				$database->setQuery( $sql );				$nbElement = $database->loadResult();								if($nbElement > 0)				{					$query = "UPDATE $table"					. "\n SET rating_count = rating_count + 1, rating_sum = rating_sum + " . (int) $user_rating . ", lastip = " . $database->Quote( $currip )					. "\n WHERE $nom_id = '" . (int) $cid."'"					;					$database->setQuery( $query );					$database->query() or die( $database->stderr() );				}				else // on insert la ligne de vote pour cet article				{					$query = "INSERT INTO `$table` (`content_id`, `rating_sum`, `rating_count`, `lastip`) "					. "\n VALUES ('" . (int) $cid."', '" . (int) $user_rating . "', '1', " . $database->Quote( $currip ).")";					$database->setQuery( $query );					$database->query() or die( $database->stderr() );				}								// envoie a la page Javascript les infos actualisÈ (vote pris en compte)				$sql = "SELECT rating_sum AS $rating_sum, rating_count AS $rating_count FROM $table WHERE $nom_id='".$cid."'";				$database->setQuery( $sql );				$tab = $database->loadRow();				echo '1:'; // pas encore votÈ				echo $tab[0].":"; // rating_sum				echo $tab[1].":"; // rating_count				exit();			}		 }	 }}// Fonction qui affiches les unesfunction viewUnes ($option){	global $database;		$id_genre = mosGetParam($_REQUEST,'id_genre');	$aujourdhui = date ("Y-m-d");	// Recherche en BDD des unes pour ce genre et a la date d'aujourd'hui		$sql="SELECT E.id AS id_evt, E.nom AS nom_evt, E.description AS description_evt, E.rating_sum AS rating_sum_evt, E.rating_count AS rating_count_evt,				L.id AS id_lieu, L.nom AS nom_lieu, L.description AS description_lieu, L.rating_sum AS rating_sum_lieu, L.rating_count AS rating_count_lieu,				CG.img_200, C.id AS id_article		FROM #__homepage H		LEFT OUTER JOIN #__representation R ON H.id_representation = R.id		LEFT OUTER JOIN #__lieu L ON H.id_lieu = L.id		LEFT OUTER JOIN #__evenement E ON (H.id_evt = E.id OR R.id_evenement=E.id)		LEFT OUTER JOIN #__content C ON H.id_article = C.id 		LEFT OUTER JOIN #__cg_media CG ON ((CG.id_lieu = L.id OR CG.id_evt = E.id) AND CG.published = '1' AND CG.ordering = '1' AND CG.type_media = 'image')		WHERE H.id_genre = '$id_genre' 		AND H.published= '1'		AND H.date_parution= '$aujourdhui' 		ORDER BY H.position";			$database->setQuery($sql);	$unes = $database->loadObjectList();	HTML_cityguide::viewUnes( $unes, $option, $id_genre );}//************************ Fonction de com_content modifier ************************/**    * Show a content item    * @param object An object with the record data    * @param boolean If <code>false</code>, the print button links to a popup window.  If <code>true</code> then the print button invokes the browser print method.    */    function show( &$row, &$params, &$access, $page=0 ) {        global $mainframe, $hide_js;        global $mosConfig_live_site;        global $_MAMBOTS;        require_once( $mainframe->getPath( 'front_html', 'com_content') );                $mainframe->appendMetaTag( 'description',     $row->metadesc );        $mainframe->appendMetaTag( 'keywords',         $row->metakey );        // adds mospagebreak heading or title to <site> Title        if ( isset($row->page_title) && $row->page_title ) {            $mainframe->setPageTitle( $row->title .' '. $row->page_title );        }        // calculate Itemid        HTML_content::_Itemid( $row );        // determines the link and `link text` of the readmore button & linked title        HTML_content::_linkInfo( $row, $params );        // link used by print button        $print_link = $mosConfig_live_site. '/index2.php?option=com_content&amp;task=view&amp;id=' . $row->id .'&amp;pop=1&amp;page='. $page . $row->Itemid_link;        // process the new bots        $_MAMBOTS->loadBotGroup( 'content' );        $results = $_MAMBOTS->trigger( 'onPrepareContent', array( &$row, &$params, $page ), true );        if ( $params->get( 'item_title' ) || $params->get( 'pdf' )  || $params->get( 'print' ) || $params->get( 'email' ) ) {            ?>			<div id="content_bloc">			<div id="content_bloc_top"></div>			<div id="content_bloc_main">			<div id="content_label_actu"></div>                <?php                // displays Item Title                Title( $row, $params, $access );				echo '<div class="sectiontableentry">'. afficher_vote ($row, 2) .'</div><img src="'. $mosConfig_live_site .'/templates/'. $mainframe->getTemplate() .'/images/seperator.gif" alt="Seperator" width="437" height="1" style="float:left; margin-top:3px; margin-left:15px;" align="bottom" />'; // Affichage des votes                // displays PDF Icon                HTML_content::PdfIcon( $row, $params, $hide_js );                // displays Print Icon                mosHTML::PrintIcon( $row, $params, $hide_js, $print_link );                // displays Email Icon                HTML_content::EmailIcon( $row, $params, $hide_js );                ?>            <?php         } else if ( $access->canEdit ) {             // edit icon when item title set to hide             ?>            <table class="contentpaneopen<?php echo $params->get( 'pageclass_sfx' ); ?>">             <tr>                 <td>                     <?php                     HTML_content::EditIcon( $row, $params, $access );                     ?>                 </td>             </tr>             </table>             <?php          }        if ( !$params->get( 'intro_only' ) ) {            $results = $_MAMBOTS->trigger( 'onAfterDisplayTitle', array( &$row, &$params, $page ) );            echo trim( implode( "\n", $results ) );        }        $results = $_MAMBOTS->trigger( 'onBeforeDisplayContent', array( &$row, &$params, $page ) );        echo trim( implode( "\n", $results ) );        ?>		<div id="content_item_text_nopic">        <?php        // displays Section & Category        HTML_content::Section_Category( $row, $params );        // displays Author Name        HTML_content::Author( $row, $params );        // displays Created Date        HTML_content::CreateDate( $row, $params );        // displays Urls        HTML_content::URL( $row, $params );        ?>                <?php                // displays Table of Contents                HTML_content::TOC( $row );                // displays Item Text                echo ampReplace( $row->text );                ?>        <?php        // displays Modified Date        HTML_content::ModifiedDate( $row, $params );        // displays Readmore button        HTML_content::ReadMore( $row, $params );        ?>		</div>	<div id="content_comment"><a href="#">36&nbsp;rÈactions</a></div>	</div>	<div id="content_bloc_bottom"></div></div><div id="spacer"></div>        <?php        $results = $_MAMBOTS->trigger( 'onAfterDisplayContent', array( &$row, &$params, $page ) );        echo trim( implode( "\n", $results ) );        // displays the next & previous buttons        HTML_content::Navigation ( $row, $params );        // displays close button in pop-up window        mosHTML::CloseButton ( $params, $hide_js );        // displays back button in pop-up window        mosHTML::BackButton ( $params, $hide_js );    }        function Title( &$row, &$params, &$access ) {		global $mosConfig_live_site, $mainframe;        if ( $params->get( 'item_title' ) ) {            if ( $params->get( 'link_titles' ) && $row->link_on != '' ) {                ?>                <div id="content_item_title"><img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/content-item-icon.gif" alt="Content item icon" width="6" height="10" />                    <a href="<?php echo $row->link_on;?>" class="contentpagetitle<?php echo $params->get( 'pageclass_sfx' ); ?>">                        <?php echo $row->title;?></a>                    <?php HTML_content::EditIcon( $row, $params, $access ); ?>				</div>                <?php            } else {                ?>				<div id="content_item_title"><img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/content-item-icon.gif" alt="Content item icon" width="6" height="10" />                    <?php echo $row->title;?>                    <?php HTML_content::EditIcon( $row, $params, $access ); ?>				</div>                <?php            }        } else {            ?>			<div id="content_item_title"><img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/content-item-icon.gif" alt="Content item icon" width="6" height="10" />                <?php HTML_content::EditIcon( $row, $params, $access ); ?>			</div>            <?php        }    }    //************************ FIN fonction de com_content modifier ************************/// Fonction qui permet d'afficher les detail d'un lieu, representation, evt// Parametre passÈ// id : correspond ‡ l'identifiant de l'ÈlÈment a affichÈ// type : correspond au type element (1 -> lieu, 0 -> evt, 2 -> representation)function viewDetail($option){	global $database;	$id = mosGetParam($_GET,'id');	$type = mosGetParam($_GET,'type');	// Correspond ‡ l'id genre prÈselectionnÈ (ex dans la menu on choisi cinÈ, on est donc dans le cinÈma)	// Par contre si on selectionne un lieu dans la homapage principal, on n'a pas prÈselectionnÈ un genre cette variable sera donc vide	$id_genre_actu = mosGetParam($_GET,'id_genre'); 		// Controle que les variables ne soit pas vide	if(empty($id) || ($type!= 0 && $type!= 1 && $type!= 2) )		exit();		// si c'est un lieu	if($type == 1)	{		// Les infos additionnelles		$requete = "SELECT name, title, type		FROM #__lieu_champ		WHERE published = '1'		ORDER BY ordering";				$database->setQuery($requete);		$champs = $database->loadObjectList(); // infos concernant les champs additionelles		$nom_champ = array();		foreach ($champs as $champ)		{			$nom_champ[] = $champ->name;		}		// RÈcuperation des noms des champs complÈmentaires, que nous allons utilisÈ dans la requete $sql		if(count($nom_champ) > 0)			$mes_champ = ", ".implode(", ",$nom_champ);		else			$mes_champ ="";				// informations concernant le lieu (hors medias)		$sql="SELECT L.id AS id_lieu, L.nom AS nom_lieu, L.nom_compl AS nom_compl_lieu, L.adresse AS adresse_lieu, L.adresse_compl AS adresse_compl_lieu,		L.tel AS tel_lieu, L.email AS email_lieu, L.description AS description_lieu, L.horaire AS horaire_lieu, L.prix AS prix_lieu, L.paiement AS paiement_lieu, 		L.handicap AS handicap_lieu, L.site AS site_lieu, L.rating_sum AS rating_sum_lieu, L.rating_count AS rating_count_lieu, V.nom AS ville, V.cp $mes_champ		FROM #__lieu L		INNER JOIN #__localite V ON V.id = L.id_ville		WHERE L.id = '$id' 		AND L.published= '1'";				$genre = "SELECT G.id, name, niveau		FROM #__lieu_genre LG		INNER JOIN #__genre G ON G.id = LG.id_genre		WHERE LG.id_lieu = '$id'		ORDER BY LG.id DESC";				$medias = " SELECT *		FROM #__cg_media		WHERE id_lieu = '$id' 		AND published = '1'		AND type_media <> 'document'		ORDER BY type_media, ordering";			}		// Si c'est un ÈvÈnement	if($type == 0)	{		$genre = "SELECT G.id, name, niveau		FROM #__evenement_genre EG		INNER JOIN #__genre G ON G.id = EG.id_genre		WHERE EG.id_evenement = '$id'		ORDER BY EG.id DESC";				$database->setQuery($genre);		$genres = $database->loadObjectList(); // les genres de l'element					// Si aucun genre n'a Ètais prÈselectionnÈ, nous prennons le premier genre du lieu ou evt, si ce dernier n'est pas de niveau 1		// nous recherchons son parent de niveau 1		// ce genre nous est utile pour les champs additionnel qui sont rattachÈ a un genre particulier (champs additionnel pour le cinema par ex)		if(empty($id_genre_actu))		{			if($genres[0]->niveau == 1)				$id_genre_actu = $genres[0]->id;			else			{				$parent = searchFils($genres[0]->id, 1);				$id_genre_actu = $parent[0][1]; // on recupere l'id du genre parent			}		}				// Les infos additionnelles		$requete = "SELECT name, title, type		FROM #__evenement_champ		WHERE published = '1'		AND id_genre = '$id_genre_actu'		ORDER BY ordering";				$database->setQuery($requete);		$champs = $database->loadObjectList(); // infos concernant les champs additionelles		$nom_champ = array();		foreach ($champs as $champ)		{			$nom_champ[] = $champ->name;		}				// RÈcuperation des noms des champs complÈmentaires, que nous allons utilisÈ dans la requete $sql		if(count($nom_champ) > 0)			$mes_champ = ", ".implode(", ",$nom_champ);		else			$mes_champ ="";				// informations concernant le lieu (hors medias)				$sql = "SELECT E.id AS id_evt, E.nom AS nom_evt, E.nom_compl AS nom_compl_evt, E.description AS description_evt, E.critique AS critique_evt,		E.jeune_public AS jeune_public_evt, E.public_age AS public_age_evt, E.dateSortie AS dateSortie_evt, E.dateSortieL AS dateSortieL_evt, 		E.rating_sum AS rating_sum_evt, E.rating_count AS rating_count_evt $mes_champ		FROM #__evenement E		WHERE E.id = '$id'		AND E.published = '1'";				$medias = " SELECT *		FROM #__cg_media		WHERE id_evt = '$id' 		AND published = '1'		AND type_media <> 'document'		ORDER BY type_media, ordering";	}		if(!empty($sql) || !empty($genre) || !empty($medias) )	{		$database->setQuery($sql);		$database->loadObject($row); // infos concernant l'element				// Si ce n'est pas un evenement car cette requete est exÈcutÈ avant si c'est un evenement		if($type != 0)		{			$database->setQuery($genre);			$genres = $database->loadObjectList(); // les genres de l'element						// Controle qu'il y ai bien des informations ou un genre			if(empty($row) || empty($genres))			{				mosRedirect( 'index.php', "Une erreur est survenu sur cette fiche, veuillez contacter le webmaster." );				exit();			}							// Si aucun genre n'a Ètais prÈselectionnÈ, nous prennons le premier genre du lieu ou evt, si ce dernier n'est pas de niveau 1			// nous recherchons son parent de niveau 1			if(empty($id_genre_actu))			{				if($genres[0]->niveau == 1)					$id_genre_actu = $genres[0]->id;				else				{					$parent = searchFils($genres[0]->id, 1);					$id_genre_actu = $parent[0][1]; // on recupere l'id du genre parent				}			}		}				$database->setQuery($medias);		$medias = $database->loadObjectList();		HTML_cityguide::viewDetail( $row, $genres, $medias, $champs, $option, $type, $id_genre_actu );	}}// 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;	global $mosConfig_live_site, $mainframe;		// 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&nbsp;', 'Lun&nbsp;', 'Mar&nbsp;', 'Mer&nbsp;', 'Jeu&nbsp;', 'Ven&nbsp;', 'Sam&nbsp;');					// 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 = '<div id="module_central_small_red">										<div id="module_central_small_red_header">										  <div id="module_central_red_header_title">Horaires </div>										</div>										<div id="module_central_small_red_main">											<div id="module_central_small_red_inner"><br />					<div id="prog'.$nblieu.'"> {tab='.$jourJ.'}<img src="'. $mosConfig_live_site .'/templates/'. $mainframe->getTemplate() .'/images/module-item-icon.gif" alt="Seperator" width="5" height="7" style="margin-right:5px;" align="bottom" /><a href="index.php?option=com_cityguide&task=viewDetail&id='.$prog->id_lieu.'&type=1&id_genre='.$prog->id_genre.'" title="'.$prog->nom_lieu.'" class="program_title" style="color:#990000;" >'.$prog->nom_lieu.' - '.$prog->ville_lieu.' ('.$prog->cp_lieu.') </a><img src="'. $mosConfig_live_site .'/templates/'. $mainframe->getTemplate() .'/images/seperator_small.gif" alt="Seperator" width="411" height="1" style="margin-top:3px;margin-bottom:5px;" align="bottom" /> ';					}					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.');">Afficher les jours suivants >></a><br />';					}					$id_representation = $prog->id_representation;					$txt .= '</div>';					$nblieu++;					$txt .= '<br /> 					<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&nbsp;', 'Lun&nbsp;', 'Mar&nbsp;', 'Mer&nbsp;', 'Jeu&nbsp;', 'Ven&nbsp;', 'Sam&nbsp;');						// 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.'}<img src="'. $mosConfig_live_site .'/templates/'. $mainframe->getTemplate() .'/images/module-item-icon.gif" alt="Seperator" width="5" height="7" style="margin-right:5px;" align="bottom" /><a href="index.php?option=com_cityguide&task=viewDetail&id='.$prog->id_lieu.'&type=1&id_genre='.$prog->id_genre.'" title="'.$prog->nom_lieu.'" class="program_title" style="color:#990000;" >'.$prog->nom_lieu.' - '.$prog->ville_lieu.' ('.$prog->cp_lieu.') </a><img src="'. $mosConfig_live_site .'/templates/'. $mainframe->getTemplate() .'/images/seperator_small.gif" alt="Seperator" width="411" height="1" style="margin-top:3px;margin-bottom:5px;" align="bottom" /><br /> ';						}					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.');" style="color:#FFFFFF;">Afficher les jours suivants >></a><br />';			}			$txt .= '</div></div>										<div id="module_central_small_red_bottom"></div>										</div>								</div>';		}// fin de si il y a des programmation	}	return $txt;}//************************ Fonction mosToolTip de joomla.php modifier ************************//*** Utility function to provide ToolTips* @param string ToolTip text* @param string Box title* @returns HTML code for ToolTip*/function infoBull( $tooltip, $title='', $width='', $image='tooltip.png', $text='', $href='#', $link=1 ) {	global $mosConfig_live_site;	if ( $width ) {		$width = ', WIDTH, \''.$width .'\'';	}	if ( $title ) {		$title = ', CAPTION, \''.$title .'\'';	}	if ( !$text ) {		$image 	= $mosConfig_live_site . '/includes/js/ThemeOffice/'. $image;		$text 	= '<img src="'. $image .'" border="0" />';	}	$style = 'style="text-decoration: none; color: #333;"';	if ( $href ) {		$style = '';	} else{		$href = '#';	}	$mousover = 'return overlib(\''. $tooltip .'\''. $title .', BELOW, RIGHT'. $width .');';	$tip = "<!-- Tooltip -->\n";	if ( $link ) {		$tip .= '<a href="'. $href .'" onmouseover="'. $mousover .'" onmouseout="return nd();" '. $style .'>'. $text .'</a>';	} else {		$tip .= '<span onmouseover="'. $mousover .'" onmouseout="return nd();" '. $style .'>'. $text .'</span>';	}	return $tip;}//************************ Fin fonction de joomla.php modifier ************************/function progSuivante(){	global $database,$mosConfig_live_site;		$id_representation = mosGetParam($_REQUEST,'id_representation');	$date_start = mosGetParam($_REQUEST,'date_start');		if(empty($date_start) || empty($id_representation))	{		echo "Une erreur s'est produite, veuillez contacter le webmaster. ";		exit();	}	$date_start = substr($date_start,0,4)."-".substr($date_start,4,2)."-".substr($date_start,6,2);		$sql = "SELECT L.id AS id_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 = '$id_representation'		AND P.dateDebut > '$date_start'		ORDER BY R.id_lieu, P.dateDebut, P.horaireDebut";				$database->setQuery($sql);	//echo $database->getQuery();	$progs = $database->loadObjectList();	$txt ="";	$nblieu = 1;		// Si il y a des programmation	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;				$date_onglet = $prog->dateDebut;								// Ecriture de la date dans les ongets				$date = $prog->dateDebut;				// tableau des jours de la semaine				$joursem = array('Dim&nbsp;', 'Lun&nbsp;', 'Mar&nbsp;', 'Mer&nbsp;', 'Jeu&nbsp;', 'Ven&nbsp;', 'Sam&nbsp;');				// 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 = ' {tab='.$jourJ.'} ';				}						// 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&nbsp;', 'Lun&nbsp;', 'Mar&nbsp;', 'Mer&nbsp;', 'Jeu&nbsp;', 'Ven&nbsp;', 'Sam&nbsp;');					// 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.','.$prog->id_representation.', '.$date_param.');">Afficher les jours suivants >></a><br />';		}			}// si il y a des programmation	//echo $txt;	$txt = '  <div class="jwts_tabberlive" id="jwts_tab1">    <ul class="jwts_tabbernav">  	       <li id="li_1" class=""><a title="Mer.02/04 " href="javascript:document.getElementById(\'li_1\').className=\'jwts_tabberactive\';alert(document.getElementsByClassName(\'jwts_tabberactive\'));javascript:void(null);">Mer.02/04 </a></li> 	       <li id="li_2" class=""><a title="Jeu.03/04 " href="javascript:document.getElementById(\'li_2\').className=\'jwts_tabberactive\';document.getElementById(\'li_3\').className=\'\';javascript:void(null);">Jeu.03/04 </a></li> 	       <li id="li_3" class="jwts_tabberactive"><a title="Ven.04/04 " href="javascript:void(null);">Ven.04/04 </a></li> 	       <li id="li_4" class=""><a title="Sam.05/04 " href="javascript:document.getElementById(\'li_4\').className=\'jwts_tabberactive\';document.getElementById(\'li_3\').className=\'\';javascript:void(null);">Sam.05/04 </a></li> 	       <li id="li_5" class=""><a title="Dim.06/04 " href="javascript:document.getElementById(\'li_5\').className=\'jwts_tabberactive\';document.getElementById(\'li_3\').className=\'\';javascript:void(null);">Dim.06/04 </a></li> 	       <li id="li_6" class=""><a title="Lun.07/04 " href="javascript:document.getElementById(\'li_6\').className=\'jwts_tabberactive\';document.getElementById(\'li_3\').className=\'\';javascript:void(null);">Lun.07/04 </a></li> 	       <li id="li_7" class=""><a title="Mar.08/04 " href="javascript:document.getElementById(\'li_7\').className=\'jwts_tabberactive\';document.getElementById(\'li_3\').className=\'\';javascript:void(null);">Mar.08/04 </a></li> 	     </ul>    <div class="jwts_tabbertab" title="">      <h2><a href="javascript:void(null);" name="advtab">Mer.02/04 </a></h2>      13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05 </div>    <div class="jwts_tabbertab jwts_tabbertabhide" title="">      <h2><a href="javascript:void(null);" name="advtab">Jeu.03/04 </a></h2>      13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05 </div>    <div class="jwts_tabbertab jwts_tabbertabhide" title="">      <h2><a href="javascript:void(null);" name="advtab">Ven.04/04 </a></h2>      13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05 </div>    <div class="jwts_tabbertab jwts_tabbertabhide" title="">      <h2><a href="javascript:void(null);" name="advtab">Sam.05/04 </a></h2>      13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05 </div>    <div class="jwts_tabbertab jwts_tabbertabhide" title="">      <h2><a href="javascript:void(null);" name="advtab">Dim.06/04 </a></h2>      13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05 </div>    <div class="jwts_tabbertab jwts_tabbertabhide" title="">      <h2><a href="javascript:void(null);" name="advtab">Lun.07/04 </a></h2>      13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05 </div>    <div class="jwts_tabbertab jwts_tabbertabhide" title="">      <h2><a href="javascript:void(null);" name="advtab">Mar.08/04 </a></h2>      13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05 </div>  </div>';	$header = "	<!-- JoomlaWorks \"Tabs & Slides\" Plugin (v2.3) starts here -->			<style type=\"text/css\" media=\"screen\">		@import \"".$mosConfig_live_site."/mambots/content/plugin_jw_ts/tabs_slides.css\";	</style>	<style type=\"text/css\" media=\"print\">.jwts_tabbernav{display:none;}</style>	<script type=\"text/javascript\">var jwts_slideSpeed=30; var jwts_timer=10;</script>	<script type=\"text/javascript\" src=\"".$mosConfig_live_site."/mambots/content/plugin_jw_ts/tabs_slides.js\"></script>	";	$header .= "<script type=\"text/javascript\" src=\"".$mosConfig_live_site."/mambots/content/plugin_jw_ts/tabs_slides_def_loader.js\"></script>";	$header .= "	<!-- ttttttttttttttttttttttttttttttttttttttttt -->	";	$txt = $header.$txt;		echo $txt;	//a metre dans le code	/*global $_MAMBOTS; // variables globale des Mambots	$row_bot = new t(); // Nouvelle instance de cette classe t, dÈclarer dans cityguide.html.php, class crÈer uniquement pour le mambot	$row_bot->text = $txt; // dÈfinir la propritÈt text de cet objet (corp du msg)	$_MAMBOTS->loadBotGroup( 'content' ); // charger les bots de contenu		$params =& new mosParameters( '' ); // pas de paramËtre	$results = $_MAMBOTS->trigger( 'onPrepareContent', array( &$row_bot, &$params, 0 ), true ); // execute l'action des bots	echo $row_bot->text; // remplace le corp du msg par le resultat des bots*/	}?>