X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=index.php;h=3a5c35c480067caefe56e352b15fd110c6e20266;hb=refs%2Fheads%2Fstable;hp=68e0364cbdba182af47337f52d4767e9f7e982a2;hpb=786f35f2700d83687ef494b98e3dace37d268e1c;p=github%2Fshaarli%2FShaarli.git diff --git a/index.php b/index.php index 68e0364c..3a5c35c4 100644 --- a/index.php +++ b/index.php @@ -1,6 +1,12 @@ >>>>>> 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));