bonjour,
( je reviens dessus, déjà abordé :
http://thread.gmane.org/gmane.comp.web.spip.devel/56024 )
les deux filtres |reset et |end, appliquables à un tableau
permettent de ne pas énerver le débusqueur pour un passage
par référence malvenu (ce que feraient les fonctions originales
PHP end(&$array) et reset(&$array)...
de plus ces 2 filtres testent préalablement la réalité de
l'array passé en premier $arg.
bien.
il se trouve que pour une raison qui m'échappe, ces 2 filtres
ne remplissent pas du tout les mêmes fonctions que leurs
homonymes php-esques :
#SET{tableau, #ARRAY{8,a, 2,b, 5,c, 3,d, 0,e, 1,f}}
[reset : (#GET{tableau}|reset)<br />] retourne * e *
[end : (#GET{tableau}|end)] retourne * c *
<?php
$tableau = array(8=>'a',2=>'b',5=>'c',3=>'d',0=>'e',1=>'f');
echo 'reset : ' . end($tableau) . // retourne * f *
'<br />end : ' . reset($tableau); // retourne * a *
?>
ces filtres ne sont utilisés que pour le calcul des bornes
des paginations et *une* fois dans *le* plugin export_odt/spipoasis.html
(j'ai scanné toute la zone pour chercher)
ne serait-il pas judicieux de les remplacer par :
// http://doc.spip.org/@filtre_reset
function filtre_reset($array) {
- return filtre_valeur_tableau($array,0);
+ return !is_array($array) ? null : reset($array);
}
// http://doc.spip.org/@filtre_end
function filtre_end($array) {
- return filtre_valeur_tableau($array,@count($array)-1);
+ return !is_array($array) ? null : end($array);
}