Skip to content

Commit

Permalink
issue LeedRSS#150 - possibilité de paramètre activation du cache
Browse files Browse the repository at this point in the history
issue LeedRSS#169 - possibilité de paramètre activation du force_feed
correction sur upgrade des paramètre -> redirection sur les paramètres
correction installe -> ne pas charger le user car ne sert pas en amont de la création
  • Loading branch information
cobalt74 committed May 24, 2013
1 parent c5aa09c commit 155af65
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 15 deletions.
5 changes: 3 additions & 2 deletions Feed.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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()) {
Expand Down
20 changes: 9 additions & 11 deletions action.php
Original file line number Diff line number Diff line change
Expand Up @@ -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 '<html>
<head>
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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']);
Expand All @@ -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;


Expand Down
18 changes: 17 additions & 1 deletion install.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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));
Expand Down Expand Up @@ -286,6 +288,20 @@
<p><input type="radio" checked="checked" value="auto" name="synchronisationType"> <strong>Automatique (complet) :</strong> 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.</p>
<p><input type="radio" value="graduate" name="synchronisationType"> <strong>Automatique (gradué) : </strong>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.</p>
<p><input type="radio" value="manual" name="synchronisationType"> <strong>Manuel (complet) : </strong>Le script ne fait aucune mise à jour automatique, vous devez faire vous même les mises à jour depuis l'espace administration.</p>
<p><strong>Options de synchronisation</strong>
<fieldset>
<legend>Activer le Cache</legend>
<input type="radio" checked="checked" value="1" name="synchronisationEnableCache" /><label for="synchronisationEnableCacheYes">Oui</label>
<input type="radio" value="0" name="synchronisationEnableCache" /><label for="synchronisationEnableCacheNo">Non</label>
<p>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.</p>
</fieldset>
<fieldset>
<legend>Forcer l'intégration</legend>
<input type="radio" value="1" name="synchronisationForceFeed" /><label for="synchronisationForceFeedYes">Oui</label>
<input type="radio" checked="checked" value="0" name="synchronisationForceFeed" /><label for="synchronisationForceFeedNo">Non</label>
<p>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.</p>
</fieldset>
</p>
</section>

<section>
Expand Down
2 changes: 2 additions & 0 deletions settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -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'));
Expand Down
18 changes: 17 additions & 1 deletion templates/marigolds/settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,23 @@ <h3>Synchronisation</h3>
<p><input type="radio" {if=" $synchronisationType=='graduate'"} checked="checked" {/if} value="graduate" id="synchronisationTypeGraduated" name="synchronisationType"> <label for="synchronisationTypeGraduated"><strong>Automatique (gradué) :</strong></label> 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</p>
<p><input type="radio" {if="$synchronisationType=='manual'"} checked="checked" {/if} value="manual" id="synchronisationTypeManual" name="synchronisationType"> <label for="synchronisationTypeManual"><strong>Manuel (complet) :</strong></label> Le script ne fait aucune mise à jour automatique, vous devez faire vous même les mises à jour depuis l'espace administration.</p>

<strong>Code de synchronisation:</strong>
<p><strong>Code de synchronisation:</strong>
{$synchronisationCode}
</p>
<p><strong>Options de synchronisation</strong>
<fieldset>
<legend>Activer le Cache</legend>
<input type="radio" {if="$synchronisationEnableCache"} checked="checked" {/if} value="1" id="synchronisationEnableCacheYes" name="synchronisationEnableCache" /><label for="synchronisationEnableCacheYes">Oui</label>
<input type="radio" {if="!$synchronisationEnableCache"} checked="checked" {/if} value="0" id="synchronisationEnableCacheNo" name="synchronisationEnableCache" /><label for="synchronisationEnableCacheNo">Non</label>
<p>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.</p>
</fieldset>
<fieldset>
<legend>Forcer l'intégration</legend>
<input type="radio" {if="$synchronisationForceFeed"} checked="checked" {/if} value="1" id="synchronisationForceFeedYes" name="synchronisationForceFeed" /><label for="synchronisationForceFeedYes">Oui</label>
<input type="radio" {if="!$synchronisationForceFeed"} checked="checked" {/if} value="0" id="synchronisationForceFeedNo" name="synchronisationForceFeed" /><label for="synchronisationForceFeedNo">Non</label>
<p>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.</p>
</fieldset>
</p>
</section>

<section>
Expand Down Expand Up @@ -182,6 +197,7 @@ <h4>Nb: si vous choissisez un affichage partiel des articles, un click sur ces d
<legend>Conserver les <input type="text" value="{$configurationManager->get('feedMaxEvents')}" name="feedMaxEvents" size="4" /> derniers événements d'un flux</legend>
<h4>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.<br />Notez que vos événements marqués comme favoris ne seront jamais supprimés.</h4>
</fieldset>

</section>


Expand Down

0 comments on commit 155af65

Please sign in to comment.