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 .= '
'; 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 Iffalse, 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