PHP : performances fonction isDay

Amélioration des performances de Entry->isDay()
pull/326/head
Alexandre Alapetite 11 years ago
parent 529d6bcd15
commit 847de9b329
  1. 1
      app/Controllers/indexController.php
  2. 23
      app/Models/Entry.php
  3. 2
      app/layout/nav_menu.phtml
  4. 7
      app/views/helpers/view/normal_view.phtml

@ -125,6 +125,7 @@ class FreshRSS_index_Controller extends Minz_ActionController {
} }
$today = @strtotime('today'); $today = @strtotime('today');
$this->view->today = $today;
// on calcule la date des articles les plus anciens qu'on affiche // on calcule la date des articles les plus anciens qu'on affiche
$nb_month_old = $this->view->conf->oldEntries (); $nb_month_old = $this->view->conf->oldEntries ();

@ -134,20 +134,19 @@ class FreshRSS_Entry extends Minz_Model {
$this->tags = $value; $this->tags = $value;
} }
public function isDay ($day) { public function isDay ($day, $today) {
$date = $this->dateAdded(true); $date = $this->dateAdded(true);
$today = @strtotime('today'); switch ($day) {
case FreshRSS_Days::TODAY:
$tomorrow = $today + 86400;
return $date >= $today && $date < $tomorrow;
case FreshRSS_Days::YESTERDAY:
$yesterday = $today - 86400; $yesterday = $today - 86400;
return $date >= $yesterday && $date < $today;
if ($day === FreshRSS_Days::TODAY && case FreshRSS_Days::BEFORE_YESTERDAY:
$date >= $today && $date < $today + 86400) { $yesterday = $today - 86400;
return true; return $date < $yesterday;
} elseif ($day === FreshRSS_Days::YESTERDAY && default:
$date >= $yesterday && $date < $yesterday + 86400) {
return true;
} elseif ($day === FreshRSS_Days::BEFORE_YESTERDAY && $date < $yesterday) {
return true;
} else {
return false; return false;
} }
} }

@ -72,7 +72,7 @@
<li class="item"><a href="<?php echo $markReadUrl; ?>"><?php echo $string_mark; ?></a></li> <li class="item"><a href="<?php echo $markReadUrl; ?>"><?php echo $string_mark; ?></a></li>
<li class="separator"></li> <li class="separator"></li>
<?php <?php
$today = @strtotime('today'); $today = $this->today;
$one_week = $today - 604800; $one_week = $today - 604800;
?> ?>
<li class="item"><a href="<?php echo _url ('entry', 'read', 'is_read', 1, 'get', $get, 'idMax', $today . '000000'); ?>"><?php echo Minz_Translate::t ('before_one_day'); ?></a></li> <li class="item"><a href="<?php echo _url ('entry', 'read', 'is_read', 1, 'get', $get, 'idMax', $today . '000000'); ?>"><?php echo Minz_Translate::t ('before_one_day'); ?></a></li>

@ -21,24 +21,25 @@ if (!empty($this->entries)) {
$facebook = $this->conf->sharing ('facebook'); $facebook = $this->conf->sharing ('facebook');
$email = $this->conf->sharing ('email'); $email = $this->conf->sharing ('email');
$print = $this->conf->sharing ('print'); $print = $this->conf->sharing ('print');
$today = $this->today;
?> ?>
<?php foreach ($this->entries as $item) { ?> <?php foreach ($this->entries as $item) { ?>
<?php if ($display_today && $item->isDay (FreshRSS_Days::TODAY)) { ?> <?php if ($display_today && $item->isDay (FreshRSS_Days::TODAY, $today)) { ?>
<div class="day" id="day_today"> <div class="day" id="day_today">
<?php echo Minz_Translate::t ('today'); ?> <?php echo Minz_Translate::t ('today'); ?>
<span class="date"> - <?php echo timestamptodate (time (), false); ?></span> <span class="date"> - <?php echo timestamptodate (time (), false); ?></span>
<span class="name"><?php echo $this->currentName; ?></span> <span class="name"><?php echo $this->currentName; ?></span>
</div> </div>
<?php $display_today = false; } ?> <?php $display_today = false; } ?>
<?php if ($display_yesterday && $item->isDay (FreshRSS_Days::YESTERDAY)) { ?> <?php if ($display_yesterday && $item->isDay (FreshRSS_Days::YESTERDAY, $today)) { ?>
<div class="day" id="day_yesterday"> <div class="day" id="day_yesterday">
<?php echo Minz_Translate::t ('yesterday'); ?> <?php echo Minz_Translate::t ('yesterday'); ?>
<span class="date"> - <?php echo timestamptodate (time () - 86400, false); ?></span> <span class="date"> - <?php echo timestamptodate (time () - 86400, false); ?></span>
<span class="name"><?php echo $this->currentName; ?></span> <span class="name"><?php echo $this->currentName; ?></span>
</div> </div>
<?php $display_yesterday = false; } ?> <?php $display_yesterday = false; } ?>
<?php if ($display_others && $item->isDay (FreshRSS_Days::BEFORE_YESTERDAY)) { ?> <?php if ($display_others && $item->isDay (FreshRSS_Days::BEFORE_YESTERDAY, $today)) { ?>
<div class="day" id="day_before_yesterday"> <div class="day" id="day_before_yesterday">
<?php echo Minz_Translate::t ('before_yesterday'); ?> <?php echo Minz_Translate::t ('before_yesterday'); ?>
<span class="name"><?php echo $this->currentName; ?></span> <span class="name"><?php echo $this->currentName; ?></span>

Loading…
Cancel
Save