From dc3c040399475f7b68497919c39c90adcca4caa5 Mon Sep 17 00:00:00 2001 From: chrisaga Date: Sat, 3 Dec 2005 17:33:38 +0000 Subject: improve template : split theme from template itself rest of the job : template (yoga), themes (clear dark), and php to handle them git-svn-id: http://piwigo.org/svn/trunk@960 68402e56-0260-453c-a942-63ccdbb3a9ee --- include/common.inc.php | 6 ++++++ include/functions.inc.php | 35 +++++++++++++++++++++++++++++++---- include/functions_html.inc.php | 3 +-- include/template.php | 2 ++ 4 files changed, 40 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/common.inc.php b/include/common.inc.php index a86bbc9ac..3b6900000 100644 --- a/include/common.inc.php +++ b/include/common.inc.php @@ -220,6 +220,12 @@ if ($user['is_the_guest']) $user['username'] = $lang['guest']; } +// include template/theme configuration +list($user['template'], $user['theme']) = explode('/', $user['template']); +// TODO : replace initial $user['template'] by $user['layout'] + +include(PHPWG_ROOT_PATH.'template/'.$user['template'].'/theme/'.$user['theme'].'/themeconf.inc.php'); + // template instance $template = new Template(PHPWG_ROOT_PATH.'template/'.$user['template']); ?> diff --git a/include/functions.inc.php b/include/functions.inc.php index 261260b16..556c62582 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -533,11 +533,25 @@ function get_query_string_diff($rejects = array()) } /** - * returns available templates + * returns available templates/themes */ function get_templates() { - return get_dirs(PHPWG_ROOT_PATH.'template'); + return get_dirs(PHPWG_ROOT_PATH.'theme'); +} +function get_themes() +{ + $themes = array(); + + foreach (get_dirs(PHPWG_ROOT_PATH.'template') as $template) + { + foreach (get_dirs(PHPWG_ROOT_PATH.'template/'.$template.'/theme') as $theme) + { + array_push($themes, $template.'/'.$theme); + } + } + + return $themes; } /** @@ -565,8 +579,7 @@ function get_thumbnail_src($path, $tn_ext = '') } else { - $src = PHPWG_ROOT_PATH; - $src.= 'template/'.$user['template'].'/mimetypes/'; + $src = get_themeconf('mime_icon_dir'); $src.= strtolower(get_extension($path)).'.png'; } @@ -726,4 +739,18 @@ function l10n($key) return isset($lang[$key]) ? $lang[$key] : $key; } + +/** + * returns the corresponding value from $themeconf if existing. Else, the key is + * returned + * + * @param string key + * @return string + */ +function get_themeconf($key) +{ + global $themeconf; + + return $themeconf[$key]; +} ?> diff --git a/include/functions_html.inc.php b/include/functions_html.inc.php index c08ca525e..a9dc14294 100644 --- a/include/functions_html.inc.php +++ b/include/functions_html.inc.php @@ -43,8 +43,7 @@ function get_icon( $date ) $title = $lang['recent_image'].' '; if ( $diff < $user['recent_period'] * $day_in_seconds ) { - $icon_url = './template/'.$user['template'].'/theme/'; - $icon_url.= 'recent.png'; + $icon_url = get_themeconf('icon_dir').'/recent.png'; $title .= $user['recent_period']; $title .= ' '.$lang['days']; $size = getimagesize( $icon_url ); diff --git a/include/template.php b/include/template.php index f82937d99..674e08659 100644 --- a/include/template.php +++ b/include/template.php @@ -330,6 +330,8 @@ class Template { { // PWG specific : communication between template and $lang $code = preg_replace('/\{lang:([^}]+)\}/e', "l10n('$1')", $code); + // PWG specific : expand themeconf.inc.php variables + $code = preg_replace('/\{themeconf:([^}]+)\}/e', "get_themeconf('$1')", $code); // replace \ with \\ and then ' with \'. $code = str_replace('\\', '\\\\', $code); -- cgit v1.2.3