Ver Mensaje Individual
  #8 (permalink)  
Antiguo 20/05/2003, 14:44
Avatar de ferny
ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 2 meses
Puntos: 55
FAQ 7: ¿Y si quiero que un usuario no registrado pueda elegir su idioma?
Aplicación: Foro phpBB (www.phpbb.com)
Respuesta:

Para ello existe una modificación del phpBB. Te cuento cómo instalarla:

Abrir el archivo common.php y buscar:
Código PHP:
$board_config[$row['config_name']] = $row['config_value'];


Después de eso, añadimos:
Código PHP:
if ($language

$board_config['default_lang'] = $language
setcookie('default_lang',$language , (time()+60*60*12), $board_config['cookie_path'],
$board_config['cookie_domain'], $board_config['cookie_secure']); 
} else if (isset(
$HTTP_COOKIE_VARS['default_lang']) ) 
$board_config['default_lang'] = $HTTP_COOKIE_VARS['default_lang']; 
Guardamos el archivo y abrimos el index.php, dentro del cual buscamos:
Código PHP:
include($phpbb_root_path 'common.'.$phpEx); 
Y después añadimos:
Código PHP:
include($phpbb_root_path 'includes/functions_selects.'.$phpEx); 
Ahora buscamos:
Código PHP:
'FORUM_LOCKED_IMG' => $images['forum_locked'], 
Y a continuación añadimos:
Código PHP:
'LANGUAGE_SELECT' => language_select($board_config['default_lang'], 'language'), 
'L_SELECT_LANG' => $lang['Board_lang'], 
'L_CHANGE_NOW' => $lang['Go'], 
Y guardamos el archivo. A continuación abrimos el archivo templates/XXXX/index_body.tpl y buscamos esto (puede variar según el template):
Código PHP:
<!-- BEGIN switch_user_logged_out --> 
<
form method="post" action="{S_LOGIN_ACTION}"
<
table width="100%" cellpadding="3" cellspacing="1" border="0" class="forumline"
<
tr
<
td class="catHead" height="28"><a name="login"></a><span class="cattitle">{L_LOGIN_LOGOUT}</span></td
</
tr
<
tr
<
td class="row1" align="center" valign="middle" height="28"><span class="gensmall">{L_USERNAME}: 
<
input class="post" type="text" name="username" size="10" /> 
   {
L_PASSWORD}: 
<
input class="post" type="password" name="password" size="10" /> 
     {
L_AUTO_LOGIN
<
input class="text" type="checkbox" name="autologin" /> 
    
<
input type="submit" class="mainoption" name="login" value="{L_LOGIN}" /> 
</
span> </td
</
tr
</
table
</
form
<!-- 
END switch_user_logged_out --> 
Y lo reemplazamos por esto:
Código PHP:
<!-- BEGIN switch_user_logged_out --> 
<
form method="post" action="{S_LOGIN_ACTION}"
<
table width="100%" cellpadding="3" cellspacing="1" border="0" class="forumline"
<
tr
<
td class="catHead" height="28"><a name="login"></a><span class="cattitle">{L_LOGIN_LOGOUT}</span></td
</
tr
<
tr
<
td class="row1" align="center" valign="middle" height="28"><span class="gensmall">{L_USERNAME}: 
<
input class="post" type="text" name="username" size="10" /> 
   {
L_PASSWORD}: 
<
input class="post" type="password" name="password" size="10" /> 
     {
L_AUTO_LOGIN
<
input class="text" type="checkbox" name="autologin" value="ON" /> 
    
<
input type="submit" class="mainoption" name="login" value="{L_LOGIN}" /> 
</
span> </td
</
tr> </form
<
tr
<
td class="catHead" height="28"><a name="login"></a><span class="cattitle">{L_SELECT_LANG}</span></td
</
tr
<
tr
<
td class="row1" align="center" valign="middle" height="28"><span class="gensmall"
<
form method="post" action="{U_INDEX}">{LANGUAGE_SELECT}
<
input type="submit" class="mainoption" name="cangenow" value="{L_CHANGE_NOW}" />
</
span></td>
</
tr> </form>
</
table>
<!-- 
END switch_user_logged_out --> 
Fíjate en lo que añadimos en la segunda parte. Pusimos un campo select para que el usuario elija idioma. Puedes cambiar este formulario de sitio si, p. ej., quieres ponerlo arriba en vez de abajo...

Lo que hemos hecho es crear una cookie para que el usuario visite nuestra página en el idioma elegido. Sólo funcionará en el ordenador de esa persona (el resto de visitas verán el foro en el idioma preestablecido). La cookie dura 12 horas, pero si quieres cambiar la duración, edita lo de 60*60*12 y pon la duración (en segundos) que quieras.

Saludos
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.

Última edición por ferny; 20/05/2003 a las 15:19