'euro',
130 => 'sbquo',
131 => 'fnof',
132 => 'bdquo',
133 => 'hellip',
134 => 'dagger',
135 => 'Dagger',
136 => 'circ',
137 => 'permil',
138 => 'Scaron',
139 => 'lsaquo',
140 => 'OElig',
145 => 'lsquo',
146 => 'rsquo',
147 => 'ldquo',
148 => 'rdquo',
149 => 'bull',
150 => 'ndash',
151 => 'mdash',
152 => 'tilde',
153 => 'trade',
154 => 'scaron',
155 => 'rsaquo',
156 => 'oelig',
159 => 'Yuml',
160 => 'nbsp',
161 => 'iexcl',
162 => 'cent',
163 => 'pound',
164 => 'curren',
165 => 'yen',
166 => 'brvbar',
167 => 'sect',
168 => 'uml',
169 => 'copy',
170 => 'ordf',
171 => 'laquo',
172 => 'not',
173 => 'shy',
174 => 'reg',
175 => 'macr',
176 => 'deg',
177 => 'plusmn',
178 => 'sup2',
179 => 'sup3',
180 => 'acute',
181 => 'micro',
182 => 'para',
183 => 'middot',
184 => 'cedil',
185 => 'sup1',
186 => 'ordm',
187 => 'raquo',
188 => 'frac14',
189 => 'frac12',
190 => 'frac34',
191 => 'iquest',
192 => 'Agrave',
193 => 'Aacute',
194 => 'Acirc',
195 => 'Atilde',
196 => 'Auml',
197 => 'Aring',
198 => 'AElig',
199 => 'Ccedil',
200 => 'Egrave',
201 => 'Eacute',
202 => 'Ecirc',
203 => 'Euml',
204 => 'Igrave',
205 => 'Iacute',
206 => 'Icirc',
207 => 'Iuml',
208 => 'ETH',
209 => 'Ntilde',
210 => 'Ograve',
211 => 'Oacute',
212 => 'Ocirc',
213 => 'Otilde',
214 => 'Ouml',
215 => 'times',
216 => 'Oslash',
217 => 'Ugrave',
218 => 'Uacute',
219 => 'Ucirc',
220 => 'Uuml',
221 => 'Yacute',
222 => 'THORN',
223 => 'szlig',
224 => 'agrave',
225 => 'aacute',
226 => 'acirc',
227 => 'atilde',
228 => 'auml',
229 => 'aring',
230 => 'aelig',
231 => 'ccedil',
232 => 'egrave',
233 => 'eacute',
234 => 'ecirc',
235 => 'euml',
236 => 'igrave',
237 => 'iacute',
238 => 'icirc',
239 => 'iuml',
240 => 'eth',
241 => 'ntilde',
242 => 'ograve',
243 => 'oacute',
244 => 'ocirc',
245 => 'otilde',
246 => 'ouml',
247 => 'divide',
248 => 'oslash',
249 => 'ugrave',
250 => 'uacute',
251 => 'ucirc',
252 => 'uuml',
253 => 'yacute',
254 => 'thorn',
255 => 'yuml'
);
$new_text = '';
for($i = 0; $i < strlen($str); $i++) {
$num = ord($str{$i});
if(array_key_exists($num, $entities)) {
$new_text .= '&'.$entities[$num].';';
}
elseif($num < 127 || $num > 252) {
$new_text .= $str{$i};
}
}
// Correction des & tout seuls
$new_text = preg_replace("/ & /", " & ", "$new_text");
return $new_text;
}
}
function couperclean($chaine,$limite='60',$separateur=' ',$ext=" (...)") {
$chaine=substr($chaine,0,$limite);
$position=strlen($chaine)+1;
$tail='';
if ($position>$limite) {
$position=strrpos($chaine,$separateur);
$chaine=substr($chaine,0,$position);
$tail=$ext;
}
return $chaine.$tail;
}
// Cette fonction cree le paragraphe s'il n'existe pas (texte sur un seul para)
function paragraphe($texte) {
$texte = trim($texte);
if (!strlen($texte)) return '';
// Ajouter un paragraphe au debut, et reparagrapher proprement
$texte = paragrapher(str_replace('
', '', ''.$texte));
return $texte;
}
// DEBUT FILTRE PAGINATION
function recuperer_variables_pagination_james($total, $debut, $pas, $texte) {
return array(
'lien_base' => self(),
'total' => $total,
'position' => $GLOBALS['contexte'][$debut],
'pas' => $pas,
'nombre_pages' => floor(($total-1)/$pas)+1,
'page_courante' => floor($GLOBALS['contexte'][$debut]/$pas)+1,
'lien_pagination' => function_exists('lien_pagination_james') ?
lien_pagination($texte) :
'@item@'
);
}
/*
* +----------------------------------+
* Nom du Filtre : pagination
* +----------------------------------+
* Date : dimanche 22 aout 2004
* Modifiee : mercredi 23 novembre 2005
* Auteur : James (jamesrezo.net)
* Licence : GNU/GPL
* +-------------------------------------+
* Fonctions de ce filtre :
* affiche la liste des pages d'une boucle contenant
* un critère de limite du type {debut_xxx, yyy} et depuis la 1.8.2e
* du type {debut, #ENV{pas,10}}
* +-------------------------------------+
*
* Pour toute suggestion, remarque, proposition d'ajout
* inscrivez-vous et ecrivez a la liste de discussion : spip-zonerezo.net
*/
function pagination_james($total, $debut='debut_page', $pas=10, $fonction='') {
global $pagination_item_avant, $pagination_item_apres, $pagination_separateur;
global $pagination_max, $pagination_max_texte;
tester_variable('pagination_separateur', ' - ');
tester_variable('pagination_max_texte', '...');
if(!$fonction) $fonction = 'strval';
$pagination = recuperer_variables_pagination_james($total, $debut, $pas, 'pagination');
if($pagination_max == 0 OR $pagination_max>=$pagination['nombre_pages']) {
$premiere = 1;
$derniere = $pagination['nombre_pages'];
$texte_avant = '';
$texte_apres = '';
}
else {
$premiere = max(1, $pagination['page_courante']-floor($pagination_max/2));
$derniere = min($pagination['nombre_pages'], $premiere+$pagination_max-1);
$premiere = $derniere == $pagination['nombre_pages'] ? $derniere-$pagination_max+1 : $premiere;
$texte_avant = $premiere>1 ? $pagination_max_texte.' ' : '';
$texte_apres = $derniere<$pagination['nombre_pages'] ? ' '.$pagination_max_texte : '';
}
$texte = '';
if($pagination['nombre_pages']>1) {
$i = $premiere;
while($i<=$derniere) {
$url = parametre_url($pagination['lien_base'], $debut, strval(($i-1)*$pas));
$_item = function_exists($f='pagination_'.$fonction) ?
$f($i, $pagination) :
$fonction($i);
$item = ($i != $pagination['page_courante']) ?
preg_replace(array(',@url@,', ',@item@,'), array($url, $_item), $pagination['lien_pagination']) :
$_item;
$texte .= $pagination_item_avant.$item.$pagination_item_apres;
if($i<$pagination['nombre_pages']) $texte .= $pagination_separateur;
$i++;
}
return "Pages ".$texte_avant.$texte.$texte_apres;
}
return 'Page 1';
}
// FIN du Filtre pagination
/* affichage par etendue */
function pagination_etendue_james($i, $pagination, $texte='-') {
return strval(($i-1)*$pagination['pas']+1) .
$texte .
strval(min($pagination['total'], $i*$pagination['pas']));
}
/* Indicateurs de position */
function pagination_sur_pages_james($total, $debut='debut_page', $pas=10, $texte="/") {
$pagination = recuperer_variables_pagination_james($total, $debut, $pas, 'sur_page');
return ($pagination['nombre_pages']>1) ?
$pagination['page_courante'].$texte.$pagination['nombre_pages'] :
'';
}
function pagination_sur_total_james($total, $debut='debut_page', $pas=10, $texte='-', $sur="/") {
$pagination = recuperer_variables_pagination_james($total, $debut, $pas, 'sur_total');
return ($pagination['nombre_pages']>1) ?
($pagination['position']+1).$texte.min($total, $pagination['position']+$pas).$sur.$total :
'';
}
function pagination_tout_voir_james($total, $debut='debut_page', $pas=10, $texte="|< >|", $texte_retour=">|<", $var_pas='pas') {
$pagination = recuperer_variables_pagination_james($total, $debut, $pas, 'tout_voir');
$url = parametre_url($pagination['lien_base'], $debut, strval(0));
$url = parametre_url($url, $var_pas, $total);
$url_retour = parametre_url($pagination['lien_base'], $var_pas, '');
return ($pagination['nombre_pages']>1) ?
preg_replace(array(',@url@,', ',@item@,'), array($url, $texte), $pagination['lien_pagination']) :
($texte_retour ?
preg_replace(array(',@url@,', ',@item@,'), array($url_retour, $texte_retour), $pagination['lien_pagination']) :
'');
}
/* liens particuliers */
function premiere_page_james($total, $debut='debut_page', $pas=10, $texte="|<<") {
$pagination = recuperer_variables_pagination_james($total, $debut, $pas, 'premiere');
$url = parametre_url($pagination['lien_base'], $debut, strval(0));
return ($pagination['nombre_pages']>1 && $pagination['page_courante']>1) ?
preg_replace(array(',@url@,', ',@item@,'), array($url, $texte), $pagination['lien_pagination']) :
'';
}
function page_precedente_james($total, $debut='debut_page', $pas=10, $texte="<") {
$pagination = recuperer_variables_pagination_james($total, $debut, $pas, 'precedente');
$precedent = $pagination['position']-$pas;
$url = parametre_url($pagination['lien_base'], $debut, strval($precedent));
return ($pagination['nombre_pages']>1 && $pagination['page_courante']>1) ?
preg_replace(array(',@url@,', ',@item@,'), array($url, $texte), $pagination['lien_pagination']) :
'';
}
function page_suivante_james($total, $debut='debut_page', $pas=10, $texte=">") {
$pagination = recuperer_variables_pagination_james($total, $debut, $pas, 'suivante');
$suivant = $pagination['position']+$pas;
$url = parametre_url($pagination['lien_base'], $debut, strval($suivant));
return ($pagination['nombre_pages']>1 && $pagination['page_courante']<$pagination['nombre_pages']) ?
preg_replace(array(',@url@,', ',@item@,'), array($url, $texte), $pagination['lien_pagination']) :
'';
}
function derniere_page_james($total, $debut='debut_page', $pas=10, $texte=">>|") {
$pagination = recuperer_variables_pagination_james($total, $debut, $pas, 'derniere');
$dernier = ($pagination['nombre_pages']-1)*$pas;
$url = parametre_url($pagination['lien_base'], $debut, strval($dernier));
return ($pagination['nombre_pages']>1 && $pagination['page_courante']<$pagination['nombre_pages']) ?
preg_replace(array(',@url@,', ',@item@,'), array($url, $texte), $pagination['lien_pagination']) :
'';
}
/*
* balise #PAGINATION_JAMES{page,#ENV{pas,10}}
*/
function balise_PAGINATION_JAMES($p) {
$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
if ($b === '') {
erreur_squelette(
_T('zbug_champ_hors_boucle',
array('champ' => '#PAGINATION_JAMES')
), $p->id_boucle);
$p->code = "''";
}
elseif (!$p->param || $p->param[0][0]) {
erreur_squelette(
/*_T('zbug_champ_manquant',
array('champ' => '#PAGINATION')*/
_L('paramétre manquant pour #PAGINATION_JAMES')
, $p->id_boucle);
$p->code = "''";
}
else {
$position = calculer_liste($p->param[0][1],
$p->descr,
$p->boucles,
$p->id_boucle);
$pas = calculer_liste($p->param[0][2],
$p->descr,
$p->boucles,
$p->id_boucle);
$fonction = calculer_liste($p->param[0][3],
$p->descr,
$p->boucles,
$p->id_boucle);
// autres filtres
array_shift($p->param);
$p->boucles[$b]->numrows = true;
$p->code = "pagination_james(\$Numrows['$b']['total'],".$position.",".$pas.",".$fonction.")";
}
$p->interdire_scripts = true; //SVN
return $p;
}
// FIN FILTRE PAGINATION
?>