]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
Merge pull request #551 from ArthurHoaro/hotfix/timezone
authorArthur <arthur@hoa.ro>
Thu, 5 May 2016 11:21:36 +0000 (13:21 +0200)
committerArthur <arthur@hoa.ro>
Thu, 5 May 2016 11:21:36 +0000 (13:21 +0200)
Use correct 'UTC' timezone

1  2 
index.php

diff --combined index.php
index e9b0bf4058e52f9843a9ecfd3408211abe3724b3,01122ebf233077f065301293c0c0666f2bb4f621..47bae6e87a943a1b26d5af2d1558053e2909f2fb
+++ b/index.php
@@@ -161,7 -161,6 +161,7 @@@ require_once 'application/HttpUtils.php
  require_once 'application/LinkDB.php';
  require_once 'application/LinkFilter.php';
  require_once 'application/LinkUtils.php';
 +require_once 'application/NetscapeBookmarkUtils.php';
  require_once 'application/TimeZone.php';
  require_once 'application/Url.php';
  require_once 'application/Utils.php';
@@@ -1277,11 -1276,15 +1277,15 @@@ function renderPage(
      {
          if (!empty($_POST['title']) )
          {
-             if (!tokenOk($_POST['token'])) die('Wrong token.'); // Go away!
+             if (!tokenOk($_POST['token'])) {
+                 die('Wrong token.'); // Go away!
+             }
              $tz = 'UTC';
-             if (!empty($_POST['continent']) && !empty($_POST['city']))
-                 if (isTimeZoneValid($_POST['continent'],$_POST['city']))
-                     $tz = $_POST['continent'].'/'.$_POST['city'];
+             if (!empty($_POST['continent']) && !empty($_POST['city'])
+                 && isTimeZoneValid($_POST['continent'], $_POST['city'])
+             ) {
+                 $tz = $_POST['continent'] . '/' . $_POST['city'];
+             }
              $GLOBALS['timezone'] = $tz;
              $GLOBALS['title']=$_POST['title'];
              $GLOBALS['titleLink']=$_POST['titleLink'];
  
      // -------- User want to post a new link: Display link edit form.
      if (isset($_GET['post'])) {
 -        $url = cleanup_url(escape($_GET['post']));
 +        $url = cleanup_url($_GET['post']);
  
          $link_is_new = false;
          // Check if URL is not already in database (in this case, we will edit the existing link)
                      // Extract title.
                      $title = html_extract_title($content);
                      // Re-encode title in utf-8 if necessary.
 -                    if (! empty($title) && $charset != 'utf-8') {
 -                        $title = mb_convert_encoding($title, $charset, 'utf-8');
 +                    if (! empty($title) && strtolower($charset) != 'utf-8') {
 +                        $title = mb_convert_encoding($title, 'utf-8', $charset);
                      }
                  }
              }
                  $url = '?' . smallHash($linkdate);
                  $title = 'Note: ';
              }
 +            $url = escape($url);
 +            $title = escape($title);
  
              $link = array(
                  'linkdate' => $linkdate,
      }
  
      // -------- Export as Netscape Bookmarks HTML file.
 -    if ($targetPage == Router::$PAGE_EXPORT)
 -    {
 -        if (empty($_GET['what']))
 -        {
 +    if ($targetPage == Router::$PAGE_EXPORT) {
 +        if (empty($_GET['selection'])) {
              $PAGE->assign('linkcount',count($LINKSDB));
              $PAGE->renderPage('export');
              exit;
          }
 -        $exportWhat=$_GET['what'];
 -        if (!array_intersect(array('all','public','private'),array($exportWhat))) die('What are you trying to export???');
  
 -        header('Content-Type: text/html; charset=utf-8');
 -        header('Content-disposition: attachment; filename=bookmarks_'.$exportWhat.'_'.strval(date('Ymd_His')).'.html');
 -        $currentdate=date('Y/m/d H:i:s');
 -        echo <<<HTML
 -<!DOCTYPE NETSCAPE-Bookmark-file-1>
 -<!-- This is an automatically generated file.
 -     It will be read and overwritten.
 -     DO NOT EDIT! -->
 -<!-- Shaarli {$exportWhat} bookmarks export on {$currentdate} -->
 -<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
 -<TITLE>Bookmarks</TITLE>
 -<H1>Bookmarks</H1>
 -HTML;
 -        foreach($LINKSDB as $link)
 -        {
 -            if ($exportWhat=='all' ||
 -               ($exportWhat=='private' && $link['private']!=0) ||
 -               ($exportWhat=='public' && $link['private']==0))
 -            {
 -                $date = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $link['linkdate']);
 -                echo '<DT><A HREF="'.$link['url'].'" ADD_DATE="'.$date->getTimestamp().'" PRIVATE="'.$link['private'].'"';
 -                if ($link['tags']!='') echo ' TAGS="'.str_replace(' ',',',$link['tags']).'"';
 -                echo '>'.$link['title']."</A>\n";
 -                if ($link['description']!='') echo '<DD>'.$link['description']."\n";
 -            }
 +        // export as bookmarks_(all|private|public)_YYYYmmdd_HHMMSS.html
 +        $selection = $_GET['selection'];
 +        try {
 +            $PAGE->assign(
 +                'links',
 +                NetscapeBookmarkUtils::filterAndFormat($LINKSDB, $selection)
 +            );
 +        } catch (Exception $exc) {
 +            header('Content-Type: text/plain; charset=utf-8');
 +            echo $exc->getMessage();
 +            exit;
          }
 -                exit;
 +        $now = new DateTime();
 +        header('Content-Type: text/html; charset=utf-8');
 +        header(
 +            'Content-disposition: attachment; filename=bookmarks_'
 +           .$selection.'_'.$now->format(LinkDB::LINK_DATE_FORMAT).'.html'
 +        );
 +        $PAGE->assign('date', $now->format(DateTime::RFC822));
 +        $PAGE->assign('eol', PHP_EOL);
 +        $PAGE->assign('selection', $selection);
 +        $PAGE->renderPage('export.bookmarks');
 +        exit;
      }
  
      // -------- User is uploading a file for import
@@@ -2108,10 -2117,10 +2112,10 @@@ function install(
      if (!empty($_POST['setlogin']) && !empty($_POST['setpassword']))
      {
          $tz = 'UTC';
-         if (!empty($_POST['continent']) && !empty($_POST['city'])) {
-             if (isTimeZoneValid($_POST['continent'], $_POST['city'])) {
-                 $tz = $_POST['continent'].'/'.$_POST['city'];
-             }
+         if (!empty($_POST['continent']) && !empty($_POST['city'])
+             && isTimeZoneValid($_POST['continent'], $_POST['city'])
+         ) {
+             $tz = $_POST['continent'].'/'.$_POST['city'];
          }
          $GLOBALS['timezone'] = $tz;
          // Everything is ok, let's create config file.