Notifications

Aide aux auteurs d'extensions pour phpBB 3.2.x

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

Notifications

Messagepar Aurelienazerty » 26 Jan 2019 à 12:08

Bonjour,

Je suis à le recherche de documentation sur comment fonctionne les notification. Enfin, techniquement. Je cherche à créer une extension qui enverrait des notification lors de certaines actions, voir via un CRON (genre proximité d'un évènement)
https://www.team-azerty.com Association organisatrice de LAN "fun" au sud de Lyon
Aurelienazerty
Apprenti-posteur
Apprenti-posteur
 
Messages: 155
Enregistré le: 20 Avr 2004 à 18:31

Re: Notifications

Messagepar Skouat » 28 Jan 2019 à 21:24

Hello,

Je pensais qu'il y avait une doc, mais ca ne semble pas être le cas.
La seule info qui peut être trouvée sur la doc officielle c'est ca : https://area51.phpbb.com/docs/dev/3.2.x ... ifications
Et en partant de ce lien tu peux tester l'extension « Skeleton ». Perso ca m'a plus embrouillé qu'autres choses, donc j'ai préféré analyser des extensions déjà en place pour introduire les notifications au sein de mon extension.

Pour te faciliter la recherche voici quelques liens qui mettent en évidence le système de notification au niveau de mon extension.
Skouat
Resp. Traducteurs
Resp. Traducteurs
 
Messages: 14714
Enregistré le: 02 Avr 2008 à 19:47

Re: Notifications

Messagepar Aurelienazerty » 28 Jan 2019 à 22:53

Bonsoir,

Merci pour tes liens. En effet, il y a très très peu de documentation technique. Un how to ça serait pas mal.

Je vais tenter de comprendre via ton code, mais c'est quand même un peu obscure !
https://www.team-azerty.com Association organisatrice de LAN "fun" au sud de Lyon
Aurelienazerty
Apprenti-posteur
Apprenti-posteur
 
Messages: 155
Enregistré le: 20 Avr 2004 à 18:31

Re: Notifications

Messagepar Aurelienazerty » 09 Juin 2019 à 16:41

J'ai posé la question sur le site de phpbb.com : https://www.phpbb.com/community/viewtop ... &t=2513826

On m'a redirigé vers un tuto, malheureusement fait pour phpBB 3.1 et qui n'est donc plus d'actualité puisqu'ils ont revu en profondeur leur système depuis.

J'avoue que je suis désabusé. Autant la création d'extention est assez symple, enfin je n'en suis pas à ma première, j'ai fait également du débug ailleurs, autant pour les notification, je trouve ça très nébuleux.
https://www.team-azerty.com Association organisatrice de LAN "fun" au sud de Lyon
Aurelienazerty
Apprenti-posteur
Apprenti-posteur
 
Messages: 155
Enregistré le: 20 Avr 2004 à 18:31

Re: Notifications

Messagepar Skouat » 09 Juin 2019 à 21:23

Hello,

L'usage des notifications au niveau de mon extension est super basique.
Donc la mécanique devrait être facile à décrypter.

La question à te poser c'est quel est l'objectif de ta notification ? Quel est le déclencheur ?
Qu'est-ce que tu as déjà codé à ce niveau et où est-ce que tu bloques ?

Il faut de la matière si tu veux des réponses ;)
Skouat
Resp. Traducteurs
Resp. Traducteurs
 
Messages: 14714
Enregistré le: 02 Avr 2008 à 19:47

Re: Notifications

Messagepar Aurelienazerty » 01 Mai 2020 à 00:47

Salut, j'avais mis de côté cette histoire de notification (mariage tout ça), et avec le confinement, je me suis retourné à toutes mes activités laissées en suspend depuis trop longtemps.

Bref, pour répondre à tes questions : je n'ai pas encore commencer à coder, j'essayais de comprendre avant de me lancer, parce qu'en plus ce que je vais faire ne va pas être standard.

J'ai un site codé à la main, qui appuis sur phpBB. C'est à dire que toute l’authentification est géré via phpBB, le reste c'est du script old school mais qui fonctionne bien.
Bref, je souhaite ajouter 2 notifications :
  1. Une qu'il y a un like/dislike sur un commentaire d'une photo (cette gesiton du like est géré hors forum, donc là je vais devoir me gratter la tête sur comment faire les appels à phpBB).
    XXX a aime/pas aime votre commentaire
    . Je ne sais pas si je dois faire 2 notifications ou si ça peut être fait en une seule
  2. Une notification via un cron (un vrai par contre) pour signaler un pronostique à venir (on fait un mini tournois de pronostique entre pote, et j'avais fais une appli, mais je l'ai abandonné, et je souhaite passer en full web), ce qui donnerait
    une grille a lieu dans XX jours et vos pronos sont manquant/trop vieux
    Pareil, voir si l'on ai obligé de faire 2 notifs ou si l'on peut regrouper
De ma lecture sur tes lignes de code (c'est une première lecture, je pense qu'il faut que je revienne dessus encore plusieurs fois) :
  • https://github.com/Skouat/ext_paypal_donation/blob/2.0.1/ext.php#L42-L143 :arrow: enable_step, disable_step, purge_step, notification_handler sont "standard" comprendre toujours pareil, il n'y a pas de réflexion à avoir. Visiblement "il n'y a qu'à" lister tes notifications dans notification_types
  • https://github.com/Skouat/ext_paypal_donation/blob/2.0.1/controller/ipn_listener.php#L813-L848 :arrow: c'est toutes l'initialisation des éléments afficher qui vont dans un tableau qui est passé en paramètre. Mon soucis que je vois, c'est que là dans mon système codé old school et surtout en CRON, ça va être chaud pour appeler tout ça
  • https://github.com/Skouat/ext_paypal_donation/blob/2.0.1/config/notifications.yml :arrow: ok classique
  • https://github.com/Skouat/ext_paypal_donation/blob/2.0.1/notification/type/admin_donation_received.php :arrow: les fonctions clés sont find_users_for_notification et get_email_template_variables. Quesiton con au passage, get_email_template_variables c'est aussi pour la notif dans le forum, mais uniquement pour le mail :
    Image
Dans mes questions à la con également. Est-ce qu'une notification peut être uniquement notification, et pas également en mail ?
https://www.team-azerty.com Association organisatrice de LAN "fun" au sud de Lyon
Aurelienazerty
Apprenti-posteur
Apprenti-posteur
 
Messages: 155
Enregistré le: 20 Avr 2004 à 18:31

Re: Notifications

Messagepar Skouat » 01 Mai 2020 à 12:55

Hello,

Aurelienazerty a écrit:
XXX a aime/pas aime votre commentaire

. Je ne sais pas si je dois faire 2 notifications ou si ça peut être fait en une seule

oui tu peux utiliser une seule notification pour ce genre d'action.
Sauf si tu veux que dans le PCU il y ait une option pour chacune des conditions.

Idem pour les notifications des pronos.

Aurelienazerty a écrit:Une notification via un cron

Je ne sais pas. Je n'ai jamais utilisé le système cron de phpBB.
Par contre en ligne de commande, pour déclencher les crons de phpBB, il te faut utiliser
Code: Tout sélectionner
cd <phpbb_root_path> && php bin/phpbbcli.php cron:run


Aurelienazerty a écrit:https://github.com/Skouat/ext_paypal_donation/blob/2.0.1/controller/ipn_listener.php#L813-L848 c'est toutes l'initialisation des éléments afficher qui vont dans un tableau qui est passé en paramètre. Mon soucis que je vois, c'est que là dans mon système codé old school et surtout en CRON, ça va être chaud pour appeler tout ça

C'est aussi là que tu pourras gérer les valeurs à envoyer j'aime/j'aime pas que tu mentionnes en début de ton précédent message.

Aurelienazerty a écrit:https://github.com/Skouat/ext_paypal_donation/blob/2.0.1/notification/type/admin_donation_received.php les fonctions clés sont find_users_for_notification et get_email_template_variables. Quesiton con au passage, get_email_template_variables c'est aussi pour la notif dans le forum, mais uniquement pour le mail :

Oui get_email_template_variables, c'est pour les mail.
Il faut aussi prévoir un template mail, car au niveau du PCU, il est possible d'activer la réception des notifications par mail.
Sinon, il faut voir s'il n'est pas possible de forcer la désactivation des notifications mails juste pour tes notifications.

Aurelienazerty a écrit:Dans mes questions à la con également. Est-ce qu'une notification peut être uniquement notification, et pas également en mail ?

Je n'avais pas encore vu cette question... mais j'y ait répondu juste avant. :D
Je ne sais pas. mais dans l'absolue je pense que c'est faisable.


Le plus intéressant/important dans l'histoire c'est qu'il faudrait que tu dises adieux à ton code old school et que tu migres tout ça dans une extension pour phpBB :p
Skouat
Resp. Traducteurs
Resp. Traducteurs
 
Messages: 14714
Enregistré le: 02 Avr 2008 à 19:47

Re: Notifications

Messagepar Aurelienazerty » 01 Mai 2020 à 19:32

Ah je ne sais pas si je dois vraiment dire adieu à mon code old school. Disons que je peux faire du hard core sale en insérant directement mes notifications en Bdd.

Après tout, ce n'est qu'une entrée dans la table phpbb_notifications, et dans la colonne notification_data, c'est ni plus ni moins ton fameux tableau sérialisé qui est passé en paramètres. Y a les colonnes item_id et item_parent_id qui restent encore obscures.

Edit : il semblerait que item_id soit parfoit le post_id et item_parent_id le forum_id, en gros ça sert pour le lien lorsque tu cliques dessus. Visiblement ça sert pour la fonction get_url. Il faut que je pousse un peu mes recherches.

Après c'est très sale, je dois le reconnaitre. Mais d'un côté, je me vois bien créer l'extension sans la partie contrôleur. Comme ça, ça initialise bien toutes le système de notification. Et pour l'ajout de la notif, faire ça directement en BDD. Reste à savoir si en dehors de la BDD il y a quelque chose d'autre. Parce que le code old school, y en a vraiment, mais vraiment beaucoup et tou réécrire me prendrait des mois (le site est en place depuis 2002, il n'a cessé d'évoluer depuis)
https://www.team-azerty.com Association organisatrice de LAN "fun" au sud de Lyon
Aurelienazerty
Apprenti-posteur
Apprenti-posteur
 
Messages: 155
Enregistré le: 20 Avr 2004 à 18:31

Re: Notifications

Messagepar Skouat » 02 Mai 2020 à 10:39

Effectivement tu peux commencer par initier le fichier ext.php.
Fait bien attention à activer les 3 étapes (activate, disable et purge)

Une fois ce fichier fait, tu verras qu'il te faut créer les fichiers de langues, puis peut-être quand même ajouter un controller pour mettre en forme le contenu de la notification.

Après tu n'aurras qu'à injecter les données depuis ton code oldschool via la méthode create_insert_array().
Et faire appel au cron de phpBB en CLI, comme indiqué plus haut

--- Edit ---
La doc d'aide au développement de phpBB va être mise à jour pour intégrer un tuto pour les notifications.

Donc, pour le moment, tu peux consulter juste la version source de la doc : https://github.com/phpbb/documentation/pull/190
Dès que le PR sera validé, il sera intégré à la doc mise en lien en début de ce message.

Note: il faut bien sélectionner la doc correspondant à la version de phpBB (en bas à gauche de la page)
Skouat
Resp. Traducteurs
Resp. Traducteurs
 
Messages: 14714
Enregistré le: 02 Avr 2008 à 19:47

Re: Notifications

Messagepar Aurelienazerty » 03 Mai 2020 à 01:58

Merci pour la doc.

J'ai commencé à faire tout ce qui est squelette, mais il y a un truc que j'ai dû louper car si j'active mon extension :
  • Je n'ai pas d'entre crée dans la table phpbb_notification_types, normalement, je devrais voir un aurelienazerty.sitenotification.notification.type.photolike
  • Forcement, lorsque je vais dans le ucp niveau "Modifier les préférences des notifications", ça plante.
Bref, j'ai dû louper un truc.

Si t'as le temps de jeter un coup d’œil à mon dépôt au cas où j'ai oublié un truc évident, par avance merci : https://github.com/Aurelienazerty/siteNotification
https://www.team-azerty.com Association organisatrice de LAN "fun" au sud de Lyon
Aurelienazerty
Apprenti-posteur
Apprenti-posteur
 
Messages: 155
Enregistré le: 20 Avr 2004 à 18:31

Re: Notifications

Messagepar Skouat » 03 Mai 2020 à 08:23

Hello,

Vu que ça plante, il n'y a pas de message d'erreur qui traine ?
Si ce n'est pas affiché à l'ecran, soit doit trainer dans le journal des erreurs.

--- Edit ---

Attention à ne pas oublier les fichiers de langues EN.
Je ne parle pas de traduire en anglais, mais de la présence des fichiers dans le répertoire language/en est obligatoire.
Skouat
Resp. Traducteurs
Resp. Traducteurs
 
Messages: 14714
Enregistré le: 02 Avr 2008 à 19:47

Re: Notifications

Messagepar Aurelienazerty » 03 Mai 2020 à 10:36

Bonjour,

La fatigue du code de nuit m'a fait faire des doublons de fonction. ça fonctionne, enfin du moins, ça ne plante plus et j'ai bien mon entrée dans la table phpbb_notification_types.

Dans l(ucp par contre, j'ai essayé de faire un groupe :
Code: Tout sélectionner
public static $notification_option = array(
		'lang'	=> 'NOTIFICATION_TYPE_AURELIENAZERTY_SITENOTIFICATION_PHOTOLIKE',
		'group'	=> 'NOTIFICATION_TYPE_AURELIENAZERTY_SITENOTIFICATION',
	);
ça le créé bien, mais il n'est pas traduit, enfin j'ai bien rajouté dans le fichier de langue :
Code: Tout sélectionner
'NOTIFICATION_TYPE_AURELIENAZERTY_SITENOTIFICATION' => 'Notification via le site',
Mais sur la page j'ai NOTIFICATION_TYPE_AURELIENAZERTY_SITENOTIFICATION

Y a une manip à faire quelque part que j'ai oublié ?

Edit ; pu*** le c** j'avais mis la traduction dans common.php et non info_ucp_sitenotification.php je me fatigue des fois...
https://www.team-azerty.com Association organisatrice de LAN "fun" au sud de Lyon
Aurelienazerty
Apprenti-posteur
Apprenti-posteur
 
Messages: 155
Enregistré le: 20 Avr 2004 à 18:31

Re: Notifications

Messagepar Skouat » 03 Mai 2020 à 13:40

Là comme ça je dirais que si tu ne charges pas les fichiers de langue, alors ils ne vont pas le faire tout seuls :roll: :mrgreen:
Skouat
Resp. Traducteurs
Resp. Traducteurs
 
Messages: 14714
Enregistré le: 02 Avr 2008 à 19:47

Re: Notifications

Messagepar Aurelienazerty » 03 Mai 2020 à 13:42

J'ai édité mon message entre deux. J'avais mis la traduction dans le mauvais fichier... Je pense qu'il faut que je me repose un peu.
https://www.team-azerty.com Association organisatrice de LAN "fun" au sud de Lyon
Aurelienazerty
Apprenti-posteur
Apprenti-posteur
 
Messages: 155
Enregistré le: 20 Avr 2004 à 18:31

Re: Notifications

Messagepar Skouat » 03 Mai 2020 à 15:21

:mrgreen:
Skouat
Resp. Traducteurs
Resp. Traducteurs
 
Messages: 14714
Enregistré le: 02 Avr 2008 à 19:47

Suivante

Retourner vers Aide au développement

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités