Fixed Bug #15085 - [Feature] Add language selection on the registration terms page

Authorised by: AcydBurn 

git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@9666 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Gabriel Vazquez 2009-06-24 03:11:20 +00:00
parent 19e2dcd5db
commit 8d106c79c5
6 changed files with 84 additions and 32 deletions

View file

@ -146,6 +146,7 @@
<li>[Change] Add WAI-ARIA landmarks for easier accessibility to the prosilver template (Bug #45715 - Patch by MarcoZ)</li> <li>[Change] Add WAI-ARIA landmarks for easier accessibility to the prosilver template (Bug #45715 - Patch by MarcoZ)</li>
<li>[Change] &quot;Post details&quot; links with image in MCP. (Bug #39845 - Patch by leviatan21)</li> <li>[Change] &quot;Post details&quot; links with image in MCP. (Bug #39845 - Patch by leviatan21)</li>
<li>[Feature] Add confirmation for deactivating styles (Bug #14304 - Patch by leviatan21)</li> <li>[Feature] Add confirmation for deactivating styles (Bug #14304 - Patch by leviatan21)</li>
<li>[Feature] Add language selection on the registration terms page (Bug #15085 - Patch by leviatan21)</li>
<li>[Feature] Backported 3.2 captcha plugins.</li> <li>[Feature] Backported 3.2 captcha plugins.</li>
<li>[Feature] Introduced new ACM plugins: <li>[Feature] Introduced new ACM plugins:
<ul> <ul>

View file

@ -52,7 +52,6 @@ class ucp_register
add_form_key('ucp_register_terms'); add_form_key('ucp_register_terms');
} }
if ($change_lang || $user_lang != $config['default_lang']) if ($change_lang || $user_lang != $config['default_lang'])
{ {
$use_lang = ($change_lang) ? basename($change_lang) : basename($user_lang); $use_lang = ($change_lang) ? basename($change_lang) : basename($user_lang);
@ -67,7 +66,7 @@ class ucp_register
$agreed = (empty($_GET['change_lang'])) ? 0 : $agreed; $agreed = (empty($_GET['change_lang'])) ? 0 : $agreed;
} }
$user->lang_name = $lang = $use_lang; $user->lang_name = $user_lang = $use_lang;
$user->lang = array(); $user->lang = array();
$user->add_lang(array('common', 'ucp')); $user->add_lang(array('common', 'ucp'));
} }
@ -78,17 +77,26 @@ class ucp_register
} }
} }
$captcha_solved = false;
if ($config['enable_confirm'])
{
include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
$captcha =& phpbb_captcha_factory::get_instance($config['captcha_plugin']);
$captcha->init(CONFIRM_REG);
}
$cp = new custom_profile(); $cp = new custom_profile();
$error = $cp_data = $cp_error = array(); $error = $cp_data = $cp_error = array();
if (!$agreed || ($coppa === false && $config['coppa_enable']) || ($coppa && !$config['coppa_enable'])) if (!$agreed || ($coppa === false && $config['coppa_enable']) || ($coppa && !$config['coppa_enable']))
{ {
$add_lang = ($change_lang) ? '&amp;change_lang=' . urlencode($change_lang) : ''; $add_lang = ($change_lang) ? '&amp;change_lang=' . urlencode($change_lang) : '';
$add_coppa = ($coppa !== false) ? '&amp;coppa=' . $coppa : ''; $add_coppa = ($coppa !== false) ? '&amp;coppa=' . $coppa : '';
$s_hidden_fields = array(); $s_hidden_fields = array(
'change_lang' => $change_lang,
);
// If we change the language, we want to pass on some more possible parameter. // If we change the language, we want to pass on some more possible parameter.
if ($change_lang) if ($change_lang)
@ -108,6 +116,17 @@ class ucp_register
} }
} }
// Checking amount of available languages
$lang_row = array();
$sql = 'SELECT lang_id
FROM ' . LANG_TABLE;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$lang_row[] = $row;
}
$db->sql_freeresult($result);
if ($coppa === false && $config['coppa_enable']) if ($coppa === false && $config['coppa_enable'])
{ {
$now = getdate(); $now = getdate();
@ -115,6 +134,7 @@ class ucp_register
unset($now); unset($now);
$template->assign_vars(array( $template->assign_vars(array(
'S_LANG_OPTIONS' => (sizeof($lang_row) > 1) ? language_select($user_lang) : '',
'L_COPPA_NO' => sprintf($user->lang['UCP_COPPA_BEFORE'], $coppa_birthday), 'L_COPPA_NO' => sprintf($user->lang['UCP_COPPA_BEFORE'], $coppa_birthday),
'L_COPPA_YES' => sprintf($user->lang['UCP_COPPA_ON_AFTER'], $coppa_birthday), 'L_COPPA_YES' => sprintf($user->lang['UCP_COPPA_ON_AFTER'], $coppa_birthday),
@ -129,6 +149,7 @@ class ucp_register
else else
{ {
$template->assign_vars(array( $template->assign_vars(array(
'S_LANG_OPTIONS' => (sizeof($lang_row) > 1) ? language_select($user_lang) : '',
'L_TERMS_OF_USE' => sprintf($user->lang['TERMS_OF_USE_CONTENT'], $config['sitename'], generate_board_url()), 'L_TERMS_OF_USE' => sprintf($user->lang['TERMS_OF_USE_CONTENT'], $config['sitename'], generate_board_url()),
'S_SHOW_COPPA' => false, 'S_SHOW_COPPA' => false,
@ -138,19 +159,12 @@ class ucp_register
) )
); );
} }
unset($lang_row);
$this->tpl_name = 'ucp_agreement'; $this->tpl_name = 'ucp_agreement';
return; return;
} }
$captcha_solved = false;
if ($config['enable_confirm'])
{
include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
$captcha =& phpbb_captcha_factory::get_instance($config['captcha_plugin']);
$captcha->init(CONFIRM_REG);
}
// Try to manually determine the timezone and adjust the dst if the server date/time complies with the default setting +/- 1 // Try to manually determine the timezone and adjust the dst if the server date/time complies with the default setting +/- 1
$timezone = date('Z') / 3600; $timezone = date('Z') / 3600;
$is_dst = date('I'); $is_dst = date('I');
@ -430,7 +444,6 @@ class ucp_register
$s_hidden_fields['coppa'] = $coppa; $s_hidden_fields['coppa'] = $coppa;
} }
if ($config['enable_confirm']) if ($config['enable_confirm'])
{ {
$s_hidden_fields = array_merge($s_hidden_fields, $captcha->get_hidden_fields()); $s_hidden_fields = array_merge($s_hidden_fields, $captcha->get_hidden_fields());
@ -441,15 +454,6 @@ class ucp_register
// Visual Confirmation - Show images // Visual Confirmation - Show images
if ($config['enable_confirm'] && !$captcha_solved) if ($config['enable_confirm'] && !$captcha_solved)
{ {
if ($change_lang)
{
$str = '&amp;change_lang=' . $change_lang;
}
else
{
$str = '';
}
$template->assign_vars(array( $template->assign_vars(array(
'L_CONFIRM_EXPLAIN' => sprintf($user->lang['CONFIRM_EXPLAIN'], '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">', '</a>'), 'L_CONFIRM_EXPLAIN' => sprintf($user->lang['CONFIRM_EXPLAIN'], '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">', '</a>'),
'CAPTCHA_TEMPLATE' => $captcha->get_template(), 'CAPTCHA_TEMPLATE' => $captcha->get_template(),
@ -484,6 +488,7 @@ class ucp_register
'S_LANG_OPTIONS' => language_select($data['lang']), 'S_LANG_OPTIONS' => language_select($data['lang']),
'S_TZ_OPTIONS' => tz_select($data['tz']), 'S_TZ_OPTIONS' => tz_select($data['tz']),
'S_CONFIRM_REFRESH' => ($config['enable_confirm'] && $config['confirm_refresh']) ? true : false, 'S_CONFIRM_REFRESH' => ($config['enable_confirm'] && $config['confirm_refresh']) ? true : false,
'S_REGISTRATION' => true,
'S_COPPA' => $coppa, 'S_COPPA' => $coppa,
'S_HIDDEN_FIELDS' => $s_hidden_fields, 'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'), 'S_UCP_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'),

View file

@ -161,8 +161,8 @@
<li class="icon-faq"><a href="{U_FAQ}" title="{L_FAQ_EXPLAIN}">{L_FAQ}</a></li> <li class="icon-faq"><a href="{U_FAQ}" title="{L_FAQ_EXPLAIN}">{L_FAQ}</a></li>
<!-- IF not S_IS_BOT --> <!-- IF not S_IS_BOT -->
<!-- IF S_DISPLAY_MEMBERLIST --><li class="icon-members"><a href="{U_MEMBERLIST}" title="{L_MEMBERLIST_EXPLAIN}">{L_MEMBERLIST}</a></li><!-- ENDIF --> <!-- IF S_DISPLAY_MEMBERLIST --><li class="icon-members"><a href="{U_MEMBERLIST}" title="{L_MEMBERLIST_EXPLAIN}">{L_MEMBERLIST}</a></li><!-- ENDIF -->
<!-- IF not S_USER_LOGGED_IN and S_REGISTER_ENABLED --><li class="icon-register"><a href="{U_REGISTER}">{L_REGISTER}</a></li><!-- ENDIF --> <!-- IF not S_USER_LOGGED_IN and S_REGISTER_ENABLED and not (S_SHOW_COPPA or S_REGISTRATION) --><li class="icon-register"><a href="{U_REGISTER}">{L_REGISTER}</a></li><!-- ENDIF -->
<li class="icon-logout"><a href="{U_LOGIN_LOGOUT}" title="{L_LOGIN_LOGOUT}" accesskey="l">{L_LOGIN_LOGOUT}</a></li> <!-- IF not (S_SHOW_COPPA or S_REGISTRATION) --><li class="icon-logout"><a href="{U_LOGIN_LOGOUT}" title="{L_LOGIN_LOGOUT}" accesskey="l">{L_LOGIN_LOGOUT}</a></li><!-- ENDIF -->
<!-- ENDIF --> <!-- ENDIF -->
</ul> </ul>

View file

@ -1,8 +1,31 @@
<!-- INCLUDE overall_header.html --> <!-- INCLUDE overall_header.html -->
<!-- IF S_SHOW_COPPA or S_REGISTRATION --> <!-- IF S_SHOW_COPPA or S_REGISTRATION -->
<!-- IF S_LANG_OPTIONS -->
<script type="text/javascript">
// <![CDATA[
/**
* Change language
*/
function change_language(lang_iso)
{
document.forms['register'].change_lang.value = lang_iso;
document.forms['register'].submit();
}
// ]]>
</script>
<form method="post" action="{S_UCP_ACTION}" id="register">
<p class="rightside">
<label for="lang">{L_LANGUAGE}:</label><select name="lang" id="lang" onchange="change_language(this.value); return false;" title="{L_LANGUAGE}">{S_LANG_OPTIONS}</select>
</p>
<div class="clear"></div>
{S_HIDDEN_FIELDS}
</form>
<!-- ENDIF -->
<form method="post" action="{S_UCP_ACTION}" id="agreement"> <form method="post" action="{S_UCP_ACTION}" id="agreement">
<div class="panel"> <div class="panel">

View file

@ -162,13 +162,13 @@ function marklist(id, name, state)
<table width="100%" cellspacing="0"> <table width="100%" cellspacing="0">
<tr> <tr>
<td class="genmed"> <td class="genmed">
<!-- IF not S_IS_BOT --><a href="{U_LOGIN_LOGOUT}"><img src="{T_THEME_PATH}/images/icon_mini_login.gif" width="12" height="13" alt="*" /> {L_LOGIN_LOGOUT}</a>&nbsp;<!-- ENDIF --> <!-- IF not S_IS_BOT and not (S_SHOW_COPPA or S_REGISTRATION) --><a href="{U_LOGIN_LOGOUT}"><img src="{T_THEME_PATH}/images/icon_mini_login.gif" width="12" height="13" alt="*" /> {L_LOGIN_LOGOUT}</a>&nbsp;<!-- ENDIF -->
<!-- IF U_RESTORE_PERMISSIONS --> &nbsp;<a href="{U_RESTORE_PERMISSIONS}"><img src="{T_THEME_PATH}/images/icon_mini_login.gif" width="12" height="13" alt="*" /> {L_RESTORE_PERMISSIONS}</a><!-- ENDIF --> <!-- IF U_RESTORE_PERMISSIONS --> &nbsp;<a href="{U_RESTORE_PERMISSIONS}"><img src="{T_THEME_PATH}/images/icon_mini_login.gif" width="12" height="13" alt="*" /> {L_RESTORE_PERMISSIONS}</a><!-- ENDIF -->
<!-- IF S_BOARD_DISABLED and S_USER_LOGGED_IN --> &nbsp;<span style="color: red;">{L_BOARD_DISABLED}</span><!-- ENDIF --> <!-- IF S_BOARD_DISABLED and S_USER_LOGGED_IN --> &nbsp;<span style="color: red;">{L_BOARD_DISABLED}</span><!-- ENDIF -->
<!-- IF not S_IS_BOT --> <!-- IF not S_IS_BOT -->
<!-- IF S_USER_LOGGED_IN --> <!-- IF S_USER_LOGGED_IN -->
<!-- IF S_DISPLAY_PM --> &nbsp;<a href="{U_PRIVATEMSGS}"><img src="{T_THEME_PATH}/images/icon_mini_message.gif" width="12" height="13" alt="*" /> {PRIVATE_MESSAGE_INFO}<!-- IF PRIVATE_MESSAGE_INFO_UNREAD -->, {PRIVATE_MESSAGE_INFO_UNREAD}<!-- ENDIF --></a><!-- ENDIF --> <!-- IF S_DISPLAY_PM --> &nbsp;<a href="{U_PRIVATEMSGS}"><img src="{T_THEME_PATH}/images/icon_mini_message.gif" width="12" height="13" alt="*" /> {PRIVATE_MESSAGE_INFO}<!-- IF PRIVATE_MESSAGE_INFO_UNREAD -->, {PRIVATE_MESSAGE_INFO_UNREAD}<!-- ENDIF --></a><!-- ENDIF -->
<!-- ELSEIF S_REGISTER_ENABLED --> &nbsp;<a href="{U_REGISTER}"><img src="{T_THEME_PATH}/images/icon_mini_register.gif" width="12" height="13" alt="*" /> {L_REGISTER}</a> <!-- ELSEIF S_REGISTER_ENABLED and not (S_SHOW_COPPA or S_REGISTRATION) --> &nbsp;<a href="{U_REGISTER}"><img src="{T_THEME_PATH}/images/icon_mini_register.gif" width="12" height="13" alt="*" /> {L_REGISTER}</a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- ENDIF --> <!-- ENDIF -->
</td> </td>

View file

@ -1,9 +1,32 @@
<!-- INCLUDE overall_header.html --> <!-- INCLUDE overall_header.html -->
<!-- IF S_SHOW_COPPA or S_REGISTRATION --> <!-- IF S_SHOW_COPPA or S_REGISTRATION -->
<!-- IF S_LANG_OPTIONS -->
<script type="text/javascript">
// <![CDATA[
/**
* Change language
*/
function change_language(lang_iso)
{
document.forms['register'].change_lang.value = lang_iso;
document.forms['register'].submit();
}
// ]]>
</script>
<form method="post" action="{S_UCP_ACTION}" id="register">
<table width="100%" cellspacing="0">
<tr>
<td class="gensmall" align="{S_CONTENT_FLOW_END}">{L_LANGUAGE}: <select name="lang" id="lang" onchange="change_language(this.value); return false;" title="{L_LANGUAGE}">{S_LANG_OPTIONS}</select></td>
</tr>
</table>
{S_HIDDEN_FIELDS}
</form>
<!-- ENDIF -->
<form method="post" action="{S_UCP_ACTION}"> <form method="post" action="{S_UCP_ACTION}">
<table class="tablebg" width="100%" cellspacing="1"> <table class="tablebg" width="100%" cellspacing="1">