Calendrier : menu de flux [Réglé]
affichage ASC pour des prochains événements
Support des Modules
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
Reprise du message précédent
Bonjour,Alors, je viens de modifier le fichier /calendar/phpboost/CalendarFeedProvider.class.php
Code PHP :
$now = new Date(); $today = strtotime(date("Y-m-d", $now->get_timestamp())); $result = $querier->select('SELECT * FROM ' . CalendarSetup::$calendar_events_table . ' event LEFT JOIN ' . CalendarSetup::$calendar_events_content_table . ' event_content ON event_content.id = event.content_id LEFT JOIN ' . DB_TABLE_MEMBER . ' member ON member.user_id = event_content.author_id LEFT JOIN '. CalendarSetup::$calendar_cats_table .' cat ON cat.id = event_content.id_category WHERE approved = 1 AND start_date >= :timestamp_now AND id_category IN :cats_ids ORDER BY start_date', array( 'cats_ids' => $ids_categories, 'timestamp_now' => $today )); /* Code d'origine modifié par Babsolune et Dramaturge $result = $querier->select('SELECT * FROM ' . CalendarSetup::$calendar_events_table . ' event LEFT JOIN ' . CalendarSetup::$calendar_events_content_table . ' event_content ON event_content.id = event.content_id LEFT JOIN ' . DB_TABLE_MEMBER . ' member ON member.user_id = event_content.author_id LEFT JOIN '. CalendarSetup::$calendar_cats_table .' cat ON cat.id = event_content.id_category WHERE approved = 1 AND start_date > ' . time() . ' AND id_category IN :cats_ids ORDER BY start_date ASC', array( 'cats_ids' => $ids_categories )); */
Et le résultat est ce que j'escomptais. J'ai juste ajouté à ton code la ligne
Code PHP :
et mis en commentaires le code d'origine qui intégrait la modification proposée par Babsolune et Dramaturge.AND start_date >= :timestamp_now
Merci beaucoup Janus

Edit :
Il faut penser à vider le cache du site, pas le cache syndication

Olivier.
Édité par olivierb Le 24/03/2015 à 17h12
Olivier


janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
oui j'avais fait une bête adaptation du code de CalendarFeedProvider.class.php à la va vite.
Cordialement, janus57
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
Le code ci-dessus ne fait pas disparaître du menu de flux calendar l'élément dont la date est dépassée, voir à cette adresse, le menu "Éléments à Venir".
Une idée pour ne retenir que les événements du jour et les suivants ?
Olivier.
Edit :
En vidant le cache du site (deuxième site de test) (et non pas le cache Syndication), le flux se met à jour.
Une piste peut-être ?
Édité par olivierb Le 24/03/2015 à 13h48
Olivier


janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
de mon côté les flux semble être correcte.
Et oui quand on touche au PHP comme ça faut souvent penser à vider le cache, surtout si ce à quoi tu as touché génère une liste automatique qui n'est actualisé que quand un évènement est ajouté.
Le cache de PHPBoost en plus de mettre les résultats en cache, peu aussi mettre certains coche PHP ou template pré-généré en cache.
Cordialement, janus57
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
Merci pour ta réponse mais, il me semble, j'avais vidé le cache le 22/03 (voir post plus haut) et j'ai attendu jusqu'à aujourd'hui pour poster. Je vais attendre la fin de la prochaine échéance (le 29/03) pour voir si les deux événements à cette date disparaissent le 30/03.
J'indiquerai le résultat ici.
Olivier.
Olivier


janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
re-vide le cache du site en question (cache normal + syndication).
Si tu l'a vidé le jour même de l'évènement cela ne fera rien (normal c’est le but du code).
Cordialement, janus57
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
Ah ben oui mais dans ce cas, si je crée un événement pour le jour même et que je vide mon cache, va-t-il disparaître automatiquement le lendemain de son échéance ? Je ne vais tout de même pas vider mon cache tous les jours

Olivier.
Edit :
Je viens de créer un événement à l'échéance aujourd'hui, je verrai demain ce qu'il en est.
Édité par olivierb Le 24/03/2015 à 16h37
Olivier


janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
normalement cela se fait nettoyer automatiquement.
Cordialement, janus57
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
Apparemment cela fonctionne car en changeant la date à hier, l'événement disparaît.
C'est beau le PHP lorsqu'on a des gens comme ceux qui animent cette communauté et qui nous aident à résoudre nos "petits" problèmes.
Merci Janus et à jpalbert92 qui ont bien travaillé sur ce module

Olivier.
Édité par olivierb Le 24/03/2015 à 17h14
Olivier


Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie