Webサイトの作成でスマーティを使うときが
たまにあるのだがテンプレートにphpを使いたい
なぁって思ってどうやるのか調べたのでメモひらめき電球
{php}{/php}でphpが記述できます。

<html>
<body>
{php}
ここにphpのコードを書く
$hoge = "smartyのテンプレートファイルにphpのスクリプト書けるよ";

$this->assign('hogehoge', $hoge);
{/php}

<p>{$hogehoge}</p>

</body>
</html>

やっぱここまでくるとsmartyの変数を取得して処理をさせたく
なるんですよね。方法としては、get_template_varsを使うと
取得できます。
$this->get_template_vars('hogehoge');



おまけsmartyメモひらめき電球
演算の仕方。方法は2つあります。
1. {math equation="x + y" x=2 y=1 assign=hoge}
2. {assign var=running_total value=`$hoge1+$hoge2`}


{include_php} 関数を使うと外部ファイルを
読み込ませることができます。
Smarty マニュアル {include_php}
{include_php file='hoge.php'}

smartyって結構いろいろできるんですね。
Webサイトの作成でメーラーを起動させる方法として
aタグとmailtoがある。mailtoリンクはさらに
あらかじめタイトルや本文を入れることができる。
これを使ってメール作成の効率をアップさせようと
思ってやってみたら文字化けしまくりですガーン

最初からShift-JISだと問題なくできるのですが
EUC-JPとかUTF-8だと文字化けします。

いろいろ悩んで解決できたので対処方法をメモひらめき電球
解決策としては、PHPで文字コードを変換して
そのあとでさらにエンコードをかけます。


$title = "タイトル";
$title = mb_convert_encoding($title, 'Shift-JIS', 'EUC-JP');
$title = urlencode($title);

$body = "本文";
$body = mb_convert_encoding($body, 'Shift-JIS', 'EUC-JP');
$body = urlencode($body);

<a href="mailto:xx@test.xx?subject=タイトル&body=本文">メーラー起動</a>

これでOKだと思ったら、mailtoでは文字数制限があるようで
多すぎるとメーラーが起動しません。
やられましたo(TωT )
私が調べた感じだと全体で255バイトらしいです。