aboutsummaryrefslogtreecommitdiff
path: root/app/Controllers/configureController.php
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2023-12-18 17:59:16 +0100
committerGravatar GitHub <noreply@github.com> 2023-12-18 17:59:16 +0100
commita80a5f48a16e7d232168a7aaa68e9a1804235ce1 (patch)
treea515b88592629dea7e83b96e26e2452d3f98a98e /app/Controllers/configureController.php
parent6bb45a87268157aab961a6a4a728d9a9bbe043b0 (diff)
Pass PHPStan level 8 (#5946)
* Pass PHPStan level 8 And prepare for PHPStan level 9 https://phpstan.org/user-guide/rule-levels * Revert wrong replace in comment * Fix PHPStan level 8 * Update PHPStan and other dev dependencies * Remove obsolete comment * noVariableVariables and towards bleedingEdge https://github.com/phpstan/phpstan-strict-rules https://phpstan.org/blog/what-is-bleeding-edge * More bleedingEdge * A bit more PHPStan level 9 * More PHPStan level 9 * Prepare for booleansInConditions Ignore int and null * Revert wrong line * More fixes * Fix keep_max_n_unread * Stricter attribute functions * Stricter callHooks and more PHPStan level 9 * More typing * A tiny more
Diffstat (limited to 'app/Controllers/configureController.php')
-rw-r--r--app/Controllers/configureController.php171
1 files changed, 87 insertions, 84 deletions
diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php
index d7c087620..c52a5d23c 100644
--- a/app/Controllers/configureController.php
+++ b/app/Controllers/configureController.php
@@ -44,32 +44,32 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
*/
public function displayAction(): void {
if (Minz_Request::isPost()) {
- FreshRSS_Context::$user_conf->language = Minz_Request::paramString('language') ?: 'en';
- FreshRSS_Context::$user_conf->timezone = Minz_Request::paramString('timezone');
- FreshRSS_Context::$user_conf->theme = Minz_Request::paramString('theme') ?: FreshRSS_Themes::$defaultTheme;
- FreshRSS_Context::$user_conf->darkMode = Minz_Request::paramString('darkMode') ?: 'no';
- FreshRSS_Context::$user_conf->content_width = Minz_Request::paramString('content_width') ?: 'thin';
- FreshRSS_Context::$user_conf->topline_read = Minz_Request::paramBoolean('topline_read');
- FreshRSS_Context::$user_conf->topline_favorite = Minz_Request::paramBoolean('topline_favorite');
- FreshRSS_Context::$user_conf->topline_date = Minz_Request::paramBoolean('topline_date');
- FreshRSS_Context::$user_conf->topline_link = Minz_Request::paramBoolean('topline_link');
- FreshRSS_Context::$user_conf->topline_website = Minz_Request::paramString('topline_website');
- FreshRSS_Context::$user_conf->topline_thumbnail = Minz_Request::paramString('topline_thumbnail');
- FreshRSS_Context::$user_conf->topline_summary = Minz_Request::paramBoolean('topline_summary');
- FreshRSS_Context::$user_conf->topline_display_authors = Minz_Request::paramBoolean('topline_display_authors');
- FreshRSS_Context::$user_conf->bottomline_read = Minz_Request::paramBoolean('bottomline_read');
- FreshRSS_Context::$user_conf->bottomline_favorite = Minz_Request::paramBoolean('bottomline_favorite');
- FreshRSS_Context::$user_conf->bottomline_sharing = Minz_Request::paramBoolean('bottomline_sharing');
- FreshRSS_Context::$user_conf->bottomline_tags = Minz_Request::paramBoolean('bottomline_tags');
- FreshRSS_Context::$user_conf->bottomline_myLabels = Minz_Request::paramBoolean('bottomline_myLabels');
- FreshRSS_Context::$user_conf->bottomline_date = Minz_Request::paramBoolean('bottomline_date');
- FreshRSS_Context::$user_conf->bottomline_link = Minz_Request::paramBoolean('bottomline_link');
- FreshRSS_Context::$user_conf->show_nav_buttons = Minz_Request::paramBoolean('show_nav_buttons');
- FreshRSS_Context::$user_conf->html5_notif_timeout = Minz_Request::paramInt('html5_notif_timeout');
- FreshRSS_Context::$user_conf->save();
-
- Minz_Session::_param('language', FreshRSS_Context::$user_conf->language);
- Minz_Translate::reset(FreshRSS_Context::$user_conf->language);
+ FreshRSS_Context::userConf()->language = Minz_Request::paramString('language') ?: 'en';
+ FreshRSS_Context::userConf()->timezone = Minz_Request::paramString('timezone');
+ FreshRSS_Context::userConf()->theme = Minz_Request::paramString('theme') ?: FreshRSS_Themes::$defaultTheme;
+ FreshRSS_Context::userConf()->darkMode = Minz_Request::paramString('darkMode') ?: 'no';
+ FreshRSS_Context::userConf()->content_width = Minz_Request::paramString('content_width') ?: 'thin';
+ FreshRSS_Context::userConf()->topline_read = Minz_Request::paramBoolean('topline_read');
+ FreshRSS_Context::userConf()->topline_favorite = Minz_Request::paramBoolean('topline_favorite');
+ FreshRSS_Context::userConf()->topline_date = Minz_Request::paramBoolean('topline_date');
+ FreshRSS_Context::userConf()->topline_link = Minz_Request::paramBoolean('topline_link');
+ FreshRSS_Context::userConf()->topline_website = Minz_Request::paramString('topline_website');
+ FreshRSS_Context::userConf()->topline_thumbnail = Minz_Request::paramString('topline_thumbnail');
+ FreshRSS_Context::userConf()->topline_summary = Minz_Request::paramBoolean('topline_summary');
+ FreshRSS_Context::userConf()->topline_display_authors = Minz_Request::paramBoolean('topline_display_authors');
+ FreshRSS_Context::userConf()->bottomline_read = Minz_Request::paramBoolean('bottomline_read');
+ FreshRSS_Context::userConf()->bottomline_favorite = Minz_Request::paramBoolean('bottomline_favorite');
+ FreshRSS_Context::userConf()->bottomline_sharing = Minz_Request::paramBoolean('bottomline_sharing');
+ FreshRSS_Context::userConf()->bottomline_tags = Minz_Request::paramBoolean('bottomline_tags');
+ FreshRSS_Context::userConf()->bottomline_myLabels = Minz_Request::paramBoolean('bottomline_myLabels');
+ FreshRSS_Context::userConf()->bottomline_date = Minz_Request::paramBoolean('bottomline_date');
+ FreshRSS_Context::userConf()->bottomline_link = Minz_Request::paramBoolean('bottomline_link');
+ FreshRSS_Context::userConf()->show_nav_buttons = Minz_Request::paramBoolean('show_nav_buttons');
+ FreshRSS_Context::userConf()->html5_notif_timeout = Minz_Request::paramInt('html5_notif_timeout');
+ FreshRSS_Context::userConf()->save();
+
+ Minz_Session::_param('language', FreshRSS_Context::userConf()->language);
+ Minz_Translate::reset(FreshRSS_Context::userConf()->language);
invalidateHttpCache();
Minz_Request::good(_t('feedback.conf.updated'), [ 'c' => 'configure', 'a' => 'display' ]);
@@ -111,27 +111,31 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
*/
public function readingAction(): void {
if (Minz_Request::isPost()) {
- FreshRSS_Context::$user_conf->posts_per_page = Minz_Request::paramInt('posts_per_page') ?: 10;
- FreshRSS_Context::$user_conf->view_mode = Minz_Request::paramString('view_mode', true) ?: 'normal';
- FreshRSS_Context::$user_conf->default_view = Minz_Request::paramString('default_view') ?: 'adaptive';
- FreshRSS_Context::$user_conf->show_fav_unread = Minz_Request::paramBoolean('show_fav_unread');
- FreshRSS_Context::$user_conf->auto_load_more = Minz_Request::paramBoolean('auto_load_more');
- FreshRSS_Context::$user_conf->display_posts = Minz_Request::paramBoolean('display_posts');
- FreshRSS_Context::$user_conf->display_categories = Minz_Request::paramString('display_categories') ?: 'active';
- FreshRSS_Context::$user_conf->show_tags = Minz_Request::paramString('show_tags') ?: '0';
- FreshRSS_Context::$user_conf->show_tags_max = Minz_Request::paramInt('show_tags_max');
- FreshRSS_Context::$user_conf->show_author_date = Minz_Request::paramString('show_author_date') ?: '0';
- FreshRSS_Context::$user_conf->show_feed_name = Minz_Request::paramString('show_feed_name') ?: 't';
- FreshRSS_Context::$user_conf->hide_read_feeds = Minz_Request::paramBoolean('hide_read_feeds');
- FreshRSS_Context::$user_conf->onread_jump_next = Minz_Request::paramBoolean('onread_jump_next');
- FreshRSS_Context::$user_conf->lazyload = Minz_Request::paramBoolean('lazyload');
- FreshRSS_Context::$user_conf->sides_close_article = Minz_Request::paramBoolean('sides_close_article');
- FreshRSS_Context::$user_conf->sticky_post = Minz_Request::paramBoolean('sticky_post');
- FreshRSS_Context::$user_conf->reading_confirm = Minz_Request::paramBoolean('reading_confirm');
- FreshRSS_Context::$user_conf->auto_remove_article = Minz_Request::paramBoolean('auto_remove_article');
- FreshRSS_Context::$user_conf->mark_updated_article_unread = Minz_Request::paramBoolean('mark_updated_article_unread');
- FreshRSS_Context::$user_conf->sort_order = Minz_Request::paramString('sort_order') ?: 'DESC';
- FreshRSS_Context::$user_conf->mark_when = [
+ FreshRSS_Context::userConf()->posts_per_page = Minz_Request::paramInt('posts_per_page') ?: 10;
+ FreshRSS_Context::userConf()->view_mode = Minz_Request::paramString('view_mode', true) ?: 'normal';
+ FreshRSS_Context::userConf()->default_view = Minz_Request::paramString('default_view') ?: 'adaptive';
+ FreshRSS_Context::userConf()->show_fav_unread = Minz_Request::paramBoolean('show_fav_unread');
+ FreshRSS_Context::userConf()->auto_load_more = Minz_Request::paramBoolean('auto_load_more');
+ FreshRSS_Context::userConf()->display_posts = Minz_Request::paramBoolean('display_posts');
+ FreshRSS_Context::userConf()->display_categories = Minz_Request::paramString('display_categories') ?: 'active';
+ FreshRSS_Context::userConf()->show_tags = Minz_Request::paramString('show_tags') ?: '0';
+ FreshRSS_Context::userConf()->show_tags_max = Minz_Request::paramInt('show_tags_max');
+ FreshRSS_Context::userConf()->show_author_date = Minz_Request::paramString('show_author_date') ?: '0';
+ FreshRSS_Context::userConf()->show_feed_name = Minz_Request::paramString('show_feed_name') ?: 't';
+ FreshRSS_Context::userConf()->hide_read_feeds = Minz_Request::paramBoolean('hide_read_feeds');
+ FreshRSS_Context::userConf()->onread_jump_next = Minz_Request::paramBoolean('onread_jump_next');
+ FreshRSS_Context::userConf()->lazyload = Minz_Request::paramBoolean('lazyload');
+ FreshRSS_Context::userConf()->sides_close_article = Minz_Request::paramBoolean('sides_close_article');
+ FreshRSS_Context::userConf()->sticky_post = Minz_Request::paramBoolean('sticky_post');
+ FreshRSS_Context::userConf()->reading_confirm = Minz_Request::paramBoolean('reading_confirm');
+ FreshRSS_Context::userConf()->auto_remove_article = Minz_Request::paramBoolean('auto_remove_article');
+ FreshRSS_Context::userConf()->mark_updated_article_unread = Minz_Request::paramBoolean('mark_updated_article_unread');
+ if (in_array(Minz_Request::paramString('sort_order'), ['ASC', 'DESC'], true)) {
+ FreshRSS_Context::userConf()->sort_order = Minz_Request::paramString('sort_order');
+ } else {
+ FreshRSS_Context::userConf()->sort_order = 'DESC';
+ }
+ FreshRSS_Context::userConf()->mark_when = [
'article' => Minz_Request::paramBoolean('mark_open_article'),
'gone' => Minz_Request::paramBoolean('read_upon_gone'),
'max_n_unread' => Minz_Request::paramBoolean('enable_keep_max_n_unread') ? Minz_Request::paramInt('keep_max_n_unread') : false,
@@ -142,8 +146,8 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
'site' => Minz_Request::paramBoolean('mark_open_site'),
'focus' => Minz_Request::paramBoolean('mark_focus'),
];
- FreshRSS_Context::$user_conf->_filtersAction('read', Minz_Request::paramTextToArray('filteractions_read'));
- FreshRSS_Context::$user_conf->save();
+ FreshRSS_Context::userConf()->_filtersAction('read', Minz_Request::paramTextToArray('filteractions_read'));
+ FreshRSS_Context::userConf()->save();
invalidateHttpCache();
Minz_Request::good(_t('feedback.conf.updated'), [ 'c' => 'configure', 'a' => 'reading' ]);
@@ -168,8 +172,8 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
if (Minz_Request::isPost()) {
$params = $_POST;
- FreshRSS_Context::$user_conf->sharing = $params['share'];
- FreshRSS_Context::$user_conf->save();
+ FreshRSS_Context::userConf()->sharing = $params['share'];
+ FreshRSS_Context::userConf()->save();
invalidateHttpCache();
Minz_Request::good(_t('feedback.conf.updated'), [ 'c' => 'configure', 'a' => 'integration' ]);
@@ -199,8 +203,8 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
$default = Minz_Configuration::load(FRESHRSS_PATH . '/config-user.default.php');
$shortcuts = $default['shortcuts'];
}
- FreshRSS_Context::$user_conf->shortcuts = array_map('trim', $shortcuts);
- FreshRSS_Context::$user_conf->save();
+ FreshRSS_Context::userConf()->shortcuts = array_map('trim', $shortcuts);
+ FreshRSS_Context::userConf()->save();
invalidateHttpCache();
Minz_Request::good(_t('feedback.conf.shortcuts_updated'), ['c' => 'configure', 'a' => 'shortcut']);
@@ -237,8 +241,8 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
$keepPeriod = false;
}
- FreshRSS_Context::$user_conf->ttl_default = Minz_Request::paramInt('ttl_default') ?: FreshRSS_Feed::TTL_DEFAULT;
- FreshRSS_Context::$user_conf->archiving = [
+ FreshRSS_Context::userConf()->ttl_default = Minz_Request::paramInt('ttl_default') ?: FreshRSS_Feed::TTL_DEFAULT;
+ FreshRSS_Context::userConf()->archiving = [
'keep_period' => $keepPeriod,
'keep_max' => $keepMax,
'keep_min' => Minz_Request::paramInt('keep_min_default'),
@@ -246,9 +250,9 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
'keep_labels' => Minz_Request::paramBoolean('keep_labels'),
'keep_unreads' => Minz_Request::paramBoolean('keep_unreads'),
];
- FreshRSS_Context::$user_conf->keep_history_default = null; //Legacy < FreshRSS 1.15
- FreshRSS_Context::$user_conf->old_entries = null; //Legacy < FreshRSS 1.15
- FreshRSS_Context::$user_conf->save();
+ FreshRSS_Context::userConf()->keep_history_default = null; //Legacy < FreshRSS 1.15
+ FreshRSS_Context::userConf()->old_entries = null; //Legacy < FreshRSS 1.15
+ FreshRSS_Context::userConf()->save();
invalidateHttpCache();
Minz_Request::good(_t('feedback.conf.updated'), [ 'c' => 'configure', 'a' => 'archiving' ]);
@@ -259,8 +263,8 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
'keep_period_count' => '3',
'keep_period_unit' => 'P1M',
];
- if (!empty(FreshRSS_Context::$user_conf->archiving['keep_period'])) {
- $keepPeriod = FreshRSS_Context::$user_conf->archiving['keep_period'];
+ if (!empty(FreshRSS_Context::userConf()->archiving['keep_period'])) {
+ $keepPeriod = FreshRSS_Context::userConf()->archiving['keep_period'];
if (preg_match('/^PT?(?P<count>\d+)[YMWDH]$/', $keepPeriod, $matches)) {
$volatile = [
'enable_keep_period' => true,
@@ -269,7 +273,7 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
];
}
}
- FreshRSS_Context::$user_conf->volatile = $volatile;
+ FreshRSS_Context::userConf()->volatile = $volatile;
$entryDAO = FreshRSS_Factory::createEntryDao();
$this->view->nb_total = $entryDAO->count();
@@ -316,13 +320,13 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
}
$queries[$key] = (new FreshRSS_UserQuery($query, $feed_dao, $category_dao, $tag_dao))->toArray();
}
- FreshRSS_Context::$user_conf->queries = $queries;
- FreshRSS_Context::$user_conf->save();
+ FreshRSS_Context::userConf()->queries = $queries;
+ FreshRSS_Context::userConf()->save();
Minz_Request::good(_t('feedback.conf.updated'), [ 'c' => 'configure', 'a' => 'queries' ]);
} else {
$this->view->queries = [];
- foreach (FreshRSS_Context::$user_conf->queries as $key => $query) {
+ foreach (FreshRSS_Context::userConf()->queries as $key => $query) {
$this->view->queries[intval($key)] = new FreshRSS_UserQuery($query, $feed_dao, $category_dao, $tag_dao);
}
}
@@ -354,7 +358,7 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
}
$id = Minz_Request::paramInt('id');
- if (Minz_Request::paramTernary('id') === null || empty(FreshRSS_Context::$user_conf->queries[$id])) {
+ if (Minz_Request::paramTernary('id') === null || empty(FreshRSS_Context::userConf()->queries[$id])) {
Minz_Error::error(404);
return;
}
@@ -363,7 +367,7 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
$feed_dao = FreshRSS_Factory::createFeedDao();
$tag_dao = FreshRSS_Factory::createTagDao();
- $query = new FreshRSS_UserQuery(FreshRSS_Context::$user_conf->queries[$id], $feed_dao, $category_dao, $tag_dao);
+ $query = new FreshRSS_UserQuery(FreshRSS_Context::userConf()->queries[$id], $feed_dao, $category_dao, $tag_dao);
$this->view->query = $query;
$this->view->queryId = $id;
$this->view->categories = $category_dao->listCategories(false) ?: [];
@@ -371,7 +375,6 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
$this->view->tags = $tag_dao->listTags() ?: [];
if (Minz_Request::isPost()) {
- /** @var array<string,string|array<string,string>> $params */
$params = array_filter(Minz_Request::paramArray('query'));
$queryParams = [];
if (!empty($params['get']) && is_string($params['get'])) {
@@ -393,10 +396,10 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
$queryParams['name'] = $name;
$queryParams['url'] = Minz_Url::display(['params' => $queryParams]);
- $queries = FreshRSS_Context::$user_conf->queries;
+ $queries = FreshRSS_Context::userConf()->queries;
$queries[$id] = (new FreshRSS_UserQuery($queryParams, $feed_dao, $category_dao, $tag_dao))->toArray();
- FreshRSS_Context::$user_conf->queries = $queries;
- FreshRSS_Context::$user_conf->save();
+ FreshRSS_Context::userConf()->queries = $queries;
+ FreshRSS_Context::userConf()->save();
Minz_Request::good(_t('feedback.conf.updated'), [ 'c' => 'configure', 'a' => 'queries', 'params' => ['id' => (string)$id] ]);
}
@@ -409,15 +412,15 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
*/
public function deleteQueryAction(): void {
$id = Minz_Request::paramInt('id');
- if (Minz_Request::paramTernary('id') === null || empty(FreshRSS_Context::$user_conf->queries[$id])) {
+ if (Minz_Request::paramTernary('id') === null || empty(FreshRSS_Context::userConf()->queries[$id])) {
Minz_Error::error(404);
return;
}
- $queries = FreshRSS_Context::$user_conf->queries;
+ $queries = FreshRSS_Context::userConf()->queries;
unset($queries[$id]);
- FreshRSS_Context::$user_conf->queries = $queries;
- FreshRSS_Context::$user_conf->save();
+ FreshRSS_Context::userConf()->queries = $queries;
+ FreshRSS_Context::userConf()->save();
Minz_Request::good(_t('feedback.conf.updated'), [ 'c' => 'configure', 'a' => 'queries' ]);
}
@@ -434,7 +437,7 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
$feed_dao = FreshRSS_Factory::createFeedDao();
$tag_dao = FreshRSS_Factory::createTagDao();
$queries = [];
- foreach (FreshRSS_Context::$user_conf->queries as $key => $query) {
+ foreach (FreshRSS_Context::userConf()->queries as $key => $query) {
$queries[$key] = (new FreshRSS_UserQuery($query, $feed_dao, $category_dao, $tag_dao))->toArray();
}
$params = $_GET;
@@ -443,8 +446,8 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
$params['name'] = _t('conf.query.number', count($queries) + 1);
$queries[] = (new FreshRSS_UserQuery($params, $feed_dao, $category_dao, $tag_dao))->toArray();
- FreshRSS_Context::$user_conf->queries = $queries;
- FreshRSS_Context::$user_conf->save();
+ FreshRSS_Context::userConf()->queries = $queries;
+ FreshRSS_Context::userConf()->save();
Minz_Request::good(_t('feedback.conf.query_created', $params['name']), [ 'c' => 'configure', 'a' => 'queries' ]);
}
@@ -473,17 +476,17 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
}
if (Minz_Request::isPost()) {
- $limits = FreshRSS_Context::$system_conf->limits;
+ $limits = FreshRSS_Context::systemConf()->limits;
$limits['max_registrations'] = Minz_Request::paramInt('max-registrations') ?: 1;
$limits['max_feeds'] = Minz_Request::paramInt('max-feeds') ?: 16384;
$limits['max_categories'] = Minz_Request::paramInt('max-categories') ?: 16384;
$limits['cookie_duration'] = Minz_Request::paramInt('cookie-duration') ?: FreshRSS_Auth::DEFAULT_COOKIE_DURATION;
- FreshRSS_Context::$system_conf->limits = $limits;
- FreshRSS_Context::$system_conf->title = Minz_Request::paramString('instance-name') ?: 'FreshRSS';
- FreshRSS_Context::$system_conf->auto_update_url = Minz_Request::paramString('auto-update-url');
- FreshRSS_Context::$system_conf->force_email_validation = Minz_Request::paramBoolean('force-email-validation');
- FreshRSS_Context::$system_conf->base_url = Minz_Request::paramString('base-url');
- FreshRSS_Context::$system_conf->save();
+ FreshRSS_Context::systemConf()->limits = $limits;
+ FreshRSS_Context::systemConf()->title = Minz_Request::paramString('instance-name') ?: 'FreshRSS';
+ FreshRSS_Context::systemConf()->auto_update_url = Minz_Request::paramString('auto-update-url');
+ FreshRSS_Context::systemConf()->force_email_validation = Minz_Request::paramBoolean('force-email-validation');
+ FreshRSS_Context::systemConf()->base_url = Minz_Request::paramString('base-url');
+ FreshRSS_Context::systemConf()->save();
invalidateHttpCache();