aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2017-02-26 21:01:20 +0100
committerMario Vavti <mario@mariovavti.com>2017-02-26 21:01:20 +0100
commit4f07abe65586d66b0000e9b877ce467d71178aa2 (patch)
treeb022ecaa725b61d9305e13aa88ed1bb7811c6540
parent8783ccfd727dc4834c1f3c9460f851350fc912f4 (diff)
downloadvolse-hubzilla-4f07abe65586d66b0000e9b877ce467d71178aa2.tar.gz
volse-hubzilla-4f07abe65586d66b0000e9b877ce467d71178aa2.tar.bz2
volse-hubzilla-4f07abe65586d66b0000e9b877ce467d71178aa2.zip
add a minversion to the theme and fallback to default if requirement is not met. mark incompatible themes in the theme selector
-rw-r--r--Zotlabs/Module/Admin/Site.php9
-rw-r--r--Zotlabs/Module/Admin/Themes.php2
-rw-r--r--Zotlabs/Module/Settings/Display.php12
-rw-r--r--Zotlabs/Render/Theme.php7
-rw-r--r--view/theme/redbasic/.MINVERSION1
-rw-r--r--view/theme/redbasic/php/theme.php2
6 files changed, 26 insertions, 7 deletions
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