'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 ?>