BlogoText / blogotext

A little more than a lightweight SQLite Blog-Engine.
Other
136 stars 30 forks source link

2 p'tits bugs : pagination et apostrophe #283

Closed gglt closed 7 years ago

gglt commented 7 years ago

Bonsoir,

Je constate 2 bugs dans la version 3.7.3 (avec php 5.5.9) :

Je ne suis pas certain d'être bien clair sur les histoires de pagination ...

Cordialement,

remrem commented 7 years ago

'soir :) Points 2 et 3 (agrégateur de flux), bien compris (la méthode de calcul du nombre de page et la sélection des items par pages) Par contre, si tu peux développer un peu le point 1, ça serait sympa ;) (agrégateur de flux ? titre, contenu ?)

gglt commented 7 years ago

Salut :-)

Ben je pensais que s'était trop évident pour le point 1, du coup j'ai fait au plus court ... oups Il s'agit là aussi de l'agrégateur de flux. Aucune apostrophe ne s'affiche. Ni dans les titres ni dans les contenus. C'est valable pour tous mes flux (sauf erreur) : luc damas, le hollandais volant, futura science, seb sauvage, etc.

@+

remrem commented 7 years ago

Ok, je jette un coup d'oeil, je pense pouvoir fixer le 1 et 3 rapidement, par contre le 2, il faudra un peu plus de boulot...

gglt commented 7 years ago

C'est encore moi ...

Je viens de constater avec du retard que j'ai vu des apostrophes sur le flux rss de numerama (titre et contenu)

J'espère que ça ne compliquera pas trop les choses ...

Bon courage et bonne fin de week-end,

remrem commented 7 years ago

avec un peu de retard (pas trop eu le temps)... J'ai identifié le problème 1, ce sont les lignes 55 et 56 de admin/_rss.ajax.php :

            $post['bt_title'] = preg_replace('/(([\xE0-\xEF][\x00-\xFF][\x00-\xFF])|([\xF0-\xF4][\x00-\xFF][\x00-\xFF][\x00-\xFF]))/', '', $post['bt_title']);
            $post['bt_content'] = preg_replace('/(([\xE0-\xEF][\x00-\xFF][\x00-\xFF])|([\xF0-\xF4][\x00-\xFF][\x00-\xFF][\x00-\xFF]))/', '', $post['bt_content']);

Elles ont été ajoutées suite à quelques problème d'enregistrement en BDD de caractères spéciaux (de mémoire), je vois pour corriger le tir.

Je pousse un fix pour les points 1 et 3 ce week end, pour le point 2, j'ai une solution en tête, il me faut un peu plus de temps pour la mettre en application.

remrem commented 7 years ago

Vraimmmmmmeeeeennnnnntttt à la bourre ... toutes mes excuses :/

Peux-tu tester la branche https://github.com/BlogoText/blogotext/tree/remrem-fix-283 ? ou le zip qui va bien

remrem commented 7 years ago

pour info, j'ai revu le problème des apostrophes, c'était lié à la regex qui est sensée filtrée les char en 4 bytes. Pour le problème de pagination, ce n'est plus par page=X, c'est en référence à l'ID des articles, donc plus de problème ;)

gglt commented 7 years ago

Vraimmmmmeeeennnntttt à la bourre ? Et moi alors ... Hein ? ;-) Bon, je débarque et je vois / j'imagine que tu a tout corrigé et testé puisqu'il y a une nouvelle release.

C'est à moi d'être désolé de ne pas avoir pu suivre l'affaire et je te remercie pour ton travail.

remrem commented 7 years ago

:D np. Je pense que tout est ok, mais bon, avec des systèmes différents ... En cas de problème, n'hésite pas :)

remrem commented 7 years ago

Je viens de pousser sur master, je vais quand même temporiser un peu avant de release la v3.7.5, histoire de voir si tu n'as plus de problèmes.

gglt commented 7 years ago

Je me permets de rouvrir ce ticket ...

Certaines apostrophes manquent toujours à l'appel (ex. : https://lehollandaisvolant.net/?mode=links&id=20170715192437).

Je suis en v3.7.4

remrem commented 7 years ago

Ok, je regarde ça cet après-midi

gglt commented 7 years ago

Le symbole € disparaît lui aussi (ex. : http://orangina-rouge.org/shaarli/?v9tsYQ)

remrem commented 7 years ago

Je viens de tester, tout semble ok, avec les modifications de la branche que je t'avais indiqué dans ce commentaire, c'est bien avec elle que ça déconne ou avec la release 3.7.4 ? Pour info, cette branche n'existe plus, je l'ai mergé dans la branche master, tu peux essayer directement la branche master en la téléchargeant directement (ne pas utiliser le téléchargement de la release 3.7.4).

gglt commented 7 years ago

Au temps pour moi, je n'ai pas bien suivi. Je suis sen 3.7.4.

Je viens de télécharger la branche master. Elle reste estampillée 3.7.4 ? C'est bien ça ? En tous cas, après avoir récupéré le zip, c'est sous ce numéro qu'elle est installée chez moi.

remrem commented 7 years ago

oui, ma faute, j'avais dit que j'allais sortir la 3.7.5 avec le correctif après avoir temporisé pour d'éventuels retours, mais j'ai oublié :/ Je release la 3.7.5 dès que tu me confirmes que le bug est corrigé (ou pas).

remrem commented 7 years ago

Je reviens vers toi pour te demander si tu as un retour depuis que tu as mis à jour ?

gglt commented 7 years ago

J'ai l'impression que les apostrophes sont revenues, mais je n'ai pas encore tout lu.

Par contre, la pagination est bizarre maintenant. J'ai 295 nouveaux flux et 96 favoris. Lorsque je suis sur la 1ère page, je clique sur suivant pour accéder à la suivante ... jusque là, tout va bien. Ensuite, si je clique :

  1. sur suivant, je me retrouve à la dernière page
  2. sur précédent, je peux alors me balader dans ma liste de nouveaux flux et de favoris, mais c'est tout mélangé et je ne suis pas certain que ça traite bien les paquets de 25 flux affichés à l'écran, mais un paquet différent (à vérifier)
remrem commented 7 years ago

Pour la pagination, je suis parti à partir du premier et dernier item de la liste affichée. Pour exemple (et de mémoire, sans le code sous les yeux), sur 100 items, numérotés de 1 à 100, la 1° page va afficher les items 1 à 25, la page suivante va afficher les 25 items après celui ayant l'ID 25, la page d’après les 25 après l'ID 50. En cliquant sur la page précédente (depuis la 3° page, pour suivre cet exemple), sera affiché les 25 items avant l'ID 50.
Rien de bien compliqué et ça fonctionne bien.

Le problème est que dans la configuration actuelle, les items affichés ne sont que les items non lus, si sur les 2 premières pages tu as lu certains items, l'affichage des pages suivantes ne va pas poser problème, par contre en cliquant sur les pages précédentes, il ne va afficher que les items non lus, comme il y en a moins et que tu en as lu une partie, la liste des items des pages précédentes ne paraîtra plus identique. Ce qui peut être ... perturbant :/

A voir si pas il n'y a pas mieux.

gglt commented 7 years ago

Je viens de tenter de faire un petit peu de ménage dans mes flux ...

Concernant le problème des apostrophes : https://www.linuxtricks.fr/wiki/let-s-encrypt-mise-en-place Le titre du flux s'affiche ainsi : "Let\'s Encrypt : Mise en place"

Lorsque la page ne contient que des favoris, cliquer sur précédent fait disparaître le 1er favori de la page. Le 2nd devient 1er et ainsi de suite ...

En voulant enregistrer l'un de mes favoris "https://lehollandaisvolant.net/?mode=links&id=20170715192437" dans mes liens, j'obtiens le message "Notice: Undefined offset: 0 in [...]/links.php on line 166"

gglt commented 7 years ago

Autre souci :

Sur une page, j'ai la liste de flux suivants : PC INpact Alphabet : de solides bénéfices malgré l'amende record de la Commission européenne 25/07/2017, 10:02:29 Les Numériques Test : Fiio X3 II : interface à l’ancienne, performances sonores au goût du jour 25/07/2017, 10:00:00 Les Numériques Brève : Bon Plan - le OnePlus 5 64 Go et 6 Go RAM à 368 euros avec le code promo 6XSEMJUROSOP5 25/07/2017, 09:57:05 THN : The Hacker News Apple Users, Beware! A Nearly-Undetectable Malware Targeting Mac Computers 25/07/2017, 09:51:12 Arrêt sur Images - contenus et dossiers Informer sous le nazisme : la réponse inattendue de AP aux historiens allemands 25/07/2017, 09:39:31 Ligue des droits de l’Homme 29ème session de la Revue périodique universelle (Epu) mécanisme central du Conseil des droits de l’Homme de l’ONU (janvier-février 2018) 25/07/2017, 09:35:39 THN : The Hacker News Hacker Steals $8.4 Million in Ethereum (4th Heist In A Month) 25/07/2017, 09:28:07 Journal du Hacker Firefox : un ancien directeur technique sceptique sur l'avenir du navigateur 25/07/2017, 09:26:40 Numerama.com - Magazine Overwatch : Blizzard explique pourquoi Terry Crews n’a pas doublé Doomfist 25/07/2017, 09:25:24 Mémîks mes liens Chauffage Solaire DIY de Fresnel 18 Lentilles - Optik-Solution.com le site des expériences de Fresnel 25/07/2017, 09:24:52 Mémîks mes liens Chauffage solaire | Alternative ↺ Autonomie 25/07/2017, 09:22:49 Les Numériques Google publie la quatrième Developer Preview d'Android O 25/07/2017, 09:22:00 Mémîks mes liens DIY : comment fabriquer un chauffage solaire avec des canettes ? 25/07/2017, 09:21:42 BlogNT : le Blog dédié aux Nouvelles Technologies Galaxy S8 Active : un smartphone robuste avec une grosse batterie 25/07/2017, 09:20:32 Journal du Hacker Comment désactiver le préchargement des URLs sur Firefox ? 25/07/2017, 08:57:14 Numerama.com - Magazine IA washing : des experts dénoncent le recours abusif au terme d’« intelligence artificielle » 25/07/2017, 08:53:01 BlogNT : le Blog dédié aux Nouvelles Technologies Test du WD My Passport SSD de 256 Go : emmenez tout avec vous ! 25/07/2017, 08:50:14 Silicon OS alternatifs : ReactOS pour les workloads Win32 25/07/2017, 08:48:48 Numerama.com - Magazine Phil Spencer l’affirme : la Xbox One X pourra bientôt être précommandée 25/07/2017, 08:45:40 Les Numériques Speakerhat : une casquette-enceinte, vous en rêviez ? Atari l'a fait 25/07/2017, 08:40:00 Numerama.com - Magazine La banque N26 renforce la sécurité de ses transactions avec 3DSecure 25/07/2017, 08:39:21 Silicon Résultats : Google cartonne, malgré l’amende européenne 25/07/2017, 08:38:53 Silicon Un malware furtif est passé inaperçu pendant des années sur Mac 25/07/2017, 08:33:37 BlogNT : le Blog dédié aux Nouvelles Technologies HoloLens 2 : il comprendra un coprocesseur dédié à l’intelligence artificielle 25/07/2017, 08:20:15 Le Gorafi.fr Gorafi News Network Après la baisse des APL, Emmanuel Macron veut supprimer le Big Mac gratuit de la carte étudiante 25/07/2017, 08:16:04 Sur la page précédente (en cliquant sur précédent), j'ai cette liste : PC INpact Alphabet : de solides bénéfices malgré l'amende record de la Commission européenne 25/07/2017, 10:02:29 Les Numériques Test : Fiio X3 II : interface à l’ancienne, performances sonores au goût du jour 25/07/2017, 10:00:00 Les Numériques Brève : Bon Plan - le OnePlus 5 64 Go et 6 Go RAM à 368 euros avec le code promo 6XSEMJUROSOP5 25/07/2017, 09:57:05 THN : The Hacker News Apple Users, Beware! A Nearly-Undetectable Malware Targeting Mac Computers 25/07/2017, 09:51:12 Ligue des droits de l’Homme 29ème session de la Revue périodique universelle (Epu) mécanisme central du Conseil des droits de l’Homme de l’ONU (janvier-février 2018) 25/07/2017, 09:35:39 THN : The Hacker News Hacker Steals $8.4 Million in Ethereum (4th Heist In A Month) 25/07/2017, 09:28:07 Numerama.com - Magazine Overwatch : Blizzard explique pourquoi Terry Crews n’a pas doublé Doomfist 25/07/2017, 09:25:24 Mémîks mes liens Chauffage Solaire DIY de Fresnel 18 Lentilles - Optik-Solution.com le site des expériences de Fresnel 25/07/2017, 09:24:52 Mémîks mes liens Chauffage solaire | Alternative ↺ Autonomie 25/07/2017, 09:22:49 Les Numériques Google publie la quatrième Developer Preview d'Android O 25/07/2017, 09:22:00 Mémîks mes liens DIY : comment fabriquer un chauffage solaire avec des canettes ? 25/07/2017, 09:21:42 Numerama.com - Magazine IA washing : des experts dénoncent le recours abusif au terme d’« intelligence artificielle » 25/07/2017, 08:53:01 Silicon OS alternatifs : ReactOS pour les workloads Win32 25/07/2017, 08:48:48 Numerama.com - Magazine Phil Spencer l’affirme : la Xbox One X pourra bientôt être précommandée 25/07/2017, 08:45:40 Les Numériques Speakerhat : une casquette-enceinte, vous en rêviez ? Atari l'a fait 25/07/2017, 08:40:00 Numerama.com - Magazine La banque N26 renforce la sécurité de ses transactions avec 3DSecure 25/07/2017, 08:39:21 Silicon Résultats : Google cartonne, malgré l’amende européenne 25/07/2017, 08:38:53 Silicon Un malware furtif est passé inaperçu pendant des années sur Mac 25/07/2017, 08:33:37 PC INpact ⚡ Abandonné, Paint migrera de Windows vers le Store 25/07/2017, 08:15:00 ScienceInfo Apple annonce une remise de 5 euros sur tous ses appareils pour compenser la baisse des APL. 25/07/2017, 08:14:54 Numerama.com - Magazine Elon Musk revoit les plans d’exploration martienne de SpaceX à la baisse 25/07/2017, 08:03:40 Les Numériques Du chamboulement dans notre comparatif des baladeurs audio 25/07/2017, 08:00:00 Les Numériques Test : Earsonics Velvet V2 : un second souffle salvateur 25/07/2017, 08:00:00 Les Numériques Test : Earsonics Velvet V2 : un second souffle salvateur 25/07/2017, 08:00:00 Les Numériques [MàJ] Microsoft enterre définitivement Paint 25/07/2017, 07:56:48

Les 4 1er titres de ces 2 listes sont les mêmes ... ensuite, ça diffère.

gglt commented 7 years ago

Désolé pour la lisibilité du précédent post :-( ... Si je peux faire mieux, j'accepte les conceils

remrem commented 7 years ago

capture d'écran ?

remrem commented 7 years ago

Sur la première page, as-tu lu des items ? As-tu lu les 4 premiers titres ? updated

gglt commented 7 years ago

Trop tard pour la capture... Je tâcherai d'y penser la prochaine fois Sur la 1ère page (et la suivante), j'ai pris soin de ne rien lire afin d'illustrer mon propos.

S'il y a un moyen de faire ça en direct tous les 2, ça pourrait aussi aider ... Veux-tu éventuellement la liste de mes liens rss ?

remrem commented 7 years ago

Pour du direct, je viens de créer un salon sur discord, ça doit passer dans un navigateur moderne : https://discord.gg/76n8sxT pour la liste des flux, si ça ne te dérange pas, oui, ça peut m'aider à reproduire les éventuels cas particuliers...

update Discord ou autre solution...

gglt commented 7 years ago

Bigre ... Ça en fait des machins sur lesquels je débute :-)

Bon ... J'ai créé un identifiant sur discordapp.com à partir de ton lien. Maintenant, je ne sais pas trop quoi faire ....

remrem commented 7 years ago

On peux partir sur une autre solution si tu préfères...
Pour discord, tu cliques sur le lien que je t'ai envoyé, si il te propose d'installer l'application discord, tu n'est pas obligé, il devrait t'afficher une fenêtre de chat dans ton navigateur ou dans l'application. La colonne de droite t'affiche les salons de discussion, la colonne centrale sert au chat (en bas tu as le champs pour écrire un message) et à gauche, les participants du salon.

remrem commented 7 years ago

J'ai identifié le problème... c'est une erreur de ma part (à vouloir aller trop vite). Je suis parti sans prendre que en compte les ID ne suivait la temporalité des items des flux : un ID 450 peux avoir une date au 2017-05-05 01:00:00
et l'ID 451 peux avoir une date au 2017-04-01 01:00:00
Je revois ma copie et te tiens informer.

remrem commented 7 years ago

Peux-tu tester la banche remrem-feeds-pagination-pages ? le zip qui va bien
Les modifications sont dans admin/feed.php, il suffit d'écraser ton installation actuelle.

J'ai revu la pagination, c'est un poil plus lourd (2 requêtes SQL en plus), mais ça fait le job.

gglt commented 7 years ago

En utilisant ton nouveau feed.php, j'obtiens ceci :

  1. sur la 1ère page : le symbole "<" est devenu ">"
  2. en cliquant sur les symboles "<" et ">", je ne me déplace plus d'une page, mais d'un seul item à la fois (les pages contiennent toujours 25 items)

J'ai juste remplacé le fichier feed.php

remrem commented 7 years ago

Salut,

  1. < renvoie vers les plus anciens et > et les plus récents, sur le coup je trouve ça plus logique, non ?
  2. j'essaye de reproduire le problème
remrem commented 7 years ago

Ok, trouvé, je n'ai pas poussé la bonne version :/ my bad ...

remrem commented 7 years ago

peux-tu ré-essayer la dernière version de admin/feed.php de la branche remrem-feeds-pagination-pages ?

Merci pour ta patience :)

gglt commented 7 years ago

Ne t'inquiêtes pas pour la patience ;-) Je suis dév (cobol ibm ... snif) moi aussi, je connais le principe. Tu es plein de bonne volonté et c'est ça le principal, c'est ça qui fait que ça avance dans le bon sens ;-)

Bon, après avoir fait un nouveau test avec ta dernière version, il semble que :

  1. "<" fonctionne bien
  2. ">" fonctionne bien ; sauf ...
  3. ">" sur la page 2 pour revenir à la page 1 me donne une page différente (je ne l'ai pas identifiée) puis un nouveau clic me donne juste un seul item que je n'ai pas repréré dans les listes précédentes
remrem commented 7 years ago

:)

Pour le 3° point, j'ai deux hypothèses.

  1. Pour le ">", c'est un peu traite, si tu as un refresh des flux (via cron) entre temps, ça peux "casser"/désordonner les pages ">".

  2. Je vois bien un bug possible, si plusieurs items, au moins le 25 et 26 ont la même date et heure de publication (avec différents flux ou un flux pas très rigoureux sur cette donnée ...), l'item 26 ne sera pas affiché sur la 1ère page ni sur la 2nd, il faudra lire au moins 1 item de la 1ère page, passer à la 2nd et revenir à la première pour qu'il soit visible (je suis clair ? :/)
    Par exemple, les items 25 et 26 ont la date "31/07/2017 21:00:00", l'item 26 ne sera pas affiché à la page 1, et à la seconde page non plus, car elle cherchera tous les items ayant une date strictement supérieur à "31/07/2017 21:00:00" (donc au moins "31/07/2017 21:00:01").

Pour la 1ère hypothèse, peux-être notifier l'utilisateur que les items ont été mis à jour ? Pour la 2nd, il faut que je me penche un peu plus dessus...

remrem commented 7 years ago

Same player, shoot again :)

Nouvelle tentative, ça devrait être la bonne cette fois, j'utilise toujours le temps, mais j'ai pris en considération les ID des items, et bonus, j'ai réduis les requêtes SQL nécessaire (1 en -, donc 2).
Toujours la même branche et le même fichier. C'est un peu brouillon, mais en attendant un rewrite de l'agrégateur, ça fera la farce.

B4rb3rouss commented 7 years ago

Ça semble tourner comme prévu :)

B4rb3rouss commented 7 years ago

Pas sûr de comprendre ce message, mais je vois apparaître cette erreur dans les logs PHP (ça n'empêche pas le bon fonctionnement)

PHP message: PHP Notice:  Undefined index: db_handle in /htdocs/yeuxdelibad.net/Blog/inc/sqli.php on line 150
PHP message: PHP Fatal error:  Uncaught Error: Call to a member function prepare() on null in /htdocs/yeuxdelibad.net/Blog/inc/sqli.php:150
Stack trace:
#0 /htdocs/yeuxdelibad.net/Blog/feed.php(327): liste_elements('\n    SELECT * F...', Array, 'rss')
#1 /htdocs/yeuxdelibad.net/Blog/rss.php(15): require('/htdocs/yeuxdel...')
#2 {main}
  thrown in /htdocs/yeuxdelibad.net/Blog/inc/sqli.php on line 150
remrem commented 7 years ago

Undefined index: db_handle
je pense qu'il y a un problème avec le démarrage de la base de données oO.
Je regarde ça dans la soirée.

B4rb3rouss commented 7 years ago

Quelques infos en plus : le message apparaît lorsqu'on tente d'afficher le flux rss du blog en allant sur rss.php (voir là : https://yeuxdelibad.net/Blog/rss.php)

B4rb3rouss commented 7 years ago

Le message complet : (je remet l'ancienne version sur mon site)

Notice: Undefined index: db_handle in /htdocs/yeuxdelibad.net/Blog/inc/sqli.php on line 150

Fatal error: Uncaught Error: Call to a member function prepare() on null in /htdocs/yeuxdelibad.net/Blog/inc/sqli.php:150 Stack trace: #0 /htdocs/yeuxdelibad.net/Blog/feed.php(327): liste_elements('\n SELECT * F...', Array, 'rss') #1 /htdocs/yeuxdelibad.net/Blog/rss.php(15): require('/htdocs/yeuxdel...') #2 {main} thrown in /htdocs/yeuxdelibad.net/Blog/inc/sqli.php on line 150
remrem commented 7 years ago

Hummm... Sur la branche remrem-feeds-pagination-pages ? Si oui,, ce n'est pas lié aux modifs de cette branche et c'est un autre problème (la seule modification de cette branche ne concerne que l'agrégateur de flux dans l'administration.)

remrem commented 7 years ago

@gglt , as-tu eu l'occasion de tester les dernières modifications ?

Nouvelle tentative, ça devrait être la bonne cette fois, j'utilise toujours le temps, mais j'ai pris en considération les ID des items, et bonus, j'ai réduis les requêtes SQL nécessaire (1 en -, donc 2).
Toujours la même branche et le même fichier. C'est un peu brouillon, mais en attendant un rewrite de l'agrégateur, ça fera la farce.

gglt commented 7 years ago

@remrem ... retour de vacances ;-) Alors pour ma part, après un test rapide, tout ça semble bien fonctionner maintenant. Je reviens dans la semaine pour confirmer ;-) Merci

remrem commented 7 years ago

;) J'attends ton retour.

gglt commented 7 years ago

Bon, pour ma part, les corrections sont bonnes.

Merci :-)

remrem commented 7 years ago

Cool ;) Je vais préparer la 3.7.5 \o/