Merge branch 'add-template-overrides' into 'dev'

Add template overrides

See merge request hubzilla/core!1256
This commit is contained in:
Mario 2018-08-13 14:06:36 +02:00
commit b78c9a2251
3 changed files with 54 additions and 19 deletions

View File

@ -64,17 +64,20 @@ class SmartyTemplate implements TemplateEngine {
public function get_intltext_template($file, $root='') { public function get_intltext_template($file, $root='') {
$lang = \App::$language; $lang = \App::$language;
if ($root != '' && substr($root,-1) != '/' ) {
if(file_exists("view/$lang/$file")) $root .= '/';
$template_file = "view/$lang/$file"; }
elseif(file_exists("view/en/$file")) foreach (Array(
$template_file = "view/en/$file"; $root."view/$lang/$file",
else $root."view/en/$file",
$template_file = theme_include($file,$root); ''
) as $template_file) {
if (is_file($template_file)) { break; }
}
if ($template_file=='') {$template_file = theme_include($file,$root);}
if($template_file) { if($template_file) {
$template = new SmartyInterface(); $template = new SmartyInterface();
$template->filename = $template_file; $template->filename = $template_file;
return $template; return $template;
} }
return ""; return "";

View File

@ -728,6 +728,9 @@ class App {
private static $perms = null; // observer permissions private static $perms = null; // observer permissions
private static $widgets = array(); // widgets for this page private static $widgets = array(); // widgets for this page
public static $config = array(); // config cache public static $config = array(); // config cache
public static $override_intltext_templates = array();
public static $override_markup_templates = array();
public static $override_templateroot = null;
public static $session = null; public static $session = null;
public static $groups; public static $groups;

View File

@ -959,9 +959,8 @@ function format_js_if_exists($source) {
function theme_include($file, $root = '') { function theme_include($file, $root = '') {
// Make sure $root ends with a slash / if it's not blank // Make sure $root ends with a slash / if it's not blank
if($root !== '' && $root[strlen($root)-1] !== '/') if($root !== '' && substr($root,-1) !== '/')
$root = $root . '/'; $root = $root . '/';
$theme_info = App::$theme_info; $theme_info = App::$theme_info;
if(array_key_exists('extends',$theme_info)) if(array_key_exists('extends',$theme_info))
@ -992,21 +991,51 @@ function theme_include($file, $root = '') {
return ''; return '';
} }
function get_intltext_template($s, $root = '') { function get_intltext_template($s, $root = '') {
$testroot = ($root=='') ? $testroot = "ROOT" : $root;
$t = App::template_engine();
$t = App::template_engine(); if (isset(\App::$override_intltext_templates[$testroot][$s]["content"])) {
return \App::$override_intltext_templates[$testroot][$s]["content"];
$template = $t->get_intltext_template($s, $root); } else {
return $template; if (isset(\App::$override_intltext_templates[$testroot][$s]["root"]) &&
isset(\App::$override_intltext_templates[$testroot][$s]["file"])) {
$s = \App::$override_intltext_templates[$testroot][$s]["file"];
$root = \App::$override_intltext_templates[$testroot][$s]["root"];
} elseif (\App::$override_templateroot) {
$newroot = \App::$override_templateroot.$root;
if ($newroot != '' && substr($newroot,-1) != '/' ) {
$newroot .= '/';
}
$template = $t->get_intltext_template($s, $newroot);
}
$template = $t->get_intltext_template($s, $root);
return $template;
}
} }
function get_markup_template($s, $root = '') { function get_markup_template($s, $root = '') {
$testroot = ($root=='') ? $testroot = "ROOT" : $root;
$t = App::template_engine(); $t = App::template_engine();
$template = $t->get_markup_template($s, $root);
return $template; if (isset(\App::$override_markup_templates[$testroot][$s]["content"])) {
return \App::$override_markup_templates[$testroot][$s]["content"];
} else {
if (isset(\App::$override_markup_templates[$testroot][$s]["root"]) &&
isset(\App::$override_markup_templates[$testroot][$s]["file"])) {
$s = \App::$override_markup_templates[$testroot][$s]["file"];
$root = \App::$override_markup_templates[$testroot][$s]["root"];
} elseif (\App::$override_templateroot) {
$newroot = \App::$override_templateroot.$root;
if ($newroot != '' && substr($newroot,-1) != '/' ) {
$newroot .= '/';
}
$template = $t->get_markup_template($s, $newroot);
}
$template = $t->get_markup_template($s, $root);
return $template;
}
} }
/** /**