All pastes #956501 Raw Edit

Cory

public php v1 · immutable
#956501 ·published 2008-03-25 10:53 UTC
rendered paste body
<?php// no direct accessdefined( '_VALID_MOS' ) or die( 'Appel direct interdit.' );// 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;			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_cinema"></div>				<?php				// displays Item Title				Title( $row, $params, $access );				echo '<td>'.afficher_vote ($row, 2).'</td>'; // 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>		<span class="article_seperator">&nbsp;</span>		<?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 ) {		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 {				?>				<td class="contentheading<?php echo $params->get( 'pageclass_sfx' ); ?>" width="100%">					<?php echo $row->title;?>					<?php HTML_content::EditIcon( $row, $params, $access ); ?>				</td>				<?php			}		} else {			?>			<td class="contentheading<?php echo $params->get( 'pageclass_sfx' ); ?>" width="100%">				<?php HTML_content::EditIcon( $row, $params, $access ); ?>			</td>			<?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;		}		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 );	}}?>