diff options
author | Willi Eggeling <thewilli@gmail.com> | 2017-08-27 19:36:48 +0200 |
---|---|---|
committer | Willi Eggeling <thewilli@gmail.com> | 2017-08-30 12:42:58 +0200 |
commit | 5a0045be79644078150957a65bc2c6aa9a6871b0 (patch) | |
tree | 816e05815a631b1b1438e2a2f28e6c480dd7d46d /index.php | |
parent | fc27141cf6eb04d3d8714385cb6961a8063fe61b (diff) | |
download | Shaarli-5a0045be79644078150957a65bc2c6aa9a6871b0.tar.gz Shaarli-5a0045be79644078150957a65bc2c6aa9a6871b0.tar.zst Shaarli-5a0045be79644078150957a65bc2c6aa9a6871b0.zip |
fixed daily links if there are no links
- the previous code tried to use links from a previous day if there are no one for the current one
- the new code skips this part if there are no entries (i.e. days) at all
- modified showDaily() to fit PSR-1 and PSR-2
Diffstat (limited to 'index.php')
-rw-r--r-- | index.php | 54 |
1 files changed, 31 insertions, 23 deletions
@@ -583,20 +583,29 @@ function showDailyRSS($conf) { | |||
583 | */ | 583 | */ |
584 | function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager) | 584 | function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager) |
585 | { | 585 | { |
586 | $day=date('Ymd',strtotime('-1 day')); // Yesterday, in format YYYYMMDD. | 586 | $day = date('Ymd', strtotime('-1 day')); // Yesterday, in format YYYYMMDD. |
587 | if (isset($_GET['day'])) $day=$_GET['day']; | 587 | if (isset($_GET['day'])) { |
588 | $day = $_GET['day']; | ||
589 | } | ||
588 | 590 | ||
589 | $days = $LINKSDB->days(); | 591 | $days = $LINKSDB->days(); |
590 | $i = array_search($day,$days); | 592 | $i = array_search($day, $days); |
591 | if ($i===false) { $i=count($days)-1; $day=$days[$i]; } | 593 | if ($i === false && count($days)) { |
592 | $previousday=''; | 594 | // no links for day, but at least one day with links |
593 | $nextday=''; | 595 | $i = count($days) - 1; |
594 | if ($i!==false) | 596 | $day = $days[$i]; |
595 | { | ||
596 | if ($i>=1) $previousday=$days[$i-1]; | ||
597 | if ($i<count($days)-1) $nextday=$days[$i+1]; | ||
598 | } | 597 | } |
598 | $previousday = ''; | ||
599 | $nextday = ''; | ||
599 | 600 | ||
601 | if ($i !== false) { | ||
602 | if ($i >= 1) { | ||
603 | $previousday=$days[$i - 1]; | ||
604 | } | ||
605 | if ($i < count($days) - 1) { | ||
606 | $nextday = $days[$i + 1]; | ||
607 | } | ||
608 | } | ||
600 | try { | 609 | try { |
601 | $linksToDisplay = $LINKSDB->filterDay($day); | 610 | $linksToDisplay = $LINKSDB->filterDay($day); |
602 | } catch (Exception $exc) { | 611 | } catch (Exception $exc) { |
@@ -605,9 +614,7 @@ function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager) | |||
605 | } | 614 | } |
606 | 615 | ||
607 | // We pre-format some fields for proper output. | 616 | // We pre-format some fields for proper output. |
608 | foreach($linksToDisplay as $key=>$link) | 617 | foreach($linksToDisplay as $key => $link) { |
609 | { | ||
610 | |||
611 | $taglist = explode(' ',$link['tags']); | 618 | $taglist = explode(' ',$link['tags']); |
612 | uasort($taglist, 'strcasecmp'); | 619 | uasort($taglist, 'strcasecmp'); |
613 | $linksToDisplay[$key]['taglist']=$taglist; | 620 | $linksToDisplay[$key]['taglist']=$taglist; |
@@ -621,21 +628,22 @@ function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager) | |||
621 | so I manually spread entries with a simple method: I roughly evaluate the | 628 | so I manually spread entries with a simple method: I roughly evaluate the |
622 | height of a div according to title and description length. | 629 | height of a div according to title and description length. |
623 | */ | 630 | */ |
624 | $columns=array(array(),array(),array()); // Entries to display, for each column. | 631 | $columns = array(array(), array(), array()); // Entries to display, for each column. |
625 | $fill=array(0,0,0); // Rough estimate of columns fill. | 632 | $fill = array(0, 0, 0); // Rough estimate of columns fill. |
626 | foreach($linksToDisplay as $key=>$link) | 633 | foreach($linksToDisplay as $key => $link) { |
627 | { | ||
628 | // Roughly estimate length of entry (by counting characters) | 634 | // Roughly estimate length of entry (by counting characters) |
629 | // Title: 30 chars = 1 line. 1 line is 30 pixels height. | 635 | // Title: 30 chars = 1 line. 1 line is 30 pixels height. |
630 | // Description: 836 characters gives roughly 342 pixel height. | 636 | // Description: 836 characters gives roughly 342 pixel height. |
631 | // This is not perfect, but it's usually OK. | 637 | // This is not perfect, but it's usually OK. |
632 | $length=strlen($link['title'])+(342*strlen($link['description']))/836; | 638 | $length = strlen($link['title']) + (342 * strlen($link['description'])) / 836; |
633 | if ($link['thumbnail']) $length +=100; // 1 thumbnails roughly takes 100 pixels height. | 639 | if ($link['thumbnail']) { |
640 | $length += 100; // 1 thumbnails roughly takes 100 pixels height. | ||
641 | } | ||
634 | // Then put in column which is the less filled: | 642 | // Then put in column which is the less filled: |
635 | $smallest=min($fill); // find smallest value in array. | 643 | $smallest = min($fill); // find smallest value in array. |
636 | $index=array_search($smallest,$fill); // find index of this smallest value. | 644 | $index = array_search($smallest, $fill); // find index of this smallest value. |
637 | array_push($columns[$index],$link); // Put entry in this column. | 645 | array_push($columns[$index], $link); // Put entry in this column. |
638 | $fill[$index]+=$length; | 646 | $fill[$index] += $length; |
639 | } | 647 | } |
640 | 648 | ||
641 | $dayDate = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $day.'_000000'); | 649 | $dayDate = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $day.'_000000'); |