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 haut function 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=' '; $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 .= '
'; // Affichage des etoiles $result=0; if($row->$rating_count!=0) $result = number_format(intval($row->$rating_sum) / intval( $row->$rating_count ),2)*20; $html .= '
'; 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 .='
  ('.$result.')

'; $html .= '
'; 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 unes function 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 false, the print button links to a popup window. If true 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 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&task=view&id=' . $row->id .'&pop=1&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' ) ) { ?>
'. afficher_vote ($row, 2) .'
Seperator'; // 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 ); ?> canEdit ) { // edit icon when item title set to hide ?>
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 ) ); ?>
text ); ?>
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 != '' ) { ?>
Content item icon title;?>
Content item icon title;?>
Content item icon
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 ', '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 = '
Horaires

{tab='.$jourJ.'}Seperator'.$prog->nom_lieu.' - '.$prog->ville_lieu.' ('.$prog->cp_lieu.') Seperator '; } 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 .= 'Afficher les jours suivants >>
'; } $id_representation = $prog->id_representation; $txt .= '
'; $nblieu++; $txt .= '
'; $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.'}Seperator'.$prog->nom_lieu.' - '.$prog->ville_lieu.' ('.$prog->cp_lieu.') Seperator
'; } 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 .= 'Afficher les jours suivants >>
'; } $txt .= '
'; }// 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 = ''; } $style = 'style="text-decoration: none; color: #333;"'; if ( $href ) { $style = ''; } else{ $href = '#'; } $mousover = 'return overlib(\''. $tooltip .'\''. $title .', BELOW, RIGHT'. $width .');'; $tip = "\n"; if ( $link ) { $tip .= ''. $text .''; } else { $tip .= ''. $text .''; } 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 ', '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 = ' {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 ', '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 .= 'Afficher les jours suivants >>
'; } }// si il y a des programmation //echo $txt; $txt = '

Mer.02/04

13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05

Jeu.03/04

13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05

Ven.04/04

13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05

Sam.05/04

13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05

Dim.06/04

13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05

Lun.07/04

13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05

Mar.08/04

13:40 , 14:15 , 15:45 , 16:30 , 17:50 , 18:45 , 20:00 , 21:00 , 22:05
'; $header = " "; $header .= ""; $header .= " "; $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*/ } ?>