Forum CMS Made Simple FR

Version complète : Pagination dans module généré par CTLModuleMaker
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

Cr4sH

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.9.2
#~ Nom de l'hébergeur : 1and1.fr
#~ Informations Système :
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~


Bonsoir la compagnie !

Voilà un nouveau post, toujours concernant CTLModuleMaker. J'ai bien avancé depuis la créa de mon module, cependant, je n'arrive pas à obtenir la pagination ! Rien n'y fait.
J'ai paramétré dans l'interface d'admin 4 éléments par pages, mais s'agit-il réellement de la pagination ? J'imagine que oui, mais je n'obtient aucun résultat.
J'ai généré cinq fiches, 4 éléments par page, et rien. Le module à été généré à l'aide de la dernière version de CTLMM (2.0 beta...).
Je n'obtient ni la pagination, ni d'ailleurs un quelconque "Order By". Dois-je mettre quelque chose concernant ces éléments dans le gabarit ? ( je précise d'ailleurs que j'utilise seulement le gabarit "default_list" pour afficher mes éléments. Voici le code de mon gabarit, qui est fonctionnel.

Code :
{foreach from=$itemlist item="item"}
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td style="background-color:#000; background-image:url('/uploads/high_tour/round.png'); background-position:right top; background-repeat: no-repeat; padding:4px; color:#fff;">
<strong>{$item->titre_objet}</strong>
</td>
</tr>
</table>
<table style="border: 1px solid #000; background-color:#eee;" width="100%"  cellspacing="0" cellpadding="2">
<tr>
<td rowspan="1" width="120px" valign="middle" align="center">
{foreach from=$item->photo_objet item="file"}
{if $file->url neq ''}
<a id="single_image" href="/uploads/{$file->url}">{$file->thumbnail()}</a><br />
{/if}
{/foreach}
</td>
<td>
{$item->description_objet->Label()}: {$item->description_objet}<br/>
</td>
</tr>
<tr>
<td style="padding-left: 8px; background-color:#aaa; font-weight:bold; color:#fff; background-image:url('/uploads/high_tour/round_price.png'); background-position:right top; background-repeat: no-repeat;">
{$item->prix_objet->Label()}: {$item->prix_objet}<br/>
</td>
</tr>
</table>
<br /><br />
{/foreach}

Ne devrais-je pas par exemple utiliser une balise de pagination quelconque, du type {$pagination} après ma boucle "foreach" ?

Un grand merci encore pour votre temps !
vu le gabarit tu n'aura jamais de pagination... au mieux il t'affichera les 4 derniers sur les X existants. C'est tout

et je doute que CTLModuleMaker permet de créer un module avec pagination si dans l'aide ce n'est pas explicitement décrit :/

Cr4sH

Bonsoir Bess, bonsoir tout le monde.

Alors là je suis vraiment inquiet ! C'est en effet ce qui a l'air de se passer... tout ce temps de travail sur ce module, quelle horreur, la pagination était au coeur du besoin...
Je vais donc passer la seconde avec quelques questions :

1 - Serait-il possible, sait-on jamais, de trouver un moyen pour "paginer" l'affichage des entrées de mon module ?

2 - Dans le cas ou ce ne serait pas possible, pourriez vous me renseigner sur un quelconque module qui offrirait :
- La possibilité de créer des "fiches" pour la vente d'objets par exemple (sans système de panier, il 'agit seulement de montrer.)
- Personnaliser les champs des fiches (ex : Description, prix, titre et une photo)
- Avoir une interface simple du coté admin pour gérer ces même fiches

C'est vraiment dommage, CTLModuleMaker me convenait vraiment parfaitement, si j'avais su...
:/

fait peut être une demande dans la page des requêtes du module

ca va être bien plus complexe à contourner qu'a l'auteur de ce module de l'améliorer je pense Sad

sinon tu refais le module à la main ce qui est loin d'être la panacée sauf si tu as de solide connaissance php

Cr4sH

Bonsoir bonsoir !

Alors étant un peu pressé, je ne vais pas passer par une demande quelconque au développeur, et encore moins m'attaquer à la créa d'un module maison.
D'un autre coté, j'ai trouvé un autre module "M&C Factory" qui reproduit à l'identique le travail de CTLModuleMaker, avec en plus un support de la pagination !
Et hop, nouveau problème ! La pagination ne fonctionne décidément pas...
Voici mon gabarit :

Code :
{foreach from=$items item=item}
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td style="background-color:#000; background-image:url('/uploads/high_tour/round.png'); background-position:right top; background-repeat: no-repeat; padding:4px; color:#fff;">
<strong>{$item->Titre}</strong>
</td>
</tr>
</table>
<table style="border: 1px solid #000; background-color:#eee;" width="100%"  cellspacing="0" cellpadding="2">
<tr>
<td rowspan="2" width="120px" valign="middle" align="center">
<img src="{$item->Photo}" />
</td>
</tr>
<tr>
<td>
Description : {$item->Description}<br/>
</td>
</tr>
<tr>
<td style="padding-left: 8px; background-color:#aaa; font-weight:bold; color:#fff; background-image:url('/uploads/high_tour/round_price.png'); background-position:right top; background-repeat: no-repeat;">
Prix : {$item->Prix}<br/>
</td>
</tr>
</table>
{/foreach}


HAHAHA
    {if $pager.previous_page}<a href="{$pager.previous_page}">Previous page</a>{/if}
    {foreach from=$pager.pages item=page}
    <li>{$page}</li>
    {/foreach}
    {if $pager.next_page}<a href="{$pager.next_page}">Next page</a>{/if}


Comme vous pouvez le voir, j'ai placé un "HAHAHA" avant la pagination, histoire de voir si l'intégralité de mon gabarit est prise en charge. Il s'affiche bien en dessous de mes entrées. Mais la pagination n'affiche rien !
J'ai rentré au total huit articles, réglé la pagination à quatre éléments par page, et rien... Mais mon dieu, comment se fesse ???
Regarde déjà si $pager existe ( {get_template_vars} )
Module Gallery (give titles and descriptions to your galleries as well as your photos, define custom fields, pagination, pretty-urls etc.)
ou le module articles.

Cr4sH

Bonjour tout le monde, bonjour Jean Smile

J'ai bien lu ta réponse, suggestion intéressante. Je viens de regarder un peu le fonctionnement des custom fields de Gallery, ça m'a l'air moins pratique que le module Articles ( il est d'ailleurs maintenant appelé M&C Factory me semble-t-il ). Cependant, je n'ai pas bien compris ta vérification du "$pager", comment s'en servir concrètement ? Enfin juste pour savoir ou je dois mettre "{get_template_vars}" pour me retourner les valeurs ? Dans le gabarit ? Dans la page ?

Merci beaucoup pour ton temps !

Cr4sH

Tient, d'ailleurs voici les valeurs retournées quand je met {get_template_vars} directement dans la page, accompagné de mon module.

Code :
SCRIPT_NAME = /index.php
app_name = CMS
sitename = Test
lang = fr_FR
encoding = utf-8
cgsimple = Object
content_obj = Object
content_id = 18
page = vieux-trucs-a-vendre
page_id = vieux-trucs-a-vendre
page_name = vieux-trucs-a-vendre
page_alias = vieux-trucs-a-vendre
position = 1
friendly_position = 1
menuparams = Array (3)
count = 3
nodelist = Array (3)
node = Object
itemlist = Array (2)
paginator = Object
item = Object
file = Array (7)

paginator = Objects. Est-ce bon signe ?
Cr4sH a écrit :Bonjour tout le monde, bonjour Jean Smile

J'ai bien lu ta réponse, suggestion intéressante. Je viens de regarder un peu le fonctionnement des custom fields de Gallery, ça m'a l'air moins pratique que le module Articles ( il est d'ailleurs maintenant appelé M&C Factory me semble-t-il ). Cependant, je n'ai pas bien compris ta vérification du "$pager", comment s'en servir concrètement ? Enfin juste pour savoir ou je dois mettre "{get_template_vars}" pour me retourner les valeurs ? Dans le gabarit ? Dans la page ?

Merci beaucoup pour ton temps !

En tous cas, l'administrateur du projet M&C Factory est le même que CTLModuleMaker.
Place {get_template_vars} sous HAHAHA, cela t'affichera toutes les variables disponibles de ce gabarit.
{$nomDeLaVariable|print_r} t'affichera toutes les propriétés d'une variable en particulier.

Cr4sH

Super ! Alors voilà un peu ou j'en suis :

J'ai donc testé un {$paginator|print_r}

Voici ce qu'il m'a été retourné :
Code :
ctlmm_paginator Object ( [nbperpage] => 2 [total] => 4 [nbpages] => 2 [pageIndex] => 1 [pageUrls] => Array ( [1] => [2] => http://www.domaine.com/index.php?mact=gestionObjets,cntnt01,default,0&cntnt01what=Objets&cntnt01pageindex=2&cntnt01returnid=18 ) [strings] => Array ( [showing] => Éléments [showing_of] => de [pagemenudelimiter] =>  |  [showing_to] => à [pagemenuoverflow] =>  ...  ) ) 1

La réponse est-elle tronquée ? Sinon, puis-je en faire quelque chose ? J'ai bien tenté d'utiliser "nbperpage" dans l'appel du module, mais ça n'avais pas fonctionné. Enfin oui et non, pour 4 entrées, avec nbperpage="2" j'avais bien seulement deux entrées d'affichées, mais aucune pagination...

Cr4sH

Sinon, voici aussi le {get_template_vars} de mon module créé cette fois ci avec M&C Factory.

Code :
SCRIPT_NAME = /index.php
app_name = CMS
sitename = Name
lang = fr_FR
encoding = utf-8
cgsimple = Object
content_obj = Object
content_id = 18
page = vieux-trucs-a-vendre
page_id = vieux-trucs-a-vendre
page_name = vieux-trucs-a-vendre
page_alias = vieux-trucs-a-vendre
position = 1
friendly_position = 1
menuparams = Array (3)
count = 3
nodelist = Array (3)
node = Object
mxfilters = Array (0)
titlefilter = <input type="text" class="cms_textfield" name="md8b54filter_title" id="md8b54filter_title" value="" size="20" maxlength="255" />
filter_all = <input type="text" class="cms_textfield" name="md8b54filter_all" id="md8b54filter_all" value="" size="20" maxlength="255" />
detailpage = 18
items = Array (7)
GestionDesArticles = Array (7)
gestiondesarticles = Array (7)
mcfactory = Object
item = Object

Si déjà vous pouviez m'aider à choisir le module le plus adapté pour recevoir une pagination, selon les "vars" disponibles Smile
Les deux modules sont à peut de choses prêt les mêmes, je les aimes tous les deux !
J'ai vu dans la forge qu'il y a une demande de résolution d'un bug concernant l'affichage de la pagination dans ctlmodulemaker.
Du fait que son développement est arrêté pour non compatibilité avec cmsms 2.++ il ne faut plus utiliser ce module !

Je n'ai jamais utilisé ce module, dès que j'ai un moment, je le testerai.
En attendant, je ne vois pas de variable concernant la pagination dans ton get_template_vars.
Fais un print_r de $mcfactory, elle est peut-être dedans.
Voici ce que j'ai trouvé dans l'aide de ctlmodulemaker :

Separating into pages
You may limit the number of items to be shown on one page:
{cms_module module="test" what="general" nbperpage="5"}
In the template, you can build the page menu using the {$paginator} object.

The paginator object also has the following attributes:

getPagenumbers()
getShowing()
getNextUrl()
getNextLink()
getPreviousUrl()
getPreviousLink()
getFirstUrl()
getFirstLink()
getLastUrl()
getLastLink()
So you may call a link to the next page using {$paginator->getNextLink()} or {$paginator->getNextLink("Jump to next page!")}.

Donc, tu dois ajouter un truc dans ce style : {$paginator->getNextLink("page suivante")}