paginar alfabéticamente

Saludos, ¿hay alguna forma para hacer que cuando pagine lo haga en vez de 0, 10, 20… lo haga por A, B, C…

Lo que quiero es crear una especie de índice de personas.

Como siempre, mil gracias

Carlos Peña

Hola,

El componente Dividir en páginas y pestañas permite hacer paginaciones (o pestañas personalizadas) el tema es crear el bucle adecuado para organizar los resultados que quieres por A, B, C supongo que tocará combinarlo con el criterio match http://www.spip.net/es_article4442.html#match

El 25 de marzo de 2010 23:05, Carlos Peña <carlosp@nodo50.org> escribió:

Saludos, ¿hay alguna forma para hacer que cuando pagine lo haga en vez de 0, 10, 20… lo haga por A, B, C…

Lo que quiero es crear una especie de índice de personas.

Como siempre, mil gracias

Carlos Peña


Spip-es@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-es


Germán Bustos
(+57)3177381339
Atarraya
http://atarraya.org
http://germanbustos.com

Fri, 26 Mar 2010 04:05:19 +0100, Carlos:

Saludos, ¿hay alguna forma para hacer que cuando pagine lo haga en
vez de 0, 10, 20… lo haga por A, B, C…

Lo que quiero es crear una especie de índice de personas.

Con el sistema de paginación como tal, no creo: ése usa mucho los
números y aplica varios cálculos sobre ellos. Mira los archivos
prive/modeles/pagination*.html para verlo.

En cambio, seguramente te sea más fácil usar enlaces normales en la
dirección. Algo así como: http://example.com/loquesea?letra=B

Luego, en tu esqueleto supongo que puedes mostrar los nombres que
empiezan con la letra (no lo he probado):
<BOUCLE_articulos_por_letra(ARTICLES){titre LIKE (#ENV{letra})%}

Documentación de LIKE: {criterio LIKE valor} - SPIP

Luego, si quieres hacerlo más bonito, le aplicas una capa de AJAX
para que se reactualize sólo la zona de la lista. No voy a detallar
aquí el método, porque está explicado allí:

Con eso ya ni se verán los ?letra=X en la dirección, ya que todo se
quedará en el AJAX (pero seguirá funcionando normal para quien no
tenga javascript activado en su navegador).

Pero igual mi consejo es que primero lo hagas funcionar bien bien sin
AJAX, y que le pongas AJAX hasta después, sino te vas a volver loco.

Suerte!
--
davux

Thu, 25 Mar 2010 23:23:48 -0400, Germán:

El componente Dividir en páginas y pestañas permite hacer
paginaciones (o pestañas personalizadas) el tema es crear el bucle
adecuado para organizar los resultados que quieres por A, B, C

Este método usa CSS para filtrar la lista. Hay que tomar en cuenta
eso, y decidir si quieres este filtro nada más a nivel visual o
también de código HTML.

Aparte de la cantidad de datos generada (listas enormes tal vez), una
buena pregunta es: si alguien usa un navegador textual como w3m, un
sintetisor vocal, un equipo Braille, etc., ¿qué resultado quiero que
tenga? Si la respuesta es que le quiero dar una lista filtrada por
letra igual, entonces esta solución por CSS no vale. En el caso
contrario, es un buen método. Los que no tienen CSS obtendrán algo
así:

<div id="letra-A"><h3>A</h3><ul>
<li>Alberto</li>
<li>Alfredo</li>
...
</ul></div>
<div id="letra-B" class="on">B</h3><ul>
<li>Bernardo</li>
...
</ul></div>

Luego a tus links les pones "loquesea?letra=B#letra-B" como
destinación, y construyes tu esqueleto de tal forma que genere
class="on" cuando le toque #ENV{letra}. Gracias a class="on", tu
código CSS puede mostrar sólo esta parte, y los que no tienen CSS
tendrán igual la sección #letra-B puesta en evidencia por su navegador
de alguna forma.

Así tienes un índice accesible *y* bonito. :slight_smile:

Pero repito, con esto te quedas con la lista integral en el HTML.
Dependiendo del número de elementos, puede ser que no te convenga.
Si quieres realmente generar *sólo* la lista que corresponde a la
letra B, es mejor usar el método descrito en mi mail anterior.

--
davux