|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
JeremyG Smarty n00b
Joined: 08 Nov 2009 Posts: 1
|
Posted: Sun Nov 08, 2009 8:58 pm Post subject: Passage de variables Smarty dans une fonction javascript |
|
|
Bonjour,
Alors voila j'ai un petit souci :
Déjà, voici le contexte :
Le fichier php :
Code: |
<?php
global $g_oTheme;
$g_oTheme->config_load('french-utf-8.lng');
$g_oTheme->assign('redir', 'index.php');
$g_oTheme->left_delimiter = "-{";
$g_oTheme->right_delimiter = "}-";
$g_oTheme->display('page_login.tpl');
?>
|
le fichier "page_login.tpl"
Code: |
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<link rel="Shortcut Icon" href="./images/favicon.ico" />
<link href="themes/default/css/css.php" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="./scripts/test.js"></script>
</head>
<body>
<div id="loginUsernameDiv">
<label for="loginUsername">-{#str_Login_Username#}-</label>
<br>
<input id="loginUsername" class="loginUsernameInput" type="text" name="username" value="" />
</div>
<div id="loginUsername.msg" class="badEntry"></div>
<div id="loginPasswordDiv">
<label for="loginPassword">-{#str_Login_Password#}-</label>
<br>
<input id="loginPassword" class="loginPasswordInput" type="password" name="password" value="" />
</div>
<div id="loginPassword.msg" class="badEntry"></div>
<div id="loginSubmitDiv">
-{nwp_button text=#str_Login_ButtonLogin# onclick="jsTestLogin('$redir', #str_Login_UsernameBadEntry#, str_Login_PasswordBadEntry#);" class="ok" id="alogin" submit=false}-
</div>
</body>
</html>
|
La fonction "nwp_button" est un addon Smarty que j'ai fait pour avoir un bouton personnalisé.
Le fichier "test.js" :
Code: |
function jsTestLogin(redir)
{
var err = 0;
if( !$('loginUsername').value )
{
$('loginUsername.msg').setHTML(jsTestLogin.arguments[1]);
$('loginUsername.msg').setStyle('display', 'block');
err++;
}
else
{
$('loginUsername.msg').setHTML('');
$('loginUsername.msg').setStyle('display', 'none');
}
if( !$('loginPassword').value )
{
$('loginPassword.msg').setHTML(jsTestLogin.arguments[2]);
$('loginPassword.msg').setStyle('display', 'block');
err++;
}
else
{
$('loginPassword.msg').setHTML('');
$('loginPassword.msg').setStyle('display', 'none');
}
if( err ) { return 0; }
if( redir == 'undefined' ) { redir = ''; }
}
|
Le fichier de traduction "french-utf-8.lng" :
Code: |
str_Login_Username = "Nom d'utilisateur :"
str_Login_UsernameBadEntry = "Vous devez spécifier un nom d'utilisateur !"
str_Login_Password = 'Mot de passe :'
str_Login_PasswordBadEntry = 'Vous devez spécifier un mot de passe !'
str_Login_Remember = 'Se souvenir de moi'
str_Login_LostPassword = 'Mot de passe oublié ?'
str_Login_ButtonLogin = 'Se connecter'
|
Comme vous pouvez le voir, j'utilise un fichier de configuration Smarty pour avoir un système de traduction, J'ai un fichier à part où se trouve toutes mes fonctions JavaScript.
Alors le souci, quand je lance ma fonction "jsTestLogin", avec comme argument une variable Smarty de mon fichier de traduction. Mon texte ne s'affiche pas, mais si je met du texte directement en argument, je le vois.
Pourtant pour les phrases de traductions elles fonctionnent pour des Labels par exemple.
Je n'arrive pas à comprendre pourquoi, pouvez-vous me dire le problème si vous le voyez ?
Merci |
|
Back to top |
|
Gowser Smarty Pro
Joined: 19 Feb 2008 Posts: 104 Location: Nantes (France)
|
Posted: Mon Nov 09, 2009 12:11 pm Post subject: |
|
|
Bonjour,
Le problème ne viendrait pas du fait que vous n'encapsuler pas vos 2 variables avec des quotes ?
Pour moi, l'interprétation qui est effectuée par smarty de votre onclick est :
Code: |
onclick="jsTestLogin('$redir', Vous devez spécifier un nom d'utilisateur !, Vous devez spécifier un mot de passe !);"
|
De même, vous avez un autre problème :
le 3ième arguments passé n'est pas correctement encapsulé par les '#' nécessaires -> str_Login_PasswordBadEntry# au lieu de #str_Login_PasswordBadEntry#
De plus, je me posais la question si la variable $redir était bien interprétée ?
Cordialement |
|
Back to top |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|