Newer
Older
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/agenda'); // inclut inc/layer, inc/texte, inc/filtre
include_spip('inc/actions');
// http://doc.spip.org/@choix_couleur
foreach ($couleurs_spip as $key => $val) {
echo "<a href=\"".parametre_url(self(), 'set_couleur', $key)."\">" .
http_img_pack("rien.gif", " ", "width='8' height='8' style='margin: 1px; background-color: ".$val['couleur_claire'].";' onmouseover=\"changestyle('bandeauinterface','visibility', 'visible');\""). "</a>";
//
// affiche un bouton imessage
//
// http://doc.spip.org/@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;
// 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 = spip_query("SELECT login, messagerie FROM spip_auteurs where id_auteur=$destinataire AND en_ligne>DATE_SUB(NOW(),INTERVAL 15 DAY)");
$row = spip_fetch_array($login_req);
if (($row['login'] == "") OR ($row['messagerie'] == "non")) {
return;
}
}
if ($destinataire) $title = _T('info_envoyer_message_prive');
else $title = _T('info_ecire_message_prive');
Fil
a validé
$texte_bouton = http_img_pack("m_envoi$spip_lang_rtl.gif", "m>", "width='14' height='7'", $title);
return "<a href='". generer_url_ecrire("message_edit","new=oui&dest=$destinataire&type=normal"). "' title=\"$title\">$texte_bouton</a>";
}
// Faux HR, avec controle de couleur
function hr($color, $retour = false) {
$ret = "<div style='height: 1px; margin-top: 5px; padding-top: 5px; border-top: 1px solid $color;'></div>";
if ($retour) return $ret;
else echo $ret;
}
//
//
// http://doc.spip.org/@debut_cadre
function debut_cadre($style, $icone = "", $fonction = "", $titre = "") {
global $spip_display, $spip_lang_left;
static $accesskey = 97; // a
if ($spip_display != 1 AND $spip_display != 4 AND strlen($icone) > 1) {
$style_gauche = " padding-$spip_lang_left: 38px;";
$style_cadre = " style='margin-top: 14px;'";
} else $style_cadre = $style_gauche = '';
Fil
a validé
if ($accesskey <= 122) // z
{
$accesskey_c = chr($accesskey++);
$ret = "<a name='access-$accesskey_c' href='#access-$accesskey_c' accesskey='$accesskey_c'></a>";
} else $ret ='';
if ($style == "e") {
$ret .= "<div class='cadre-e-noir'$style_cadre><div class='cadre-$style'>";
}
else {
$ret .= "<div class='cadre-$style'$style_cadre>";
}
$ret .= "<div style='position: relative;'>";
if ($spip_display != 1 AND $spip_display != 4 AND strlen($icone) > 1) {
$ret .= "<div style='position: absolute; top: -16px; $spip_lang_left: 10px;'>";
if ($fonction) {
$ret .= "<div " . http_style_background($icone, "no-repeat; padding: 0px; margin: 0px") . ">";
esj
a validé
$ret .= http_img_pack($fonction, "", "");
esj
a validé
else $ret .= http_img_pack("$icone", "", "");
$ret .= "</div>";
$style_cadre = " style='position: relative; top: 15px; margin-bottom: 14px;'";
}
if (strlen($titre) > 0) {
if ($spip_display == 4) {
$ret .= "<h3 class='cadre-titre'>$titre</h3>";
} else {
$ret .= "<div class='cadre-titre' style='margin: 0px;$style_gauche'>$titre</div>";
}
}
$ret .= "</div>";
$ret .= "<div class='cadre-padding' style='overflow:hidden;'>";
// http://doc.spip.org/@fin_cadre
function fin_cadre($style) {
$ret = "</div>";
$ret .= "</div>";
if ($style == "e") $ret .= "</div>";
if ($style != "forum" AND $style != "thread-forum") $ret .= "<div style='height: 5px;'></div>";
return $ret;
}
// http://doc.spip.org/@debut_cadre_relief
function debut_cadre_relief($icone='', $return = false, $fonction='', $titre = ''){
$retour_aff = debut_cadre('r', $icone, $fonction, $titre);
ARNO*
a validé
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@fin_cadre_relief
function fin_cadre_relief($return = false){
ARNO*
a validé
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@debut_cadre_enfonce
function debut_cadre_enfonce($icone='', $return = false, $fonction='', $titre = ''){
$retour_aff = debut_cadre('e', $icone, $fonction, $titre);
ARNO*
a validé
if ($return) return $retour_aff;
else echo $retour_aff;
// http://doc.spip.org/@fin_cadre_enfonce
function fin_cadre_enfonce($return = false){
$retour_aff = fin_cadre('e');
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@debut_cadre_sous_rub
function debut_cadre_sous_rub($icone='', $return = false, $fonction='', $titre = ''){
$retour_aff = debut_cadre('sous_rub', $icone, $fonction, $titre);
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@fin_cadre_sous_rub
function fin_cadre_sous_rub($return = false){
$retour_aff = fin_cadre('sous_rub');
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@debut_cadre_forum
function debut_cadre_forum($icone='', $return = false, $fonction='', $titre = ''){
$retour_aff = debut_cadre('forum', $icone, $fonction, $titre);
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@fin_cadre_forum
function fin_cadre_forum($return = false){
$retour_aff = fin_cadre('forum');
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@debut_cadre_thread_forum
function debut_cadre_thread_forum($icone='', $return = false, $fonction='', $titre = ''){
$retour_aff = debut_cadre('thread-forum', $icone, $fonction, $titre);
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@fin_cadre_thread_forum
function fin_cadre_thread_forum($return = false){
$retour_aff = fin_cadre('thread-forum');
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@debut_cadre_gris_clair
function debut_cadre_gris_clair($icone='', $return = false, $fonction='', $titre = ''){
$retour_aff = debut_cadre('gris-clair', $icone, $fonction, $titre);
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@fin_cadre_gris_clair
function fin_cadre_gris_clair($return = false){
$retour_aff = fin_cadre('gris-clair');
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@debut_cadre_couleur
function debut_cadre_couleur($icone='', $return = false, $fonction='', $titre=''){
$retour_aff = debut_cadre('couleur', $icone, $fonction, $titre);
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@fin_cadre_couleur
function fin_cadre_couleur($return = false){
$retour_aff = fin_cadre('couleur');
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@debut_cadre_couleur_foncee
function debut_cadre_couleur_foncee($icone='', $return = false, $fonction='', $titre=''){
$retour_aff = debut_cadre('couleur-foncee', $icone, $fonction, $titre);
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@fin_cadre_couleur_foncee
function fin_cadre_couleur_foncee($return = false){
$retour_aff = fin_cadre('couleur-foncee');
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@debut_cadre_trait_couleur
function debut_cadre_trait_couleur($icone='', $return = false, $fonction='', $titre=''){
$retour_aff = debut_cadre('trait-couleur', $icone, $fonction, $titre);
if ($return) return $retour_aff;
else echo $retour_aff;
}
// http://doc.spip.org/@fin_cadre_trait_couleur
function fin_cadre_trait_couleur($return = false){
$retour_aff = fin_cadre('trait-couleur');
ARNO*
a validé
if ($return) return $retour_aff;
else echo $retour_aff;
}
//
// une boite alerte
//
// http://doc.spip.org/@debut_boite_alerte
function debut_boite_alerte() {
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'>";
}
// http://doc.spip.org/@fin_boite_alerte
function fin_boite_alerte() {
}
//
// une boite info
//
// http://doc.spip.org/@debut_boite_info
esj
a validé
function debut_boite_info($return=false) {
$r ="<div class='cadre-info verdana1'>";
if ($return) return $r; else echo $r;
}
// http://doc.spip.org/@fin_boite_info
esj
a validé
function fin_boite_info($return=false) {
esj
a validé
$r = "</div>";
if ($return) return $r; else echo $r;
}
//
// une autre boite
//
// http://doc.spip.org/@bandeau_titre_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'>";
Fil
a validé
echo http_img_pack("rien.gif", " ", "width='100' height='12'");
echo "</TD>";
}
echo "<TD WIDTH='90'>";
Fil
a validé
echo http_img_pack("rien.gif", " ", "width='90' height='12'");
echo "</TD>";
echo "</TR>";
}
// http://doc.spip.org/@bandeau_titre_boite2
Fil
a validé
function bandeau_titre_boite2($titre, $logo="", $fond="white", $texte="black", $echo = true) {
Fil
a validé
$retour = '';
if (strlen($logo) > 0 AND $spip_display != 1 AND $spip_display != 4) {
Fil
a validé
$retour .= "<div style='position: relative;'>";
$retour .= "<div style='position: absolute; top: -12px; $spip_lang_left: 3px;'>" .
esj
a validé
http_img_pack("$logo", "", "") . "</div>";
Fil
a validé
$retour .= "<div style='background-color: $fond; color: $texte; padding: 3px; padding-$spip_lang_left: 30px; border-bottom: 1px solid #444444;' class='verdana2'><b>$titre</b></div>";
Fil
a validé
$retour .= "</div>";
$retour .= "<h3 style='background-color: $fond; color: $texte; padding: 3px; border-bottom: 1px solid #444444; margin: 0px;' class='verdana2'><b>$titre</b></h3>";
Fil
a validé
if ($echo) echo $retour;
return $retour;
Antoine Pitrou
a validé
//
// La boite raccourcis
//
// http://doc.spip.org/@debut_raccourcis
Antoine Pitrou
a validé
function debut_raccourcis() {
ARNO*
a validé
echo "<div> </div>";
Antoine Pitrou
a validé
debut_cadre_enfonce();
if ($spip_display != 4) {
echo "<font face='Verdana,Arial,Sans,sans-serif' size=1>";
echo "<b>"._T('titre_cadre_raccourcis')."</b><p />";
} else {
echo "<h3>"._T('titre_cadre_raccourcis')."</h3>";
echo "<ul>";
}
Antoine Pitrou
a validé
}
// http://doc.spip.org/@fin_raccourcis
Antoine Pitrou
a validé
function fin_raccourcis() {
global $spip_display;
if ($spip_display != 4) echo "</font>";
else echo "</ul>";
Antoine Pitrou
a validé
fin_cadre_enfonce();
}
// Afficher un petit "+" pour lien vers autre page
// http://doc.spip.org/@afficher_plus
function afficher_plus($lien) {
global $options, $spip_lang_right, $spip_display, $browser_name;
ARNO*
a validé
if ($options == "avancees" AND $spip_display != 4) {
if ($browser_name == "MSIE")
Fil
a validé
http_img_pack("plus.gif", "+", ""). "</a> ";
ARNO*
a validé
else
return "<div style='float:$spip_lang_right; padding-top: 2px;'><a href='$lien'>" .
Fil
a validé
http_img_pack("plus.gif", "+", "") ."</a></div>";
ARNO*
a validé
}
//
// Fonctions d'affichage
//
// http://doc.spip.org/@afficher_liste
function afficher_liste($largeurs, $table, $styles = '') {
global $browser_name, $spip_display, $spip_lang_left;
if (!is_array($table)) return "";
reset($table);
if ($spip_display != 4) {
$res = '';
while (list(, $t) = each($table)) {
$res .= "\n<tr class='tr_liste'" .
(eregi("msie", $browser_name) ? " onmouseover=\"changeclass(this,'tr_liste_over');\" onmouseout=\"changeclass(this,'tr_liste');\"" :'') .
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 .= " ";
($largeur ? " width=\"$largeur\"" : '') .
($style ? " class=\"$style\"" : '') .
$res = "\n<ul style='text-align: $spip_lang_left; background-color: white;'>";
while (list(, $t) = each($table)) {
$res .= "<li>";
reset($largeurs);
if ($styles) reset($styles);
while (list(, $texte) = each($t)) {
$style = $largeur = "";
list(, $largeur) = each($largeurs);
if (!$largeur) {
$res .= $texte." ";
$res .= "</li>\n";
}
return $res;
}
// http://doc.spip.org/@afficher_tranches_requete
function afficher_tranches_requete($num_rows, $colspan, $tmp_var, $javascript=false, $nb_aff = 10) {
global $spip_lang_right, $spip_display;
$tmp_var = 't_'. $tmp_var;
$deb_aff = intval(_request($tmp_var));
$ancre++;
$self = self();
$texte = ($spip_display == 4) ? '' : "<tr style='background-color: #dddddd;'><td class=\"arial1\" style='border-bottom: 1px solid #444444;' colspan=\"".($colspan - 1)."\">";
$texte .= "\n<a name='a$ancre'></a>";
for ($i = 0; $i < $num_rows; $i += $nb_aff){
$deb = $i + 1;
$fin = $i + $nb_aff;
if ($fin > $num_rows) $fin = $num_rows;
if ($deb_aff + 1 >= $deb AND $deb_aff + 1 <= $fin) {
}
else {
$url = parametre_url($self, $tmp_var, $deb-1);
if ($javascript) {
Fil
a validé
$jj = str_replace("::deb::", "&$tmp_var=$deb", $javascript);
$texte .= "<a onClick=\"$jj; return false;\" href=\"$url#a$ancre\">$deb</a>";
}
}
if ($spip_display != 4) {
$texte .= "</td>\n";
$texte .= "<td class=\"arial2\" style='border-bottom: 1px solid #444444; text-align: $spip_lang_right;' colspan=\"1\" align=\"right\" valign=\"top\">";
if ($deb_aff == -1) {
//$texte .= "<B>"._T('info_tout_afficher')."</B>";
$lien = parametre_url(self(), $tmp_var, -1);
if ($javascript) {
$jj = str_replace("::deb::", "&$tmp_var=-1", $javascript);
Fil
a validé
$texte .= "<a onClick=\"$jj; return false; \" href=\"$lien#a$ancre\"><img src='". _DIR_IMG_PACK . "plus.gif' title='"._T('lien_tout_afficher')."' /></a>";
Fil
a validé
$texte .= "<A HREF=\"$lien#a$ancre\"><img src='". _DIR_IMG_PACK . "plus.gif' title='"._T('lien_tout_afficher')."' /></A>";
}
if ($spip_display != 4) $texte .= "</td></tr>\n";
return $texte;
}
// http://doc.spip.org/@affiche_tranche_bandeau
function affiche_tranche_bandeau($requete, $icone, $col, $fg, $bg, $tmp_var, $deb_aff, $titre, $force, $largeurs, $styles, $skel, $own='')
{
global $spip_display ;
$voir_logo = ($spip_display != 1 AND $spip_display != 4 AND $GLOBALS['meta']['image_process'] != "non");
$tous_id = array();
if (!isset($requete['GROUP BY'])) $requete['GROUP BY'] = '';
$cpt = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM " . $requete['FROM'] . ($requete['WHERE'] ? (' WHERE ' . $requete['WHERE']) : '') . ($requete['GROUP BY'] ? (' GROUP BY ' . $requete['GROUP BY']) : '')));
if (! ($force OR ($cpt = $cpt['n']))) return array();
if (!isset($requete["SELECT"])) $requete["SELECT"]= "*";
if (isset($requete['LIMIT'])) $cpt = min($requete['LIMIT'], $cpt);
$tranches = '';
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
if ($cpt > $nb_aff) {
$nb_aff = (_TRANCHES);
$tranches = afficher_tranches_requete($cpt, $col, $tmp_var, '', $nb_aff);
}
if ($titre) echo "<div style='height: 12px;'></div>";
echo "<div class='liste'>";
echo bandeau_titre_boite2($titre, $icone, $fg, $bg, false);
echo "<table width='100%' cellpadding='2' cellspacing='0' border='0'>";
echo $tranches;
$result = spip_query("SELECT " . $requete['SELECT'] . " FROM " . $requete['FROM'] . ($requete['WHERE'] ? (' WHERE ' . $requete['WHERE']) : '') . ($requete['GROUP BY'] ? (' GROUP BY ' . $requete['GROUP BY']) : '') . ($requete['ORDER BY'] ? (' ORDER BY ' . $requete['ORDER BY']) : '') . " LIMIT " . ($deb_aff >= 0 ? "$deb_aff, $nb_aff" : ($requete['LIMIT'] ? $requete['LIMIT'] : "99999")));
$table = array();
while ($row = spip_fetch_array($result)) {
$table[]= $skel($row, $tous_id, $voir_logo, $own);
}
spip_free_result($result);
echo afficher_liste($largeurs, $table, $styles);
echo "</table>";
echo "</div>\n";
return $tous_id;
}
// http://doc.spip.org/@afficher_liste_debut_tableau
function afficher_liste_debut_tableau() {
global $spip_display;
if ($spip_display != 4) return "<table width='100%' cellpadding='2' cellspacing='0' border='0'>";
}
// http://doc.spip.org/@afficher_liste_fin_tableau
function afficher_liste_fin_tableau() {
global $spip_display;
if ($spip_display != 4) return "</table>";
}
// http://doc.spip.org/@puce_statut_article
function puce_statut_article($id, $statut, $id_rubrique) {
global $spip_lang_left, $dir_lang, $connect_statut, $options;
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
switch ($statut) {
case 'publie':
$clip = 2;
$puce = 'verte';
$title = _T('info_article_publie');
break;
case 'prepa':
$clip = 0;
$puce = 'blanche';
$title = _T('info_article_redaction');
break;
case 'prop':
$clip = 1;
$puce = 'orange';
$title = _T('info_article_propose');
break;
case 'refuse':
$clip = 3;
$puce = 'rouge';
$title = _T('info_article_refuse');
break;
case 'poubelle':
$clip = 4;
$puce = 'poubelle';
$title = _T('info_article_supprime');
break;
}
$puce = "puce-$puce.gif";
if ($connect_statut == '0minirezo' AND $options == 'avancees' AND acces_rubrique($id_rubrique)) {
esj
a validé
// les versions de MSIE ne font pas toutes pareil sur alt/title
// la combinaison suivante semble ok pour tout le monde.
$titles = array(
"blanche" => _T('texte_statut_en_cours_redaction'),
"orange" => _T('texte_statut_propose_evaluation'),
"verte" => _T('texte_statut_publie'),
"rouge" => _T('texte_statut_refuse'),
"poubelle" => _T('texte_statut_poubelle'));
$action = "onmouseover=\"montrer('statutdecalarticle$id');\"";
$inser_puce = "\n<div class='puce_article' id='statut$id'$dir_lang>"
. "\n<div class='puce_article_fixe' $action>" .
Fil
a validé
http_img_pack("$puce", "", "id='imgstatutarticle$id' style='margin: 1px;'") ."</div>"
. "\n<div class='puce_article_popup' id='statutdecalarticle$id' onmouseout=\"cacher('statutdecalarticle$id');\" style=' margin-left: -".((11*$clip)+1)."px;'>\n"
esj
a validé
. afficher_script_statut($id, 'article', -1, 'puce-blanche.gif', 'prepa', $titles['blanche'], $action)
. afficher_script_statut($id, 'article', -12, 'puce-orange.gif', 'prop', $titles['orange'], $action)
. afficher_script_statut($id, 'article', -23, 'puce-verte.gif', 'publie', $titles['verte'], $action)
. afficher_script_statut($id, 'article', -34, 'puce-rouge.gif', 'refuse', $titles['rouge'], $action)
. afficher_script_statut($id, 'article', -45, 'puce-poubelle.gif', 'poubelle', $titles['poubelle'], $action)
. "</div></div>";
Fil
a validé
$inser_puce = http_img_pack("$puce", "", "id='imgstatutarticle$id' style='margin: 1px;'");
// http://doc.spip.org/@puce_statut_breve
function puce_statut_breve($id, $statut, $type, $droit) {
global $spip_lang_left, $dir_lang;
$puces = array(
0 => 'puce-orange-breve.gif',
1 => 'puce-verte-breve.gif',
2 => 'puce-rouge-breve.gif',
3 => 'puce-blanche-breve.gif');
switch ($statut) {
$title = _T('titre_breve_proposee');
break;
case 'publie':
$clip = 1;
$title = _T('titre_breve_publiee');
break;
case 'refuse':
$clip = 2;
default:
$clip = 0;
$puce = $puces[3];
$title = '';
}
Fil
a validé
$inser_puce = http_img_pack($puce, "", "id='img$type1' style='margin: 1px;'");
if (!$droit) return $inser_puce;
$type2 = "statutdecal$type$id";
$action = "onmouseover=\"montrer('$type2');\"\n";
esj
a validé
// les versions de MSIE ne font pas toutes pareil sur alt/title
// la combinaison suivante semble ok pour tout le monde.
return "<div class='puce_breve' id='$type1'$dir_lang>"
. "<div class='puce_breve_fixe' $action>"
. $inser_puce
. "</div>"
. "\n<div class='puce_breve_popup' id='$type2' onmouseout=\"cacher('$type2');\" style=' margin-left: -".((9*$clip)+1)."px;'>\n"
esj
a validé
. afficher_script_statut($id, $type, -1, $puces[0], 'prop',_T('texte_statut_propose_evaluation'), $action)
. afficher_script_statut($id, $type, -10, $puces[1], 'publie',_T('texte_statut_publie'), $action)
. afficher_script_statut($id, $type, -19, $puces[2], 'refuse',_T('texte_statut_refuse'), $action)
// http://doc.spip.org/@afficher_script_statut
esj
a validé
function afficher_script_statut($id, $type, $n, $img, $statut, $title, $act)
{
return http_href_img("javascript:selec_statut('$id', '$type', -1, '" .
generer_action_auteur("instituer_$type","$id-$statut") .
esj
a validé
$img,
"title=\"".$title."\"",
'','','',
$act);
}
//
// Afficher tableau d'articles
//
// http://doc.spip.org/@afficher_articles
function afficher_articles($titre_table, $requete, $afficher_visites = false, $afficher_auteurs = true, $obligatoire = false, $afficher_cadre = true, $afficher_descriptif = true) {
global $connect_id_auteur, $connect_statut, $dir_lang;
global $options, $spip_display;
global $spip_lang_left, $spip_lang_right;
if (!isset($requete['FROM'])) $requete['FROM'] = 'spip_articles AS articles';
// Preparation pour basculer vers liens de traductions
if ($afficher_trad) {
$jjscript_trad["fonction"] = "afficher_articles_trad";
$jjscript_trad["titre_table"] = $titre_table;
$jjscript_trad["requete"] = $requete;
$jjscript_trad["afficher_visites"] = $afficher_visites;
$jjscript_trad["afficher_auteurs"] = $afficher_auteurs;
$jjscript_trad = (serialize($jjscript_trad));
$hash = "0x".substr(md5($connect_id_auteur.$jjscript_trad), 0, 16);
$div_trad = substr($hash, 2, 6);
$res_proch = spip_query("SELECT id_ajax_fonc FROM spip_ajax_fonc WHERE hash=$hash AND id_auteur=$connect_id_auteur ORDER BY id_ajax_fonc DESC LIMIT 1");
if ($row = spip_fetch_array($res_proch)) {
$id_ajax_trad = $row["id_ajax_fonc"];
} else {
$id_ajax_trad = spip_abstract_insert("spip_ajax_fonc", "(id_auteur, variables, hash, date)", "($connect_id_auteur, " . spip_abstract_quote($jjscript_trad) . ", $hash, NOW())");
$afficher_visites = ($afficher_visites AND $connect_statut == "0minirezo" AND $activer_statistiques != "non");
$afficher_langue = false;
$langue_defaut = $GLOBALS['meta']['langue_site'];
// Preciser la requete (alleger les requetes)
if (!isset($requete['SELECT'])) {
$requete['SELECT'] = "articles.id_article, articles.titre, articles.id_rubrique, articles.statut, articles.date";
if (($GLOBALS['meta']['multi_rubriques'] == 'oui' AND (!isset($GLOBALS['id_rubrique']))) OR $GLOBALS['meta']['multi_articles'] == 'oui') {
if (isset($GLOBALS['langue_rubrique'])) $langue_defaut = $GLOBALS['langue_rubrique'];
$requete['SELECT'] .= ", articles.lang";
$requete['SELECT'] .= ", articles.visites, articles.popularite";
$requete['SELECT'] .= ", articles.descriptif";
if ($options == "avancees") $ajout_col = 1;
else $ajout_col = 0;
$jjscript["fonction"] = "afficher_articles";
$jjscript["titre_table"] = $titre_table;
$jjscript["requete"] = $requete;
$jjscript["afficher_visites"] = $afficher_visites;
$jjscript["afficher_auteurs"] = $afficher_auteurs;
$jjscript = (serialize($jjscript));
$hash = "0x".substr(md5($connect_id_auteur.$jjscript), 0, 16);
$tmp_var = substr($hash, 2, 6);
$javascript = "charger_id_url('" . generer_url_ecrire('memoriser',"id_ajax_fonc=::id_ajax_fonc::::deb::", true) . "','$tmp_var')";
if (!isset($requete['GROUP BY'])) $requete['GROUP BY'] = '';
$tous_id = array();
$cpt = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM " . $requete['FROM'] . ($requete['WHERE'] ? (' WHERE ' . $requete['WHERE']) : '') . ($requete['GROUP BY'] ? (' GROUP BY ' . $requete['GROUP BY']) : '')));
if (! ($obligatoire OR ($cpt = $cpt['n']))) return $tous_id ;
if (isset($requete['LIMIT'])) $cpt = min($requete['LIMIT'], $cpt);
$nb_aff = 1.5 * _TRANCHES;
$deb_aff = intval(_request('t_' .$tmp_var));
$tranches = '';
if ($cpt > $nb_aff) {
$nb_aff = (_TRANCHES);
$tranches = afficher_tranches_requete($cpt, $afficher_auteurs ? 4 + $ajout_col : 3 + $ajout_col, $tmp_var, $javascript, $nb_aff);
}
$requete['FROM'] = preg_replace("/(spip_articles AS \w*)/", "\\1 LEFT JOIN spip_petitions AS petitions USING (id_article)", $requete['FROM']);
$requete['SELECT'] .= ", petitions.id_article AS petition ";
$res_proch = spip_query("SELECT id_ajax_fonc FROM spip_ajax_fonc WHERE hash=$hash AND id_auteur=$connect_id_auteur ORDER BY id_ajax_fonc DESC LIMIT 1");
if ($row = spip_fetch_array($res_proch)) {
$id_ajax_fonc = $row["id_ajax_fonc"];
$id_ajax_fonc = spip_abstract_insert("spip_ajax_fonc", "(id_auteur, variables, hash, date)", "($connect_id_auteur, " . spip_abstract_quote($jjscript) . ", $hash, NOW())");
if (!$deb_aff) {
if ($afficher_trad) echo "<div id='$div_trad'>";
echo "<div style='height: 12px;'></div>";
echo "<div class='liste'>";
$id_img = "img_".$tmp_var;
Fil
a validé
$texte_img = http_img_pack("searching.gif", "*", "style='visibility: hidden; float: $spip_lang_right' id = '$id_img'");
Fil
a validé
$texte_img .= http_img_pack("searching.gif", "*", "style='visibility: hidden; float: $spip_lang_right' id = 'img_$div_trad'");
$texte_img .= "<div style='float: $spip_lang_right;'><a href=\"javascript:charger_id_url('" . generer_url_ecrire('memoriser',"id_ajax_fonc=$id_ajax_trad"). "','$div_trad');\"><img src='". _DIR_IMG_PACK . "langues-12.gif' /></a></div>";
bandeau_titre_boite2($texte_img.$titre_table, "article-24.gif");
$voir_logo = ($spip_display != 1 AND $spip_display != 4 AND $GLOBALS['meta']['image_process'] != "non");
//echo "<table width='100%' cellpadding='2' cellspacing='0' border='0'>";
echo afficher_liste_debut_tableau(), str_replace("::id_ajax_fonc::", $id_ajax_fonc, $tranches);
$result = spip_query("SELECT " . $requete['SELECT'] . " FROM " . $requete['FROM'] . ($requete['WHERE'] ? (' WHERE ' . $requete['WHERE']) : '') . ($requete['GROUP BY'] ? (' GROUP BY ' . $requete['GROUP BY']) : '') . ($requete['ORDER BY'] ? (' ORDER BY ' . $requete['ORDER BY']) : '') . " LIMIT " . ($deb_aff >= 0 ? "$deb_aff, $nb_aff" : ($requete['LIMIT'] ? $requete['LIMIT'] : "99999")));
$table = array();
while ($row = spip_fetch_array($result)) {
$table[]= afficher_articles_boucle($row, $tous_id, $afficher_auteurs, $afficher_langue, $langue_defaut, $voir_logo);
}
spip_free_result($result);
if ($options == "avancees") { // Afficher le numero (JMB)
if ($afficher_auteurs) {
$largeurs = array(11, '', 80, 100, 50);
$styles = array('', 'arial2', 'arial1', 'arial1', 'arial1');
} else {
$styles = array('', 'arial2', 'arial1', 'arial1');
$largeurs = array(11, '', 100, 100);
$styles = array('', 'arial2', 'arial1', 'arial1');
$largeurs = array(11, '', 100);
$styles = array('', 'arial2', 'arial1');
}
}
echo afficher_liste($largeurs, $table, $styles);
//echo "</table>";
echo afficher_liste_fin_tableau();
echo "</div>";
if (!$deb_aff) {
echo "</div>";
if ($afficher_trad) echo "</div>";
}
//if ($afficher_cadre) fin_cadre_gris_clair();
return $tous_id;
}
// http://doc.spip.org/@afficher_articles_boucle
function afficher_articles_boucle($row, &$tous_id, $afficher_auteurs, $afficher_langue, $langue_defaut, $voir_logo)
{
global $connect_id_auteur, $dir_lang, $options, $spip_lang_right;
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
$vals = '';
$id_article = $row['id_article'];
$tous_id[] = $id_article;
$titre = sinon($row['titre'], _T('ecrire:info_sans_titre'));
$id_rubrique = $row['id_rubrique'];
$date = $row['date'];
$statut = $row['statut'];
if ($lang = $row['lang']) changer_typo($lang);
$descriptif = $row['descriptif'];
if ($descriptif) $descriptif = ' title="'.attribut_html(typo($descriptif)).'"';
$petition = $row['petition'];
if ($afficher_auteurs) {
$les_auteurs = "";
$result_auteurs = spip_query("SELECT auteurs.id_auteur, nom, messagerie, login, bio FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien WHERE lien.id_article=$id_article AND auteurs.id_auteur=lien.id_auteur");
while ($row = spip_fetch_array($result_auteurs)) {
$id_auteur = $row['id_auteur'];
$nom_auteur = typo($row['nom']);
$auteur_messagerie = $row['messagerie'];
if ($bio = texte_backend(supprimer_tags(couper($row['bio'],50))))
$bio = " title=\"$bio\"";
$les_auteurs .= ", <a href='" . generer_url_ecrire("auteurs_edit","id_auteur=$id_auteur") . "'$bio>$nom_auteur</a>";
if ($id_auteur != $connect_id_auteur AND $auteur_messagerie != "non"
AND $bouton = bouton_imessage($id_auteur, $row)) {
$les_auteurs .= " ".$bouton;
}
}
$les_auteurs = substr($les_auteurs, 2);
}
// La petite puce de changement de statut
$vals[] = puce_statut_article($id_article, $statut, $id_rubrique);
// Le titre (et la langue)
$s = "<div>";
if (acces_restreint_rubrique($id_rubrique))
$s .= http_img_pack("admin-12.gif", "", "width='12' height='12'", _T('titre_image_admin_article'));
$s .= "<a href='" . generer_url_ecrire("articles","id_article=$id_article") .
"'$descriptif$dir_lang style=\"display:block;\">";
if ($voir_logo) {
$logo_f = charger_fonction('chercher_logo', 'inc');
if ($logo = $logo_f($id_article, 'id_article', 'on'))
if ($logo = decrire_logo("id_article", 'on', $id_article, 26, 20, $logo))
$s .= "<div style='float: $spip_lang_right; margin-top: -2px; margin-bottom: -2px;'>$logo</div>";
}
$s .= typo($titre);
if ($afficher_langue AND $lang != $langue_defaut)
$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>";
$s .= "</a>";
$s .= "</div>";
$vals[] = $s;
// Les auteurs
if ($afficher_auteurs) $vals[] = $les_auteurs;
// La date
$vals[] = affdate_jourcourt($date);
// Le numero (moche)
if ($options == "avancees") {
$vals[] = "<b>"._T('info_numero_abbreviation')."$id_article</b>";
}
return $vals;
}
// http://doc.spip.org/@afficher_articles_trad
function afficher_articles_trad($titre_table, $requete, $afficher_visites = false, $afficher_auteurs = true,
$obligatoire = false, $afficher_cadre = true, $afficher_descriptif = true) {
global $connect_id_auteur, $connect_statut, $dir_lang;
if (!$requete['FROM']) $requete['FROM']= 'spip_articles AS articles';
// Preparation pour basculer vers liste normale
$jjscript_trad["fonction"] = "afficher_articles";
$jjscript_trad["titre_table"] = $titre_table;
$jjscript_trad["requete"] = $requete;
$jjscript_trad["afficher_visites"] = $afficher_visites;
$jjscript_trad["afficher_auteurs"] = $afficher_auteurs;
$jjscript_trad = (serialize($jjscript_trad));
$hash = "0x".substr(md5($connect_id_auteur.$jjscript_trad), 0, 16);
$div_trad = substr($hash, 2, 6);
$res_proch = spip_query("SELECT id_ajax_fonc FROM spip_ajax_fonc WHERE hash=$hash AND id_auteur=$connect_id_auteur ORDER BY id_ajax_fonc DESC LIMIT 1");
if ($row = spip_fetch_array($res_proch)) {
$id_ajax_trad = $row["id_ajax_fonc"];
} else {
$id_ajax_trad = spip_abstract_insert("spip_ajax_fonc", "(id_auteur, variables, hash, date)", "($connect_id_auteur, " . spip_abstract_quote($jjscript_trad) . ", $hash, NOW())");
$afficher_visites = ($afficher_visites AND $connect_statut == "0minirezo" AND $activer_statistiques != "non");