function aff_statistique_visites_par_visites($serveur='', $id_article=0, $classement= array()) { $res = ""; // Par visites depuis le debut $result = sql_select("id_article, titre, popularite, visites", "spip_articles", "statut='publie' AND popularite > 0", "", "visites DESC", "30",'',$serveur); while ($row = sql_fetch($result,$serveur)) { $titre = typo(supprime_img($row['titre'],'')); $l_article = $row['id_article']; if ($l_article == $id_article){ $res.= "<li class='on'><em>" . $classement[$l_article] . ".</em>$titre</li>"; } else { $t = _T('info_popularite_4', array('popularite' => round($row['popularite']), 'visites' => $row['visites'])); $h = generer_url_ecrire("statistiques_visites","id_article=$l_article"); $out = "<a href='$h'\ntitle='$t'>$titre</a>"; $res.= "<li><em>" . $classement[$l_article] . ".</em>$out</li>"; } } if (!$res) return ''; return "<div class='cadre cadre-e' style='padding: 5px;'>" . "<div class='cadre_padding verdana1 spip_x-small'>" . typo(_T('info_affichier_visites_articles_plus_visites')) . "<ul class='classement'>" . $res . '</ul></div></div>'; }
function filtre_introduction_dist($descriptif, $texte, $longueur, $connect) { // Si un descriptif est envoye, on l'utilise directement if (strlen($descriptif)) { return propre($descriptif, $connect); } // De preference ce qui est marque <intro>...</intro> $intro = ''; $texte = preg_replace(",(</?)intro>,i", "\\1intro>", $texte); // minuscules while ($fin = strpos($texte, "</intro>")) { $zone = substr($texte, 0, $fin); $texte = substr($texte, $fin + strlen("</intro>")); if ($deb = strpos($zone, "<intro>") or substr($zone, 0, 7) == "<intro>") { $zone = substr($zone, $deb + 7); } $intro .= $zone; } // [12025] On ne *PEUT* pas couper simplement ici car c'est du texte brut, // qui inclus raccourcis et modeles // un simple <articlexx> peut etre ensuite transforme en 1000 lignes ... // par ailleurs le nettoyage des raccourcis ne tient pas compte // des surcharges et enrichissement de propre // couper doit se faire apres propre //$texte = nettoyer_raccourcis_typo($intro ? $intro : $texte, $connect); // Cependant pour des questions de perfs on coupe quand meme, en prenant // large et en se mefiant des tableaux #1323 if (strlen($intro)) { $texte = $intro; } else { if (strpos("\n" . $texte, "\n|") === false and strlen($texte) > 2.5 * $longueur) { if (strpos($texte, "<multi") !== false) { $texte = extraire_multi($texte); } $texte = couper($texte, 2 * $longueur); } } // ne pas tenir compte des notes if ($notes = charger_fonction('notes', 'inc', true)) { $notes('', 'empiler'); } // Supprimer les modèles avant le propre afin d'éviter qu'ils n'ajoutent du texte indésirable // dans l'introduction. $texte = supprime_img($texte, ''); $texte = propre($texte, $connect); if ($notes) { $notes('', 'depiler'); } if (!defined('_INTRODUCTION_SUITE')) { define('_INTRODUCTION_SUITE', ' (...)'); } $texte = couper($texte, $longueur, _INTRODUCTION_SUITE); // et reparagrapher si necessaire (coherence avec le cas descriptif) if ($GLOBALS['toujours_paragrapher']) { // Fermer les paragraphes $texte = paragrapher($texte, $GLOBALS['toujours_paragrapher']); } return $texte; }
function afficher_suivi_versions ($debut = 0, $id_secteur = 0, $uniq_auteur = false, $lang = "", $court = false) { changer_typo($lang); $lang_dir = lang_dir($lang); $nb_aff = 10; $champs = array('surtitre', 'titre', 'soustitre', 'descriptif', 'nom_site', 'url_site', 'chapo', 'texte', 'ps'); if ($uniq_auteur) { $req_where = " AND articles.statut IN ('prepa','prop','publie')"; $req_where .= " AND versions.id_auteur = $uniq_auteur"; } else { $req_where = " AND articles.statut IN ('prop','publie')"; } if (strlen($lang) > 0) $req_where .= " AND articles.lang=" . sql_quote($lang); if ($id_secteur > 0) $req_where .= " AND articles.id_secteur = ".intval($id_secteur); $req_where = "versions.id_version > 1 $req_where"; $req_sel = "versions.id_version, versions.id_auteur, versions.date, versions.id_article, articles.statut, articles.titre"; $req_from = 'spip_versions AS versions LEFT JOIN spip_articles AS articles ON versions.id_article = articles.id_article'; $revisions = ''; $items = array(); $result = sql_select($req_sel, $req_from, $req_where, '', 'versions.date DESC', "$debut, $nb_aff"); while ($row = sql_fetch($result)) { $id_article = $row['id_article']; if (autoriser('voir','article',$id_article)){ $statut = $row['statut']; $id_version = $row['id_version']; $id_auteur = $row['id_auteur']; $date = $row['date']; $titre = typo(supprime_img($row['titre'],'')); // l'id_auteur peut etre un numero IP (edition anonyme) if ($id_auteur == intval($id_auteur) AND $row_auteur = sql_fetsel('nom,email', 'spip_auteurs', "id_auteur = ".sql_quote($id_auteur))) { $nom = typo($row_auteur["nom"]); $email = $row_auteur['email']; } else { $nom = $id_auteur; $email = ''; } $aff = revisions_bouton($id_article, $id_auteur, $id_version, $titre, $statut, $date, $lang_dir, $nom); if (!$court) { $bouton_id = "b$id_version-$id_article-$id_auteur"; $aff = bouton_block_depliable($aff,false,$bouton_id) . debut_block_depliable(false,$bouton_id) . safehtml(revisions_diff ($id_article, $id_version, $court)) . fin_block(); } $revisions .= "\n<div class='tr_liste' style='padding: 5px; border-top: 1px solid #aaaaaa;'>$aff</div>"; } } if (!$revisions) return ''; else return revisions_entete_boite($court, $debut, $id_secteur, $lang, $nb_aff, $req_from, $req_where, $uniq_auteur) . $revisions . fin_block() . fin_cadre(); }
function afficher_articles_trad_boucle($row, $own='') { global $spip_lang_right, $spip_display; $id_article = $row['id_article']; if (!autoriser('voir','article',$id_article)) return ''; $titre = $row['titre']; $id_rubrique = $row['id_rubrique']; $statut = $row['statut']; $id_trad = $row['id_trad']; $lang = $row['lang']; $lang_dir = lang_dir($GLOBALS['lang_objet']); $dates_art = $langues_art = array(); $ligne = ""; $res_trad = sql_select("id_article, lang, date_modif", "spip_articles", "id_trad = $id_trad AND id_trad > 0"); while ($row_trad = sql_fetch($res_trad)) { $id_article_trad = $row_trad["id_article"]; $lang_trad = $row_trad["lang"]; $date = $row_trad['date_modif']; $dates_art[$lang_trad] = $date; $langues_art[$lang_trad] = $id_article_trad; if ($id_article_trad == $id_trad) $date_ref = $date; } // faudrait sortir ces invariants de boucle if (($GLOBALS['meta']['multi_rubriques'] == 'oui' AND (!isset($GLOBALS['id_rubrique']))) OR $GLOBALS['meta']['multi_articles'] == 'oui') { $langue_defaut = isset($GLOBALS['langue_rubrique']) ? $GLOBALS['meta']['langue_site'] : $GLOBALS['langue_rubrique']; if ($lang != $langue_defaut) $afficher_langue = " <span class='spip_xx-small' style='color: #666666' dir='$lang_dir'>(".traduire_nom_langue($lang).")</span>"; } else $afficher_langue = ''; foreach(explode(',', $GLOBALS['meta']['langues_multilingue']) as $k){ if (isset($langues_art[$k]) AND $langues_art[$k]<> $id_trad){ $h = generer_url_ecrire("articles", "id_article=".$langues_art[$k]); $style = strtotime($dates_art[$k]) < strtotime($date_ref); $style = $style ? 'claire' : 'foncee'; $ligne .= "<a href='$h' class='$style'>$k</a>"; } } if (acces_restreint_rubrique($id_rubrique)) $img = http_img_pack("admin-12.gif", _T('titre_image_administrateur'), "width='12' height='12'", _T('titre_image_admin_article')); else $img = ''; if (!$titre) $titre = _T('ecrire:info_sans_titre'); if ($id_article == $id_trad) $titre = "<b>$titre</b>"; $h = generer_url_ecrire("articles", "id_article=$id_article"); $titre = "\n<div>" . $img . "<a href='$h' dir='$lang_dir' style=\"display:block;\">" . typo(supprime_img($titre,'')) . "</a></div>"; if ($spip_display == 4) return array($ligne); $ligne .= "<a href='$h'><span class='lang_base'>$lang</span></a>"; // La petite puce de changement de statut $puce_statut = charger_fonction('puce_statut', 'inc'); $puce = $puce_statut($id_article, $statut, $id_rubrique,'article'); return array($puce, $titre, $afficher_langue, "<div style='float: $spip_lang_right; margin-right: -10px;'>" . $ligne . "</div>"); }
function inc_formater_article_dist($row, $own='') { global $spip_lang_right, $spip_display; static $pret = false; static $chercher_logo, $img_admin, $formater_auteur, $nb, $langue_defaut, $afficher_langue, $puce_statut; $id_article = $row['id_article']; if (!autoriser('voir','article',$id_article)) return ''; if (!$pret) { $chercher_logo = ($spip_display != 1 AND $spip_display != 4 AND $GLOBALS['meta']['image_process'] != "non"); if ($chercher_logo) $chercher_logo = charger_fonction('chercher_logo', 'inc'); $formater_auteur = charger_fonction('formater_auteur', 'inc'); $img_admin = http_img_pack("admin-12.gif", "", " width='12' height='12'", _T('titre_image_admin_article')); if (($GLOBALS['meta']['multi_rubriques'] == 'oui' AND (!isset($GLOBALS['id_rubrique']))) OR $GLOBALS['meta']['multi_articles'] == 'oui') { $afficher_langue = true; $langue_defaut = !isset($GLOBALS['langue_rubrique']) ? $GLOBALS['meta']['langue_site'] : $GLOBALS['langue_rubrique']; } $puce_statut = charger_fonction('puce_statut', 'inc'); $pret = true; } if ($chercher_logo) { if ($logo = $chercher_logo($id_article, 'id_article', 'on')) { list($fid, $dir, $nom, $format) = $logo; include_spip('inc/filtres_images_mini'); $logo = "<span style='float: $spip_lang_right; margin-top: -2px; margin-bottom: -2px;'>" . image_reduire("<img src='$fid' alt='' />", 26, 20) . "</span>"; } else $logo = ''; } else $logo =''; $titre = supprime_img($row['titre'],''); $id_rubrique = $row['id_rubrique']; $date = $row['date']; $statut = $row['statut']; $descriptif = $row['descriptif']; $lang = $row['lang']; $dir = "dir='" . lang_dir($lang ? changer_typo($lang) : '') . "'"; if ($lang AND $afficher_langue AND $lang != $GLOBALS['meta']['langue_site']) $lang = " <span class='spip_xx-small' style='color: #666666' " . $dir . '>(' . traduire_nom_langue($lang) . ')</span>'; else $lang = ''; $arg = "id_article=$id_article"; $url_a = generer_url_ecrire("articles", $arg); if (!$row['petition']) $petition = ''; else $petition = " <a href='" . generer_url_ecrire('controle_petition', $arg) . "' class='spip_xx-small' style='color: red'>"._T('lien_petitions') . "</a>"; $lien = "<div>" . $logo . (acces_restreint_rubrique($id_rubrique) ? $img_admin : '') . "<a href='" . $url_a . "'" . (!$descriptif ? '': (' title="'.attribut_html(typo($descriptif)).'"')) . " $dir>" . typo(strlen($titre) ? $titre : _T('ecrire:info_sans_titre')) . "</a>" . $lang . $petition . "</div>"; if ($spip_display == 4) return array($lien); $puce = $puce_statut($id_article, $statut, $id_rubrique,'article'); $auteurs = auteurs_article($id_article); foreach ($auteurs as $k => $r) { list(, $mail, $nom,,) = $formater_auteur($r['id_auteur']); $auteurs[$k]= "$mail $nom"; } $date = affdate_jourcourt($date); if (!$date) $date = ' '; $num = afficher_numero_edit($id_article, 'id_article', 'article'); // Afficher le numero (JMB) return array($puce, $lien, join('<br />', $auteurs), $date, $num); }
function articles_traduction($row, $id_article) { global $connect_toutes_rubriques; $vals = array(); $id_rubrique_trad = $row["id_rubrique"]; $id_article_trad = $row["id_article"]; $id_trad = $row["id_trad"]; $titre_trad = $row["titre"]; $lang_trad = $row["lang"]; $statut_trad = $row["statut"]; changer_typo($lang_trad); $lang_dir = lang_dir($lang_trad); $titre_trad = "<span dir='$lang_dir'>$titre_trad</span>"; $puce_statut = charger_fonction('puce_statut', 'inc'); $vals[] = $puce_statut($id_article_trad, $statut_trad, $id_rubrique_trad, 'article'); if ($id_article_trad == $id_trad) { $vals[] = http_img_pack('langues-12.gif', "", " class='lang'"); $titre_trad = "<b>$titre_trad</b>"; } else { if (!$connect_toutes_rubriques) $vals[] = http_img_pack('langues-off-12.gif', "", " class='lang'"); else $vals[] = ajax_action_auteur("referencer_traduction", "$id_article,$id_trad,$id_article_trad", 'articles', "id_article=$id_article", array(http_img_pack('langues-off-12.gif', _T('trad_reference'), "class='lang'"), ' title="' . _T('trad_reference') . '"')); } $s = typo(supprime_img($titre_trad,'')); if ($id_article_trad != $id_article) $s = "<a href='" . generer_url_ecrire("articles","id_article=$id_article_trad") . "'>$s</a>"; if ($id_article_trad == $id_trad) $s .= " "._T('trad_reference'); $vals[] = $s; $vals[] = traduire_nom_langue($lang_trad); return $vals; }