Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Module pagination [Résolu]
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.9.4.2
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~

Bonjour,

Malgré quelques recherches conduites ici ou là je n'ai pas trouvé de modules gérant la "pagination" du contenu d'une page CMSMS. Je m'explique, on peut avoir sur une page (je sais que ce n'est pas recommandé) un développement un peu long, disons plus d'une dizaine d'écrans. A partir de là existe-t-il un module, un tag qui permette de découper le contenu de cette page en "n" sections accessibles depuis une navigation interne en bas de la page.

Comme cela par exemple :

[Image: 157730ScreenShot785.jpg]


J'ai trouvé trace d'un tag "pagination" qui semble ne plus être d'actualité... Sad

C'est une fonctionnalité plus que basique, j'ai du être assez maladroit dans ma recherche mais bon :/

Win 10 pro 64 - CMSMS 2.2.19 - grincheux parfois...
#2

cela n'existe pas en tant que module, ou alors je ne l'ai jamais vu.

par contre il serait éventuellement possible de créer un gabarit pour MenuManager qui au lieu de lister tes pages avec un nom, les listerait en leur apposant un numéro.
#3

Code :
{* utilisé pour http://www.cmsmadesimple.fr/forum/viewtopic.php?pid=22461#p22461 *}

{counter start=1}

{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}

{if $node->parent == true or $node->current == true}
  {assign var='classes' value='menuactive'}
  {if $node->parent == true}
    {assign var='classes' value='menuactive menuparent'}
  {/if}
  {if $node->children_exist == true and $node->depth < $number_of_levels}
    {assign var='classes' value=$classes|cat:' parent'}
  {/if}
  <li class="{$classes}"><a class="{$classes}" href="{$node->url}"><span>{counter}</span></a>

{elseif $node->children_exist == true and $node->depth < $number_of_levels and $node->type != 'sectionheader' and $node->type != 'separator'}
<li class="parent"><a class="parent" href="{$node->url}"><span>{counter}</span></a>

{elseif $node->current == true}
<li class="currentpage"><h3><span>{counter}</span></h3>

{elseif $node->type == 'sectionheader'}
<li class="sectionheader"><span>{counter}</span>

{elseif $node->type == 'separator'}
<li class="separator" style="list-style-type: none;"> <hr />

{else}
<li><a href="{$node->url}"><span>{counter}</span></a>

{/if}

{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}

penses ensuite à modifier les classes CSS nommée dedans pour éviter un conflit avec les classes utilisées pour ton menu.

enfin un bon coup de firebug pour définir ton propre code CSS et c'est finit.
#4

Note : les boutons pages suivantes et pages précédentes sont déjà gérables dans les gabarits de cmsms :

{cms_selflink dir="prev" rellink=1}
{cms_selflink dir="next" rellink=1}
#5

Merci Bess,

C'est une soultion de dépannage intéressante, mais ce type de présentation est tellement courant que la création d'un module, au moins pour une page simple avec un contenu "monobloc" ne doit pas être bien sorcier. Il faudrait intégrer un "diviseur" dans la barre de tinyMCE, chaque fois que cette "chaîne particulière" est rencontrée on découpe le contenu, on range cela dans un tableau, puis on fait la petite barre de navigation. D'un point de vue "logique", ce n'est guère sorcier. J'espère qu'un développeur rompu aux smartys et à la POO proposera rapidement un module analogue. A mon humble avis il s'agit d'un manque important dans la panoplie d'outils mis à disposition par CMSMS, mais bon Rome ne s'est pas construit.... Smile

Win 10 pro 64 - CMSMS 2.2.19 - grincheux parfois...
#6

En attendant qu'une bonne âme de développeur te fasse le boulot, tu pourrais adapter ceci :
http://blog.ludikreation.com/2010/05/21/...avascript/
Le developpeur jquery a pas mal bossé et il y en a d'autres, mais je pense que celui-ci conviendrait bien car il suffit de mettre le contenu des pages "fictives" dans une liste non ordonnée.
Le reste c'est de l'intégration, pas besoin d'être développeur rompu à smarty ou autre poo, ni javascript.
Juste suivre le mode d'emploi Wink

Tiens, au fait, il y a pas un graphiste qui veuille bien me faire un logo et une charte gratis?

{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
#7

Merci Jissey pour cette solution. Cela peut me dépanner et ce n'est pas lourd à mettre en place. J'ai déjà créé un système de pagination en PHP MYSQL mais à une époque où les CMS de tous poils n'étaient pas légion. C'était encore de la programmation procédurale basique, bref c'était jouable pour moi. J'ai commencé à imprimer la référence des Smarty etc, mais bon...de là à développer un module, je ne possède pas encore toutes les clefs.
Avec l’avènement d'outils gratuits aussi performants que CMSMS, j'ai tendance à devenir plus "royaliste que le roi". On a parfois l'impression qu'il suffit de claquer des doigts....On oublie trop souvent les longues heures consacrées par certains au développement de notre outil actuel. Ceci dit, je peux pour l'heure faire l'économie de cette fonctionnalité "basique" sur le site que je mets en place. Elle me paraît cependant devoir être intégrée à terme dans le corps de CMSMS assez rapidement. Crois bien que je n'ai qu'un regret: ne pas être capable de le faire moi même. Smile

Win 10 pro 64 - CMSMS 2.2.19 - grincheux parfois...
#8

Salut,
moi aussi je suis de la vieille école, je comprends ce que tu veux dire...ils vont vite ces jeunes!
Je reste quand même persuadé que mettre en place une pagination "virtuelle" avec jquery est la meilleure solution pour toi.
Sinon, reste la solution des ancres internes, il y a plusieurs topics sur le sujet actuellement.
Bon courage.

Si tu penses que la discussion est close, marque [Résolu] même si ça n'est pas vraiment le cas.

{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)