mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
- ok, get away with the secondary style approach (styles can be mixed together easily with the acp)
- introduce a more generic approach of defining some additional variables through cfg files as well as the name, copyright and version fields - please note that at the moment this is in flux. I added it now for Tom because he needs the theme parameters. git-svn-id: file:///svn/phpbb/trunk@5372 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
088ed2c414
commit
60d218245c
12 changed files with 256 additions and 115 deletions
|
@ -53,7 +53,8 @@ $file_uploads = (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads'
|
||||||
$module_id = request_var('i', '');
|
$module_id = request_var('i', '');
|
||||||
$mode = request_var('mode', '');
|
$mode = request_var('mode', '');
|
||||||
|
|
||||||
$user->theme['primary']['pagination_sep'] = '';
|
// Force pagination seperation for admin style
|
||||||
|
$user->theme['pagination_sep'] = '';
|
||||||
|
|
||||||
// Set custom template for admin area
|
// Set custom template for admin area
|
||||||
$template->set_custom_template($phpbb_admin_path . 'style', 'admin');
|
$template->set_custom_template($phpbb_admin_path . 'style', 'admin');
|
||||||
|
|
|
@ -305,6 +305,51 @@ class cache extends acm
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain cfg file data
|
||||||
|
*/
|
||||||
|
function obtain_cfg_items($theme)
|
||||||
|
{
|
||||||
|
global $config, $phpbb_root_path;
|
||||||
|
|
||||||
|
$parsed_items = array(
|
||||||
|
'theme' => array(),
|
||||||
|
'template' => array(),
|
||||||
|
'imageset' => array()
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($parsed_items as $key => $parsed_array)
|
||||||
|
{
|
||||||
|
$parsed_array = ($this->exists('_' . $key . '_cfg')) ? $this->get('_' . $key . '_cfg') : array();
|
||||||
|
|
||||||
|
$reparse = false;
|
||||||
|
$filename = $phpbb_root_path . 'styles/' . $theme[$key . '_path'] . '/' . $key . '/' . $key . '.cfg';
|
||||||
|
|
||||||
|
if (!file_exists($filename))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($parsed_array[$theme[$key . '_id']]) || (($config['load_tplcompile'] && @filemtime($filename) > $parsed_array['filetime'])))
|
||||||
|
{
|
||||||
|
$reparse = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Re-parse cfg file
|
||||||
|
if ($reparse)
|
||||||
|
{
|
||||||
|
$parsed_array = parse_cfg_file($filename);
|
||||||
|
$parsed_array['filetime'] = @filemtime($filename);
|
||||||
|
|
||||||
|
$this->put('_' . $key . '_cfg', $parsed_array);
|
||||||
|
}
|
||||||
|
|
||||||
|
$parsed_items[$key] = &$parsed_array;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $parsed_items;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -103,20 +103,8 @@ class bbcode
|
||||||
|
|
||||||
if (empty($this->template_filename))
|
if (empty($this->template_filename))
|
||||||
{
|
{
|
||||||
$style = 'primary';
|
$this->template_bitfield = $user->theme['bbcode_bitfield'];
|
||||||
if (!empty($user->theme['secondary']))
|
$this->template_filename = $phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template/bbcode.html';
|
||||||
{
|
|
||||||
// If the primary style has custom templates for BBCodes then we'll make sure
|
|
||||||
// the bbcode.html file is present, otherwise we'll use the secondary style
|
|
||||||
|
|
||||||
if ($this->bbcode_bitfield & $user->theme['primary']['bbcode_bitfield'])
|
|
||||||
{
|
|
||||||
$style = (file_exists($phpbb_root_path . 'styles/' . $user->theme['primary']['template_path'] . '/template/bbcode.html')) ? 'primary' : 'secondary';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->template_bitfield = $user->theme[$style]['bbcode_bitfield'];
|
|
||||||
$this->template_filename = $phpbb_root_path . 'styles/' . $user->theme[$style]['template_path'] . '/template/bbcode.html';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = '';
|
$sql = '';
|
||||||
|
|
|
@ -897,7 +897,7 @@ function generate_pagination($base_url, $num_items, $per_page, $start_item, $add
|
||||||
{
|
{
|
||||||
global $template, $user;
|
global $template, $user;
|
||||||
|
|
||||||
$seperator = $user->theme['primary']['pagination_sep'];
|
$seperator = $user->theme['pagination_sep'];
|
||||||
|
|
||||||
$total_pages = ceil($num_items/$per_page);
|
$total_pages = ceil($num_items/$per_page);
|
||||||
|
|
||||||
|
@ -1478,6 +1478,47 @@ function build_hidden_fields($field_ary)
|
||||||
return $s_hidden_fields;
|
return $s_hidden_fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse cfg file
|
||||||
|
*/
|
||||||
|
function parse_cfg_file($filename)
|
||||||
|
{
|
||||||
|
$parsed_items = array();
|
||||||
|
|
||||||
|
$lines = file($filename);
|
||||||
|
|
||||||
|
foreach ($lines as $line)
|
||||||
|
{
|
||||||
|
$line = trim($line);
|
||||||
|
|
||||||
|
if (!$line || $line{0} == '#' || ($delim_pos = strpos($line, '=')) === false)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Determine first occurrence, since in values the equal sign is allowed
|
||||||
|
$key = strtolower(trim(substr($line, 0, $delim_pos)));
|
||||||
|
$value = trim(substr($line, $delim_pos + 1));
|
||||||
|
|
||||||
|
if (in_array($value, array('off', 'false', '0')))
|
||||||
|
{
|
||||||
|
$value = false;
|
||||||
|
}
|
||||||
|
else if (in_array($value, array('on', 'true', '1')))
|
||||||
|
{
|
||||||
|
$value = true;
|
||||||
|
}
|
||||||
|
else if (($value{0} == "'" && $value{sizeof($value)-1} == "'") || ($value{0} == '"' && $value{sizeof($value)-1} == '"'))
|
||||||
|
{
|
||||||
|
$value = substr($value, 1, sizeof($value)-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
$parsed_items[$key] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $parsed_items;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Error and message handler, call with trigger_error if reqd
|
* Error and message handler, call with trigger_error if reqd
|
||||||
*/
|
*/
|
||||||
|
@ -1863,19 +1904,19 @@ function page_header($page_title = '')
|
||||||
'S_DISPLAY_MEMBERLIST' => (isset($auth)) ? $auth->acl_get('u_viewprofile') : 0,
|
'S_DISPLAY_MEMBERLIST' => (isset($auth)) ? $auth->acl_get('u_viewprofile') : 0,
|
||||||
'S_NEW_PM' => ($s_privmsg_new) ? 1 : 0,
|
'S_NEW_PM' => ($s_privmsg_new) ? 1 : 0,
|
||||||
|
|
||||||
'T_THEME_PATH' => "{$phpbb_root_path}styles/" . $user->theme['primary']['theme_path'] . '/theme',
|
'T_THEME_PATH' => "{$phpbb_root_path}styles/" . $user->theme['theme_path'] . '/theme',
|
||||||
'T_TEMPLATE_PATH' => "{$phpbb_root_path}styles/" . $user->theme['primary']['template_path'] . '/template',
|
'T_TEMPLATE_PATH' => "{$phpbb_root_path}styles/" . $user->theme['template_path'] . '/template',
|
||||||
'T_IMAGESET_PATH' => "{$phpbb_root_path}styles/" . $user->theme['primary']['imageset_path'] . '/imageset',
|
'T_IMAGESET_PATH' => "{$phpbb_root_path}styles/" . $user->theme['imageset_path'] . '/imageset',
|
||||||
'T_IMAGESET_LANG_PATH' => "{$phpbb_root_path}styles/" . $user->theme['primary']['imageset_path'] . '/imageset/' . $user->data['user_lang'],
|
'T_IMAGESET_LANG_PATH' => "{$phpbb_root_path}styles/" . $user->theme['imageset_path'] . '/imageset/' . $user->data['user_lang'],
|
||||||
'T_SMILIES_PATH' => "{$phpbb_root_path}{$config['smilies_path']}/",
|
'T_SMILIES_PATH' => "{$phpbb_root_path}{$config['smilies_path']}/",
|
||||||
'T_AVATAR_PATH' => "{$phpbb_root_path}{$config['avatar_path']}/",
|
'T_AVATAR_PATH' => "{$phpbb_root_path}{$config['avatar_path']}/",
|
||||||
'T_AVATAR_GALLERY_PATH' => "{$phpbb_root_path}{$config['avatar_gallery_path']}/",
|
'T_AVATAR_GALLERY_PATH' => "{$phpbb_root_path}{$config['avatar_gallery_path']}/",
|
||||||
'T_ICONS_PATH' => "{$phpbb_root_path}{$config['icons_path']}/",
|
'T_ICONS_PATH' => "{$phpbb_root_path}{$config['icons_path']}/",
|
||||||
'T_RANKS_PATH' => "{$phpbb_root_path}{$config['ranks_path']}/",
|
'T_RANKS_PATH' => "{$phpbb_root_path}{$config['ranks_path']}/",
|
||||||
'T_UPLOAD_PATH' => "{$phpbb_root_path}{$config['upload_path']}/",
|
'T_UPLOAD_PATH' => "{$phpbb_root_path}{$config['upload_path']}/",
|
||||||
'T_STYLESHEET_LINK' => (!$user->theme['primary']['theme_storedb']) ? "{$phpbb_root_path}styles/" . $user->theme['primary']['theme_path'] . '/theme/stylesheet.css' : "{$phpbb_root_path}style.$phpEx?sid=$user->session_id&id=" . $user->theme['primary']['style_id'],
|
'T_STYLESHEET_LINK' => (!$user->theme['theme_storedb']) ? "{$phpbb_root_path}styles/" . $user->theme['theme_path'] . '/theme/stylesheet.css' : "{$phpbb_root_path}style.$phpEx?sid=$user->session_id&id=" . $user->theme['style_id'],
|
||||||
'T_STYLESHEET_NAME' => $user->theme['primary']['theme_name'],
|
'T_STYLESHEET_NAME' => $user->theme['theme_name'],
|
||||||
'T_THEME_DATA' => (!$user->theme['primary']['theme_storedb']) ? '' : $user->theme['primary']['theme_data'])
|
'T_THEME_DATA' => (!$user->theme['theme_storedb']) ? '' : $user->theme['theme_data'])
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($config['send_encoding'])
|
if ($config['send_encoding'])
|
||||||
|
|
|
@ -507,7 +507,7 @@ function topic_generate_pagination($replies, $url)
|
||||||
}
|
}
|
||||||
else if ($times < $total_pages)
|
else if ($times < $total_pages)
|
||||||
{
|
{
|
||||||
$pagination .= $user->theme['primary']['pagination_sep'];
|
$pagination .= $user->theme['pagination_sep'];
|
||||||
}
|
}
|
||||||
$times++;
|
$times++;
|
||||||
}
|
}
|
||||||
|
@ -674,15 +674,7 @@ function display_attachments($forum_id, $blockname, &$attachment_data, &$update_
|
||||||
{
|
{
|
||||||
$attachment_tpl = array();
|
$attachment_tpl = array();
|
||||||
|
|
||||||
// Generate Template
|
$template_filename = $phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template/attachment.html';
|
||||||
$style = 'primary';
|
|
||||||
|
|
||||||
if (!empty($user->theme['secondary']))
|
|
||||||
{
|
|
||||||
$style = (file_exists($phpbb_root_path . 'styles/' . $user->theme['primary']['template_path'] . '/template/attachment.html')) ? 'primary' : 'secondary';
|
|
||||||
}
|
|
||||||
|
|
||||||
$template_filename = $phpbb_root_path . 'styles/' . $user->theme[$style]['template_path'] . '/template/attachment.html';
|
|
||||||
if (!($fp = @fopen($template_filename, 'rb')))
|
if (!($fp = @fopen($template_filename, 'rb')))
|
||||||
{
|
{
|
||||||
trigger_error('Could not load template file "' . $template_filename . '"');
|
trigger_error('Could not load template file "' . $template_filename . '"');
|
||||||
|
|
|
@ -702,7 +702,7 @@ class user extends session
|
||||||
|
|
||||||
function setup($lang_set = false, $style = false)
|
function setup($lang_set = false, $style = false)
|
||||||
{
|
{
|
||||||
global $db, $template, $config, $auth, $phpEx, $phpbb_root_path;
|
global $db, $template, $config, $auth, $phpEx, $phpbb_root_path, $cache;
|
||||||
|
|
||||||
if ($this->data['user_id'] != ANONYMOUS)
|
if ($this->data['user_id'] != ANONYMOUS)
|
||||||
{
|
{
|
||||||
|
@ -773,72 +773,62 @@ class user extends session
|
||||||
$style = ($style) ? $style : ((!$config['override_user_style'] && $this->data['user_id'] != ANONYMOUS) ? $this->data['user_style'] : $config['default_style']);
|
$style = ($style) ? $style : ((!$config['override_user_style'] && $this->data['user_id'] != ANONYMOUS) ? $this->data['user_style'] : $config['default_style']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: DISTINCT making problems with DBMS not able to distinct TEXT fields, test grouping
|
$sql = 'SELECT s.style_id, t.*, c.*, i.*
|
||||||
switch (SQL_LAYER)
|
FROM ' . STYLES_TABLE . ' s, ' . STYLES_TPL_TABLE . ' t, ' . STYLES_CSS_TABLE . ' c, ' . STYLES_IMAGE_TABLE . " i
|
||||||
{
|
WHERE s.style_id = $style
|
||||||
case 'mssql':
|
AND t.template_id = s.template_id
|
||||||
case 'mssql_odbc':
|
AND c.theme_id = s.theme_id
|
||||||
$sql = 'SELECT s.style_id, t.*, c.*, i.*
|
AND i.imageset_id = s.imageset_id";
|
||||||
FROM ' . STYLES_TABLE . ' s, ' . STYLES_TPL_TABLE . ' t, ' . STYLES_CSS_TABLE . ' c, ' . STYLES_IMAGE_TABLE . " i
|
|
||||||
WHERE s.style_id IN ($style, " . $config['default_style'] . ')
|
|
||||||
AND t.template_id = s.template_id
|
|
||||||
AND c.theme_id = s.theme_id
|
|
||||||
AND i.imageset_id = s.imageset_id
|
|
||||||
GROUP BY s.style_id';
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
$sql = 'SELECT s.style_id, t.*, c.*, i.*
|
|
||||||
FROM ' . STYLES_TABLE . ' s, ' . STYLES_TPL_TABLE . ' t, ' . STYLES_CSS_TABLE . ' c, ' . STYLES_IMAGE_TABLE . " i
|
|
||||||
WHERE s.style_id IN ($style, " . $config['default_style'] . ')
|
|
||||||
AND t.template_id = s.template_id
|
|
||||||
AND c.theme_id = s.theme_id
|
|
||||||
AND i.imageset_id = s.imageset_id
|
|
||||||
GROUP BY s.style_id';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
$result = $db->sql_query($sql, 3600);
|
$result = $db->sql_query($sql, 3600);
|
||||||
|
$this->theme = $db->sql_fetchrow($result);
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
if (!($row = $db->sql_fetchrow($result)))
|
if (!$this->theme)
|
||||||
{
|
{
|
||||||
trigger_error('Could not get style data');
|
trigger_error('Could not get style data');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->theme = ($row2 = $db->sql_fetchrow($result)) ? array(
|
// Now parse the cfg file and cache it
|
||||||
($style == $row['style_id']) ? 'primary' : 'secondary' => $row,
|
$parsed_items = $cache->obtain_cfg_items($this->theme);
|
||||||
($style == $row2['style_id']) ? 'primary' : 'secondary' => $row2) : array('primary' => $row);
|
|
||||||
$db->sql_freeresult($result);
|
// We are only interested in the theme configuration for now
|
||||||
|
$parsed_items = $parsed_items['theme'];
|
||||||
|
|
||||||
unset($row);
|
$check_for = array(
|
||||||
unset($row2);
|
'parse_css_file' => (int) 0,
|
||||||
|
'pagination_sep' => (string) ', '
|
||||||
|
);
|
||||||
|
|
||||||
// Add to template database
|
foreach ($check_for as $key => $default_value)
|
||||||
foreach (array_keys($this->theme) as $style_priority)
|
|
||||||
{
|
{
|
||||||
$this->theme[$style_priority]['pagination_sep'] = ', ';
|
$this->theme[$key] = (isset($parsed_items[$key]) && $parsed_items[$key]) ? $parsed_items[$key] : $default_value;
|
||||||
|
settype($this->theme[$key], gettype($default_value));
|
||||||
|
|
||||||
|
if (is_string($default_value))
|
||||||
|
{
|
||||||
|
$this->theme[$key] = htmlspecialchars($this->theme[$key]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TEMP
|
if (!$this->theme['theme_storedb'] && $this->theme['parse_css_file'])
|
||||||
$this->theme['primary']['parse_css_file'] = false;
|
|
||||||
if (!$this->theme['primary']['theme_storedb'] && $this->theme['primary']['parse_css_file'])
|
|
||||||
{
|
{
|
||||||
$this->theme['primary']['theme_storedb'] = 1;
|
$this->theme['theme_storedb'] = 1;
|
||||||
|
|
||||||
$sql_ary = array(
|
$sql_ary = array(
|
||||||
'theme_data' => implode('', file("{$phpbb_root_path}styles/" . $this->theme['primary']['theme_path'] . '/theme/stylesheet.css')),
|
'theme_data' => implode('', file("{$phpbb_root_path}styles/" . $this->theme['theme_path'] . '/theme/stylesheet.css')),
|
||||||
'theme_mtime' => time(),
|
'theme_mtime' => time(),
|
||||||
'theme_storedb' => 1
|
'theme_storedb' => 1
|
||||||
);
|
);
|
||||||
|
|
||||||
$db->sql_query('UPDATE ' . STYLES_CSS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
|
$db->sql_query('UPDATE ' . STYLES_CSS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
|
||||||
WHERE theme_id = ' . $this->theme['primary']['theme_id']);
|
WHERE theme_id = ' . $this->theme['theme_id']);
|
||||||
|
|
||||||
unset($sql_ary);
|
unset($sql_ary);
|
||||||
}
|
}
|
||||||
|
|
||||||
$template->set_template();
|
$template->set_template();
|
||||||
|
|
||||||
$this->img_lang = (file_exists($phpbb_root_path . 'styles/' . $this->theme['primary']['imageset_path'] . '/imageset/' . $this->lang_name)) ? $this->lang_name : $config['default_lang'];
|
$this->img_lang = (file_exists($phpbb_root_path . 'styles/' . $this->theme['imageset_path'] . '/imageset/' . $this->lang_name)) ? $this->lang_name : $config['default_lang'];
|
||||||
|
|
||||||
// Is board disabled and user not an admin or moderator?
|
// Is board disabled and user not an admin or moderator?
|
||||||
// TODO
|
// TODO
|
||||||
|
@ -1015,7 +1005,7 @@ class user extends session
|
||||||
|
|
||||||
if (empty($imgs[$img . $suffix]) || $width !== false)
|
if (empty($imgs[$img . $suffix]) || $width !== false)
|
||||||
{
|
{
|
||||||
if (!isset($this->theme['primary'][$img]) || !$this->theme['primary'][$img])
|
if (!isset($this->theme[$img]) || !$this->theme[$img])
|
||||||
{
|
{
|
||||||
// Do not fill the image to let designers decide what to do if the image is empty
|
// Do not fill the image to let designers decide what to do if the image is empty
|
||||||
$imgs[$img . $suffix] = '';
|
$imgs[$img . $suffix] = '';
|
||||||
|
@ -1024,11 +1014,11 @@ class user extends session
|
||||||
|
|
||||||
if ($width === false)
|
if ($width === false)
|
||||||
{
|
{
|
||||||
list($imgsrc, $height, $width) = explode('*', $this->theme['primary'][$img]);
|
list($imgsrc, $height, $width) = explode('*', $this->theme[$img]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
list($imgsrc, $height) = explode('*', $this->theme['primary'][$img]);
|
list($imgsrc, $height) = explode('*', $this->theme[$img]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($suffix !== '')
|
if ($suffix !== '')
|
||||||
|
@ -1036,7 +1026,7 @@ class user extends session
|
||||||
$imgsrc = str_replace('{SUFFIX}', $suffix, $imgsrc);
|
$imgsrc = str_replace('{SUFFIX}', $suffix, $imgsrc);
|
||||||
}
|
}
|
||||||
|
|
||||||
$imgs[$img . $suffix]['src'] = $phpbb_root_path . 'styles/' . $this->theme['primary']['imageset_path'] . '/imageset/' . str_replace('{LANG}', $this->img_lang, $imgsrc);
|
$imgs[$img . $suffix]['src'] = $phpbb_root_path . 'styles/' . $this->theme['imageset_path'] . '/imageset/' . str_replace('{LANG}', $this->img_lang, $imgsrc);
|
||||||
$imgs[$img . $suffix]['width'] = $width;
|
$imgs[$img . $suffix]['width'] = $width;
|
||||||
$imgs[$img . $suffix]['height'] = $height;
|
$imgs[$img . $suffix]['height'] = $height;
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,6 @@ class template
|
||||||
var $_tpldata = array();
|
var $_tpldata = array();
|
||||||
|
|
||||||
// Root dir and hash of filenames for each template handle.
|
// Root dir and hash of filenames for each template handle.
|
||||||
var $tpl = '';
|
|
||||||
var $root = '';
|
var $root = '';
|
||||||
var $cachepath = '';
|
var $cachepath = '';
|
||||||
var $files = array();
|
var $files = array();
|
||||||
|
@ -61,17 +60,10 @@ class template
|
||||||
{
|
{
|
||||||
global $phpbb_root_path, $config, $user;
|
global $phpbb_root_path, $config, $user;
|
||||||
|
|
||||||
if (file_exists($phpbb_root_path . 'styles/' . $user->theme['primary']['template_path'] . '/template'))
|
if (file_exists($phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template'))
|
||||||
{
|
{
|
||||||
$this->tpl = 'primary';
|
$this->root = $phpbb_root_path . 'styles/' . $user->theme['template_path']. '/template';
|
||||||
$this->root = $phpbb_root_path . 'styles/' . $user->theme['primary']['template_path']. '/template';
|
$this->cachepath = $phpbb_root_path . 'cache/tpl_' . $user->theme['template_path'] . '_';
|
||||||
$this->cachepath = $phpbb_root_path . 'cache/tpl_' . $user->theme['primary']['template_path'] . '_';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->tpl = 'secondary';
|
|
||||||
$this->root = $phpbb_root_path . 'styles/' . $user->theme['secondary']['template_path']. '/template';
|
|
||||||
$this->cachepath = $phpbb_root_path . 'cache/tpl_' . $user->theme['secondary']['template_path'] . '_';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->static_lang = $static_lang;
|
$this->static_lang = $static_lang;
|
||||||
|
@ -87,7 +79,6 @@ class template
|
||||||
{
|
{
|
||||||
global $phpbb_root_path;
|
global $phpbb_root_path;
|
||||||
|
|
||||||
$this->tpl = 'primary';
|
|
||||||
$this->root = $template_path;
|
$this->root = $template_path;
|
||||||
$this->cachepath = $phpbb_root_path . 'cache/ctpl_' . $template_name . '_';
|
$this->cachepath = $phpbb_root_path . 'cache/ctpl_' . $template_name . '_';
|
||||||
|
|
||||||
|
@ -207,16 +198,10 @@ class template
|
||||||
trigger_error("template->_tpl_load(): No file specified for handle $handle", E_USER_ERROR);
|
trigger_error("template->_tpl_load(): No file specified for handle $handle", E_USER_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!file_exists($this->files[$handle]) && !empty($user->theme['secondary']))
|
if ($user->theme['template_storedb'])
|
||||||
{
|
|
||||||
$this->tpl = 'secondary';
|
|
||||||
$this->files[$handle] = $phpbb_root_path . 'styles/' . $user->theme['secondary']['template_path'] . '/template/' . $this->filename[$handle];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($user->theme[$this->tpl]['template_storedb'])
|
|
||||||
{
|
{
|
||||||
$sql = 'SELECT * FROM ' . STYLES_TPLDATA_TABLE . '
|
$sql = 'SELECT * FROM ' . STYLES_TPLDATA_TABLE . '
|
||||||
WHERE template_id = ' . $user->theme[$this->tpl]['template_id'] . "
|
WHERE template_id = ' . $user->theme['template_id'] . "
|
||||||
AND (template_filename = '" . $db->sql_escape($this->filename[$handle]) . "'
|
AND (template_filename = '" . $db->sql_escape($this->filename[$handle]) . "'
|
||||||
OR template_included LIKE '%" . $db->sql_escape($this->filename[$handle]) . ":%')";
|
OR template_included LIKE '%" . $db->sql_escape($this->filename[$handle]) . ":%')";
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
@ -225,7 +210,7 @@ class template
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if ($row['template_mtime'] < filemtime($phpbb_root_path . 'styles/' . $user->theme[$this->tpl]['template_path'] . '/template/' . $row['template_filename']))
|
if ($row['template_mtime'] < filemtime($phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template/' . $row['template_filename']))
|
||||||
{
|
{
|
||||||
if ($row['template_filename'] == $this->filename[$handle])
|
if ($row['template_filename'] == $this->filename[$handle])
|
||||||
{
|
{
|
||||||
|
|
|
@ -102,11 +102,11 @@ if (!empty($_GET['id']) && !empty($_GET['sid']))
|
||||||
// Parse Theme Data
|
// Parse Theme Data
|
||||||
$replace = array(
|
$replace = array(
|
||||||
'{T_THEME_PATH}' => "{$phpbb_root_path}styles/" . $theme['theme_path'] . '/theme',
|
'{T_THEME_PATH}' => "{$phpbb_root_path}styles/" . $theme['theme_path'] . '/theme',
|
||||||
'{T_TEMPLATE_PATH}' => "{$phpbb_root_path}styles/" . $theme['template_path'] . '/template',
|
'{T_TEMPLATE_PATH}' => "{$phpbb_root_path}styles/" . $theme['template_path'] . '/template',
|
||||||
'{T_IMAGESET_PATH}' => "{$phpbb_root_path}styles/" . $theme['imageset_path'] . '/imageset',
|
'{T_IMAGESET_PATH}' => "{$phpbb_root_path}styles/" . $theme['imageset_path'] . '/imageset',
|
||||||
'{T_IMAGESET_LANG_PATH}' => "{$phpbb_root_path}styles/" . $theme['imageset_path'] . '/imageset/' . $user['user_lang'],
|
'{T_IMAGESET_LANG_PATH}' => "{$phpbb_root_path}styles/" . $theme['imageset_path'] . '/imageset/' . $user['user_lang'],
|
||||||
'{T_STYLESHEET_NAME}' => $theme['theme_name'],
|
'{T_STYLESHEET_NAME}' => $theme['theme_name'],
|
||||||
'{S_USER_LANG}' => $user['user_lang']
|
'{S_USER_LANG}' => $user['user_lang']
|
||||||
);
|
);
|
||||||
|
|
||||||
$theme['theme_data'] = str_replace(array_keys($replace), array_values($replace), $theme['theme_data']);
|
$theme['theme_data'] = str_replace(array_keys($replace), array_values($replace), $theme['theme_data']);
|
||||||
|
|
|
@ -1,6 +1,28 @@
|
||||||
subSilver
|
#
|
||||||
© phpBB Group
|
# phpBB Imageset Configuration File
|
||||||
2.1.1
|
#
|
||||||
|
# @package phpBB3
|
||||||
|
# @copyright (c) 2005 phpBB Group
|
||||||
|
# @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# At the left is the name, please do not change this
|
||||||
|
# At the right the value is entered
|
||||||
|
# For on/off options the valid values are on, off, 1, 0, true and false
|
||||||
|
#
|
||||||
|
# Values get trimmed, if you want to add a space in front or at the end of
|
||||||
|
# the value, then enclose the value with single or double quotes.
|
||||||
|
# Single and double quotes do not need to be escaped.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# General Information about this style
|
||||||
|
name = subSilver
|
||||||
|
copyright = © phpBB Group, 2003
|
||||||
|
version = 2.1.1
|
||||||
|
|
||||||
|
# The images (will be changed later if we get to re-visiting the style acp)
|
||||||
|
#
|
||||||
site_logo***
|
site_logo***
|
||||||
btn_post*{LANG}/btn_post.gif*27*97
|
btn_post*{LANG}/btn_post.gif*27*97
|
||||||
btn_post_pm*{LANG}/btn_post_pm.gif*27*97
|
btn_post_pm*{LANG}/btn_post_pm.gif*27*97
|
||||||
|
|
|
@ -1,3 +1,22 @@
|
||||||
subSilver
|
#
|
||||||
© phpBB Group, 2003
|
# phpBB Style Configuration File
|
||||||
2.1.1
|
#
|
||||||
|
# @package phpBB3
|
||||||
|
# @copyright (c) 2005 phpBB Group
|
||||||
|
# @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# At the left is the name, please do not change this
|
||||||
|
# At the right the value is entered
|
||||||
|
# For on/off options the valid values are on, off, 1, 0, true and false
|
||||||
|
#
|
||||||
|
# Values get trimmed, if you want to add a space in front or at the end of
|
||||||
|
# the value, then enclose the value with single or double quotes.
|
||||||
|
# Single and double quotes do not need to be escaped.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# General Information about this style
|
||||||
|
name = subSilver
|
||||||
|
copyright = © phpBB Group, 2003
|
||||||
|
version = 2.1.1
|
||||||
|
|
|
@ -1,3 +1,23 @@
|
||||||
subSilver
|
#
|
||||||
© phpBB Group
|
# phpBB Templaet Configuration File
|
||||||
2.1.1
|
#
|
||||||
|
# @package phpBB3
|
||||||
|
# @copyright (c) 2005 phpBB Group
|
||||||
|
# @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# At the left is the name, please do not change this
|
||||||
|
# At the right the value is entered
|
||||||
|
# For on/off options the valid values are on, off, 1, 0, true and false
|
||||||
|
#
|
||||||
|
# Values get trimmed, if you want to add a space in front or at the end of
|
||||||
|
# the value, then enclose the value with single or double quotes.
|
||||||
|
# Single and double quotes do not need to be escaped.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
# General Information about this template
|
||||||
|
name = subSilver
|
||||||
|
copyright = © phpBB Group, 2003
|
||||||
|
version = 2.1.1
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,41 @@
|
||||||
subSilver
|
#
|
||||||
© phpBB Group, 2003
|
# phpBB Theme Configuration File
|
||||||
2.1.1
|
#
|
||||||
|
# @package phpBB3
|
||||||
|
# @copyright (c) 2005 phpBB Group
|
||||||
|
# @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# At the left is the name, please do not change this
|
||||||
|
# At the right the value is entered
|
||||||
|
# For on/off options the valid values are on, off, 1, 0, true and false
|
||||||
|
#
|
||||||
|
# Values get trimmed, if you want to add a space in front or at the end of
|
||||||
|
# the value, then enclose the value with single or double quotes.
|
||||||
|
# Single and double quotes do not need to be escaped.
|
||||||
|
#
|
||||||
|
# Available and used values:
|
||||||
|
# parse_css_file, pagination_sep
|
||||||
|
#
|
||||||
|
|
||||||
|
# General Information about this theme
|
||||||
|
name = subSilver
|
||||||
|
copyright = © phpBB Group, 2003
|
||||||
|
version = 2.1.1
|
||||||
|
|
||||||
|
# Some configuration options
|
||||||
|
|
||||||
|
#
|
||||||
|
# You have to turn this option on if you want to use the
|
||||||
|
# path template variables ({T_IMAGESET_PATH} for example) within
|
||||||
|
# your css file.
|
||||||
|
# This is mostly the case if you want to use language specific
|
||||||
|
# images within your css file.
|
||||||
|
#
|
||||||
|
parse_css_file = off
|
||||||
|
|
||||||
|
#
|
||||||
|
# This option defines the pagination seperator in templates.
|
||||||
|
#
|
||||||
|
pagination_sep = ', '
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue