From 37cc854d1275b28fca8104477fa1e6558e6516ba Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 14 Nov 2022 14:32:44 +0100 Subject: Start FreshRSS 1.21.0-dev --- CHANGELOG.md | 3 +++ constants.php | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9e35751f..b2111ba9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # FreshRSS changelog +## 202X-XX-XX FreshRSS 1.21.0-dev + + ## 2022-11-14 FreshRSS 1.20.1 * Features diff --git a/constants.php b/constants.php index 8d9f43996..06212fc39 100644 --- a/constants.php +++ b/constants.php @@ -3,7 +3,7 @@ // define('FRESHRSS_MIN_PHP_VERSION', '7.0.0'); -define('FRESHRSS_VERSION', '1.20.1'); +define('FRESHRSS_VERSION', '1.21.0-dev'); define('FRESHRSS_WEBSITE', 'https://freshrss.org'); define('FRESHRSS_WIKI', 'https://freshrss.github.io/FreshRSS/'); -- cgit v1.2.3 From 1f86aae415951b3a5c83d092765fa92337fc29ee Mon Sep 17 00:00:00 2001 From: maTh Date: Mon, 14 Nov 2022 14:54:57 +0100 Subject: fix: sharing service for mailto links for web mail services (#4680) * fix * Update main.js * Update app/i18n/fr/gen.php Co-authored-by: Alexandre Alapetite --- app/i18n/cz/gen.php | 1 + app/i18n/de/gen.php | 1 + app/i18n/en-us/gen.php | 1 + app/i18n/en/gen.php | 1 + app/i18n/es/gen.php | 1 + app/i18n/fr/gen.php | 1 + app/i18n/he/gen.php | 1 + app/i18n/it/gen.php | 1 + app/i18n/ja/gen.php | 1 + app/i18n/ko/gen.php | 1 + app/i18n/nl/gen.php | 1 + app/i18n/oc/gen.php | 1 + app/i18n/pl/gen.php | 1 + app/i18n/pt-br/gen.php | 1 + app/i18n/ru/gen.php | 1 + app/i18n/sk/gen.php | 1 + app/i18n/tr/gen.php | 1 + app/i18n/zh-cn/gen.php | 1 + app/i18n/zh-tw/gen.php | 1 + app/shares.php | 6 ++++++ p/scripts/main.js | 6 ++++++ 21 files changed, 31 insertions(+) diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 55586b24c..3c9b0ec16 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Schránka', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'E-mail', + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 59f532c74..e3cf385fd 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Zwischenablage', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'E-Mail', + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/en-us/gen.php b/app/i18n/en-us/gen.php index c5f92ad40..5eb409fdc 100644 --- a/app/i18n/en-us/gen.php +++ b/app/i18n/en-us/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Clipboard', // IGNORE 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'Email', // IGNORE + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 8f7065a83..2ce5871e3 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Clipboard', 'diaspora' => 'Diaspora*', 'email' => 'Email', + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', 'gnusocial' => 'GNU social', 'jdh' => 'Journal du hacker', diff --git a/app/i18n/es/gen.php b/app/i18n/es/gen.php index 209a40dac..54877d3df 100755 --- a/app/i18n/es/gen.php +++ b/app/i18n/es/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Portapapeles', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'Email', // IGNORE + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 69d260063..fec2b7d4a 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Presse-papier', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'Courriel', + 'email-webmail-firefox-fix' => 'Courriel (pour Webmail avec Firefox)', 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/he/gen.php b/app/i18n/he/gen.php index a8df3db6b..20b93eb7e 100644 --- a/app/i18n/he/gen.php +++ b/app/i18n/he/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Clipboard', // TODO 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'דואר אלקטרוני', + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index e5458866c..09844d072 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Appunti', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'Email', // IGNORE + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/ja/gen.php b/app/i18n/ja/gen.php index 69fc8f9c9..85d130e37 100644 --- a/app/i18n/ja/gen.php +++ b/app/i18n/ja/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'クリップボード', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'Eメール', + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/ko/gen.php b/app/i18n/ko/gen.php index 4f6b6a228..ba15726a3 100644 --- a/app/i18n/ko/gen.php +++ b/app/i18n/ko/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => '클립보드', 'diaspora' => 'Diaspora*', // IGNORE 'email' => '메일', + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index abd21f460..e06e05db7 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Klembord', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'Email', // IGNORE + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/oc/gen.php b/app/i18n/oc/gen.php index 41f2c1499..a55b2c147 100644 --- a/app/i18n/oc/gen.php +++ b/app/i18n/oc/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Quicha-papiers.', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'Corrièl', + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/pl/gen.php b/app/i18n/pl/gen.php index 1a7bd69a5..56bd3c082 100644 --- a/app/i18n/pl/gen.php +++ b/app/i18n/pl/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Schowek', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'E-mail', + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/pt-br/gen.php b/app/i18n/pt-br/gen.php index 969056969..acf954b77 100644 --- a/app/i18n/pt-br/gen.php +++ b/app/i18n/pt-br/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Área de transferência', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'E-mail', + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index 3ed1ab1ac..9ba61ae59 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Буфер обмена', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'Электронная почта', + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/sk/gen.php b/app/i18n/sk/gen.php index 6bb5e4161..aa8f1767b 100644 --- a/app/i18n/sk/gen.php +++ b/app/i18n/sk/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Schránka', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'E-mail', // IGNORE + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index 8839023e6..c65815e8e 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Kopyala', 'diaspora' => 'Diaspora*', // IGNORE 'email' => 'Email', // IGNORE + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php index 2b2249db5..683a38173 100644 --- a/app/i18n/zh-cn/gen.php +++ b/app/i18n/zh-cn/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => '剪贴板', 'diaspora' => 'Diaspora*', // IGNORE 'email' => '邮箱', // IGNORE + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => '脸书', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/i18n/zh-tw/gen.php b/app/i18n/zh-tw/gen.php index 1dcd94eeb..31ef0f692 100644 --- a/app/i18n/zh-tw/gen.php +++ b/app/i18n/zh-tw/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => '剪貼板', 'diaspora' => 'Diaspora*', // IGNORE 'email' => '郵箱', // IGNORE + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => '臉書', // IGNORE 'gnusocial' => 'GNU social', // IGNORE 'jdh' => 'Journal du hacker', // IGNORE diff --git a/app/shares.php b/app/shares.php index 8685dba5d..490f97ab5 100644 --- a/app/shares.php +++ b/app/shares.php @@ -61,6 +61,12 @@ return array( 'form' => 'simple', 'method' => 'GET', ), + 'email-webmail-firefox-fix' => array( // see https://github.com/FreshRSS/FreshRSS/issues/2666 + 'url' => 'mailto:?subject=~TITLE~&body=~LINK~', + 'transform' => array('rawurlencode'), + 'form' => 'simple', + 'method' => 'GET', + ), 'facebook' => array( 'url' => 'https://www.facebook.com/sharer.php?u=~LINK~&t=~TITLE~', 'transform' => array('rawurlencode'), diff --git a/p/scripts/main.js b/p/scripts/main.js index 268fd2858..436796b52 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -1101,6 +1101,12 @@ function init_stream(stream) { return false; } + el = ev.target.closest('.item.share > a[data-type="email-webmail-firefox-fix"]'); + if (el) { + window.open(el.href); + return false; + } + el = ev.target.closest('.item.share > a[href="POST"]'); if (el) { // Share by POST const f = el.parentElement.querySelector('form'); -- cgit v1.2.3 From 8864d514c82bc29f0014e45330383ab2ee812910 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 14 Nov 2022 14:57:45 +0100 Subject: NFS-friendly is_writable() checks (#4780) #fix https://github.com/FreshRSS/FreshRSS/issues/4779 --- app/Controllers/updateController.php | 6 +++--- app/Utils/feverUtil.php | 2 +- lib/lib_install.php | 8 ++++---- lib/lib_rss.php | 10 +++++----- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/Controllers/updateController.php b/app/Controllers/updateController.php index 675bd7def..f1588c7e1 100644 --- a/app/Controllers/updateController.php +++ b/app/Controllers/updateController.php @@ -14,7 +14,7 @@ class FreshRSS_update_Controller extends FreshRSS_ActionController { public static function migrateToGitEdge() { $errorMessage = 'Error during git checkout to edge branch. Please change branch manually!'; - if (!is_writable(FRESHRSS_PATH . '/.git/')) { + if (!is_writable(FRESHRSS_PATH . '/.git/config')) { throw new Exception($errorMessage); } @@ -118,7 +118,7 @@ class FreshRSS_update_Controller extends FreshRSS_ActionController { if ($version == '') { $version = 'unknown'; } - if (is_writable(FRESHRSS_PATH)) { + if (touch(FRESHRSS_PATH . '/index.html')) { $this->view->update_to_apply = true; $this->view->message = array( 'status' => 'good', @@ -217,7 +217,7 @@ class FreshRSS_update_Controller extends FreshRSS_ActionController { } public function applyAction() { - if (!file_exists(UPDATE_FILENAME) || !is_writable(FRESHRSS_PATH) || Minz_Configuration::get('system')->disable_update) { + if (Minz_Configuration::get('system')->disable_update || !file_exists(UPDATE_FILENAME) || !touch(FRESHRSS_PATH . '/index.html')) { Minz_Request::forward(array('c' => 'update'), true); } diff --git a/app/Utils/feverUtil.php b/app/Utils/feverUtil.php index a7d21dacb..277230ec2 100644 --- a/app/Utils/feverUtil.php +++ b/app/Utils/feverUtil.php @@ -13,7 +13,7 @@ class FreshRSS_fever_Util { @mkdir(self::FEVER_PATH, 0770, true); } - $ok = is_writable(self::FEVER_PATH); + $ok = touch(self::FEVER_PATH . '/index.html'); // is_writable() is not reliable for a folder on NFS if (!$ok) { Minz_Log::error("Could not save Fever API credentials. The directory does not have write access."); } diff --git a/lib/lib_install.php b/lib/lib_install.php index 494ddc6dd..0204c90c9 100644 --- a/lib/lib_install.php +++ b/lib/lib_install.php @@ -42,14 +42,14 @@ function checkRequirements($dbType = '') { $json = function_exists('json_encode'); $mbstring = extension_loaded('mbstring'); // @phpstan-ignore-next-line - $data = DATA_PATH && is_writable(DATA_PATH); + $data = DATA_PATH && touch(DATA_PATH . '/index.html'); // is_writable() is not reliable for a folder on NFS // @phpstan-ignore-next-line - $cache = CACHE_PATH && is_writable(CACHE_PATH); + $cache = CACHE_PATH && touch(CACHE_PATH . '/index.html'); // @phpstan-ignore-next-line $tmp = TMP_PATH && is_writable(TMP_PATH); // @phpstan-ignore-next-line - $users = USERS_PATH && is_writable(USERS_PATH); - $favicons = is_writable(join_path(DATA_PATH, 'favicons')); + $users = USERS_PATH && touch(USERS_PATH . '/index.html'); + $favicons = touch(DATA_PATH . '/favicons/index.html'); return array( 'php' => $php ? 'ok' : 'ko', diff --git a/lib/lib_rss.php b/lib/lib_rss.php index 592ad8149..d0e819d98 100644 --- a/lib/lib_rss.php +++ b/lib/lib_rss.php @@ -696,13 +696,13 @@ function check_install_php() { function check_install_files() { return array( // @phpstan-ignore-next-line - 'data' => DATA_PATH && is_writable(DATA_PATH), + 'data' => DATA_PATH && touch(DATA_PATH . '/index.html'), // is_writable() is not reliable for a folder on NFS // @phpstan-ignore-next-line - 'cache' => CACHE_PATH && is_writable(CACHE_PATH), + 'cache' => CACHE_PATH && touch(CACHE_PATH . '/index.html'), // @phpstan-ignore-next-line - 'users' => USERS_PATH && is_writable(USERS_PATH), - 'favicons' => is_writable(DATA_PATH . '/favicons'), - 'tokens' => is_writable(DATA_PATH . '/tokens'), + 'users' => USERS_PATH && touch(USERS_PATH . '/index.html'), + 'favicons' => touch(DATA_PATH . '/favicons/index.html'), + 'tokens' => touch(DATA_PATH . '/tokens/index.html'), ); } -- cgit v1.2.3 From acf459429b128053ef70934d3152f4b211a14396 Mon Sep 17 00:00:00 2001 From: maTh Date: Mon, 14 Nov 2022 15:00:56 +0100 Subject: implement CSS variable --frss-padding-top-bottom (#4794) --- p/themes/Origine-compact/origine-compact.css | 58 ++++-------------------- p/themes/Origine-compact/origine-compact.rtl.css | 58 ++++-------------------- p/themes/Origine/origine.css | 20 +++----- p/themes/Origine/origine.rtl.css | 20 +++----- p/themes/base-theme/frss.css | 28 +++++++++--- p/themes/base-theme/frss.rtl.css | 28 +++++++++--- 6 files changed, 74 insertions(+), 138 deletions(-) diff --git a/p/themes/Origine-compact/origine-compact.css b/p/themes/Origine-compact/origine-compact.css index 880af2433..d85d5c065 100644 --- a/p/themes/Origine-compact/origine-compact.css +++ b/p/themes/Origine-compact/origine-compact.css @@ -2,6 +2,10 @@ /*=== GENERAL */ /*============*/ +:root { + --frss-padding-top-bottom: 0.125rem; +} + input, select, textarea { padding: 3px 5px 2px 5px; min-height: 25px; @@ -41,14 +45,6 @@ a.btn, font-size: 0.9rem; } -.horizontal-list .item { - line-height: 2.2; -} - -.horizontal-list .item .item-element { - padding: 1px 0 0 0; -} - /*=== Dropdown */ .item ~ .dropdown-header, .item.separator { @@ -59,27 +55,9 @@ a.btn, /*=== Pagination */ /*=== Boxes */ /*=== Tree */ -.tree-folder-title { - padding: 0 5px; - line-height: 2.2; - font-size: 0.9rem; -} - -.tree-folder-items > .item { - line-height: 2.4; -} - /*=== STRUCTURE */ /*===============*/ /*=== Header */ -.header { - height: 40px; -} - -.header > .item { - padding: 0px; -} - .header .item.configure .btn, .header .item.search .btn { min-height: 18px; @@ -88,7 +66,7 @@ a.btn, } .header > .item.title .logo { - height: 25px; + height: 1.5rem; } .header > .item.search input { @@ -97,17 +75,17 @@ a.btn, /*=== Body */ #global { - height: calc(100vh - 40px); + height: calc(100vh - (calc(1.5rem + 2 * var(--frss-padding-top-bottom)))) } /*=== Aside main page (categories) */ .aside.aside_feed .category .title:not([data-unread="0"])::after, .global .box.category .title:not([data-unread="0"])::after { - margin: 0.4em 0 0 0; + font-size: 0.8rem; } .aside.aside_feed .feed .item-title:not([data-unread="0"])::after { - margin: 0.5em 0 0 0; + font-size: 0.7rem; } /*=== Day indication */ @@ -123,10 +101,6 @@ a.btn, /*=== Index menu */ /*=== Feed articles */ -.flux .item { - padding: 0; -} - .flux .item.thumbnail { padding: 5px; height: 50px; @@ -169,14 +143,6 @@ a.btn, } /*=== Content of feed articles */ -.content { - padding: 10px 10px; -} - -#stream.normal .content > h1.title { - display: none; -} - /*=== Notification and actualize notification */ /*=== "Load more" part */ #bigMarkAsRead { @@ -188,10 +154,6 @@ a.btn, } /*=== Navigation menu (for articles) */ -#nav_entries { - line-height: 2.2; -} - /*=== READER VIEW */ /*================*/ /*=== GLOBAL VIEW */ @@ -213,7 +175,7 @@ a.btn, } .post { - padding-left: 15px; - padding-right: 15px; + padding-left: 1rem; + padding-right: 1rem; } } diff --git a/p/themes/Origine-compact/origine-compact.rtl.css b/p/themes/Origine-compact/origine-compact.rtl.css index cfa978650..1273cfc55 100644 --- a/p/themes/Origine-compact/origine-compact.rtl.css +++ b/p/themes/Origine-compact/origine-compact.rtl.css @@ -2,6 +2,10 @@ /*=== GENERAL */ /*============*/ +:root { + --frss-padding-top-bottom: 0.125rem; +} + input, select, textarea { padding: 3px 5px 2px 5px; min-height: 25px; @@ -41,14 +45,6 @@ a.btn, font-size: 0.9rem; } -.horizontal-list .item { - line-height: 2.2; -} - -.horizontal-list .item .item-element { - padding: 1px 0 0 0; -} - /*=== Dropdown */ .item ~ .dropdown-header, .item.separator { @@ -59,27 +55,9 @@ a.btn, /*=== Pagination */ /*=== Boxes */ /*=== Tree */ -.tree-folder-title { - padding: 0 5px; - line-height: 2.2; - font-size: 0.9rem; -} - -.tree-folder-items > .item { - line-height: 2.4; -} - /*=== STRUCTURE */ /*===============*/ /*=== Header */ -.header { - height: 40px; -} - -.header > .item { - padding: 0px; -} - .header .item.configure .btn, .header .item.search .btn { min-height: 18px; @@ -88,7 +66,7 @@ a.btn, } .header > .item.title .logo { - height: 25px; + height: 1.5rem; } .header > .item.search input { @@ -97,17 +75,17 @@ a.btn, /*=== Body */ #global { - height: calc(100vh - 40px); + height: calc(100vh - (calc(1.5rem + 2 * var(--frss-padding-top-bottom)))) } /*=== Aside main page (categories) */ .aside.aside_feed .category .title:not([data-unread="0"])::after, .global .box.category .title:not([data-unread="0"])::after { - margin: 0.4em 0 0 0; + font-size: 0.8rem; } .aside.aside_feed .feed .item-title:not([data-unread="0"])::after { - margin: 0.5em 0 0 0; + font-size: 0.7rem; } /*=== Day indication */ @@ -123,10 +101,6 @@ a.btn, /*=== Index menu */ /*=== Feed articles */ -.flux .item { - padding: 0; -} - .flux .item.thumbnail { padding: 5px; height: 50px; @@ -169,14 +143,6 @@ a.btn, } /*=== Content of feed articles */ -.content { - padding: 10px 10px; -} - -#stream.normal .content > h1.title { - display: none; -} - /*=== Notification and actualize notification */ /*=== "Load more" part */ #bigMarkAsRead { @@ -188,10 +154,6 @@ a.btn, } /*=== Navigation menu (for articles) */ -#nav_entries { - line-height: 2.2; -} - /*=== READER VIEW */ /*================*/ /*=== GLOBAL VIEW */ @@ -213,7 +175,7 @@ a.btn, } .post { - padding-right: 15px; - padding-left: 15px; + padding-right: 1rem; + padding-left: 1rem; } } diff --git a/p/themes/Origine/origine.css b/p/themes/Origine/origine.css index 4b41e1434..a53055a75 100644 --- a/p/themes/Origine/origine.css +++ b/p/themes/Origine/origine.css @@ -567,7 +567,7 @@ a:hover .icon { } .box .box-content .item { - padding: 0.5rem 0 0.25rem 0; + padding-bottom: 0.25rem; font-size: 0.9rem; line-height: 1.5; } @@ -579,9 +579,9 @@ a:hover .icon { .tree-folder-title { position: relative; - padding: 0 10px; + padding-left: 0.75rem; + padding-right: 0.75rem; background-color: var(--background-color-light); - line-height: 2.5; font-size: 1rem; } @@ -615,7 +615,7 @@ a:hover .icon { .tree-folder-items > .item { padding: 0 10px; - line-height: 3.125; + line-height: 1.7; font-size: 0.8rem; } @@ -643,19 +643,18 @@ a:hover .icon { /*===============*/ /*=== Header */ .header { - height: 4rem; background-color: var(--background-color-grey); } .header > .item { - padding: 10px; + padding-left: 0.75rem; + padding-right: 0.75rem; border-bottom: 1px solid var(--border-color); vertical-align: middle; text-align: center; } .header > .item.title { - padding: 10px 0; width: 300px; } @@ -781,7 +780,6 @@ a:hover .icon { } #new-article > a { - padding: 1em; color: var(--font-color-light); font-weight: bold; } @@ -820,10 +818,8 @@ a:hover .icon { /*=== Index menu */ .nav_menu { - padding: 0.5rem 0; background-color: var(--background-color-light-shadowed); border-bottom: 1px solid var(--border-color); - text-align: center; } /*=== Feed articles */ @@ -882,10 +878,6 @@ a:hover .icon { } /*=== Content of feed articles */ -.content { - padding: 20px 10px; -} - .content h1.title > a { color: var(--font-color); } diff --git a/p/themes/Origine/origine.rtl.css b/p/themes/Origine/origine.rtl.css index 8f0c9095a..377ff9823 100644 --- a/p/themes/Origine/origine.rtl.css +++ b/p/themes/Origine/origine.rtl.css @@ -567,7 +567,7 @@ a:hover .icon { } .box .box-content .item { - padding: 0.5rem 0 0.25rem 0; + padding-bottom: 0.25rem; font-size: 0.9rem; line-height: 1.5; } @@ -579,9 +579,9 @@ a:hover .icon { .tree-folder-title { position: relative; - padding: 0 10px; + padding-right: 0.75rem; + padding-left: 0.75rem; background-color: var(--background-color-light); - line-height: 2.5; font-size: 1rem; } @@ -615,7 +615,7 @@ a:hover .icon { .tree-folder-items > .item { padding: 0 10px; - line-height: 3.125; + line-height: 1.7; font-size: 0.8rem; } @@ -643,19 +643,18 @@ a:hover .icon { /*===============*/ /*=== Header */ .header { - height: 4rem; background-color: var(--background-color-grey); } .header > .item { - padding: 10px; + padding-right: 0.75rem; + padding-left: 0.75rem; border-bottom: 1px solid var(--border-color); vertical-align: middle; text-align: center; } .header > .item.title { - padding: 10px 0; width: 300px; } @@ -781,7 +780,6 @@ a:hover .icon { } #new-article > a { - padding: 1em; color: var(--font-color-light); font-weight: bold; } @@ -820,10 +818,8 @@ a:hover .icon { /*=== Index menu */ .nav_menu { - padding: 0.5rem 0; background-color: var(--background-color-light-shadowed); border-bottom: 1px solid var(--border-color); - text-align: center; } /*=== Feed articles */ @@ -882,10 +878,6 @@ a:hover .icon { } /*=== Content of feed articles */ -.content { - padding: 20px 10px; -} - .content h1.title > a { color: var(--font-color); } diff --git a/p/themes/base-theme/frss.css b/p/themes/base-theme/frss.css index e0ef320e1..6367e60f5 100644 --- a/p/themes/base-theme/frss.css +++ b/p/themes/base-theme/frss.css @@ -39,6 +39,7 @@ --frss-loading-image: url("loader.gif"); --frss-padding-flux-items: 0.75rem; + --frss-padding-top-bottom: 0.5rem; line-height: 1.5; } @@ -583,7 +584,7 @@ input[type="checkbox"]:focus-visible { } .horizontal-list .item .item-element { - padding: 0.5rem 0; + padding: var(--frss-padding-top-bottom) 0; } /*=== manage-list */ @@ -826,6 +827,7 @@ input[type="checkbox"]:focus-visible { .box .box-content .item.feed { display: block; + padding-top: var(--frss-padding-top-bottom); } .box .box-content .item.feed.moved { @@ -955,6 +957,11 @@ li.drag-hover { transition: max-height .3s linear; } +.tree-folder-title { + padding-top: var(--frss-padding-top-bottom); + padding-bottom: var(--frss-padding-top-bottom); +} + .tree-folder-title .title { display: inline-block; width: 100%; @@ -993,11 +1000,13 @@ li.drag-hover { .header { display: table; width: 100%; - height: 85px; + height: calc(2rem + 2 * var(--frss-padding-top-bottom)); table-layout: fixed; } .header > .item { + padding-top: var(--frss-padding-top-bottom); + padding-bottom: var(--frss-padding-top-bottom); display: table-cell; } @@ -1012,7 +1021,7 @@ li.drag-hover { .header > .item.title .logo { display: inline-block; - height: 32px; + height: 2rem; vertical-align: middle; } @@ -1029,7 +1038,7 @@ input[type="search"] { background: inherit; display: table; width: 100%; - height: calc(100vh - 85px); + height: calc(100vh - (calc(2rem + 2 * var(--frss-padding-top-bottom)))); table-layout: fixed; } @@ -1061,7 +1070,7 @@ input[type="search"] { } .aside_feed .tree-folder-items .item.feed { - padding: 0 0.75rem; + padding: var(--frss-padding-top-bottom) 0.75rem; } .aside_feed .tree-folder-items:not(.active) { @@ -1104,6 +1113,7 @@ input[type="search"] { } #new-article > a { + padding: calc(0.25rem + var(--frss-padding-top-bottom)) 1rem; display: block; } @@ -1132,7 +1142,7 @@ input[type="search"] { } .flux .flux_header .item .item-element { - padding: 0.5rem 0; + padding: var(--frss-padding-top-bottom) 0; line-height: 1.5rem; } @@ -1268,6 +1278,7 @@ a.website:hover .favicon { .content { min-height: 20rem; margin: auto; + padding: 0.75rem; line-height: 1.5; word-wrap: break-word; } @@ -1782,7 +1793,7 @@ input:checked + .slide-container .properties { .aside .category .title:not([data-unread="0"])::after, .aside .feed .item-title:not([data-unread="0"])::after { - margin: 0.6rem 0 0 0; + margin: calc(0.125rem + var(--frss-padding-top-bottom)) 0 0 0; padding: 0.25rem 0.5rem; min-width: 2rem; display: block; @@ -1850,7 +1861,10 @@ input:checked + .slide-container .properties { } .nav_menu { + padding-top: var(--frss-padding-top-bottom); + padding-bottom: var(--frss-padding-top-bottom); background: inherit; + text-align: center; } .nav_mobile { diff --git a/p/themes/base-theme/frss.rtl.css b/p/themes/base-theme/frss.rtl.css index 1755291bd..73dc4f83d 100644 --- a/p/themes/base-theme/frss.rtl.css +++ b/p/themes/base-theme/frss.rtl.css @@ -39,6 +39,7 @@ --frss-loading-image: url("loader.gif"); --frss-padding-flux-items: 0.75rem; + --frss-padding-top-bottom: 0.5rem; line-height: 1.5; } @@ -583,7 +584,7 @@ input[type="checkbox"]:focus-visible { } .horizontal-list .item .item-element { - padding: 0.5rem 0; + padding: var(--frss-padding-top-bottom) 0; } /*=== manage-list */ @@ -826,6 +827,7 @@ input[type="checkbox"]:focus-visible { .box .box-content .item.feed { display: block; + padding-top: var(--frss-padding-top-bottom); } .box .box-content .item.feed.moved { @@ -955,6 +957,11 @@ li.drag-hover { transition: max-height .3s linear; } +.tree-folder-title { + padding-top: var(--frss-padding-top-bottom); + padding-bottom: var(--frss-padding-top-bottom); +} + .tree-folder-title .title { display: inline-block; width: 100%; @@ -993,11 +1000,13 @@ li.drag-hover { .header { display: table; width: 100%; - height: 85px; + height: calc(2rem + 2 * var(--frss-padding-top-bottom)); table-layout: fixed; } .header > .item { + padding-top: var(--frss-padding-top-bottom); + padding-bottom: var(--frss-padding-top-bottom); display: table-cell; } @@ -1012,7 +1021,7 @@ li.drag-hover { .header > .item.title .logo { display: inline-block; - height: 32px; + height: 2rem; vertical-align: middle; } @@ -1029,7 +1038,7 @@ input[type="search"] { background: inherit; display: table; width: 100%; - height: calc(100vh - 85px); + height: calc(100vh - (calc(2rem + 2 * var(--frss-padding-top-bottom)))); table-layout: fixed; } @@ -1061,7 +1070,7 @@ input[type="search"] { } .aside_feed .tree-folder-items .item.feed { - padding: 0 0.75rem; + padding: var(--frss-padding-top-bottom) 0.75rem; } .aside_feed .tree-folder-items:not(.active) { @@ -1104,6 +1113,7 @@ input[type="search"] { } #new-article > a { + padding: calc(0.25rem + var(--frss-padding-top-bottom)) 1rem; display: block; } @@ -1132,7 +1142,7 @@ input[type="search"] { } .flux .flux_header .item .item-element { - padding: 0.5rem 0; + padding: var(--frss-padding-top-bottom) 0; line-height: 1.5rem; } @@ -1268,6 +1278,7 @@ a.website:hover .favicon { .content { min-height: 20rem; margin: auto; + padding: 0.75rem; line-height: 1.5; word-wrap: break-word; } @@ -1782,7 +1793,7 @@ input:checked + .slide-container .properties { .aside .category .title:not([data-unread="0"])::after, .aside .feed .item-title:not([data-unread="0"])::after { - margin: 0.6rem 0 0 0; + margin: calc(0.125rem + var(--frss-padding-top-bottom)) 0 0 0; padding: 0.25rem 0.5rem; min-width: 2rem; display: block; @@ -1850,7 +1861,10 @@ input:checked + .slide-container .properties { } .nav_menu { + padding-top: var(--frss-padding-top-bottom); + padding-bottom: var(--frss-padding-top-bottom); background: inherit; + text-align: center; } .nav_mobile { -- cgit v1.2.3 From 570503b7f12df7d12af29905da97131b032c7da0 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 14 Nov 2022 15:02:44 +0100 Subject: Require PHP 7.2+ (#4848) Drop PHP 7.0- as planned https://github.com/FreshRSS/FreshRSS/discussions/3321#discussioncomment-835704 --- Docker/Dockerfile-Oldest | 2 +- README.fr.md | 2 +- README.md | 2 +- composer.json | 2 +- composer.lock | 379 +++++-------------------------------- constants.php | 2 +- docs/en/admins/02_Prerequisites.md | 2 +- docs/fr/users/01_Installation.md | 2 +- lib/composer.json | 2 +- 9 files changed, 55 insertions(+), 340 deletions(-) diff --git a/Docker/Dockerfile-Oldest b/Docker/Dockerfile-Oldest index d0b27cc72..b4dc13ddc 100644 --- a/Docker/Dockerfile-Oldest +++ b/Docker/Dockerfile-Oldest @@ -1,4 +1,4 @@ -FROM alpine:3.5 +FROM alpine:3.8 ENV TZ UTC SHELL ["/bin/ash", "-eo", "pipefail", "-c"] diff --git a/README.fr.md b/README.fr.md index d5119de4c..cf98311ac 100644 --- a/README.fr.md +++ b/README.fr.md @@ -48,7 +48,7 @@ FreshRSS n’est fourni avec aucune garantie. * Serveur modeste, par exemple sous Linux ou Windows * Fonctionne même sur un Raspberry Pi 1 avec des temps de réponse < 1s (testé sur 150 flux, 22k articles) * Serveur Web Apache2 (recommandé), ou nginx, lighttpd (non testé sur les autres) -* PHP 7.0+ +* PHP 7.2+ * Requis : [cURL](https://www.php.net/curl), [DOM](https://www.php.net/dom), [JSON](https://www.php.net/json), [XML](https://www.php.net/xml), [session](https://www.php.net/session), [ctype](https://www.php.net/ctype), et [PDO_MySQL](https://www.php.net/pdo-mysql) ou [PDO_SQLite](https://www.php.net/pdo-sqlite) ou [PDO_PGSQL](https://www.php.net/pdo-pgsql) * Recommandés : [GMP](https://www.php.net/gmp) (pour accès API sur plateformes < 64 bits), [IDN](https://www.php.net/intl.idn) (pour les noms de domaines internationalisés), [mbstring](https://www.php.net/mbstring) (pour le texte Unicode), [iconv](https://www.php.net/iconv) (pour conversion d’encodages), [ZIP](https://www.php.net/zip) (pour import/export), [zlib](https://www.php.net/zlib) (pour les flux compressés) * MySQL 5.5.3+ ou équivalent MariaDB, ou SQLite 3.7.4+, ou PostgreSQL 9.5+ diff --git a/README.md b/README.md index 71b04431d..526e0bb6f 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ FreshRSS comes with absolutely no warranty. * Light server running Linux or Windows * It even works on Raspberry Pi 1 with response time under a second (tested with 150 feeds, 22k articles) * A web server: Apache2 (recommended), nginx, lighttpd (not tested on others) -* PHP 7.0+ +* PHP 7.2+ * Required extensions: [cURL](https://www.php.net/curl), [DOM](https://www.php.net/dom), [JSON](https://www.php.net/json), [XML](https://www.php.net/xml), [session](https://www.php.net/session), [ctype](https://www.php.net/ctype), and [PDO_MySQL](https://www.php.net/pdo-mysql) or [PDO_SQLite](https://www.php.net/pdo-sqlite) or [PDO_PGSQL](https://www.php.net/pdo-pgsql) * Recommended extensions: [GMP](https://www.php.net/gmp) (for API access on 32-bit platforms), [IDN](https://www.php.net/intl.idn) (for Internationalized Domain Names), [mbstring](https://www.php.net/mbstring) (for Unicode strings), [iconv](https://www.php.net/iconv) (for charset conversion), [ZIP](https://www.php.net/zip) (for import/export), [zlib](https://www.php.net/zlib) (for compressed feeds) * MySQL 5.5.3+ or MariaDB equivalent, or SQLite 3.7.4+, or PostgreSQL 9.5+ diff --git a/composer.json b/composer.json index a8d1b64ad..bac516c34 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,7 @@ "WebSub" ], "require": { - "php": ">=7.0", + "php": ">=7.2", "ext-ctype": "*", "ext-curl": "*", "ext-dom": "*", diff --git a/composer.lock b/composer.lock index d9bc8ed02..696088da1 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b52a52e72b9449a7d252d92ccc62c826", + "content-hash": "a177c11dee892e1293efc7331465081b", "packages": [], "packages-dev": [ { @@ -138,16 +138,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.14.0", + "version": "v4.15.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1" + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", "shasum": "" }, "require": { @@ -188,9 +188,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" }, - "time": "2022-05-31T20:59:12+00:00" + "time": "2022-11-12T15:38:23+00:00" }, { "name": "phar-io/manifest", @@ -303,233 +303,6 @@ }, "time": "2022-02-21T01:04:05+00:00" }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" - }, - "time": "2021-10-19T17:43:47+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.6.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "77a32518733312af16a44300404e945338981de3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", - "reference": "77a32518733312af16a44300404e945338981de3", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" - }, - "time": "2022-03-15T21:29:03+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.15.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.2", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" - }, - "time": "2021-12-08T12:19:24+00:00" - }, { "name": "phpstan/phpstan", "version": "1.7.15", @@ -591,23 +364,23 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.15", + "version": "9.2.18", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f" + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f", - "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.13.0", + "nikic/php-parser": "^4.14", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -656,7 +429,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18" }, "funding": [ { @@ -664,7 +437,7 @@ "type": "github" } ], - "time": "2022-03-07T09:28:20+00:00" + "time": "2022-10-27T13:35:33+00:00" }, { "name": "phpunit/php-file-iterator", @@ -909,16 +682,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.21", + "version": "9.5.26", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1" + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0e32b76be457de00e83213528f6bb37e2a38fcb1", - "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", "shasum": "" }, "require": { @@ -933,7 +706,6 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", "phpunit/php-code-coverage": "^9.2.13", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", @@ -941,19 +713,16 @@ "phpunit/php-timer": "^5.0.2", "sebastian/cli-parser": "^1.0.1", "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.5", + "sebastian/comparator": "^4.0.8", "sebastian/diff": "^4.0.3", "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.3", + "sebastian/exporter": "^4.0.5", "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.0", + "sebastian/type": "^3.2", "sebastian/version": "^3.0.2" }, - "require-dev": { - "phpspec/prophecy-phpunit": "^2.0.1" - }, "suggest": { "ext-soap": "*", "ext-xdebug": "*" @@ -995,7 +764,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.21" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" }, "funding": [ { @@ -1005,9 +774,13 @@ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" } ], - "time": "2022-06-19T12:14:25+00:00" + "time": "2022-10-28T06:00:21+00:00" }, { "name": "sebastian/cli-parser", @@ -1178,16 +951,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { @@ -1240,7 +1013,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" }, "funding": [ { @@ -1248,7 +1021,7 @@ "type": "github" } ], - "time": "2020-10-26T15:49:45+00:00" + "time": "2022-09-14T12:41:17+00:00" }, { "name": "sebastian/complexity", @@ -1438,16 +1211,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { @@ -1503,7 +1276,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" }, "funding": [ { @@ -1511,7 +1284,7 @@ "type": "github" } ], - "time": "2021-11-11T14:18:36+00:00" + "time": "2022-09-14T06:03:37+00:00" }, { "name": "sebastian/global-state", @@ -1866,16 +1639,16 @@ }, { "name": "sebastian/type", - "version": "3.0.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad" + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", - "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", "shasum": "" }, "require": { @@ -1887,7 +1660,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1910,7 +1683,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.0.0" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" }, "funding": [ { @@ -1918,7 +1691,7 @@ "type": "github" } ], - "time": "2022-03-15T09:54:48+00:00" + "time": "2022-09-12T14:47:03+00:00" }, { "name": "sebastian/version", @@ -2078,64 +1851,6 @@ } ], "time": "2021-07-28T10:34:58+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.11.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "php": "^7.2 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" - }, - "time": "2022-06-03T18:03:27+00:00" } ], "aliases": [], @@ -2144,7 +1859,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=7.0", + "php": ">=7.2", "ext-ctype": "*", "ext-curl": "*", "ext-dom": "*", diff --git a/constants.php b/constants.php index 06212fc39..1e4a4e03a 100644 --- a/constants.php +++ b/constants.php @@ -2,7 +2,7 @@ //NB: Do not edit; use ./constants.local.php instead. // -define('FRESHRSS_MIN_PHP_VERSION', '7.0.0'); +define('FRESHRSS_MIN_PHP_VERSION', '7.2.0'); define('FRESHRSS_VERSION', '1.21.0-dev'); define('FRESHRSS_WEBSITE', 'https://freshrss.org'); define('FRESHRSS_WIKI', 'https://freshrss.github.io/FreshRSS/'); diff --git a/docs/en/admins/02_Prerequisites.md b/docs/en/admins/02_Prerequisites.md index 41dabc651..c2a2b3fa7 100644 --- a/docs/en/admins/02_Prerequisites.md +++ b/docs/en/admins/02_Prerequisites.md @@ -7,7 +7,7 @@ You need to verify that your server can run FreshRSS before installing it. If yo | Software | Recommended | Also Works With | | ------------- | ----------------------- | ----------------------- | | Web server | **Apache 2** | Nginx, lighttpd | -| PHP | **PHP 7+** | | +| PHP | **PHP 7.2+** | | | PHP modules | Required: libxml, cURL, JSON, PDO_MySQL, PCRE and ctype.
Required (32-bit only): GMP
Recommended: Zlib, mbstring, iconv, ZipArchive
*For the whole modules list see [Dockerfile](https://github.com/FreshRSS/FreshRSS/blob/edge/Docker/Dockerfile-Alpine#L7-L9)* | | | Database | **MySQL 5.5.3+** | SQLite 3.7.4+, PostgreSQL 9.5+ | | Browser | **Firefox** | Chrome, Opera, Safari, or Edge | diff --git a/docs/fr/users/01_Installation.md b/docs/fr/users/01_Installation.md index 0a04206c2..221e0ff4e 100644 --- a/docs/fr/users/01_Installation.md +++ b/docs/fr/users/01_Installation.md @@ -7,7 +7,7 @@ Il est toutefois de votre responsabilité de vérifier que votre hébergement pe | Logiciel | Recommandé | Fonctionne aussi avec | | -------- | ----------- | --------------------- | | Serveur web | **Apache 2** | Nginx | -| PHP | **PHP 7+** | | +| PHP | **PHP 7.2+** | | | Modules PHP | Requis : libxml, cURL, JSON, PDO_MySQL, PCRE et ctype
Requis (32 bits seulement) : GMP
Recommandé : Zlib, mbstring et iconv, ZipArchive
*Pour une liste complète des modules nécessaires voir le [Dockerfile](https://github.com/FreshRSS/FreshRSS/blob/edge/Docker/Dockerfile-Alpine#L7-L9)* | | | Base de données | **MySQL 5.5.3+** | SQLite 3.7.4+, PostgreSQL 9.5+ | | Navigateur | **Firefox** | Chrome, Opera, Safari, or Edge | diff --git a/lib/composer.json b/lib/composer.json index 017adfea6..4e4e1c051 100644 --- a/lib/composer.json +++ b/lib/composer.json @@ -11,7 +11,7 @@ } ], "require": { - "php": ">=7.0.0", + "php": ">=7.2.0", "phpgt/cssxpath": "dev-master#4fbe420aba3d9e729940107ded4236a835a1a132", "phpmailer/phpmailer": "6.6.0" }, -- cgit v1.2.3 From a44e2a0d0c35c63a94abfc482955c23d9d823e4a Mon Sep 17 00:00:00 2001 From: Luc SANCHEZ <4697568+ColonelMoutarde@users.noreply.github.com> Date: Mon, 14 Nov 2022 15:04:16 +0100 Subject: Add visibility (#4232) * Add visibility * Tab use * Update app/Models/Days.php Co-authored-by: Alexandre Alapetite --- app/Models/Days.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Models/Days.php b/app/Models/Days.php index 2d770c30b..de98c5ec8 100644 --- a/app/Models/Days.php +++ b/app/Models/Days.php @@ -1,7 +1,7 @@ Date: Mon, 14 Nov 2022 15:07:23 +0100 Subject: Typing function checkToken (#4561) * Typing function checkToken * Typing function and rename Co-authored-by: Luc SANCHEZ --- app/Models/CategoryDAO.php | 15 +++++++-------- app/Models/Context.php | 2 +- p/api/greader.php | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/Models/CategoryDAO.php b/app/Models/CategoryDAO.php index 20a92d52a..c855f1495 100644 --- a/app/Models/CategoryDAO.php +++ b/app/Models/CategoryDAO.php @@ -265,7 +265,7 @@ SQL; return $categories; } - uasort($categories, function ($a, $b) { + uasort($categories, static function ($a, $b) { $aPosition = $a->attributes('position'); $bPosition = $b->attributes('position'); if ($aPosition === $bPosition) { @@ -310,9 +310,9 @@ SQL; } /** @return array */ - public function listCategoriesOrderUpdate(int $defaultCacheDuration = 86400, int $limit = 0) { + public function listCategoriesOrderUpdate(int $defaultCacheDuration = 86400, int $limit = 0): array { $sql = 'SELECT * FROM `_category` WHERE kind = :kind AND `lastUpdate` < :lu ORDER BY `lastUpdate`' - . ($limit < 1 ? '' : ' LIMIT ' . intval($limit)); + . ($limit < 1 ? '' : ' LIMIT ' . $limit); $stm = $this->pdo->prepare($sql); if ($stm && $stm->bindValue(':kind', FreshRSS_Category::KIND_DYNAMIC_OPML, PDO::PARAM_INT) && @@ -387,7 +387,7 @@ SQL; return $res[0]['count']; } - public function countFeed($id) { + public function countFeed(int $id) { $sql = 'SELECT COUNT(*) AS count FROM `_feed` WHERE category=:id'; $stm = $this->pdo->prepare($sql); $stm->bindParam(':id', $id, PDO::PARAM_INT); @@ -396,7 +396,7 @@ SQL; return $res[0]['count']; } - public function countNotRead($id) { + public function countNotRead(int $id) { $sql = 'SELECT COUNT(*) AS count FROM `_entry` e INNER JOIN `_feed` f ON e.id_feed=f.id WHERE category=:id AND e.is_read=0'; $stm = $this->pdo->prepare($sql); $stm->bindParam(':id', $id, PDO::PARAM_INT); @@ -409,7 +409,7 @@ SQL; * @param array $categories * @param int $feed_id */ - public static function findFeed($categories, $feed_id) { + public static function findFeed(array $categories, int $feed_id) { foreach ($categories as $category) { foreach ($category->feeds() as $feed) { if ($feed->id() === $feed_id) { @@ -422,9 +422,8 @@ SQL; /** * @param array $categories - * @param int $minPriority */ - public static function CountUnreads($categories, $minPriority = 0) { + public static function countUnread(array $categories, int $minPriority = 0): int { $n = 0; foreach ($categories as $category) { foreach ($category->feeds() as $feed) { diff --git a/app/Models/Context.php b/app/Models/Context.php index fed2a6767..152ecc4bf 100644 --- a/app/Models/Context.php +++ b/app/Models/Context.php @@ -163,7 +163,7 @@ class FreshRSS_Context { // Update number of read / unread variables. $entryDAO = FreshRSS_Factory::createEntryDao(); self::$total_starred = $entryDAO->countUnreadReadFavorites(); - self::$total_unread = FreshRSS_CategoryDAO::CountUnreads( + self::$total_unread = FreshRSS_CategoryDAO::countUnread( self::$categories, 1 ); diff --git a/p/api/greader.php b/p/api/greader.php index b08013850..afca1afaf 100644 --- a/p/api/greader.php +++ b/p/api/greader.php @@ -220,7 +220,7 @@ function token($conf) { exit(); } -function checkToken($conf, $token) { +function checkToken(FreshRSS_UserConfiguration $conf, string $token) { //http://code.google.com/p/google-reader-api/wiki/ActionToken $user = Minz_Session::param('currentUser', '_'); if ($user !== '_' && ( //TODO: Check security consequences -- cgit v1.2.3 From 937ef98e4ea40cc6c68b918f48a20114384ce163 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 14 Nov 2022 15:26:00 +0100 Subject: Hotfix i18n https://github.com/FreshRSS/FreshRSS/pull/4680 --- app/i18n/el/gen.php | 1 + app/i18n/id/gen.php | 1 + 2 files changed, 2 insertions(+) diff --git a/app/i18n/el/gen.php b/app/i18n/el/gen.php index a0c95ab39..aa1051564 100644 --- a/app/i18n/el/gen.php +++ b/app/i18n/el/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Clipboard', // TODO 'diaspora' => 'Diaspora*', // TODO 'email' => 'Email', // TODO + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // TODO 'gnusocial' => 'GNU social', // TODO 'jdh' => 'Journal du hacker', // TODO diff --git a/app/i18n/id/gen.php b/app/i18n/id/gen.php index 93f8b0afe..3e791c607 100644 --- a/app/i18n/id/gen.php +++ b/app/i18n/id/gen.php @@ -196,6 +196,7 @@ return array( 'clipboard' => 'Clipboard', // TODO 'diaspora' => 'Diaspora*', // TODO 'email' => 'Email', // TODO + 'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO 'facebook' => 'Facebook', // TODO 'gnusocial' => 'GNU social', // TODO 'jdh' => 'Journal du hacker', // TODO -- cgit v1.2.3 From 07c94061a9607b5d0a1341cc1b349ee094d5115b Mon Sep 17 00:00:00 2001 From: maTh Date: Mon, 14 Nov 2022 20:22:01 +0100 Subject: Improved: Centralized CSS for notifications (#4800) * wip. all themes * fixes --- p/themes/Alternative-Dark/adark.css | 9 --------- p/themes/Alternative-Dark/adark.rtl.css | 9 --------- p/themes/Ansum/_layout.scss | 4 ---- p/themes/Ansum/ansum.css | 5 ----- p/themes/Ansum/ansum.rtl.css | 5 ----- p/themes/BlueLagoon/BlueLagoon.css | 9 --------- p/themes/BlueLagoon/BlueLagoon.rtl.css | 9 --------- p/themes/Dark/dark.css | 9 --------- p/themes/Dark/dark.rtl.css | 9 --------- p/themes/Flat/flat.css | 6 ------ p/themes/Flat/flat.rtl.css | 6 ------ p/themes/Mapco/_layout.scss | 4 ---- p/themes/Mapco/mapco.css | 5 ----- p/themes/Mapco/mapco.rtl.css | 5 ----- p/themes/Nord/nord.css | 10 ---------- p/themes/Nord/nord.rtl.css | 10 ---------- p/themes/Origine/origine.css | 11 +---------- p/themes/Origine/origine.rtl.css | 11 +---------- p/themes/Pafat/pafat.css | 9 --------- p/themes/Pafat/pafat.rtl.css | 9 --------- p/themes/Screwdriver/screwdriver.css | 9 --------- p/themes/Screwdriver/screwdriver.rtl.css | 9 --------- p/themes/Swage/swage.css | 3 --- p/themes/Swage/swage.rtl.css | 3 --- p/themes/Swage/swage.scss | 4 ---- p/themes/base-theme/base.css | 16 ---------------- p/themes/base-theme/base.rtl.css | 16 ---------------- p/themes/base-theme/frss.css | 10 ++++++++-- p/themes/base-theme/frss.rtl.css | 10 ++++++++-- 29 files changed, 18 insertions(+), 216 deletions(-) diff --git a/p/themes/Alternative-Dark/adark.css b/p/themes/Alternative-Dark/adark.css index 3b5a9d337..867110efe 100644 --- a/p/themes/Alternative-Dark/adark.css +++ b/p/themes/Alternative-Dark/adark.css @@ -915,15 +915,6 @@ kbd { color: var(--font-color-contrast); } -.notification a.close { - padding: 0 15px; - line-height: 3; -} - -.notification#actualizeProgress { - line-height: 2; -} - /*=== "Load more" part */ #bigMarkAsRead { background: var(--background-color-dark); diff --git a/p/themes/Alternative-Dark/adark.rtl.css b/p/themes/Alternative-Dark/adark.rtl.css index 64ddd4403..3832ab7f9 100644 --- a/p/themes/Alternative-Dark/adark.rtl.css +++ b/p/themes/Alternative-Dark/adark.rtl.css @@ -915,15 +915,6 @@ kbd { color: var(--font-color-contrast); } -.notification a.close { - padding: 0 15px; - line-height: 3; -} - -.notification#actualizeProgress { - line-height: 2; -} - /*=== "Load more" part */ #bigMarkAsRead { background: var(--background-color-dark); diff --git a/p/themes/Ansum/_layout.scss b/p/themes/Ansum/_layout.scss index 4d099ab4a..ab7ec6e3e 100644 --- a/p/themes/Ansum/_layout.scss +++ b/p/themes/Ansum/_layout.scss @@ -348,9 +348,7 @@ main.prompt { } a.close { - padding: 0 15px; border-radius: 0 3px 3px 0; - line-height: 3em; } &.good a.close:hover { @@ -362,8 +360,6 @@ main.prompt { } &#actualizeProgress { - line-height: 2em; - br { display: none; } diff --git a/p/themes/Ansum/ansum.css b/p/themes/Ansum/ansum.css index 21d718949..b38f6e578 100644 --- a/p/themes/Ansum/ansum.css +++ b/p/themes/Ansum/ansum.css @@ -951,9 +951,7 @@ main.prompt { color: #fff; } .notification a.close { - padding: 0 15px; border-radius: 0 3px 3px 0; - line-height: 3em; } .notification.good a.close:hover { background: #0c7556; @@ -961,9 +959,6 @@ main.prompt { .notification.bad a.close:hover { background: #73341f; } -.notification#actualizeProgress { - line-height: 2em; -} .notification#actualizeProgress br { display: none; } diff --git a/p/themes/Ansum/ansum.rtl.css b/p/themes/Ansum/ansum.rtl.css index a4d0e32b5..261017071 100644 --- a/p/themes/Ansum/ansum.rtl.css +++ b/p/themes/Ansum/ansum.rtl.css @@ -951,9 +951,7 @@ main.prompt { color: #fff; } .notification a.close { - padding: 0 15px; border-radius: 3px 0 0 3px; - line-height: 3em; } .notification.good a.close:hover { background: #0c7556; @@ -961,9 +959,6 @@ main.prompt { .notification.bad a.close:hover { background: #73341f; } -.notification#actualizeProgress { - line-height: 2em; -} .notification#actualizeProgress br { display: none; } diff --git a/p/themes/BlueLagoon/BlueLagoon.css b/p/themes/BlueLagoon/BlueLagoon.css index caf81bb51..21a0f0352 100644 --- a/p/themes/BlueLagoon/BlueLagoon.css +++ b/p/themes/BlueLagoon/BlueLagoon.css @@ -950,11 +950,6 @@ a.btn { color: #eb2901; } -.notification a.close { - padding: 0 15px; - line-height: 3em; -} - .notification a.close:hover { background: rgba(255,255,255,0.2); } @@ -963,10 +958,6 @@ a.btn { filter: brightness(2); } -.notification#actualizeProgress { - line-height: 2em; -} - /*=== "Load more" part */ #bigMarkAsRead { background: #f9f7f4; diff --git a/p/themes/BlueLagoon/BlueLagoon.rtl.css b/p/themes/BlueLagoon/BlueLagoon.rtl.css index f4c4e0d84..6f081f80a 100644 --- a/p/themes/BlueLagoon/BlueLagoon.rtl.css +++ b/p/themes/BlueLagoon/BlueLagoon.rtl.css @@ -950,11 +950,6 @@ a.btn { color: #eb2901; } -.notification a.close { - padding: 0 15px; - line-height: 3em; -} - .notification a.close:hover { background: rgba(255,255,255,0.2); } @@ -963,10 +958,6 @@ a.btn { filter: brightness(2); } -.notification#actualizeProgress { - line-height: 2em; -} - /*=== "Load more" part */ #bigMarkAsRead { background: #f9f7f4; diff --git a/p/themes/Dark/dark.css b/p/themes/Dark/dark.css index c0a5fa507..89e9e007c 100644 --- a/p/themes/Dark/dark.css +++ b/p/themes/Dark/dark.css @@ -841,11 +841,6 @@ a.btn { color: #a44; } -.notification a.close { - padding: 0 15px; - line-height: 3em; -} - .notification a.close:hover { background: #222; border-radius: 0 3px 3px 0; @@ -859,10 +854,6 @@ a.btn { background: #a44; } -.notification#actualizeProgress { - line-height: 2em; -} - /*=== "Load more" part */ #bigMarkAsRead { text-align: center; diff --git a/p/themes/Dark/dark.rtl.css b/p/themes/Dark/dark.rtl.css index 82ec53464..b7d70c2bd 100644 --- a/p/themes/Dark/dark.rtl.css +++ b/p/themes/Dark/dark.rtl.css @@ -841,11 +841,6 @@ a.btn { color: #a44; } -.notification a.close { - padding: 0 15px; - line-height: 3em; -} - .notification a.close:hover { background: #222; border-radius: 3px 0 0 3px; @@ -859,10 +854,6 @@ a.btn { background: #a44; } -.notification#actualizeProgress { - line-height: 2em; -} - /*=== "Load more" part */ #bigMarkAsRead { text-align: center; diff --git a/p/themes/Flat/flat.css b/p/themes/Flat/flat.css index 2f0362b9d..5982f7003 100644 --- a/p/themes/Flat/flat.css +++ b/p/themes/Flat/flat.css @@ -863,8 +863,6 @@ a.btn { } .notification a.close { - padding: 0 15px; - line-height: 3em; border-radius: 0 3px 3px 0; } @@ -876,10 +874,6 @@ a.btn { background: #c0392b; } -.notification#actualizeProgress { - line-height: 2em; -} - /*=== "Load more" part */ #bigMarkAsRead { text-align: center; diff --git a/p/themes/Flat/flat.rtl.css b/p/themes/Flat/flat.rtl.css index 63d0103c4..fa802c438 100644 --- a/p/themes/Flat/flat.rtl.css +++ b/p/themes/Flat/flat.rtl.css @@ -863,8 +863,6 @@ a.btn { } .notification a.close { - padding: 0 15px; - line-height: 3em; border-radius: 3px 0 0 3px; } @@ -876,10 +874,6 @@ a.btn { background: #c0392b; } -.notification#actualizeProgress { - line-height: 2em; -} - /*=== "Load more" part */ #bigMarkAsRead { text-align: center; diff --git a/p/themes/Mapco/_layout.scss b/p/themes/Mapco/_layout.scss index a4aaf6fa8..b1cae52f1 100644 --- a/p/themes/Mapco/_layout.scss +++ b/p/themes/Mapco/_layout.scss @@ -366,9 +366,7 @@ main.prompt { } a.close { - padding: 0 15px; border-radius: 0 3px 3px 0; - line-height: 3em; } &.good a.close:hover { @@ -380,8 +378,6 @@ main.prompt { } &#actualizeProgress { - line-height: 2em; - br { display: none; } diff --git a/p/themes/Mapco/mapco.css b/p/themes/Mapco/mapco.css index 028c12e12..b7fe16011 100644 --- a/p/themes/Mapco/mapco.css +++ b/p/themes/Mapco/mapco.css @@ -969,9 +969,7 @@ main.prompt { color: #fff; } .notification a.close { - padding: 0 15px; border-radius: 0 3px 3px 0; - line-height: 3em; } .notification.good a.close:hover { background: #0c7540; @@ -979,9 +977,6 @@ main.prompt { .notification.bad a.close:hover { background: #73341f; } -.notification#actualizeProgress { - line-height: 2em; -} .notification#actualizeProgress br { display: none; } diff --git a/p/themes/Mapco/mapco.rtl.css b/p/themes/Mapco/mapco.rtl.css index 21cc44222..04efbb47d 100644 --- a/p/themes/Mapco/mapco.rtl.css +++ b/p/themes/Mapco/mapco.rtl.css @@ -969,9 +969,7 @@ main.prompt { color: #fff; } .notification a.close { - padding: 0 15px; border-radius: 3px 0 0 3px; - line-height: 3em; } .notification.good a.close:hover { background: #0c7540; @@ -979,9 +977,6 @@ main.prompt { .notification.bad a.close:hover { background: #73341f; } -.notification#actualizeProgress { - line-height: 2em; -} .notification#actualizeProgress br { display: none; } diff --git a/p/themes/Nord/nord.css b/p/themes/Nord/nord.css index 9de1f0189..65d2f8bea 100644 --- a/p/themes/Nord/nord.css +++ b/p/themes/Nord/nord.css @@ -664,16 +664,6 @@ li.item.active { vertical-align: middle; } - -.notification a.close { - padding: 0 15px; - line-height: 3em; -} - -.notification#actualizeProgress { - line-height: 2em; -} - .notification.closed { opacity: 0; visibility: hidden; diff --git a/p/themes/Nord/nord.rtl.css b/p/themes/Nord/nord.rtl.css index 52bdd752d..570b77d62 100644 --- a/p/themes/Nord/nord.rtl.css +++ b/p/themes/Nord/nord.rtl.css @@ -664,16 +664,6 @@ li.item.active { vertical-align: middle; } - -.notification a.close { - padding: 0 15px; - line-height: 3em; -} - -.notification#actualizeProgress { - line-height: 2em; -} - .notification.closed { opacity: 0; visibility: hidden; diff --git a/p/themes/Origine/origine.css b/p/themes/Origine/origine.css index a53055a75..e4d91099b 100644 --- a/p/themes/Origine/origine.css +++ b/p/themes/Origine/origine.css @@ -955,15 +955,6 @@ a:hover .icon { border: 1px solid var(--notification-bad-border-color); } -.notification a.close { - padding: 0 15px; - line-height: 3; -} - -.notification a.close:hover .icon { - filter: brightness(0.5); -} - .notification.good a.close:hover { background-color: var(--notification-close-background-color-hover); } @@ -973,7 +964,7 @@ a:hover .icon { } .notification#actualizeProgress { - line-height: 2; + line-height: 2em; } /*=== "Load more" part */ diff --git a/p/themes/Origine/origine.rtl.css b/p/themes/Origine/origine.rtl.css index 377ff9823..d26c17bdb 100644 --- a/p/themes/Origine/origine.rtl.css +++ b/p/themes/Origine/origine.rtl.css @@ -955,15 +955,6 @@ a:hover .icon { border: 1px solid var(--notification-bad-border-color); } -.notification a.close { - padding: 0 15px; - line-height: 3; -} - -.notification a.close:hover .icon { - filter: brightness(0.5); -} - .notification.good a.close:hover { background-color: var(--notification-close-background-color-hover); } @@ -973,7 +964,7 @@ a:hover .icon { } .notification#actualizeProgress { - line-height: 2; + line-height: 2em; } /*=== "Load more" part */ diff --git a/p/themes/Pafat/pafat.css b/p/themes/Pafat/pafat.css index b513ba7ea..bf360127c 100644 --- a/p/themes/Pafat/pafat.css +++ b/p/themes/Pafat/pafat.css @@ -873,11 +873,6 @@ a.signin { border: 1px solid #ecc; } -.notification a.close { - padding: 0 15px; - line-height: 3; -} - .notification.good a.close:hover { background: #eeb; } @@ -886,10 +881,6 @@ a.signin { background: #ecc; } -.notification#actualizeProgress { - line-height: 2; -} - /*=== "Load more" part */ #bigMarkAsRead { background: #fafafa; diff --git a/p/themes/Pafat/pafat.rtl.css b/p/themes/Pafat/pafat.rtl.css index 7d5ae91c7..e11c9ab81 100644 --- a/p/themes/Pafat/pafat.rtl.css +++ b/p/themes/Pafat/pafat.rtl.css @@ -873,11 +873,6 @@ a.signin { border: 1px solid #ecc; } -.notification a.close { - padding: 0 15px; - line-height: 3; -} - .notification.good a.close:hover { background: #eeb; } @@ -886,10 +881,6 @@ a.signin { background: #ecc; } -.notification#actualizeProgress { - line-height: 2; -} - /*=== "Load more" part */ #bigMarkAsRead { background: #fafafa; diff --git a/p/themes/Screwdriver/screwdriver.css b/p/themes/Screwdriver/screwdriver.css index 3829c787b..84c3b4c38 100644 --- a/p/themes/Screwdriver/screwdriver.css +++ b/p/themes/Screwdriver/screwdriver.css @@ -929,15 +929,6 @@ a.btn { color: #844; } -.notification a.close { - padding: 0 15px; - line-height: 3em; -} - -.notification#actualizeProgress { - line-height: 2em; -} - /*=== "Load more" part */ #bigMarkAsRead { background: #ede7de; diff --git a/p/themes/Screwdriver/screwdriver.rtl.css b/p/themes/Screwdriver/screwdriver.rtl.css index 7d745560d..cff62199f 100644 --- a/p/themes/Screwdriver/screwdriver.rtl.css +++ b/p/themes/Screwdriver/screwdriver.rtl.css @@ -929,15 +929,6 @@ a.btn { color: #844; } -.notification a.close { - padding: 0 15px; - line-height: 3em; -} - -.notification#actualizeProgress { - line-height: 2em; -} - /*=== "Load more" part */ #bigMarkAsRead { background: #ede7de; diff --git a/p/themes/Swage/swage.css b/p/themes/Swage/swage.css index 1c438f4a1..44a986bb9 100644 --- a/p/themes/Swage/swage.css +++ b/p/themes/Swage/swage.css @@ -825,9 +825,6 @@ form th { .notification.bad a.close:hover { background-color: var(--color-background-bad); } -.notification#actualizeProgress { - line-height: 2; -} .notification a.close { display: none; } diff --git a/p/themes/Swage/swage.rtl.css b/p/themes/Swage/swage.rtl.css index 0c3e52d20..24b0bbcfb 100644 --- a/p/themes/Swage/swage.rtl.css +++ b/p/themes/Swage/swage.rtl.css @@ -825,9 +825,6 @@ form th { .notification.bad a.close:hover { background-color: var(--color-background-bad); } -.notification#actualizeProgress { - line-height: 2; -} .notification a.close { display: none; } diff --git a/p/themes/Swage/swage.scss b/p/themes/Swage/swage.scss index 8f61015c5..f3ec8cf5c 100644 --- a/p/themes/Swage/swage.scss +++ b/p/themes/Swage/swage.scss @@ -1061,10 +1061,6 @@ form { } } - &#actualizeProgress { - line-height: 2; - } - a.close { display: none; } diff --git a/p/themes/base-theme/base.css b/p/themes/base-theme/base.css index 22bc5a5e7..9f2e23a9c 100644 --- a/p/themes/base-theme/base.css +++ b/p/themes/base-theme/base.css @@ -658,13 +658,6 @@ a.btn { /*=== Notification and actualize notification */ .notification { - padding: 0 0 0 5px; - text-align: center; - font-weight: bold; - font-size: 0.9em; - line-height: 3; - z-index: 10; - vertical-align: middle; } .notification.good { @@ -673,21 +666,12 @@ a.btn { .notification.bad { } -.notification a.close { - padding: 0 15px; - line-height: 3; -} - .notification.good a.close:hover { } .notification.bad a.close:hover { } -.notification#actualizeProgress { - line-height: 2; -} - /*=== "Load more" part */ #bigMarkAsRead { text-align: center; diff --git a/p/themes/base-theme/base.rtl.css b/p/themes/base-theme/base.rtl.css index d03906a90..da9d401a9 100644 --- a/p/themes/base-theme/base.rtl.css +++ b/p/themes/base-theme/base.rtl.css @@ -658,13 +658,6 @@ a.btn { /*=== Notification and actualize notification */ .notification { - padding: 0 5px 0 0; - text-align: center; - font-weight: bold; - font-size: 0.9em; - line-height: 3; - z-index: 10; - vertical-align: middle; } .notification.good { @@ -673,21 +666,12 @@ a.btn { .notification.bad { } -.notification a.close { - padding: 0 15px; - line-height: 3; -} - .notification.good a.close:hover { } .notification.bad a.close:hover { } -.notification#actualizeProgress { - line-height: 2; -} - /*=== "Load more" part */ #bigMarkAsRead { text-align: center; diff --git a/p/themes/base-theme/frss.css b/p/themes/base-theme/frss.css index 6367e60f5..1186457b3 100644 --- a/p/themes/base-theme/frss.css +++ b/p/themes/base-theme/frss.css @@ -1373,15 +1373,19 @@ a.website:hover .favicon { /*=== Notification and actualize notification */ .notification { - padding: 10px 50px 10px 10px; + padding: 0.75rem 3.5rem 0.75rem 0.75rem; position: absolute; - top: 1em; + top: 1rem; left: 25%; right: 25%; z-index: 9999; background-color: var(--frss-background-color); + font-weight: bold; + font-size: 0.9rem; border: 1px solid var(--frss-border-color); opacity: 1; + text-align: center; line-height: 2; + vertical-align: middle; visibility: visible; transition: visibility 0s, opacity .3s linear; } @@ -1392,10 +1396,12 @@ a.website:hover .favicon { } .notification a.close { + padding: 0 1rem; position: absolute; top: 0; bottom: 0; right: 0; display: inline-block; + line-height: 3; } .notification a.close:hover { diff --git a/p/themes/base-theme/frss.rtl.css b/p/themes/base-theme/frss.rtl.css index 73dc4f83d..30a9c3e6c 100644 --- a/p/themes/base-theme/frss.rtl.css +++ b/p/themes/base-theme/frss.rtl.css @@ -1373,15 +1373,19 @@ a.website:hover .favicon { /*=== Notification and actualize notification */ .notification { - padding: 10px 10px 10px 50px; + padding: 0.75rem 0.75rem 0.75rem 3.5rem; position: absolute; - top: 1em; + top: 1rem; right: 25%; left: 25%; z-index: 9999; background-color: var(--frss-background-color); + font-weight: bold; + font-size: 0.9rem; border: 1px solid var(--frss-border-color); opacity: 1; + text-align: center; line-height: 2; + vertical-align: middle; visibility: visible; transition: visibility 0s, opacity .3s linear; } @@ -1392,10 +1396,12 @@ a.website:hover .favicon { } .notification a.close { + padding: 0 1rem; position: absolute; top: 0; bottom: 0; left: 0; display: inline-block; + line-height: 3; } .notification a.close:hover { -- cgit v1.2.3 From 42eeb402ad574236902e40d35d630fa15d29a985 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 15 Nov 2022 15:42:26 +0100 Subject: Fix type hints regressions (#4855) Fix regressions from https://github.com/FreshRSS/FreshRSS/pull/4561 Example: ``` PHP Fatal error: Uncaught TypeError: Argument 1 passed to checkToken() must be an instance of FreshRSS_UserConfiguration, instance of Minz_Configuration given, called in /var/www/FreshRSS/p/api/greader.php on line 1091 and defined in /var/www/FreshRSS/p/api/greader.php:223 Stack trace: #0 /var/www/FreshRSS/p/api/greader.php(1091): checkToken() #1 {main} thrown in /var/www/FreshRSS/p/api/greader.php on line 223 ``` Improvement of https://github.com/FreshRSS/FreshRSS/pull/4110 --- app/Controllers/updateController.php | 2 +- app/Models/Context.php | 14 ++------------ app/Models/SystemConfiguration.php | 6 +++++- app/Models/UserConfiguration.php | 6 +++++- app/install.php | 8 ++------ app/layout/aside_configure.phtml | 6 +++--- app/layout/header.phtml | 2 +- lib/Minz/Configuration.php | 6 +++--- 8 files changed, 22 insertions(+), 28 deletions(-) diff --git a/app/Controllers/updateController.php b/app/Controllers/updateController.php index f1588c7e1..ae7d613a7 100644 --- a/app/Controllers/updateController.php +++ b/app/Controllers/updateController.php @@ -217,7 +217,7 @@ class FreshRSS_update_Controller extends FreshRSS_ActionController { } public function applyAction() { - if (Minz_Configuration::get('system')->disable_update || !file_exists(UPDATE_FILENAME) || !touch(FRESHRSS_PATH . '/index.html')) { + if (FreshRSS_Context::$system_conf->disable_update || !file_exists(UPDATE_FILENAME) || !touch(FRESHRSS_PATH . '/index.html')) { Minz_Request::forward(array('c' => 'update'), true); } diff --git a/app/Models/Context.php b/app/Models/Context.php index 152ecc4bf..0176e77fa 100644 --- a/app/Models/Context.php +++ b/app/Models/Context.php @@ -58,12 +58,7 @@ class FreshRSS_Context { public static function initSystem($reload = false) { if ($reload || FreshRSS_Context::$system_conf == null) { //TODO: Keep in session what we need instead of always reloading from disk - Minz_Configuration::register('system', DATA_PATH . '/config.php', FRESHRSS_PATH . '/config.default.php'); - /** - * @var FreshRSS_SystemConfiguration $system_conf - */ - $system_conf = Minz_Configuration::get('system'); - FreshRSS_Context::$system_conf = $system_conf; + FreshRSS_Context::$system_conf = FreshRSS_SystemConfiguration::init(DATA_PATH . '/config.php', FRESHRSS_PATH . '/config.default.php'); // Register the configuration setter for the system configuration $configurationSetter = new FreshRSS_ConfigurationSetter(); FreshRSS_Context::$system_conf->_configurationSetter($configurationSetter); @@ -88,17 +83,12 @@ class FreshRSS_Context { (!$userMustExist || FreshRSS_user_Controller::userExists($username))) { try { //TODO: Keep in session what we need instead of always reloading from disk - Minz_Configuration::register('user', + FreshRSS_Context::$user_conf = FreshRSS_UserConfiguration::init( USERS_PATH . '/' . $username . '/config.php', FRESHRSS_PATH . '/config-user.default.php', FreshRSS_Context::$system_conf->configurationSetter()); Minz_Session::_param('currentUser', $username); - /** - * @var FreshRSS_UserConfiguration $user_conf - */ - $user_conf = Minz_Configuration::get('user'); - FreshRSS_Context::$user_conf = $user_conf; } catch (Exception $ex) { Minz_Log::warning($ex->getMessage(), USERS_PATH . '/_/' . LOG_FILENAME); } diff --git a/app/Models/SystemConfiguration.php b/app/Models/SystemConfiguration.php index ec5960c0e..9fc79969d 100644 --- a/app/Models/SystemConfiguration.php +++ b/app/Models/SystemConfiguration.php @@ -25,6 +25,10 @@ * @property string $unsafe_autologin_enabled * @property-read array $trusted_sources */ -class FreshRSS_SystemConfiguration extends Minz_Configuration { +final class FreshRSS_SystemConfiguration extends Minz_Configuration { + public static function init($config_filename, $default_filename = null): FreshRSS_SystemConfiguration { + parent::register('system', $config_filename, $default_filename); + return parent::get('system'); + } } diff --git a/app/Models/UserConfiguration.php b/app/Models/UserConfiguration.php index 05c3c08ac..b8b023d79 100644 --- a/app/Models/UserConfiguration.php +++ b/app/Models/UserConfiguration.php @@ -66,6 +66,10 @@ * @property string $view_mode * @property array $volatile */ -class FreshRSS_UserConfiguration extends Minz_Configuration { +final class FreshRSS_UserConfiguration extends Minz_Configuration { + public static function init($config_filename, $default_filename = null, $configuration_setter = null): FreshRSS_UserConfiguration { + parent::register('user', $config_filename, $default_filename, $configuration_setter); + return parent::get('user'); + } } diff --git a/app/install.php b/app/install.php index 9d0d855b8..48f39d25e 100644 --- a/app/install.php +++ b/app/install.php @@ -283,11 +283,7 @@ function freshrss_already_installed() { // A configuration file already exists, we try to load it. $system_conf = null; try { - Minz_Configuration::register('system', $conf_path); - /** - * @var FreshRSS_SystemConfiguration $system_conf - */ - $system_conf = Minz_Configuration::get('system'); + $system_conf = FreshRSS_SystemConfiguration::init($conf_path); } catch (Minz_FileNotExistException $e) { return false; } @@ -295,7 +291,7 @@ function freshrss_already_installed() { // ok, the global conf exists… but what about default user conf? $current_user = $system_conf->default_user; try { - Minz_Configuration::register('user', join_path(USERS_PATH, $current_user, 'config.php')); + FreshRSS_UserConfiguration::init(USERS_PATH . '/' . $current_user . '/config.php'); } catch (Minz_FileNotExistException $e) { return false; } diff --git a/app/layout/aside_configure.phtml b/app/layout/aside_configure.phtml index 5f1762834..f4a05a47c 100644 --- a/app/layout/aside_configure.phtml +++ b/app/layout/aside_configure.phtml @@ -1,8 +1,8 @@