Forum CMS Made Simple FR

Version complète : [Résolu]CGCalendar, problème avec use_session
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

Yvan

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS : 1.7.0
#~ Version du MLE si existante : Nope
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.7
#~ Installed Modules:
#~ * CMSMailer: 1.73.14
#~ * FileManager: 1.0.2
#~ * MenuManager: 1.6.2
#~ * ModuleManager: 1.3.3
#~ * News: 2.10.4
#~ * nuSOAP: 1.0.1
#~ * Printing: 1.0.4
#~ * Search: 1.6.2
#~ * ThemeManager: 1.1.1
#~ * TinyMCE: 2.6.5
#~ * FrontEndUsers: 1.8.2
#~ * CustomContent: 1.5.3
#~ * CGExtensions: 1.18.3
#~ * CGCalendar: 1.5.2
#~ * GCS: 0.0.1
#~ Config Information:
#~ * php_memory_limit:
#~ * process_whole_template: false
#~ * max_upload_size: 48000000
#~ * default_upload_permission: 664
#~ * assume_mod_rewrite: true
#~ * page_extension: /
#~ * internal_pretty_urls: false
#~ * use_hierarchy: true
#~ Php Information:
#~ * phpversion: 5.2.13
#~ * md5_function: On (Vrai)
#~ * gd_version: 2
#~ * tempnam_function: On (Vrai)
#~ * magic_quotes_runtime: Off (Faux)
#~ * E_STRICT: 0
#~ * memory_limit: 64M
#~ * max_execution_time: 10
#~ * safe_mode: Off (Faux)
#~ * session_save_path: Aucune vérification à cause de la restriction spécifiée par PHP open_basedir
#~ * session_use_cookies: On (Vrai)
#~ Server Information:
#~ * Server Api: apache2handler
#~ * Server Db Type: MySQL (mysql)
#~ * Server Db Version: 5.0.84
#~ ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
Bonjour,

J'ai un calendrier que j'appelle de cette manière :

{cms_module module='CGCalendar' display="calendar" calendartemplate="petit_calendrier" use_session="true" detailpage="agenda" inline="1"}

Il marche pile-poil comme je veux, sauf quand je sélectionne un jour du mois où des évènements ont lieu. À la place de m'afficher un eventlist sur la page, il remplace le calendrier par un eventlist. Comment faire pour lui faire comprendre que quand je clique sur un jour, il faut mettre l'eventlist dans le content. Il le fait déjà pour les detaillist (quand je clique sur un évènement particulier).
Voilà le calendrier en question: http://www.coord21.ch/test_cmsms/
Et le code:
{strip}
<table class="calendar" id="cal-calendar">
<caption class="calendar-month">
<span class="calendar-prev">
<a href="{$navigation.prev}">« </a>
</span>
{$month_names[$month]} {$year}
<span class="calendar-next">
<a href="{$navigation.next}"> »</a>
</span>
</caption>
<tbody>
<tr>
{foreach from=$day_names item=day key=key}
<th abbr="{$day}">{$day_short_names[$key]}</th>
{/foreach}
</tr>
<tr> {* initial empty days *}
{if $first_of_month_weekday_number > 0}
<td colspan="{$first_of_month_weekday_number}"> </td>
{/if}
{* iterate over the days of this month *}
{assign var=weekday value=$first_of_month_weekday_number}
{foreach from=$days item=day key=key}
{if $weekday == 7}
{assign var=weekday value=0}
</tr>
<tr>
{/if}

{*if isset($day.class)} {YB: calendar_today ou rien}
<td class="cgcalendar_day" id="{$day.class}">*}

{if isset($day.events.0)}
<td class="cgcalendar_event">
<div class="cgcalendar_content">
<a href="{$day.url}">{$key}</a>
<div class='cgcalendar_info'>
<ul>
{foreach from=$day.events item=event}
<li><a href="{$event.url}">{$event.event_summary}</a></li>
{/foreach}
</ul>
</div>
{else}
<td class="cgcalendar_day">
<div class="cgcalendar_content">
{$key}
{/if}
</div>
</td>
{math assign=weekday equation="x + 1" x=$weekday}
{/foreach}

{* remaining empty days *}
{if $weekday != 7}
<td colspan="{math equation="7-x" x=$weekday}"> </td>
{/if}
</tr>
</tbody>
</table>
{/strip}
Je dis sans doute une bêtise, mais as-tu essayé le paramètre eventtemplate ?

Yvan

J'avais pas fait, mais ça ne change rien.

En fait, le problème ne vient pas du choix du template: c'est une liste pour un jour comme pour un mois. Mais quand je clique sur un jour, la page est remplacée par la liste d'évènement du mois et pas la liste concernant ce jour précis qui, elle, s'affiche à la place du calendrier.

Alors, je sais pas si c'est un bug ou quelque-chose de normal pour lequel je peux effectivement faire qqchose. J'arrive pas à comprendre pourquoi les jours et les évènements s'affichent à des endroits différents.

Autrement, je peux virer les liens pour les jours et en ajouter un pour le mois, mais c'est dommage...

Yvan

UP !

Allez ! Smile Il y a bien quelqu'un qui a déjà fait un de ces petits calendriers. Personne ne peut au moins me montrer un code qui fonctionne pour lui ?

Yvan

Re up....

En fait, il y a une chose que je ne comprends vraiment pas avec CMSMS en général. Comment fait-on pour savoir quelles sont toutes les variables à disposition ? Je vois bien qu'on peut utiliser la variable $day.url, par exemple, mais j'imagine qu'il y en a plein d'autre dont je n'ai pas eu l'exemple et qui pourrait m'être utile. Même chose pour MenuManager ou News.

Où ou comment trouve-t-on un descriptif complet de ce qui est à disposition ? Merci !
Re,

My best friends are: {get_template_vars}, {var_dump var=$entry}, {dump item=$entry}, {$entry|debug_display}, {$entry|print_r},

C'est pas de moi mais peut peut être te servir

A+

Phil Did

Yvan

Up pour donner la solution. Je trouve que c'est un truc essentiel, même si j'ai l'air d'être le seul...

J'ai laissé tomber les JQuery et j'ai changé le {$day.url} pour {$day.url|replace:$actionid:'cntnt01'}

Pour le reste, c'est tout pareil. Perso, je comprends rien à cette solution, (elle vient du forum .org de CMSMS) mais ça a l'air de bien se comporter et ça a passé le W3C validator. Si vous pouviez éclairer ma lanterne, c'est serait sympa !
A vu de nez : Cms made simple sais ce qu'il doit faire grâce à l'url d'une page. notamment dans la liste des actions à faire :

/index.php?mact=CGCalendar,cntnt01,default,1&

Calendar, content n° 01, default ... J'imagine que la correction permet de spécifier pour l'url cliquable de ton Calendrier d'afficher le module X dans l'espace réservé au content

bref faudrait que je recherche un peu plus l'avant / après url générée mais je suis quasi certain que c'est de ce gout là Wink
Re

Si je peux me permettre de demander
donc si j'ai bien compris il faut remplacer
Code :
{if isset($day.events.0)}
               <td class="cgcalendar_event">
                  <div class="cgcalendar_content">
                  <a href="{$day.url}">{$key}</a>
                  <div class='cgcalendar_info'>
par
Code :
{if isset($day.events.0)}
               <td class="cgcalendar_event">
                  <div class="cgcalendar_content">
                  <a href="{$day.url|replace:$actionid:'cntnt01'}">{$key}</a>
                  <div class='cgcalendar_info'>

Yvan

Yep ! Y a qu'un seul appel à $day.url, donc tu peux pas te tromper. ça fonctionne pas ?
au cas ou, je propose à Isa de re-ouvrir un nouveau sujet, vu que pour Yvan ca fonctionne, autant clôturer de ce côté