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; 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).''; // 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 ) { if ( $params->get( 'item_title' ) ) { if ( $params->get( 'link_titles' ) && $row->link_on != '' ) { ?>
Content item icon title;?>
title;?> 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; } 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) { // les genres de niveau 1 liée à l'événement $genre = "SELECT 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"; // 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; } 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'"; $medias = " SELECT * FROM #__cg_media WHERE id_lieu = '$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 $database->setQuery($genre); $genres = $database->loadObjectList(); // les genres de l'element $database->setQuery($medias); $medias = $database->loadObjectList(); HTML_cityguide::viewDetail( $row, $genres, $medias, $champs, $option, $type, $id_genre_actu ); } } ?>