aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2006-08-08 19:02:44 +0000
committerNils Adermann <naderman@naderman.de>2006-08-08 19:02:44 +0000
commitc69a6f7acd9c9c0b1293e6977fe1ec5b490725d4 (patch)
tree7b52ef2b8f7c9525cc039517d8fa98da57e8728d /phpBB/includes
parent2ed25800c5ad5125740f574092098d284071300b (diff)
downloadforums-c69a6f7acd9c9c0b1293e6977fe1ec5b490725d4.tar
forums-c69a6f7acd9c9c0b1293e6977fe1ec5b490725d4.tar.gz
forums-c69a6f7acd9c9c0b1293e6977fe1ec5b490725d4.tar.bz2
forums-c69a6f7acd9c9c0b1293e6977fe1ec5b490725d4.tar.xz
forums-c69a6f7acd9c9c0b1293e6977fe1ec5b490725d4.zip
- fixed some problems with themes
- added support for {IMG_NAME_SRC}, {IMG_NAME_WIDTH} and {IMG_NAME_HEIGHT} - fulltext_native has to use group by in a few more quries git-svn-id: file:///svn/phpbb/trunk@6254 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/acp/acp_styles.php75
-rwxr-xr-xphpBB/includes/search/fulltext_native.php3
-rw-r--r--phpBB/includes/session.php27
3 files changed, 69 insertions, 36 deletions
diff --git a/phpBB/includes/acp/acp_styles.php b/phpBB/includes/acp/acp_styles.php
index 116bd3ab8b..56c8369176 100644
--- a/phpBB/includes/acp/acp_styles.php
+++ b/phpBB/includes/acp/acp_styles.php
@@ -2904,49 +2904,54 @@ pagination_sep = \'{PAGINATION_SEP}\'
$mode . '_path' => $path,
);
- if ($mode != 'imageset')
+ switch ($mode)
{
- switch ($mode)
- {
- case 'template':
- // We set a pre-defined bitfield here which we may use further in 3.2
- $sql_ary += array(
- 'bbcode_bitfield' => TEMPLATE_BITFIELD,
- 'template_storedb' => $store_db
- );
- break;
+ case 'template':
+ // We set a pre-defined bitfield here which we may use further in 3.2
+ $sql_ary += array(
+ 'bbcode_bitfield' => TEMPLATE_BITFIELD,
+ 'template_storedb' => $store_db
+ );
+ break;
- case 'theme':
- $sql_ary += array(
- 'theme_storedb' => $store_db,
- 'theme_data' => ($store_db) ? (($root_path) ? $this->db_theme_data($sql_ary, false, $root_path) : '') : '',
- 'theme_mtime' => filemtime("{$phpbb_root_path}styles/$path/theme/stylesheet.css")
- );
- break;
- }
- }
- else
- {
- $cfg_data = parse_cfg_file("$root_path$mode/imageset.cfg");
+ case 'theme':
+ // We are only interested in the theme configuration for now
+ $theme_cfg = parse_cfg_file("{$phpbb_root_path}styles/$path/theme/theme.cfg");
- $imageset_definitions = array();
- foreach ($this->imageset_keys as $topic => $key_array)
- {
- $imageset_definitions = array_merge($imageset_definitions, $key_array);
- }
+ if (isset($theme_cfg['parse_css_file']) && $theme_cfg['parse_css_file'])
+ {
+ $store_db = 1;
+ }
- foreach ($cfg_data as $key => $value)
- {
- if (strpos($key, 'img_') === 0)
+ $sql_ary += array(
+ 'theme_storedb' => $store_db,
+ 'theme_data' => ($store_db) ? $this->db_theme_data($sql_ary, false, $root_path) : '',
+ 'theme_mtime' => filemtime("{$phpbb_root_path}styles/$path/theme/stylesheet.css")
+ );
+ break;
+
+ case 'imageset':
+ $cfg_data = parse_cfg_file("$root_path$mode/imageset.cfg");
+
+ $imageset_definitions = array();
+ foreach ($this->imageset_keys as $topic => $key_array)
+ {
+ $imageset_definitions = array_merge($imageset_definitions, $key_array);
+ }
+
+ foreach ($cfg_data as $key => $value)
{
- $key = substr($key, 4);
- if (in_array($key, $imageset_definitions))
+ if (strpos($key, 'img_') === 0)
{
- $sql_ary[$key] = str_replace('{PATH}', "styles/$path/imageset/", trim($value));
+ $key = substr($key, 4);
+ if (in_array($key, $imageset_definitions))
+ {
+ $sql_ary[$key] = str_replace('{PATH}', "styles/$path/imageset/", trim($value));
+ }
}
}
- }
- unset($cfg_data);
+ unset($cfg_data);
+ break;
}
$db->sql_transaction('begin');
diff --git a/phpBB/includes/search/fulltext_native.php b/phpBB/includes/search/fulltext_native.php
index 674199d69f..679ab3127e 100755
--- a/phpBB/includes/search/fulltext_native.php
+++ b/phpBB/includes/search/fulltext_native.php
@@ -370,11 +370,13 @@ class fulltext_native extends search_backend
}
$title_match = '';
+ $group_by = true;
// Build some display specific sql strings
switch ($fields)
{
case 'titleonly':
$title_match = 'title_match = 1';
+ $group_by = false;
// no break
case 'firstpost':
$sql_array['FROM'][TOPICS_TABLE] = 't';
@@ -383,6 +385,7 @@ class fulltext_native extends search_backend
case 'msgonly':
$title_match = 'title_match = 0';
+ $group_by = false;
break;
}
diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php
index 998b8be5f6..38107d80db 100644
--- a/phpBB/includes/session.php
+++ b/phpBB/includes/session.php
@@ -1080,8 +1080,33 @@ class user extends session
{
$this->theme['theme_storedb'] = 1;
+ $stylesheet = file_get_contents("{$phpbb_root_path}styles/{$this->theme['theme_path']}/theme/stylesheet.css");
+ // Match CSS imports
+ $matches = array();
+ preg_match_all('/@import url\(["\'](.*)["\']\);/i', $stylesheet, $matches);
+
+ if (sizeof($matches))
+ {
+ $content = '';
+ foreach ($matches[0] as $idx => $match)
+ {
+ if ($content = @file_get_contents("{$phpbb_root_path}styles/{$this->theme['theme_path']}/theme/" . $matches[1][$idx]))
+ {
+ $content = trim($content);
+ }
+ else
+ {
+ $content = '';
+ }
+ $stylesheet = str_replace($match, $content, $stylesheet);
+ }
+ unset ($content);
+ }
+
+ $stylesheet = str_replace('./', 'styles/' . $this->theme['theme_path'] . '/theme/', $stylesheet);
+
$sql_ary = array(
- 'theme_data' => implode('', file("{$phpbb_root_path}styles/" . $this->theme['theme_path'] . '/theme/stylesheet.css')),
+ 'theme_data' => $stylesheet,
'theme_mtime' => time(),
'theme_storedb' => 1
);