aboutsummaryrefslogtreecommitdiff
path: root/app/Models/ConfigurationSetter.php
blob: e30cb0187b97806c0e24b8de4a5bce3ea3a7a988 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?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;
	}
}