トップページ⇒php
983コメント287KB

【Smarty】PHPのテンプレートエンジン【Flexy】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/06/15(水) 10:35:52ID:???
---
PHPのテンプレートエンジンを語るスレです。

Smarty:本家(英語)
http://smarty.php.net/
Smarty:日本語マニュアルとか
http://sunset.freespace.jp/smarty/

pear の HTML_Template たち
http://pear.php.net/package/HTML_Template_Flexy
http://pear.php.net/package/HTML_Template_IT
http://pear.php.net/package/HTML_Template_Sigma
http://pear.php.net/package/HTML_Template_Xipe
http://pear.php.net/package/HTML_Template_PHPLIB

patTemplate
http://www.php-tools.de/
http://www.php-j.com/tutorial/php/template.php

前スレ(現在dat落ち)【PHP】Smarty【Template】
http://pc8.2ch.net/test/read.cgi/php/1047225437/
0655nobodyさん2006/08/25(金) 23:51:43ID:???
utfしかダメですってトップページに書いとけ。utfで(w
0656nobodyさん2006/08/27(日) 20:59:35ID:OoIUz1EV
Flexyについての質問です。
<script>
var hogehoge = "{hogehoge}";
</script>
のように、HTMLのスクリプトタグ内で変数を使おうとすると、「hogehoge = "{hogehoge}";」と
そのまま表示されてしまい、変数が展開されません。

設定オプションを見たのですが、それらしい設定は見つからず、
どうしれば置き返されるようになるかご存知の方教えてください。

なにとぞ、なにとぞよろしくお願いします。
0657nobodyさん2006/08/28(月) 01:17:22ID:???
それってphp使えてるの?
0658nobodyさん2006/08/28(月) 03:52:08ID:???
使えてます。他の部分は展開されてますし
もしかして、この現象自分だけなんでしょうか…?
0659nobodyさん2006/08/28(月) 03:58:23ID:???
varって宣言が明らかにだめでしょ
あとせめてlanguage属性入れておくれ
0660nobodyさん2006/08/28(月) 04:04:16ID:???
>>658
安心しろ。ウチの環境でもダメだったw
Flexyのソースは見ていないけど、scriptタグ内は無視している気がする。
気が向いたら、ソース見て究明してくれ。

>>659
この場合、varもlanguage属性は無関係では?
質問者がここに投稿する際に省略しただけかもしれないし。
0661nobodyさん2006/08/28(月) 13:52:14ID:???
<!---->コメントタグ内も無視されるみたい
scriptで変換されないのはちょっと困るね
0662nobodyさん2006/08/28(月) 19:20:49ID:???
省略しないで貼るか、ちゃんと自分で問題点切り分けして欲しいね。
0663nobodyさん2006/08/28(月) 20:53:09ID:???
あのぐらいなら普通に分かるだろ。
language属性入ろうがなかろうが同じみたいだし。
0664nobodyさん2006/09/07(木) 16:39:23ID:???
こんな記述見つけた。<script>タグは使うなということらしい。
--------------------
You can not use flexy tags {varname} in javascript blocks surrounded by <script></script>, as the whole thing gets too messy with it accidentally replacing stuff it shouldnt..
So if you need to send variables to javascript you can use
<flexy:toJavascript flexy:prefix="xxxxx_"
abc="xyz"
bcd="wxy"
/>
this is turned into php code that converts $object->xyz into xxxxx_abc in javascript
eg. in php
$this->xyz = 1234;
$this->wxy = "hello"
$flexy->outputObject($this);

using the above tags - it ends up at the browser as
<script language="javascript">
var abc = 1234;
var bcd="hello";
</script>
------------------------------
<flexy:toJavaScript>だとちょっと使いにくいと感じたので、flexyのタグ?に
{javascript:}〜{endscript:}というのを追加して、
コンパイル時に<script>タグに変換するようにしてみたら使えた。
もっと良い方法あるのかもしれんがわからん。
0665nobodyさん2006/09/19(火) 20:20:40ID:???
今まで タグのname属性に設定する値はPHPの定数を使っていたのですが、
Smartyを導入する場合、テンプレートにPHPの記述は普通しないですよね。

みなさんはname属性はどうやって設定していますか?
普通に文字列を設定すると、リクエストから取得する際に間違えるのが
だるいので、定数使っていたんですが。

↓こんな感じ
<input type="checkbox" name="<?=InputDto::CITY?>" >
0666nobodyさん2006/09/19(火) 22:06:15ID:???
{$smarty.const.HOGEHOGE}
0667nobodyさん2006/09/26(火) 13:21:21ID:???
単票フォームのビューアと編集画面を作らなきゃいけないんだけど、
ビューアと同じ出力場所にINPUTタグがつくだけなのに別テンプレートにしなきゃいけないの?

何かいい方法を><
0668nobodyさん2006/09/26(火) 13:27:20ID:????2BP(200)
freeze
0669nobodyさん2006/09/26(火) 16:56:01ID:???
別スレにSmarty用の携帯向けプラグインってのがあったので貼っておく
ttp://ke-tai.org/index.php?KEMP_Filters
0670nobodyさん2006/09/26(火) 20:14:02ID:???
>>667
ifで判断しちゃダメ?
{if $mode == "view"}
{$text}
{else}
<input type=text name=hogeoge value=$text>
{/if}
0671nobodyさん2006/09/27(水) 08:35:33ID:???
>>670
レスサンクス!
フィールドだけで50個くらい項目があるのでその方法は現実的じゃないかも><
0672nobodyさん2006/09/27(水) 09:37:22ID:???
>>671
入力と表示の時で、フォームのイベントにJavaScriptを書いて切り替えるのはどう?
ついでにCSSの属性書き換えれば、ラベルみたくできるんじゃないかな。

Web公開系だとダメかもしらんけど、業務系ぽいので許される気がする。
0673nobodyさん2006/09/27(水) 09:40:14ID:???
>>671
onLoadイベントとかで、フォーム内全体の入力オブジェクトに対して巡回して、
特定のID属性のものの属性を入力と表示で切り替えれば、
個々のフォーム入力要素についていちいち書かなくていいんじゃない?
って意味ね。
0674nobodyさん2006/09/27(水) 10:00:56ID:???
>>671
なにかプラグインを書くか
他のフレームワークを使う
0675nobodyさん2006/09/27(水) 17:49:43ID:???
freezeと書いてくれてたから何だろうと調べたら
HTML_QuickFormがまさに使えそうです。
Smarty+HTML_QuickFormで行こうと思います><

>>672
それも考えたんですが、もっとスマートに出来ないかと思いまして(汗
0676nobodyさん2006/09/28(木) 01:25:09ID:???
ttp://sky.freespace.jp/smarty/SmartyManual_2-6-4J_html/caching.cacheable.html
このdynamicの例ではblockの内側がoutputfilterを通ったり通らなかったりするのですがいい制御方法は無いでしょうか
0677nobodyさん2006/09/30(土) 23:32:17ID:iHGhSOaN
文字コードで質問です。
php.iniの設定を
output_buffering = On
output_handler = mb_output_handler
default_charset = EUC-JP
mbstring.language = Japanese
mbstring.encoding_translation = On
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.internal_encoding = EUC-JP
mbstring.substitute_character = Off
このようにして、テンプレート内で
{$data.birth|date_format:"%Y年%b月%d日"}
とすると月より後ろが
1950年1月%d日
1955年1月%d日?|
みたいに文字化けします。%dの前に半角スペースを入れると
1955年1月 14日K
と、日にちは出るのですが、日の後ろが変になります。
テンプレートもphpもeuc-jpで保存し、テンプレートのmetaタグも
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
としています。
date_formatを使っていない部分は文字化けしません。
mbstringの設定の組み合わせをいろいろ変えてみたのですが改善しません。
何かヒントをお願いしますOTZ
06786772006/10/01(日) 01:19:45ID:F96v0AKS
ちなみに %Aで曜日を出したら(ロケールjpn)文字化けしました。
06796772006/10/01(日) 02:15:06ID:???
げ!
phpで
print(strftime("%Y年%b月%d日"));
でも文字化けした。

Smarty関係ないじゃんOTZ
phpスレの方に行ってきます
お騒がせしました
0680nobodyさん2006/10/01(日) 22:24:33ID:???
smary の html_table で <td>中身</td> の中身を編集できるようなものってないんでしょうか?

$data = array( array( "1", "あ"), array("1", "い"), array ("2", "う"), array("2", "え" ) )
以下の用に、データのインデックス1と2をくっつけて表示させたいんですが

2x3テーブル (要素が足りない部分はスペースが代入される)

1あ 1い
2う 2え
space space

0681nobodyさん2006/10/01(日) 22:41:58ID:???
>>680
なにをしたいのか分からん

ちゃんとルールがあるならできるだろうが
PHP側で表示用にデータを加工するべきだと思う
0682nobodyさん2006/10/01(日) 23:29:51ID:???
自分でそういう関数でも作れって感じだな。
06836802006/10/02(月) 00:11:10ID:???
ネットで自作された人がいたので、使わせてもらうことにしました。
作った人スゴス助かりましたー

http://ml.php.gr.jp/pipermail/php-users/2005-October/027643.html

0684nobodyさん2006/10/02(月) 04:42:03ID:???
拡張関数のblock で、foreachの item のような実装がしたいんですが、うまくできない;;
誰かやったことある人いますか?
0685nobodyさん2006/10/02(月) 18:04:57ID:???
{assign} を実行しているソースってどこにあるんですか?
0686nobodyさん2006/10/03(火) 11:40:28ID:???
みなさんtruncate関数って使ってます?
1バイト→2バイト文字に変換しないと化けて使いにくすぎるんですが
06876862006/10/03(火) 11:44:03ID:???
って684さん見て気付いたけど、拡張関数ってやつで自作すりゃいいのか!
0688nobodyさん2006/10/04(水) 18:30:02ID:9Cwrgs3h
flexyの質問です。
$flexy->bufferedOutputObject()の返り値のテキストが、
<を<にしたりと特殊文字をHTML用にエンコードされたものになってしまいます。

http://pear.plus-server.net/package.html.html-template-flexy.html-template-flexy.bufferedoutputobject.html
の
/* <tags をパースしないように regex コンパイラを使用する */
$template = new HTML_Template_Flexy( array(
'compiler' => 'Regex',
という部分がそれに対応するやり方のことなのかと思ったのですが、
この通りやっても変換されてしまいます。
('compiler'ってオプションの意味もいまいちわからなかったのですが)

やりたいことは、テンプレートを入れ子のような形で使いたく、
ベースとなるテンプレートを読み込み、その中でコンテンツのテンプレートを読み込みベースに挿入する、
といった感じです。

しかし、挿入された部分のタグの特殊記号が変換されてしまって参っています。
何かよい方法はないでしょうか。
宜しくお願いします。
06896882006/10/04(水) 18:32:48ID:9Cwrgs3h
すいません ミスりました
3行目は

× <を<にしたりと特殊文字をHTML用にエンコードされたものになってしまいます。
○ <を&lt;にしたりと特殊文字をHTML用にエンコードされたものになってしまいます。

です
0690nobodyさん2006/10/04(水) 22:02:18ID:???
>>687
組み込み関数はそのままでも呼べるけどね
0691nobodyさん2006/10/04(水) 22:17:09ID:???
>>688
bufferedOutputObjectの結果を$varに入れたとして、
{var:h}
では駄目?

または適当なElementのoverrideプロパティを利用するという手もあるが…

<div id="hoge" flexy:dynamic="yes">
この要素は別のテンプレートの内容で置換される
</div>

$elms = $outerFlexy->getElements();
$elms['hoge']->override = $innerFlexy->bufferedOutputObject($obj);
06926882006/10/04(水) 23:37:08ID:???
>>691
ありがとうございます!
ご教示いただいたどちらの方法でもできました。
:hは恐らく基本的なことですね。勉強不足でした。
0693nobodyさん2006/10/07(土) 00:03:58ID:/6hITEc2
smartyでセッションの受け渡しってどうするのですか?
0694nobodyさん2006/10/07(土) 00:36:01ID:???
ゆうぱっくで
0695nobodyさん2006/10/07(土) 10:27:03ID:???
>>693
PHP標準のセッションなら通常通りに設定すれば通常通りに受け渡し可能。
0696nobodyさん2006/10/07(土) 17:44:00ID:???
漏れはいつもEMS使ってる。500円で送れるし。
0697nobodyさん2006/10/08(日) 11:23:25ID:???
セッションをudpで送るとルータに廃棄されてしまうことが有るので、tcpを指定して送れば良いよ。
tcpならルータが廃棄することは無く送れるから。
0698nobodyさん2006/10/11(水) 04:19:10ID:???
いやいや、tcpでも、mtu、mruが足りなくて捨てられる事あるよ
0699nobodyさん2006/10/11(水) 08:16:39ID:???
>>698
面白くないから
0700nobodyさん2006/10/12(木) 01:37:29ID:???
mtuは1500にしとけばどんな回線でも問題無く通るよ。ルータがちゃんとフラグメントしてくれるから問題無し。
0701nobodyさん2006/10/12(木) 03:09:06ID:???
pptp通す時は、1500じゃ多すぎるよ

って、ネタ無いのか!
0702nobodyさん2006/10/12(木) 07:19:44ID:???
VPNのルータがフラグメントしないのが悪い。
mtuの設定が間違ってる。1430ぐらいなのに1500で設定してるだろ?
0703nobodyさん2006/11/03(金) 23:22:04ID:N9Ney0mM
hoge.tplに多次元配列を渡して、配列内容を検索しヒットした内容のKEYを戻り値として、取得したいんだが…
PHPで言うところの、array_searchみたいなやつ。
何か方法ないかな? ボスケテ;;
0704nobodyさん2006/11/04(土) 07:52:03ID:???
>>703
だれが取得したいの?
テンプレートからテンプレートを呼ぶってことか?
0705nobodyさん2006/11/04(土) 21:15:17ID:+XTG9Sit
{foreach from=$list1 key=key item=value}
<table>
{foreach from=$list2 key=id item=item}
<tr>
<td>{$item.name}</td>
<td>{$value.keyname[$id]}</td> ← ここ
</tr>
({/foreach})
</table>
({/foreach})

のように、本来ならkeyname.id1 keyname.id2 keyname.id3というところを
内部のforeachのインデクサを配列の添字として使用したい。
何かいい方法ないものかなぁ?
0706nobodyさん2006/11/04(土) 22:47:30ID:???
データ構造を見直してみるとか。
てか多次元配列じゃなくね?
0707nobodyさん2006/11/09(木) 04:09:53ID:???
前からたまにあがるけど、それ無理
ロジック側でなんとかしる
0708nobodyさん2006/11/10(金) 00:21:40ID:???
Commentee Plan

veax.NET::役に立たないPHP拡張モジュール製作所
http://blog.veax.net/

面白そうなの見つけて注目中
0709nobodyさん2006/11/22(水) 20:00:46ID:???
>>705
foreachのプロパティのiterationじゃダメなの?
0710nobodyさん2006/12/02(土) 18:09:36ID:???
{section name=cnt loop=$hoge}
{/section}
上記のような場合に
{section}間でcntに1加えた数字を使いたいと考えています。
どのようにすればいいでしょうか。
0711nobodyさん2006/12/06(水) 13:53:37ID:???
iteration
0712nobodyさん2006/12/15(金) 23:32:46ID:???
>>706も>>707も
よく>>703,705の言いたい事が理解出来たな、俺にはさっぱりわからん
0713nobodyさん2006/12/24(日) 18:38:33ID:???
このぐらい理解できないと、クラの言ってる事理解できないぜ^^
0714nobodyさん2006/12/27(水) 17:09:35ID:???
Smartyって PHPで変数の有無をチェックするのに
if ($hoge){}
と書いてたように
{if $hoge}{/if}
って言う使い方は出来ないんですよね?
(やってみたらうまく動きませんでした)

わざわざ別の変数を用意して
{if $check_hoge == 1}{/if}
みたいにしないといけないんでしょうか??
0715nobodyさん2006/12/27(水) 19:30:22ID:???
{if isset($var)} ってできなかったっけ
0716nobodyさん2006/12/28(木) 00:05:11ID:???
>>715
できる
07177142006/12/28(木) 14:04:09ID:???
>>715-716
勉強不足でした ご助言本当にありがとうございました 
0718nobodyさん2006/12/29(金) 17:59:05ID:Oa9zj9TG
Smartyで{$obj->getObj->getName()}ってできる?
0719nobodyさん2007/01/07(日) 17:56:17ID:lgQgqthI
誰か答えてやれ
0720エスパー伊東2007/01/07(日) 18:03:01ID:???
呼んだ?
0721nobodyさん2007/01/08(月) 17:02:30ID:???
テーブルの各行の中にチェックボックスを入れたいのですが
html_tableとhtml_checkboxesを組み合わせて使うようなことはできますか?
0722nobodyさん2007/01/08(月) 17:52:31ID:???
>>718
{$obj->getObj->getName()}はできない
0723nobodyさん2007/01/08(月) 20:58:19ID:???
>>683のURL先を参考に自作関数を入れようとしたのですが
スクリプトと同じ場所にコピーすれば実行できたんですが
この関数の名前のファイルを作ってpluginsフォルダに置いておけば
自動的に読み込んでくれたりできないんでしょうか?
今は置いたとしても
syntax error: block function 'html_table_block' is not implemented
とエラーが出てしまいます..
07241332007/01/12(金) 17:51:59ID:???
特定の文字がHTML内にはいっているとエラーになるのですがこれは何なのか分かりますでしょうか?

Smarty error: [in hoge.html line 19]: syntax error: unrecognized tag: 投票


この場合、「投票」という文字を消すと動作します
0725nobodyさん2007/01/12(金) 20:24:35ID:???
0x5Bだと思うけど情報が少なすぎて原因は分からん
取り合えず{literal}{/literal}で囲めば逃げられると思う
0726nobodyさん2007/01/12(金) 22:28:58ID:3JXbZGmD
ttp://ml.php.gr.jp/pipermail/php-users/2003-February/013595.html

俺はこれで解決したんだがどうよ
0727nobodyさん2007/01/12(金) 22:39:25ID:???
開始タグを2文字以上にする手もある。
開始タグを<!--{ 終了タグを }--> にするとか。
0728nobodyさん2007/01/16(火) 11:38:11ID:JtgOvcxU
XOOPSなんかはデリミタを <{ と }> にしてるみたいだね
俺もなんかあったら面倒なのでそうしてる

ところで Smartyで改行(nl)を無効にする命令ってないのかな?
ヘッダーのキーワードをページごとに変更できるように 変数を入れてSmartyの
Sectionで挿入しようとしたんだけど ソースが改行されて汚い
tplファイルを改行ナシにしたらいけるんだろうけど それだとファイル変更時
にわかりにくくなるしなぁ
0729nobodyさん2007/01/16(火) 14:02:46ID:???
>>728
$hoge|str_replace じゃあかんの?
07307282007/01/16(火) 15:27:15ID:???
>>729
str_replaceをはじめて知ったド素人にレス感謝です
調べたところstr_replaceって置換ですよね? 置換じゃ無理っぽい 多分

説明が悪かったかもしれないのでもう一度
Smartyのテンプレートファイルにおいて
<head>

<meta name="Keywords" content="…,…,…,…,
{if isset($keyword)}
{section name=keyword_no loop=$keyword}
{$keyword[keyword_no]},
{/section}
{/if}
…,…" />
</head>
07317282007/01/16(火) 15:27:49ID:???
ってやってるんですが 出力されたHTMLのソースを見ると
<meta name="Keywords" content="…,…,…,…,
キーワード1
キーワード2
…
…,…" />
と改行されてしまうのが嫌だなと言うことです

テンプレートファイル中で改行してることから それが原因だろうとは思う
のですが 改行ナシにするとテンプレートファイルを見ると汚くなるので
それは避けたいです
(今後他人に仕事を振る可能性もあるし)

で テンプレートファイル中の改行を 出力するHTML上では無効にすることが
出来る命令があればなぁと思ったのです
textformatで出来るかな? と思ったけど無理っぽいし…orz
0732nobodyさん2007/01/16(火) 16:35:49ID:???
{strip}{/strip}
07337282007/01/17(水) 13:15:30ID:???
>>732
ありがとうございます!! 出来ました!!!

っやっぱり暫定マニュアルだけではなく 書籍も買わないといけませんね…
0734nobodyさん2007/01/17(水) 17:22:58ID:???
キャッシュの有効期限を延ばすにはどうすればいい?
0735nobodyさん2007/01/17(水) 17:47:35ID:???
ttp://sky.freespace.jp/smarty/SmartyManual_2-6-7J_html/variable.cache.lifetime.html
0736nobodyさん2007/01/17(水) 17:57:56ID:???
ttp://sunset.freespace.jp/smarty/SmartyManual_2-6-7J_html/caching.html
こっち貼ってやった方がいいんじゃね?

つーか少しは自分で調べよう
0737nobodyさん2007/01/17(水) 20:51:11ID:???
質問です。

WindowsXP+IIS5.1+PHP5.2+Smarty2.1.16 を使用すると、

以下のようなエラーが画面に表示されてしまいます。

URL:http://localhost/dash/test.php

Warning: Smarty::include(templates_c\%%D9^D9B^D9B21B55%%test.html.php)
[function.Smarty-include]: failed to open stream:
No such file or directory in C:\Inetpub\wwwroot\dash\libs\Smarty.class.php on line 1258

Warning: Smarty::include() [function.include]:
Failed opening 'templates_c\%%D9^D9B^D9B21B55%%test.html.php' for inclusion
(include_path='.;c:\php\includes;c:\php\PEAR;c:\php\smarty')
in C:\Inetpub\wwwroot\dash\libs\Smarty.class.php on line 1258



C:\Inetpub\wwwroot\dash\templates_c フォルダに
コンパイルされたphpファイルができません。
コンパイルができないみたいです。

WebサーバをApacheにするとうまくいくのですが…
Smartyを使用する場合、IISの設定で変更しなければいけない箇所があるのでしょうか?
0738nobodyさん2007/01/18(木) 07:32:45ID:???
>>735
ごめん、すでにあるキャッシュファイルの有効期限を延ばしたいんだ。
それを知りたい。
0739nobodyさん2007/01/18(木) 10:28:23ID:???
Smartyってファイル単位でキャッシュの有効期限制御していたっけ?
0740nobodyさん2007/01/18(木) 10:46:18ID:???
>>737
特に設定する必要はないと思うけど

Smarty.class.php の _compile_resource メソッドがどんな動きをしているか
見たほうがいいかも
0741nobodyさん2007/01/18(木) 14:39:41ID:???
smartyの
section内で$hoge[$foo]みたいなことしたいのですが、どのようにやれば出来ますでしょうか?

{section name="val" loop=$data}
 {$hoge.$foo[val].name}
{/section}
でできませんでした…
0742nobodyさん2007/01/18(木) 16:32:29ID:???
>>738
キャッシのexpiresんとこのタイムスタンプ書き換えれば延ばせる

なぜそんなことがしたいのか分からないけど
0743nobodyさん2007/01/18(木) 17:06:50ID:???
HTML_Template_Flexyのテンプレートに
{hoge}
と書いたら、php側のhoge変数の中が展開されると思いますが、
これを、
{hoge}そのものを出力したい場合、テンプレートにどう書けばよいでしょうか?

\{hoge\}
とか
{{hoge}}
とか試してみたんですが、無理でした…。
0744nobodyさん2007/01/18(木) 17:26:18ID:???
?#123;hoge?#125;
とか
0745nobodyさん2007/01/18(木) 17:28:28ID:???
あら失敗
?は&ね
0746nobodyさん2007/01/18(木) 17:32:04ID:???
デリミタを変えたらダメなの?
0747nobodyさん2007/01/18(木) 17:48:50ID:???
>>744
{hoge}
と出すのは無理すかね?
なぜかというと、これをファイルに出力して、またFlexyのテンプレートとして食わせたいのです。


>>746
{hoge}
を、通常通り置換したい場合もあるので、デリミタそのものを変えるのではまずいのです。

お二人ともレスありがとう。
説明不足ごめんなさい。
0748nobodyさん2007/01/18(木) 18:26:03ID:u6x8DYYx
テンプレート中からPHP関数を利用して、
オブジェクトの生成をし、
Smartyのassign関数にアクセスするメソッドを利用しようとすると、
 Fatal error: Call to a member function assign() on a non-object
 in C:\Program Files\Apache Group\Apache2\htdocs\test\index.php on line 7
と返されてしまいます。
ならべく、テンプレート内にPHPを書きたいのですが、
(本来のSmartyの利用意図に背くのは重々承知です。)どうすればよいでしょう。

--index.php
<?php
require_once('Smarty/libs/Smarty.class.php');

class Headline{
public $oSmarty;
public function __construct($oSmarty){$this->oSmarty=$oSmarty;}
public function get_data(){$this->oSmarty->assign("test","テスト");}
}

$oSmarty=new Smarty();
$oSmarty->template_dir='./templates/';
$oSmarty->compile_dir='./templates_c/';
$oSmarty->display('test.tpl');
?>
--test.tpl
test
{php}$oHeadline=new Headline($oSmarty);$oHeadline->get_data();{/php}
{$test}
0749nobodyさん2007/01/18(木) 18:59:08ID:???
>>747
{ldelim}hoge{rdelim}
マニュアル嫁よ
0750nobodyさん2007/01/18(木) 19:06:24ID:???
>>748
> {php}$oHeadline=new Headline($oSmarty);$oHeadline->get_data();{/php}

new Headline($GLOBALS['oSmaert']);
ってするとどうだろう。
0751nobodyさん2007/01/18(木) 19:18:16ID:???
>>749

それ、Smartyの話じゃ…。
0752nobodyさん2007/01/18(木) 19:44:35ID:???
>>742
なるへそ。さんくし。
データの取得に失敗した場合に備えて、そうしようとしただけなんだに
07537482007/01/18(木) 20:03:22ID:???
>>750
出来ました!
本当にありがとうございました。
0754nobodyさん2007/01/18(木) 20:25:33ID:???
>>751
すまん...orz
07557432007/01/18(木) 20:33:24ID:???
>>754

でも、まぁ意味はそういうことです。
Smartyでいうところのそれに当たるものが、HTML_Template_Flexyでありませんか?
ってのが聞きたかったんです。
なんか無さそうな雰囲気ですね…。
■ このスレッドは過去ログ倉庫に格納されています