Refonte des modèles de pagination #2822 #147

Closed
cerdic wants to merge 10 commits from dev/pagination into master
cerdic commented 3 weeks ago
Owner

On adopte une structure plus riche et balisée, plus facile a styler

La convention est de la forme :

<span class="pagination-label"><span class="label">...</span></span>
<ul class="pagination-items">
	<li class="pagination-item"><a class="pagination-lien lien_pagination">...</a></li>
	<li class="pagination-item active on"><span class="pagination-lien">...</a></li>
	<li class="pagination-item disabled"><span class="pagination-lien">...</a></li>
</ul>

La classe lien_pagination sur les liens est conservée par soucis de compatibilité (css, js)

Le conteneur .pagination est posé par l'appellant, mais ne peut plus être un <p>. En html5 une balise <nav> est recommandée, sur le modèle de

[<nav class='pagination'>(#PAGINATION)</nav>]

Dans le privé, on utilise un simple + pour le lien Tout afficher (avec un title au survol) et on limite a 5 liens

On adopte une structure plus riche et balisée, plus facile a styler La convention est de la forme : ``` <span class="pagination-label"><span class="label">...</span></span> <ul class="pagination-items"> <li class="pagination-item"><a class="pagination-lien lien_pagination">...</a></li> <li class="pagination-item active on"><span class="pagination-lien">...</a></li> <li class="pagination-item disabled"><span class="pagination-lien">...</a></li> </ul> ``` La classe `lien_pagination` sur les liens est conservée par soucis de compatibilité (css, js) Le conteneur .pagination est posé par l'appellant, mais ne peut plus être un `<p>`. En html5 une balise `<nav`> est recommandée, sur le modèle de ``` [<nav class='pagination'>(#PAGINATION)</nav>] ``` Dans le privé, on utilise un simple `+` pour le lien `Tout afficher` (avec un title au survol) et on limite a 5 liens
cerdic added 2 commits 3 weeks ago
818c67bc1f Refactoring du modele de pagination du prive #2822 :
b_b commented 3 weeks ago
Owner

Top, juste une remarque/question, pourquoi un <span class="pagination-label"><span class="label">...</span></span> au lieu de <span class="pagination-label label">...</span> ?

Et juste pour la forme, je pense que c'est mieux d'être homogène au niveau des attributs html en utilisant toujours des double quotes :)

Top, juste une remarque/question, pourquoi un `<span class="pagination-label"><span class="label">...</span></span>` au lieu de `<span class="pagination-label label">...</span>` ? Et juste pour la forme, je pense que c'est mieux d'être homogène au niveau des attributs html en utilisant toujours des double quotes :)
Poster
Owner

Là tout de suite je me souviens plus pourquoi avec certitude j'avais fait ça (j'ai repris des modèles que j'ai fait pour le plugin BS et mis au propre), mais je pense que c'est plus souple pour le stylage, ça permet d'avoir 2 conteneurs comme pour les items.

(Pour être complet, je me suis demandé aussi si mettre ou pas un conteneur
<div class='pagination-inner'>...</div> pour regrouper le .pagination-label et le .pagination-items)

Là tout de suite je me souviens plus pourquoi avec certitude j'avais fait ça (j'ai repris des modèles que j'ai fait pour le plugin BS et mis au propre), mais je pense que c'est plus souple pour le stylage, ça permet d'avoir 2 conteneurs comme pour les items. (Pour être complet, je me suis demandé aussi si mettre ou pas un conteneur `<div class='pagination-inner'>...</div>` pour regrouper le `.pagination-label` et le `.pagination-items`)
Owner

Cool.
Dans la foulée du changement de markup, ça pourrait être aussi l'occasion d'ajouter les éléments nécessaires pour l'accessibilité non ?

De ce que j'ai lu, il suffit d'ajouter aria-current sur le lien de la page en cours, ainsi que des aria-label sur le conteneur et sur chaque lien.

Cf. exemple donné ici : https://www.a11ymatters.com/pattern/pagination/

<nav role="navigation" aria-label="Pagination">
  <ul>
    <li><a href="#" aria-current="true" aria-label="Page 1, Current Page">1</a></li>
    <li><a href="#" aria-label="Page 2">2</a></li>
    <li><a href="#" aria-label="Page 3">3</a></li>
    <li><a href="#" aria-label="Page 4">4</a></li>
    <li><a href="#" aria-label="Page 5">5</a></li>
  </ul>
</nav>

Nb : j'ai un doute sur leur utilisation du role=navigation, il me semblait que c'était réservé aux landmarks, c'est à dire vraiment aux blocs principaux structurants de la page, ce qui me semble pas s'appliquer pour une pagination.
Mais bon, j'ai laissé leur exemple tel quel.

Cool. Dans la foulée du changement de markup, ça pourrait être aussi l'occasion d'ajouter les éléments nécessaires pour l'accessibilité non ? De ce que j'ai lu, il suffit d'ajouter `aria-current` sur le lien de la page en cours, ainsi que des `aria-label` sur le conteneur et sur chaque lien. Cf. exemple donné ici : https://www.a11ymatters.com/pattern/pagination/ ```html <nav role="navigation" aria-label="Pagination"> <ul> <li><a href="#" aria-current="true" aria-label="Page 1, Current Page">1</a></li> <li><a href="#" aria-label="Page 2">2</a></li> <li><a href="#" aria-label="Page 3">3</a></li> <li><a href="#" aria-label="Page 4">4</a></li> <li><a href="#" aria-label="Page 5">5</a></li> </ul> </nav> ``` Nb : j'ai un doute sur leur utilisation du `role=navigation`, il me semblait que c'était réservé aux landmarks, c'est à dire vraiment aux blocs principaux structurants de la page, ce qui me semble pas s'appliquer pour une pagination. Mais bon, j'ai laissé leur exemple tel quel.
Owner

+1 @tcharlss

Le role="navigation" sur une balise nav est par défaut mais ça ne coute rien de l'ajouter.

Le libellé peut être plus explicite : "Aller à la page X", au lieu de juste "Page X".

Egalement tabindex="-1" aria-disabled="true" sur les liens désactivés.

Autre ressource : https://a11y-style-guide.com/style-guide/section-navigation.html

+1 @tcharlss Le role="navigation" sur une balise nav est par défaut mais ça ne coute rien de l'ajouter. Le libellé peut être plus explicite : "Aller à la page X", au lieu de juste "Page X". Egalement tabindex="-1" aria-disabled="true" sur les liens désactivés. Autre ressource : https://a11y-style-guide.com/style-guide/section-navigation.html
Poster
Owner

Il y a pas de lien sur les éléments disabled, c'est un span à la place, et de même pour la page courante : elle n'est pas dans un lien mais dans un span aussi.

Pour les aria-label, du coup il nous faudrait ajouter le jeu de chaines de langue suivant :

  • Aller à la page @nb@
  • Aller à la première page
  • Aller à la dernière page
  • Aller à la page précédente
  • Aller à la page suivante

Mais du coup pour le modèle pagination qui affiche non pas des numéros de pages, mais un nombre d'items, qu'est-ce qu'on mettrait ?

Est-ce qu'il faudrait déprecier ce modèle au profit du modèle page (qui serait du coup l'affichage par défaut) car c'est maintenant clairement la convention sur le web et les affichages de type 0 10 20 30 ... c'est quand même très geek ?

Et du coup on aurait un modèle pagination_compteur - ou meilleur nom à trouver - pour ceux qui sont vraiment attaché à cet affichage ?

Il y a pas de lien sur les éléments disabled, c'est un span à la place, et de même pour la page courante : elle n'est pas dans un lien mais dans un span aussi. Pour les aria-label, du coup il nous faudrait ajouter le jeu de chaines de langue suivant : * `Aller à la page @nb@` * `Aller à la première page` * `Aller à la dernière page` * `Aller à la page précédente` * `Aller à la page suivante` Mais du coup pour le modèle pagination qui affiche non pas des numéros de pages, mais un nombre d'items, qu'est-ce qu'on mettrait ? Est-ce qu'il faudrait déprecier ce modèle au profit du modèle page (qui serait du coup l'affichage par défaut) car c'est maintenant clairement la convention sur le web et les affichages de type `0 10 20 30 ...` c'est quand même très geek ? Et du coup on aurait un modèle pagination_compteur - ou meilleur nom à trouver - pour ceux qui sont vraiment attaché à cet affichage ?

Est-ce qu'il faudrait déprecier ce modèle au profit du modèle page (qui serait du coup l'affichage par défaut) car c'est maintenant clairement la convention sur le web et les affichages de type 0 10 20 30 ... c'est quand même très geek ?

OUI, OUI et OUI !

> Est-ce qu'il faudrait déprecier ce modèle au profit du modèle page (qui serait du coup l'affichage par défaut) car c'est maintenant clairement la convention sur le web et les affichages de type 0 10 20 30 ... c'est quand même très geek ? OUI, OUI et OUI !
Owner

Merci pour les compléments @nicod_.

Sur le sujet du role=navigation pour la pagination, j'ai toujours un doute : il me semble qu'il n'est pas nécessaire sur tous les éléments <nav>, mais uniquement sur les blocs de navigation principaux : le menu principal, etc.
Par exemple dans l'article du W3C ils disent que ces blocs sont en général les cibles des liens d'évitement : https://www.w3.org/TR/wai-aria-practices/examples/landmarks/index.html
Les diverses paginations présentes dans la page ne me semble pas rentrer dans cette catégorie.

Merci pour les compléments @nicod\_. Sur le sujet du `role=navigation` pour la pagination, j'ai toujours un doute : il me semble qu'il n'est pas nécessaire sur *tous* les éléments `<nav>`, mais uniquement sur les blocs de navigation principaux : le menu principal, etc. Par exemple dans l'article du W3C ils disent que ces blocs sont en général les cibles des liens d'évitement : https://www.w3.org/TR/wai-aria-practices/examples/landmarks/index.html Les diverses paginations présentes dans la page ne me semble pas rentrer dans cette catégorie.
Owner

Oui aussi pour déprécier ce vieux 10 20 30 (incompréhensible), et oui pour les chaînes de langues.

En théorie, il faut aussi indiquer le nombre total de résultats, le nombre de résultats par page, et le nombre total de pages.
Cf https://core.spip.net/issues/2822#note-6

@tcharlss, sur le rôle navigation, la spéc indique :
https://www.w3.org/TR/wai-aria-1.1/#navigation

A collection of navigational elements (usually links) for navigating the document or related documents.

Pour moi, une pagination c'est bien un élément de navigation, même si ce n'est pas la principale (qui elle est souvent en début de page et peut avoir un label "Navigation principale", justement, pour éclaircir le doute).

Et les balises nav ont de toute façon nativement ce rôle, le fait de l'ajouter en plus permet juste une meilleure compatibilité

Oui aussi pour déprécier ce vieux 10 20 30 (incompréhensible), et oui pour les chaînes de langues. En théorie, il faut aussi indiquer le nombre total de résultats, le nombre de résultats par page, et le nombre total de pages. Cf https://core.spip.net/issues/2822#note-6 @tcharlss, sur le rôle navigation, la spéc indique : https://www.w3.org/TR/wai-aria-1.1/#navigation > A collection of navigational elements (usually links) for navigating the document or related documents. Pour moi, une pagination c'est bien un élément de navigation, même si ce n'est pas la principale (qui elle est souvent en début de page et peut avoir un label "Navigation principale", justement, pour éclaircir le doute). Et les balises nav ont de toute façon nativement ce rôle, le fait de l'ajouter en plus permet juste une meilleure compatibilité
Owner

Est-ce qu'il faudrait déprecier ce modèle au profit du modèle page (qui serait du coup l'affichage par défaut) car c'est maintenant clairement la convention sur le web et les affichages de type 0 10 20 30 ... c'est quand même très geek ?

+1 aussi

> Est-ce qu'il faudrait déprecier ce modèle au profit du modèle page (qui serait du coup l'affichage par défaut) car c'est maintenant clairement la convention sur le web et les affichages de type 0 10 20 30 ... c'est quand même très geek ? +1 aussi
Owner

En fait chez moi c'est toujours pagination_page_precedent_suivant par défaut que j'utilise, qui me parait le modèle le plus utilisé partout aujourd'hui sur le web, je fais une surcharge pour que ce soit totomatique.

En fait chez moi c'est toujours pagination_page_precedent_suivant par défaut que j'utilise, qui me parait le modèle le plus utilisé partout aujourd'hui sur le web, je fais une surcharge pour que ce soit totomatique.

+1 évidemment pour ne plus utiliser 10 20 30

et pour l'accessibilité/qualité qui était décrit là aussi :
https://core.spip.net/issues/3230

+1 évidemment pour ne plus utiliser 10 20 30 et pour l'accessibilité/qualité qui était décrit là aussi : https://core.spip.net/issues/3230
Poster
Owner

En ce qui concerne

En théorie, il faut aussi indiquer le nombre total de résultats, le nombre de résultats par page, et le nombre total de pages.
Cf https://core.spip.net/issues/2822#note-6

C'est une BP qui cible la recherche plus particulièrement, pas toutes les listes, et en lisant https://www.a11ymatters.com/pattern/pagination/ je me dis que la bonne solution c'est de le gérer à l'appel, là où on le veut vraiment, ce qui donnerait

[<nav aria-label="Pagination : [(#GRAND_TOTAL)] résultats, [(#GRAND_TOTAL|div{10}|ceil)] pages, 10 résultats par page">
(#PAGINATION)
</nav>]

Ce qui permet aussi d'utiliser le wording adapté ("résultats", "articles"...). Eventuellement on peut réflechir à un filtre qui permet de faciliter cet affichage, mais c'est du bonus et ça peut être travaillé hors du core (et intégré le cas échéant quand c'est rôdé si on veut)

Du coup je ne mettrai pas ça dans le modèle de pagination lui même, pour éviter trop de complexité.

En ce qui concerne > En théorie, il faut aussi indiquer le nombre total de résultats, le nombre de résultats par page, et le nombre total de pages. Cf https://core.spip.net/issues/2822#note-6 C'est une BP qui cible la recherche plus particulièrement, pas toutes les listes, et en lisant https://www.a11ymatters.com/pattern/pagination/ je me dis que la bonne solution c'est de le gérer à l'appel, là où on le veut vraiment, ce qui donnerait ``` [<nav aria-label="Pagination : [(#GRAND_TOTAL)] résultats, [(#GRAND_TOTAL|div{10}|ceil)] pages, 10 résultats par page"> (#PAGINATION) </nav>] ``` Ce qui permet aussi d'utiliser le wording adapté ("résultats", "articles"...). Eventuellement on peut réflechir à un filtre qui permet de faciliter cet affichage, mais c'est du bonus et ça peut être travaillé hors du core (et intégré le cas échéant quand c'est rôdé si on veut) Du coup je ne mettrai pas ça dans le modèle de pagination lui même, pour éviter trop de complexité.
Owner

Du coup je ne mettrai pas ça dans le modèle de pagination lui même, pour éviter trop de complexité.

Effectivement, surtout pour avoir des termes (noms d'objets) adaptés.

> Du coup je ne mettrai pas ça dans le modèle de pagination lui même, pour éviter trop de complexité. Effectivement, surtout pour avoir des termes (noms d'objets) adaptés.
cerdic added 5 commits 3 weeks ago
b5b88888ea Refactoring : un seul modele pour gerer la pagination avec affichage par page ou par rang (historique)
2464c5a91e Le lien 'tout afficher' devient une option de la pagination standard, que l'on peut activer via
Poster
Owner

Voila j'ai donc refactoré les modèles pagination qui ne sont plus qu'un seul et même modèle pour page/le legacy/page_precedent_suivant/prive avec une class qui se pose en fonction du type, et un filtre surchargeable pour afficher le contenu des liens en fonction du type de pagination demandée - ce qui permet facilement de personaliser sans devoir surcharger les modèles de pagination.

Du coup on gagne des versions d'affichage cf b5b88888ea ('page' par défaut, 'rang' pour le legacy, 'resultats' pour un comptage des items à partir de 1, 'naturel' pour un comptage faux mais humainement friendly - comme 'rang' mais le premier affiche 1 au lieu de 0)

Par ailleurs les liens "afficher tout", "page précédente" et "page suivante" sont affichables au cas par cas avec une option.

Enfin, j'ai mis les aria-label sur les liens, avec les chaines de langue exposées ci-dessus.

Voila j'ai donc refactoré les modèles pagination qui ne sont plus qu'un seul et même modèle pour page/le legacy/page_precedent_suivant/prive avec une class qui se pose en fonction du type, et un filtre surchargeable pour afficher le contenu des liens en fonction du type de pagination demandée - ce qui permet facilement de personaliser sans devoir surcharger les modèles de pagination. Du coup on gagne des versions d'affichage cf https://git.spip.net/spip/spip/commit/b5b88888eab83c35a535f0d72f15fabb24d15048 ('page' par défaut, 'rang' pour le legacy, 'resultats' pour un comptage des items à partir de 1, 'naturel' pour un comptage faux mais humainement friendly - comme 'rang' mais le premier affiche 1 au lieu de 0) Par ailleurs les liens "afficher tout", "page précédente" et "page suivante" sont affichables au cas par cas avec une option. Enfin, j'ai mis les aria-label sur les liens, avec les chaines de langue exposées ci-dessus.
Owner

J'ai testé un peu, super évolution.
Quelques remarques casse-bonbon quand même :

  1. les liens « tout afficher » et « page suivante/précédente » sont représentés par des symboles : +, > et <. Il me semble que le défaut ça devrait être de garder ça en toutes lettres comme c'était avant, même s'il y a un title : c'est personnalisable si on veut une version courte.
    Enfin les liens précédent/suivant à priori on comprend, mais le « + » je sais pas si c'est forcément parlant.

  2. La classe pagination-lien est présente sur tous éléments des items de pagination, mêmes ceux qui ne sont pas des liens : la page courante et le séparateur « … ». Pour ceux-là c'est un peu trompeur.
    Est-ce qu'il vaudrait pas mieux un nom qui ne correlle pas ça au fait que ça soit un lien, pagination-label-item par ex. ?
    En schématisant :

ul.pagination-items
  li.pagination-item.tbc.disabled
    span.pagination-label-item (…)
  li.pagination-item
    a.pagination-label-item.lien_pagination (Page N)
  1. Pour les « tbc » on pourrait mettre des vrais points de suspension au lieu de 3 points d'affilée ....

Enfin une dernière remarque pas liée à cette branche (ça faisait pareil avant), mais je remarque ça à l'instant donc j'en profite :

  1. Dans certains cas on se retrouve avec un « tbc » qui semble inutile, par exemple : 1 … 2 3 4 5 6. Là c'est avec une pagination par 5, je suis sur la page 6, et c'est la pagination « page ».
J'ai testé un peu, super évolution. Quelques remarques casse-bonbon quand même : 1) les liens « tout afficher » et « page suivante/précédente » sont représentés par des symboles : `+`, `>` et `<`. Il me semble que le défaut ça devrait être de garder ça en toutes lettres comme c'était avant, même s'il y a un title : c'est personnalisable si on veut une version courte. Enfin les liens précédent/suivant à priori on comprend, mais le « + » je sais pas si c'est forcément parlant. 2) La classe `pagination-lien` est présente sur tous éléments des items de pagination, mêmes ceux qui ne sont pas des liens : la page courante et le séparateur « … ». Pour ceux-là c'est un peu trompeur. Est-ce qu'il vaudrait pas mieux un nom qui ne correlle pas ça au fait que ça soit un lien, `pagination-label-item` par ex. ? En schématisant : ``` ul.pagination-items li.pagination-item.tbc.disabled span.pagination-label-item (…) li.pagination-item a.pagination-label-item.lien_pagination (Page N) ``` 3) Pour les « tbc » on pourrait mettre des vrais points de suspension `…` au lieu de 3 points d'affilée `...`. Enfin une dernière remarque pas liée à cette branche (ça faisait pareil avant), mais je remarque ça à l'instant donc j'en profite : 4) Dans certains cas on se retrouve avec un « tbc » qui semble inutile, par exemple : `1 … 2 3 4 5 6`. Là c'est avec une pagination par 5, je suis sur la page 6, et c'est la pagination « page ».
Owner

Juste une question : ces paginations ne sont plus stylées, ni en front ni en back, c'est normal ou c'est que chez moi ?

Juste une question : ces paginations ne sont plus stylées, ni en front ni en back, c'est normal ou c'est que chez moi ?
Owner

J'ai testé un peu, super évolution.

Pareil.

  1. les liens « tout afficher » et « page suivante/précédente » sont représentés par des symboles : +, > et <. Il me semble que le défaut ça devrait être de garder ça en toutes lettres comme c'était avant, même s'il y a un title : c'est personnalisable si on veut une version courte.

Ça ne me choque pas, c'est quand même une convention aujourd'hui.
Tant qu'il y a un label, c'est propre.

Enfin les liens précédent/suivant à priori on comprend, mais le « + » je sais pas si c'est forcément parlant.

Là oui, ce "+" n'est pas parlant du tout.

  1. La classe pagination-lien est présente sur tous éléments des items de pagination, mêmes ceux qui ne sont pas des liens : la page courante et le séparateur « … ». Pour ceux-là c'est un peu trompeur.
    Est-ce qu'il vaudrait pas mieux un nom qui ne correlle pas ça au fait que ça soit un lien, pagination-label-item par ex. ?
    En schématisant :
ul.pagination-items
  li.pagination-item.tbc.disabled
    span.pagination-label-item (…)
  li.pagination-item
    a.pagination-label-item.lien_pagination (Page N)

Ça me semblerait mieux aussi oui.

  1. Pour les « tbc » on pourrait mettre des vrais points de suspension au lieu de 3 points d'affilée ....

+1

> J'ai testé un peu, super évolution. Pareil. > 1) les liens « tout afficher » et « page suivante/précédente » sont représentés par des symboles : `+`, `>` et `<`. Il me semble que le défaut ça devrait être de garder ça en toutes lettres comme c'était avant, même s'il y a un title : c'est personnalisable si on veut une version courte. Ça ne me choque pas, c'est quand même une convention aujourd'hui. Tant qu'il y a un label, c'est propre. > Enfin les liens précédent/suivant à priori on comprend, mais le « + » je sais pas si c'est forcément parlant. Là oui, ce "+" n'est pas parlant du tout. > 2) La classe `pagination-lien` est présente sur tous éléments des items de pagination, mêmes ceux qui ne sont pas des liens : la page courante et le séparateur « … ». Pour ceux-là c'est un peu trompeur. > Est-ce qu'il vaudrait pas mieux un nom qui ne correlle pas ça au fait que ça soit un lien, `pagination-label-item` par ex. ? > En schématisant : > ``` > ul.pagination-items > li.pagination-item.tbc.disabled > span.pagination-label-item (…) > li.pagination-item > a.pagination-label-item.lien_pagination (Page N) > ``` Ça me semblerait mieux aussi oui. > 3) Pour les « tbc » on pourrait mettre des vrais points de suspension `…` au lieu de 3 points d'affilée `...`. +1
Owner

Le conteneur .pagination est posé par l'appellant, mais ne peut plus être un <p>. En html5 une balise <nav> est recommandée, sur le modèle de

[<nav class='pagination'>(#PAGINATION)</nav>]

Ok, c'est bien plus clean, mais ça pète les [<p class="pagination">(#PAGINATION)</p>] qui existent un peu partout dans le core, dans les plugins etc.

Comme il y a un <ul>, le navigateur referme le <p> ouvrant et ça donne :

<p class="pagination"></p>
<ul class="pagination-items">
...
</ul>
<p></p>

C'est embêtant cette affaire, ça va casser pas mal de choses en 3.3 par défaut, mais je ne sais pas trop comment contourner ça.

> Le conteneur .pagination est posé par l'appellant, mais ne peut plus être un `<p>`. En html5 une balise `<nav`> est recommandée, sur le modèle de > ``` > [<nav class='pagination'>(#PAGINATION)</nav>] > ``` Ok, c'est bien plus clean, mais ça pète les `[<p class="pagination">(#PAGINATION)</p>]` qui existent un peu partout dans le core, dans les plugins etc. Comme il y a un `<ul>`, le navigateur referme le `<p>` ouvrant et ça donne : ``` <p class="pagination"></p> <ul class="pagination-items"> ... </ul> <p></p> ``` C'est embêtant cette affaire, ça va casser pas mal de choses en 3.3 par défaut, mais je ne sais pas trop comment contourner ça.
Owner

Déjà, en ne ciblant pas en cascade avec .pagination .pagination-items etc.
44fcfde121/css/theme.css (L234) (lignes 234 à 246)
818c67bc1f/prive/themes/spip/lists.css.html (L132) (lignes 132 à 144)
mais uniquement .pagination-items etc., on rattrape un peu les dégats sur le back et le front.

Qu'en penses tu ?

Sauf pour les sites avec Z-core car il surcharge css/theme.css avec un fichier vide (pourquoi ce choix d'ailleurs ?)

Déjà, en ne ciblant pas en cascade avec `.pagination .pagination-items` etc. https://git.spip.net/spip/dist/src/commit/44fcfde121a402a684d47e2ba187718c4a1cb10e/css/theme.css#L234 (lignes 234 à 246) https://git.spip.net/spip/spip/src/commit/818c67bc1fa1eb4a960cda1fc53d7b5a2dcd8a98/prive/themes/spip/lists.css.html#L132 (lignes 132 à 144) mais uniquement `.pagination-items` etc., on rattrape un peu les dégats sur le back et le front. Qu'en penses tu ? Sauf pour les sites avec Z-core car il surcharge css/theme.css avec un fichier vide (pourquoi ce choix d'ailleurs ?)

@nicod_ un énième plugin "compat_pagination_3_2" comme pour les modèles de documents, pour les sites déjà existants qui voudraient pour l'instant avoir les mêmes qu'avant ?

@nicod_ un énième plugin "compat_pagination_3_2" comme pour les modèles de documents, pour les sites déjà existants qui voudraient pour l'instant avoir les mêmes qu'avant ?
Owner

Supprimer la cascade règle en douceur une partie du problème, pourquoi s'en passer ?

Tu as idée du nombre de <p class="pagination"> sur la zone ?

Supprimer la cascade règle en douceur une partie du problème, pourquoi s'en passer ? Tu as idée du nombre de `<p class="pagination">` sur la zone ?
Owner

Pétouille : il manque un text-align: center; sur .pagination-lien dans squelettes-dist/css/theme.css

Pétouille : il manque un text-align: center; sur .pagination-lien dans squelettes-dist/css/theme.css
Poster
Owner

Non mais je pense pas qu'il faille faire semblant que ça marche en stylant pas la cascade car de toute façon les <p class='pagination'> sont pétés et c'est pas souhaitable que ça reste comme ça.

C'est malheureusement une erreur qu'on a fait au départ, car ce <p> ne permet aucun markup block à l'intérieur de la pagination.

Donc on a pas le choix, ça pète et ça fait partie des choses à traiter quand on migre en 3.3.

C'est pas non plus sorcier, c'est un recherche/remplace, et au moins le fait que ce soit visuellement cassé incite bien à corriger et EN PLUS on peut changer les <p class="pagination"> en <div class="pagination p"> partout sans casser la compat avec les versions précédentes.

OK pour renommer la class pagination-lien en pagination-label-item

OK pour les points de suspensions en vrai

Pour le cas où ils sont surnuméraires en effet, j'ai vu ça

Non mais je pense pas qu'il faille faire semblant que ça marche en stylant pas la cascade car de toute façon les `<p class='pagination'>` sont pétés et c'est pas souhaitable que ça reste comme ça. C'est malheureusement une erreur qu'on a fait au départ, car ce `<p>` ne permet aucun markup block à l'intérieur de la pagination. Donc on a pas le choix, ça pète et ça fait partie des choses à traiter quand on migre en 3.3. C'est pas non plus sorcier, c'est un recherche/remplace, et au moins le fait que ce soit visuellement cassé incite bien à corriger et EN PLUS on peut changer les `<p class="pagination">` en `<div class="pagination p">` partout sans casser la compat avec les versions précédentes. OK pour renommer la class `pagination-lien` en `pagination-label-item` OK pour les points de suspensions en vrai `…` Pour le cas où ils sont surnuméraires en effet, j'ai vu ça

Un truc -- pas compliqué semble t il ? -- mais à documenter bien clairement

Un truc -- pas compliqué semble t il ? -- mais à documenter bien clairement
cerdic added 7 commits 1 week ago
b39408b4fe Refactoring du modele de pagination du prive #2822 :
9f8c0bc474 Refactoring : un seul modele pour gerer la pagination avec affichage par page ou par rang (historique)
b748e7f3e5 Le lien 'tout afficher' devient une option de la pagination standard, que l'on peut activer via
cerdic added 3 commits 1 week ago
b_b commented 1 week ago
Owner

∞ \o/ je m'étais retenu de le proposer :p

&#8734; \o/ je m'étais retenu de le proposer :p
Owner

J'ai utilisé ∞ sur les statistiques d'ailleurs

J'ai utilisé ∞ sur les statistiques d'ailleurs
Poster
Owner

C'est intégré/rebasé à la main avec en plus cf2deb0030

C'est intégré/rebasé à la main avec en plus https://git.spip.net/spip/spip/commit/cf2deb003050bdaf875f85e9ce27da9c708574f9
cerdic closed this pull request 1 week ago
Please reopen this pull request to perform a merge.
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
8 Participants
Notifications
Due Date

No due date set.

Dependencies

This pull request currently doesn't have any dependencies.

Loading…
There is no content yet.