mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-02-19 07:16:50 -05:00
We are blocked if a setter has to update several values. ConfigurationSetter will be updated. See https://github.com/FreshRSS/FreshRSS/issues/730
38 lines
783 B
PHP
38 lines
783 B
PHP
<?php
|
|
|
|
class FreshRSS_ConfigurationSetter {
|
|
private $setters = array(
|
|
'language' => '_language',
|
|
'posts_per_page' => '_posts_per_page',
|
|
'view_mode' => '_view_mode',
|
|
);
|
|
|
|
public function handle($key, $value) {
|
|
if (isset($this->setters[$key])) {
|
|
$value = call_user_func(array($this, $this->setters[$key]), $value);
|
|
}
|
|
return $value;
|
|
}
|
|
|
|
private function _language($value) {
|
|
$languages = Minz_Translate::availableLanguages();
|
|
if (!isset($languages[$value])) {
|
|
$value = 'en';
|
|
}
|
|
|
|
return $value;
|
|
}
|
|
|
|
private function _posts_per_page($value) {
|
|
$value = intval($value);
|
|
return $value > 0 ? $value : 10;
|
|
}
|
|
|
|
private function _view_mode($value) {
|
|
if (!in_array($value, array('global', 'normal', 'reader'))) {
|
|
$value = 'normal';
|
|
}
|
|
return $value;
|
|
}
|
|
}
|