aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2007-08-15 17:32:48 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2007-08-15 17:32:48 +0000
commit2bbd2fb1f97d4668e82c26badbe89c3d3fdc8169 (patch)
tree3dbeba19d89b737a07cf7cc23b8c4693d35234ea
parent3ada3b76f0ce86274647758db029d84a0f404886 (diff)
downloadforums-2bbd2fb1f97d4668e82c26badbe89c3d3fdc8169.tar
forums-2bbd2fb1f97d4668e82c26badbe89c3d3fdc8169.tar.gz
forums-2bbd2fb1f97d4668e82c26badbe89c3d3fdc8169.tar.bz2
forums-2bbd2fb1f97d4668e82c26badbe89c3d3fdc8169.tar.xz
forums-2bbd2fb1f97d4668e82c26badbe89c3d3fdc8169.zip
some bugs fixed
git-svn-id: file:///svn/phpbb/trunk@8033 89ea8834-ac86-4346-8a33-228a782c2dd0
-rw-r--r--phpBB/adm/style/custom_profile_fields.html2
-rw-r--r--phpBB/docs/CHANGELOG.html14
-rw-r--r--phpBB/includes/acp/acp_language.php2
-rw-r--r--phpBB/includes/acp/acp_profile.php4
-rw-r--r--phpBB/includes/acp/acp_styles.php20
-rw-r--r--phpBB/includes/functions.php8
-rw-r--r--phpBB/includes/functions_convert.php2
-rw-r--r--phpBB/includes/functions_messenger.php8
-rw-r--r--phpBB/includes/functions_privmsgs.php10
-rw-r--r--phpBB/includes/functions_user.php1
-rw-r--r--phpBB/includes/message_parser.php5
-rw-r--r--phpBB/includes/ucp/ucp_pm_options.php4
-rw-r--r--phpBB/includes/utf/utf_tools.php49
-rw-r--r--phpBB/language/en/common.php4
-rw-r--r--phpBB/search.php4
-rw-r--r--phpBB/style.php18
-rw-r--r--phpBB/styles/prosilver/template/custom_profile_fields.html4
-rw-r--r--phpBB/styles/prosilver/template/memberlist_view.html4
-rw-r--r--phpBB/styles/prosilver/template/simple_header.html5
-rw-r--r--phpBB/styles/prosilver/template/viewforum_body.html2
-rw-r--r--phpBB/styles/subsilver2/template/viewforum_body.html3
-rw-r--r--phpBB/viewonline.php2
-rw-r--r--phpBB/viewtopic.php4
23 files changed, 119 insertions, 60 deletions
diff --git a/phpBB/adm/style/custom_profile_fields.html b/phpBB/adm/style/custom_profile_fields.html
index 7516d6120e..351397d3c7 100644
--- a/phpBB/adm/style/custom_profile_fields.html
+++ b/phpBB/adm/style/custom_profile_fields.html
@@ -15,7 +15,7 @@
<!-- BEGIN bool -->
<!-- IF bool.FIELD_LENGTH eq 1 -->
- <!-- BEGIN options --><label><input type="radio" class="radio" name="{bool.FIELD_IDENT}" id="{bool.FIELD_IDENT}" value="{bool.options.OPTION_ID}"{bool.options.CHECKED} /> {bool.options.VALUE}</label><!-- END options -->
+ <!-- BEGIN options --><label for="{bool.FIELD_IDENT}_{bool.options.OPTION_ID}"><input type="radio" class="radio" name="{bool.FIELD_IDENT}" id="{bool.FIELD_IDENT}_{bool.options.OPTION_ID}" value="{bool.options.OPTION_ID}"{bool.options.CHECKED} /> {bool.options.VALUE}</label> <!-- END options -->
<!-- ELSE -->
<input type="checkbox" class="radio" name="{bool.FIELD_IDENT}" id="{bool.FIELD_IDENT}" value="1"<!-- IF bool.FIELD_VALUE --> checked="checked"<!-- ENDIF --> />
<!-- ENDIF -->
diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index b404925af9..cfa163a9a6 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -191,13 +191,13 @@ p a {
<ul class="menu">
<li>[Fix] MySQL, PostgreSQL and SQLite related database fixes (Bug #13862)</li>
<li>[Fix] Allow MS SQL to properly connect when using the mssql driver and PHP is less than either 4.4.1 or 5.1 (Bug #13874)</li>
- <li>[Fix] Ignore files containging HTML special chars in the filenames as gallery avatars (Bug #13906)</li>
+ <li>[Fix] Ignore files containing HTML special chars in the filenames as gallery avatars (Bug #13906)</li>
<li>[Fix] Multiple PM recipients not separated (Bug #13876)</li>
<li>[Change] Split the select list for the smilie order to clarify which are feasible and which are not (Bug #13911)</li>
<li>[Fix] Convert empty homepage fields (Bug #13917)</li>
<li>[Fix] Use board default DST setting on creating new profiles (Bug #11563)</li>
<li>[Feature] New constant PHPBB_EMBEDDED can be used to let phpBB not call exit; if wrapped/embedded (We may re-check this constant on other code locations later too)</li>
- <li>[Feature] append_sid() having a check for the function append_sid_phpbb_hook(). This function is called in favor of append_sid() with the exact same parameters if present.</li>
+ <li>[Feature] append_sid() having a check for the function append_sid_phpbb_hook(). This function is called in favour of append_sid() with the exact same parameters if present.</li>
<li>[Fix] Only list enabled modes within the dropdown at user administration (Bug #13883) - patch provided by damnian</li>
<li>[Fix] Properly display ban reason if selecting banned entries within the ACP (Bug #13896)</li>
<li>[Fix] Properly parse SQL expressions for Oracle (Bug #13916)</li>
@@ -214,7 +214,13 @@ p a {
<li>[Change] Do not force login on visiting topic/forum from notification emails (Bug #13818)</li>
<li>[Fix] Fixed cron_lock value for cron execution. This bug led to users having problems with the email queue and other cron related issues.</li>
<li>[Fix] Prevent white pages on php notices with gzip compression enabled (Bug #14096)</li>
- <li>[Fix] Propagate the cleaned idendtifier for CFPs (Bug #14072)</li>
+ <li>[Fix] Propagate the cleaned identifier for CFPs (Bug #14072)</li>
+ <li>[Fix] Do not display NO_TOPICS message if viewing non-postable category (Bug #13489)</li>
+ <li>[Fix] Let the theme immediately expire if changed from ACP for at least 30 minutes after change</li>
+ <li>[Fix] Do not append hilit= in search if highlighting term is empty (Bug #13910)</li>
+ <li>[Fix] Return to last page after voting in viewtopic instead of first page in topic (Bug #13976)</li>
+ <li>[Fix] If sending PM's to groups only include activated member (Bug #14040)</li>
+ <li>[Fix] Correctly wrap words in emails containing utf8 characters (Bug #14109)</li>
</ul>
</div>
@@ -286,7 +292,7 @@ p a {
<li>[Fix] Use global url validation for img bbcode tag (Bug #11935)</li>
<li>[Fix] Added proper unicode support to style names (Bug #12165)</li>
<li>[Fix] Search result extract should not end in the middle of a multibyte character (Bug #11863)</li>
- <li>[Fix] Missing localisation for an imageset no longer triggers a lot of "imageset refreshed" log messages (Bug #12027)</li>
+ <li>[Fix] Missing localisation for an imageset no longer triggers a lot of &quot;imageset refreshed&quot; log messages (Bug #12027)</li>
<li>[Fix] Explain that themes which need parsing cannot be stored on the filesystem (Bug #11134)</li>
<li>[Fix] Normalize usernames</li>
<li>[Change] Improved utf8_clean_string with a more complete list of homographs and NFKC normalization</li>
diff --git a/phpBB/includes/acp/acp_language.php b/phpBB/includes/acp/acp_language.php
index ff827c5141..b59729c873 100644
--- a/phpBB/includes/acp/acp_language.php
+++ b/phpBB/includes/acp/acp_language.php
@@ -163,7 +163,7 @@ class acp_language
case 'download_file':
case 'upload_data':
- if (!$lang_id || empty($_POST['entry']))
+ if (!$lang_id || empty($_POST['entry']) || !is_array($_POST['entry']))
{
trigger_error($user->lang['NO_LANG_ID'] . adm_back_link($this->u_action), E_USER_WARNING);
}
diff --git a/phpBB/includes/acp/acp_profile.php b/phpBB/includes/acp/acp_profile.php
index 3b70b716b4..00f8d64acb 100644
--- a/phpBB/includes/acp/acp_profile.php
+++ b/phpBB/includes/acp/acp_profile.php
@@ -492,11 +492,11 @@ class acp_profile
}
}
}
- else if ($field_type == FIELD_BOOL && $key == 'field_default_value')
+ /* else if ($field_type == FIELD_BOOL && $key == 'field_default_value')
{
// Get the number of options if this key is 'field_maxlen'
$var = request_var('field_default_value', 0);
- }
+ }*/
$cp->vars[$key] = $var;
}
diff --git a/phpBB/includes/acp/acp_styles.php b/phpBB/includes/acp/acp_styles.php
index 45e0ed35d1..300e795f3b 100644
--- a/phpBB/includes/acp/acp_styles.php
+++ b/phpBB/includes/acp/acp_styles.php
@@ -666,10 +666,8 @@ parse_css_file = {PARSE_CSS_FILE}
$filelist = $filelist_cats = array();
- // we want newlines no carriage returns!
- $_POST['template_data'] = (isset($_POST['template_data']) && !empty($_POST['template_data'])) ? str_replace(array("\r\n", "\r"), array("\n", "\n"), $_POST['template_data']) : '';
-
- $template_data = (STRIP) ? stripslashes($_POST['template_data']) : $_POST['template_data'];
+ $template_data = utf8_normalize_nfc(request_var('template_data', '', true));
+ $template_data = htmlspecialchars_decode($template_data);
$template_file = utf8_normalize_nfc(request_var('template_file', '', true));
$text_rows = max(5, min(999, request_var('text_rows', 20)));
$save_changes = (isset($_POST['save'])) ? true : false;
@@ -871,7 +869,7 @@ parse_css_file = {PARSE_CSS_FILE}
'SELECTED_TEMPLATE' => $template_info['template_name'],
'TEMPLATE_FILE' => $template_file,
- 'TEMPLATE_DATA' => htmlspecialchars($template_data),
+ 'TEMPLATE_DATA' => utf8_htmlspecialchars($template_data),
'TEXT_ROWS' => $text_rows)
);
}
@@ -1021,11 +1019,9 @@ parse_css_file = {PARSE_CSS_FILE}
$filelist = $filelist_cats = array();
- // we want newlines no carriage returns!
- $_POST['template_data'] = (isset($_POST['template_data']) && !empty($_POST['template_data'])) ? str_replace(array("\r\n", "\r"), array("\n", "\n"), $_POST['template_data']) : '';
-
- $theme_data = (STRIP) ? stripslashes($_POST['template_data']) : $_POST['template_data'];
- $theme_file = utf8_normalize_nfc(request_var('template_file', '', true));
+ $theme_data = utf8_normalize_nfc(request_var('template_data', '', true));
+ $theme_data = htmlspecialchars_decode($theme_data);
+ $theme_file = utf8_normalize_nfc(request_var('template_file', '', true));
$text_rows = max(5, min(999, request_var('text_rows', 20)));
$save_changes = (isset($_POST['save'])) ? true : false;
@@ -1040,7 +1036,7 @@ parse_css_file = {PARSE_CSS_FILE}
if (!($theme_info = $db->sql_fetchrow($result)))
{
- trigger_error($user->lang['NO_THEME'] . adm_bacl_link($this->u_action), E_USER_WARNING);
+ trigger_error($user->lang['NO_THEME'] . adm_back_link($this->u_action), E_USER_WARNING);
}
$db->sql_freeresult($result);
@@ -1188,7 +1184,7 @@ parse_css_file = {PARSE_CSS_FILE}
'SELECTED_TEMPLATE' => $theme_info['theme_name'],
'TEMPLATE_FILE' => $theme_file,
- 'TEMPLATE_DATA' => htmlspecialchars($theme_data),
+ 'TEMPLATE_DATA' => utf8_htmlspecialchars($theme_data),
'TEXT_ROWS' => $text_rows)
);
}
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 64162cc598..ea8b45116a 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -1977,7 +1977,7 @@ function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_bo
if (isset($_POST['confirm']))
{
// language frontier
- if ($_POST['confirm'] == $user->lang['YES'])
+ if ($_POST['confirm'] === $user->lang['YES'])
{
$confirm = true;
}
@@ -3498,14 +3498,14 @@ function truncate_string($string, $max_length = 60, $allow_reply = true, $append
}
$_chars = utf8_str_split(htmlspecialchars_decode($string));
- $chars = array_map('htmlspecialchars', $_chars);
+ $chars = array_map('utf8_htmlspecialchars', $_chars);
// Now check the length ;)
if (sizeof($chars) > $max_length)
{
// Cut off the last elements from the array
$string = implode('', array_slice($chars, 0, $max_length));
- $stripped = true;
+ $stripped = true;
}
if ($strip_reply)
@@ -3697,7 +3697,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
{
if (@extension_loaded('zlib') && !headers_sent())
{
- ob_end_flush();
+ ob_flush();
}
}
diff --git a/phpBB/includes/functions_convert.php b/phpBB/includes/functions_convert.php
index 5e1159cb22..12b3109430 100644
--- a/phpBB/includes/functions_convert.php
+++ b/phpBB/includes/functions_convert.php
@@ -228,7 +228,7 @@ function validate_website($url)
{
return '';
}
- else if (strpos(strtolower($url), 'http://') !== 0 && strlen($url) > 0)
+ else if (!preg_match('#^[a-z0-9]+://#i', $url) && strlen($url) > 0)
{
return 'http://' . $url;
}
diff --git a/phpBB/includes/functions_messenger.php b/phpBB/includes/functions_messenger.php
index cbc6dc5031..735588ce21 100644
--- a/phpBB/includes/functions_messenger.php
+++ b/phpBB/includes/functions_messenger.php
@@ -399,12 +399,12 @@ class messenger
if ($config['smtp_delivery'])
{
- $result = smtpmail($this->addresses, mail_encode($this->subject), wordwrap($this->msg), $err_msg, $headers);
+ $result = smtpmail($this->addresses, mail_encode($this->subject), utf8_wordwrap($this->msg), $err_msg, $headers);
}
else
{
ob_start();
- $result = $config['email_function_name']($mail_to, mail_encode($this->subject), implode("\n", preg_split("/\r?\n/", wordwrap($this->msg))), $headers);
+ $result = $config['email_function_name']($mail_to, mail_encode($this->subject), utf8_wordwrap($this->msg), $headers);
$err_msg = ob_get_clean();
}
@@ -633,12 +633,12 @@ class queue
if ($config['smtp_delivery'])
{
- $result = smtpmail($addresses, mail_encode($subject), wordwrap($msg), $err_msg, $headers);
+ $result = smtpmail($addresses, mail_encode($subject), utf8_wordwrap($msg), $err_msg, $headers);
}
else
{
ob_start();
- $result = $config['email_function_name']($to, mail_encode($subject), implode("\n", preg_split("/\r?\n/", wordwrap($msg))), $headers);
+ $result = $config['email_function_name']($to, mail_encode($subject), utf8_wordwrap($msg), $headers);
$err_msg = ob_get_clean();
}
diff --git a/phpBB/includes/functions_privmsgs.php b/phpBB/includes/functions_privmsgs.php
index 61f4648f4f..2a8990b607 100644
--- a/phpBB/includes/functions_privmsgs.php
+++ b/phpBB/includes/functions_privmsgs.php
@@ -1348,10 +1348,12 @@ function submit_pm($mode, $subject, &$data, $put_in_outbox = true)
if (isset($data['address_list']['g']) && sizeof($data['address_list']['g']))
{
- $sql = 'SELECT group_id, user_id
- FROM ' . USER_GROUP_TABLE . '
- WHERE ' . $db->sql_in_set('group_id', array_keys($data['address_list']['g'])) . '
- AND user_pending = 0';
+ $sql = 'SELECT u.user_type, ug.group_id, ug.user_id
+ FROM ' . USERS_TABLE . ' u, ' . USER_GROUP_TABLE . ' ug
+ WHERE ' . $db->sql_in_set('ug.group_id', array_keys($data['address_list']['g'])) . '
+ AND ug.user_pending = 0
+ AND u.user_id = ug.user_id
+ AND u.user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ')';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index cee09bef7c..fed783e880 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -173,6 +173,7 @@ function user_add($user_row, $cp_data = false)
'user_ip' => '',
'user_regdate' => time(),
'user_passchg' => time(),
+ 'user_options' => 895,
'user_inactive_reason' => 0,
'user_inactive_time' => 0,
diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php
index ea28061da0..fda31a20e3 100644
--- a/phpBB/includes/message_parser.php
+++ b/phpBB/includes/message_parser.php
@@ -1370,9 +1370,10 @@ class parse_message extends bbcode_firstpass
{
include_once($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
- $index = (int) key($_POST['delete_file']);
+ $index = array_keys(request_var('delete_file', array(0 => 0)));
+ $index = (!empty($index[0])) ? $index[0] : false;
- if (!empty($this->attachment_data[$index]))
+ if ($index !== false && !empty($this->attachment_data[$index]))
{
// delete selected attachment
if ($this->attachment_data[$index]['is_orphan'])
diff --git a/phpBB/includes/ucp/ucp_pm_options.php b/phpBB/includes/ucp/ucp_pm_options.php
index 95326090c7..b4f2cbeb65 100644
--- a/phpBB/includes/ucp/ucp_pm_options.php
+++ b/phpBB/includes/ucp/ucp_pm_options.php
@@ -312,8 +312,8 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit
// Remove Rule
if (isset($_POST['delete_rule']) && !isset($_POST['cancel']))
{
- $delete_id = array_map('intval', array_keys($_POST['delete_rule']));
- $delete_id = (int) $delete_id[0];
+ $delete_id = array_keys(request_var('delete_rule', array(0 => 0)));
+ $delete_id = (!empty($delete_id[0])) ? $delete_id[0] : 0;
if (!$delete_id)
{
diff --git a/phpBB/includes/utf/utf_tools.php b/phpBB/includes/utf/utf_tools.php
index 0c855be7c3..9ee39570a9 100644
--- a/phpBB/includes/utf/utf_tools.php
+++ b/phpBB/includes/utf/utf_tools.php
@@ -6,9 +6,6 @@
* @copyright (c) 2006 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
-* @todo make sure the replacements are called correctly
-* already done: strtolower, strtoupper, ucfirst, str_split, strrpos, strlen (hopefully!), strpos, substr, htmlspecialchars
-* remaining: strspn, chr, ord
*/
/**
@@ -621,7 +618,7 @@ else
* @author Harry Fuecks
* @param string $str UTF-8 encoded
* @param int $split_len number to characters to split string by
-* @return string characters in string reverses
+* @return array characters in string reverses
*/
function utf8_str_split($str, $split_len = 1)
{
@@ -1864,4 +1861,48 @@ function utf8_convert_message($message)
return utf8_htmlspecialchars(utf8_recode($message, 'ISO-8859-1'));
}
+/**
+* UTF8-compatible wordwrap replacement
+*
+* @param string $string The input string
+* @param int $width The column width. Defaults to 75.
+* @param string $break The line is broken using the optional break parameter. Defaults to '\n'.
+* @param bool $cut If the cut is set to TRUE, the string is always wrapped at the specified width. So if you have a word that is larger than the given width, it is broken apart.
+*
+* @return string the given string wrapped at the specified column.
+*
+*/
+function utf8_wordwrap($string, $width = 75, $break = "\n", $cut = false)
+{
+ // If cutting, we just split by $width chars
+ if ($cut)
+ {
+ return implode($break, utf8_str_split($string, $width));
+ }
+
+ // If not cutting, we first need to explode on spacer and then merge
+ $words = explode(' ', $string);
+ $lines = array();
+ $index = 0;
+
+ foreach ($words as $word)
+ {
+ if (!isset($lines[$index]))
+ {
+ $lines[$index] = '';
+ }
+
+ if (!empty($lines[$index]) && utf8_strlen($lines[$index]) > $width)
+ {
+ $lines[$index] = substr($lines[$index], 0, -1);
+ $index++;
+ $lines[$index] = '';
+ }
+
+ $lines[$index] .= $word . ' ';
+ }
+
+ return implode($break, $lines);
+}
+
?> \ No newline at end of file
diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php
index 5a433af5ee..9b3ebbfe52 100644
--- a/phpBB/language/en/common.php
+++ b/phpBB/language/en/common.php
@@ -625,8 +625,8 @@ $lang = array_merge($lang, array(
'VIEW_LATEST_POST' => 'View the latest post',
'VIEW_NEWEST_POST' => 'View first unread post',
'VIEW_NOTES' => 'View user notes',
- 'VIEW_ONLINE_TIME' => 'This data is based on users active over the past %d minute',
- 'VIEW_ONLINE_TIMES' => 'This data is based on users active over the past %d minutes',
+ 'VIEW_ONLINE_TIME' => 'based on users active over the past %d minute',
+ 'VIEW_ONLINE_TIMES' => 'based on users active over the past %d minutes',
'VIEW_TOPIC' => 'View topic',
'VIEW_TOPIC_ANNOUNCEMENT' => 'Announcement: ',
'VIEW_TOPIC_GLOBAL' => 'Global Announcement: ',
diff --git a/phpBB/search.php b/phpBB/search.php
index 8dabfa895a..89403c8893 100644
--- a/phpBB/search.php
+++ b/phpBB/search.php
@@ -761,7 +761,7 @@ if ($keywords || $author || $author_id || $search_id || $submit)
$u_forum_id = $forum_id;
}
- $view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$u_forum_id&amp;t=$result_topic_id&amp;hilit=$u_hilit");
+ $view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$u_forum_id&amp;t=$result_topic_id" . (($u_hilit) ? "&amp;hilit=$u_hilit" : ''));
$replies = ($auth->acl_get('m_approve', $forum_id)) ? $row['topic_replies_real'] : $row['topic_replies'];
@@ -890,7 +890,7 @@ if ($keywords || $author || $author_id || $search_id || $submit)
'U_VIEW_TOPIC' => $view_topic_url,
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id),
- 'U_VIEW_POST' => (!empty($row['post_id'])) ? append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=" . $row['topic_id'] . '&amp;p=' . $row['post_id'] . '&amp;hilit=' . $u_hilit) . '#p' . $row['post_id'] : '')
+ 'U_VIEW_POST' => (!empty($row['post_id'])) ? append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=" . $row['topic_id'] . '&amp;p=' . $row['post_id'] . (($u_hilit) ? '&amp;hilit=' . $u_hilit : '')) . '#p' . $row['post_id'] : '')
));
}
diff --git a/phpBB/style.php b/phpBB/style.php
index b33d473ae7..0ce5460dac 100644
--- a/phpBB/style.php
+++ b/phpBB/style.php
@@ -46,7 +46,7 @@ if (strspn($sid, 'abcdefABCDEF0123456789') !== strlen($sid))
// happen to have a current session it will output nothing. We will also cache the
// resulting CSS data for five minutes ... anything to reduce the load on the SQL
// server a little
-if ($id && $sid)
+if ($id)
{
if (empty($acm_type) || empty($dbms))
{
@@ -101,6 +101,11 @@ if ($id && $sid)
$theme = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
+ if (!$theme)
+ {
+ exit;
+ }
+
if ($user['user_id'] == ANONYMOUS)
{
$user['user_lang'] = $config['default_lang'];
@@ -115,16 +120,11 @@ if ($id && $sid)
$result = $db->sql_query($sql, 3600);
$img_array = array();
-
while ($row = $db->sql_fetchrow($result))
{
$img_array[$row['image_name']] = $row;
}
-
- if (!$theme)
- {
- exit;
- }
+ $db->sql_freeresult($result);
// gzip_compression
if ($config['gzip_compress'])
@@ -191,7 +191,11 @@ if ($id && $sid)
$db->sql_query($sql);
$cache->destroy('sql', STYLES_THEME_TABLE);
+ }
+ // Only set the expire time if the theme changed data is older than 30 minutes - to cope with changes from the ACP
+ if ($recache || $theme['theme_mtime'] > (time() - 1800))
+ {
header('Cache-Control: private, no-cache="set-cookie"');
header('Expires: 0');
header('Pragma: no-cache');
diff --git a/phpBB/styles/prosilver/template/custom_profile_fields.html b/phpBB/styles/prosilver/template/custom_profile_fields.html
index 81f6daabb4..44c68f532b 100644
--- a/phpBB/styles/prosilver/template/custom_profile_fields.html
+++ b/phpBB/styles/prosilver/template/custom_profile_fields.html
@@ -14,9 +14,9 @@
<!-- BEGIN bool -->
<!-- IF bool.FIELD_LENGTH eq 1 -->
- <!-- BEGIN options --><label for="{bool.FIELD_IDENT}_{bool.options.OPTION_ID}"><input type="radio" name="{bool.FIELD_IDENT}" id="{bool.FIELD_IDENT}_{bool.options.OPTION_ID}" value="{bool.options.OPTION_ID}"{bool.options.CHECKED} /> {bool.options.VALUE}</label> <!-- END options -->
+ <!-- BEGIN options --><label for="{bool.FIELD_IDENT}_{bool.options.OPTION_ID}"><input type="radio" class="radio" name="{bool.FIELD_IDENT}" id="{bool.FIELD_IDENT}_{bool.options.OPTION_ID}" value="{bool.options.OPTION_ID}"{bool.options.CHECKED} /> {bool.options.VALUE}</label> <!-- END options -->
<!-- ELSE -->
- <input type="checkbox" name="{bool.FIELD_IDENT}" id="{bool.FIELD_IDENT}"<!-- IF bool.FIELD_VALUE --> checked="checked"<!-- ENDIF --> />
+ <input type="checkbox" class="radio" name="{bool.FIELD_IDENT}" id="{bool.FIELD_IDENT}"<!-- IF bool.FIELD_VALUE --> checked="checked"<!-- ENDIF --> />
<!-- ENDIF -->
<!-- END bool -->
diff --git a/phpBB/styles/prosilver/template/memberlist_view.html b/phpBB/styles/prosilver/template/memberlist_view.html
index fe3d3f33b5..dfcf8a7f38 100644
--- a/phpBB/styles/prosilver/template/memberlist_view.html
+++ b/phpBB/styles/prosilver/template/memberlist_view.html
@@ -96,8 +96,8 @@
<div class="inner"><span class="corners-top"><span></span></span>
<h3>{L_SIGNATURE}</h3>
-
- <div class="postbody"><div class="content">{SIGNATURE}</div></div>
+
+ <div class="postbody"><div class="signature" style="border-top:none; margin-top: 0;">{SIGNATURE}</div></div>
<span class="corners-bottom"><span></span></span></div>
</div>
diff --git a/phpBB/styles/prosilver/template/simple_header.html b/phpBB/styles/prosilver/template/simple_header.html
index e702dcc48b..65538f5da9 100644
--- a/phpBB/styles/prosilver/template/simple_header.html
+++ b/phpBB/styles/prosilver/template/simple_header.html
@@ -49,6 +49,11 @@
<link href="{T_THEME_PATH}/normal.css" rel="alternate stylesheet" type="text/css" title="A" />
<link href="{T_THEME_PATH}/medium.css" rel="alternate stylesheet" type="text/css" title="A+" />
<link href="{T_THEME_PATH}/large.css" rel="alternate stylesheet" type="text/css" title="A++" />
+
+<!-- IF S_CONTENT_DIRECTION eq 'rtl' -->
+ <link href="{T_THEME_PATH}/bidi.css" rel="stylesheet" type="text/css" media="screen, projection" />
+<!-- ENDIF -->
+
<!-- DEFINE $POPUP = 1 -->
</head>
diff --git a/phpBB/styles/prosilver/template/viewforum_body.html b/phpBB/styles/prosilver/template/viewforum_body.html
index 83cf2581c1..b581fb8e90 100644
--- a/phpBB/styles/prosilver/template/viewforum_body.html
+++ b/phpBB/styles/prosilver/template/viewforum_body.html
@@ -157,11 +157,13 @@
<!-- ENDIF -->
<!-- BEGINELSE -->
+ <!-- IF S_IS_POSTABLE -->
<div class="panel">
<div class="inner"><span class="corners-top"><span></span></span>
<strong>{L_NO_TOPICS}</strong>
<span class="corners-bottom"><span></span></span></div>
</div>
+ <!-- ENDIF -->
<!-- END topicrow -->
<!-- IF S_SELECT_SORT_DAYS and not S_DISPLAY_ACTIVE -->
diff --git a/phpBB/styles/subsilver2/template/viewforum_body.html b/phpBB/styles/subsilver2/template/viewforum_body.html
index f2786d4ea1..b4c58834b2 100644
--- a/phpBB/styles/subsilver2/template/viewforum_body.html
+++ b/phpBB/styles/subsilver2/template/viewforum_body.html
@@ -214,7 +214,7 @@
</tr>
<!-- BEGINELSE -->
-
+ <!-- IF S_IS_POSTABLE -->
<tr>
<!-- IF S_TOPIC_ICONS -->
<td class="row1" colspan="7" height="30" align="center" valign="middle"><span class="gen"><!-- IF not S_SORT_DAYS -->{L_NO_TOPICS}<!-- ELSE -->{L_NO_TOPICS_TIME_FRAME}<!-- ENDIF --></span></td>
@@ -222,6 +222,7 @@
<td class="row1" colspan="6" height="30" align="center" valign="middle"><span class="gen"><!-- IF not S_SORT_DAYS -->{L_NO_TOPICS}<!-- ELSE -->{L_NO_TOPICS_TIME_FRAME}<!-- ENDIF --></span></td>
<!-- ENDIF -->
</tr>
+ <!-- ENDIF -->
<!-- END topicrow -->
<tr align="center">
diff --git a/phpBB/viewonline.php b/phpBB/viewonline.php
index 5b4349254f..6da8e81dbd 100644
--- a/phpBB/viewonline.php
+++ b/phpBB/viewonline.php
@@ -19,7 +19,7 @@ include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
-$user->setup();
+$user->setup('memberlist');
// Get and set some variables
$mode = request_var('mode', '');
diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php
index 165afcf9d5..1e1788db53 100644
--- a/phpBB/viewtopic.php
+++ b/phpBB/viewtopic.php
@@ -655,7 +655,7 @@ if (!empty($topic_data['poll_start']))
{
if (!sizeof($voted_id) || sizeof($voted_id) > $topic_data['poll_max_options'])
{
- $redirect_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id");
+ $redirect_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;start=$start");
meta_refresh(5, $redirect_url);
@@ -723,7 +723,7 @@ if (!empty($topic_data['poll_start']))
//, topic_last_post_time = ' . time() . " -- for bumping topics with new votes, ignore for now
$db->sql_query($sql);
- $redirect_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id");
+ $redirect_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;start=$start");
meta_refresh(5, $redirect_url);
trigger_error($user->lang['VOTE_SUBMITTED'] . '<br /><br />' . sprintf($user->lang['RETURN_TOPIC'], '<a href="' . $redirect_url . '">', '</a>'));