2012-01-11 16 views
3

非常に簡単な質問ですが、{php} {/ php}タグの中にスマートなvarを使用することは可能ですか?私はそれが非難され、無意味ではなく、推薦されないことなどを知っていますが、私は簡単なパッチを探しています!{php}タグ内でsmarty変数を使用する

{php} 

$result = mysql_query("SELECT value FROM table WHERE fieldid = 9 AND relid = {MYSMARTYVAR}"); 

{/php} 

よう

何かがありがとうございます!

更新:私は以下の方法を試しました。

1-$var = $this->get_template_vars('smarty_var'); 
2-$var = $smarty->getTemplateVars('smarty_var'); 
3-$var = $this->_tpl_vars['smarty_var']; 

すべて

は私に致命的なエラーを与え、$このときではない、おそらく、特定の物事がブロックまたは無効になっている理由、これは説明している場合などWHMCS環境で I`mオブジェクトコンテキストでは?

更新2;見た目よりも単純な解決策を見つけたので、私はばかげて感じる: $ var = "{$ mysmartyvar}";

ありがとうございました!

+0

なぜこれが必要ですか?私はあなたがあなたのPHPからmysqlを呼び出す場合(スマートを呼び出す前に)より良いと思います。それとも特別な理由がありますか? – uzsolt

答えて

5

使用$this->get_template_vars('smarty_var')

$result = mysql_query("SELECT value FROM table WHERE fieldid = '9' AND relid = '" . $this->get_template_vars('smarty_var') . "'"); 
+0

です。プレストンに感謝します。私はget_template_varsメソッドとgetTemplateVarsを試しましたが、どちらの場合も、 '' ''; – Sherif

+0

オブジェクトコンテキストでない場合* – Sherif

+0

"$ this"をPHPファイル内のSmartyオブジェクトに付けた名前に置き換えてみましたか? – Preston

0

それは次のようになりますので、はい、すべての変数は、$this->_tpl_varsに格納されています。Smartyの変数を取得するために

{php} 

$result = mysql_query("SELECT value FROM table WHERE fieldid = 9 AND relid = {$this->_tpl_vars['MYSMARTYVAR']}"); 

{/php} 
+0

ありがとう、私はこのエラーが発生します。警告:mysql_fetch_array()は、パラメータ1がリソースになることを期待しています。ブール値の場合、私は – Sherif

-1

OPから "グローバル"

{php} 
global $smarty_object; 
$var = $smarty_object->get_template_vars('whatever'); 
{/php} 
+1

ありがとう、私はこの致命的なエラーが表示されます:非オブジェクト上のメンバ関数get_template_vars()を呼び出す:/ – Sherif

2
{php} 
$var = $template->get_template_vars('...') 
{/php} 
0
$myValue = $template->getVariable('myVariable')->value; 
+0

理由を説明する必要があります。 –

1

回答を使用してみてください。それは他人に役立つかもしれません。

非常に簡単です。

$var= "{$mysmartyvar}"; 

これは私のために働いています。

関連する問題