From 155af654c9396b04e88c12281975952aaae44c5a Mon Sep 17 00:00:00 2001 From: cobalt74 Date: Sat, 25 May 2013 00:11:14 +0200 Subject: [PATCH] =?UTF-8?q?issue=20#150=20-=20possibilit=C3=A9=20de=20para?= =?UTF-8?q?m=C3=A8tre=20activation=20du=20cache=20issue=20#169=20-=20possi?= =?UTF-8?q?bilit=C3=A9=20de=20param=C3=A8tre=20activation=20du=20force=5Ff?= =?UTF-8?q?eed=20correction=20sur=20upgrade=20des=20param=C3=A8tre=20->=20?= =?UTF-8?q?redirection=20sur=20les=20param=C3=A8tres=20correction=20instal?= =?UTF-8?q?le=20->=20ne=20pas=20charger=20le=20user=20car=20ne=20sert=20pa?= =?UTF-8?q?s=20en=20amont=20de=20la=20cr=C3=A9ation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Feed.class.php | 5 +++-- action.php | 20 +++++++++----------- install.php | 18 +++++++++++++++++- settings.php | 2 ++ templates/marigolds/settings.html | 18 +++++++++++++++++- 5 files changed, 48 insertions(+), 15 deletions(-) diff --git a/Feed.class.php b/Feed.class.php index b9d9cf77..59b4409f 100755 --- a/Feed.class.php +++ b/Feed.class.php @@ -61,7 +61,7 @@ function getError() { return $this->error; } nécessaire, et appelle parse(). Impossible de vérifier dans parse() même car elle est appelée aussi pour autre chose que l'ajout. */ - function parse($syncId){ + function parse($syncId, $enableCache=true, $forceFeed=false){ assert('is_int($syncId) && $syncId>0'); if (empty($this->id) || 0 == $this->id) { /* Le flux ne dispose pas pas d'id !. Ça arrive si on appelle @@ -73,7 +73,8 @@ function parse($syncId){ die($msg); // Arrêt, sinon création événements sans flux associé. } $feed = new SimplePie(); - $feed->enable_cache(false); + $feed->enable_cache($enableCache); + $feed->force_feed($forceFeed); $feed->set_feed_url($this->url); $feed->set_useragent('Mozilla/4.0 Leed (LightFeed Agrgegator) '.VERSION_NAME.' by idleman http://projet.idleman.fr/leed'); if (!$feed->init()) { diff --git a/action.php b/action.php index 4dda3727..b35e64f7 100755 --- a/action.php +++ b/action.php @@ -36,8 +36,7 @@ die('Vous devez vous connecter pour cette action.'); } Functions::triggerDirectOutput(); - - // On ne devrait pas mettre de style ici. + if (!$commandLine) echo ' @@ -70,10 +69,12 @@ $nbTotal = 0; $localTotal = 0; // somme de tous les temps locaux, pour chaque flux $syncId = time(); + $enableCache = $configurationManager->get('synchronisationEnableCache'); + $forceFeed = $configurationManager->get('synchronisationForceFeed'); foreach ($feeds as $feed) { $nbTotal++; $startLocal = microtime(true); - $parseOk = $feed->parse($syncId); + $parseOk = $feed->parse($syncId, $enableCache, $forceFeed); $parseTime = microtime(true)-$startLocal; $localTotal += $parseTime; $parseTimeStr = number_format($parseTime, 3); @@ -165,7 +166,6 @@ case 'updateConfiguration': if($myUser==false) exit('Vous devez vous connecter pour cette action.'); - //Ajout des préférences et réglages $configurationManager->put('root',(substr($_['root'], strlen($_['root'])-1)=='/'?$_['root']:$_['root'].'/')); //$configurationManager->put('view',$_['view']); @@ -180,16 +180,14 @@ $configurationManager->put('articleDisplayHomeSort',$_['articleDisplayHomeSort']); $configurationManager->put('articleDisplayFolderSort',$_['articleDisplayFolderSort']); $configurationManager->put('synchronisationType',$_['synchronisationType']); + $configurationManager->put('synchronisationEnableCache',$_['synchronisationEnableCache']); + $configurationManager->put('synchronisationForceFeed',$_['synchronisationForceFeed']); $configurationManager->put('feedMaxEvents',$_['feedMaxEvents']); - - - $userManager->change(array('login'=>$_['login']),array('id'=>$myUser->getId())); - if(trim($_['password'])!='') $userManager->change(array('password'=>User::encrypt($_['password'])),array('id'=>$myUser->getId())); - - + $userManager->change(array('login'=>$_['login']),array('id'=>$myUser->getId())); + if(trim($_['password'])!='') $userManager->change(array('password'=>User::encrypt($_['password'])),array('id'=>$myUser->getId())); - header('location: ./settings.php'); + header('location: ./settings.php#preferenceBloc'); break; diff --git a/install.php b/install.php index 36097a2a..460f36db 100644 --- a/install.php +++ b/install.php @@ -122,7 +122,7 @@ require_once('User.class.php'); require_once('Folder.class.php'); require_once('Configuration.class.php'); - $myUser = (isset($_SESSION['currentUser'])?unserialize($_SESSION['currentUser']):false); + $feedManager = new Feed(); $eventManager = new Event(); $userManager = new User(); @@ -161,6 +161,8 @@ $configurationManager->add('feedMaxEvents',$_['feedMaxEvents']); $configurationManager->add('synchronisationCode',$synchronisationCode); + $configurationManager->add('synchronisationEnableCache',$_['synchronisationEnableCache']); + $configurationManager->add('synchronisationForceFeed',$_['synchronisationForceFeed']); //Création du dossier de base $folder = $folderManager->load(array('id'=>1)); @@ -286,6 +288,20 @@

Automatique (complet) : Le script mettra à jour automatiquement tous vos flux en une seule fois, ceci permet la mise à jour en une fois de tous vos flux mais peux faire ramer votre serveur, les appels cron ne doivent pas être trop rapprochés.

Automatique (gradué) : Le script mettra à jour automatiquement les 10 flux les plus vieux en terme de mise à jour, ceci permet d'alléger la charge serveur et d'éviter les timeouts intempestifs mais nécessite un appel de cron plus fréquent afin de mettre à jour le plus de flux possible.

Manuel (complet) : Le script ne fait aucune mise à jour automatique, vous devez faire vous même les mises à jour depuis l'espace administration.

+

Options de synchronisation +

+ Activer le Cache + + +

Cette option vous permet de désactiver la mise en cache. Cependant, la désactivation du cache peut entraîner des temps de chargement plus longs.

+
+
+ Forcer l'intégration + + +

Les flux RSS et Atom sont censés avoir des types MIME associés spécifiques afin que le logiciel sache quel type de données il s'agit. Certains flux ne suivent pas ces règles (par exemple text/plain). SimplePie suit les meilleures pratiques par défaut, mais vous pouvez forcer l'intégration avec ce paramètre.

+
+

diff --git a/settings.php b/settings.php index a3091c74..bcf2405a 100644 --- a/settings.php +++ b/settings.php @@ -13,6 +13,8 @@ $tpl->assign('feeds',$feedManager->populate('name')); $tpl->assign('folders',$folderManager->populate('name')); $tpl->assign('synchronisationType',$configurationManager->get('synchronisationType')); +$tpl->assign('synchronisationEnableCache',$configurationManager->get('synchronisationEnableCache')); +$tpl->assign('synchronisationForceFeed',$configurationManager->get('synchronisationForceFeed')); $tpl->assign('articleDisplayAnonymous', $configurationManager->get('articleDisplayAnonymous')); $tpl->assign('articleDisplayLink', $configurationManager->get('articleDisplayLink')); $tpl->assign('articleDisplayDate', $configurationManager->get('articleDisplayDate')); diff --git a/templates/marigolds/settings.html b/templates/marigolds/settings.html index a6f77715..11dc3c93 100755 --- a/templates/marigolds/settings.html +++ b/templates/marigolds/settings.html @@ -126,8 +126,23 @@

Synchronisation

Le script mettra à jour automatiquement les 10 flux les plus vieux en terme de mise à jour, ceci permet d'alléger la charge serveur et d'éviter les timeouts intempestifs mais nécessite un appel de cron plus fréquent afin de mettre à jour le plus de flux possible

Le script ne fait aucune mise à jour automatique, vous devez faire vous même les mises à jour depuis l'espace administration.

- Code de synchronisation: +

Code de synchronisation: {$synchronisationCode} +

+

Options de synchronisation +

+ Activer le Cache + + +

Cette option vous permet de désactiver la mise en cache. Cependant, la désactivation du cache peut entraîner des temps de chargement plus longs.

+
+
+ Forcer l'intégration + + +

Les flux RSS et Atom sont censés avoir des types MIME associés spécifiques afin que le logiciel sache quel type de données il s'agit. Certains flux ne suivent pas ces règles (par exemple text/plain). SimplePie suit les meilleures pratiques par défaut, mais vous pouvez forcer l'intégration avec ce paramètre.

+
+

@@ -182,6 +197,7 @@

Nb: si vous choissisez un affichage partiel des articles, un click sur ces d Conserver les derniers événements d'un flux

Nb: Plus il y aura d'événements à conserver, plus votre base de données sera importante. Nous vous conseillons de garder les 50 derniers événements au maximum pour conserver une performance correcte.
Notez que vos événements marqués comme favoris ne seront jamais supprimés.

+