summaryrefslogtreecommitdiff
path: root/app/Models/Themes.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Models/Themes.php')
-rw-r--r--app/Models/Themes.php28
1 files changed, 23 insertions, 5 deletions
diff --git a/app/Models/Themes.php b/app/Models/Themes.php
index a52812339..c7099a1df 100644
--- a/app/Models/Themes.php
+++ b/app/Models/Themes.php
@@ -3,13 +3,17 @@
class FreshRSS_Themes extends Minz_Model {
private static $themesUrl = '/themes/';
private static $defaultIconsUrl = '/themes/icons/';
+ public static $defaultTheme = 'Origine';
- public static function get() {
- $themes_list = array_diff(
+ public static function getList() {
+ return array_values(array_diff(
scandir(PUBLIC_PATH . self::$themesUrl),
array('..', '.')
- );
+ ));
+ }
+ public static function get() {
+ $themes_list = self::getList();
$list = array();
foreach ($themes_list as $theme_dir) {
$theme = self::get_infos($theme_dir);
@@ -28,7 +32,7 @@ class FreshRSS_Themes extends Minz_Model {
$content = file_get_contents($json_filename);
$res = json_decode($content, true);
if ($res && isset($res['files']) && is_array($res['files'])) {
- $res['path'] = $theme_id;
+ $res['id'] = $theme_id;
return $res;
}
}
@@ -39,12 +43,26 @@ class FreshRSS_Themes extends Minz_Model {
private static $themeIconsUrl;
private static $themeIcons;
- public static function setThemeId($theme_id) {
+ public static function load($theme_id) {
+ $infos = self::get_infos($theme_id);
+ if (!$infos) {
+ if ($theme_id !== self::$defaultTheme) { //Fall-back to default theme
+ return self::load(self::$defaultTheme);
+ }
+ $themes_list = self::getList();
+ if (!empty($themes_list)) {
+ if ($theme_id !== $themes_list[0]) { //Fall-back to first theme
+ return self::load($themes_list[0]);
+ }
+ }
+ return false;
+ }
self::$themeIconsUrl = self::$themesUrl . $theme_id . '/icons/';
self::$themeIcons = is_dir(PUBLIC_PATH . self::$themeIconsUrl) ? array_fill_keys(array_diff(
scandir(PUBLIC_PATH . self::$themeIconsUrl),
array('..', '.')
), 1) : array();
+ return $infos;
}
public static function icon($name, $urlOnly = false) {