Skip to content
Extraits de code Groupes Projets
inc_presentation.php3 67,8 ko
Newer Older
<?php

//
// Ce fichier ne sera execute qu'une fois
if (defined("_ECRIRE_INC_PRESENTATION")) return;
define("_ECRIRE_INC_PRESENTATION", "1");

include_ecrire ("inc_lang.php3");
utiliser_langue_visiteur();

Antoine Pitrou's avatar
Antoine Pitrou a validé

	global $couleur_foncee, $spip_lang, $spip_lang_rtl, $dir_ecrire;
Fil's avatar
 
Fil a validé
	if (!$aide) return;

	return "&nbsp;&nbsp;<a class='aide' href=\"".$dir_ecrire."aide_index.php3?aide=$aide&var_lang=$spip_lang\" target=\"spip_aide\" ".
Antoine Pitrou's avatar
Antoine Pitrou a validé
		"onclick=\"javascript:window.open(this.href, 'spip_aide', 'scrollbars=yes, ".
		"resizable=yes, width=740, height=580'); return false;\"><img ".
		"src=\"img_pack/aide.gif\" alt=\""._T('info_image_aide')."\" ".
		"title=\""._T('titre_image_aide')."\" width=\"12\" height=\"12\" border=\"0\" ".
		"align=\"middle\"></a>";
}


//
// affiche un bouton imessage
//
function bouton_imessage($destinataire, $row = '') {
	// si on passe "force" au lieu de $row, on affiche l'icone sans verification
	global $connect_id_auteur;
Fil's avatar
Fil a validé
	global $spip_lang_rtl;
	$url = new Link("message_edit.php3");

	// verifier que ce n'est pas un auto-message
	if ($destinataire == $connect_id_auteur)
		return;
	// verifier que le destinataire a un login

	if ($row != "force") {
		$login_req = "select login, messagerie from spip_auteurs where id_auteur=$destinataire AND en_ligne>DATE_SUB(NOW(),INTERVAL 15 DAY)";
		$row = spip_fetch_array(spip_query($login_req));
		if (($row['login'] == "") OR ($row['messagerie'] == "non")) {
			return;
		}
	}
	$url->addVar('dest',$destinataire);
	$url->addVar('new','oui');
	$url->addVar('type','normal');
	if ($destinataire) $title = _T('info_envoyer_message_prive');
	else $title = _T('info_ecire_message_prive');
Fil's avatar
Fil a validé
	$texte_bouton = "<img src='img_pack/m_envoi$spip_lang_rtl.gif' width='14' height='7' border='0'>";
	return "<a href='". $url->getUrl() ."' title=\"$title\">$texte_bouton</a>";
Antoine Pitrou's avatar
Antoine Pitrou a validé
// Cadres
Antoine Pitrou's avatar
Antoine Pitrou a validé

function debut_cadre($style, $icone, $fonction) {
	static $accesskey = 97; // a
Fil's avatar
Fil a validé

	if ($GLOBALS['spip_lang_rtl']) {
		$g = 'd';
		$d = 'g';
Fil's avatar
Fil a validé
		$bgright = 'right';
Fil's avatar
Fil a validé
	} else {
		$g = 'g';
		$d = 'd';
	}

	// accesskey pour accessibilite espace prive
	$accesskey_c = chr($accesskey++);
	$retour_aff .= "<a name='access-$accesskey_c' href='#access-$accesskey_c' accesskey='$accesskey_c'></a>";

Antoine Pitrou's avatar
Antoine Pitrou a validé
	if ($spip_display != 1){
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$retour_aff .= "\n<table class='cadre' cellspacing='0' cellpadding='0'><tr>";
Fil's avatar
Fil a validé
		$retour_aff .= "\n<td class='$style-h$g'></td>";
		$retour_aff .= "\n<td class='$style-h'>";
		if ($fonction) {
Fil's avatar
Fil a validé
			$retour_aff .= "<div style='background: url(img_pack/$icone) no-repeat $bgright; padding: 0px; margin: 0px;'>";
			$retour_aff .= "<img src='img_pack/$fonction'>";
			$retour_aff .= "</div>";
		}
		else $retour_aff .= "<img src='img_pack/$icone'>";
		$retour_aff .= "</td>";
Fil's avatar
Fil a validé
		$retour_aff .= "\n<td class='$style-h$d'></td></tr>";
		$retour_aff .= "\n<tr><td class='$style-$g'></td>";
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$retour_aff .= "\n<td class='$style-c'>";
	}
	return $retour_aff;
}

function fin_cadre($style) {
	global $spip_display;
Fil's avatar
Fil a validé

	if ($GLOBALS['spip_lang_rtl']) {
		$g = 'd';
		$d = 'g';
	} else {
		$g = 'g';
		$d = 'd';
	}

Antoine Pitrou's avatar
Antoine Pitrou a validé
	if ($spip_display != 1){
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$retour_aff .= "\n</td>";
Fil's avatar
Fil a validé
		$retour_aff .= "\n<td class='$style-$d'></td></tr>";
		$retour_aff .= "\n<tr><td class='$style-b$g'></td>";
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$retour_aff .= "\n<td class='$style-b'></td>";
Fil's avatar
Fil a validé
		$retour_aff .= "\n<td class='$style-b$d'></td></tr>";
ARNO*'s avatar
ARNO* a validé
		$retour_aff .= "\n<tr><td><img src='img_pack/rien.gif' alt='' width='1' height='5'></td></tr>";
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$retour_aff .= "\n</table>\n";
	}
	return $retour_aff;
}

function debut_cadre_relief($icone='', $return = false, $fonction=''){
	global $spip_display;
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$retour_aff = debut_cadre('r', $icone, $fonction);
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$retour_aff = "<p><div style='border-right: 1px solid #cccccc; border-bottom: 1px solid #cccccc; -moz-border-radius: 6px;'><div style='border: 1px solid #666666; padding: 5px; -moz-border-radius: 6px; background-color: white;'>";
	if ($return) return $retour_aff;
	else echo $retour_aff;
function fin_cadre_relief($return = false){
Antoine Pitrou's avatar
Antoine Pitrou a validé
	if ($spip_display != 1){
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$retour_aff = fin_cadre('r');
	}
	else {
		$retour_aff = "</div></div></p>\n";
	}

	if ($return) return $retour_aff;
	else echo $retour_aff;
function debut_cadre_enfonce($icone='', $return = false, $fonction=''){
Antoine Pitrou's avatar
Antoine Pitrou a validé
	if ($spip_display != 1){
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$retour_aff = debut_cadre('e', $icone, $fonction);
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$retour_aff = "<p><div style=\"border: 1px solid #333333; -moz-border-radius: 6px; background-color: #e0e0e0;\"><div style=\"padding: 5px; border-left: 1px solid #999999; border-top: 1px solid #999999; -moz-border-radius: 6px;\">";
Antoine Pitrou's avatar
Antoine Pitrou a validé

	if ($return) return $retour_aff;
	else echo $retour_aff;
}

function fin_cadre_enfonce($return = false){
Antoine Pitrou's avatar
Antoine Pitrou a validé
	if ($spip_display != 1) {
		$retour_aff = fin_cadre('e');
	}
	else {
		$retour_aff = "</div></div></p>\n";
	}

	if ($return) return $retour_aff;
	else echo $retour_aff;
//
// une boite alerte
//
function debut_boite_alerte() {
Antoine Pitrou's avatar
 
Antoine Pitrou a validé
	echo "<p><table cellpadding='6' border='0'><tr><td width='100%' bgcolor='red'>";
	echo "<table width='100%' cellpadding='12' border='0'><tr><td width='100%' bgcolor='white'>";
Antoine Pitrou's avatar
 
Antoine Pitrou a validé
	echo "</td></tr></table>";
	echo "</td></tr></table>";
	global $couleur_claire,  $couleur_foncee;
	echo "&nbsp;<p><div style='border: 1px dashed #666666;'><table cellpadding='5' cellspacing='0' border='0' width='100%' style='border-left: 1px solid $couleur_foncee; border-top: 1px solid $couleur_foncee; border-bottom: 1px solid white; border-bottom: 1px solid white' background=''>";
	echo "<tr><td bgcolor='$couleur_claire' width='100%'>";
	echo "<font face='Verdana,Arial,Sans,sans-serif' size='2' color='#333333'>";
	echo "</font></td></tr></table></div>\n\n";
}

//
// une autre boite
//
function bandeau_titre_boite($titre, $afficher_auteurs, $boite_importante = true) {
	global $couleur_foncee;
	if ($boite_importante) {
		$couleur_fond = $couleur_foncee;
		$couleur_texte = '#FFFFFF';
	}
	else {
		$couleur_fond = '#EEEECC';
		$couleur_texte = '#000000';
	}
	echo "<tr bgcolor='$couleur_fond'><td width=\"100%\"><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=3 COLOR='$couleur_texte'>";
	echo "<B>$titre</B></FONT></TD>";
	if ($afficher_auteurs){
		echo "<TD WIDTH='100'>";
ARNO*'s avatar
ARNO* a validé
		echo "<img src='img_pack/rien.gif' alt='' width='100' height='12' border='0'>";
ARNO*'s avatar
ARNO* a validé
	echo "<img src='img_pack/rien.gif' alt='' width='90' height='12' border='0'>";
//
// La boite raccourcis
//

function debut_raccourcis() {
	creer_colonne_droite();

	echo "<font face='Verdana,Arial,Sans,sans-serif' size=1>";
	echo "<b>"._T('titre_cadre_raccourcis')."</b><p>";
}

function fin_raccourcis() {
	echo "</font>";
	fin_cadre_enfonce();
}

//
// Fonctions d'affichage
//

function afficher_liste($largeurs, $table, $styles = '') {
	global $couleur_claire;

	if (!is_array($table)) return;
	reset($table);
	echo "\n";
	while (list(, $t) = each($table)) {
		$couleur_fond = ($ifond ^= 1) ? '#FFFFFF' : $couleur_claire;
		echo "<tr bgcolor=\"$couleur_fond\">";
		reset($largeurs);
		if ($styles) reset($styles);
		while (list(, $texte) = each($t)) {
			$style = $largeur = "";
			list(, $largeur) = each($largeurs);
			if ($styles) list(, $style) = each($styles);
			if (!trim($texte)) $texte .= "&nbsp;";
			echo "<td";
			if ($largeur) echo " width=\"$largeur\"";
			if ($style) echo " class=\"$style\"";
			echo ">$texte</td>";
		}
		echo "</tr>\n";
	}
	echo "\n";
}

function afficher_tranches_requete(&$query, $colspan) {
Antoine Pitrou's avatar
Antoine Pitrou a validé
	static $ancre = 0;

	$query = trim($query);
	$query_count = eregi_replace('^(SELECT)[[:space:]].*[[:space:]](FROM)[[:space:]]', '\\1 COUNT(*) \\2 ', $query);
Fil's avatar
Fil a validé

	list($num_rows) = spip_fetch_row(spip_query($query_count));
	if (!$num_rows) return;

	$nb_aff = 10;
	// Ne pas couper pour trop peu
	if ($num_rows <= 1.5 * $nb_aff) $nb_aff = $num_rows;
	if (ereg('LIMIT .*,([0-9]+)', $query, $regs)) {
		if ($num_rows > $regs[1]) $num_rows = $regs[1];
	}

	$texte = "\n";

	if ($num_rows > $nb_aff) {
		$tmp_var = $query;
		$deb_aff = intval(getTmpVar($tmp_var));
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$ancre++;
Antoine Pitrou's avatar
Antoine Pitrou a validé
		$texte .= "<a name='a$ancre'></a>";
		$texte .= "<tr><td background=\"\" class=\"arial2\" colspan=\"".($colspan - 1)."\">";

		for ($i = 0; $i < $num_rows; $i += $nb_aff){
			$deb = $i + 1;
			$fin = $i + $nb_aff;
			if ($fin > $num_rows) $fin = $num_rows;
Fil's avatar
Fil a validé
			if ($deb > 1) $texte .= " | ";
			if ($deb_aff + 1 >= $deb AND $deb_aff + 1 <= $fin) {
Fil's avatar
Fil a validé
				$texte .= "<B>$deb</B>";
			}
			else {
				$link = new Link;
				$link->addTmpVar($tmp_var, strval($deb - 1));
Antoine Pitrou's avatar
Antoine Pitrou a validé
				$texte .= "<A HREF=\"".$link->getUrl()."#a$ancre\">$deb</A>";
			}
		}
		$texte .= "</td>\n";
		$texte .= "<td background=\"\" class=\"arial2\" colspan=\"1\" align=\"right\" valign=\"top\">";
		if ($deb_aff == -1) {
			$texte .= "<B>"._T('info_tout_afficher')."</B>";
		} else {
			$link = new Link;
			$link->addTmpVar($tmp_var, -1);
Antoine Pitrou's avatar
Antoine Pitrou a validé
			$texte .= "<A HREF=\"".$link->getUrl()."#a$ancre\">"._T('lien_tout_afficher')."</A>";
Antoine Pitrou's avatar
Antoine Pitrou a validé

		$texte .= "</td>\n";
		$texte .= "</tr>\n";
		if ($deb_aff != -1) {
			$query = eregi_replace('LIMIT[[:space:]].*$', '', $query);
			$query .= " LIMIT $deb_aff, $nb_aff";
		}
	}

	return $texte;
}


//
// Afficher tableau d'articles
//
Antoine Pitrou's avatar
Antoine Pitrou a validé
function afficher_articles($titre_table, $requete, $afficher_visites = false, $afficher_auteurs = true,
		$toujours_afficher = false, $afficher_cadre = true, $afficher_descriptif = true) {

	global $connect_id_auteur, $connect_statut, $dir_lang;
	global $spip_lang_left;
Antoine Pitrou's avatar
Antoine Pitrou a validé
	$activer_messagerie = lire_meta("activer_messagerie");
	$activer_statistiques = lire_meta("activer_statistiques");
Antoine Pitrou's avatar
Antoine Pitrou a validé
	$afficher_visites = ($afficher_visites AND $connect_statut == "0minirezo" AND $activer_statistiques != "non");
Antoine Pitrou's avatar
Antoine Pitrou a validé
	if (!ereg("^SELECT", $requete)) {
		$select = "SELECT articles.id_article, articles.titre, articles.id_rubrique, articles.statut, articles.date";

		if ((lire_meta('multi_rubriques') == 'oui' AND $GLOBALS['coll'] == 0) OR lire_meta('multi_articles') == 'oui') {
			$afficher_langue = true;
			if ($GLOBALS['langue_rubrique']) $langue_defaut = $GLOBALS['langue_rubrique'];
			else $langue_defaut = lire_meta('langue_site');
			$select .= ", articles.lang";
		}
		if ($afficher_visites)
			$select .= ", articles.visites, articles.popularite";
		if ($afficher_descriptif)
			$select .= ", articles.descriptif";
		$select .= ", petitions.id_article AS petition ";
		$requete = $select . "FROM spip_articles AS articles " . $requete;

	$tranches = afficher_tranches_requete($requete, $afficher_auteurs ? 3 : 2);

Antoine Pitrou's avatar
Antoine Pitrou a validé
	$requete = str_replace("FROM spip_articles AS articles ", "FROM spip_articles AS articles LEFT JOIN spip_petitions AS petitions USING (id_article)", $requete);

	if (strlen($tranches) OR $toujours_afficher) {
	 	$result = spip_query($requete);
		if ($afficher_cadre) debut_cadre_relief("article-24.gif");
		echo "<table width=100% cellpadding=0 cellspacing=0 border=0><tr><td width=100% background=''>";
		echo "<table width=100% cellpadding=3 cellspacing=0 border=0>";

		bandeau_titre_boite($titre_table, $afficher_auteurs);

		echo $tranches;

		while ($row = spip_fetch_array($result)) {
			$vals = '';

			$id_article = $row['id_article'];
			$titre = $row['titre'];
			$id_rubrique = $row['id_rubrique'];
			$date = $row['date'];
			$statut = $row['statut'];
			$visites = $row['visites'];
			if ($lang = $row['lang']) changer_typo($lang);
			$popularite = ceil(min(100,100 * $row['popularite'] / max(1, 0 + lire_meta('popularite_max'))));
			$descriptif = $row['descriptif'];
Fil's avatar
Fil a validé
			if ($descriptif) $descriptif = ' title="'.attribut_html(typo($descriptif)).'"';
Antoine Pitrou's avatar
Antoine Pitrou a validé
			$petition = $row['petition'];

			if ($afficher_auteurs) {
				$les_auteurs = "";
Antoine Pitrou's avatar
Antoine Pitrou a validé
			 	$query2 = "SELECT auteurs.id_auteur, nom, messagerie, login, en_ligne ".
			 		"FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien ".
			 		"WHERE lien.id_article=$id_article AND auteurs.id_auteur=lien.id_auteur";
				$result_auteurs = spip_query($query2);
				while ($row = spip_fetch_array($result_auteurs)) {
					$id_auteur = $row['id_auteur'];
					$nom_auteur = typo($row['nom']);
					$auteur_messagerie = $row['messagerie'];
					$les_auteurs .= ", <a href='auteurs_edit.php3?id_auteur=$id_auteur'>$nom_auteur</a>";
					if ($id_auteur != $connect_id_auteur AND $auteur_messagerie != "non" AND $activer_messagerie != "non") {
						$les_auteurs .= "&nbsp;".bouton_imessage($id_auteur, $row);
					}
				}
				$les_auteurs = substr($les_auteurs, 2);
			}

Antoine Pitrou's avatar
Antoine Pitrou a validé
			switch ($statut) {
			case 'publie':
				$puce = 'verte';
				$title = _T('info_article_publie');
Antoine Pitrou's avatar
Antoine Pitrou a validé
				break;
			case 'prepa':
				$puce = 'blanche';
				$title = _T('info_article_redaction');
Antoine Pitrou's avatar
Antoine Pitrou a validé
				break;
			case 'prop':
				$puce = 'orange';
				$title = _T('info_article_propose');
Antoine Pitrou's avatar
Antoine Pitrou a validé
				break;
			case 'refuse':
				$puce = 'rouge';
				$title = _T('info_article_refuse');
Antoine Pitrou's avatar
Antoine Pitrou a validé
				break;
			case 'poubelle':
				$puce = 'poubelle';
				$title = _T('info_article_supprime');
Antoine Pitrou's avatar
Antoine Pitrou a validé
				break;
			}
			$puce = "puce-$puce.gif";
			$s = "<div style='background: url(img_pack/$puce) $spip_lang_left center no-repeat; padding-$spip_lang_left: 17px;'>";

			//$s. = "<a href=\"articles.php3?id_article=$id_article\" title=\"$title\">";

			//$s .= "<img src=\"img_pack/$puce\" alt='' width=\"13\" height=\"14\" border=\"0\"></a>&nbsp;&nbsp;";
			if (acces_restreint_rubrique($id_rubrique))
				$s .= "<img src='img_pack/admin-12.gif' alt='' width='12' height='12' title='"._T('titre_image_admin_article')."'>&nbsp;";
Antoine Pitrou's avatar
Antoine Pitrou a validé
			$s .= "<a href=\"articles.php3?id_article=$id_article\"$descriptif$dir_lang>".typo($titre)."</a>";
			if ($afficher_langue AND $lang != $langue_defaut)
Antoine Pitrou's avatar
Antoine Pitrou a validé
				$s .= " <font size='1' color='#666666'$dir_lang>(".traduire_nom_langue($lang).")</font>";
			if ($petition) $s .= " <Font size=1 color='red'>"._T('lien_petitions')."</font>";
			if ($afficher_auteurs) $vals[] = $les_auteurs;

Fil's avatar
Fil a validé
			$s = affdate_jourcourt($date);
Antoine Pitrou's avatar
Antoine Pitrou a validé
			if ($afficher_visites AND $visites > 0) {
				$s .= "<br><font size=\"1\"><a href='statistiques_visites.php3?id_article=$id_article'>"._T('lien_visites', array('visites' => $visites))."</a></font>";
				if ($popularite > 0) $s .= "<br><font size=\"1\"><a href='statistiques_visites.php3?id_article=$id_article'>"._T('lien_popularite', array('popularite' => $popularite))."</a></font>";
		spip_free_result($result);

		if ($afficher_auteurs) {
			$largeurs = array('', 100, 90);
			$styles = array('arial2', 'arial1', 'arial1');
		}
		else {
			$largeurs = array('', 90);
			$styles = array('arial2', 'arial1');
		}
		afficher_liste($largeurs, $table, $styles);
		echo "</table></td></tr></table>";
		if ($afficher_cadre) fin_cadre_relief();

function afficher_breves($titre_table, $requete, $affrub=false) {
Antoine Pitrou's avatar
Antoine Pitrou a validé
	global $connect_id_auteur, $spip_lang_right, $dir_lang;
	if ((lire_meta('multi_rubriques') == 'oui' AND $GLOBALS['coll'] == 0) OR lire_meta('multi_articles') == 'oui') {
		$afficher_langue = true;
		$requete = ereg_replace(" FROM", ", lang FROM", $requete);
Antoine Pitrou's avatar
Antoine Pitrou a validé
		if ($GLOBALS['langue_rubrique']) $langue_defaut = $GLOBALS['langue_rubrique'];
		else $langue_defaut = lire_meta('langue_site');
	$tranches = afficher_tranches_requete($requete, 2);

	if (strlen($tranches)) {
Antoine Pitrou's avatar
Antoine Pitrou a validé

		debut_cadre_relief("breve-24.gif");

		if ($titre_table) {
			echo "<p><table width=100% cellpadding=0 cellspacing=0 border=0 background=''>";
			echo "<tr><td width=100% background=''>";
			echo "<table width=100% cellpadding=3 cellspacing=0 border=0>";
			echo "<tr bgcolor='#EEEECC'><td width=100% colspan=2><font face='Verdana,Arial,Sans,sans-serif' size=3 color='#000000'>";
			echo "<b>$titre_table</b></font></td></tr>";
		}
		else {
			echo "<p><table width=100% cellpadding=3 cellspacing=0 border=0 background=''>";
		}

		echo $tranches;

		$result = spip_query($requete);
		while ($row = spip_fetch_array($result)) {
			$vals = '';

			$id_breve = $row['id_breve'];
			$date_heure = $row['date_heure'];
			$titre = $row['titre'];
			$statut = $row['statut'];
			if ($lang = $row['lang']) changer_typo($lang);
			$id_rubrique = $row['id_rubrique'];
Antoine Pitrou's avatar
Antoine Pitrou a validé
			switch ($statut) {
			case 'prop':
				$title = _T('titre_breve_proposee');
Antoine Pitrou's avatar
Antoine Pitrou a validé
				break;
			case 'publie':
				$title = _T('titre_breve_publiee');
Antoine Pitrou's avatar
Antoine Pitrou a validé
				break;
Antoine Pitrou's avatar
Antoine Pitrou a validé
			case 'refuse':
				$title = _T('titre_breve_refusee');
Antoine Pitrou's avatar
Antoine Pitrou a validé
				break;
			}
Antoine Pitrou's avatar
Antoine Pitrou a validé
			$s = "<a href='breves_voir.php3?id_breve=$id_breve' title=\"$title\">";
Antoine Pitrou's avatar
Antoine Pitrou a validé
			$s .= "<img src='img_pack/$puce.gif' alt='' width='8' height='9' border='0'></a>&nbsp;&nbsp;";
Antoine Pitrou's avatar
Antoine Pitrou a validé
			$s .= "<a href='breves_voir.php3?id_breve=$id_breve'$dir_lang>";
Fil's avatar
Fil a validé
			$s .= "</a>";
Antoine Pitrou's avatar
Antoine Pitrou a validé
			if ($afficher_langue AND $lang != $langue_defaut)
				$s .= " <font size='1' color='#666666'$dir_lang>(".traduire_nom_langue($lang).")</font>";
Antoine Pitrou's avatar
Antoine Pitrou a validé
			$s = "<div align='$spip_lang_right'>";
			if ($affrub) {
				$rub = spip_fetch_array(spip_query("SELECT titre FROM spip_rubriques WHERE id_rubrique=$id_rubrique"));
				$s .= typo($rub['titre']);
Fil's avatar
Fil a validé
			} else if ($statut != "prop")
Fil's avatar
Fil a validé
				$s = affdate_jourcourt($date_heure);
Fil's avatar
Fil a validé
			else
				$s .= _T('info_a_valider');
			$s .= "</div>";
		spip_free_result($result);
		$styles = array('arial2', 'arial1');
		afficher_liste($largeurs, $table, $styles);

		if ($titre_table) echo "</TABLE></TD></TR>";
		echo "</TABLE>";
}


//
// Afficher tableau de rubriques
//

function afficher_rubriques($titre_table, $requete) {
	global $connect_id_auteur;
Fil's avatar
Fil a validé
	global $spip_lang_rtl;

	$tranches = afficher_tranches_requete($requete, 2);

	if (strlen($tranches)) {

		debut_cadre_relief("rubrique-24.gif");
		if ($titre_table) {
			echo "<p><table width=100% cellpadding=0 cellspacing=0 border=0 background=''>";
			echo "<tr><td width=100% background=''>";
			echo "<table width=100% cellpadding=3 cellspacing=0 border=0>";
			echo "<tr bgcolor='#333333'><td width=100% colspan=2><font face='Verdana,Arial,Sans,sans-serif' size=3 color='#FFFFFF'>";
			echo "<b>$titre_table</b></font></td></tr>";
		}
		else {
			echo "<p><table width=100% cellpadding=3 cellspacing=0 border=0 background=''>";
		}

		echo $tranches;

		$result = spip_query($requete);
		while ($row = spip_fetch_array($result)) {
			$vals = '';

			$id_rubrique = $row['id_rubrique'];
			$titre = $row['titre'];

			$s = "<b><a href=\"naviguer.php3?coll=$id_rubrique\">";
Fil's avatar
Fil a validé
			$puce = "puce$spip_lang_rtl.gif";
Antoine Pitrou's avatar
Antoine Pitrou a validé
			$s .= "<img src=\"$puce\" alt=\"- \" border=\"0\"> ";
			$s .= typo($titre);
			$s .= "</A></b>";
			$vals[] = $s;

			$s = "<div align=\"right\">";
			$s .= "</div>";
			$vals[] = $s;
			$table[] = $vals;
		}
		spip_free_result($result);

		$largeurs = array('', '');
		$styles = array('arial2', 'arial2');
		afficher_liste($largeurs, $table, $styles);

		if ($titre_table) echo "</TABLE></TD></TR>";
		echo "</TABLE>";

//
// Afficher des auteurs sur requete SQL
//
function bonhomme_statut($row) {
	global $connect_statut;

Antoine Pitrou's avatar
Antoine Pitrou a validé
	switch($row['statut']) {
		case "0minirezo":
			$image = "<img src='img_pack/admin-12.gif' alt='' title='"._T('titre_image_administrateur')."' border='0'>";
			break;
		case "1comite":
			if ($connect_statut == '0minirezo' AND ($row['source'] == 'spip' AND !($row['pass'] AND $row['login'])))
				$image = "<img src='img_pack/visit-12.gif' alt='' title='"._T('titre_image_redacteur')."' border='0'>";
				$image = "<img src='img_pack/redac-12.gif' alt='' title='"._T('titre_image_redacteur_02')."' border='0'>";
			break;
		case "5poubelle":
			$image = "<img src='img_pack/poubelle.gif' alt='' title='"._T('titre_image_auteur_supprime')."' border='0'>";
		case "6forum":
			$image = "<img src='img_pack/visit-12.gif' alt='' title='"._T('titre_image_visiteur')."' border='0'>";
		case "nouveau":
		default:
			$image = '';
			break;
	}

	return $image;
}

// La couleur du statut
function puce_statut($statut, $type='article') {
	switch ($statut) {
		case 'publie':
			return 'verte';
		case 'prepa':
			return 'blanche';
		case 'prop':
			return 'orange';
		case 'refuse':
			return 'rouge';
		case 'poubelle':
			return 'poubelle';
	}
}


function afficher_auteurs ($titre_table, $requete) {
	$tranches = afficher_tranches_requete($requete, 2);

	if (strlen($tranches)) {

		debut_cadre_relief("redacteurs-24.gif");

		if ($titre_table) {
			echo "<p><table width=100% cellpadding=0 cellspacing=0 border=0 background=''>";
			echo "<tr><td width=100% background=''>";
			echo "<table width=100% cellpadding=3 cellspacing=0 border=0>";
			echo "<tr bgcolor='#333333'><td width=100% colspan=2><font face='Verdana,Arial,Sans,sans-serif' size=3 color='#FFFFFF'>";
			echo "<b>$titre_table</b></font></td></tr>";
		}
		else {
			echo "<p><table width=100% cellpadding=3 cellspacing=0 border=0 background=''>";
		}

		echo $tranches;

		$result = spip_query($requete);

		$table = '';
		while ($row = spip_fetch_array($result)) {
			$vals = '';

			$id_auteur = $row['id_auteur'];
			$tous_id[] = $id_auteur;
			$nom = $row['nom'];

			$s = bonhomme_statut($row);
			$s .= "<a href=\"auteurs_edit.php3?id_auteur=$id_auteur\">";
			$s .= typo($nom);
			$s .= "</a>";
			$vals[] = $s;
			$table[] = $vals;
		}
		spip_free_result($result);

		$largeurs = array('');
		$styles = array('arial2');
		afficher_liste($largeurs, $table, $styles);

		if ($titre_table) echo "</TABLE></TD></TR>";
		echo "</TABLE>";
		fin_cadre_relief();
	}
	return $tous_id;
}

function afficher_forum($request, $adresse_retour, $controle = "non", $recurrence = "oui") {
	global $debut;
	static $compteur_forum;
	static $nb_forum;
	static $i;
	global $couleur_foncee;
	global $connect_id_auteur, $connect_activer_messagerie;
Fil's avatar
Fil a validé
	global $spip_lang_rtl;

	$activer_messagerie = lire_meta("activer_messagerie");

	$compteur_forum++;
	$nb_forum[$compteur_forum] = spip_num_rows($request);
 	while($row = spip_fetch_array($request)) {
		$id_forum=$row['id_forum'];
		$id_parent=$row['id_parent'];
		$id_rubrique=$row['id_rubrique'];
		$id_article=$row['id_article'];
		$id_breve=$row['id_breve'];
		$id_message=$row['id_message'];
		$id_syndic=$row['id_syndic'];
		$date_heure=$row['date_heure'];
		$titre=$row['titre'];
		$texte=$row['texte'];
		$auteur=$row['auteur'];
		$email_auteur=$row['email_auteur'];
		$nom_site=$row['nom_site'];
		$url_site=$row['url_site'];
		$statut=$row['statut'];
		$ip=$row["ip"];
		$id_auteur=$row["id_auteur"];

		if ($compteur_forum==1){echo "<BR><BR>\n";}

		$afficher = ($controle=="oui") ? ($statut!="perso") :
			(($statut=="prive" OR $statut=="privrac" OR $statut=="privadm" OR $statut=="perso")
			OR ($statut=="publie" AND $id_parent > 0));

		if ($afficher) {
			echo "<table width=100% cellpadding=0 cellspacing=0 border=0><tr>";
			for ($count=2;$count<=$compteur_forum AND $count<20;$count++){
				$fond[$count]='img_pack/rien.gif';
				if ($i[$count]!=$nb_forum[$count]){
					$fond[$count]='img_pack/forum-vert.gif';
				$fleche='img_pack/rien.gif';
				if ($count==$compteur_forum){
Fil's avatar
Fil a validé
					$fleche="img_pack/forum-droite$spip_lang_rtl.gif";
Antoine Pitrou's avatar
Antoine Pitrou a validé
				echo "<td width=10 valign='top' background=$fond[$count]><img src='$fleche' alt='' width=10 height=13 border=0></td>\n";
			echo "\n<td width=100% valign='top'>";

			// Si refuse, cadre rouge
			if ($statut=="off") {
				echo "<table width=100% cellpadding=2 cellspacing=0 border=0><tr><td>";
			}
			// Si propose, cadre jaune
			else if ($statut=="prop") {
				echo "<table width=100% cellpadding=2 cellspacing=0 border=0><tr><td>";
			if ($compteur_forum == 1) echo debut_cadre_relief("forum-interne-24.gif");
			echo "<table width=100% cellpadding=3 cellspacing=0><tr><td bgcolor='$couleur_foncee'><font face='Verdana,Arial,Sans,sans-serif' size=2 color='#FFFFFF'><b>".typo($titre)."</b></font></td></tr>";
Antoine Pitrou's avatar
Antoine Pitrou a validé
			echo "<tr><td bgcolor='#EEEEEE' class='serif2'>";
			echo "<span class='arial2'>$date_heure</span>";
Fil's avatar
Fil a validé
				echo " <a href=\"mailto:$email_auteur?subject=".rawurlencode($titre)."\">".typo($auteur)."</a>";
Fil's avatar
Fil a validé
				echo " ".typo($auteur);
			}

			if ($id_auteur AND $activer_messagerie != "non" AND $connect_activer_messagerie != "non") {
				$bouton = bouton_imessage($id_auteur,$row_auteur);
				if ($bouton) echo "&nbsp;".$bouton;
			}

			if ($controle == "oui") {
				if ($statut != "off") {
					icone (_T('icone_supprimer_message'), "articles_forum.php3?id_article=$id_article&supp_forum=$id_forum&debut=$debut", "forum-interne-24.gif", "supprimer.gif", "right");
					echo "<br><font color='red'><b>"._T('info_message_supprime')." $ip</b></font>";
						echo " - <a href='auteurs_edit.php3?id_auteur=$id_auteur'>"._T('lien_voir_auteur')."</A>";
					}
				}
				if ($statut == "prop" OR $statut == "off") {
					icone (_T('icone_valider_message'), "articles_forum.php3?id_article=$id_article&valid_forum=$id_forum&debut=$debut", "forum-interne-24.gif", "creer.gif", "right");
			if (strlen($url_site) > 10 AND $nom_site) {
Antoine Pitrou's avatar
Antoine Pitrou a validé
				echo "<div align='left' class='verdana2'><b><a href='$url_site'>$nom_site</a></b></div>";
Antoine Pitrou's avatar
Antoine Pitrou a validé
				echo "<div align='right' class='verdana1'>";
				$url = "forum_envoi.php3?id_parent=$id_forum&adresse_retour=".rawurlencode($adresse_retour)
					."&titre_message=".rawurlencode($titre);
Antoine Pitrou's avatar
Antoine Pitrou a validé
				echo "<b><a href=\"$url\">"._T('lien_repondre_message')."</a></b></div>";
ARNO*'s avatar
ARNO* a validé
			if ($mots_cles_forums == "oui"){
ARNO*'s avatar
ARNO* a validé
				$query_mots = "SELECT * FROM spip_mots AS mots, spip_mots_forum AS lien WHERE lien.id_forum = '$id_forum' AND lien.id_mot = mots.id_mot";
				$result_mots = spip_query($query_mots);
				while ($row_mots = spip_fetch_array($result_mots)) {
ARNO*'s avatar
ARNO* a validé
					$id_mot = $row_mots['id_mot'];
					$titre_mot = propre($row_mots['titre']);
					$type_mot = propre($row_mots['type']);
					echo "<li> <b>$type_mot :</b> $titre_mot";
				}
			if ($compteur_forum == 1) echo fin_cadre_relief();
			if ($statut == "off" OR $statut == "prop") {
				echo "</td></tr></table>";
			echo "</td></tr></table>\n";

			if ($recurrence == "oui") forum($id_forum,$adresse_retour,$controle);
		}
		$i[$compteur_forum]++;
	}
	spip_free_result($request);
	$compteur_forum--;
}

function forum($le_forum, $adresse_retour, $controle = "non") {
Antoine Pitrou's avatar
Antoine Pitrou a validé
      	echo "<div class='serif2'>";
	
	if ($controle == "oui") {
		$query_forum2 = "SELECT * FROM spip_forum WHERE id_parent='$le_forum' ORDER BY date_heure";
	}
	else {
		$query_forum2 = "SELECT * FROM spip_forum WHERE id_parent='$le_forum' AND statut<>'off' ORDER BY date_heure";
	}
 	$result_forum2 = spip_query($query_forum2);
	afficher_forum($result_forum2, $adresse_retour, $controle);
Antoine Pitrou's avatar
Antoine Pitrou a validé
	
	echo "</div>";
}

//
// un bouton (en POST) a partir d'un URL en format GET
//
function bouton($titre,$lien) {
	$lapage=substr($lien,0,strpos($lien,"?"));
	$lesvars=substr($lien,strpos($lien,"?")+1,strlen($lien));

	echo "\n<form action='$lapage' method='get'>\n";
	$lesvars=explode("&",$lesvars);
	
	for($i=0;$i<count($lesvars);$i++){
		$var_loc=explode("=",$lesvars[$i]);
		echo "<input type='Hidden' name='$var_loc[0]' value=\"$var_loc[1]\">\n";
	}
	echo "<input type='submit' name='Submit' class='fondo' value=\"$titre\">\n";
	echo "</form>";
}


//
Antoine Pitrou's avatar
 
Antoine Pitrou a validé
// Presentation de l'interface privee, debut du HTML
Antoine Pitrou's avatar
 
Antoine Pitrou a validé

function debut_html($titre = "") {
ARNO*'s avatar
ARNO* a validé
	global $couleur_foncee, $couleur_claire, $couleur_lien, $couleur_lien_off;
Antoine Pitrou's avatar
Antoine Pitrou a validé
	global $flag_ecrire;
Fil's avatar
Fil a validé
	global $spip_lang_rtl;
Fil's avatar
Fil a validé
	$nom_site_spip = entites_html(lire_meta("nom_site"));
Antoine Pitrou's avatar
Antoine Pitrou a validé
	if (!$nom_site_spip) $nom_site_spip="SPIP";
	if (!$charset = lire_meta('charset')) $charset = 'utf-8';
Fil's avatar
Fil a validé

	@Header("Expires: 0");
	@Header("Cache-Control: no-cache,no-store");
	@Header("Pragma: no-cache");
	@Header("Content-Type: text/html; charset=$charset");
ARNO*'s avatar
ARNO* a validé
	echo "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>\n<html>\n<head>\n<title>[$nom_site_spip] $titre</title>\n";
Fil's avatar
Fil a validé
	echo '<meta http-equiv="Content-Type" content="text/html; charset='.$charset.'">';
Fil's avatar
Fil a validé
	echo '<link rel="stylesheet" type="text/css" href="';
	if (!$flag_ecrire) echo 'ecrire/';
Antoine Pitrou's avatar
Antoine Pitrou a validé
	$link = new Link('spip_style.php3');
	$link->addVar('couleur_claire', $couleur_claire);
	$link->addVar('couleur_foncee', $couleur_foncee);
	$link->addVar('left', $GLOBALS['spip_lang_left']);
	$link->addVar('right', $GLOBALS['spip_lang_right']);
	echo $link->getUrl()."\">\n";
Fil's avatar
Fil a validé

	afficher_script_layer();
<script type='text/javascript'><!--
Antoine Pitrou's avatar
Antoine Pitrou a validé
function changeclass(objet, myClass)
		objet.className = myClass;
}
function changesurvol(iddiv, myClass)
{
		document.getElementById(iddiv).className = myClass;
var antifocus=false; // effacement titre quand new=oui
Antoine Pitrou's avatar
Antoine Pitrou a validé
//--></script>
<?php
	echo "<body text='#000000' bgcolor='#e4e4e4' background='img_pack/degrade.jpg' link='$couleur_lien' vlink='$couleur_lien_off' alink='$couleur_lien_off' topmargin='0' leftmargin='0' marginwidth='0' marginheight='0'";
Fil's avatar
Fil a validé
	if ($spip_lang_rtl)
		echo " dir='rtl'";
	echo ">";
Antoine Pitrou's avatar
 
Antoine Pitrou a validé
}

// Fonctions onglets

function onglet_relief_inter(){
ARNO*'s avatar
ARNO* a validé
	global $spip_display;
	if ($spip_display != 1) {
Antoine Pitrou's avatar
Antoine Pitrou a validé
		echo "<td background='img_pack/barre-noir.gif'><img src='img_pack/rien.gif' alt='' width='1' height='40'></td>";
ARNO*'s avatar
ARNO* a validé
	global $spip_display;
	if ($spip_display == 1) {
		echo "\n";