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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
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/
0809nobodyさん2007/02/22(木) 23:11:43ID:???
>>808
一応変数追っかけてデバッグとか、DB自体のフィールドを増やさないような
簡単な書き足しぐらいはしてます。でも、やっぱりphpのソースのなかに
丸裸でいろんなものが散らばってるのは神経使います。冒頭に分離されてるなら
まだマシだけど、if文で配列をあるだけテーブル化して表示、みたいな奴だと、
html部のど真ん中に来ちゃいますし。

トラブルが起きたときにどっちが悪さしたのかわかりにくいし、片方が
(他人もDWで編集していることを前提にコラボ系機能が作り込まれている)
DWで、もう片方がテキストエディタで「同じファイルを」いじる、というのも、
作業的にはちと筋が悪いと思ってます。

includeは積極的に使っていきたい仕掛けではありますが、確かに
CSSベースでもテーブルベースでもDWでの編集が困難になるのですよね。
「head部はinclude・その他はDWのライブラリ」というスタンスの方が
web系の人員を増員する方針で考えるなら、むしろ好ましいのかな。
0810nobodyさん2007/02/22(木) 23:19:43ID:???
ロジックとデザインの分離は、現実的な問題として *完全には* 無理だと思うな。

でも、テンプレートタグはHTMLデザイナ向けに簡単な設計となっているはずだから
PHPコードをベタ書きするよりはマシかなって。
0811nobodyさん2007/02/22(木) 23:44:06ID:???
>>809
なるほど。ま、やっぱりデザイナー側も勉強する必要はあるって事だな。
>>810
>>805のようなソースの場合、べた書きするのと、{}で囲ってsmarty方式に
するのと、違いがあんまり無いと思うんだよな。
まぁ、forearchとかsmarty方式の方がソースは短くなるけどさ。
0812nobodyさん2007/02/23(金) 01:12:03ID:???
>>805
そうそうあんまり変わらないと思う。むしろ「 { 」入れてエラー出て困ってたデザイナさんも居た。
でもhtmlソースに出ない{* 〜 *}形式のコメントは活用できると思う。
0813nobodyさん2007/02/23(金) 01:15:09ID:CtBpLmme
HTMLをプログラマーの物にすればいいんじゃね?
0814nobodyさん2007/02/23(金) 01:43:49ID:???
>>805
うちの場合ケースバイケースだけど
表示するか否かというフラグを渡しておいて
{if $hasItem}表示内容{/if}
と出来るようにしたり
条件が複雑だったりよく使うような物だったら
ブロック関数作って
{logined}
ログイン時用の表示
{/logined}
みたいに出来るだけ単純に書けるようにしてるよ

オーサリングツールとの連携は難しいね
Flexyとかだとなんとかなるのかなと思うけど
0815nobodyさん2007/02/23(金) 14:43:40ID:???
Smartyは、他のテンプレートエンジンに比べると
何倍も遅いって聞くんだけど、そんなに大きな差があるの?
0816nobodyさん2007/02/23(金) 14:44:56ID:???
>>815
我慢出来ないほどじゃないだろwww
0817nobodyさん2007/02/23(金) 15:03:37ID:CtBpLmme
>>815
我慢できなきゃ、Zend Optimizer入れれば。
0818nobodyさん2007/02/26(月) 01:47:05ID:???
smartyのテンプレートのHTTPヘッダを変えることはできないのでしょうか?
テンプレートでCSVファイルを作り、それをダウンロードさせるようなことがしたいのです。

少し上の方に書いてあったsmarty_headerという関数をテンプレートに埋込んでみたのですが、
エラーが発生(関数が存在しない)し、使うことができませんでした。
0819nobodyさん2007/02/26(月) 11:02:48ID:???
>>818
fetchしてecho
0820nobodyさん2007/02/26(月) 11:17:58ID:???
>>818
>エラーが発生(関数が存在しない)し、使うことができませんでした。
プラグイン関数用ディレクトリのパスが通ってないだけだろ。
0821nobodyさん2007/02/26(月) 11:23:33ID:???
smarty_header なんてなかったと思うぞ
上のやつは自分で作ったプラグイン例としてsmarty_headerって
書いていたと思う
08227562007/02/26(月) 12:08:17ID:???
>>818
とてもシンプルなプラグイン:
{smarty_header http_equiv="Content-Type" content="application/octet-stream"}
{smarty_header http_equiv="Content-Disposition" content="attachment; filename=myfile.csv"}


私が定義した関数です。
plugin/function.smarty_header.php

function smarty_function_smarty_header($params)
{
    header("{$params[http_equiv]}: {$params[content]}");
}
08238182007/02/27(火) 02:39:59ID:???
プラグインのソース、ありがとうございます。
ですが作成されたファイルの内容がブラウザに表示されるだけで、ダウンロードのダイアログは表示されませんでした。
エラー文言ですが、

Warning: Cannot modify header information - headers already sent by 〜

と表示されます。
エラー文言が表示されることで既にHTTPヘッダが出力されてしまったのかもしれないとおもい
php.iniのdisplay_errorsをOffに倒して実行してみましたが、変わりませんでした。

やはり無理なのでしょうか。
0824nobodyさん2007/02/27(火) 03:10:33ID:???
>>823
http://jp2.php.net/manual/ja/function.header.php
08257562007/02/27(火) 07:35:44ID:???
>>823
{smarty_header ...} は文字を出力する前に呼び出さなくちゃだめだよ。

> 覚えておいて頂きたいのは、header() 関数は、 通常の HTML タグまたは
> PHP からの出力にかかわらず、すべての実際の出力の前にコールする必要があることです。
> 頻出するエラーとして、include() または require() 関数、他のファイルをアクセスする関数に
> 空白または空行があり、header() の前に出力が行われてしまうというものがあります。
> 同じ問題は、単一の PHP/HTML ファイルを使用している場合でも存在します。
08268182007/02/27(火) 23:11:30ID:???
>>824
>>825

ありがとうございます。
>頻出するエラーとして、include() または require() 関数、他のファイルをアクセスする関数に
まさにこれでした。
824さんが提示してくださったページは知っていたのですが、理解していませんでした。

あと皆さん、smartyとは関係のない質問をしてしまい済みませんでした。
0827nobodyさん2007/03/01(木) 09:32:48ID:???
>>807
英語が苦手でなければ、こんなのはどう?
ttp://www.kuwata-lab.com/kwartz/
こんな感じでhtmlとphpを分離できる。
ttp://www.kuwata-lab.com/kwartz/img/fig01.png
ttp://www.kuwata-lab.com/kwartz/kwartz3php-users-guide.01.html#example1
0828nobodyさん2007/03/01(木) 12:42:20ID:???
そういえば以前、未踏で完全分離を目指したテンプレートエンジン作ってたよな。
0829nobodyさん2007/03/01(木) 15:37:36ID:???
>>828
JavaServer Templates "Mayaa"
ttp://mayaa.seasar.org/
0830nobodyさん2007/03/02(金) 00:57:05ID:???
デザインの分離を考えるとFlexyはよく出来てると思う。
ただ、痒い所に手が届かないが。
0831nobodyさん2007/03/02(金) 09:43:20ID:???
>>827
そこの人、日本人だから以前は日本語のドキュメントもあったぞ。
今は無いみたいだが。

一年前使ってみた感想は、時期尚早って感じだったかな。
メインはrubyみたいで、phpのサポは片手間って感じ。
ドキュメントに書いてあるのに実装してない構文とかも確かあったし。
(and preg_matchの配列の渡し方を間違えて、毎回初期化してるんで動かなかったりしたのを修正したのを覚えてる。)

>>830
Flexyは結構面白いんだが、「構文解析が出来る」ものだから、かなり無茶な構文を定義しているような感じがする。
以前いじった時は、スタイルシートで{hoge:fuga}のように最後のセミコロンを省略したりした場合、
Flexyのプラグインを見に行ったような・・・
これまた1〜2年前にいじったきりなんだが修正されたのかな?
0832nobodyさん2007/03/06(火) 03:51:50ID:???
よくありがちな、こういう形のページを作るとき
みなさんははどのように作ってますか?
(仮にSmarty使用として)

1. 各コンテンツ.tplから、ヘッダ、フッタ、ナビをconfigから置換。
2. 各コンテンツ.tplから、ヘッダ.tpl、フッタ.tpl、ナビ.tplを読込み。
3. 全体デザイン.tplから、ナビ.tplとコンテンツ.tplを読込み。
4. 全体デザイン.tplから、コンテンツ.tplを読込み、
  コンテンツ.tpl内でさらにナビ.tplを読込み。

┌─────────────┐
│      ヘッダ(静的)     │
│┌─┐┌────────┐│
││ナ││ ページごとの   ││
││ビ││ コンテンツ(動的) ││
││ ││            ││
││静││            ││
││的││            ││
│└─┘└────────┘│
│      フッタ(静的)      │
└─────────────┘

私は全体のデザインを作ってしまって、
中身だけ入れ換える方式(上記3、4)が好きなのですが、
デザイナーにとっては、ファイル構成が直感的で
無くなるような気もします。
みなさんはどうしてるか参考までに聞かせてください。
0833nobodyさん2007/03/06(火) 07:45:19ID:???
>>832
ナビの部分はコンテンツごとに切り替えることがあるので、おれは3で。
0834nobodyさん2007/03/06(火) 08:01:34ID:???
まあ普通3だわな
デザイナーはhtmlベースな状態で管理を行って
デザインに更新があったらその都度プログラマが
変更点を確認して実際のテンプレートファイルに
手を加えるってのが一般的なんじゃないの
直感的なファイル構成にこだわる必要なんて無いと思うぜ
0835nobodyさん2007/03/06(火) 08:53:16ID:???
3,4の中身入れ替えって
全体デザイン.tpl に読み込む中身.tpl を選択する
分岐入れるってこと?

俺は良く2のパターンで作るなぁ。
デザイナさんに各ページをHTMLで作ってもらって
基本的にはそれを.tplに置き換えてから手を加える感じ。
0836GoA ◆J2EE.GplLk 2007/03/06(火) 09:46:08ID:???
>>832
俺はナビ部分が完全静的の場合なら、1をよくやるな。
正確に言えば、全体デザイン.tplからヘッダ・フッタ・ナビを完全固定状態で…って感じだけどな。

でも、ナビも動的にする場合がおおいので、結果として、3みたいな感じになることがおおい。
0837nobodyさん2007/03/06(火) 10:15:32ID:???
3の場合ってつまり
各コンテンツ.php内でコンテンツtpl名を変数に割り当てindex.tplを読み込み
index.tpl内で静的なヘッダ・フッタ+動的なコンテンツtplを読み込み
って感じ?(ナビ略)
0838nobodyさん2007/03/06(火) 12:16:59ID:25mpWck5
括弧の中を先に計算させたくて、以下のようにしたら...:
{section ... start=`($foo.bar-1)*($smarty.const.CONSTANT)` ...}

このようなエラーが出ました:
Fatal error: Smarty error: syntax error: $smarty. is an unknown reference

これはどうしたらよいのでしょうか?
08398382007/03/06(火) 12:36:12ID:25mpWck5
計算を優先させる括弧は、{math}でなら使えるみたいだけど、「効率が
悪いので、スクリプト側で計算させてテンプレートに振り分ける方が良い」という
ことが書いてあったのでそうします。
0840nobodyさん2007/03/06(火) 14:27:54ID:???
>>832
基本3か、場合によっては2かな。
0841nobodyさん2007/03/06(火) 14:33:09ID:???
>>835
私の場合は、各アクションの最後にどのコンテンツtplを使用するか送るようにしてる
メニューの部分は、全アクションに継承されたクラスのコンストラクタか、
アクション終わってからセットかな。もしくはtplから直読み。
0842nobodyさん2007/03/06(火) 14:36:46ID:???
ちなみに、>>837の言っている通り、全体デザインtplに送るのは決定されたテンプレート名だけの変数で
読み込む場合は{include file=$contpl}って感じね。
0843nobodyさん2007/03/06(火) 15:39:31ID:???
>>832です。
>>833-837,840-842
ありがとうございます。

デザイナ側からの視点だとまた違うんでしょうが、
プログラマ側からでは、3が多数という感じですね。
普段こういった事を同業に聞くこともないので
面白かったです。
0844nobodyさん2007/03/09(金) 15:28:36ID:???
3、4の全体ページってもしヘッダでちょろっと変更があったら
ほぼ全部のテンプレートを変更しなきゃいかんよね?
(DWのテンプレ機能とかはおいといて)
文章が分かりづらくてスマソ…。
0845nobodyさん2007/03/09(金) 15:32:27ID:???
なんで?
0846nobodyさん2007/03/09(金) 16:00:37ID:???
>>844
んなわきゃない
ヘッダやフッタに変更があってもレイアウトテンプレートを修正するだけだ
どう勘違いしてるんだ?
0847nobodyさん2007/03/09(金) 16:01:36ID:???
>>844
何が言いたいのかさっぱりわからない
全体ページは共通だろ
08488442007/03/09(金) 16:44:05ID:???
スマンです。頭が悪くて把握できていないんですが、
まず全体ページ(例:all.tpl)を呼んで、その全体ページ(all.tpl)のなかで{include 各コンテンツ}を
呼ぶってことでしょうか?
0849nobodyさん2007/03/09(金) 17:15:08ID:???
そうそう
0850nobodyさん2007/03/09(金) 17:24:54ID:???
そう>>837に書いてあるじゃん
08518442007/03/09(金) 17:32:37ID:???
>>849-850
オオゥ、、ありがとう!837は見逃してた。節穴な俺orz
0852nobodyさん2007/03/10(土) 10:44:25ID:GgSEfqVF
smartyで可変変数って使うことができないのでしょうか?
{${$loop[loop].name}}
{$$loop[loop].name}
という2つはエラーになりました。
0853nobodyさん2007/03/10(土) 11:30:55ID:???
{$loop[`$hoge`].name} で出来なかったっけ

最近Smarty使ってねえから間違ってたらすまんな
08548522007/03/10(土) 11:44:36ID:GgSEfqVF
>>853
ありがとうございます。
しかしちょっとそのやり方がわからないです。

具体的には
$loop[0]['name'] = "a40";
$loop[1]['name'] = "a43";
$loop[2]['name'] = "a58";
のように数字が続いています。

で、sectionの中で
{$a43}や{$a58}などの変数を呼び出したいのですが、どうもうまくいきません。
section が複雑にネストしてるので配列で渡すのはちょっと無理っぽいので、可変変数でなんとかしようと思った次第です。
0855nobodyさん2007/03/10(土) 11:48:12ID:???
テンプレートの if 文中で
{$var}.cde
という文字列を使いたいのですが、どのように記述すればいいでしょうか?

{if $var.cde == .....
では$varの配列とみなされてしまうようです。
08568552007/03/10(土) 11:49:03ID:???
すいません、、、、
smartyです。
0857nobodyさん2007/03/11(日) 14:03:45ID:???
>>854
そういうことか。無理なんじゃないかな。
定数値であれば、$smarty.const.$hoge で取れるんだが、
そんな方法で変数参照出来たら、逆に危なくて仕方ないしな。
設計から見直したまえ。
0858nobodyさん2007/03/11(日) 14:08:45ID:???
>>855
// $smarty->assign('var', 'ab');

{assign var="str" value=$var|cat:"cde"}

{if $str == "abcde"}ok{/if}
0859nobodyさん2007/03/13(火) 22:56:37ID:QJkFtOhT
{$smarty.session.id}でセッションIDが表示されるはずだよな?
なんで、俺だけ出ないのか教えてくれ。
0860nobodyさん2007/03/13(火) 23:31:57ID:???
セッションを開始していない
0861nobodyさん2007/03/16(金) 21:09:00ID:???
ずっと俺のターン
0862nobodyさん2007/03/18(日) 02:13:43ID:???
phpとDBがutf8で、実行の際にoutputハンドラでsjisにして出力してます。

smartyのテンプレ作成をutf8でお願いしますとデザイナに頼んだら、
「DWの設定まんどくさだから、sjisじゃなきゃダメ」と言われたので
smartyのautoload_filtersで、sjisテンプレをコンパイル時にutf8変換してます。

                 php(utf8) ← DB(utf8)
                   ↓
smartyテンプレ(sjis) → smartyコンパイル(utf8) → 画面出力(sjis)

このように、すごーく無駄な文字コード変換が2回も入ってしまいます。
なんか他にいい方法ないでしょうか?
0863nobodyさん2007/03/18(日) 02:43:21ID:CdbythRU
>>862

assign時にShift_JISに変換すればいいと思う。

                 php(utf8) ← DB(utf8)
                   ↓
assign
                   ↓to sjis
smartyテンプレ(sjis) → smartyコンパイル(sjis) → 画面出力(sjis)

Smartyの仕組みは知らないけど、assign時にコールバック処理を入れられるな
らそれを使えばいいし、無ければSmartyのラッパークラスを用意すればいい。
0864nobodyさん2007/03/18(日) 08:01:42ID:???
>>862
デザイナ殴ってでもutf8に変更させる。
0865nobodyさん2007/03/18(日) 08:53:47ID:???
DWの設定ってそんなメンドかったっけ?
頻繁に更新するものじゃなかったら、>>862さんがutf8にコンバートするとか。
0866nobodyさん2007/03/18(日) 09:12:45ID:???
DWの設定でエンコード決められてどうするんだよw
往復ビンタしてから
男から殴れ女なら犯せ
0867nobodyさん2007/03/18(日) 16:01:57ID:???
結局無駄な処理が入る事になるから
>>864の通りデザイナにUTF8で書いてもらうのが一番良い。
デザイナがだめならクライアントかディレクターあたりに「余計なコストがかかる事になりますが…」
とか言ってデザイナがUTF8で書かざる終えないようにがんばれ。
0868nobodyさん2007/03/18(日) 16:02:47ID:???
終えない→おえない
0869nobodyさん2007/03/18(日) 18:11:10ID:???
落ち着け
0870nobodyさん2007/03/18(日) 18:17:59ID:???
文字コードって最大最悪のバッドノウハウやね。
これがある日本はハンデやで。
0871nobodyさん2007/03/18(日) 20:08:33ID:???
Smartyなら
smartyテンプレ(sjis) → smartyコンパイル(utf8)
はテンプレートが更新された後の初回アクセスだけですむから大した負荷にはならないだろ。
0872nobodyさん2007/03/18(日) 22:52:24ID:???
>>865
文字コードの設定なんて数秒で変更できる。
0873nobodyさん2007/03/19(月) 11:20:58ID:???
俺は、ttp://www.kashim.com/eve/ を使わせてもらっているが、すこぶる具合がいい。

ただ、文字コード変換するくらいでぐだぐだ言うようなデザイナは、勉強不足だと思う。
一息に切れ
0874nobodyさん2007/03/20(火) 09:13:18ID:???
みなさんフレームワークは何使ってるんですか?
0875nobodyさん2007/03/20(火) 13:33:39ID:???
>>862
>smartyのテンプレ作成をutf8でお願いしますとデザイナに頼んだら、
>「DWの設定まんどくさだから、sjisじゃなきゃダメ」と言われたので

ええーっ
とりあえずおまいさんが『Dreamweaver 文字コード』でぐぐって、DWの設定を教えてあげればいいじゃない。
つかその程度のこともできないデザイナなんか切れ。
0876nobodyさん2007/03/20(火) 23:01:26ID:???
実際にSmarty使っているプログラマーって少ないみたいだな。
0877nobodyさん2007/03/21(水) 09:15:54ID:???
>>876
使ってるけど機能のほんの一部しか活用してないwww
0878nobodyさん2007/03/21(水) 18:15:41ID:???
>>876
はてなで見たけど、オープンソースを改造するのが
一番多いって…
0879nobodyさん2007/03/21(水) 18:15:49ID:???
>>876
自在にSmartyを使えるようになる頃には、自分で template 作れるようになる。
で、その頃になると、Smartyに粗が見え出すんだ。

まぁ、という訳で自作テンプレート使ってる。
0880nobodyさん2007/03/21(水) 20:52:08ID:NvhysGYm
>>879
どう考えても、Smartyの方が優れてそうだけどなw
0881nobodyさん2007/03/22(木) 12:42:30ID:???
>>880
まぁ、その通りだ。

だが、smartyはでかいし機能がありすぎる問題がある。
下手に機能があると、テンプレートに頼りすぎて、どこまでがviewか?とかが崩れるんだ。

シンプルな方が楽だし早いんだよ。
0882nobodyさん2007/03/22(木) 13:21:33ID:???
Smartyの余計な文法と微妙な制限を入れるよりも、
PHPでやったほうがわかりやすい。
0883nobodyさん2007/03/22(木) 14:34:43ID:jPF/zj00
データつかませて吐くだけだからな。 
0884nobodyさん2007/03/22(木) 15:12:30ID:???
プラグイン機能とかキャッシュとか使ってないの?
0885nobodyさん2007/03/22(木) 15:14:49ID:???
>>884
実稼働した後なら
一番使ってるのは
キャッシュかもしんないwww
0886nobodyさん2007/03/22(木) 17:40:02ID:9EeeeROG
Smartyのキャッシュほどありがたいものはないだろ。
0887nobodyさん2007/03/22(木) 18:13:08ID:???
キャッシュ機能ってどういうの?
0888nobodyさん2007/03/22(木) 23:44:06ID:???
>>882
はげどう
PHPよりSmartyのほうが使いづらいし貧弱
0889nobodyさん2007/03/22(木) 23:53:41ID:???
>>887
DBに接続してデータとって来るような場合
キャッシュがあればDBいかないで表示したり。
テンプレート内のカウンタとか一部のプラグイン部分だけはキャッシュじゃなくて動的にしたい
とかも出来るから結構便利よ。
0890nobodyさん2007/03/23(金) 01:25:37ID:wrH2dhw4
INSERTプラグインは好きだよ。
0891nobodyさん2007/03/23(金) 10:29:24ID:???
>>889
それってどういう仕組みなの?セッションやクッキー使って
DB内のカウント値を保存してるんじゃないよね?
0892nobodyさん2007/03/23(金) 13:40:45ID:???
>>891
クエリする回数を減らせるって意味だろ
0893nobodyさん2007/03/23(金) 14:57:53ID:wrH2dhw4
DBの接続コストを減らせるのだ。
0894nobodyさん2007/03/23(金) 16:54:26ID:???
>>891
簡単に言うと、ある一定時間内ならキャッシュを出力してDBアクセスを抑制できる仕組み。
http://sky.freespace.jp/smarty/SmartyManual_2-6-7J_html/caching.html

例を挙げれば
・10分ごとに最新情報がでればいい
・100view/分
・クエリ発行数 7/view
というコンテンツがあった場合

キャッシュなし→700query/分
キャッシュあり→0.7query/分

となりDB負荷が大幅に下がる。
0895nobodyさん2007/03/24(土) 21:37:49ID:???
この場合、キャッシュのキーになるのはURLなの?
もしそうなら、ページ全体のキャッシュはできても部分キャッシュはできないということ?
0896nobodyさん2007/03/24(土) 22:03:13ID:???
>>895
キャッシュのキーはテンプレートのパスとdisplay関数やfetch関数の第2引数として指定できるキャッシュID
マニュアル嫁と。
0897nobodyさん2007/03/25(日) 01:25:25ID:???
Smarty使っている有名なオープンソースってある?
0898nobodyさん2007/03/25(日) 04:42:25ID:UfKh4Z0S
>>897
細胞図
0899nobodyさん2007/03/25(日) 13:19:14ID:???
>>876
新規で受注したPHP案件は無理やりでも導入してるぜ

改造案件で昔の担当したアホがスパゲティってるときだけ使わん。
0900nobodyさん2007/04/03(火) 12:34:20ID:???
$arr = array("hoge"=>array(0,1,2,3));

{foreach from=$arr item=item key=key}
{$item.hoge|@count}
{/foreach}

連想配列の要素数は上記で取得出来るのですが、要素数を交えた演算が出来ずに困ってます・・・
感覚的に
{$item.hoge|@count * 4 + 1}
というような書き方をしたいのですが・・・どうかお助けください
0901nobodyさん2007/04/03(火) 12:36:53ID:???
すみません、上げさせて頂きます
0902nobodyさん2007/04/03(火) 13:32:03ID:???
>>900
math
0903nobodyさん2007/04/03(火) 13:46:55ID:???
多分、Smarty の話だと思うが、それは無理だったはず
0904nobodyさん2007/04/03(火) 13:49:53ID:???
math ならいけるね
0905nobodyさん2007/04/03(火) 14:14:52ID:???
すばらしい・・・一つ勉強になりました、ありがとうございました

$arr = array("hoge"=>array(0,1,2,3));

{foreach from=$arr item=item key=key}
{math equation="n*4+1" assign="mResult" n=$item.hoge|@count}
{$mResult}
{/foreach}
0906nobodyさん2007/04/03(火) 21:35:12ID:???
ttp://smarty.php.net/
繋がる?
0907nobodyさん2007/04/04(水) 10:05:10ID:???
つながる
0908nobodyさん2007/04/05(木) 22:15:57ID:Wh1vrSjM
{literal}〜{/literal}で囲った場所がごっそり消えてしまうのですが
同じ様な事を経験した方っていますかね?
コンパイル済みのファイルの時点でなくなってる感じです。

ちなみにSmartyのバージョンは2.6.6です。
レス数が900を超えています。1000を超えると表示できなくなるよ。