app/views/javascript/main.phtml est déplacé vers
app/views/helpers/javascript_vars.phtml
Il reste à déplacer le fichier actualize.phtml pour se débarrasser de
javascriptController
Le token était divulgé à tout le monde en accédant au flux RSS généré
par FreshRSS via le lien
Le token n'est plus affiché désormais si l'accès anonyme est autorisé
Le menu de gestion des catégories a été déplacé au niveau de la gestion
des abonnements (le regroupement est plus logique)
Le lien pour accéder au flux RSS a été déplacé dans le menu "affichage"
(peut être sujet à discussion)
Une prochaine pourrait être de splitter le menu "Général et lecture" en
plusieurs vues
Le chargement de main.js était fait dans indexController. Il est fait
maintenant dans le FrontController pour avoir accès, même hors de la
page principale, aux fonctionnalités de connexion / déconnexion /
fermeture des notifications
Corrige https://github.com/marienfressinaud/FreshRSS/issues/241
Je trouve que c'est plus robuste de retourner au moins une petite
réponse que rien du tout, et puis cela permettra éventuellement de
retourner quelque chose d'utile comme succès/échec.
Pas testé, mais sûrement plus efficace aussi que l'exception actuelle,
même si celle-ci n'est pas forcément affichée.
Le code pour la connexion via Persona a été bougée dans le fichier
main.js avec le reste du code JS
Ça ne marche toujours pas sous Firefox car il essaye d'initialiser
navigator.id.watch avant que le fichier login.persona.org/include.js
ne soit chargé
L'url est correctement écrite côté serveur pour permettre à Persona
d'indiquer au site que la connexion s'est bien passée
Utilise une méthode moins stricte qui tolère des erreurs XML dans les
flux.
Le choix de l'encodage en entrée a dû être légèrement changé car
SimplePie a une stratégie d'essayer plusieurs encodages jusqu'à en
trouver un qui marche.
En étant moins strict sur les erreurs, ça marche plus souvent, et du
coup les encodages n'étaient plus bon.
À essayer avec plein de flux.
Tous mes flux passent (~150).
Devrait permettre de fermer
https://github.com/marienfressinaud/FreshRSS/issues/233
Fonctionne aussi avec des flux à encodage invalide comme
http://travaux.ovh.net/rss.php qui se déclare en "text/xml" (du coup
ASCII) mais dans le flux avec un entête XML déclarant de l'UTF-8
Quelques [img alt="✇" /] pour être valide, avec un caractère Unicode
représentant un film (assez proche d'un flux), mais peut-être qu'on
pourrait en trouver un mieux
Dans la plupart des cas, évite d'ajouter les articles déjà présents dans
la base de données, en faisant une pré-requête (une par flux, pas une
par article).
Par exemple, si un flux RSS fournit 20 articles, alors la pré-requête
charge une liste d'exclusion de 20+2 identifiants d'articles.
Ce patch réduit considérablement le nombre de requêtes et la charge de
la base de données durant les mises à jour, et en particulier le trafic
réseau entre PHP et la base de données.
Les mises à jour sont du coup aussi plus rapides.
Fonctionne aussi si DOMContentLoaded est déjà consommé avant le
chargement de main.js, et permet d'attendre les autres scripts tels
jQuery si ceux-ci ne sont pas encore chargés.
Grosse amélioration des performances en utilisant le cache HTTP :
- Implémentation de HTTP/1.1, c.a.d. If-Modified-Since, If-None-Match,
If-Unmodified-Since, If-Match... avec la librairie
http://alexandre.alapetite.fr/doc-alex/php-http-304/
- Support de HEAD (HTTP /1.0).
- Préchargement de la page suivante (avec link next prefetch) dans le
cas de pagination.
- Et nouvelle possibilité de navigation pour les navigateurs qui
supportent "next".
- La date de dernier changement est pour l'instant primitive et
correspond au dernier changement de la session PHP ou
Configuration.array.php ou application.log ou touch.txt.
- touch.txt est modifié a chaque requête UPDATE ou INSERT ou DELETE.