]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - index.php
Merge branch 'v0.11' into stable
[github/shaarli/Shaarli.git] / index.php
index 68e0364cbdba182af47337f52d4767e9f7e982a2..3a5c35c480067caefe56e352b15fd110c6e20266 100644 (file)
--- a/index.php
+++ b/index.php
@@ -1,6 +1,12 @@
 <?php
 /**
+<<<<<<< HEAD
+ * Shaarli v0.8.7 - Shaare your links...
+ *
+ * The personal, minimalist, super-fast, database free, bookmarking service.
+=======
  * Shaarli - The personal, minimalist, super-fast, database free, bookmarking service.
+>>>>>>> v0.9.7
  *
  * Friendly fork by the Shaarli community:
  *  - https://github.com/shaarli/Shaarli
@@ -125,7 +131,7 @@ if (isset($_COOKIE['shaarli']) && !SessionManager::checkId($_COOKIE['shaarli']))
 
 $conf = new ConfigManager();
 $sessionManager = new SessionManager($_SESSION, $conf);
-$loginManager = new LoginManager($GLOBALS, $conf, $sessionManager);
+$loginManager = new LoginManager($conf, $sessionManager);
 $loginManager->generateStaySignedInToken($_SERVER['REMOTE_ADDR']);
 $clientIpId = client_ip_id($_SERVER);
 
@@ -392,9 +398,16 @@ function showDailyRSS($conf, $loginManager)
  */
 function showDaily($pageBuilder, $LINKSDB, $conf, $pluginManager, $loginManager)
 {
-    $day = date('Ymd', strtotime('-1 day')); // Yesterday, in format YYYYMMDD.
     if (isset($_GET['day'])) {
         $day = $_GET['day'];
+        if ($day === date('Ymd', strtotime('now'))) {
+            $pageBuilder->assign('dayDesc', t('Today'));
+        } elseif ($day === date('Ymd', strtotime('-1 days'))) {
+            $pageBuilder->assign('dayDesc', t('Yesterday'));
+        }
+    } else {
+        $day = date('Ymd', strtotime('now')); // Today, in format YYYYMMDD.
+        $pageBuilder->assign('dayDesc', t('Today'));
     }
 
     $days = $LINKSDB->days();
@@ -1008,6 +1021,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager,
             $conf->set('general.timezone', $tz);
             $conf->set('general.title', escape($_POST['title']));
             $conf->set('general.header_link', escape($_POST['titleLink']));
+            $conf->set('general.retrieve_description', !empty($_POST['retrieveDescription']));
             $conf->set('resource.theme', escape($_POST['theme']));
             $conf->set('security.session_protection_disabled', !empty($_POST['disablesessionprotection']));
             $conf->set('privacy.default_private_links', !empty($_POST['privateLinkByDefault']));
@@ -1056,6 +1070,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager,
             );
             $PAGE->assign('continents', $continents);
             $PAGE->assign('cities', $cities);
+            $PAGE->assign('retrieve_description', $conf->get('general.retrieve_description'));
             $PAGE->assign('private_links_default', $conf->get('privacy.default_private_links', false));
             $PAGE->assign('session_protection_disabled', $conf->get('security.session_protection_disabled', false));
             $PAGE->assign('enable_rss_permalinks', $conf->get('feed.rss_permalinks', false));
@@ -1117,22 +1132,24 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager,
 
         // lf_id should only be present if the link exists.
         $id = isset($_POST['lf_id']) ? intval(escape($_POST['lf_id'])) : $LINKSDB->getNextId();
+        $link['id'] = $id;
         // Linkdate is kept here to:
         //   - use the same permalink for notes as they're displayed when creating them
         //   - let users hack creation date of their posts
         //     See: https://shaarli.readthedocs.io/en/master/guides/various-hacks/#changing-the-timestamp-for-a-shaare
         $linkdate = escape($_POST['lf_linkdate']);
+        $link['created'] = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $linkdate);
         if (isset($LINKSDB[$id])) {
             // Edit
-            $created = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $linkdate);
-            $updated = new DateTime();
-            $shortUrl = $LINKSDB[$id]['shorturl'];
+            $link['updated'] = new DateTime();
+            $link['shorturl'] = $LINKSDB[$id]['shorturl'];
+            $link['sticky'] = isset($LINKSDB[$id]['sticky']) ? $LINKSDB[$id]['sticky'] : false;
             $new = false;
         } else {
             // New link
-            $created = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $linkdate);
-            $updated = null;
-            $shortUrl = link_small_hash($created, $id);
+            $link['updated'] = null;
+            $link['shorturl'] = link_small_hash($link['created'], $id);
+            $link['sticky'] = false;
             $new = true;
         }
 
@@ -1148,17 +1165,13 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager,
         }
         $url = whitelist_protocols(trim($_POST['lf_url']), $conf->get('security.allowed_protocols'));
 
-        $link = array(
-            'id' => $id,
+        $link = array_merge($link, [
             'title' => trim($_POST['lf_title']),
             'url' => $url,
             'description' => $_POST['lf_description'],
             'private' => (isset($_POST['lf_private']) ? 1 : 0),
-            'created' => $created,
-            'updated' => $updated,
             'tags' => str_replace(',', ' ', $tags),
-            'shorturl' => $shortUrl,
-        );
+        ]);
 
         // If title is empty, use the URL as title.
         if ($link['title'] == '') {
@@ -1357,13 +1370,14 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager,
             // If this is an HTTP(S) link, we try go get the page to extract
             // the title (otherwise we will to straight to the edit form.)
             if (empty($title) && strpos(get_url_scheme($url), 'http') !== false) {
+                $retrieveDescription = $conf->get('general.retrieve_description');
                 // Short timeout to keep the application responsive
                 // The callback will fill $charset and $title with data from the downloaded page.
                 get_http_response(
                     $url,
                     $conf->get('general.download_timeout', 30),
                     $conf->get('general.download_max_size', 4194304),
-                    get_curl_download_callback($charset, $title)
+                    get_curl_download_callback($charset, $title, $description, $tags, $retrieveDescription)
                 );
                 if (! empty($title) && strtolower($charset) != 'utf-8') {
                     $title = mb_convert_encoding($title, 'utf-8', $charset);
@@ -1557,6 +1571,7 @@ function renderPage($conf, $pluginManager, $LINKSDB, $history, $sessionManager,
     if ($targetPage == Router::$PAGE_SAVE_PLUGINSADMIN) {
         try {
             if (isset($_POST['parameters_form'])) {
+                $pluginManager->executeHooks('save_plugin_parameters', $_POST);
                 unset($_POST['parameters_form']);
                 foreach ($_POST as $param => $value) {
                     $conf->set('plugins.'. $param, escape($value));