aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorPaul S. Owen <psotfx@users.sourceforge.net>2003-05-26 23:53:34 +0000
committerPaul S. Owen <psotfx@users.sourceforge.net>2003-05-26 23:53:34 +0000
commite1484f522d28194c63d424bc621b93d3cf8865b9 (patch)
treea6c2e5b249ac9c688525f24737fc8e29d1c669e1 /phpBB
parent4e71b1b96d21e78463a768004c1c8ed2e1d952d5 (diff)
downloadforums-e1484f522d28194c63d424bc621b93d3cf8865b9.tar
forums-e1484f522d28194c63d424bc621b93d3cf8865b9.tar.gz
forums-e1484f522d28194c63d424bc621b93d3cf8865b9.tar.bz2
forums-e1484f522d28194c63d424bc621b93d3cf8865b9.tar.xz
forums-e1484f522d28194c63d424bc621b93d3cf8865b9.zip
Majority are UCP related updates ... avatars should now work, aside from gallery, fixed a few other issues, updated schema/basic
git-svn-id: file:///svn/phpbb/trunk@4062 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/adm/admin_ban.php4
-rw-r--r--phpBB/adm/admin_board.php115
-rw-r--r--phpBB/adm/admin_groups.php2
-rw-r--r--phpBB/adm/admin_icons.php8
-rw-r--r--phpBB/adm/admin_words.php4
-rw-r--r--phpBB/adm/forms.css12
-rw-r--r--phpBB/adm/index.php12
-rw-r--r--phpBB/adm/pagestart.php2
-rw-r--r--phpBB/adm/subSilver.css11
-rw-r--r--phpBB/common.php8
-rw-r--r--phpBB/includes/functions_posting.php35
-rw-r--r--phpBB/includes/functions_user.php246
-rw-r--r--phpBB/includes/message_parser.php2
-rw-r--r--phpBB/includes/ucp/ucp_activate.php4
-rw-r--r--phpBB/includes/ucp/ucp_main.php86
-rw-r--r--phpBB/includes/ucp/ucp_prefs.php4
-rw-r--r--phpBB/includes/ucp/ucp_profile.php198
-rw-r--r--phpBB/includes/ucp/ucp_register.php46
-rw-r--r--phpBB/index.php2
-rw-r--r--phpBB/install/schemas/mysql_basic.sql14
-rw-r--r--phpBB/install/schemas/mysql_schema.sql136
-rw-r--r--phpBB/language/en/lang_admin.php22
-rw-r--r--phpBB/language/en/lang_main.php158
-rw-r--r--phpBB/memberlist.php30
-rw-r--r--phpBB/templates/subSilver/index_body.html2
-rw-r--r--phpBB/templates/subSilver/subSilver.css57
-rw-r--r--phpBB/templates/subSilver/ucp_profile.html64
-rw-r--r--phpBB/templates/subSilver/ucp_register.html16
-rw-r--r--phpBB/templates/subSilver/viewforum_body.html12
-rwxr-xr-xphpBB/ucp.php17
-rw-r--r--phpBB/viewtopic.php31
31 files changed, 878 insertions, 482 deletions
diff --git a/phpBB/adm/admin_ban.php b/phpBB/adm/admin_ban.php
index f243d359d4..7299e20b1c 100644
--- a/phpBB/adm/admin_ban.php
+++ b/phpBB/adm/admin_ban.php
@@ -551,7 +551,7 @@ function display_details(option)
</tr>
<tr>
<td class="row2" width="45%"><?php echo $user->lang['BAN_LENGTH']; ?>:</td>
- <td class="row1"><select name="banlength"><?php echo $ban_end_options; ?></select>&nbsp; <input type="text" name="banlengthother" maxlength="10" size="10" /></td>
+ <td class="row1"><select name="banlength"><?php echo $ban_end_options; ?></select>&nbsp; <input class="post" type="text" name="banlengthother" maxlength="10" size="10" /></td>
</tr>
<tr>
<td class="row2" width="45%"><?php echo $user->lang['BAN_EXCLUDE']; ?>: <br /><span class="gensmall"><?php echo $l_ban_exclude_explain;;?></span></td>
@@ -559,7 +559,7 @@ function display_details(option)
</tr>
<tr>
<td class="row2" width="45%"><?php echo $user->lang['BAN_REASON']; ?>:</td>
- <td class="row1"><input type="text" name="banreason" maxlength="255" size="40" /></td>
+ <td class="row1"><input class="post" type="text" name="banreason" maxlength="255" size="40" /></td>
</tr>
<tr>
<td class="cat" colspan="2" align="center"> <input type="submit" name="bansubmit" value="<?php echo $user->lang['SUBMIT']; ?>" class="mainoption" />&nbsp; <input type="reset" value="<?php echo $user->lang['RESET']; ?>" class="liteoption" />&nbsp; <?php echo $s_submit_extra; ?></td>
diff --git a/phpBB/adm/admin_board.php b/phpBB/adm/admin_board.php
index d152b43ffc..344ead2100 100644
--- a/phpBB/adm/admin_board.php
+++ b/phpBB/adm/admin_board.php
@@ -102,7 +102,7 @@ while ($row = $db->sql_fetchrow($result))
if (isset($_POST['submit']))
{
- set_config($config_name, stripslashes($new[$config_name]));
+ set_config($config_name, str_replace('\\\\', '\\', addslashes($new[$config_name])));
}
}
@@ -137,15 +137,15 @@ switch ($mode)
?>
<tr>
<td class="row1" width="50%"><?php echo $user->lang['COOKIE_DOMAIN']; ?>: </td>
- <td class="row2"><input type="text" maxlength="255" name="cookie_domain" value="<?php echo $new['cookie_domain']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" maxlength="255" name="cookie_domain" value="<?php echo $new['cookie_domain']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['COOKIE_NAME']; ?>: </td>
- <td class="row2"><input type="text" maxlength="16" name="cookie_name" value="<?php echo $new['cookie_name']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" maxlength="16" name="cookie_name" value="<?php echo $new['cookie_name']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['COOKIE_PATH']; ?>: </td>
- <td class="row2"><input type="text" maxlength="255" name="cookie_path" value="<?php echo $new['cookie_path']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" maxlength="255" name="cookie_path" value="<?php echo $new['cookie_path']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['COOKIE_SECURE']; ?>: <br /><span class="gensmall"><?php echo $user->lang['COOKIE_SECURE_EXPLAIN']; ?></span></td>
@@ -179,19 +179,19 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['MAX_FILESIZE']; ?>: <br /><span class="gensmall"><?php echo $user->lang['MAX_FILESIZE_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="4" maxlength="10" name="avatar_filesize" value="<?php echo $new['avatar_filesize']; ?>" /> Bytes</td>
+ <td class="row2"><input class="post" type="text" size="4" maxlength="10" name="avatar_filesize" value="<?php echo $new['avatar_filesize']; ?>" /> Bytes</td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['MAX_AVATAR_SIZE']; ?>: <br /><span class="gensmall"><?php echo $user->lang['MAX_AVATAR_SIZE_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="3" maxlength="4" name="avatar_max_height" value="<?php echo $new['avatar_max_height']; ?>" /> x <input type="text" size="3" maxlength="4" name="avatar_max_width" value="<?php echo $new['avatar_max_width']; ?>"></td>
+ <td class="row2"><input class="post" type="text" size="3" maxlength="4" name="avatar_max_height" value="<?php echo $new['avatar_max_height']; ?>" /> x <input class="post" type="text" size="3" maxlength="4" name="avatar_max_width" value="<?php echo $new['avatar_max_width']; ?>"></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['AVATAR_STORAGE_PATH']; ?>: <br /><span class="gensmall"><?php echo $user->lang['AVATAR_STORAGE_PATH_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="20" maxlength="255" name="avatar_path" value="<?php echo $new['avatar_path']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="20" maxlength="255" name="avatar_path" value="<?php echo $new['avatar_path']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['AVATAR_GALLERY_PATH']; ?>: <br /><span class="gensmall"><?php echo $user->lang['AVATAR_GALLERY_PATH_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="20" maxlength="255" name="avatar_gallery_path" value="<?php echo $new['avatar_gallery_path']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="20" maxlength="255" name="avatar_gallery_path" value="<?php echo $new['avatar_gallery_path']; ?>" /></td>
</tr>
<?php
@@ -233,9 +233,20 @@ switch ($mode)
$namechange_yes = ($new['allow_namechange']) ? 'checked="checked"' : '';
$namechange_no = (!$new['allow_namechange']) ? 'checked="checked"' : '';
+ $emailreuse_yes = ($new['allow_emailreuse']) ? 'checked="checked"' : '';
+ $emailreuse_no = (!$new['allow_emailreuse']) ? 'checked="checked"' : '';
+
$attachments_yes = ($new['allow_attachments']) ? 'checked="checked"' : '';
$attachments_no = (!$new['allow_attachments']) ? 'checked="checked"' : '';
+ $user_char_ary = array('USERNAME_CHARS_ANY' => '.*', 'USERNAME_ALPHA_ONLY' => '[\w]+', 'USERNAME_ALPHA_SPACERS' => '[\w_\+\. \-\[\]]+');
+ $user_char_options = '';
+ foreach ($user_char_ary as $lang => $value)
+ {
+ $selected = ($new['allow_name_chars'] == $value) ? ' selected="selected"' : '';
+ $user_char_options .= '<option value="' . $value . '"' . $selected . '>' . $user->lang[$lang] . '</option>';
+ }
+
?>
<tr>
<td class="row1" width="50%"><?php echo $user->lang['DEFAULT_STYLE']; ?></td>
@@ -251,7 +262,7 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['DATE_FORMAT']; ?>: <br /><span class="gensmall"><?php echo $user->lang['DATE_FORMAT_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" name="default_dateformat" value="<?php echo $new['default_dateformat']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" name="default_dateformat" value="<?php echo $new['default_dateformat']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SYSTEM_TIMEZONE']; ?>: </td>
@@ -263,15 +274,15 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['CHAR_LIMIT']; ?>: <br /><span class="gensmall"><?php echo $user->lang['CHAR_LIMIT_EXPLAIN']; ?></span</td>
- <td class="row2"><input type="text" size="4" maxlength="4" name="max_post_chars" value="<?php echo $new['max_post_chars']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="4" maxlength="6" name="max_post_chars" value="<?php echo $new['max_post_chars']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SMILIES_LIMIT']; ?>: <br /><span class="gensmall"><?php echo $user->lang['SMILIES_LIMIT_EXPLAIN']; ?></span</td>
- <td class="row2"><input type="text" size="4" maxlength="4" name="max_post_smilies" value="<?php echo $new['max_post_smilies']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="4" maxlength="4" name="max_post_smilies" value="<?php echo $new['max_post_smilies']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['QUOTE_DEPTH_LIMIT']; ?>: <br /><span class="gensmall"><?php echo $user->lang['QUOTE_DEPTH_LIMIT_EXPLAIN']; ?></span</td>
- <td class="row2"><input type="text" size="4" maxlength="4" name="max_quote_depth" value="<?php echo $new['max_quote_depth']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="4" maxlength="4" name="max_quote_depth" value="<?php echo $new['max_quote_depth']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['ALLOW_TOPIC_NOTIFY']; ?>: </td>
@@ -286,6 +297,22 @@ switch ($mode)
<td class="row2"><input type="radio" name="allow_namechange" value="1" <?php echo $namechange_yes; ?> /> <?php echo $user->lang['YES']; ?>&nbsp;&nbsp;<input type="radio" name="allow_namechange" value="0" <?php echo $namechange_no; ?> /> <?php echo $user->lang['NO']; ?></td>
</tr>
<tr>
+ <td class="row1"><?php echo $user->lang['USERNAME_LENGTH']; ?>: <br /><span class="gensmall"><?php echo $user->lang['USERNAME_LENGTH_EXPLAIN']; ?></span></td>
+ <td class="row2"><input class="post" type="text" size="3" maxlength="3" name="min_name_chars" value="<?php echo $new['min_name_chars']; ?>" /> <?php echo $user->lang['MIN_CHARS']; ?>&nbsp;&nbsp;<input class="post" type="text" size="3" maxlength="3" name="max_name_chars" value="<?php echo $new['max_name_chars']; ?>" /> <?php echo $user->lang['MAX_CHARS']; ?></td>
+ </tr>
+ <tr>
+ <td class="row1"><?php echo $user->lang['USERNAME_CHARS']; ?>: <br /><span class="gensmall"><?php echo $user->lang['USERNAME_CHARS_EXPLAIN']; ?></span></td>
+ <td class="row2"><select name="allow_name_chars"><?php echo $user_char_options; ?></select></td>
+ </tr>
+ <tr>
+ <td class="row1"><?php echo $user->lang['PASSWORD_LENGTH']; ?>: <br /><span class="gensmall"><?php echo $user->lang['PASSWORD_LENGTH_EXPLAIN']; ?></span></td>
+ <td class="row2"><input class="post" type="text" size="3" maxlength="3" name="min_pass_chars" value="<?php echo $new['min_pass_chars']; ?>" /> <?php echo $user->lang['MIN_CHARS']; ?>&nbsp;&nbsp;<input class="post" type="text" size="3" maxlength="3" name="max_pass_chars" value="<?php echo $new['max_pass_chars']; ?>" /> <?php echo $user->lang['MAX_CHARS']; ?></td>
+ </tr>
+ <tr>
+ <td class="row1"><?php echo $user->lang['ALLOW_EMAIL_REUSE']; ?>: <br /><span class="gensmall"><?php echo $user->lang['ALLOW_EMAIL_REUSE_EXPLAIN']; ?></span></td>
+ <td class="row2"><input type="radio" name="allow_emailreuse" value="1" <?php echo $emailreuse_yes; ?> /> <?php echo $user->lang['YES']; ?>&nbsp;&nbsp;<input type="radio" name="allow_emailreuse" value="0" <?php echo $emailreuse_no; ?> /> <?php echo $user->lang['NO']; ?></td>
+ </tr>
+ <tr>
<td class="row1"><?php echo $user->lang['ALLOW_ATTACHMENTS']; ?>: </td>
<td class="row2"><input type="radio" name="allow_attachments" value="1" <?php echo $attachments_yes; ?> /> <?php echo $user->lang['YES']; ?>&nbsp;&nbsp;<input type="radio" name="allow_attachments" value="0" <?php echo $attachments_no; ?> /> <?php echo $user->lang['NO']; ?></td>
</tr>
@@ -295,7 +322,7 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['ALLOWED_TAGS']; ?>: <br /><span class="gensmall"><?php echo $user->lang['ALLOWED_TAGS_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="30" maxlength="255" name="allow_html_tags" value="<?php echo $new['allow_html_tags']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="30" maxlength="255" name="allow_html_tags" value="<?php echo $new['allow_html_tags']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['ALLOW_BBCODE']; ?>: </td>
@@ -311,7 +338,7 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['MAX_SIG_LENGTH']; ?>: <br /><span class="gensmall"><?php echo $user->lang['MAX_SIG_LENGTH_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="5" maxlength="4" name="max_sig_chars" value="<?php echo $new['max_sig_chars']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="5" maxlength="4" name="max_sig_chars" value="<?php echo $new['max_sig_chars']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['ALLOW_NO_CENSORS']; ?>: <br /><span class="gensmall"><?php echo $user->lang['ALLOW_NO_CENSORS_EXPLAIN']; ?></span></td>
@@ -349,15 +376,15 @@ switch ($mode)
?>
<tr>
<td class="row1" width="50%"><?php echo $user->lang['SITE_NAME']; ?>: </td>
- <td class="row2"><input type="text" size="40" maxlength="255" name="sitename" value="<?php echo htmlentities($new['sitename']); ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="40" maxlength="255" name="sitename" value="<?php echo htmlentities($new['sitename']); ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SITE_DESC']; ?>: </td>
- <td class="row2"><input type="text" size="40" maxlength="255" name="site_desc" value="<?php echo htmlentities($new['site_desc']); ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="40" maxlength="255" name="site_desc" value="<?php echo htmlentities($new['site_desc']); ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['BOARD_DISABLE']; ?>: <br /><span class="gensmall"><?php echo $user->lang['BOARD_DISABLE_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="radio" name="board_disable" value="1" <?php echo $disable_board_yes; ?> /> <?php echo $user->lang['YES']; ?>&nbsp;&nbsp;<input type="radio" name="board_disable" value="0" <?php echo $disable_board_no; ?> /> <?php echo $user->lang['NO']; ?><br /><input type="text" name="board_disable_msg" maxlength="255" size="40" value="<?php echo $new['board_disable_msg']; ?>" /></td>
+ <td class="row2"><input type="radio" name="board_disable" value="1" <?php echo $disable_board_yes; ?> /> <?php echo $user->lang['YES']; ?>&nbsp;&nbsp;<input type="radio" name="board_disable" value="0" <?php echo $disable_board_no; ?> /> <?php echo $user->lang['NO']; ?><br /><input class="post" type="text" name="board_disable_msg" maxlength="255" size="40" value="<?php echo $new['board_disable_msg']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['ACC_ACTIVATION']; ?>: <br /><span class="gensmall"><?php echo $user->lang['ACC_ACTIVATION_EXPLAIN']; ?></span></td>
@@ -374,7 +401,7 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['COPPA_FAX']; ?>: </td>
- <td class="row2"><input type="text" size="25" maxlength="100" name="coppa_fax" value="<?php echo $new['coppa_fax']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="25" maxlength="100" name="coppa_fax" value="<?php echo $new['coppa_fax']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['COPPA_MAIL']; ?>: <br /><span class="gensmall"><?php echo $user->lang['COPPA_MAIL_EXPLAIN']; ?></span></td>
@@ -386,15 +413,15 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['BOXES_MAX']; ?>: <br /><span class="gensmall"><?php echo $user->lang['BOXES_MAX_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" maxlength="4" size="4" name="pm_max_boxes" value="<?php echo $new['pm_max_boxes']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" maxlength="4" size="4" name="pm_max_boxes" value="<?php echo $new['pm_max_boxes']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['BOXES_LIMIT']; ?>: <br /><span class="gensmall"><?php echo $user->lang['BOXES_LIMIT_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" maxlength="4" size="4" name="pm_max_msgs" value="<?php echo $new['pm_max_msgs']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" maxlength="4" size="4" name="pm_max_msgs" value="<?php echo $new['pm_max_msgs']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['EDIT_TIME']; ?>: <br /><span class="gensmall"><?php echo $user->lang['EDIT_TIME_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" maxlength="3" size="3" name="edit_time" value="<?php echo $new['edit_time']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" maxlength="3" size="3" name="edit_time" value="<?php echo $new['edit_time']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['DISPLAY_LAST_EDITED']; ?>: <br /><span class="gensmall"><?php echo $user->lang['DISPLAY_LAST_EDITED_EXPLAIN']; ?></span></td>
@@ -402,31 +429,31 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['FLOOD_INTERVAL']; ?>: <br /><span class="gensmall"><?php echo $user->lang['FLOOD_INTERVAL_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="3" maxlength="4" name="flood_interval" value="<?php echo $new['flood_interval']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="3" maxlength="4" name="flood_interval" value="<?php echo $new['flood_interval']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['MIN_SEARCH_CHARS']; ?>: <br /><span class="gensmall"><?php echo $user->lang['MIN_SEARCH_CHARS_EXPLAIN']; ?></span</td>
- <td class="row2"><input type="text" size="3" maxlength="3" name="min_search_chars" value="<?php echo $new['min_search_chars']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="3" maxlength="3" name="min_search_chars" value="<?php echo $new['min_search_chars']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['MAX_SEARCH_CHARS']; ?>: <br /><span class="gensmall"><?php echo $user->lang['MAX_SEARCH_CHARS_EXPLAIN']; ?></span</td>
- <td class="row2"><input type="text" size="3" maxlength="3" name="max_search_chars" value="<?php echo $new['max_search_chars']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="3" maxlength="3" name="max_search_chars" value="<?php echo $new['max_search_chars']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['TOPICS_PER_PAGE']; ?>: </td>
- <td class="row2"><input type="text" name="topics_per_page" size="3" maxlength="4" value="<?php echo $new['topics_per_page']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" name="topics_per_page" size="3" maxlength="4" value="<?php echo $new['topics_per_page']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['POSTS_PER_PAGE']; ?>: </td>
- <td class="row2"><input type="text" name="posts_per_page" size="3" maxlength="4" value="<?php echo $new['posts_per_page']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" name="posts_per_page" size="3" maxlength="4" value="<?php echo $new['posts_per_page']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['HOT_THRESHOLD']; ?>: </td>
- <td class="row2"><input type="text" name="hot_threshold" size="3" maxlength="4" value="<?php echo $new['hot_threshold']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" name="hot_threshold" size="3" maxlength="4" value="<?php echo $new['hot_threshold']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['MAX_POLL_OPTIONS']; ?>: </td>
- <td class="row2"><input type="text" name="max_poll_options" size="4" maxlength="4" value="<?php echo $new['max_poll_options']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" name="max_poll_options" size="4" maxlength="4" value="<?php echo $new['max_poll_options']; ?>" /></td>
</tr>
<?php
@@ -454,11 +481,11 @@ switch ($mode)
</tr>
<tr>
<td class="row1" width="50%"><?php echo $user->lang['CONTACT_EMAIL']; ?>: <br /><span class="gensmall"><?php echo $user->lang['CONTACT_EMAIL_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="25" maxlength="100" name="board_contact" value="<?php echo $new['board_contact']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="25" maxlength="100" name="board_contact" value="<?php echo $new['board_contact']; ?>" /></td>
</tr>
<tr>
<td class="row1" width="50%"><?php echo $user->lang['ADMIN_EMAIL']; ?>: <br /><span class="gensmall"><?php echo $user->lang['ADMIN_EMAIL_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="25" maxlength="100" name="board_email" value="<?php echo $new['board_email']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="25" maxlength="100" name="board_email" value="<?php echo $new['board_email']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['EMAIL_SIG']; ?>: <br /><span class="gensmall"><?php echo $user->lang['EMAIL_SIG_EXPLAIN']; ?></span></td>
@@ -470,19 +497,19 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SMTP_SERVER']; ?>: </td>
- <td class="row2"><input type="text" name="smtp_host" value="<?php echo $new['smtp_host']; ?>" size="25" maxlength="50" /></td>
+ <td class="row2"><input class="post" type="text" name="smtp_host" value="<?php echo $new['smtp_host']; ?>" size="25" maxlength="50" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SMTP_PORT']; ?>: <br /><span class="gensmall"><?php echo $user->lang['SMTP_PORT_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" name="smtp_port" value="<?php echo $new['smtp_port']; ?>" size="4" maxlength="5" /></td>
+ <td class="row2"><input class="post" type="text" name="smtp_port" value="<?php echo $new['smtp_port']; ?>" size="4" maxlength="5" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SMTP_USERNAME']; ?>: <br /><span class="gensmall"><?php echo $user->lang['SMTP_USERNAME_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" name="smtp_username" value="<?php echo $new['smtp_username']; ?>" size="25" maxlength="255" /></td>
+ <td class="row2"><input class="post" type="text" name="smtp_username" value="<?php echo $new['smtp_username']; ?>" size="25" maxlength="255" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SMTP_PASSWORD']; ?>: <br /><span class="gensmall"><?php echo $user->lang['SMTP_PASSWORD_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="password" name="smtp_password" value="<?php echo $new['smtp_password']; ?>" size="25" maxlength="255" /></td>
+ <td class="row2"><input class="post" type="password" name="smtp_password" value="<?php echo $new['smtp_password']; ?>" size="25" maxlength="255" /></td>
</tr>
<?php
@@ -503,15 +530,15 @@ switch ($mode)
?>
<tr>
<td class="row1"><?php echo $user->lang['SERVER_NAME']; ?>: <br /><span class="gensmall"><?php echo $user->lang['SERVER_NAME_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" maxlength="255" size="40" name="server_name" value="<?php echo $new['server_name']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" maxlength="255" size="40" name="server_name" value="<?php echo $new['server_name']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SERVER_PORT']; ?>: <br /><span class="gensmall"><?php echo $user->lang['SERVER_PORT_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" maxlength="5" size="5" name="server_port" value="<?php echo $new['server_port']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" maxlength="5" size="5" name="server_port" value="<?php echo $new['server_port']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SCRIPT_PATH']; ?>: <br /><span class="gensmall"><?php echo $user->lang['SCRIPT_PATH_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" maxlength="255" name="script_path" value="<?php echo $new['script_path']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" maxlength="255" name="script_path" value="<?php echo $new['script_path']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['IP_VALID']; ?>: <br /><span class="gensmall"><?php echo $user->lang['IP_VALID_EXPLAIN']; ?></span></td>
@@ -527,11 +554,11 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SMILIES_PATH']; ?>: <br /><span class="gensmall"><?php echo $user->lang['SMILIES_PATH_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="20" maxlength="255" name="smilies_path" value="<?php echo $new['smilies_path']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="20" maxlength="255" name="smilies_path" value="<?php echo $new['smilies_path']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['ICONS_PATH']; ?>: <br /><span class="gensmall"><?php echo $user->lang['ICONS_PATH_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="20" maxlength="255" name="icons_path" value="<?php echo $new['icons_path']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="20" maxlength="255" name="icons_path" value="<?php echo $new['icons_path']; ?>" /></td>
</tr>
<?php
@@ -557,15 +584,15 @@ switch ($mode)
?>
<tr>
<td class="row1" width="50%"><?php echo $user->lang['LIMIT_LOAD']; ?>: <br /><span class="gensmall"><?php echo $user->lang['LIMIT_LOAD_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="4" maxlength="4" name="limit_load" value="<?php echo $new['limit_load']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="4" maxlength="4" name="limit_load" value="<?php echo $new['limit_load']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SESSION_LENGTH']; ?>: </td>
- <td class="row2"><input type="text" maxlength="5" size="5" name="session_length" value="<?php echo $new['session_length']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" maxlength="5" size="5" name="session_length" value="<?php echo $new['session_length']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['LIMIT_SESSIONS']; ?>: <br /><span class="gensmall"><?php echo $user->lang['LIMIT_SESSIONS_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="4" maxlength="4" name="active_sessions" value="<?php echo $new['active_sessions']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="4" maxlength="4" name="active_sessions" value="<?php echo $new['active_sessions']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['YES_POST_MARKING']; ?>: <br /><span class="gensmall"><?php echo $user->lang['YES_POST_MARKING_EXPLAIN']; ?></span></td>
@@ -581,7 +608,7 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['VIEW_ONLINE_TIME']; ?>: <br /><span class="gensmall"><?php echo $user->lang['VIEW_ONLINE_TIME_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="4" maxlength="3" name="load_online_time" value="<?php echo $new['load_online_time']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="4" maxlength="3" name="load_online_time" value="<?php echo $new['load_online_time']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['YES_BIRTHDAYS']; ?>: </td>
@@ -597,7 +624,7 @@ switch ($mode)
</tr>
<tr>
<td class="row1"><?php echo $user->lang['SEARCH_INTERVAL']; ?>: <br /><span class="gensmall"><?php echo $user->lang['SEARCH_INTERVAL_EXPLAIN']; ?></span></td>
- <td class="row2"><input type="text" size="3" maxlength="4" name="search_interval" value="<?php echo $new['search_interval']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="3" maxlength="4" name="search_interval" value="<?php echo $new['search_interval']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['YES_SEARCH_UPDATE']; ?>: <br /><span class="gensmall"><?php echo $user->lang['YES_SEARCH_UPDATE_EXPLAIN']; ?></span></td>
diff --git a/phpBB/adm/admin_groups.php b/phpBB/adm/admin_groups.php
index 93a7a61b4a..e0ebf48c30 100644
--- a/phpBB/adm/admin_groups.php
+++ b/phpBB/adm/admin_groups.php
@@ -844,7 +844,7 @@ function swatch()
?>
<tr>
<td class="<?php echo $row_class; ?>"><a href="admin_groups.<?php echo "$phpEx$SID&amp;action=list&amp;g=$group_id"; ?>"><?php echo $group_name;?></a></td>
- <td class="<?php echo $row_class; ?>" align="center" nowrap="nowrap">&nbsp;<a href="admin_groups.<?php echo "$phpEx$SID&amp;action=add&amp;g=$group_id"; ?>"><?php echo $user->lang['ADD']; ?></a> | <a href="admin_groups.<?php echo "$phpEx$SID&amp;action=edit&amp;g=$group_id"; ?>"><?php echo $user->lang['EDIT']; ?></a><?php
+ <td class="<?php echo $row_class; ?>" align="center" nowrap="nowrap">&nbsp;<a href="admin_groups.<?php echo "$phpEx$SID&amp;action=edit&amp;g=$group_id"; ?>"><?php echo $user->lang['EDIT']; ?></a><?php
if (!$special_toggle)
{
diff --git a/phpBB/adm/admin_icons.php b/phpBB/adm/admin_icons.php
index 1a8d0322e2..4376f6c640 100644
--- a/phpBB/adm/admin_icons.php
+++ b/phpBB/adm/admin_icons.php
@@ -232,11 +232,11 @@ function update_image_dimensions()
?>
<tr>
<td class="row2"><?php echo $user->lang[$lang . '_CODE'] ?></td>
- <td class="row2"><input type="text" name="code" value="<?php echo (!empty($data['code'])) ? $data['code'] : '' ?>" /></td>
+ <td class="row2"><input class="post" type="text" name="code" value="<?php echo (!empty($data['code'])) ? $data['code'] : '' ?>" /></td>
</tr>
<tr>
<td class="row2"><?php echo $user->lang[$lang . '_EMOTION'] ?></td>
- <td class="row2"><input type="text" name="emotion" value="<?php echo (!empty($data['emoticon'])) ? $data['emoticon'] : '' ?>" /></td>
+ <td class="row2"><input class="post" type="text" name="emotion" value="<?php echo (!empty($data['emoticon'])) ? $data['emoticon'] : '' ?>" /></td>
</tr>
<?php
@@ -245,11 +245,11 @@ function update_image_dimensions()
?>
<tr>
<td class="row1"><?php echo $user->lang[$lang . '_WIDTH'] ?></td>
- <td class="row1"><input type="text" size="3" name="width" value="<?php echo (!empty($data[$fields .'_width'])) ? $data[$fields .'_width'] : '' ?>" /></td>
+ <td class="row1"><input class="post" type="text" size="3" name="width" value="<?php echo (!empty($data[$fields .'_width'])) ? $data[$fields .'_width'] : '' ?>" /></td>
</tr>
<tr>
<td class="row2"><?php echo $user->lang[$lang . '_HEIGHT'] ?></td>
- <td class="row2"><input type="text" size="3" name="height" value="<?php echo (!empty($data[$fields .'_height'])) ? $data[$fields .'_height'] : '' ?>" /></td>
+ <td class="row2"><input class="post" type="text" size="3" name="height" value="<?php echo (!empty($data[$fields .'_height'])) ? $data[$fields .'_height'] : '' ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['DISPLAY_ON_POSTING'] ?></td>
diff --git a/phpBB/adm/admin_words.php b/phpBB/adm/admin_words.php
index 2ff3ff0769..66c69fa126 100644
--- a/phpBB/adm/admin_words.php
+++ b/phpBB/adm/admin_words.php
@@ -105,11 +105,11 @@ if ($mode != '')
</tr>
<tr>
<td class="row1"><?php echo $user->lang['WORD']; ?></td>
- <td class="row2"><input type="text" name="word" value="<?php echo $word_info['word']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" name="word" value="<?php echo $word_info['word']; ?>" /></td>
</tr>
<tr>
<td class="row1"><?php echo $user->lang['REPLACEMENT']; ?></td>
- <td class="row2"><input type="text" name="replacement" value="<?php echo $word_info['replacement']; ?>" /></td>
+ <td class="row2"><input class="post" type="text" name="replacement" value="<?php echo $word_info['replacement']; ?>" /></td>
</tr>
<tr>
<td class="cat" colspan="2" align="center"><?php echo $s_hidden_fields; ?><input class="mainoption" type="submit" name="save" value="<?php echo $user->lang['SUBMIT']; ?>" /></td>
diff --git a/phpBB/adm/forms.css b/phpBB/adm/forms.css
index ff9c6dc922..8817693729 100644
--- a/phpBB/adm/forms.css
+++ b/phpBB/adm/forms.css
@@ -1,13 +1,13 @@
-/* Fancy form styles for IE */
+/* $Id$ */
-input, textarea, select {
- border-width: 1px;
+input {
+ text-indent: 2px;
}
-input {
- text-indent: 2px;
+textarea, select, input.post, input.mainoption, input.liteoption {
+ border: 1px solid;
}
.postbody {
- line-height: 18px
+ line-height: 140%;
}
diff --git a/phpBB/adm/index.php b/phpBB/adm/index.php
index 09578054b3..83c4243e86 100644
--- a/phpBB/adm/index.php
+++ b/phpBB/adm/index.php
@@ -156,7 +156,7 @@ elseif (isset($_GET['pane']) && $_GET['pane'] == 'right')
if ($in_sql != '')
{
- $sql = (isset($_POST['activate'])) ? "UPDATE " . USERS_TABLE . " SET user_active = 1 WHERE user_id IN ($in_sql)" : "DELETE FROM " . USERS_TABLE . " WHERE user_id IN ($in_sql)";
+ $sql = (isset($_POST['activate'])) ? 'UPDATE ' . USERS_TABLE . " SET user_active = 1 WHERE user_id IN ($in_sql)" : "DELETE FROM " . USERS_TABLE . " WHERE user_id IN ($in_sql)";
$db->sql_query($sql);
if (!isset($_POST['delete']))
@@ -207,7 +207,7 @@ elseif (isset($_GET['pane']) && $_GET['pane'] == 'right')
do
{
$emailer->use_template('user_remind_inactive', $row['user_lang']);
- $emailer->email_address($row['user_email']);
+ $emailer->to($row['user_email']);
$emailer->assign_vars(array(
'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $config['board_email_sig']),
@@ -531,11 +531,11 @@ elseif (isset($_GET['pane']) && $_GET['pane'] == 'right')
</tr>
<?php
- $sql = "SELECT user_id, username, user_regdate
- FROM " . USERS_TABLE . "
+ $sql = 'SELECT user_id, username, user_regdate
+ FROM ' . USERS_TABLE . '
WHERE user_active = 0
- AND user_id <> " . ANONYMOUS . "
- ORDER BY user_regdate ASC";
+ AND user_id <> ' . ANONYMOUS . '
+ ORDER BY user_regdate ASC';
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result))
diff --git a/phpBB/adm/pagestart.php b/phpBB/adm/pagestart.php
index cde8711f24..4f2339556c 100644
--- a/phpBB/adm/pagestart.php
+++ b/phpBB/adm/pagestart.php
@@ -27,7 +27,7 @@ if (!defined('IN_PHPBB'))
define('IN_ADMIN', true);
define('NEED_SID', true);
require($phpbb_root_path . 'common.'.$phpEx);
-require_once($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
+require($phpbb_root_path . 'includes/functions_admin.'.$phpEx);
// Start session management
$user->start($update);
diff --git a/phpBB/adm/subSilver.css b/phpBB/adm/subSilver.css
index bfc0b403b7..6892d07784 100644
--- a/phpBB/adm/subSilver.css
+++ b/phpBB/adm/subSilver.css
@@ -6,6 +6,9 @@
Copyright (c) 2002 phpBB Group
*/
+/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */
+@import url("forms.css");
+
body {
background-color: white;
font-family: Verdana, Arial, Helvetica, sans-serif;
@@ -106,14 +109,15 @@ table.bg {
}
th, td {
- font: 8pt Verdana, Arial, Helvetica, sans-serif;
+ font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
}
th {
height: 25px;
background-color: #006699;
color: #FFA34F;
- font: bold 11px;
+ font-weight: bold;
+ font-size: 11px;
}
th.menu {
@@ -175,6 +179,3 @@ input.liteoption {
background-color: #FAFAFA;
font-weight: normal;
}
-
-/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */
-@import url("forms.css");
diff --git a/phpBB/common.php b/phpBB/common.php
index 2f23b5ff91..c30742eb9c 100644
--- a/phpBB/common.php
+++ b/phpBB/common.php
@@ -69,11 +69,11 @@ define('USER_ACTIVATION_NONE', 0);
define('USER_ACTIVATION_SELF', 1);
define('USER_ACTIVATION_ADMIN', 2);
define('USER_ACTIVATION_DISABLE', 3);
+define('USER_ACTIVATION_SELF_ADMIN', 4);
-define('USER_AVATAR_NONE', 0);
-define('USER_AVATAR_UPLOAD', 1);
-define('USER_AVATAR_REMOTE', 2);
-define('USER_AVATAR_GALLERY', 3);
+define('AVATAR_UPLOAD', 1);
+define('AVATAR_REMOTE', 2);
+define('AVATAR_GALLERY', 3);
// ACL
define('ACL_NO', 0);
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index c5a45cffa3..b790d2831a 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -883,6 +883,10 @@ function phpbb_unlink($filename, $mode = 'file', $use_ftp = false)
}
+
+
+
+
//
// posting.php specific
//
@@ -968,8 +972,8 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
$post_sql = array_merge($post_sql, array(
'post_checksum' => $post_data['message_md5'],
'post_text' => $message,
- 'post_encoding' => $user->lang['ENCODING']
- ));
+ 'post_encoding' => $user->lang['ENCODING'])
+ );
}
if ($mode == 'edit')
@@ -995,9 +999,9 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
if ($poll['poll_start'] && $mode == 'edit')
{
- $sql = "SELECT * FROM " . POLL_OPTIONS_TABLE . "
- WHERE topic_id = " . $post_data['topic_id'] . "
- ORDER BY poll_option_id";
+ $sql = 'SELECT * FROM ' . POLL_OPTIONS_TABLE . '
+ WHERE topic_id = ' . $post_data['topic_id'] . '
+ ORDER BY poll_option_id';
$result = $db->sql_query($sql);
while ($cur_poll_options[] = $db->sql_fetchrow($result));
@@ -1010,15 +1014,16 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
{
if (empty($cur_poll_options[$i]))
{
- $sql = "INSERT INTO " . POLL_OPTIONS_TABLE . " (poll_option_id, topic_id, poll_option_text)
- VALUES (" . $i . ", " . $post_data['topic_id'] . ", '" . $db->sql_escape($poll['poll_options'][$i]) . "')";
+ $sql = 'INSERT INTO ' . POLL_OPTIONS_TABLE . " (poll_option_id, topic_id, poll_option_text)
+ VALUES ($i, " . $post_data['topic_id'] . ", '" . $db->sql_escape($poll['poll_options'][$i]) . "')";
$db->sql_query($sql);
}
else if ($poll['poll_options'][$i] != $cur_poll_options[$i])
{
$sql = "UPDATE " . POLL_OPTIONS_TABLE . "
SET poll_option_text = '" . $db->sql_escape($poll['poll_options'][$i]) . "'
- WHERE poll_option_id = " . $cur_poll_options[$i]['poll_option_id'];
+ WHERE poll_option_id = " . $cur_poll_options[$i]['poll_option_id'] . "
+ AND topic_id = $topic_id";
$db->sql_query($sql);
}
}
@@ -1026,9 +1031,9 @@ function submit_post($mode, $message, $subject, $username, $topic_type, $bbcode_
if (sizeof($poll['poll_options']) < sizeof($cur_poll_options))
{
- $sql = "DELETE FROM " . POLL_OPTIONS_TABLE . "
- WHERE poll_option_id > " . sizeof($poll['poll_options']) . "
- AND topic_id = " . $post_data['topic_id'];
+ $sql = 'DELETE FROM ' . POLL_OPTIONS_TABLE . '
+ WHERE poll_option_id > ' . sizeof($poll['poll_options']) . '
+ AND topic_id = ' . $post_data['topic_id'];
$db->sql_query($sql);
}
}
@@ -1248,6 +1253,10 @@ function user_notification($mode, $subject, $forum_id, $topic_id, $post_id)
}
$db->sql_freeresult($result);
+
+
+
+ // TODO : Paul
// Now grab group settings ... users can belong to multiple groups so we grab
// the minimum setting for all options. ACL_NO overrides ACL_YES so act appropriatley
$sql = "SELECT ug.user_id, MIN(a.auth_setting) as min_setting
@@ -1272,6 +1281,10 @@ function user_notification($mode, $subject, $forum_id, $topic_id, $post_id)
$allowed_users = array_unique($allowed_users);
}
+
+
+
+
//
if ($topic_notification)
{
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index 5806003e5b..93ac355d25 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -260,8 +260,8 @@ class ucp extends user
}
$db->sql_freeresult($result);
- $sql = "SELECT group_name
- FROM " . GROUPS_TABLE . "
+ $sql = 'SELECT group_name
+ FROM ' . GROUPS_TABLE . "
WHERE LOWER(group_name) = '" . strtolower($db->sql_escape($username)) . "'";
$result = $db->sql_query($sql);
@@ -271,8 +271,8 @@ class ucp extends user
}
$db->sql_freeresult($result);
- $sql = "SELECT disallow_username
- FROM " . DISALLOW_TABLE;
+ $sql = 'SELECT disallow_username
+ FROM ' . DISALLOW_TABLE;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
@@ -284,8 +284,8 @@ class ucp extends user
}
$db->sql_freeresult($result);
- $sql = "SELECT word
- FROM " . WORDS_TABLE;
+ $sql = 'SELECT word
+ FROM ' . WORDS_TABLE;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
@@ -303,27 +303,27 @@ class ucp extends user
// Check to see if email address is banned or already present in the DB
function validate_email($email)
{
- global $db, $user;
-
- if ($email != '')
+ global $config, $db, $user;
+
+ if (preg_match('#^[a-z0-9\.\-_\+]+?@(.*?\.)*?[a-z0-9\-_]+?\.[a-z]{2,4}$#i', $email))
{
- if (preg_match('#^[a-z0-9\.\-_\+]+@(.*?\.)*?[a-z0-9\-_]+\.[a-z]+$#is', $email))
+ $sql = 'SELECT ban_email
+ FROM ' . BANLIST_TABLE;
+ $result = $db->sql_query($sql);
+
+ while ($row = $db->sql_fetchrow($result))
{
- $sql = "SELECT ban_email
- FROM " . BANLIST_TABLE;
- $result = $db->sql_query($sql);
-
- while ($row = $db->sql_fetchrow($result))
+ if (preg_match('#^' . str_replace('*', '.*?', $row['ban_email']) . '$#i', $email))
{
- if (preg_match('#^' . str_replace('*', '.*?', $row['ban_email']) . '$#is', $email))
- {
- return 'EMAIL_BANNED';
- }
+ return 'EMAIL_BANNED';
}
- $db->sql_freeresult($result);
-
- $sql = "SELECT user_email
- FROM " . USERS_TABLE . "
+ }
+ $db->sql_freeresult($result);
+
+ if (!$config['allow_emailreuse'])
+ {
+ $sql = 'SELECT user_email
+ FROM ' . USERS_TABLE . "
WHERE user_email = '" . $db->sql_escape($email) . "'";
$result = $db->sql_query($sql);
@@ -332,18 +332,208 @@ class ucp extends user
return 'EMAIL_TAKEN';
}
$db->sql_freeresult($result);
-
- return false;
}
+
+ return false;
}
return 'EMAIL_INVALID';
}
- function update_user($userdata)
+
+
+
+
+ function update_username($old_name, $new_name)
+ {
+ global $db;
+
+ }
+
+
+
+
+ function avatar_delete()
+ {
+ global $config, $db, $user;
+
+ $avatar = explode(':', $user->data['user_avatar']);
+ $avatar_type = array_shift($avatar);
+
+ if ($avatar_type != 'upload')
+ {
+ return;
+ }
+
+ $avatar = implode('', $avatar);
+ if (@file_exists('./' . $config['avatar_path'] . '/' . $avatar))
+ {
+ @unlink('./' . $config['avatar_path'] . '/' . $avatar);
+ }
+ }
+
+ function avatar_remote(&$data)
{
-
-
+ global $config, $db, $user;
+
+ if (!preg_match('#^(http[s]*?)|(ftp)://#i', $data['remotelink']))
+ {
+ $data['remotelink'] = 'http://' . $data['remotelink'];
+ }
+
+ if (!preg_match('#^(http[s]?)|(ftp)://(.*?\.)*?[a-z0-9\-]+?\.[a-z]{2,4}:?([0-9]*?).*?\.(gif|jpg|jpeg|png)$#i', $data['remotelink']))
+ {
+ $this->error[] = $user->lang['AVATAR_URL_INVALID'];
+ return true;
+ }
+
+ if (!($data['width'] || $data['height']) && ($config['avatar_max_width'] || $config['avatar_max_height']))
+ {
+ list($width, $height) = @getimagesize($data['remotelink']);
+
+ if ($width > $config['avatar_max_width'] || $height > $config['avatar_max_height'])
+ {
+ $this->error[] = sprintf($user->lang['AVATAR_WRONG_SIZE'], $config['avatar_max_width'], $config['avatar_max_height']);
+ return true;
+ }
+
+ $data['width'] = &$width;
+ $data['height'] = &$height;
+ }
+ else if ($data['width'] > $config['avatar_max_width'] || $data['height'] > $config['avatar_max_height'])
+ {
+ $this->error[] = sprintf($user->lang['AVATAR_WRONG_SIZE'], $config['avatar_max_width'], $config['avatar_max_height']);
+ return true;
+ }
+
+ // Set type
+ $data['filename'] = &$data['remotelink'];
+ $data['type'] = AVATAR_REMOTE;
+
+ return false;
+ }
+
+ function avatar_upload(&$data)
+ {
+ global $config, $db, $user;
+
+ if (!empty($_FILES['uploadfile']['tmp_name']))
+ {
+ $filename = $_FILES['uploadfile']['tmp_name'];
+ $filesize = $_FILES['uploadfile']['size'];
+ $realname = $_FILES['uploadfile']['name'];
+
+ if (file_exists($filename) && preg_match('#^(.*?)\.(jpg|jpeg|gif|png)$#i', $realname, $match))
+ {
+ $realname = $match[1];
+ $filetype = $match[2];
+ $php_move = 'move_uploaded_file';
+ }
+ else
+ {
+ $this->error[] = $user->lang['AVATAR_NOT_UPLOADED'];
+ return true;
+ }
+ }
+ else if (preg_match('#^(http://).*?\.(jpg|jpeg|gif|png)$#i', $data['uploadurl'], $match))
+ {
+ if (empty($match[2]))
+ {
+ $this->error[] = $user->lang['AVATAR_URL_INVALID'];
+ return true;
+ }
+
+ $url = parse_url($data['uploadurl']);
+
+ $host = $url['host'];
+ $path = dirname($url['path']);
+ $port = (!empty($url['port'])) ? $url['port'] : 80;
+ $filetype = array_pop(explode('.', $url['path']));
+ $realname = basename($url['path'], '.' . $filetype);
+ $filename = $url['path'];
+ $filesize = 0;
+
+ if (!($fsock = @fsockopen($host, $port, $errno, $errstr)))
+ {
+ $this->error[] = $user->lang['AVATAR_NOT_UPLOADED'];
+ return true;
+ }
+
+ fputs($fsock, 'GET /' . $filename . " HTTP/1.1\r\n");
+ fputs($fsock, "HOST: " . $host . "\r\n");
+ fputs($fsock, "Connection: close\r\n\r\n");
+
+ $avatar_data = '';
+ while (!feof($fsock))
+ {
+ $avatar_data .= fread($fsock, $config['avatar_filesize']);
+ }
+ @fclose($fsock);
+ $avatar_data = array_pop(explode("\r\n", $avatar_data));
+
+ if (empty($avatar_data))
+ {
+ $this->error[] = $user->lang['AVATAR_NOT_UPLOADED'];
+ return true;
+ }
+ unset($url_ary);
+
+ $tmp_path = (!@ini_get('safe_mode')) ? false : './' . $config['avatar_path'] . '/tmp';
+ $filename = tempnam($tmp_path, uniqid(rand()) . '-');
+
+ if (!($fp = @fopen($filename, 'wb')))
+ {
+ $this->error[] = $user->lang['AVATAR_NOT_UPLOADED'];
+ return true;
+ }
+ $filesize = fwrite($fp, $avatar_data);
+ fclose($fp);
+ unset($avatar_data);
+
+ if (!$filesize)
+ {
+ unlink($filename);
+ $this->error[] = $user->lang['AVATAR_NOT_UPLOADED'];
+ return true;
+ }
+
+ $php_move = 'copy';
+ }
+
+ list($width, $height) = getimagesize($filename);
+
+ if ($width > $config['avatar_max_width'] || $height > $config['avatar_max_height'] || !$width || !$height)
+ {
+ $this->error[] = sprintf($user->lang['AVATAR_WRONG_SIZE'], $config['avatar_max_width'], $config['avatar_max_height']);
+ return true;
+ }
+
+ // Replace any chars which may cause us problems with _
+ $bad_chars = array(' ', '/', ':', '*', '?', '"', '<', '>', '|');
+
+ $data['filename'] = $user->data['user_id'] . '_' . str_replace($bad_chars, '_', $realname) . '.' . $filetype;
+ $data['width'] = &$width;
+ $data['height'] = &$height;
+
+ if(!$php_move($filename, './' . $config['avatar_path'] . '/' . $data['filename']))
+ {
+ @unlink($filename);
+ $this->error[] = $user->lang['AVATAR_NOT_UPLOADED'];
+ return true;
+ }
+ @unlink($filename);
+
+ $filesize = filesize('./' . $config['avatar_path'] . '/' . $data['filename']);
+ if (!$filesize || $filesize > $config['avatar_filesize'])
+ {
+ $this->error[] = sprintf($user->lang['AVATAR_WRONG_FILESIZE'], $config['avatar_filesize']);
+ return true;
+ }
+
+ // Set type
+ $data['type'] = AVATAR_UPLOAD;
+
+ return;
}
}
diff --git a/phpBB/includes/message_parser.php b/phpBB/includes/message_parser.php
index f27de1e87b..8e55855eaa 100644
--- a/phpBB/includes/message_parser.php
+++ b/phpBB/includes/message_parser.php
@@ -923,7 +923,7 @@ class fulltext_search
$words = array();
if ($mode == 'edit')
{
- echo $sql = "SELECT w.word_id, w.word_text, m.title_match
+ $sql = "SELECT w.word_id, w.word_text, m.title_match
FROM " . SEARCH_WORD_TABLE . " w, " . SEARCH_MATCH_TABLE . " m
WHERE m.post_id = " . intval($post_id) . "
AND w.word_id = m.word_id";
diff --git a/phpBB/includes/ucp/ucp_activate.php b/phpBB/includes/ucp/ucp_activate.php
index b2a2c91127..3c0a3fe698 100644
--- a/phpBB/includes/ucp/ucp_activate.php
+++ b/phpBB/includes/ucp/ucp_activate.php
@@ -17,9 +17,7 @@
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
- *
***************************************************************************/
-
class ucp_activate extends ucp
{
@@ -42,7 +40,7 @@ class ucp_activate extends ucp
else if ($row['user_actkey'] == $_GET['k'])
{
$sql_update_pass = ($row['user_newpasswd'] != '') ? ", user_password = '" . $db->sql_escape($row['user_newpasswd']) . "', user_newpasswd = ''" : '';
-
+z
$sql = "UPDATE " . USERS_TABLE . "
SET user_active = 1, user_actkey = ''" . $sql_update_pass . "
WHERE user_id = " . $row['user_id'];
diff --git a/phpBB/includes/ucp/ucp_main.php b/phpBB/includes/ucp/ucp_main.php
index a084740601..b71c4d0d04 100644
--- a/phpBB/includes/ucp/ucp_main.php
+++ b/phpBB/includes/ucp/ucp_main.php
@@ -144,8 +144,92 @@ class ucp_main extends ucp
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
-*/
+ $user_id = $user->data['user_id'];
+
+ // Grab all the relevant data
+ $sql = "SELECT COUNT(p.post_id) AS num_posts
+ FROM " . POSTS_TABLE . " p, " . FORUMS_TABLE . " f
+ WHERE p.poster_id = $user_id
+ AND f.forum_id = p.forum_id
+ $post_count_sql";
+ $result = $db->sql_query($sql);
+
+ $num_real_posts = min($row['user_posts'], $db->sql_fetchfield('num_posts', 0, $result));
+ $db->sql_freeresult($result);
+
+ $sql = "SELECT f.forum_id, f.forum_name, COUNT(post_id) AS num_posts
+ FROM " . POSTS_TABLE . " p, " . FORUMS_TABLE . " f
+ WHERE p.poster_id = $user_id
+ AND f.forum_id = p.forum_id
+ $post_count_sql
+ GROUP BY f.forum_id, f.forum_name
+ ORDER BY num_posts DESC";
+ $result = $db->sql_query_limit($sql, 1);
+
+ $active_f_row = $db->sql_fetchrow($result);
+ $db->sql_freeresult($result);
+
+ $sql = "SELECT t.topic_id, t.topic_title, COUNT(p.post_id) AS num_posts
+ FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f
+ WHERE p.poster_id = $user_id
+ AND t.topic_id = p.topic_id
+ AND f.forum_id = t.forum_id
+ $post_count_sql
+ GROUP BY t.topic_id, t.topic_title
+ ORDER BY num_posts DESC";
+ $result = $db->sql_query_limit($sql, 1);
+
+ $active_t_row = $db->sql_fetchrow($result);
+ $db->sql_freeresult($result);
+
+ // Do the relevant calculations
+ $memberdays = max(1, round((time() - $row['user_regdate']) / 86400));
+ $posts_per_day = $row['user_posts'] / $memberdays;
+ $percentage = ($config['num_posts']) ? min(100, ($num_real_posts / $config['num_posts']) * 100) : 0;
+
+ $active_f_name = $active_f_id = $active_f_count = $active_f_pct = '';
+ if (!empty($active_f_row['num_posts']))
+ {
+ $active_f_name = $active_f_row['forum_name'];
+ $active_f_id = $active_f_row['forum_id'];
+ $active_f_count = $active_f_row['num_posts'];
+ $active_f_pct = ($active_f_count / $row['user_posts']) * 100;
+ }
+ unset($active_f_row);
+
+ $active_t_name = $active_t_id = $active_t_count = $active_t_pct = '';
+ if (!empty($active_t_row['num_posts']))
+ {
+ $active_t_name = $active_t_row['topic_title'];
+ $active_t_id = $active_t_row['topic_id'];
+ $active_t_count = $active_t_row['num_posts'];
+ $active_t_pct = ($active_t_count / $row['user_posts']) * 100;
+ }
+ unset($active_t_row);
+
+ $template->assign_vars(show_profile($row));
+
+ $template->assign_vars(array(
+ 'POSTS_DAY' => sprintf($user->lang['POST_DAY'], $posts_per_day),
+ 'POSTS_PCT' => sprintf($user->lang['POST_PCT'], $percentage),
+ 'ACTIVE_FORUM' => $active_f_name,
+ 'ACTIVE_FORUM_POSTS'=> ($active_f_count == 1) ? sprintf($user->lang['USER_POST'], 1) : sprintf($user->lang['USER_POSTS'], $active_f_count),
+ 'ACTIVE_FORUM_PCT' => sprintf($user->lang['POST_PCT'], $active_f_pct),
+ 'ACTIVE_TOPIC' => $active_t_name,
+ 'ACTIVE_TOPIC_POSTS'=> ($active_t_count == 1) ? sprintf($user->lang['USER_POST'], 1) : sprintf($user->lang['USER_POSTS'], $active_t_count),
+ 'ACTIVE_TOPIC_PCT' => sprintf($user->lang['POST_PCT'], $active_t_pct),
+
+ 'OCCUPATION' => (!empty($row['user_occ'])) ? $row['user_occ'] : '',
+ 'INTERESTS' => (!empty($row['user_interests'])) ? $row['user_interests'] : '',
+
+ 'S_PROFILE_ACTION' => "groupcp.$phpEx$SID",
+ 'S_GROUP_OPTIONS' => $group_options,
+
+ 'U_ACTIVE_FORUM' => "viewforum.$phpEx$SID&amp;f=$active_f_id",
+ 'U_ACTIVE_TOPIC' => "viewtopic.$phpEx$SID&amp;t=$active_t_id",)
+ );
+*/
break;
case 'watched':
diff --git a/phpBB/includes/ucp/ucp_prefs.php b/phpBB/includes/ucp/ucp_prefs.php
index 60d1b9a9b8..9ace08e1cb 100644
--- a/phpBB/includes/ucp/ucp_prefs.php
+++ b/phpBB/includes/ucp/ucp_prefs.php
@@ -64,7 +64,7 @@ class ucp_prefs extends ucp
if (!sizeof($this->error))
{
$sql_ary = array(
- 'user_viewemail' => $data['viewemail'],
+ 'user_allow_viewemail' => $data['viewemail'],
'user_allow_viewonline' => !$data['hideonline'],
'user_notify_pm' => $data['notifypm'],
'user_popup_pm' => $data['popuppm'],
@@ -90,7 +90,7 @@ class ucp_prefs extends ucp
unset($data);
}
- $view_email = (isset($viewemail)) ? $viewemail : $user->data['user_viewemail'];
+ $view_email = (isset($viewemail)) ? $viewemail : $user->data['user_allow_viewemail'];
$view_email_yes = ($viewemail) ? ' checked="checked"' : '';
$view_email_no = (!$viewemail) ? ' checked="checked"' : '';
$hideonline = (isset($hideonline)) ? $hideonline : !$user->data['user_allow_viewonline'];
diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php
index bb309c0418..a2e811cdbb 100644
--- a/phpBB/includes/ucp/ucp_profile.php
+++ b/phpBB/includes/ucp/ucp_profile.php
@@ -45,23 +45,29 @@ class ucp_profile extends ucp
$data = array();
$normalise = array(
'string' => array(
- 'username' => '2,30',
+ 'username' => $config['min_name_chars'] . ',' . $config['max_name_chars'],
+ 'password_confirm' => $config['min_pass_chars'] . ',' . $config['max_pass_chars'],
+ 'new_password' => $config['min_pass_chars'] . ',' . $config['max_pass_chars'],
+ 'cur_password' => $config['min_pass_chars'] . ',' . $config['max_pass_chars'],
'email' => '7,60',
'email_confirm' => '7,60',
- 'password_confirm' => '6,255',
- 'new_password' => '6,255',
- 'cur_password' => '6,255',
)
);
$data = $this->normalise_data($_POST, $normalise);
+ // md5 current password for checking
+ $data['cur_password'] = md5($data['cur_password']);
+
$validate = array(
'reqd' => array('username', 'email'),
'compare' => array(
'password_confirm' => ($data['new_password']) ? $data['new_password'] : '',
- 'cur_password' => ($data['new_password'] || $data['email'] != $user->data['user_email']) ? $user->data['user_password'] : '',
+ 'cur_password' => ($data['new_password'] || $data['email'] != $user->data['user_email'] || $data['username'] != $user->data['username']) ? $user->data['user_password'] : '',
'email_confirm' => ($data['email'] != $user->data['user_email']) ? $data['email'] : '',
),
+ 'match' => array(
+ 'username' => ($data['username'] != $user->data['username']) ? '#^' . str_replace('\\\\', '\\', $config['allow_name_chars']) . '$#iu' : '',
+ ),
'function' => array(
'username' => ($data['username'] != $user->data['username']) ? 'validate_username' : '',
'email' => ($data['email'] != $user->data['user_email']) ? 'validate_email' : '',
@@ -82,6 +88,12 @@ class ucp_profile extends ucp
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
+ // Need to update config, forum, topic, posting, messages, etc.
+ if ($data['username'] != $user->data['username'] && $auth->acl_get('u_chgname') & $config['allow_namechange'])
+ {
+ $this->update_username($user->data['username'], $data['username']);
+ }
+
meta_refresh(3, "ucp.$phpEx$SID&amp;i=$id&amp;mode=$submode");
$message = $user->lang['PROFILE_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], "<a href=\"ucp.$phpEx$SID&amp;i=$id&amp;mode=$submode\">", '</a>');
trigger_error($message);
@@ -92,14 +104,19 @@ class ucp_profile extends ucp
unset($data);
}
+ $user_char_ary = array('.*' => 'USERNAME_CHARS_ANY', '[\w]+' => 'USERNAME_ALPHA_ONLY', '[\w_\+\. \-\[\]]+' => 'USERNAME_ALPHA_SPACERS');
+
$template->assign_vars(array(
'ERROR' => (sizeof($this->error)) ? implode('<br />', $this->error) : '',
- 'USERNAME' => (isset($username)) ? $username : $user->data['username'],
- 'EMAIL' => (isset($email)) ? $email : $user->data['user_email'],
- 'NEW_PASSWORD' => (isset($new_password)) ? $new_password : '',
+ 'USERNAME' => (isset($username)) ? stripslashes($username) : $user->data['username'],
+ 'EMAIL' => (isset($email)) ? stripslashes($email) : $user->data['user_email'],
+ 'NEW_PASSWORD' => (isset($new_password)) ? stripslashes($new_password) : '',
'CUR_PASSWORD' => '',
- 'PASSWORD_CONFIRM' => (isset($password_confirm)) ? $password_confirm : '',
+ 'PASSWORD_CONFIRM' => (isset($password_confirm)) ? stripslashes($password_confirm) : '',
+
+ 'L_USERNAME_EXPLAIN' => sprintf($user->lang[$user_char_ary[str_replace('\\\\', '\\', $config['allow_name_chars'])] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']),
+ 'L_CHANGE_PASSWORD_EXPLAIN' => sprintf($user->lang['CHANGE_PASSWORD_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']),
'S_CHANGE_USERNAME' => $config['allow_namechange'] & $auth->acl_get('u_chgname'),
'S_CHANGE_EMAIL' => $auth->acl_get('u_chgemail'),
@@ -329,85 +346,123 @@ class ucp_profile extends ucp
case 'avatar':
- $dir = @opendir($config['avatar_gallery_path']);
-
- $avatar_images = array();
- while( $file = @readdir($dir) )
+ if (isset($_POST['submit']))
{
- if( $file != '.' && $file != '..' && !is_file($config['avatar_gallery_path'] . '/' . $file) && !is_link($config['avatar_gallery_path'] . '/' . $file) )
+ $data = array();
+ if (!empty($_FILES['uploadfile']['tmp_name']))
{
- $sub_dir = @opendir($config['avatar_gallery_path'] . '/' . $file);
-
- $avatar_row_count = 0;
- $avatar_col_count = 0;
- while( $sub_file = @readdir($sub_dir) )
- {
- if( preg_match('#(\.gif$|\.png$|\.jpg|\.jpeg)$#i', $sub_file) )
- {
- $avatar_images[$file][$avatar_row_count][$avatar_col_count] = $file . '/' . $sub_file;
- $avatar_name[$file][$avatar_row_count][$avatar_col_count] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $sub_file)));
-
- $avatar_col_count++;
- if( $avatar_col_count == 4 )
- {
- $avatar_row_count++;
- $avatar_col_count = 0;
- }
- }
- }
+ $this->avatar_upload($data);
+ }
+ else if (!empty($_POST['uploadurl']))
+ {
+ $normalise = array(
+ 'string' => array(
+ 'uploadurl' => '1,255',
+ )
+ );
+ $data = $this->normalise_data($_POST, $normalise);
+ $this->avatar_upload($data);
+ }
+ else if (!empty($_POST['remotelink']))
+ {
+ $normalise = array(
+ 'string' => array(
+ 'remotelink' => '1,255',
+ 'width' => '1,3',
+ 'height' => '1,3',
+ )
+ );
+ $data = $this->normalise_data($_POST, $normalise);
+ $this->avatar_remote($data);
+ }
+ else if (!empty($_POST['delete']))
+ {
+ $data['filename'] = $data['width'] = $data['height'] = '';
+ $this->avatar_delete();
}
- }
- @closedir($dir);
+ if (!sizeof($this->error))
+ {
+ $sql_ary = array(
+ 'user_avatar' => $data['filename'],
+ 'user_avatar_type' => $data['type'],
+ 'user_avatar_width' => $data['width'],
+ 'user_avatar_height' => $data['height'],
+ );
- @ksort($avatar_images);
- @reset($avatar_images);
+ $sql = 'UPDATE ' . USERS_TABLE . '
+ SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
+ WHERE user_id = ' . $user->data['user_id'];
+ $db->sql_query($sql);
- $category = (isset($_POST['avatarcat'])) ? htmlspecialchars($_POST['avatarcat']) : '';
- if( empty($category) )
- {
- list($category, ) = each($avatar_images);
- }
- @reset($avatar_images);
+ // Delete an existing avatar if present
+ $this->avatar_delete();
- $s_categories = '';
- while( list($key) = each($avatar_images) )
- {
- $selected = ( $key == $category ) ? ' selected="selected"' : '';
- if( count($avatar_images[$key]) )
- {
- $s_categories .= '<option value="' . $key . '"' . $selected . '>' . ucfirst($key) . '</option>';
+ meta_refresh(3, "ucp.$phpEx$SID&amp;i=$id&amp;mode=$submode");
+ $message = $user->lang['PROFILE_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], "<a href=\"ucp.$phpEx$SID&amp;i=$id&amp;mode=$submode\">", '</a>');
+ trigger_error($message);
}
+
+ //
+ extract($data);
+ unset($data);
}
- $s_colspan = 0;
- for($i = 0; $i < count($avatar_images[$category]); $i++)
+/*
+ for ($i = 0; $i < count($avatar_images[$category]); $i++)
{
$template->assign_block_vars('avatar_row', array());
- $s_colspan = max($s_colspan, count($avatar_images[$category][$i]));
-
- for($j = 0; $j < count($avatar_images[$category][$i]); $j++)
+ for ($j = 0; $j < count($avatar_images[$category][$i]); $j++)
{
$template->assign_block_vars('avatar_row.avatar_column', array(
- "AVATAR_IMAGE" => $config['avatar_gallery_path'] . '/' . $avatar_images[$category][$i][$j],
- "AVATAR_NAME" => $avatar_name[$category][$i][$j])
+ 'AVATAR_IMAGE' => $config['avatar_gallery_path'] . '/' . $avatar_images[$category][$i][$j],
+ 'AVATAR_NAME' => $avatar_name[$category][$i][$j])
);
$template->assign_block_vars('avatar_row.avatar_option_column', array(
- "S_OPTIONS_AVATAR" => $avatar_images[$category][$i][$j])
+ 'S_OPTIONS_AVATAR' => $avatar_images[$category][$i][$j])
);
}
}
+*/
+
+ $avatar_img = '';
+ if ($user->data['user_avatar'])
+ {
+ switch ($user->data['user_avatar_type'])
+ {
+ case AVATAR_UPLOAD:
+ $avatar_img = $config['avatar_path'] . '/';
+ break;
+ case AVATAR_GALLERY:
+ $avatar_img = $config['avatar_gallery_path'] . '/';
+ break;
+ }
+ $avatar_img .= $user->data['user_avatar'];
+
+ $avatar_img = '<img src="' . $avatar_img . '" width="' . $user->data['user_avatar_width'] . '" height="' . $user->data['user_avatar_height'] . '" border="0" alt="" />';
+ }
$template->assign_vars(array(
- 'AVATAR' => '<img src="images/avatars/upload/' . $user->data['user_avatar'] . '" />',
+ 'ERROR' => (sizeof($this->error)) ? implode('<br />', $this->error) : '',
+
+ 'AVATAR' => $avatar_img,
+ 'AVATAR_SIZE' => $config['avatar_filesize'],
+ 'AVATAR_URL' => (isset($uploadurl)) ? $uploadurl : '',
+ 'AVATAR_REMOTE' => (isset($remotelink)) ? $remotelink : (($user->data['user_avatar_type'] == AVATAR_REMOTE) ? $avatar_img : ''),
+ 'WIDTH' => (isset($width)) ? $width : $user->data['user_avatar_width'],
+ 'HEIGHT' => (isset($height)) ? $height : $user->data['user_avatar_height'],
- 'S_AVATAR_CAT_OPTIONS' => $s_categories,
+ 'L_AVATAR_EXPLAIN' => sprintf($user->lang['AVATAR_EXPLAIN'], $config['avatar_max_width'], $config['avatar_max_height'], round($config['avatar_filesize'] / 1024)),
+
+ 'S_FORM_ENCTYPE' => ' enctype="multipart/form-data"',
'S_UPLOAD_AVATAR_FILE' => true,
'S_UPLOAD_AVATAR_URL' => true,
'S_LINK_AVATAR' => true,
- 'S_GALLERY_AVATAR' => true,)
+ 'S_GALLERY_AVATAR' => false,
+ 'S_AVATAR_CAT_OPTIONS' => $s_categories,
+ 'S_AVATAR_PAGE_OPTIONS' => $s_pages,)
);
break;
@@ -427,27 +482,6 @@ class ucp_profile extends ucp
$this->display($user->lang['UCP_PROFILE'], 'ucp_profile.html');
}
- function check_image_type(&$type)
- {
- global $user;
-
- switch ($type)
- {
- case 'jpeg':
- case 'pjpeg':
- case 'jpg':
- return '.jpg';
- case 'gif':
- return '.gif';
- case 'png':
- return '.png';
- case 'bmp':
- return '.bmp';
- }
-
- $this->error[] = $user->lang['INVALID_IMAGETYPE'];
- return false;
- }
}
diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php
index 28ce085d0a..df3c6ed9cc 100644
--- a/phpBB/includes/ucp/ucp_register.php
+++ b/phpBB/includes/ucp/ucp_register.php
@@ -73,13 +73,13 @@ class ucp_register extends ucp
{
$normalise = array(
'string' => array(
- 'username' => '2,30',
+ 'username' => $config['min_name_chars'] . ',' . $config['max_name_chars'],
+ 'password_confirm' => $config['min_pass_chars'] . ',' . $config['max_pass_chars'],
+ 'new_password' => $config['min_pass_chars'] . ',' . $config['max_pass_chars'],
+ 'lang' => '1,50',
+ 'confirm_code' => '6,6',
'email' => '7,60',
'email_confirm' => '7,60',
- 'new_password' => '6,255',
- 'password_confirm' => '6,255',
- 'lang' => '1,50',
- 'confirm_code' => '6,6'
),
'int' => array('tz')
);
@@ -91,6 +91,9 @@ class ucp_register extends ucp
'password_confirm' => $data['new_password'],
'email_confirm' => $data['email'],
),
+ 'match' => array(
+ 'username' => '#^' . str_replace('\\\\', '\\', $config['allow_name_chars']) . '$#iu',
+ ),
'function' => array(
'username' => 'validate_username',
'email' => 'validate_email',
@@ -139,8 +142,9 @@ class ucp_register extends ucp
{
$server_url = generate_board_url();
- if ($coppa && ($config['require_activation'] == USER_ACTIVATION_SELF ||
- $config['require_activation'] == USER_ACTIVATION_ADMIN))
+ if (($coppa ||
+ $config['require_activation'] == USER_ACTIVATION_SELF ||
+ $config['require_activation'] == USER_ACTIVATION_ADMIN) && $config['email_enable'])
{
$user_actkey = $this->gen_rand_string(10);
$key_len = 54 - (strlen($server_url));
@@ -161,7 +165,7 @@ class ucp_register extends ucp
'user_ip' => $user->ip,
'user_regdate' => time(),
'username' => $data['username'],
- 'user_password' => $data['new_password'],
+ 'user_password' => md5($data['new_password']),
'user_email' => $data['email'],
'user_allow_pm' => 1,
'user_timezone' => (float) $data['tz'],
@@ -175,8 +179,10 @@ class ucp_register extends ucp
$user_id = $db->sql_nextid();
- // Place into appropriate group, either REGISTERED or INACTIVE depending on config
- $group_name = ($config['require_activation'] == USER_ACTIVATION_NONE) ? 'REGISTERED' : 'INACTIVE';
+ // Place into appropriate group, either REGISTERED(_COPPA) or INACTIVE(_COPPA) depending on config
+ $group_reg = ($coppa) ? 'REGISTERED_COPPA' : 'REGISTERED';
+ $group_inactive = ($coppa) ? 'INACTIVE_COPPA' : 'INACTIVE';
+ $group_name = ($config['require_activation'] == USER_ACTIVATION_NONE) ? $group_reg : $group_inactive;
$sql = "INSERT INTO " . USER_GROUP_TABLE . " (user_id, group_id, user_pending)
SELECT $user_id, group_id, 0
FROM " . GROUPS_TABLE . "
@@ -186,17 +192,17 @@ class ucp_register extends ucp
$db->sql_transaction('commit');
- if ($coppa)
+ if ($coppa && $config['email_enable'])
{
$message = $user->lang['ACCOUNT_COPPA'];
$email_template = 'coppa_welcome_inactive';
}
- else if ($config['require_activation'] == USER_ACTIVATION_SELF)
+ else if ($config['require_activation'] == USER_ACTIVATION_SELF && $config['email_enable'])
{
$message = $user->lang['ACCOUNT_INACTIVE'];
$email_template = 'user_welcome_inactive';
}
- else if ($config['require_activation'] == USER_ACTIVATION_ADMIN)
+ else if ($config['require_activation'] == USER_ACTIVATION_ADMIN && $config['email_enable'])
{
$message = $user->lang['ACCOUNT_INACTIVE_ADMIN'];
$email_template = 'admin_welcome_inactive';
@@ -235,7 +241,7 @@ class ucp_register extends ucp
'SITENAME' => $config['sitename'])
);
}
-
+
$emailer->send();
$emailer->reset();
@@ -257,7 +263,7 @@ class ucp_register extends ucp
}
}
- if ($config['require_activation'] == USER_ACTIVATION_NONE)
+ if ($config['require_activation'] == USER_ACTIVATION_NONE || !$config['email_enable'])
{
set_config('newest_user_id', $user_id);
set_config('newest_username', $data['username']);
@@ -311,7 +317,7 @@ class ucp_register extends ucp
if ($row = $db->sql_fetchrow($result))
{
- if ($row['attempts'] > 5)
+ if ($row['attempts'] > 3)
{
trigger_error($user->lang['TOO_MANY_REGISTERS']);
}
@@ -342,6 +348,8 @@ class ucp_register extends ucp
break;
}
+ $user_char_ary = array('.*' => 'USERNAME_CHARS_ANY', '[\w]+' => 'USERNAME_ALPHA_ONLY', '[\w_\+\. \-\[\]]+' => 'USERNAME_ALPHA_SPACERS');
+
//
$template->assign_vars(array(
'USERNAME' => $username,
@@ -352,8 +360,10 @@ class ucp_register extends ucp
'CONFIRM_IMG' => $confirm_image,
'ERROR' => (sizeof($this->error)) ? implode('<br />', $this->error) : '',
- 'L_CONFIRM_EXPLAIN' => sprintf($user->lang['CONFIRM_EXPLAIN'], '<a href="mailto:' . htmlentities($config['board_contact']) . '">', '</a>'),
- 'L_ITEMS_REQUIRED' => $l_reg_cond,
+ 'L_CONFIRM_EXPLAIN' => sprintf($user->lang['CONFIRM_EXPLAIN'], '<a href="mailto:' . htmlentities($config['board_contact']) . '">', '</a>'),
+ 'L_ITEMS_REQUIRED' => $l_reg_cond,
+ 'L_USERNAME_EXPLAIN' => sprintf($user->lang[$user_char_ary[str_replace('\\\\', '\\', $config['allow_name_chars'])] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']),
+ 'L_NEW_PASSWORD_EXPLAIN'=> sprintf($user->lang['NEW_PASSWORD_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']),
'S_LANG_OPTIONS' => language_select($lang),
'S_TZ_OPTIONS' => tz_select($tz),
diff --git a/phpBB/index.php b/phpBB/index.php
index c164a2c175..725ebaa563 100644
--- a/phpBB/index.php
+++ b/phpBB/index.php
@@ -142,7 +142,7 @@ $template->assign_vars(array(
'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
'NEWEST_USER' => sprintf($user->lang['NEWEST_USER'], "<a href=\"memberlist.$phpEx$SID&amp;mode=viewprofile&amp;u=$newest_uid \">", $newest_user, '</a>'),
'LEGEND' => $legend,
- 'BIRTHDAY_LIST' => ($birthday_list) ? $birthday_list : $user->lang['NO_BIRTHDAYS'],
+ 'BIRTHDAY_LIST' => $birthday_list,
'FORUM_IMG' => $user->img('forum', 'NO_NEW_POSTS'),
'FORUM_NEW_IMG' => $user->img('forum_new', 'NEW_POSTS'),
diff --git a/phpBB/install/schemas/mysql_basic.sql b/phpBB/install/schemas/mysql_basic.sql
index 2a84135832..4e054d5b7c 100644
--- a/phpBB/install/schemas/mysql_basic.sql
+++ b/phpBB/install/schemas/mysql_basic.sql
@@ -27,13 +27,19 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_avatar_local
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_avatar_remote','0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_avatar_upload','0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_nocensors','0');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_emailreuse','0');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('min_name_chars','3');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_name_chars','30');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('min_pass_chars','6');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_pass_chars','30');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('allow_name_chars','.*?');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('default_style','1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('default_dateformat','D M d, Y g:i a');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('board_timezone','0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('board_dst','0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('override_user_style','0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('posts_per_page','10');
-INSERT INTO phpbb_config (config_name, config_value) VALUES ('topics_per_page','30');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('topics_per_page','25');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('hot_threshold','25');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('board_email_form','0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('avatar_path','images/avatars/upload');
@@ -64,7 +70,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('browser_check', '1
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '2.1.1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_post_chars', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_post_smilies', '0');
-INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_quote_depth', '10');
+INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_quote_depth', '3');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_sig_chars','255');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('max_poll_options','10');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('min_search_chars','3');
@@ -140,6 +146,7 @@ INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_edit', 1);
INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_delete', 1);
INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_poll', 1);
INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_vote', 1);
+INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_votechg', 1);
INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_announce', 1);
INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_sticky', 1);
INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_attach', 1);
@@ -158,7 +165,6 @@ INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_ignoreflood',
INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_postcount', 1);
INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_moderate', 1);
INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_report', 1);
-INSERT INTO phpbb_auth_options (auth_option, is_local) VALUES ('f_votechg', 1);
INSERT INTO phpbb_auth_options (auth_option, is_local, is_global) VALUES ('m_', 1, 1);
INSERT INTO phpbb_auth_options (auth_option, is_local, is_global) VALUES ('m_edit', 1, 1);
@@ -230,7 +236,7 @@ INSERT INTO phpbb_auth_options (auth_option, is_global) VALUES ('u_search', 1);
INSERT INTO phpbb_styles (style_id, template_id, theme_id, imageset_id, style_name) VALUES (1, 1, 1, 1, 'subSilver');
# -- phpbb_styles_imageset
-INSERT INTO phpbb_styles_imageset (imageset_id, imageset_name, imageset_path, btn_post, btn_post_pm, btn_reply, btn_reply_pm, btn_locked, btn_profile, btn_pm, btn_delete, btn_ip, btn_quote, btn_search, btn_edit, btn_report, btn_email, btn_www, btn_icq, btn_aim, btn_yim, btn_msnm, btn_no_email, btn_no_www, btn_no_icq, btn_no_aim, btn_no_yim, btn_no_msnm, btn_online, btn_offline, btn_topic_watch, btn_topic_unwatch, icon_unapproved, icon_reported, icon_attach, icon_post, icon_post_new, icon_post_latest, icon_post_newest, forum, forum_new, forum_locked, sub_forum, sub_forum_new, folder, folder_posted, folder_new, folder_new_posted, folder_hot, folder_hot_posted, folder_hot_new, folder_hot_new_posted, folder_locked, folder_locked_posted, folder_locked_new, folder_locked_new_posted, folder_sticky, folder_sticky_posted, folder_sticky_new, folder_sticky_new_posted, folder_announce, folder_announce_posted, folder_announce_new, folder_announce_new_posted, poll_left, poll_center, poll_right) VALUES (1, 'subSilver &copy; phpBB Group', 'subSilver', '"imagesets/subSilver/{LANG}/btn_post.gif" width="82" height="25" border="0"', '"imagesets/subSilver/{LANG}/btn_post_pm.gif" width="82" height="25" border="0"', '"imagesets/subSilver/{LANG}/btn_reply.gif" width="82" height="25" border="0"', '"imagesets/subSilver/{LANG}/reply.gif" width="88" height="25" border="0"', '"imagesets/subSilver/{LANG}/btn_locked.gif" width="82" height="25" border="0"', '"imagesets/subSilver/{LANG}/btn_profile.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_pm.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_delete.gif" width="16" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_ip.gif" width="16" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_quote.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_search.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_edit.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_report.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_email.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_www.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_icq.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_aim.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_yim.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_msnm.gif" width="59" height="18" border="0"', '', '', '', '', '', '', '"imagesets/subSilver/{LANG}/btn_online.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_offline.gif" width="59" height="18" border="0"', NULL, NULL, '"imagesets/subSilver/icon_unapproved.gif" width="19" height="18" border="0"', '"imagesets/subSilver/icon_reported.gif" width="19" height="18" border="0"', '"imagesets/subSilver/icon_attach.gif" width="14" height="18" border="0"', '"imagesets/subSilver/icon_minipost.gif" width="12" height="9" border="0"', '"imagesets/subSilver/icon_minipost_new.gif" width="12" height="9" border="0"', '"imagesets/subSilver/icon_latest_reply.gif" width="18" height="9" border="0"', '"imagesets/subSilver/icon_newest_reply.gif" width="18" height="9" border="0"', '"imagesets/subSilver/folder_big.gif" width="46" height="25" border="0"', '"imagesets/subSilver/folder_new_big.gif" width="46" height="25" border="0"', '"imagesets/subSilver/folder_locked_big.gif" width="46" height="25" border="0"', '"imagesets/subSilver/subfolder_big.gif" width="46" height="25" border="0"', '"imagesets/subSilver/subfolder_new_big.gif" width="46" height="25" border="0"', '"imagesets/subSilver/folder.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_new.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_new_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_hot.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_hot_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_new_hot.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_new_hot_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_lock.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_lock_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_lock_new.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_lock_new_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_sticky.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_sticky_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_sticky_new.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_sticky_new_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_announce.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_announce_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_announce_new.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_announce_new_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/vote_lcap.gif" width="4" height="12" border="0"', '"imagesets/subSilver/voting_bar.gif" height="12" border="0"', '"imagesets/subSilver/vote_rcap.gif" width="4" height="12" border="0"');
+INSERT INTO phpbb_styles_imageset (imageset_id, imageset_name, imageset_path, btn_post, btn_post_pm, btn_reply, btn_reply_pm, btn_locked, btn_profile, btn_pm, btn_delete, btn_ip, btn_quote, btn_search, btn_edit, btn_report, btn_email, btn_www, btn_icq, btn_aim, btn_yim, btn_msnm, btn_online, btn_offline, btn_topic_watch, btn_topic_unwatch, icon_unapproved, icon_reported, icon_attach, icon_post, icon_post_new, icon_post_latest, icon_post_newest, forum, forum_new, forum_locked, sub_forum, sub_forum_new, folder, folder_posted, folder_new, folder_new_posted, folder_hot, folder_hot_posted, folder_hot_new, folder_hot_new_posted, folder_locked, folder_locked_posted, folder_locked_new, folder_locked_new_posted, folder_sticky, folder_sticky_posted, folder_sticky_new, folder_sticky_new_posted, folder_announce, folder_announce_posted, folder_announce_new, folder_announce_new_posted, poll_left, poll_center, poll_right) VALUES (1, 'subSilver &copy; phpBB Group', 'subSilver', '"imagesets/subSilver/{LANG}/btn_post.gif" width="82" height="25" border="0"', '"imagesets/subSilver/{LANG}/btn_post_pm.gif" width="82" height="25" border="0"', '"imagesets/subSilver/{LANG}/btn_reply.gif" width="82" height="25" border="0"', '"imagesets/subSilver/{LANG}/reply.gif" width="88" height="25" border="0"', '"imagesets/subSilver/{LANG}/btn_locked.gif" width="82" height="25" border="0"', '"imagesets/subSilver/{LANG}/btn_profile.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_pm.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_delete.gif" width="16" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_ip.gif" width="16" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_quote.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_search.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_edit.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_report.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_email.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_www.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_icq.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_aim.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_yim.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_msnm.gif" width="59" height="18" border="0"', '', '', '', '', '', '', '"imagesets/subSilver/{LANG}/btn_online.gif" width="59" height="18" border="0"', '"imagesets/subSilver/{LANG}/btn_offline.gif" width="59" height="18" border="0"', '', '', '"imagesets/subSilver/icon_unapproved.gif" width="19" height="18" border="0"', '"imagesets/subSilver/icon_reported.gif" width="19" height="18" border="0"', '"imagesets/subSilver/icon_attach.gif" width="14" height="18" border="0"', '"imagesets/subSilver/icon_minipost.gif" width="12" height="9" border="0"', '"imagesets/subSilver/icon_minipost_new.gif" width="12" height="9" border="0"', '"imagesets/subSilver/icon_latest_reply.gif" width="18" height="9" border="0"', '"imagesets/subSilver/icon_newest_reply.gif" width="18" height="9" border="0"', '"imagesets/subSilver/folder_big.gif" width="46" height="25" border="0"', '"imagesets/subSilver/folder_new_big.gif" width="46" height="25" border="0"', '"imagesets/subSilver/folder_locked_big.gif" width="46" height="25" border="0"', '"imagesets/subSilver/subfolder_big.gif" width="46" height="25" border="0"', '"imagesets/subSilver/subfolder_new_big.gif" width="46" height="25" border="0"', '"imagesets/subSilver/folder.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_new.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_new_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_hot.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_hot_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_new_hot.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_new_hot_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_lock.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_lock_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_lock_new.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_lock_new_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_sticky.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_sticky_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_sticky_new.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_sticky_new_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_announce.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_announce_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_announce_new.gif" width="19" height="18" border="0"', '"imagesets/subSilver/folder_announce_new_posted.gif" width="19" height="18" border="0"', '"imagesets/subSilver/vote_lcap.gif" width="4" height="12" border="0"', '"imagesets/subSilver/voting_bar.gif" height="12" border="0"', '"imagesets/subSilver/vote_rcap.gif" width="4" height="12" border="0"');
# -- phpbb_styles_template
INSERT INTO phpbb_styles_template (template_id, template_name, template_path, poll_length, pm_box_length) VALUES (1, 'subSilver &copy; phpBB Group', 'subSilver', 205, 175);
diff --git a/phpBB/install/schemas/mysql_schema.sql b/phpBB/install/schemas/mysql_schema.sql
index 778390678b..d2b25e0d7e 100644
--- a/phpBB/install/schemas/mysql_schema.sql
+++ b/phpBB/install/schemas/mysql_schema.sql
@@ -509,7 +509,7 @@ CREATE TABLE phpbb_ratings (
CREATE TABLE phpbb_reports_reasons (
reason_id smallint(6) NOT NULL auto_increment,
reason_priority tinyint(4) NOT NULL default '0',
- reason_name varchar(255) NOT NULL default '',
+ reason_name varchar(255) DEFAULT '' NOT NULL,
reason_description text NOT NULL,
PRIMARY KEY (reason_id)
);
@@ -537,7 +537,7 @@ CREATE TABLE phpbb_reports (
#
CREATE TABLE phpbb_search_results (
search_id int(11) UNSIGNED NOT NULL default '0',
- session_id varchar(32) NOT NULL default '',
+ session_id varchar(32) DEFAULT '' NOT NULL,
search_array text NOT NULL,
PRIMARY KEY (search_id),
KEY session_id (session_id)
@@ -549,7 +549,7 @@ CREATE TABLE phpbb_search_results (
# Table structure for table `phpbb_search_wordlist`
#
CREATE TABLE phpbb_search_wordlist (
- word_text varchar(50) binary NOT NULL default '',
+ word_text varchar(50) binary DEFAULT '' NOT NULL,
word_id mediumint(8) UNSIGNED NOT NULL auto_increment,
word_common tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (word_text),
@@ -655,73 +655,68 @@ CREATE TABLE phpbb_styles_theme (
#
CREATE TABLE phpbb_styles_imageset (
imageset_id tinyint(4) unsigned NOT NULL auto_increment,
- imageset_name varchar(100) default NULL,
- imageset_path varchar(30) default NULL,
- btn_post varchar(200) default NULL,
- btn_post_pm varchar(200) default NULL,
- btn_reply varchar(200) default NULL,
- btn_reply_pm varchar(200) default NULL,
- btn_locked varchar(200) default NULL,
- btn_profile varchar(200) default NULL,
- btn_pm varchar(200) default NULL,
- btn_delete varchar(200) default NULL,
- btn_ip varchar(200) default NULL,
- btn_quote varchar(200) default NULL,
- btn_search varchar(200) default NULL,
- btn_edit varchar(200) default NULL,
- btn_report varchar(200) default NULL,
- btn_email varchar(200) default NULL,
- btn_www varchar(200) default NULL,
- btn_icq varchar(200) default NULL,
- btn_aim varchar(200) default NULL,
- btn_yim varchar(200) default NULL,
- btn_msnm varchar(200) default NULL,
- btn_no_email varchar(200) default '',
- btn_no_www varchar(200) default '',
- btn_no_icq varchar(200) default '',
- btn_no_aim varchar(200) default '',
- btn_no_yim varchar(200) default '',
- btn_no_msnm varchar(200) default '',
- btn_online varchar(200) default '',
- btn_offline varchar(200) default '',
- btn_topic_watch varchar(200) default NULL,
- btn_topic_unwatch varchar(200) default NULL,
- icon_unapproved varchar(200) NOT NULL default '',
- icon_reported varchar(200) NOT NULL default '',
- icon_attach varchar(200) default '',
- icon_post varchar(200) default NULL,
- icon_post_new varchar(200) default NULL,
- icon_post_latest varchar(200) default NULL,
- icon_post_newest varchar(200) default NULL,
- forum varchar(200) default NULL,
- forum_new varchar(200) default NULL,
- forum_locked varchar(200) default NULL,
- sub_forum varchar(200) default NULL,
- sub_forum_new varchar(200) default NULL,
- folder varchar(200) default NULL,
- folder_posted varchar(200) NOT NULL default '',
- folder_new varchar(200) default NULL,
- folder_new_posted varchar(200) NOT NULL default '',
- folder_hot varchar(200) default NULL,
- folder_hot_posted varchar(200) NOT NULL default '',
- folder_hot_new varchar(200) default NULL,
- folder_hot_new_posted varchar(200) NOT NULL default '',
- folder_locked varchar(200) default NULL,
- folder_locked_posted varchar(200) NOT NULL default '',
- folder_locked_new varchar(200) default NULL,
- folder_locked_new_posted varchar(200) NOT NULL default '',
- folder_sticky varchar(200) default NULL,
- folder_sticky_posted varchar(200) NOT NULL default '',
- folder_sticky_new varchar(200) default NULL,
- folder_sticky_new_posted varchar(200) NOT NULL default '',
- folder_announce varchar(200) default NULL,
- folder_announce_posted varchar(200) NOT NULL default '',
- folder_announce_new varchar(200) default NULL,
- folder_announce_new_posted varchar(200) NOT NULL default '',
- poll_left varchar(200) default NULL,
- poll_center varchar(200) default NULL,
- poll_right varchar(200) default NULL,
- PRIMARY KEY (imageset_id)
+ imageset_name varchar(100) DEFAULT '' NOT NULL,
+ imageset_path varchar(30) DEFAULT '' NOT NULL,
+ btn_post varchar(200) DEFAULT '' NOT NULL,
+ btn_post_pm varchar(200) DEFAULT '' NOT NULL,
+ btn_reply varchar(200) DEFAULT '' NOT NULL,
+ btn_reply_pm varchar(200) DEFAULT '' NOT NULL,
+ btn_locked varchar(200) DEFAULT '' NOT NULL,
+ btn_profile varchar(200) DEFAULT '' NOT NULL,
+ btn_pm varchar(200) DEFAULT '' NOT NULL,
+ btn_delete varchar(200) DEFAULT '' NOT NULL,
+ btn_ip varchar(200) DEFAULT '' NOT NULL,
+ btn_quote varchar(200) DEFAULT '' NOT NULL,
+ btn_search varchar(200) DEFAULT '' NOT NULL,
+ btn_edit varchar(200) DEFAULT '' NOT NULL,
+ btn_report varchar(200) DEFAULT '' NOT NULL,
+ btn_email varchar(200) DEFAULT '' NOT NULL,
+ btn_www varchar(200) DEFAULT '' NOT NULL,
+ btn_icq varchar(200) DEFAULT '' NOT NULL,
+ btn_aim varchar(200) DEFAULT '' NOT NULL,
+ btn_yim varchar(200) DEFAULT '' NOT NULL,
+ btn_msnm varchar(200) DEFAULT '' NOT NULL,
+ btn_jabber varchar(200) DEFAULT '' NOT NULL,
+ btn_online varchar(200) DEFAULT '' NOT NULL,
+ btn_offline varchar(200) DEFAULT '' NOT NULL,
+ btn_topic_watch varchar(200) DEFAULT '' NOT NULL,
+ btn_topic_unwatch varchar(200) DEFAULT '' NOT NULL,
+ icon_unapproved varchar(200) DEFAULT '' NOT NULL,
+ icon_reported varchar(200) DEFAULT '' NOT NULL,
+ icon_attach varchar(200) DEFAULT '' NOT NULL,
+ icon_post varchar(200) DEFAULT '' NOT NULL,
+ icon_post_new varchar(200) DEFAULT '' NOT NULL,
+ icon_post_latest varchar(200) DEFAULT '' NOT NULL,
+ icon_post_newest varchar(200) DEFAULT '' NOT NULL,
+ forum varchar(200) DEFAULT '' NOT NULL,
+ forum_new varchar(200) DEFAULT '' NOT NULL,
+ forum_locked varchar(200) DEFAULT '' NOT NULL,
+ sub_forum varchar(200) DEFAULT '' NOT NULL,
+ sub_forum_new varchar(200) DEFAULT '' NOT NULL,
+ folder varchar(200) DEFAULT '' NOT NULL,
+ folder_posted varchar(200) DEFAULT '' NOT NULL,
+ folder_new varchar(200) DEFAULT '' NOT NULL,
+ folder_new_posted varchar(200) DEFAULT '' NOT NULL,
+ folder_hot varchar(200) DEFAULT '' NOT NULL,
+ folder_hot_posted varchar(200) DEFAULT '' NOT NULL,
+ folder_hot_new varchar(200) DEFAULT '' NOT NULL,
+ folder_hot_new_posted varchar(200) DEFAULT '' NOT NULL,
+ folder_locked varchar(200) DEFAULT '' NOT NULL,
+ folder_locked_posted varchar(200) DEFAULT '' NOT NULL,
+ folder_locked_new varchar(200) DEFAULT '' NOT NULL,
+ folder_locked_new_posted varchar(200) DEFAULT '' NOT NULL,
+ folder_sticky varchar(200) DEFAULT '' NOT NULL,
+ folder_sticky_posted varchar(200) DEFAULT '' NOT NULL,
+ folder_sticky_new varchar(200) DEFAULT '' NOT NULL,
+ folder_sticky_new_posted varchar(200) DEFAULT '' NOT NULL,
+ folder_announce varchar(200) DEFAULT '' NOT NULL,
+ folder_announce_posted varchar(200) DEFAULT '' NOT NULL,
+ folder_announce_new varchar(200) DEFAULT '' NOT NULL,
+ folder_announce_new_posted varchar(200) DEFAULT '' NOT NULL,
+ poll_left varchar(200) DEFAULT '' NOT NULL,
+ poll_center varchar(200) DEFAULT '' NOT NULL,
+ poll_right varchar(200) DEFAULT '' NOT NULL,
+ PRIMARY KEY (imageset_id)
);
@@ -872,7 +867,6 @@ CREATE TABLE phpbb_users (
user_notify_pm tinyint(1) DEFAULT '1' NOT NULL,
user_popup_pm tinyint(1) DEFAULT '0' NOT NULL,
user_avatar varchar(100) DEFAULT '' NOT NULL,
- user_avatar_type tinyint(4) DEFAULT '0' NOT NULL,
user_avatar_width tinyint(4) UNSIGNED DEFAULT '0' NOT NULL,
user_avatar_height tinyint(4) UNSIGNED DEFAULT '0' NOT NULL,
user_sig text DEFAULT '' NOT NULL,
diff --git a/phpBB/language/en/lang_admin.php b/phpBB/language/en/lang_admin.php
index ea887ccee3..be7a027c34 100644
--- a/phpBB/language/en/lang_admin.php
+++ b/phpBB/language/en/lang_admin.php
@@ -580,7 +580,7 @@ $lang = array_merge($lang, array(
'BOARD_DEFAULTS_EXPLAIN' => 'These settings allow you to define a number of default or global settings used by the board. For example, to disable the use of HTML across the entire board alter the relevant setting below. This data is also used for new user registrations and (where relevant) guest users.',
'DEFAULT_STYLE' => 'Default Style',
'OVERRIDE_STYLE' => 'Override user style',
- 'OVERRIDE_STYLE_EXPLAIN' => 'Replaces users style with the default',
+ 'OVERRIDE_STYLE_EXPLAIN' => 'Replaces users style with the default.',
'DEFAULT_LANGUAGE' => 'Default Language',
'DATE_FORMAT' => 'Date Format',
'DATE_FORMAT_EXPLAIN' => 'The date format is the same as the PHP date function.',
@@ -590,23 +590,35 @@ $lang = array_merge($lang, array(
'CHAR_LIMIT_EXPLAIN' => 'Set to 0 for unlimited characters.',
'SMILIES_LIMIT' => 'Max smilies per post',
'SMILIES_LIMIT_EXPLAIN' => 'Set to 0 for unlimited smilies.',
- 'QUOTE_DEPTH_LIMIT' => 'Max nested quotes in posts',
+ 'QUOTE_DEPTH_LIMIT' => 'Max nested quotes per post',
'QUOTE_DEPTH_LIMIT_EXPLAIN' => 'Set to 0 for unlimited depth.',
'ALLOW_TOPIC_NOTIFY' => 'Allow Topic Watching',
'ALLOW_FORUM_NOTIFY' => 'Allow Forum Watching',
'ALLOW_NAME_CHANGE' => 'Allow Username changes',
+ 'USERNAME_LENGTH' => 'Username length',
+ 'USERNAME_LENGTH_EXPLAIN' => 'Minimum and maximum number of characters in usernames.',
+ 'USERNAME_CHARS' => 'Limit username chars',
+ 'USERNAME_CHARS_EXPLAIN' => 'Restrict type of characters that may be used in usernames, spacers are; space, -, +, _, [ and ]',
+ 'PASSWORD_LENGTH' => 'Password length',
+ 'PASSWORD_LENGTH_EXPLAIN' => 'Minimum and maximum number of characters in passwords.',
+ 'MIN_CHARS' => 'Min',
+ 'MAX_CHARS' => 'Max',
+ 'ALLOW_EMAIL_REUSE' => 'Allow Email address re-use',
+ 'ALLOW_EMAIL_REUSE_EXPLAIN' => 'Different users can register with the same email address.',
'ALLOW_ATTACHMENTS' => 'Allow Attachments',
'ALLOW_HTML' => 'Allow HTML',
'ALLOWED_TAGS' => 'Allowed HTML tags',
- 'ALLOWED_TAGS_EXPLAIN' => 'Separate tags with commas',
+ 'ALLOWED_TAGS_EXPLAIN' => 'Separate tags with commas.',
'ALLOW_BBCODE' => 'Allow BBCode',
'ALLOW_SMILIES' => 'Allow Smilies',
'ALLOW_SIG' => 'Allow Signatures',
'MAX_SIG_LENGTH' => 'Maximum signature length',
- 'MAX_SIG_LENGTH_EXPLAIN' => 'Maximum number of characters in user signatures',
+ 'MAX_SIG_LENGTH_EXPLAIN' => 'Maximum number of characters in user signatures.',
'ALLOW_NO_CENSORS' => 'Allow Disable of Censors',
'ALLOW_NO_CENSORS_EXPLAINS' => 'User can disable word censoring.',
-
+ 'USERNAME_CHARS_ANY' => 'Any character',
+ 'USERNAME_ALPHA_ONLY' => 'Alphanumeric only',
+ 'USERNAME_ALPHA_SPACERS' => 'Alphanumeric and spacers',
'PHP_INFO_EXPLAIN' => 'This page lists information on the version of PHP installed on this server. It includes details of loaded modules, available variables and default settings. This information may be useful when diagnosing problems. Please be aware that some hosting companies will limit what information is displayed here for security reasons. You are advised to not give out any details on this page except when asked by support or other Team Member on the support forums.',
diff --git a/phpBB/language/en/lang_main.php b/phpBB/language/en/lang_main.php
index 03d95b0e6a..34b8541e6a 100644
--- a/phpBB/language/en/lang_main.php
+++ b/phpBB/language/en/lang_main.php
@@ -307,7 +307,7 @@ $lang = array(
'SEARCH_SELF' => 'View your posts',
'SEARCH_UNANSWERED' => 'View unanswered posts',
- 'MARK_FORUMS_READ' => 'Mark all forums read',
+ 'MARK_FORUMS_READ' => 'Mark Forums Read',
'FORUMS_MARKED' => 'All forums have been marked read',
'CONGRATULATIONS' => 'Congratulations to',
@@ -375,8 +375,10 @@ $lang = array(
'VIEW_TOPIC_POLL' => 'Poll: ',
'VIEW_TOPIC_LOCKED' => 'Locked: ',
- 'MARK_TOPICS_READ' => 'Mark all topics read',
+ 'MARK_TOPICS_READ' => 'Mark Topics Read',
'TOPICS_MARKED' => 'The topics for this forum have now been marked read',
+ 'TOPIC_REPORTED' => 'This topic has been reported',
+ 'TOPIC_NOT_APPROVED'=> 'This topic has not been approved',
'RULES_POST_CAN' => 'You <b>can</b> post new topics in this forum',
@@ -407,10 +409,10 @@ $lang = array(
'NO_UNREAD_POSTS' => 'There are no new unread posts for this topic.',
'LOGIN_VIEWFORUM' => 'The board administrator requires you to be registered and logged in to view this forum.',
- 'STOP_WATCHING_FORUM' => 'Stop watching this forum',
- 'START_WATCHING_FORUM' => 'Watch this forum for new posts',
- 'NOT_WATCHING_FORUM' => 'You are no longer watching this forum',
- 'ARE_WATCHING_FORUM' => 'You are now watching this forum',
+ 'STOP_WATCHING_FORUM' => 'Unsubscribe Forum',
+ 'START_WATCHING_FORUM' => 'Subscribe Forum',
+ 'NOT_WATCHING_FORUM' => 'You no subscribe to updates on this forum',
+ 'ARE_WATCHING_FORUM' => 'You have subscribed to receive updates on this forum',
'VIEW_FORUM_TOPIC' => '1 Topic',
'VIEW_FORUM_TOPICS' => '%d Topics',
@@ -418,11 +420,11 @@ $lang = array(
'VIEW_TOPIC' => 'View topic',
'LOGIN_VIEWTOPIC' => 'The board administrator requires you to be registered and logged in to view this topic.',
- 'PRINT_TOPIC' => 'Printable version',
- 'EMAIL_TOPIC' => 'Email to friend',
- 'VIEW_NEXT_TOPIC' => 'View next topic',
- 'VIEW_PREVIOUS_TOPIC' => 'View previous topic',
- 'VIEW_UNREAD_POST' => 'View first unread post',
+ 'PRINT_TOPIC' => 'Print View',
+ 'EMAIL_TOPIC' => 'Email Friend',
+ 'VIEW_NEXT_TOPIC' => 'Next topic',
+ 'VIEW_PREVIOUS_TOPIC' => 'Previous topic',
+ 'VIEW_UNREAD_POST' => 'First unread post',
'NO_NEWER_TOPICS' => 'There are no newer topics in this forum',
'NO_OLDER_TOPICS' => 'There are no older topics in this forum',
@@ -448,8 +450,6 @@ $lang = array(
'POST_REPORTED' => 'Click to view reports',
'POST_NOT_APPROVED' => 'Click to approve post',
- 'TOPIC_REPORTED' => 'This topic has been reported',
- 'TOPIC_NOT_APPROVED'=> 'This topic has not been approved',
'WROTE' => 'wrote',
'QUOTE' => 'Quote',
@@ -469,10 +469,10 @@ $lang = array(
'MAKE_GLOBAL' => 'Make Global',
'VIEW_TOPIC_LOGS' => 'View Logs',
- 'STOP_WATCHING_TOPIC' => 'Stop watching this topic',
- 'START_WATCHING_TOPIC' => 'Watch this topic for replies',
- 'NOT_WATCHING_TOPIC' => 'You are no longer watching this topic',
- 'NOW_WATCHING_TOPIC' => 'You are now watching this topic',
+ 'STOP_WATCHING_TOPIC' => 'Unsubscribe Topic',
+ 'START_WATCHING_TOPIC' => 'Subscribe Topic',
+ 'NOT_WATCHING_TOPIC' => 'You are no longer subscribed to this topic.',
+ 'NOW_WATCHING_TOPIC' => 'You have subscribed to receive updates on this topic.',
'ALREADY_VOTED' => 'You have already voted in this poll and may not change your selection.',
'NO_VOTE_OPTION' => 'You must specify an option when voting.',
@@ -666,8 +666,16 @@ $lang = array(
'UCP_PROFILE' => 'Profile',
- 'UCP_REG_DETAILS' => 'Registration details',
- 'CONFIRM_EMAIL_EXPLAIN' => 'You only need to specify this if you are changing your email address.',
+ 'UCP_REG_DETAILS' => 'Registration details',
+ 'USERNAME_CHARS_ANY_EXPLAIN' => 'Length must be between %1$d and %2$d characters.',
+ 'USERNAME_ALPHA_ONLY_EXPLAIN' => 'Username must be between %1$d and %2$d chars long and use only alphanumeric characters',
+ 'USERNAME_ALPHA_SPACERS_EXPLAIN'=> 'Username must be between %1$d and %2$d chars long and use alphanumeric, space or -+_[] characters.',
+ 'CHANGE_PASSWORD' => 'Change password',
+ 'CHANGE_PASSWORD_EXPLAIN' => 'Must be between %1$d and %2$d characters.',
+ 'CURRENT_PASSWORD' => 'Current password',
+ 'CURRENT_PASSWORD_EXPLAIN' => 'You must confirm your current password if you wish to change it, alter your email address or username.',
+ 'CONFIRM_PASSWORD_EXPLAIN' => 'You only need to confirm your password if you changed it above',
+ 'CONFIRM_EMAIL_EXPLAIN' => 'You only need to specify this if you are changing your email address.',
'UCP_PROFILE_INFO' => 'Your Profile',
'PROFILE_INFO_NOTICE' => 'Please note that this information will be viewable to other members. Be careful when including any personal details. Any fields marked with a * must be completed.',
@@ -677,12 +685,13 @@ $lang = array(
'EMAIL_ADDRESS' => 'Email address',
'INTERESTS' => 'Interests',
'OCCUPATION' => 'Occupation',
- 'BIRTHDAY' => 'Birthday',
'UCP_ICQ' => 'ICQ Number',
'UCP_AIM' => 'AOL Instant Messenger',
'UCP_MSNM' => 'MSN Messenger',
'UCP_YIM' => 'Yahoo Messenger',
'JABBER' => 'Jabber Address',
+ 'BIRTHDAY' => 'Birthday',
+ 'BIRTHDAY_EXPLAIN' => 'Setting a year will list your age when it is your birthday.',
'UCP_SIGNATURE' => 'Your signature',
'SIGNATURE_NOTICE' => 'Please note that some forums limit the size and content of your signature. Be sure to read any forum or board rules to ensure you comply with them.',
@@ -691,19 +700,27 @@ $lang = array(
'SIGNATURE_EXPLAIN' => 'This is a block of text that can be added to posts you make. There is a %d character limit',
'SIGNATURE_TOO_LONG'=> 'Your signature is too long.',
- 'UCP_AVATAR' => 'Your avatar',
- 'AVATAR' => 'Avatar',
- 'AVATAR_EXPLAIN' => 'Displays a small graphic image below your details in posts. Only one image can be displayed at a time, its width can be no greater than %d pixels, a height no greater than %d pixels and a file size no more than %dkB.',
- 'DELETE_AVATAR' => 'Delete Image',
- 'CURRENT_IMAGE' => 'Current Image',
+ 'UCP_AVATAR' => 'Your avatar',
+ 'AVATAR' => 'Avatar',
+ 'AVATAR_EXPLAIN' => 'Maximum dimensions; width %1$d pixels, height %2$d pixels, filesize %3$dkB.',
+ 'DELETE_AVATAR' => 'Delete Image',
+ 'CURRENT_IMAGE' => 'Current Image',
'UPLOAD_AVATAR_FILE' => 'Upload from your machine',
'UPLOAD_AVATAR_URL' => 'Upload from a URL',
'UPLOAD_AVATAR_URL_EXPLAIN' => 'Enter the URL of the location containing the image, it will be copied to this site.',
'LINK_REMOTE_AVATAR' => 'Link off-site',
'LINK_REMOTE_AVATAR_EXPLAIN'=> 'Enter the URL of the location containing the Avatar image you wish to link to.',
- 'AVATAR_URL' => 'URL of Avatar Image',
+ 'LINK_REMOTE_SIZE' => 'Size of off-site avatar',
+ 'LINK_REMOTE_SIZE_EXPLAIN' => 'Specify the width and height of the offsite avatar, leave blank to attempt automatic verification.',
+ 'BY' => 'by', // Width by Height
'AVATAR_GALLERY' => 'Select from gallery',
- 'SHOW_GALLERY' => 'Show gallery',
+ 'AVATAR_CATEGORY' => 'Category',
+ 'AVATAR_PAGE' => 'Page',
+
+ 'AVATAR_URL_INVALID' => 'The URL you specified is invalid.',
+ 'AVATAR_NOT_UPLOADED' => 'Avatar could not be uploaded.',
+ 'AVATAR_WRONG_SIZE' => 'The avatar must be at most %1$d pixels wide and %2$d pixels high.',
+ 'AVATAR_WRONG_FILESIZE' => 'The avatar must be between 0 and %d bytes.',
'PROFILE_UPDATED' => 'Your profile has been updated.',
@@ -749,6 +766,32 @@ $lang = array(
'UCP_LISTS' => 'Buddy/Ignore Lists',
+ 'REGISTRATION' => 'Registration',
+ 'COPPA_BIRTHDAY' => 'To continue with the registration procedure please tell us when you were born.',
+ 'UCP_COPPA_BEFORE' => 'Before %s',
+ 'UCP_COPPA_ON_AFTER'=> 'On or After %s',
+
+ 'UCP_AGREEMENT' => 'While the administrators and moderators of this forum will attempt to remove or edit any generally objectionable material as quickly as possible, it is impossible to review every message. Therefore you acknowledge that all posts made to these forums express the views and opinions of the author and not the administrators, moderators or webmaster (except for posts by these people) and hence will not be held liable.<br /><br />You agree not to post any abusive, obscene, vulgar, slanderous, hateful, threatening, sexually-orientated or any other material that may violate any applicable laws. Doing so may lead to you being immediately and permanently banned (and your service provider being informed). The IP address of all posts is recorded to aid in enforcing these conditions. You agree that the webmaster, administrator and moderators of this forum have the right to remove, edit, move or close any topic at any time should they see fit. As a user you agree to any information you have entered above being stored in a database. While this information will not be disclosed to any third party without your consent the webmaster, administrator and moderators cannot be held responsible for any hacking attempt that may lead to the data being compromised.<br /><br />This forum system uses cookies to store information on your local computer. These cookies do not contain any of the information you have entered above, they serve only to improve your viewing pleasure. The email address is used only for confirming your registration details and password (and for sending new passwords should you forget your current one).<br /><br />By clicking Register below you agree to be bound by these conditions.',
+ 'UCP_EMAIL_ACTIVATE'=> 'Please note that you will need to enter a valid email address before your account is activated. You will recieve an email at the address you provide that contains an account activation link.',
+ 'UCP_ADMIN_ACTIVATE'=> 'Please note that you will need to enter a valid email address before your account is activated. The administrator will review your account and if approved you will an email at the address you specified.',
+ 'NOT_AGREE' => 'I do not agree to these terms',
+ 'AGREE' => 'I agree to these terms',
+
+ 'CONFIRM_EMAIL' => 'Confirm email address',
+ 'NEW_PASSWORD' => 'Password',
+ 'NEW_PASSWORD_EXPLAIN' => 'Must be between %1$d and %2$d characters.',
+ 'CONFIRM_PASSWORD' => 'Confirm password',
+ 'LANGUAGE' => 'Language',
+ 'TIMEZONE' => 'Timezone',
+ 'CONFIRMATION' => 'Confirmation of registration',
+ 'CONFIRM_EXPLAIN' => 'To prevent automated registrations the board administrator requires you to enter a confirmation code. The code is displayed in the image you should see below. If you are visually impaired or cannot otherwise read this code please contact the %sBoard Administrator%s.',
+ 'CONFIRM_CODE' => 'Confirmation code',
+ 'CONFIRM_CODE_EXPLAIN' => 'Enter the code exactly as you see it in the image',
+ 'COPPA_COMPLIANCE' => 'COPPA Compliance',
+ 'COPPA_EXPLAIN' => 'Please note that clicking submit will create your account. However it cannot be activated until a parent or guardian approves your registration. You will be emailed a copy of the necessary form with details of where to send it.',
+
+
+
'No_user_id_specified' => 'Sorry but that user does not exist',
'Wrong_Profile' => 'You cannot modify a profile that is not your own.',
'Only_one_avatar' => 'Only one type of avatar can be specified',
@@ -759,21 +802,12 @@ $lang = array(
'No_send_account_inactive' => 'Sorry, but your password cannot be retrieved because your account is currently inactive. Please contact the forum administrator for more information',
-
-
- 'Select_avatar' => 'Select avatar',
- 'Return_profile' => 'Cancel avatar',
- 'Select_category' => 'Select category',
-
-
-
'Profile_updated' => 'Your profile has been updated',
'Profile_updated_inactive' => 'Your profile has been updated, however you have changed vital details thus your account is now inactive. Check your email to find out how to reactivate your account, or if admin activation is require wait for the administrator to reactivate your account',
'Fields_empty' => 'You must fill in the required fields',
'Avatar_filetype' => 'The avatar filetype must be .jpg, .gif or .png',
'Avatar_filesize' => 'The avatar image file size must be less than %d kB',
- 'Avatar_imagesize' => 'The avatar must be less than %d pixels wide and %d pixels high',
'Welcome_subject' => 'Welcome to %s Forums',
'New_account_subject' => 'New user account',
'Account_activated_subject' => 'Account Activated',
@@ -783,32 +817,8 @@ $lang = array(
'Reactivate' => 'Reactivate your account!',
'Already_activated' => 'You have already activated your account',
- 'REGISTRATION' => 'Registration',
- 'COPPA_BIRTHDAY' => 'To continue with the registration procedure please tell us when you were born.',
- 'UCP_COPPA_BEFORE' => 'Before %s',
- 'UCP_COPPA_ON_AFTER'=> 'On or After %s',
- 'UCP_AGREEMENT' => 'While the administrators and moderators of this forum will attempt to remove or edit any generally objectionable material as quickly as possible, it is impossible to review every message. Therefore you acknowledge that all posts made to these forums express the views and opinions of the author and not the administrators, moderators or webmaster (except for posts by these people) and hence will not be held liable.<br /><br />You agree not to post any abusive, obscene, vulgar, slanderous, hateful, threatening, sexually-orientated or any other material that may violate any applicable laws. Doing so may lead to you being immediately and permanently banned (and your service provider being informed). The IP address of all posts is recorded to aid in enforcing these conditions. You agree that the webmaster, administrator and moderators of this forum have the right to remove, edit, move or close any topic at any time should they see fit. As a user you agree to any information you have entered above being stored in a database. While this information will not be disclosed to any third party without your consent the webmaster, administrator and moderators cannot be held responsible for any hacking attempt that may lead to the data being compromised.<br /><br />This forum system uses cookies to store information on your local computer. These cookies do not contain any of the information you have entered above, they serve only to improve your viewing pleasure. The email address is used only for confirming your registration details and password (and for sending new passwords should you forget your current one).<br /><br />By clicking Register below you agree to be bound by these conditions.',
- 'UCP_EMAIL_ACTIVATE'=> 'Please note that you will need to enter a valid email address before your account is actived. You will recieve an email at the address you provide that contains an account activation link.',
- 'UCP_ADMIN_ACTIVATE'=> 'Please note that the administrator of this forum will have to approve your account before it is activated. You will recieve and email once your account has been activated.',
- 'NOT_AGREE' => 'I do not agree to these terms',
- 'AGREE' => 'I agree to these terms',
-
- 'CONFIRM_EMAIL' => 'Confirm email address',
- 'NEW_PASSWORD' => 'New password',
- 'NEW_PASSWORD_EXPLAIN' => 'You only need to supply a password if you want to change it',
- 'CURRENT_PASSWORD' => 'Current password',
- 'CURRENT_PASSWORD_EXPLAIN' => 'You must confirm your current password if you wish to change it or alter your email address',
- 'CONFIRM_PASSWORD' => 'Confirm password',
- 'CONFIRM_PASSWORD_EXPLAIN' => 'You only need to confirm your password if you changed it above',
- 'LANGUAGE' => 'Language',
- 'TIMEZONE' => 'Timezone',
- 'CONFIRMATION' => 'Confirmation of registration',
- 'CONFIRM_EXPLAIN' => 'To prevent automated registrations the board administrator requires you to enter a confirmation code. The code is displayed in the image you should see below. If you are visually impaired or cannot otherwise read this code please contact the %sBoard Administrator%s.',
- 'CONFIRM_CODE' => 'Confirmation code',
- 'CONFIRM_CODE_EXPLAIN' => 'Enter the code exactly as you see it in the image',
- 'COPPA_COMPLIANCE' => 'COPPA Compliance',
- 'COPPA_EXPLAIN' => 'Please note that clicking submit will create your account. However it cannot be activated until a parent or guardian approves your registration. You will be emailed a copy of the necessary form with details of where to send it.',
+
'PASSWORD_MISMATCH' => 'The passwords you entered did not match',
'Current_password_mismatch' => 'The current password you supplied does not match that stored in the database',
@@ -822,24 +832,28 @@ $lang = array(
'CONFIRM_CODE_WRONG' => 'The confirmation code you entered was incorrect.',
'TOO_MANY_REGISTERS' => 'You have exceeded the maximum number of registration attempts for this session. Please try again later.',
+
+
+
'ACCOUNT_ADDED' => 'Thank you for registering, your account has been created. You may now login with your username and password',
'ACCOUNT_INACTIVE' => 'Your account has been created. However, this forum requires account activation, an activation key has been sent to the email address you provided. Please check your email for further information',
'ACCOUNT_INACTIVE_ADMIN'=> 'Your account has been created. However, this forum requires account activation by the administrator. An email has been sent to them and you will be informed when your account has been activated',
- 'ACCOUNT_INACTIVE_SELF_ADMIN'=> 'Your account has been created. However, this forum requires account activation by both yourself and the administrator. An activation key has been sent to the email address you provided. Please follow the directions in that message. Once activated an administrator will need to approve your account. You will be notified when this occcurs.',
'ACCOUNT_COPPA' => 'Your account has been created but has to be approved, please check your email for details.',
- 'Wrong_activation' => 'The activation key you supplied does not match any in the database',
- 'Send_password' => 'Send me a new password',
- 'Password_updated' => 'A new password has been created, please check your email for details on how to activate it',
- 'No_email_match' => 'The email address you supplied does not match the one listed for that username',
- 'New_password_activation' => 'New password activation',
- 'Password_activated' => 'Your account has been re-activated. To logon please use the password supplied in the email you received',
+ 'Wrong_activation' => 'The activation key you supplied does not match any in the database',
+ 'Send_password' => 'Send me a new password',
+ 'Password_updated' => 'A new password has been created, please check your email for details on how to activate it',
+ 'No_email_match' => 'The email address you supplied does not match the one listed for that username',
+ 'New_password_activation' => 'New password activation',
+ 'Password_activated' => 'Your account has been re-activated. To logon please use the password supplied in the email you received',
'COPPA' => 'Your account has been created but has to be approved, please check your email for details.',
+
+
'Private_Messaging' => 'Private Messaging',
'Unread_message' => 'Unread message',
'Read_message' => 'Read message',
@@ -1078,13 +1092,8 @@ $lang = array(
'VIEWING_MEMBERS' => 'Viewing member details',
'VIEWING_MESSAGES' => 'Viewing Private Messages',
'VIEWING_FAQ' => 'Viewing FAQ',
-);
-
-
-// lang_mod strings
-$lang += array(
'FRONT_PAGE' => 'Front page',
'REPORTED_POSTS' => 'Reported posts',
'VIEW_FORUM' => 'View forum',
@@ -1105,8 +1114,6 @@ $lang += array(
'REPORTER' => 'Reporter',
'REPORT_TIME' => 'Report time',
-// ------
-// strings borrowed from lang_admin
'ALL_FORUMS' => 'All forums',
'LOOK_UP_FORUM' => 'Select a forum',
'IP' => 'User IP',
@@ -1134,7 +1141,6 @@ $lang += array(
'LOOKUP_IP' => 'Look up IP',
'LOOKUP_ALL' => 'Look up all IP',
-// ------
'LOGS_CURRENT_TOPIC' => 'Currently viewing logs for:',
'FORUM_NOT_POSTABLE' => 'This forum is not postable',
diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php
index 2a3cfd2576..8f69e07020 100644
--- a/phpBB/memberlist.php
+++ b/phpBB/memberlist.php
@@ -131,12 +131,12 @@ switch ($mode)
}
// We left join on the session table to see if the user is currently online
- $sql = "SELECT username, user_id, user_colour, user_permissions, user_sig, user_sig_bbcode_uid, user_sig_bbcode_bitfield, user_viewemail, user_posts, user_regdate, user_rank, user_from, user_occ, user_interests, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar, user_lastvisit, MAX(session_time) AS session_time
+ $sql = "SELECT username, user_id, user_colour, user_permissions, user_sig, user_sig_bbcode_uid, user_sig_bbcode_bitfield, user_allow_viewemail, user_posts, user_regdate, user_rank, user_from, user_occ, user_interests, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar, user_lastvisit, MAX(session_time) AS session_time
FROM " . USERS_TABLE . "
LEFT JOIN " . SESSIONS_TABLE . " ON session_user_id = user_id
WHERE user_id = $user_id
AND user_active = 1
- GROUP BY username, user_id, user_colour, user_permissions, user_sig, user_sig_bbcode_uid, user_sig_bbcode_bitfield, user_viewemail, user_posts, user_regdate, user_rank, user_from, user_occ, user_interests, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar, user_lastvisit";
+ GROUP BY username, user_id, user_colour, user_permissions, user_sig, user_sig_bbcode_uid, user_sig_bbcode_bitfield, user_allow_viewemail, user_posts, user_regdate, user_rank, user_from, user_occ, user_interests, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar, user_lastvisit";
$result = $db->sql_query($sql);
if (!($row = $db->sql_fetchrow($result)))
@@ -598,7 +598,7 @@ switch ($mode)
$db->sql_freeresult($result);
// Do the SQL thang
- $sql = "SELECT username, user_id, user_colour, user_viewemail, user_posts, user_regdate, user_rank, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar, user_lastvisit
+ $sql = "SELECT username, user_id, user_colour, user_allow_viewemail, user_posts, user_regdate, user_rank, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar, user_lastvisit
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
$where_sql
@@ -677,22 +677,20 @@ function show_profile($data)
$user_id = $data['user_id'];
$poster_avatar = '';
- if (isset($data['user_avatar_type']) && $user_id && !empty($data['user_allowavatar']) && $user->data['user_viewavatars'])
+ if (isset($data['user_avatar']))
{
- switch($data['user_avatar_type'])
+ switch ($data['user_avatar_type'])
{
- case USER_AVATAR_UPLOAD:
- $poster_avatar = ($config['allow_avatar_upload']) ? '<img src="' . $config['avatar_path'] . '/' . $data['user_avatar'] . '" alt="" border="0" />' : '';
+ case AVATAR_UPLOAD:
+ $poster_avatar = $config['avatar_path'] . '/';
break;
-
- case USER_AVATAR_REMOTE:
- $poster_avatar = ($config['allow_avatar_remote']) ? '<img src="' . $data['user_avatar'] . '" alt="" border="0" />' : '';
- break;
-
- case USER_AVATAR_GALLERY:
- $poster_avatar = ($config['allow_avatar_local']) ? '<img src="' . $config['avatar_gallery_path'] . '/' . $data['user_avatar'] . '" alt="" border="0" />' : '';
+ case AVATAR_GALLERY:
+ $poster_avatar = $config['avatar_gallery_path'] . '/';
break;
}
+ $poster_avatar .= $data['user_avatar'];
+
+ $poster_avatar = '<img src="' . $poster_avatar . '" width="' . $user->data['user_avatar_width'] . '" height="' . $user->data['user_avatar_height'] . '" border="0" alt="" />';
}
$rank_title = $rank_img = '';
@@ -713,9 +711,9 @@ function show_profile($data)
}
}
- if (!empty($data['user_viewemail']) || $auth->acl_get('a_'))
+ if (!empty($data['user_allow_viewemail']) || $auth->acl_get('a_'))
{
- $email_uri = (!empty($config['board_email_form'])) ? "memberlist.$phpEx$SID&amp;mode=email&amp;u=" . $user_id : 'mailto:' . $row['user_email'];
+ $email_uri = (!empty($config['board_email_form'])) ? "memberlist.$phpEx$SID&amp;mode=email&amp;u=$user_id" : 'mailto:' . $row['user_email'];
$email_img = '<a href="' . $email_uri . '">' . $user->img('btn_email', $user->lang['EMAIL']) . '</a>';
$email = '<a href="' . $email_uri . '">' . $user->lang['EMAIL'] . '</a>';
}
diff --git a/phpBB/templates/subSilver/index_body.html b/phpBB/templates/subSilver/index_body.html
index 45ae012404..4ef32bd52d 100644
--- a/phpBB/templates/subSilver/index_body.html
+++ b/phpBB/templates/subSilver/index_body.html
@@ -91,7 +91,7 @@
</tr>
<tr>
<td class="row1" width="46" align="center" valign="middle"><img src="templates/subSilver/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
- <td class="row1" width="100%" align="left"><span class="gensmall">{L_CONGRATULATIONS}: <b>{BIRTHDAY_LIST}</b></span></td>
+ <td class="row1" width="100%" align="left"><span class="gensmall"><!-- IF BIRTHDAY_LIST -->{L_CONGRATULATIONS}: <b>{BIRTHDAY_LIST}</b><!-- ELSE -->{L_NO_BIRTHDAYS}<!-- ENDIF --></span></td>
</tr>
</table>
<!-- ENDIF -->
diff --git a/phpBB/templates/subSilver/subSilver.css b/phpBB/templates/subSilver/subSilver.css
index a9fe6745e8..24afc9ffa2 100644
--- a/phpBB/templates/subSilver/subSilver.css
+++ b/phpBB/templates/subSilver/subSilver.css
@@ -208,12 +208,6 @@ hr {
background-color: #D1D7DC;
}
-/* Protected classes used internally -DO NOT REMOVE!- */
-span.hilit {
- color: red;
- font-weight: bold;
-}
-
.gen {
font-size: 80%;
}
@@ -226,41 +220,41 @@ span.hilit {
/* The register, login, search etc links at the top of the page */
.mainmenu {
- color: black;
- font-size: 70%;
+ color: black;
+ font-size: 70%;
}
/* Forum title: Text and link to the forums used in: index.php */
.forumlink {
- color: #006699;
- font-size: 80%;
- font-weight:bold;
+ color: #006699;
+ font-size: 80%;
+ font-weight: bold;
}
/* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */
.nav {
- color: black;
- font-size: 65%;
- font-weight:bold;
+ color: black;
+ font-size: 60%;
+ font-weight: bold;
}
/* titles for the topics: could specify viewed link colour too */
.topictitle {
- color: black;
- font-size: 65%;
- font-weight:bold;
+ color: black;
+ font-size: 65%;
+ font-weight: bold;
}
/* Name of poster in viewmsg.php and viewtopic.php and other places */
.name {
- color: black;
- font-size: 70%;
+ color: black;
+ font-size: 70%;
}
/* Location, number of posts, post date etc */
.postdetails {
- color: black;
- font-size: 60%;
+ color: black;
+ font-size: 60%;
}
/* The content of the posts (body of text) */
@@ -270,17 +264,17 @@ span.hilit {
/* Quote & Code blocks */
.quote {
- color: #444;
- font: normal 70%/125% Verdana, Arial, Helvetica, sans-serif;
- border: #D1D7DC solid 1px;
- background-color: #FAFAFA;
+ color: #444;
+ font: normal 70%/125% Verdana, Arial, Helvetica, sans-serif;
+ border: #D1D7DC solid 1px;
+ background-color: #FAFAFA;
}
.code {
- color: #006600;
- font: normal 70% 'Courier New', monospace;
- border: #D1D7DC 1px solid;
- background-color: #FAFAFA;
+ color: #006600;
+ font: normal 70% 'Courier New', monospace;
+ border: #D1D7DC 1px solid;
+ background-color: #FAFAFA;
}
/* Syntax highlighning */
@@ -298,6 +292,11 @@ span.hilit {
letter-spacing: -1px;
}
+span.hilit {
+ color: red;
+ font-weight: bold;
+}
+
/*
This is the line in the posting page which shows the rollover
help line. This is actually a text box, but if set to be the same
diff --git a/phpBB/templates/subSilver/ucp_profile.html b/phpBB/templates/subSilver/ucp_profile.html
index 0ff0cbc749..4b2760c96b 100644
--- a/phpBB/templates/subSilver/ucp_profile.html
+++ b/phpBB/templates/subSilver/ucp_profile.html
@@ -4,7 +4,7 @@
<tr>
<td width="20%" height="100%"><table width="100%" height="100%" cellspacing="1" cellpadding="4" border="0">
<tr>
- <th>Options</th>
+ <th>{L_OPTIONS}</th>
</tr>
<!-- BEGIN ucp_subsection -->
<tr>
@@ -37,16 +37,22 @@
<!-- IF S_DISPLAY_REG_DETAILS -->
<tr>
- <td class="row1" width="38%"><b class="genmed">{L_USERNAME}: </b></td>
+ <td class="row1" width="38%"><b class="genmed">{L_USERNAME}: </b><br /><span class="gensmall">{L_USERNAME_EXPLAIN}</span></td>
<td class="row2"><!-- IF S_CHANGE_USERNAME --><input type="text" class="post" name="username" size="30" maxlength="30" value="{USERNAME}" /><!-- ELSE --><b class="gen">{USERNAME}</b><!-- ENDIF --></td>
</tr>
<tr>
<td class="row1"><b class="genmed">{L_EMAIL_ADDRESS}: </b></td>
<td class="row2"><!-- IF S_CHANGE_EMAIL --><input type="text" class="post" name="email" size="30" maxlength="60" value="{EMAIL}" /><!-- ELSE --><b class="gen">{EMAIL}</b><!-- ENDIF --></td>
</tr>
+ <!-- IF S_CHANGE_EMAIL -->
+ <tr>
+ <td class="row1"><b class="genmed">{L_CONFIRM_EMAIL}: </b><br /><span class="gensmall">{L_CONFIRM_EMAIL_EXPLAIN}</span></td>
+ <td class="row2"><input type="text" class="post" name="confirm_email" size="30" maxlength="60" value="{CONFIRM_EMAIL}" /></td>
+ </tr>
+ <!-- ENDIF -->
<!-- IF S_CHANGE_PASSWORD -->
<tr>
- <td class="row1"><b class="genmed">{L_NEW_PASSWORD}: </b><br /><span class="gensmall">{L_NEW_PASSWORD_EXPLAIN}</span></td>
+ <td class="row1"><b class="genmed">{L_CHANGE_PASSWORD}: </b><br /><span class="gensmall">{L_CHANGE_PASSWORD_EXPLAIN}</span></td>
<td class="row2"><input type="password" class="post" name="new_password" size="30" maxlength="255" value="{NEW_PASSWORD}" /></td>
</tr>
<tr>
@@ -82,7 +88,7 @@
</tr>
<tr>
<td class="row1"><b class="genmed">{L_JABBER}: </b></td>
- <td class="row2"><input class="post" type="text" name="jabber" size="30" maxlength="255" value="{YIM}" /></td>
+ <td class="row2"><input class="post" type="text" name="jabber" size="30" maxlength="255" value="{JABBER}" /></td>
</tr>
<tr>
<td class="row1"><b class="genmed">{L_WEBSITE}: </b></td>
@@ -101,7 +107,7 @@
<td class="row2"><textarea class="post" name="interests" rows="3" cols="30">{INTERESTS}</textarea></td>
</tr>
<tr>
- <td class="row1"><b class="genmed">{L_BIRTHDAY}: </b></td>
+ <td class="row1"><b class="genmed">{L_BIRTHDAY}: </b><br /><span class="gensmall">{L_BIRTHDAY_EXPLAIN}</span></td>
<td class="row2"><span class="gensmall">Day:</span> <select name="bday_day">{S_BIRTHDAY_DAY_OPTIONS}</select> <span class="gensmall">Month:</span> <select name="bday_month">{S_BIRTHDAY_MONTH_OPTIONS}</select> <span class="gensmall">Year:</span> <select name="bday_year">{S_BIRTHDAY_YEAR_OPTIONS}</select></td>
</tr>
<!-- ENDIF -->
@@ -204,35 +210,55 @@
<!-- IF S_DISPLAY_AVATAR -->
<tr>
- <td class="row1" colspan="2"><table width="70%" cellspacing="2" cellpadding="0" border="0" align="center">
- <tr>
- <td width="65%"><span class="gensmall">{L_AVATAR_EXPLAIN}</span></td>
- <td align="center"><span class="gensmall">{L_CURRENT_IMAGE}</span><br />{AVATAR}<br /><input type="checkbox" name="avatardel" />&nbsp;<span class="gensmall">{L_DELETE_AVATAR}</span></td>
- </tr>
- </table></td>
+ <td class="row1" width="50%"><b class="genmed">{L_CURRENT_IMAGE}: </b><br /><span class="gensmall">{L_AVATAR_EXPLAIN}</span></td>
+ <td class="row2" align="center">{AVATAR}<br /><input type="checkbox" name="delete" />&nbsp;<span class="gensmall">{L_DELETE_AVATAR}</span></td>
</tr>
<!-- IF S_UPLOAD_AVATAR_FILE -->
<tr>
- <td class="row1"><b class="genmed">{L_UPLOAD_AVATAR_FILE}:</b></td>
- <td class="row2"><input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_SIZE}" /><input type="file" name="avatar" class="post" style="width:200px" /></td>
+ <td class="row1"><b class="genmed">{L_UPLOAD_AVATAR_FILE}: </b></td>
+ <td class="row2"><input type="hidden" name="MAX_FILE_SIZE" value="{AVATAR_SIZE}" /><input class="post" type="file" name="uploadfile" /></td>
</tr>
<!-- ENDIF -->
<!-- IF S_UPLOAD_AVATAR_URL -->
<tr>
- <td class="row1"><b class="genmed">{L_UPLOAD_AVATAR_URL}:</b><br /><span class="gensmall">{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></td>
- <td class="row2"><input type="text" name="avatarurl" size="40" class="post" style="width:200px" /></td>
+ <td class="row1"><b class="genmed">{L_UPLOAD_AVATAR_URL}: </b><br /><span class="gensmall">{L_UPLOAD_AVATAR_URL_EXPLAIN}</span></td>
+ <td class="row2"><input class="post" type="text" name="uploadurl" size="40" value="{AVATAR_URL}" /></td>
</tr>
<!-- ENDIF -->
<!-- IF S_LINK_AVATAR -->
<tr>
- <td class="row1"><b class="genmed">{L_LINK_REMOTE_AVATAR}:</b><br /><span class="gensmall">{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></td>
- <td class="row2"><input type="text" name="avatarremoteurl" size="40" class="post" style="width:200px" /></td>
+ <td class="row1"><b class="genmed">{L_LINK_REMOTE_AVATAR}: </b><br /><span class="gensmall">{L_LINK_REMOTE_AVATAR_EXPLAIN}</span></td>
+ <td class="row2"><input class="post" type="text" name="remotelink" size="40" value="{AVATAR_REMOTE}" /></td>
+ </tr>
+ <tr>
+ <td class="row1"><b class="genmed">{L_LINK_REMOTE_SIZE}: </b><br /><span class="gensmall">{L_LINK_REMOTE_SIZE_EXPLAIN}</span></td>
+ <td class="row2"><input class="post" type="text" name="width" size="3" value="{WIDTH}" /> <span class="gen">px X </span> <input class="post" type="text" name="height" size="3" value="{HEIGHT}" /> <span class="gen">px</span></td>
</tr>
<!-- ENDIF -->
<!-- IF S_GALLERY_AVATAR -->
<tr>
- <td class="row1"><b class="genmed">{L_AVATAR_GALLERY}:</b></td>
- <td class="row2"><input type="submit" name="avatargallery" value="{L_SHOW_GALLERY}" class="liteoption" /></td>
+ <th colspan="2">{L_AVATAR_GALLERY}</th>
+ </tr>
+ <tr>
+ <td colspan="2" class="cat" height="28" align="center" valign="middle"><span class="genmed">{L_AVATAR_CATEGORY}: </span><select name="avatarcat">{S_AVATAR_CAT_OPTIONS}</select>&nbsp; <span class="genmed">{L_AVATAR_PAGE}: </span><select name="avatarpage">{S_AVATAR_PAGE_OPTIONS}</select>&nbsp;<input class="liteoption" type="submit" value="{L_GO}" name="avatargallery" /></td>
+ </tr>
+ <tr>
+ <td class="row1" colspan="2"><table width="100%" cellspacing="1" cellpadding="4" border="0" align="center">
+
+ <!-- BEGIN avatar_row -->
+ <tr>
+ <!-- BEGIN avatar_column -->
+ <td class="row1" align="center"><img src="{avatar_row.avatar_column.AVATAR_IMAGE}" alt="{avatar_row.avatar_column.AVATAR_NAME}" title="{avatar_row.avatar_column.AVATAR_NAME}" /></td>
+ <!-- END avatar_column -->
+ </tr>
+ <tr>
+ <!-- BEGIN avatar_option_column -->
+ <td class="row2" align="center"><input type="radio" name="avatarselect" value="{avatar_row.avatar_option_column.S_OPTIONS_AVATAR}" /></td>
+ <!-- END avatar_option_column -->
+ </tr>
+ <!-- END avatar_row -->
+
+ </table></td>
</tr>
<!-- ENDIF -->
<!-- ENDIF -->
diff --git a/phpBB/templates/subSilver/ucp_register.html b/phpBB/templates/subSilver/ucp_register.html
index 569b9b43ff..6d2bbfea0f 100644
--- a/phpBB/templates/subSilver/ucp_register.html
+++ b/phpBB/templates/subSilver/ucp_register.html
@@ -26,31 +26,31 @@
<!-- ENDIF -->
<tr>
- <td class="row1" width="38%"><span class="gen">{L_USERNAME}: </span></td>
+ <td class="row1" width="38%"><b class="genmed">{L_USERNAME}: </b><br /><span class="gensmall">{L_USERNAME_EXPLAIN}</span></td>
<td class="row2"><input type="text" class="post" name="username" size="25" maxlength="40" value="{USERNAME}" /></td>
</tr>
<tr>
- <td class="row1"><span class="gen">{L_EMAIL_ADDRESS}: </span></td>
+ <td class="row1"><b class="genmed">{L_EMAIL_ADDRESS}: </b></td>
<td class="row2"><input type="text" class="post" name="email" size="25" maxlength="255" value="{EMAIL}" /></td>
</tr>
<tr>
- <td class="row1"><span class="gen">{L_CONFIRM_EMAIL}: </span></td>
+ <td class="row1"><b class="genmed">{L_CONFIRM_EMAIL}: </b></td>
<td class="row2"><input type="text" class="post" name="email_confirm" size="25" maxlength="255" value="{EMAIL_CONFIRM}" /></td>
</tr>
<tr>
- <td class="row1"><span class="gen">{L_PASSWORD}: </span></td>
+ <td class="row1"><b class="genmed">{L_NEW_PASSWORD}: </b><br /><span class="gensmall">{L_NEW_PASSWORD_EXPLAIN}</span></td>
<td class="row2"><input type="password" class="post" name="new_password" size="25" maxlength="100" value="{PASSWORD}" /></td>
</tr>
<tr>
- <td class="row1"><span class="gen">{L_CONFIRM_PASSWORD}: </span></td>
+ <td class="row1"><b class="genmed">{L_CONFIRM_PASSWORD}: </b></td>
<td class="row2"><input type="password" class="post" name="password_confirm" size="25" maxlength="100" value="{PASSWORD_CONFIRM}" /></td>
</tr>
<tr>
- <td class="row1"><span class="gen">{L_LANGUAGE}: </span></td>
+ <td class="row1"><b class="genmed">{L_LANGUAGE}: </b></td>
<td class="row2"><select name="lang">{S_LANG_OPTIONS}</select></td>
</tr>
<tr>
- <td class="row1"><span class="gen">{L_TIMEZONE}: </span></td>
+ <td class="row1"><b class="genmed">{L_TIMEZONE}: </b></td>
<td class="row2"><select name="tz">{S_TZ_OPTIONS}</select></td>
</tr>
@@ -65,7 +65,7 @@
<td class="row1" colspan="2" align="center">{CONFIRM_IMG}</td>
</tr>
<tr>
- <td class="row1"><span class="gen">{L_CONFIRM_CODE}: </span><br /><span class="gensmall">{L_CONFIRM_CODE_EXPLAIN}</span></td>
+ <td class="row1"><b class="genmed">{L_CONFIRM_CODE}: </b><br /><span class="gensmall">{L_CONFIRM_CODE_EXPLAIN}</span></td>
<td class="row2"><input type="text" class="post" name="confirm_code" size="6" maxlength="6" /></td>
</tr>
<!-- ENDIF -->
diff --git a/phpBB/templates/subSilver/viewforum_body.html b/phpBB/templates/subSilver/viewforum_body.html
index 288b3c895c..9326561eea 100644
--- a/phpBB/templates/subSilver/viewforum_body.html
+++ b/phpBB/templates/subSilver/viewforum_body.html
@@ -2,13 +2,17 @@
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
- <td colspan="2"><a class="titles" href="{U_VIEW_FORUM}" title="{FORUM_DESC}">{FORUM_NAME}</a><!-- IF S_IS_POSTABLE --><!-- IF MODERATORS neq ''--><br /><b class="gensmall">{L_MODERATORS}: {MODERATORS}</b><!-- ENDIF --><!-- ENDIF --></td>
+ <td><a class="titles" href="{U_VIEW_FORUM}" title="{FORUM_DESC}">{FORUM_NAME}</a><!-- IF S_IS_POSTABLE --><!-- IF MODERATORS neq ''--><br /><b class="gensmall">{L_MODERATORS}: {MODERATORS}</b><!-- ENDIF --><!-- ENDIF --></td>
<td class="gensmall" align="right" valign="bottom"><!-- IF S_IS_POSTABLE -->{MOD_CP}<!-- ENDIF --></td>
</tr>
<tr>
- <td class="nav" valign="middle" nowrap="nowrap">{PAGE_NUMBER}</td>
- <td class="gensmall" nowrap="nowrap">[ {TOTAL_TOPICS} ]&nbsp;</td>
- <td class="gensmall" width="100%" align="right" nowrap="nowrap"><b>{PAGINATION}</b></td>
+ <td colspan="2"><table width="100%" cellspacing="0" border="0">
+ <tr>
+ <td class="nav" valign="middle" nowrap="nowrap">{PAGE_NUMBER}</td>
+ <td class="gensmall" nowrap="nowrap">&nbsp;[ {TOTAL_TOPICS} ]&nbsp;</td>
+ <td class="gensmall" width="100%" align="right" nowrap="nowrap"><b>{PAGINATION}</b></td>
+ </tr>
+ </table></td>
</tr>
</table>
diff --git a/phpBB/ucp.php b/phpBB/ucp.php
index 69907da92c..ce5b34476c 100755
--- a/phpBB/ucp.php
+++ b/phpBB/ucp.php
@@ -25,7 +25,6 @@
// * Link to (additional?) registration conditions
// * Admin defineable characters allowed in usernames?
// * Admin forced revalidation of given user/s from ACP
-// * Simple registration (option or always?), i.e. username, email address, password
// * Opening tab:
// * Last visit time
@@ -76,13 +75,13 @@ $ucp = new ucp();
switch ($mode)
{
case 'activate':
- $ucp->module('activate');
- $ucp->modules['activate']->main();
+ $ucp->load_module('activate');
+ $ucp->module['activate']->main();
break;
case 'remind':
- $ucp->module('remind');
- $ucp->modules['remind']->main();
+ $ucp->load_module('remind');
+ $ucp->module['remind']->main();
break;
@@ -92,13 +91,13 @@ switch ($mode)
redirect("index.$phpEx$SID");
}
- $ucp->module('register');
- $ucp->modules['register']->main();
+ $ucp->load_module('register');
+ $ucp->module['register']->main();
break;
case 'confirm':
- $ucp->module('confirm');
- $ucp->modules['confirm']->main();
+ $ucp->load_module('confirm');
+ $ucp->module['confirm']->main();
break;
case 'login':
diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php
index 23339deb7d..a767416e5d 100644
--- a/phpBB/viewtopic.php
+++ b/phpBB/viewtopic.php
@@ -380,7 +380,7 @@ $topic_mod .= ($auth->acl_get('f_announce', $forum_id) && ($topic_type != POST_A
$topic_mod .= ($auth->acl_get('m_', $forum_id)) ? '<option value="viewlogs">' . $user->lang['VIEW_TOPIC_LOGS'] . '</option>' : '';
// If we've got a hightlight set pass it on to pagination.
-$pagination_url = "viewtopic.$phpEx$SID&amp;t=$topic_id&amp;" . (($highlight_match) ? "&amp;hilit=$highlight" : '');
+$pagination_url = "viewtopic.$phpEx$SID&amp;f=$forum_id&amp;t=$topic_id&amp;" . (($highlight_match) ? "&amp;hilit=$highlight" : '');
$pagination = generate_pagination($pagination_url, $total_posts, $config['posts_per_page'], $start);
@@ -758,22 +758,20 @@ do
);
- if ($row['user_avatar_type'] && $user->data['user_viewavatars'])
+ if ($row['user_avatar'] && $user->data['user_viewavatars'])
{
switch ($row['user_avatar_type'])
{
- case USER_AVATAR_UPLOAD:
- $user_cache[$poster_id]['avatar'] = ($config['allow_avatar_upload']) ? '<img src="' . $config['avatar_path'] . '/' . $row['user_avatar'] . '" width="' . $row['user_avatar_width'] . '" height="' . $row['user_avatar_height'] . '" border="0" alt="" />' : '';
+ case AVATAR_UPLOAD:
+ $avatar_img = $config['avatar_path'] . '/';
break;
-
- case USER_AVATAR_REMOTE:
- $user_cache[$poster_id]['avatar'] = ($config['allow_avatar_remote']) ? '<img src="' . $row['user_avatar'] . '" width="' . $row['user_avatar_width'] . '" height="' . $row['user_avatar_height'] . '" border="0" alt="" />' : '';
- break;
-
- case USER_AVATAR_GALLERY:
- $user_cache[$poster_id]['avatar'] = ($config['allow_avatar_local']) ? '<img src="' . $config['avatar_gallery_path'] . '/' . $row['user_avatar'] . '" width="' . $row['user_avatar_width'] . '" height="' . $row['user_avatar_height'] . '" border="0" alt="" />' : '';
+ case AVATAR_GALLERY:
+ $avatar_img = $config['avatar_gallery_path'] . '/';
break;
}
+ $avatar_img .= $row['user_avatar'];
+
+ $user_cache[$poster_id]['avatar'] = '<img src="' . $avatar_img . '" width="' . $user->data['user_avatar_width'] . '" height="' . $user->data['user_avatar_height'] . '" border="0" alt="" />';
}
if (!empty($row['user_rank']))
@@ -892,7 +890,7 @@ if ($bbcode_bitfield)
foreach ($rowset as $key => $row)
{
- $poster_id = intval($row['user_id']);
+ $poster_id = $row['user_id'];
// Three situations can prevent a post being display:
// i) The posters karma is below the minimum of the user
@@ -1024,14 +1022,14 @@ foreach ($rowset as $key => $row)
'RATING' => $rating,
- 'MINI_POST_IMG' => ($row['post_time'] > $user->data['user_lastvisit'] && $row['post_time'] > $topic_last_read) ? $user->img('icon_post_new', $user->lang['NEW_POST']) : $user->img('icon_post', $user->lang['POST']),
+ 'MINI_POST_IMG' => ($row['post_time'] > $user->data['user_lastvisit'] && $row['post_time'] > $topic_last_read && $user->data['user_id'] != ANONYMOUS) ? $user->img('icon_post_new', $user->lang['NEW_POST']) : $user->img('icon_post', $user->lang['POST']),
'POST_ICON_IMG' => (!empty($row['icon_id'])) ? '<img src="' . $config['icons_path'] . '/' . $icons[$row['icon_id']]['img'] . '" width="' . $icons[$row['icon_id']]['width'] . '" height="' . $icons[$row['icon_id']]['height'] . '" alt="" title="" />' : '',
'ICQ_STATUS_IMG' => $user_cache[$poster_id]['icq_status_img'],
- 'U_EDIT' => (($user->data['user_id'] == $poster_id && $auth->acl_get('f_edit', $forum_id) && ($post_time > time() - $config['edit_time'] || !$config['edit_time'])) || $auth->acl_get('m_edit', $forum_id)) ? "posting.$phpEx$SID&amp;mode=edit&amp;f=" . $row['forum_id'] . "&amp;p=" . $row['post_id'] : '',
+ 'U_EDIT' => (($user->data['user_id'] == $poster_id && $auth->acl_get('f_edit', $forum_id) && ($row['post_time'] > time() - $config['edit_time'] || !$config['edit_time'])) || $auth->acl_get('m_edit', $forum_id)) ? "posting.$phpEx$SID&amp;mode=edit&amp;f=" . $row['forum_id'] . "&amp;p=" . $row['post_id'] : '',
'U_QUOTE' => ($auth->acl_get('f_quote', $forum_id)) ? "posting.$phpEx$SID&amp;mode=quote&amp;p=" . $row['post_id'] : '',
'U_IP' => ($auth->acl_get('m_ip', $forum_id)) ? "mcp.$phpEx?sid=" . $user->session_id . "&amp;mode=post_details&amp;p=" . $row['post_id'] . "&amp;t=$topic_id#ip" : '',
- 'U_DELETE' => (($user->data['user_id'] == $poster_id && $auth->acl_get('f_delete', $forum_id) && $topic_data['topic_last_post_id'] == $row['post_id']) || $auth->acl_get('m_delete', $forum_id)) ? "posting.$phpEx$SID&amp;mode=delete&amp;p=" . $row['post_id'] : '',
+ 'U_DELETE' => (($user->data['user_id'] == $poster_id && $auth->acl_get('f_delete', $forum_id) && $topic_data['topic_last_post_id'] == $row['post_id'] && ($row['post_time'] > time() - $config['edit_time'] || !$config['edit_time'])) || $auth->acl_get('m_delete', $forum_id)) ? "posting.$phpEx$SID&amp;mode=delete&amp;p=" . $row['post_id'] : '',
'U_PROFILE' => $user_cache[$poster_id]['profile'],
'U_SEARCH' => $user_cache[$poster_id]['search'],
@@ -1056,7 +1054,6 @@ foreach ($rowset as $key => $row)
'S_POST_REPORTED' => ($row['post_reported'] && $auth->acl_get('m_', $forum_id)) ? TRUE : FALSE)
);
-
// Process Attachments for this post
if (sizeof($attachments[$row['post_id']]))
{
@@ -1293,8 +1290,6 @@ if ($force_encoding != '')
// Output the page
page_header($user->lang['VIEW_TOPIC'] .' - ' . $topic_title);
-//print_r($_COOKIE);
-
$template->set_filenames(array(
'body' => (isset($_GET['view']) && $_GET['view'] == 'print') ? 'viewtopic_print.html' : 'viewtopic_body.html')
);