]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
Merge pull request #950 from thewilli/delete-fix
authorArthurHoaro <arthur@hoa.ro>
Fri, 1 Sep 2017 16:25:44 +0000 (18:25 +0200)
committerGitHub <noreply@github.com>
Fri, 1 Sep 2017 16:25:44 +0000 (18:25 +0200)
fixed link deletion

1  2 
index.php

diff --combined index.php
index 7210c71fe7811a733b3dde3e851d3eece024febe,b2f4ded57adc6046c6d5a242b42b3194b78ba5ca..07470a0835d46deda2ac29c5d95670cd63714357
+++ b/index.php
@@@ -583,29 -583,20 +583,29 @@@ function showDailyRSS($conf) 
   */
  function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager)
  {
 -    $day=date('Ymd',strtotime('-1 day')); // Yesterday, in format YYYYMMDD.
 -    if (isset($_GET['day'])) $day=$_GET['day'];
 +    $day = date('Ymd', strtotime('-1 day')); // Yesterday, in format YYYYMMDD.
 +    if (isset($_GET['day'])) {
 +      $day = $_GET['day'];
 +    }
  
      $days = $LINKSDB->days();
 -    $i = array_search($day,$days);
 -    if ($i===false) { $i=count($days)-1; $day=$days[$i]; }
 -    $previousday='';
 -    $nextday='';
 -    if ($i!==false)
 -    {
 -        if ($i>=1) $previousday=$days[$i-1];
 -        if ($i<count($days)-1) $nextday=$days[$i+1];
 +    $i = array_search($day, $days);
 +    if ($i === false && count($days)) {
 +        // no links for day, but at least one day with links
 +        $i = count($days) - 1;
 +        $day = $days[$i];
      }
 +    $previousday = '';
 +    $nextday = '';
  
 +    if ($i !== false) {
 +        if ($i >= 1) {
 +             $previousday=$days[$i - 1];
 +        }
 +        if ($i < count($days) - 1) {
 +          $nextday = $days[$i + 1];
 +        }
 +    }
      try {
          $linksToDisplay = $LINKSDB->filterDay($day);
      } catch (Exception $exc) {
      }
  
      // We pre-format some fields for proper output.
 -    foreach($linksToDisplay as $key=>$link)
 -    {
 -
 +    foreach($linksToDisplay as $key => $link) {
          $taglist = explode(' ',$link['tags']);
          uasort($taglist, 'strcasecmp');
          $linksToDisplay[$key]['taglist']=$taglist;
         so I manually spread entries with a simple method: I roughly evaluate the
         height of a div according to title and description length.
      */
 -    $columns=array(array(),array(),array()); // Entries to display, for each column.
 -    $fill=array(0,0,0);  // Rough estimate of columns fill.
 -    foreach($linksToDisplay as $key=>$link)
 -    {
 +    $columns = array(array(), array(), array()); // Entries to display, for each column.
 +    $fill = array(0, 0, 0);  // Rough estimate of columns fill.
 +    foreach($linksToDisplay as $key => $link) {
          // Roughly estimate length of entry (by counting characters)
          // Title: 30 chars = 1 line. 1 line is 30 pixels height.
          // Description: 836 characters gives roughly 342 pixel height.
          // This is not perfect, but it's usually OK.
 -        $length=strlen($link['title'])+(342*strlen($link['description']))/836;
 -        if ($link['thumbnail']) $length +=100; // 1 thumbnails roughly takes 100 pixels height.
 +        $length = strlen($link['title']) + (342 * strlen($link['description'])) / 836;
 +        if ($link['thumbnail']) {
 +          $length += 100; // 1 thumbnails roughly takes 100 pixels height.
 +        }
          // Then put in column which is the less filled:
 -        $smallest=min($fill); // find smallest value in array.
 -        $index=array_search($smallest,$fill); // find index of this smallest value.
 -        array_push($columns[$index],$link); // Put entry in this column.
 -        $fill[$index]+=$length;
 +        $smallest = min($fill); // find smallest value in array.
 +        $index = array_search($smallest, $fill); // find index of this smallest value.
 +        array_push($columns[$index], $link); // Put entry in this column.
 +        $fill[$index] += $length;
      }
  
      $dayDate = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $day.'_000000');
@@@ -745,8 -737,6 +745,8 @@@ function renderPage($conf, $pluginManag
              $PAGE->assign('username', escape($_GET['username']));
          }
          $PAGE->assign('returnurl',(isset($_SERVER['HTTP_REFERER']) ? escape($_SERVER['HTTP_REFERER']):''));
 +        // add default state of the 'remember me' checkbox
 +        $PAGE->assign('remember_user_default', $conf->get('privacy.remember_user_default'));
          $PAGE->renderPage('loginform');
          exit;
      }
              die('Wrong token.');
          }
  
-         if (strpos($_GET['lf_linkdate'], ' ') !== false) {
-             $ids = array_values(array_filter(preg_split('/\s+/', escape($_GET['lf_linkdate']))));
+         $ids = trim($_GET['lf_linkdate']);
+         if (strpos($ids, ' ') !== false) {
+             // multiple, space-separated ids provided
+             $ids = array_values(array_filter(preg_split('/\s+/', escape($ids))));
          } else {
-             $ids = [$_GET['lf_linkdate']];
+             // only a single id provided
+             $ids = [$ids];
+         }
+         // assert at least one id is given
+         if(!count($ids)){
+             die('no id provided');
          }
          foreach ($ids as $id) {
              $id = (int) escape($id);