トップページ⇒php
984コメント324KB

【PHP】Smarty【Template】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/03/10 00:57ID:NhgrjNBT
このスレ、あってもいいんじゃないかと。

本家(英語)
http://smarty.php.net/

日本語マニュアルとか
http://sunset.freespace.jp/smarty/
0100nobodyさん03/04/10 15:06ID:Gsybxm64
>>99
98と同じ回答でいけるよ。

Smartyクラスをextendsした自分のクラスのコンストラクタ
で、各ディレクトリを指定してやればよいと思うが。
0101あぼーんNGNG
あぼーん
0102nobodyさん03/04/12 10:21ID:1gFMXfRc
2.5.0 release age
0103nobodyさん03/04/13 03:48ID:???
>>100
回答ありがとうなのだが、意味がわからんので勉強してきまつ
0104山崎渉03/04/17 12:05ID:???
(^^)
0105nobodyさん03/04/20 21:11ID:PaIMcwUL
同じ テンプレート名は許されないのか???

同じ名前のテンプレートを違うディレクトリに置いて使っていたのだが、
まったく意図しない動きになりびびった。
0106nobodyさん03/04/20 21:22ID:???
>>105
結局どのように対処しましたか?

/public_html/www/index.php
/public_html/sub/index.php
/public_html/info/index.php

などサブドメインを作りたいんですけど、個別にインストールするのも
メンテ性が悪いですし…
010710503/04/20 22:15ID:???
ttp://smarty.php.net/manual/en/installing.smarty.extended.php
のようにラッパークラスを作ったり、

あとは、いちいち 

$smarty = new Smarty;
$smarty->compile_dir = "/path/to/somewhere";

のようにディレクトリをしていしたりとか。。。

でも、めんどくさい。

ていうか、同じテンプレート名が使えないってのは仕様なんですか?
最初バグかと思ったんですが。
0108nobodyさん03/04/23 01:25ID:???
>>107
ここに書いてあった。

異なるディレクトリに置かれたテンプレートを使用する方法
http://sunset.freespace.jp/smarty/
0109nobodyさん03/04/23 01:29ID:???
>>108
読んでみたがいまいちよくわからんかった。

結局
>display() の引数 compile_id, cache_id を利用する事で可能となる。
この場合のやり方は、どうするの?

>1つのSmartyを複数のプロジェクトで使用する場合は、display( PROJECT_TPL_DIR . 'index.tpl'); とかになるのかな?

??
どういうことなのでしょうか?
0110nobodyさん03/04/23 05:14ID:/AFbvcV5
>>107-109
横からすみません。。。

アプリごとにラッパークラスを作って、その中で
$template_dirを指定すればいいと思いますが、
何か問題があるのですか?
0111あぼーんNGNG
あぼーん
0112nobodyさん03/04/23 08:06ID:???
ようするに人それぞれか?
0113nobodyさん03/04/27 07:29ID:???
>>107-
俺の場合たいていこうしてる

display($template_file, $_SERVER[REQUEST_URI], $_SERVER[REQUEST_URI]);
0114nobodyさん03/05/02 19:49ID:rrWLpWsV
今日からSmartyを触り始めたものです。設定について
ttp://sunset.freespace.jp/smarty/SmartyManual_2-5-0J_html/
の「基本的なインストール」をみながら設定しました。

上記に沿ってテスト用のファイルを作成して表示してみましたが
下記のようなエラーが出てしまって困っています。
Warning: Smarty error: unable to read template resource: "smarty_test.tpl" in /usr/local/lib/php/Smarty/Smarty.class.php on line 1042

Smarty.class.phpファイルの1042行目あたりは以下のとおりでした。
-------------------------------
function trigger_error($error_msg, $error_type = E_USER_WARNING)
{
trigger_error("Smarty error: $error_msg", $error_type);
}
-------------------------------
何が問題なのでしょうか。

環境:
 RedHat 7.3 Apache 1.3.27
 PHP 4.2.3 multibyte
 PHPlib 7.4-pre1 Smarty 2.5.0 Source
011511403/05/02 19:53ID:rrWLpWsV
続きです。
設定は以下のようにしました。

Smarty本体は以下のように格納しました。
/usr/local/lib/php/Smarty/Smarty.class.php
/usr/local/lib/php/Smarty/Smarty_Compiler.class.php
/usr/local/lib/php/Smarty/Config_File.class.php
/usr/local/lib/php/Smarty/debug.tpl
/usr/local/lib/php/Smarty/plugins/*.php

webサーバのドキュメントルートに以下のようにフォルダを作成し、chmod 770しました。
/usr/local/apache/htdocs/php/smarty/
/usr/local/apache/htdocs/php/templates/
/usr/local/apache/htdocs/php/templates_c/
/usr/local/apache/htdocs/php/cache/
/usr/local/apache/htdocs/php/configs/

php.iniの設定は下記のとおりです。
include_path = ".:/usr/local/apache/htdocs/phplib/php:/usr/local/lib/php/Smarty/"

ttp://sunset.freespace.jp/smarty/SmartyManual_2-5-0J_html/installing.smarty.basic.htmlExample
上記のサイトの「2-2. Smartyのインスタンスを作成する」のとおり
テストしてみましたがSmarty.class.php file could not be found という
エラーは出ませんでした。
011611403/05/02 19:54ID:rrWLpWsV
更に続きです...

テスト用に下記のようにファイルを設定しました。
templatesフォルダ内に「smarty_test.tpl」
----------------
{* Smarty *}
<html><body>
Hello, {$name}!
</body></html>
----------------

smartyフォルダ内に「smarty_test.php」
----------------
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->template_dir = '/usr/local/apahce/htdocs/php/templates/';
$smarty->compile_dir = '/usr/local/apahce/htdocs/php/templates_c/';
$smarty->config_dir = '/usr/local/apahce/htdocs/php/configs/';
$smarty->cache_dir = '/usr/local/apahce/htdocs/php/cache/';
$smarty->assign('name','Ned');
$smarty->display('smarty_test.tpl');
?>
----------------
もー何が何やら( ´д`;)
ナガクテスマソ...
0117nobodyさん03/05/03 13:57ID:???
debug onにしてやってみたら?

多分PATHが間違ってるだけか、パーミッションの問題のような気がするけど。
ファイルのオーナーはどうなってる?
あと、セーフモードはon?off?
011811403/05/03 17:06ID:ucISI8En
>117 レスThanks!
debug on ってphp.iniの設定でつか?
セーフモードはoffです。
パーミッションとファイルのオーナーは普通に
アップロードダウンロードできるんで問題なさそうな気がしますが
そういう問題じゃないでしょうか?

エラーの内容がSmarty.class.phpが違ってるって事だったんですが
やっぱりパスのせいなんでしょうか?
パス違ってたら最初から読み込めないんじゃないかと思ったんですがいかがでしょう?
0119あぼーんNGNG
あぼーん
0120nobodyさん03/05/04 12:42ID:???
>>118
debug onはSmartyの。今はあんま関係ないかも。

パーミッションは、UL,DL関係ない。
apacheがtemplates_c とか cache に書き込めるかが重要。 だけど、これも違うエラーがでるから関係ないかな。

Warning: Smarty error: unable to read template resource: "smarty_test.tpl" in /usr/local/lib/php/Smarty/Smarty.class.php on line 1042
をそのまま訳すとテンプレートのリソースが読めん!!ってことだから、

templates/smarty_test.tpl が読めないんでしょ?

だから、smarty_test.tpl のパーミッションか、
その上位ディレクトリのバーミッションじゃない?
012111403/05/04 21:05ID:PMPOUjrA
> 118 レスThanks!!

> templates/smarty_test.tpl が読めないんでしょ?

なるほど!Smarty.class.phpが違ってるって事じゃないんですな。

> だから、smarty_test.tpl のパーミッションか、
> その上位ディレクトリのバーミッションじゃない?

templates/ あたりは全部115に書いたとおり770にしました。
青マンモス本には700に書いてあったんで、そっちも試したけど同じでした。

問題はsmarty_test.tplファイルのパーミッション。
このファイルは、WindowsXPで作成して、FFFTPで該当ディレクトリにアップしました。

その後は、そのままで全くいじってないんだけど、このままだと
もしかして書き込みができないから駄目とか??
.tplファイルはアップロードしたら権限を修正するべき物でしょうか?
0122あぼーんNGNG
あぼーん
0123nobodyさん03/05/05 01:21ID:???
>>121
パーミッションを全部書いてみ。

templates_c は777でないと動かない時があるって、QUICKINSTALLかなにかに
書いてあったの読んだ?

templates_c,cache のファイルオーナーが、Webサーバと同じにならないなら、
777でないとダメじゃなかったっけ?

わからんのなら、全部777にしてみろ。
012411403/05/06 10:47ID:aSOV5r0L
>123 ありがとうございます。

templates_c は777でないと動かない時があるって言うのは知りませんでした。
とりあえず、全部777にしてみました。実行結果は同じエラーでした。
パーミッションとディレクトリ構成はこんな感じです。

/usr/local/apache/htdocs
--Webファイルをおくディレクトリでユーザとオーナーはwwwです。

この中にphpというディレクトリがありパーミッションは以下のとおりです。
/usr/local/apache/htdocs/php
drwxrwxrwx 7 www www 4096 5月 2 19:35 php

このphpフォルダ内に、smarty用のディレクトリを入れ777にしました。
drwxrwxrwx 2 www www 4096 5月 2 17:53 cache
drwxrwxrwx 2 www www 4096 5月 2 19:19 configs
drwxrwxrwx 2 www www 4096 5月 2 18:16 smarty
drwxrwxrwx 2 www www 4096 5月 2 19:18 templates
drwxrwxrwx 2 www www 4096 5月 2 17:53 templates_c

テンプレートディレクトリ内に下記ファイルがあります。
-rwxrwxrwx 1 www-data www-data 56 5月 2 19:24 smarty_test.tpl

もしかして、これらのディレクトリはWEBファイルを置くディレクトリ
直下に置かないとダメなんでしょうか?それとも、WEBファイルを置くディレクトリの
外に置くべきものだったりしますか?ここ読んでるんですが↓
http://sunset.freespace.jp/smarty/SmartyManual_2-5-0J_html/installing.smarty.basic.html
青マンモス本と書いてある事が微妙に違っていて、よくわからなくなってしまいました。。。
とりあえず、全部削除してもう一度始めから設定しなおしてみます。
0125あぼーんNGNG
あぼーん
0126あぼーんNGNG
あぼーん
012711403/05/06 16:37ID:aSOV5r0L
とりあえず、下記のようにすることでできるようになりました。
ありがとうございました。

アプリケーション用のSmartyのディレクトリをドキュメントルートの外に作成。
 templates/ templates_c/ configs/ cache/
cache/ templates_c/にwebサーバのオーナとユーザに設定し、
cache も templates_c も777で設定。

これで、下記の拡張セットアップまでできました。
http://sunset.freespace.jp/smarty/SmartyManual_2-5-0J_html/index.html

012811403/05/06 16:39ID:aSOV5r0L
しかし >>127 のような構成になっていると、templates/が、ドキュメントルートの
外なので tplファイルがWindows側からアップロードできません。

マニュアルによれば、「セキュリティの心配を避けるためにドキュメントルート外に
これらのディレクトリを配置する事が推奨されます。」とあるので
ドキュメントルートの中においてもセキュリティ面を除けば問題ないんじゃないか
と考えて、再度ドキュメントルート内に設定してみました。

ドキュメントルート内のSmarty用のディレクトリと、ファイル全てを
パーミッションを777、webサーバのオーナとユーザに設定しましたが
やはり >>114 のようなエラーが出てしまいます。

Warning: Smarty error: problem writing temporary file '/usr/local/apache/htdocs/smarty/php/cache//%%306/%%30660664/3eb76264e8132' in /usr/local/lib/php/Smarty/Smarty.class.php on line 1042
Hello, Ned!

ドキュメントルート内に置くのは不可なのでしょうか?
他の方はtplファイルのアップロードはどうなさっているのでしょうか?
Webサーバで直接書いてらっしゃるのでしょうか?
何度もスミマセン。
0129nobodyさん03/05/06 18:19ID:6G0ArJzR
>>128
ドキュメントルートより1つ上の階層にファイルを
アップロードできないってのがなんか違うな。
0130nobodyさん03/05/06 19:48ID:???
>>128
なんでアップできないかがよくわからんな。
そんなことありえないと思うが、どのようにできないわけ?

で、そのエラーはやっぱりパーミッションの問題だ。
templates_c 以下にできるファイルのオーナーが違うでしょ?
013111403/05/07 11:05ID:ejEp7kPZ
>129サン >130サン レスアリガ�d

> で、そのエラーはやっぱりパーミッションの問題だ。
> templates_c 以下にできるファイルのオーナーが違うでしょ?

おっしゃるとおり、オーナー違ったし書き込み権限もなかった(´・ω・`)
ここの拡張セットアップ↓を使わなければうまくいくようになりました!
http://sunset.freespace.jp/smarty/SmartyManual_2-5-0J_html/installing.smarty.extended.html

ドキュメントルートより1つ上の階層にファイルをアップロードできないって変ですか?
/usr/local/apache/htdocsここの一つ上だから
/usr/local/apacheここがFTPした時に見えないってことですけど。

FTPの設定を変えたら見えるようになると思いますが、それって危険ではないかな?
そういうことじゃないでしょうか??あれれ?
0132 ◆AngelH/kMI 03/05/07 13:30ID:???
>>131
というか、そのあたりのファイルはユーザ別に作って
そのユーザのディレクトリに入れた方がいいのでは・・・。

ドキュメントルート
/home/username/www

Smartyのコンパイルディレクトリ
/home/username/lib/templates_c

自分ならこんな感じ。
013311403/05/07 15:32ID:ejEp7kPZ
>131san ありがとー!

なるほど。ユーザディレクトリ使えばできますね。
それでやってみます!

みなさん、長いことお付き合いいただきありがとうございました!
おかげさまで無事設定できそうで、大感謝です!
0134あぼーんNGNG
あぼーん
0135nobodyさん03/05/08 10:29ID:???
>>133
もし感謝してるなら、自分が色々わかるようになった時、他にわからない人がいたら
やさしく教えてあげるようにしてねー。
013611403/05/08 13:03ID:???
>135
オオー!素敵なコメントありがとう!
もちろん、絶対恩返しします!
0137nobodyさん03/05/15 22:03ID:???
>>135
ほんとうに素敵なコメントだ。
きみ、人間としてすばらしいよ。
心が洗われた。
013813503/05/16 10:49ID:???
>>136-137
そのコメントは僕の考えたコメントじゃないんですけどね…
僕も今まで色々質問ばかりしてきて、たくさんの親切な人にいっぱい教えて
もらいました。その時言われたのが>>135のような言葉です。

多分UNIX系の方々の考え方だと思いますが、僕もその考えに賛同して、
その恩を他の困っている人に返しています。

UNIX板など行くと商業サポートかと思うくらい、質問に答えてばかりの人が
いますが、多分その方も誰かから色々教わったたり、フリーソフトウェア、
オープンソフトウェアの恩を返しているんだろうなぁと思います。

#smartyというこんなに労力のかかっているソフトを無料で配布している
作者さんに対しても恩を返していることになるのかなぁ…
0139nobodyさん03/05/21 19:08ID:p8eRICbY
ちょっと質問です。
ひとつの変数を使いまわして、新たな値を入れたい時は、
毎回clear_assign()使った方がいいんでしょうか?
使わなくても動いてるみたいだけど。。。
0140あぼーんNGNG
あぼーん
014113903/05/21 19:13ID:p8eRICbY
も一つ質問です。
Smartyって、if とか loop が使えるじゃないですか。
これってとても便利なんですが、デザイナーさんもこういうのをある程度は
理解しないといけないですよね。

そうするとデザインとロジックの分離からちょっとずれてしまう気がするんですが
実際デザイナさんと作成されている方はこの辺どうされてるんでしょうか?
0142 ◆AngelH/kMI 03/05/21 20:46ID:???
>>141
if文は使ってないなぁ。
loopは使えないとお互い不幸になりそうなので使ってます。

・とりあえずloopとか変数とか無しでデザイン作ってもらう
・その後、自分がloop箇所や変数箇所を追記・修正
・デザインや文章に変更が生じた場合、命令部を破壊しないように変えてもらう

自分はこんな感じでやってるよ。
0143山崎渉03/05/22 01:57ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
014413903/05/22 10:34ID:???
>142 san
ありがとうございます。
デザインが先で、あとは {...} が付いている所はさわらないで
もらうって感じですね。

if 文使ってないというのは、例えば、状況によって画面の表示を変えたい時
どのようにされてるんでしょうか?権限によって画面を変えたいときとか。
0145 ◆AngelH/kMI 03/05/22 11:50ID:???
>>144
>権限によって画面を変えたいときとか。
ファイルそのものをわけちゃう。
Dreamweaver等でデザインファイル(html)をみるときもその方が
見やすいと思うのだけどどうだろう。

このあたりは人によって開発手法違うだろうから
他の人の意見も聞きたいなぁ。
0146nobodyさん03/05/22 19:56ID:???
サブディレクトリ、またはサブドメインごとに軽くデザインを変えるようなシステムを
みなさんはどのように作っていらっしゃいますか?

自分も今作っているのですが、設定ファイルがあちこち行ってしまって複雑になってしまい
ました。
title,descriptionなどを入れた、configs/sub.conf
サブごとのラッパークラス includes/sub.lib.php
そして、各phpファイル www/sub/index.php

みなさんはどのようにやっているんですかねぇ?
0147あぼーんNGNG
あぼーん
0148あぼーんNGNG
あぼーん
0149あぼーんNGNG
あぼーん
0150山崎渉03/05/28 17:07ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0151nobodyさん03/05/31 13:59ID:???
>>146

スクリプトファイルとテンプレートファイルを同じディレクトリに置いて管理してます。結局これが自然な気がします。ヘッダやフッタのような共通ファイルは別場所でまとめて管理。
PEAR を継承してテンプレート制御用のクラスを作りその中で Smarty を初期化してます。
この中で例えば $obj->smarty->display() のような関数に対して $obj->display() のようなラッパーを作り、そこで template_dir や compile_id の制御を行います。
でそのクラスをさらに extends して特定ブロックごとに合わせています。
実行はこんな感じ。
$tpl = new TemplateAreaName;
/* .. snip.. ここで処理&変数のアサインを行う */
// レンダリング
$tpl->showHeader();
$tpl->showMenu();
$tpl->display('index.tpl');
$tpl->showFooter();
0152nobodyさん03/05/31 19:10ID:???
>>151
>スクリプトファイルとテンプレートファイルを同じディレクトリに置いて管理してます。

なるほど。確かに更新するとき、両方のディレクトリを行き来したりする必要はなくなりますね。
これだと、テンプレートファイルも外から見えますよね?
問題ないんですかね。
0153nobodyさん03/05/31 20:19ID:???
>>152
う〜ん、、どうなんでしょう。今回 Smarty を初採用し、アプリケーションの完成度も 40% というところなので正直手探りでやっています。
もっと良い方法があればいいのですが。

ご指摘の危険性は考えましたが元々テンプレートをさくさく差し替えれるようにテンプレートには極力情報を埋め込まないようにしており、
テンプレートへの直接のアクセスも拡張子によるアクセス制限で回避出来ると思ってこの方法でやっています。
0154nobodyさん03/06/01 12:57ID:???
>>152
もう一つ思い出しました。
テンプレートの先頭にスクリプトを埋め込むか、テンプレートをPHPとして認識させて define などを使ってダイレクトアクセスを防ぐ手段も考えられます。
PHPBB のライブラリとかこういうやり方だったような。
0155nobodyさん03/06/07 06:42ID:dfQas5D8
Smarty 2.5.0 を、PHPのsafe_mode="On"で実行すると、warningが出るのですが、
これは私だけ?
確か、Smartyクラスモジュールの2691行目だったと思います。
0156 ◆AngelH/kMI 03/06/07 09:08ID:???
>>155
$smarty->use_sub_dirs = false;
で回避できない?

意味はマニュアル参照。
0157nobodyさん03/06/10 07:06ID:Fwh1UjxU
>>156
$smarty->use_sub_dirs = false;
やってますが、それでもwarning出てしまします。
ほかに思い当たる情報があればお願いします。
0158あぼーんNGNG
あぼーん
0159あぼーんNGNG
あぼーん
0160あぼーんNGNG
あぼーん
0161 ◆AngelH/kMI 03/06/10 17:19ID:???
>>157
というかそのwarningの内容出してくれないと何とも。
cacheディレクトリとtemplates_cディレクトリに
書き込み権限与えてる?
0162nobodyさん03/06/12 18:20ID:???
smartyで他のサイトのXOOPSのRSSを表示しようとしています。

googleで調べて、magpieというのがあったので、それを使おうとしています。
が、日本語が文字化けしてしまうので、変換させたいのですが、どこでどう変換させれば
いいのかがわかりませんでした。

以下が、smarty用サンプルコードをいじったものです。

$url = $_GET['rss_url'];
if ( $url ) {
// assign a variable to smarty for use in the template
$smarty->assign('rss_url', $url);
$rss = fetch_rss( $url );
// if fetch_rss returned false, we encountered an error
if ( !$rss ) {
$smarty->assign( 'error', magpie_error() );
}
//ここは文字化け対策成功
$rss->channel['title'] = mb_convert_encoding($rss->channel['title'], "EUC", "auto");

foreach ($rss->items as $item) {
//ここでどのような変数に代入すれば良いのでしょうか?
$title = mb_convert_encoding($item['title'], "EUC", "auto");
}

$smarty->assign('rss', $rss );
$item = $rss->items[0];

$date = parse_w3cdtf( $item['dc']['date'] );
$smarty->assign( 'date', $date );
}
0163nobodyさん03/06/13 04:36ID:???
自己レス

foreach ($rss->items as $key=>$item) {
$rss->items["$key"]['title'] = mb_convert_encoding($item['title'], "EUC", "auto");
}

でOK。
0164nobodyさん03/06/20 01:36ID:22HNzffu
mb関数使えない鯖で半角カタカナ全角にできるの?
0165nobodyさん03/06/20 10:35ID:???
>>164
できるよ
0166nobodyさん03/06/22 01:38ID:9+GBIMXB
>>165
どーやんの?
0167nobodyさん03/06/22 08:43ID:???
>>166
http://www.spencernetwork.org/
0168nobodyさん03/06/28 01:23ID:M0QDMJtS
>>167
わかんねー
0169あぼーんNGNG
あぼーん
0170あぼーんNGNG
あぼーん
0171あぼーんNGNG
あぼーん
0172あぼーんNGNG
あぼーん
0173あぼーんNGNG
あぼーん
0174あぼーんNGNG
あぼーん
0175あぼーんNGNG
あぼーん
0176nobodyさん03/07/12 19:16ID:P6mY9BCG
age
0177nobodyさん03/07/13 01:15ID:iGC1lgy5
Smartyってどれくらい普及してんだ?
使われているサイト知ってる?
0178nobodyさん03/07/13 13:49ID:???
>>177
自分の個人サイトだったら、ほぼ全部のページで使ってますが・・・
0179nobodyさん03/07/13 14:05ID:Qv0LVgul
PHPから別ウィンドウを立ち上げる事ってできるんでしょうか?
例えば、エラーチェックを行って、エラーに引っかかると
別ウィンドウでエラー内容を表示する、等
require もしくは header 関数を利用して。
もしくはそれ以外の関数、コーディングで。
Ncurses関数は客の鯖問題でPHPをリコンパイルできません。。
0180あぼーんNGNG
あぼーん
0181nobodyさん03/07/13 14:14ID:48FuQ70+
>>179
今手元にないから分からないけど、
"Professional PHP プログラミング"に、それらしい例がのっていたような。
0182nobodyさん03/07/13 14:17ID:Qv0LVgul
>>181 さん
早速ありがとうです。
調べてみます
0183nobodyさん03/07/13 15:19ID:???
http://pc2.2ch.net/test/read.cgi/php/1057947512/12
smartyと関係ない上にマルチポスト
0184nobodyさん03/07/13 16:23ID:???
MLにもポストしてたような?
できるの?コレ?
0185山崎 渉03/07/15 11:07ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0186nobodyさん03/07/15 17:55ID:wTgTaT8B
おお、久々にWebProg板に来たらSmartyのスレが。
コンテンツとデザイン〜の1です。

>>177
一応は本家公認のテンプレートエンジンって扱い(ですよね?)なので、海の向こうでの
使用頻度は高いんじゃないかと思います。xoopsに採用という実績もありますし。
国内でも自分みたいな糞田舎の情報システム部ですら2年前から使ってるので、それなりに
普及していると思いますよ。googleでも随分引っかかるようになってきましたね。
0187nobodyさん03/07/16 00:47ID:???
DBからデータ持ってきてappendしてページ作ってる場合、
APCとかZendOptimizerとか使える?
0188nobodyさん03/07/21 14:35ID:???
Smarty 使ってると何故かソースコードの記述が勝手にアサインされてるような、、
全く assign していない PEAR::raiseError のようなエラー処理の記述や print 文で勝手にエラー吐いてくれまつ。



…… Smarty のコードまで潜って 1h ほど戦って気付いた。
$tpl->display('hoge.php');
拡張子が .tpl ぢゃなくて .php で別ファイル指定してた。鬱だ氏のう _| ̄|◯
0189 ◆AngelH/kMI 03/07/22 08:14ID:???
>>187
別に問題ないかと。
APC1の頃は大丈夫だったし
現在はmmcache使ってるけど大丈夫だよ〜。
0190nobodyさん03/07/22 15:11ID:???
素朴な疑問。
appendとassignって何が違うんでしょう?
0191nobodyさん03/07/22 17:16ID:???
>>189
サンクス。やってみまつ。

>>190
assginは代入、みたいな。
appendはarray_push()、みたいな。
0192nobodyさん03/07/28 23:09ID:Qst4s2Al
Smartyって、ページ全体のキャッシュじゃなく、
ページの一部分だけキャッシュのすることってできないですか?

自分、いわゆる「ぱんくず(※)」をキャッシュにしたいんですよね・・・

※トップページから現在のぺージまでの道筋を表したもの。
例)Yahoo!とかだと

ホーム > コンピュータとインターネット > ソフトウェア > インターネット > WWW > ブラウザ

っていうあれね。
0193nobodyさん03/07/28 23:36ID:zAmscCpE
最高画質が揃った最高のサイトオープン!?
http://www3.free-city.net/home/espresso/white-snow.html
0194nobodyさん03/07/29 17:31ID:aKRM8GxJ
>>192
insertを使えば出来る。
http://sunset.freespace.jp/smarty/SmartyManual_2-5-0J_html/language.function.insert.html

カスタムプラグインでテンプレート内に{breadcrumb 現在の位置="hoge"}ってかくと
自動でずらっとパンくず表示してくれるの作ったけど便利だよ。
他のサイトにも再利用できるし。
0195nobodyさん03/08/01 14:03ID:???
テンプレートのデザインをいじる人にIBMホームページビルダーを
使わせたいんですが、Smartyタグのデリミタは何が無難でしょうか。

ページ内にCSSを書くこともあるのでデフォルトの { } は使わせたく
ないし、XOOPS2 なんかで定義されている <{ ]> でもいいかなと
思ったけど、< なんかに自動的に置換されてしまわないかと心配
です。それに、modifierのパラメータを " で囲むと " に置換
されるもよう。
0196山崎 渉03/08/02 02:23ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0197ぼるじょあ ◆ySd1dMH5Gk 03/08/02 04:51ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
0198nobodyさん03/08/09 06:43ID:ZOEKZBoK
さがりすぎage
0199あぼーんNGNG
あぼーん
■ このスレッドは過去ログ倉庫に格納されています