aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/acp/acp_styles.php6
-rw-r--r--phpBB/includes/cache/service.php11
-rw-r--r--phpBB/includes/extension/controller.php4
-rw-r--r--phpBB/includes/functions_compress.php37
-rw-r--r--phpBB/includes/template/template.php11
-rw-r--r--phpBB/includes/ucp/ucp_main.php17
6 files changed, 59 insertions, 27 deletions
diff --git a/phpBB/includes/acp/acp_styles.php b/phpBB/includes/acp/acp_styles.php
index d41ef571dd..db77825ae7 100644
--- a/phpBB/includes/acp/acp_styles.php
+++ b/phpBB/includes/acp/acp_styles.php
@@ -40,7 +40,7 @@ class acp_styles
public function main($id, $mode)
{
- global $db, $user, $phpbb_admin_path, $phpbb_root_path, $php_ext, $template, $request, $cache, $auth, $config;
+ global $db, $user, $phpbb_admin_path, $phpbb_root_path, $phpEx, $template, $request, $cache, $auth, $config;
$this->db = $db;
$this->user = $user;
@@ -50,12 +50,12 @@ class acp_styles
$this->auth = $auth;
$this->config = $config;
$this->phpbb_root_path = $phpbb_root_path;
- $this->php_ext = $php_ext;
+ $this->php_ext = $phpEx;
$this->default_style = $config['default_style'];
$this->styles_path = $this->phpbb_root_path . $this->styles_path_absolute . '/';
- $this->u_base_action = append_sid("{$phpbb_admin_path}index.$php_ext", "i={$id}");
+ $this->u_base_action = append_sid("{$phpbb_admin_path}index.{$this->php_ext}", "i={$id}");
$this->s_hidden_fields = array(
'mode' => $mode,
);
diff --git a/phpBB/includes/cache/service.php b/phpBB/includes/cache/service.php
index 37f32aa753..e63ec6e33a 100644
--- a/phpBB/includes/cache/service.php
+++ b/phpBB/includes/cache/service.php
@@ -332,27 +332,22 @@ class phpbb_cache_service
$parsed_array = array();
}
- $reparse = false;
$filename = $phpbb_root_path . 'styles/' . $style['style_path'] . '/style.cfg';
if (!file_exists($filename))
{
- continue;
+ return $parsed_array;
}
if (!isset($parsed_array['filetime']) || (($config['load_tplcompile'] && @filemtime($filename) > $parsed_array['filetime'])))
{
- $reparse = true;
- }
-
- // Re-parse cfg file
- if ($reparse)
- {
+ // Re-parse cfg file
$parsed_array = parse_cfg_file($filename);
$parsed_array['filetime'] = @filemtime($filename);
$this->driver->put('_cfg_' . $style['style_path'], $parsed_array);
}
+
return $parsed_array;
}
diff --git a/phpBB/includes/extension/controller.php b/phpBB/includes/extension/controller.php
index ec051c756f..2b8c50aafb 100644
--- a/phpBB/includes/extension/controller.php
+++ b/phpBB/includes/extension/controller.php
@@ -64,14 +64,14 @@ abstract class phpbb_extension_controller implements phpbb_extension_controller_
public function __construct()
{
global $request, $db, $user, $template, $config;
- global $php_ext, $phpbb_root_path;
+ global $phpEx, $phpbb_root_path;
$this->request = $request;
$this->db = $db;
$this->user = $user;
$this->template = $template;
$this->config = $config;
- $this->php_ext = $php_ext;
+ $this->php_ext = $phpEx;
$this->phpbb_root_path = $phpbb_root_path;
}
}
diff --git a/phpBB/includes/functions_compress.php b/phpBB/includes/functions_compress.php
index 72d8eabe76..8e07e6d1b8 100644
--- a/phpBB/includes/functions_compress.php
+++ b/phpBB/includes/functions_compress.php
@@ -24,6 +24,11 @@ class compress
var $fp = 0;
/**
+ * @var array
+ */
+ protected $filelist = array();
+
+ /**
* Add file to archive
*/
function add_file($src, $src_rm_prefix = '', $src_add_prefix = '', $skip_files = '')
@@ -123,6 +128,36 @@ class compress
}
/**
+ * Checks if a file by that name as already been added and, if it has,
+ * returns a new, unique name.
+ *
+ * @param string $name The filename
+ * @return string A unique filename
+ */
+ protected function unique_filename($name)
+ {
+ if (isset($this->filelist[$name]))
+ {
+ $start = $name;
+ $ext = '';
+ $this->filelist[$name]++;
+
+ // Separate the extension off the end of the filename to preserve it
+ $pos = strrpos($name, '.');
+ if ($pos !== false)
+ {
+ $start = substr($name, 0, $pos);
+ $ext = substr($name, $pos);
+ }
+
+ return $start . '_' . $this->filelist[$name] . $ext;
+ }
+
+ $this->filelist[$name] = 0;
+ return $name;
+ }
+
+ /**
* Return available methods
*/
function methods()
@@ -361,6 +396,7 @@ class compress_zip extends compress
function data($name, $data, $is_dir = false, $stat)
{
$name = str_replace('\\', '/', $name);
+ $name = $this->unique_filename($name);
$hexdtime = pack('V', $this->unix_to_dos_time($stat[9]));
@@ -633,6 +669,7 @@ class compress_tar extends compress
*/
function data($name, $data, $is_dir = false, $stat)
{
+ $name = $this->unique_filename($name);
$this->wrote = true;
$fzwrite = ($this->isbz && function_exists('bzwrite')) ? 'bzwrite' : (($this->isgz && @extension_loaded('zlib')) ? 'gzwrite' : 'fwrite');
diff --git a/phpBB/includes/template/template.php b/phpBB/includes/template/template.php
index 13fa845659..b7c3e00dee 100644
--- a/phpBB/includes/template/template.php
+++ b/phpBB/includes/template/template.php
@@ -139,7 +139,7 @@ class phpbb_template
*/
public function display($handle)
{
- $result = $this->call_hook($handle);
+ $result = $this->call_hook($handle, __FUNCTION__);
if ($result !== false)
{
return $result[0];
@@ -174,16 +174,17 @@ class phpbb_template
* Calls hook if any is defined.
*
* @param string $handle Template handle being displayed.
+ * @param string $method Method name of the caller.
*/
- private function call_hook($handle)
+ private function call_hook($handle, $method)
{
global $phpbb_hook;
- if (!empty($phpbb_hook) && $phpbb_hook->call_hook(array(__CLASS__, __FUNCTION__), $handle, $this))
+ if (!empty($phpbb_hook) && $phpbb_hook->call_hook(array(__CLASS__, $method), $handle, $this))
{
- if ($phpbb_hook->hook_return(array(__CLASS__, __FUNCTION__)))
+ if ($phpbb_hook->hook_return(array(__CLASS__, $method)))
{
- $result = $phpbb_hook->hook_return_result(array(__CLASS__, __FUNCTION__));
+ $result = $phpbb_hook->hook_return_result(array(__CLASS__, $method));
return array($result);
}
}
diff --git a/phpBB/includes/ucp/ucp_main.php b/phpBB/includes/ucp/ucp_main.php
index f21ea2471b..94fd59433b 100644
--- a/phpBB/includes/ucp/ucp_main.php
+++ b/phpBB/includes/ucp/ucp_main.php
@@ -69,17 +69,16 @@ class ucp_main
// Get cleaned up list... return only those forums having the f_read permission
$forum_ary = $auth->acl_getf('f_read', true);
$forum_ary = array_unique(array_keys($forum_ary));
-
- $sql = "SELECT t.* $sql_select
- FROM $sql_from
- WHERE t.topic_type = " . POST_GLOBAL . '
- AND ' . $db->sql_in_set('t.forum_id', $forum_ary) . '
- ORDER BY t.topic_last_post_time DESC';
-
$topic_list = $rowset = array();
+
// If the user can't see any forums, he can't read any posts because fid of 0 is invalid
if (!empty($forum_ary))
{
+ $sql = "SELECT t.* $sql_select
+ FROM $sql_from
+ WHERE t.topic_type = " . POST_GLOBAL . '
+ AND ' . $db->sql_in_set('t.forum_id', $forum_ary) . '
+ ORDER BY t.topic_last_post_time DESC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
@@ -671,7 +670,7 @@ class ucp_main
if ($topics_count)
{
phpbb_generate_template_pagination($template, $this->u_action, 'pagination', 'start', $topics_count, $config['topics_per_page'], $start);
-
+
$template->assign_vars(array(
'PAGE_NUMBER' => phpbb_on_page($template, $user, $this->u_action, $topics_count, $config['topics_per_page'], $start),
'TOTAL_TOPICS' => $user->lang('VIEW_FORUM_TOPICS', (int) $topics_count),
@@ -837,7 +836,7 @@ class ucp_main
'U_VIEW_TOPIC' => $view_topic_url,
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id),
));
-
+
phpbb_generate_template_pagination($template, append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $row['forum_id'] . "&t=$topic_id"), 'topicrow.pagination', 'start', $replies + 1, $config['posts_per_page'], 1, true, true);
}
}