ï»¿<?php
// Fonction qui fait ouvrir en externe les liens vers les documents PDF insérés dans des articles
// ou rubriques par le biais de la balise <docxxx>, les fichiers PDF se trouvant dans IMG/pdf/
function pop_pdf ($texte) {
	return preg_replace(",<a ([^>]*IMG/pdf/[^>]+)>,","<a \\1 onclick=\"window.open(this.href);return false\">", $texte);
}

// Surcharge de la fonction standard filtre_pagination_dist de calcul de la balise #PAGINATION (fichier filtres.php)
// Pour validation w3c HTML5 (warning sur l'attribut "name" obsolete pour la balise <a> : utilisation de l'attribut ID à la place)
function filtre_pagination($total, $nom, $position, $pas, $liste = true, $modele='', $connect='', $env=array()) {
	static $ancres = array();
	if ($pas<1) return '';
	$ancre = 'pagination'.$nom; // #pagination_articles
	$debut = 'debut'.$nom; // 'debut_articles'

	// n'afficher l'ancre qu'une fois
	if (!isset($ancres[$ancre]))
// 		$bloc_ancre = $ancres[$ancre] = "<a name='".$ancre."' id='".$ancre."'></a>"; /* JYG suppression */
		$bloc_ancre = $ancres[$ancre] = "<a id='".$ancre."'></a>"; /* JYG ajout */
	else $bloc_ancre = '';
	// liste = false : on ne veut que l'ancre
	if (!$liste)
		return $ancres[$ancre];

	$pagination = array(
		'debut' => $debut,
		'url' => parametre_url(self(),'fragment',''), // nettoyer l'id ahah eventuel
		'total' => $total,
		'position' => intval($position),
		'pas' => $pas,
		'nombre_pages' => floor(($total-1)/$pas)+1,
		'page_courante' => floor(intval($position)/$pas)+1,
		'ancre' => $ancre,
		'bloc_ancre' => $bloc_ancre
	);
	if (is_array($env))
		$pagination = array_merge($env,$pagination);

	// Pas de pagination
	if ($pagination['nombre_pages']<=1)
		return '';

	if ($modele) $modele = '_'.$modele;

	return recuperer_fond("modeles/pagination$modele", $pagination, array('trim'=>true), $connect);
}

// Surcharge de la fonction standard balise_ANCRE_PAGINATION_dist (fichier balises.php)
function balise_ANCRE_PAGINATION($p) {
	if ($f = charger_fonction('PAGINATION', 'balise', true))
		return $f($p, $liste='false');
	else return NULL; // ou une erreur ?
}
