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
Je viens de suivre le wiki concernant la modification du menu de flux Calendrier.
Le résultat est parfait sauf qu'il affiche les événements à partir du début de la BDD, c'est à dire ceux de l'année dernière.
Question : est-il possible de ne pas tenir compte des événements passés ?
Olivier.
Édité par olivierb Le 04/03/2015 à 20h48
Olivier


babsolune Membre non connecté
-
Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
-
Equipe Développement
ça reste un flux, pas un mini module. sa seule limite est le nombre d'articles récupérés.
Tu auras le problème dans les deux sens.
Les évènements ne disparaissent pas après leur date si tu n'as pas atteint la limite, tout comme si tu déclares plus d'événements que la limite, les premiers disparaitrons même s'ils n'ont pas atteint leur date
Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Dans le fichier calendar/phpboost/CalendarFeedProvider.class.php, à la ligne 66, modifie la requête comme ceci :
Code PHP :
WHERE approved = 1 AND start_date > ' . time() . ' AND id_category IN :cats_ids
Édité par Dramaturge Le 05/03/2015 à 08h45
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
Je te remercie pour l'astuce, cela fonctionne.
Plop Babso,
Si tu veux, tu peux modifier ton wiki

Olivier.
Olivier


babsolune Membre non connecté
-
Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
-
Equipe Développement

@Dramaturge fais-toi plaisir et bravo
PS:comment il me tarde de pouvoir "laillequer" les post
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
Je plussoie

Olivier.
Edit du 6/3 : je viens de modifier le wiki
Édité par olivierb Le 06/03/2015 à 13h25
Olivier


Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
Je viens de regarder la table calendar_events_content et apparemment, un
Olivier.
Édité par olivierb Le 05/03/2015 à 11h58
Olivier


Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Dans le code de la 4.0 (il y a quelques temps déjà, oui je regarde la plupart des commits ), j'ai un vague souvenir de notion de +1, comme pour 'Liker' un post ou un commentaire, mais cela n'a jamais été implémenté réellement.
Je demandais donc, dans le cas où la mise en place du système de notation était prévue, si des -1 seraient présents également.
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
Je cherche à afficher dans le menu de flux du calendrier les événements inclus ceux de la date du jour et non pas ceux à partir de "demain"
Le code ci-dessous fait apparaître les événements à venir :
/calendar/phpboost/CalendarFeedProvider.class.php, à la ligne 66 :
Code PHP :
WHERE approved = 1 AND start_date > ' . time() . ' AND id_category IN :cats_ids ORDER BY start_date ASC', array(
Comment modifier le fichier ?
Olivier.
Olivier


Visiteur
Boosteur Inactif
Si je ne me trompe pas, il faut remplacer le symbole > par >=
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
tu as regardé le topic qui parle du homecustom avec les affichage perso ?
Car ce que tu demande a été fait dans ce topic.
Cf : http://www.phpboost.com/wiki/wiki.php?title=homecustom-personnalisez-votre-accueil
Là tu as mon code : https://gist.github.com/janus57/b0812bcc1e0272568774
Regarde dans la fonction "events_results", je m'étais inspiré du controller des flux RSS et je l'avais modifié pour correspondre à ce que @jpalbert92 voulait, et visiblement cela colle aussi à ce que tu recherche.
Si tu vois pas comment faire je te donne le code dans la journée.
Cordialement, janus57
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
J'avais bien pensé aux "gros" travaux que jpalbert et toi aviez fait sur le homecustom mais je pensais que pour le menu de flux la modification aurait été "beaucoup" plus simple

J'ai tenté
Code PHP :
puis AND start_date >= ' . time() . '
Code PHP :
AND start_date > :timestamp_now
Le premier n'intègre pas l'événement du jour, le second sort une erreur d'accès à la BD.
Alors oui, j'aimerai de l'aide à l'intégration de ce code :
Code PHP :
private function events_results() { $now = new Date(); $today = strtotime(date("Y-m-d", $now->get_timestamp())); $querier = PersistenceContext::get_querier(); $results = $querier->select('SELECT * FROM '. PREFIX . 'calendar_events event LEFT JOIN ' . PREFIX . 'calendar_events_content 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 '. PREFIX . 'calendar_cats cat ON cat.id = event_content.id_category WHERE approved = 1 AND start_date >= :timestamp_now ORDER BY start_date LIMIT 3 ', array( 'timestamp_now' => $today ));
dans /calendar/phpboost/CalendarFeedProvider.class.php mais où et en remplacement de quel code ?
Edit :
Au cas où, je viens de vérifier l'heure de mon hébergeur via la commande date() et il est bien en France.
Le mieux serait encore de pouvoir comparer la date du jour avec la date de fin de l'événement.
Olivier.
Édité par olivierb Le 22/03/2015 à 18h44
Olivier


janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
olivierb :
J'ai tenté
J'ai tenté
Code PHP :
puis AND start_date >= ' . time() . '
Code PHP :
AND start_date > :timestamp_now
le premier code time() renvois la date au moment T genre 22/03/2015 17H56m33s
Du coup il va te filtrer les articles sur cette date, donc tous ceux qui ont une "start_date" inférieur au temps T vont passer à la trappe.
:timestamp_now est une variable créer pour @jpalbert92, donc si tu essaye de la ré-utiliser sans l'avoir déclaré avant forcémeent il va pas être content car l'argument passé sera 'null' et faire une recherche en BDD sur un éléments 'null' il va te mettre à la porte.
Donc si dans le flux tu souhaite que seulement les événement du jour J et J+n soit affiché ce code devrait fonctionner.
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 id_category IN :cats_ids ORDER BY start_date', array( 'cats_ids' => $ids_categories, 'timestamp_now' => $today ));
P.S. si on précise pas le mode de tri d'un "ORDER BY" par défaut c'est ASC.
Après le seul défaut qu'il peu y avoir c'est les évènement vers minuit/1h du matin, je ne sais pas si cela prend en compte l'heure en GMT+1 ou en UTC.
le code n'a pas été testé
Cordialement, janus57
olivierb Membre non connecté
-
Modérateur
- Voir le profil du membre olivierb
- Inscrit le : 07/02/2014
- Site internet
- Groupes :
-
Equipe Assistance
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


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