aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorWilli Eggeling <thewilli@gmail.com>2017-08-27 19:36:48 +0200
committerWilli Eggeling <thewilli@gmail.com>2017-08-30 12:42:58 +0200
commit5a0045be79644078150957a65bc2c6aa9a6871b0 (patch)
tree816e05815a631b1b1438e2a2f28e6c480dd7d46d
parentfc27141cf6eb04d3d8714385cb6961a8063fe61b (diff)
downloadShaarli-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
-rw-r--r--index.php54
1 files changed, 31 insertions, 23 deletions
diff --git a/index.php b/index.php
index 7df6d819..b36ce9fb 100644
--- a/index.php
+++ b/index.php
@@ -583,20 +583,29 @@ function showDailyRSS($conf) {
583 */ 583 */
584function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager) 584function 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');