add yaml info blocks to themes

This commit is contained in:
nobody 2022-03-06 21:31:28 -08:00
parent e7cc38a2f8
commit f1d53b8c9e
4 changed files with 26 additions and 2 deletions

2
.gitignore vendored
View file

@ -42,7 +42,7 @@ pageheader.html
doc/SiteTOS.md doc/SiteTOS.md
# themes except for redbasic # themes except for redbasic
view/theme/* view/theme/*
!view/theme/redbasic !view/theme/redbasic*
# site theme schemas # site theme schemas
view/theme/redbasic/schema/default.php view/theme/redbasic/schema/default.php
# Doxygen API documentation, run 'doxygen util/Doxyfile' to generate it # Doxygen API documentation, run 'doxygen util/Doxyfile' to generate it

View file

@ -59,6 +59,9 @@ class Themes
$files = glob('view/theme/*'); $files = glob('view/theme/*');
if ($files) { if ($files) {
foreach ($files as $file) { foreach ($files as $file) {
if (! is_dir($file)) {
continue;
}
$f = basename($file); $f = basename($file);
$is_experimental = intval(file_exists($file . '/.experimental')); $is_experimental = intval(file_exists($file . '/.experimental'));
$is_supported = 1 - (intval(file_exists($file . '/.unsupported'))); // Is not used yet $is_supported = 1 - (intval(file_exists($file . '/.unsupported'))); // Is not used yet

View file

@ -6,6 +6,7 @@ use App;
use Code\Lib\Infocon; use Code\Lib\Infocon;
use Code\Lib\Addon; use Code\Lib\Addon;
use Code\Render\Theme; use Code\Render\Theme;
use Code\Lib\Yaml;
class Theme class Theme
@ -182,12 +183,25 @@ class Theme
public static function get_info($theme) { public static function get_info($theme) {
$info = null; $info = null;
if (is_file("view/theme/$theme/$theme.yml")) { $has_yaml = true;
if (is_file("view/theme/$theme.yml")) {
$info = Infocon::from_file("view/theme/$theme.yml"); $info = Infocon::from_file("view/theme/$theme.yml");
} }
elseif (is_file("view/theme/$theme/php/theme.php")) { elseif (is_file("view/theme/$theme/php/theme.php")) {
$has_yaml = false;
$info = Infocon::from_c_comment("view/theme/$theme/php/theme.php"); $info = Infocon::from_c_comment("view/theme/$theme/php/theme.php");
} }
if ($info && ! $has_yaml) {
try {
file_put_contents("view/theme/$theme.yml",Yaml::encode($info));
}
catch (Exception $e) {
;
}
}
return $info ? $info : [ 'name' => $theme ] ; return $info ? $info : [ 'name' => $theme ] ;
} }

7
view/theme/redbasic.yml Normal file
View file

@ -0,0 +1,7 @@
name: Redbasic
description: 'standard theme'
version: '2.1'
author: Fabrixxm
maintainer:
- 'Mike Macgirvin'
- 'Mario Vavti'