Ejemplo n.º 1
0
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>';
}
Ejemplo n.º 2
0
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', '&nbsp;(...)');
    }
    $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;
}
Ejemplo n.º 3
0
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();
}
Ejemplo n.º 4
0
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>");
}
Ejemplo n.º 5
0
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&nbsp;$nom";
	}

	$date = affdate_jourcourt($date);
	if (!$date) $date = '&nbsp;';

	$num = afficher_numero_edit($id_article, 'id_article', 'article');

	// Afficher le numero (JMB)

	return array($puce, $lien, join('<br />', $auteurs), $date, $num);
}
Ejemplo n.º 6
0
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;
}