Browse Source

Correction d'un bug : parfois les fonctions SQL de SPIP renvoie des chaines même pour les id principaux, et donc il ne vaut surtout pas tester is_string en premier mais is_numeric. Ça corrige le fait que quand on s'inscrit pour la première fois ça créait le pushsubscriber mais pas directement à quelle liste ensuite. Maintenant ça marche. Du coup retrait de choses dans le readme.

master
RastaPopoulos 9 months ago
parent
commit
4729ee8869
  1. 11
      inc/pushsubscribers.php
  2. 2
      readme.md

11
inc/pushsubscribers.php

@ -42,14 +42,17 @@ function pushsubscribers_desinscrire($id_ou_endpoint) {
*/
function pushsubscribers_switch_pushlist($id_ou_endpoint, $contexte, $inscrire=true) {
include_spip('action/editer_objet');
$id_pushsubscriber = 0;
// On vérifie que le pushsubscriber existe bien
if (is_string($id_ou_endpoint)) {
$id_pushsubscriber = sql_getfetsel('id_pushsubscriber', 'spip_pushsubscribers', 'endpoint = '.sql_quote($id_ou_endpoint));
}
else {
if (is_numeric($id_ou_endpoint)) {
// un id qui peut aussi être une chaine "123"
$id_pushsubscriber = sql_getfetsel('id_pushsubscriber', 'spip_pushsubscribers', 'id_pushsubscriber = '.intval($id_ou_endpoint));
}
elseif (is_string($id_ou_endpoint)) {
// ou vraiment une chaine
$id_pushsubscriber = sql_getfetsel('id_pushsubscriber', 'spip_pushsubscribers', 'endpoint = '.sql_quote($id_ou_endpoint));
}
// Seulement si on a bien trouvé un inscrit
if ($id_pushsubscriber = intval($id_pushsubscriber)) {

2
readme.md

@ -125,5 +125,3 @@ Si vous écrivez de nouveaux articles sur ce site, alors le flux par défaut va
- il faut absolument être en HTTPS ou en localhost
- en localhost donc juste HTTP sans vrai certificat, chez moi ça marche sur Chromium, mais sur Firefox, il faut le panneau de développement ouvert, avec l'option "Activer les SW en HTTP quand la boite est ouverte"
- chez moi sur Firefox même avec le panneau de dev ouvert en localhost, si je suis en fenêtre privé pour tester en anonyme, le SW ne se lance pas (alors que sur Chromium oui)
- La toute première fois qu'on coche une case, quand ça demande l'autorisation globale du navigateur, le site garde bien l'inscription en mémoire, mais pas à quelle liste précise. Et donc quand on recharge la page, la case n'est pas pré-cochée. Mais une fois rechargée, si on recoche la case, là ça enregistre bien en SQL à quelle liste précise, et alors ensuite c'est bien pré-cochée. Normalement la première fois ça devrait pourtant enregistrer les deux : l'inscription générale + quelle liste.
- J'ai eu l'impression que des inscrits (enfin moi en test en l'occurence) n'étaient soudain plus reconnus par le prestataire d'envoi (mozilla pour moi), alors que je n'avais pas changé les infos VAPID dans la config. Quand je me suis réinscrit à zéro, ça a remarché direct mais du coup avec un autre id_pushsubscriber. Je n'ai pas compris pourquoi le premier inscrit tout d'un coup n'était plus reconnu.
Loading…
Cancel
Save