Webサイトの作成でスマーティを使うときが
たまにあるのだがテンプレートにphpを使いたい
なぁって思ってどうやるのか調べたのでメモ
{php}{/php}でphpが記述できます。
やっぱここまでくると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って結構いろいろできるんですね。
たまにあるのだがテンプレートに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で文字コードを変換して
そのあとでさらにエンコードをかけます。
これでOKだと思ったら、mailtoでは文字数制限があるようで
多すぎるとメーラーが起動しません。
やられましたo(TωT )
私が調べた感じだと全体で255バイトらしいです。
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バイトらしいです。