From 4f07abe65586d66b0000e9b877ce467d71178aa2 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Sun, 26 Feb 2017 21:01:20 +0100 Subject: add a minversion to the theme and fallback to default if requirement is not met. mark incompatible themes in the theme selector --- Zotlabs/Module/Admin/Site.php | 9 ++++++++- Zotlabs/Module/Admin/Themes.php | 2 +- Zotlabs/Module/Settings/Display.php | 12 +++++++++--- Zotlabs/Render/Theme.php | 7 ++++++- view/theme/redbasic/.MINVERSION | 1 + view/theme/redbasic/php/theme.php | 2 +- 6 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 view/theme/redbasic/.MINVERSION diff --git a/Zotlabs/Module/Admin/Site.php b/Zotlabs/Module/Admin/Site.php index 829ca71e4..3bb384ec5 100644 --- a/Zotlabs/Module/Admin/Site.php +++ b/Zotlabs/Module/Admin/Site.php @@ -163,6 +163,13 @@ class Site { foreach($files as $file) { $vars = ''; $f = basename($file); + + $min_version = ((file_exists('view/theme/' . $f . '/.MINVERSION')) ? file_get_contents('view/theme/' . $f . '/.MINVERSION') : 0); + if((version_compare($min_version, STD_VERSION, '>=')) || ($min_version == 0)) { + $theme_choices[$f] = $theme_choices_mobile[$f] = sprintf(t('%s - (Incompatible)'), $f); + continue; + } + if (file_exists($file . '/library')) continue; if (file_exists($file . '/mobile')) @@ -310,4 +317,4 @@ class Site { )); } -} \ No newline at end of file +} diff --git a/Zotlabs/Module/Admin/Themes.php b/Zotlabs/Module/Admin/Themes.php index 63a9a1670..fc908ec8b 100644 --- a/Zotlabs/Module/Admin/Themes.php +++ b/Zotlabs/Module/Admin/Themes.php @@ -230,4 +230,4 @@ class Themes { -} \ No newline at end of file +} diff --git a/Zotlabs/Module/Settings/Display.php b/Zotlabs/Module/Settings/Display.php index 67cecf1f5..d5be07a81 100644 --- a/Zotlabs/Module/Settings/Display.php +++ b/Zotlabs/Module/Settings/Display.php @@ -130,12 +130,19 @@ class Display { if($allowed_themes) { foreach($allowed_themes as $th) { $f = $th; + + $min_version = ((file_exists('view/theme/' . $th . '/.MINVERSION')) ? file_get_contents('view/theme/' . $th . '/.MINVERSION') : 0); + if((version_compare($min_version, STD_VERSION, '>=')) || ($min_version == 0)) { + $mobile_themes[$f] = $themes[$f] = sprintf(t('%s - (Incompatible)'), $f); + continue; + } + $is_experimental = file_exists('view/theme/' . $th . '/experimental'); $unsupported = file_exists('view/theme/' . $th . '/unsupported'); $is_mobile = file_exists('view/theme/' . $th . '/mobile'); $is_library = file_exists('view/theme/'. $th . '/library'); - $mobile_themes["---"] = t("No special theme for mobile devices"); - + $mobile_themes['---'] = t("No special theme for mobile devices"); + if (!$is_experimental or ($is_experimental && (get_config('experimentals','exp_themes')==1 or get_config('experimentals','exp_themes')===false))){ $theme_name = (($is_experimental) ? sprintf(t('%s - (Experimental)'), $f) : $f); if (! $is_library) { @@ -147,7 +154,6 @@ class Display { } } } - } } diff --git a/Zotlabs/Render/Theme.php b/Zotlabs/Render/Theme.php index dadb18051..53bcfe664 100644 --- a/Zotlabs/Render/Theme.php +++ b/Zotlabs/Render/Theme.php @@ -69,8 +69,13 @@ class Theme { if(array_key_exists('theme_preview',$_GET)) $chosen_theme = $_GET['theme_preview']; - // Allow theme selection of the form 'theme_name:schema_name' + // Check if $chosen_theme is compatible with core. If not fall back to default + $min_version = ((file_exists('view/theme/' . $chosen_theme . '/.MINVERSION')) ? file_get_contents('view/theme/' . $chosen_theme . '/.MINVERSION') : 0); + if((version_compare($min_version, STD_VERSION, '>=')) || ($min_version == 0)) { + $chosen_theme = ''; + } + // Allow theme selection of the form 'theme_name:schema_name' $themepair = explode(':', $chosen_theme); if($chosen_theme && (file_exists('view/theme/' . $themepair[0] . '/css/style.css') || file_exists('view/theme/' . $themepair[0] . '/php/style.php'))) { diff --git a/view/theme/redbasic/.MINVERSION b/view/theme/redbasic/.MINVERSION new file mode 100644 index 000000000..8bbe6cf74 --- /dev/null +++ b/view/theme/redbasic/.MINVERSION @@ -0,0 +1 @@ +2.2 diff --git a/view/theme/redbasic/php/theme.php b/view/theme/redbasic/php/theme.php index 997b59750..0f0c43484 100644 --- a/view/theme/redbasic/php/theme.php +++ b/view/theme/redbasic/php/theme.php @@ -3,7 +3,7 @@ /** * * Name: Redbasic * * Description: Hubzilla standard theme - * * Version: 1.0 + * * Version: 2.0 * * Author: Fabrixxm * * Maintainer: Mike Macgirvin * * Maintainer: Mario Vavti -- cgit v1.2.3