コンテンツとデザインの分離
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/27(日) 17:59ID:6pK8snWA<%〜%>やらprint文の嵐になってしまう。
「HTMLはHTML、プログラムはプログラムと完全に分離する方法はないものか。」
を話し合うスレッドです。
0161nobodyさん
02/03/13 23:23ID:LkTLC//kでも、標準的にどこでも手に入る環境じゃないのが辛いなぁ。
0162nobodyさん
02/03/14 00:11ID:???デザイナは読みたくもないだろうと思うよ。
0163nobodyさん
02/03/14 01:23ID:Jx+3VC0Eるわけではないけど、展開して置いておけば(つまり make とか
しなくても使えるよ。)
最近のヤツはいろいろ他のモジュールを必要とするので、1.8とか
をいれるとよいでしょう。
基本的なことは、1.8でもできるし。
0164nobodyさん
02/03/14 07:46ID:nAmAc5Wh0165nobodyさん
02/03/14 15:11ID:???どこの会社?社名出してよ。
もし契約してるとこなら、打ち切らなきゃ。
デザイナにコーディングさせたオナニーシステムなんて、使い物にならん。
0166nobodyさん
02/03/14 15:46ID:xs367yVo1.8ってまだ公開されているの?
0167nobodyさん
02/03/14 23:19ID:6NMo0mqW公開されているよ
http://www.cpan.org/authors/id/S/SA/SAMTREGAR/HTML-Template-1.8.tar.gz
ちなみに、最新は2.5です。Perl5.6必須だけど。
http://www.cpan.org/authors/id/S/SA/SAMTREGAR/
0168nobodyさん
02/03/14 23:33ID:83vwJ138Thx!早速落としたよ。
0169nobodyさん
02/03/15 01:50ID:sSRdthigSmarty も HTML::templateもよさそうだけど。
何か言い方法ありますかね?
0170nobodyさん
02/03/15 02:04ID:???0171nobodyさん
02/03/15 02:20ID:sSRdthigあ、それでできるんですか?
Smartyも?
0172nobodyさん
02/03/19 22:42ID:BqZatu5xこれみたいにテーマがあって変えられるやつ。
http://curtisonline.net/theme/
PHP-nukeも使いようによっては、いじれそうだけど。
0173nobodyさん
02/03/25 20:03ID:???PHPのsafe modeを有効にしながらSmarty使う方法はありませんか?
Smartyはtemplates_c/以下にコンパイル後のファイルを置く訳ですけど、
この際に作られるディレクトリが複数階層にわたるみたいで、
これらがsafe modeの制限に引っかかってしまいます。
01741
02/03/26 11:05ID:mzbnXmq6http://marc.theaimsgroup.com/?l=smarty&r=1&w=2
ここで safe mode で検索かけてみて下さい。
おそらく解決方法があるかと思います。
0175173
02/03/26 16:39ID:???情報thanx
やはり、解決策としては、
1.Smartyを利用するスクリプトの所有者をhttpdプロセスのUIDに合わせる
2.Smartyを利用するスクリプトがある領域だけsafe modeをOffにする。
3.CGIとして利用して、Apacheのsuexecを利用する。
しか無いみたいですね。
で、不特定多数の利用者が自由にSmartyを利用できるようにするためには、
CGIとしてPHPを動かすしか無い、と。
0176nobodyさん
02/03/26 22:34ID:0DHHOlhehttp://www.roadsend.com/siteManager/home/treeMenu.php
0177nobodyさん
02/03/27 13:10ID:xBtxtmDD見てみたけど、多言語対応してるみたいだし、テンプレート・エンジンもあるね。
なかなかよさげだけど、誰か使ってないの?
0178nobodyさん
02/03/30 22:47ID:???興味があり見に行きましたが、まさか Java script が必須とは (汗
いえ、只の愚痴です。すいません。
0179nobodyさん
02/03/31 06:52ID:???既存のHTMLファイルを取り込む方法がいまいちわからないです。
0180nobodyさん
02/04/01 04:24ID:Hzf2fsPpループとか分岐の指定をする専用タグがある時点でアウトでしょ。
0181nobodyさん
02/04/01 04:31ID:???0182Dream ★
02/04/01 06:40ID:???うん、いい感じですね。
コンテンツ大きいとオーバーヘッドがきつそうだけど、アクセスがそんなに
負荷になっていないサーバだと、大丈夫なのかな?
とにかく、面白そうなものを教えて下さって、ありがとう>All
0183nobodyさん
02/04/01 09:29ID:???うちは、/cgi-bin/以下に置かなきゃいけないから、いやん。
誰か買った人います?
どんな感じか教えてほしいのだけど。
会社の帰りにでも、探してみるかなぁ・・・。
01851
02/04/01 14:08ID:ALawDKoI取り込むというと…?
{include file='includefile'}
みたいなことは出来ますけど、たぶん違いますよね。
>>184
マンモス本ってなんですか?? オライリー?
0186nobodyさん
02/04/01 16:33ID:SClNMZpgお返事ありがとうございます。
ただ、現在のページをheder,left,bottomに分けて、そこをテンプレートにして管理したいだけなんですけど
Smartyだとやり方がよくわからなくて…。
01871
02/04/01 17:11ID:ALawDKoI別のファイルが差し込めればいいんですよね。
---- header.html ----
<h1>へっだー</h1>
---------------------
というヘッダー部があるとして、本文のテンプレート(例えばbody.html)に
---- body.html ----
<html>
〜 省略 〜
<body>
{include file='header.html'}
〜 本文 〜
</body>
</html>
-------------------
とすることで、body.htmlにheader.htmlが差し込まれた形で処理されます。
0188nobodyさん
02/04/01 18:34ID:eCkZiEpBSmartyのマニュアル和訳とかしてwebにあげようと思ってたんだけどなー(´д`;)7割はオワッタ
0190nobodyさん
02/04/01 19:41ID:jOov+muSお返事ありがとうございます。
index.tplにheader.html等組み込むのはいいのですが、コンテンツを
各webページごとに入れ込む場合、テンプレートの方でなく、index.phpなどの方に入れ込むと思うのですが、その入れ込み方がマニュアルを見ても乗ってないというか、わからないというか...
例えば、index.phpのコンテンツ部分をindex.txtから取り込むには、ファイルを読んで、それを$contentsに入れ込んで、$smartyに渡すということをすればいいのでしょうか?...自分でもよくわからないです...
>>188
すごいですね。upしたら教えて下さい。
というか、途中でも、upすれば、リバイズとか助けられると思いますよ。
オライリーではなく。
PHP徹底攻略:実戦編のこと。
http://books.softbank.co.jp/bm_detail.asp?sku=4797315199
これ。
昼休みに買いに行ったら、店が休みだった・・・(涙
>188
目次みたら、リファレンスのところにSmartyって書いてあったよ。
でも、使い方和訳したならきぼーん。
PHPusersMLより青マンモス本の目次。
http://www.geocities.jp/rui_hirokawa/php/php-book2/toc.html
多分、明日買ってきます。
01941
02/04/02 09:55ID:IYI5YDp3うーん、それはSmartyというよりPHPでゴリゴリ書くしかないですね。
---- main.html ----
<html>
<body>
{$contents}
</body>
</html>
-------------------
というテンプレートに
---- index.php ----
require("Smarty.class.php");
$smarty = new Smarty;
$fp = fopen("index.txt","r");
$smarty->assign("contents", fread($fp, filesize("index.txt"));
fclose ($fp);
$smarty->display("main.html");
-------------------
こんなかんじなのかな?
すいません、>>190さんの言いたいことがよくわかってないかもです。
>>188
ぜひUPして下さい。日本語のSmartyサイトが1件も検索に引っ掛かってこない現状
は寂しいです。
0195__
02/04/02 10:01ID:hdBuJcW10196nobodyさん
02/04/02 10:11ID:6uavVYCoわざわざコードまでありがとうございます。
これを参考に自分で書いてみます。
Smartyは、もうちょっとwebサイトに色々情報が欲しいなぁ〜と思いました。
MLの過去ログを見ても、やっぱりサンプルが足りないと言う人や、Smartyを使っているサイトを
教えてという人や、themeを作ろうなんて人もいました。
色々プラグインなんかもシェアできたら、便利そうですよね?
現在新しいサイトをオープンしているようですね。
http://smarty.php.net/
日本のサイトを作ったらまずいのかな?
0198 ◆AngelBlk
02/04/02 12:55ID:QT5eEfAOSmartyは完全にリファレンスだけ(公開メソッドとか関数の一覧)
なんで、>188さんがマニュアル作ってくれたなら是非ともアップしてほしい。
青マンモス本ですが
Part-1 Chapter-5 Templates
ってのがSmartyの事でした。
でも、本を買えない人もいるし
やっぱ>188さんには公開してほしいですね。
0200nobodyさん
02/04/02 22:29ID:???マニュアルには書いていないことが書いてありわかりやすくて良さそうです。
#まだちゃんと読んでいない。
が、マニュアルのように詳しくないので、どちらも必要と思われます。
>>188さん、私もきぼーんです。
0201188
02/04/02 23:11ID:R/mGCLUsこういう感じの事かなぁ、と憶測で。
例えば、左側にメニューがあって右側その内容が表示されるサイトの場合ですが、
まず全体のテンプレートを用意しておいて、
<!--body.tpl-->
{include file="header.tpl"}
<table>
<tr><td>
{include file="$left"}
</td><td>
{include file="$right"}
</td></tr>
</table>
{include file="footer.tpl"}
0202188
02/04/02 23:12ID:R/mGCLUsPHPスクリプトからは、
// index.php
$smarty->assign("left","menu.tpl");
$smarty->assign("right","welcome.tpl");
$smarty->display("body.tpl","welcome");
として最初のwelcomeページを表示し、
次にメニューをクリック、そのリンク先がnews.phpだった場合
// news.php
$smarty->assign("left","menu.tpl");
$smarty->assign("right","news.tpl");
$smarty->display("body.tpl","news");
というような事が出来ます。
Smartyのキャッシュを有効にしてると、同じテンプレート(body.tpl)からは
キャッシュファイルは1つしか生成されないので、news.phpに行っても
最初に表示されたwelcomeページがまた表示されてしまうんですが、
displayメソッドの第2引数に各ページでユニークなキャッシュIDを渡す事でそれを防げます。
えーと、マニュアルは、もともと公開する目的で作ってたんで。
もうちょっとしたら公開できると思います。
0203nobodyさん
02/04/02 23:22ID:6uavVYCo>>202
すごい!こんなことができるんですね。ありがとうございます。
この方法だと、ファイルオープンの処理をしなくてもOKですねぇ。
ちょっと、コーディングして試してみます!
マニュアル公開、嬉しいです。
#ちなみに、翻訳ソフトに通してから、修正ですか?一つ一つ翻訳ですか?
0204nobodyさん
02/04/03 03:36ID:w0fKgoFnすごいなsmartyって。
02051
02/04/03 08:25ID:n4eJMQ5/うは、そんな使い方出来るんですね!
と思ってよくマニュアル見たらしっかり書いてありましたね。
>>196さんゴメソ。
そろそろスレ違いな感もなきにしもあらずなのでSmartyでスレッド立てようと
思いますがいかがでしょう?
0208nobodyさん
02/04/03 15:50ID:w0fKgoFnこういう使い方マニュアルに書いてありました?
4回位読んだのになぁ。でも、1さんいろいろありがとう。
CSVなテキストからデータを読むには
>>194なやり方が必要と思われるので。
スレ立て賛成です。
Smarty使いが増えるかも。
Smarty使いって、スマーターって言うのかな?
あー、いやらしい。
0209nobody
02/04/04 15:43ID:???漏れも1年ちょい前から同じようなコンセプトで
PHP用のテンプレートクラスを作っています。
Smartyとの共通点は、いったんテンプレートファイルを
PHPスクリプトに変換することです。
Smartyとの違いはHTML側に書く特殊タグの種類を4種類に
限定することによって、デザイナーでもテンプレートを
書けるということです。
最近いろんなかたの助言によってとても安定&高速になってきました。
http://hoover.ktplan.ne.jp/kaihatsu/php/index.php
0211nobody
02/04/04 18:44ID:???現在、ベンチマーク比較のページを執筆中ですが、
単純なHello world 程度の小規模のサンプルで実験した場合、
僕のほうがSmartyの約3倍速いです。
(機能は僕のクラスのほうがシンプルなのですが。)
また、かの有名なFast Templateよりも1.5倍ぐらい速いです。
ベンチマークのページを書き終えたら、また直リンします。
0212nobodyさん
02/04/04 23:43ID:???返事はやいですね。ベンチすごいですね。大規模はどなんでしょ?
シンプルでとっつきやすいですし、なにより日本語なのがうれしいですね。
0213nobody
02/04/05 01:36ID:???使いこなしている人に最適化されたスクリプトを書いてもらわないと
テストの意味がないので、僕独りでは難しいです。
ただし、僕の作ったクラスにもSmartyのようにテンプレートを
パースした結果をファイルに保存して2回目以降はパースしないで
済むオプション機能を実装しています。
ので、その機能を使えば大きなテンプレートでも問題なく使える
とは思います。
0214nobodyさん
02/04/05 08:17ID:???大規模の比較は、一人では難しいとのことですが、開発はどのように行っているのですか?
webページを見ましたが、開発への参加募集はしていますか?
独自MLもないように見えます。PHP-users-MLベースで開発しているのでしょうか?
0215nobody
02/04/07 21:56ID:???また、罫線案をメールや掲示板でいただきます。
みなさまの協力の上に原始的な手法でかいはつをすすめているところです。
0216nobodyさん
02/04/07 22:27ID:hI7aRZHK利用されている頻度は少ないですが。
0217nobodyさん
02/04/08 02:53ID:jy9kIRbx今度クライアントに提案するシステム(イントラだが)は、
インターフェイスを、全面的にFlashで行こうかと。
0218nobody
02/04/08 03:39ID:???Smarty,Fast Templateよりもはやいです。
http://hoover.ktplan.ne.jp/kaihatsu/php_en/index.php?type=doc&txt=bench
0219nobodyさん
02/04/08 04:12ID:???ベンチマーク・テストありがとうございます!
すごいですね、これ。僕もsmartyでサイト作っているところなんで、HTMLテンプレート版も
作ってベンチマークしてみよっかなぁ。
0221nobodyさん
02/04/08 04:50ID:a4RoISwKわざわざ言語使用に反して分ける時点でもう破綻しちゃってるよNE!
0222nobodyさん
02/04/08 05:47ID:???0223nobodyさん
02/04/08 06:58ID:???HTMLにコードかけるってことが売りだったかもしれないけど
今となってはそれもどうでもいいような気が。
実際自分がコーディングしてて思うけど
やっぱりデザイン部分はわかれていたほうがやりやすいし。
まあ、適材適所。
当たり前のことだけど、使い分け出来ないやつは氏ってことで。
0225nobodyさん
02/04/08 13:27ID:+OQca7Zgうーん、今のご時世で速さを売りしても余り意味がないような気が…
どのみち機能が増えてエンジン自体が肥大していけば重くなるのは避けられないから
開発途上の今の状態でどれだけ速くても「うん、まあ当然だよね」としか言えない。
そもそもサーバサイドの処理が重くて悩むのって、PHP使ってる向きには少ないと思う。
それよかコードの記述性と可読性が他のテンプレートエンジンと比べてどう優れてるのか
教えて欲しい。
サイトをざっと見た限りでは、Smartyのサブセットの域を出てないように思う。
0226nobody
02/04/09 01:53ID:???ごめんなさい、いま直しました。
文法のほうについては責任をもてません。MS WORDで単語チェックした
だけです。
>>225
テンプレートの書きやすさが自分のものの特徴と思います。
プログラミングを知らないデザイナーにも5分程度で教える
ことができます。
0227nobodyさん
02/04/09 07:16ID:GMnXZpQb0228nobody
02/04/09 10:26ID:???http://hoover.ktplan.ne.jp/kaihatsu/php/index.php
0229nobodyさん
02/04/09 11:26ID:???実際の運用サイトの雛型とか、携帯での運用の場合のサンプルとかあると
とてもうれし。
0230nobody
02/04/09 12:09ID:???例のための例をあげてもなかなかわかりにくいだろうし、
実際の現場で使われているものになると中規模すぎて説明が
大変になります。
悩ましいところです。
僕のサイトでのPEARを使ったリスト表示サンプルはどうですか?
http://hoover.ktplan.ne.jp/kaihatsu/php/index.php?type=doc&txt=dbsample
0231188
02/04/09 12:51ID:???少し前にSmarty-GENERALで、Smartyを使って制作したサイトの
ソースが公開されてました。もしかしたら参考になるかも。
http://marc.theaimsgroup.com/?l=smarty-general&m=101761480326238&w=2
0232nobodyさん
02/04/09 13:38ID:???つか、>>228のあからさまな宣伝が鼻につく。宣伝したけりゃ自分でスレ立てれ。
0233188
02/04/09 13:57ID:???そーいえばここ、PHPスレじゃなかったですね。
やはりそろそろ、「デザインとロジックの分離 with PHP」みたいな
別スレ作って移動しますか?
あ、テンプレートって文字を入れたほうがいいのかも。
どうしましょうか、新スレのタイトル案。
0234nobodyさん
02/04/10 01:30ID:???テンプレートエンジン(PHP)とか?
話題自体smartyかHTMLテンプレートしかでないから、「smarty と HTMLテンプレート」とか。
デザインとロジックの分離自体あまりしてないような感じだし。
>>232
宣伝でもよいと思われ。それで稼ごうとかでなければ、むしろ歓迎。
0236nobodyさん
02/04/12 12:01ID:wN+/eHS+文句しか言わないでネタ振りもしない>>232に萎え。
0237nobodyさん
02/04/12 12:06ID:???腐るほどPHP関連のスレあるわけだし
0238nobodyさん
02/04/12 12:56ID:???っていうか、この板相変わらず
人少なそうだしね・・・。
0239nobodyさん
02/04/12 23:35ID:???「コンテンツとデザインの分離」関係の話は出尽くした感があるし。
0240nobodyさん
02/04/14 21:28ID:???thanx.
見てみました。さらっと見ましたが、色々なコードがありましたねぇ。
ちょっとどうなってるか、よくわからんので、じっくり見てみます。
0241nobodyさん
02/04/15 01:52ID:???Perlよりはマシにしろ、メンテしづらいし。
0245nobodyさん
02/05/03 02:55ID:???0246nobodyさん
02/05/03 15:46ID:???プラグインの幅が広がった感じ。
つーか、2.1.0に対応したほんにゃくマニュアル完成ヽ(´ー`)ノ
近日サイトage。(予定)
0247nobodyさん
02/05/04 00:15ID:???おおー!期待大。ありがたや、ありがたや。
http://smarty.php.net/ 完成しつつあるage.
0248narucy56 ◆wMOjCT4s
02/05/04 11:08ID:vTPrP0BIhttp://www.brain-tokyo.jp/~research/koutetu/manual/summary/gaiyou/gaiyo4.html
これはよさげ!!
0249nobodyさん
02/05/04 15:27ID:d0uaPpR2それだけ貼られてもよくわからん
どこがどういいのよ
0250nobodyさん
02/05/04 19:22ID:???ロクにリファレンスも揃ってないのに『どう』いいんだ?
他スレでもあんたのカキコみるけど、名無しに戻ってほしいコテハンに+1
0252nobodyさん
02/05/05 22:19ID:ITpza3EM条件によってテンプレートの一部を表示したりしなかったりもできるみたいだ。
http://kari.to/walrus/demo/demo4
説明は不親切だが、このデモのソースをよく読んだらわかってきた。
このテンプレート展開のやり方はいいかもしれない。
0253nobodyさん
02/05/06 04:38ID:G0jBHwomいくつか見てみたけど、 PHPだけでいいような気がしてならない
というより、PHPよりテンプレート用言語(笑)を覚える手間が
増えてるだけのような
デザインの変更に対する対応が容易になる。
仕事で明日までにデザイン変えてとか言われると
普通にPHPコード埋め込んでやってると死ぬよ・・・。
0255nobodyさん
02/05/08 12:20ID:???クリック一つでデザインを変られる…みたいな。
0256253
02/05/10 11:37ID:49KcfInZPHPでもあらかじめ注意して分けてれば、対応できるんじゃない?
functionとかincludeとかprependとか使えば。
強制的に分離させる(HTML中にはあまり難しいコードはかけない)ってところが
みそなのか?
PHPってもともとHTMLをちょっとだけ変える、とかに向いてるし
Smarty とかは[PHPもどき]にしか思えないんだけど
<?=$hoge ?> が {$hoge} になってるだけ、とおもえた。
HTMLタグの記号じゃないところがみそなのか?
結局 DreamWeaverとかで「プログラム素人にわかりやすく」編集できるようになってないと
分離してもあんまり意味ない気がする(というかプログラマの負担が大きすぎ)
>結局 DreamWeaverとかで「プログラム素人にわかりやすく」編集できるようになってないと
>分離してもあんまり意味ない気がする(というかプログラマの負担が大きすぎ)
激しく同意。
確かに、Smartyは少し方向性が違うな、と思った。
(少なくとも自分が求めているものとは、かな)
自分一人で作るにしても、テンプレートの方には
出来るだけコードっぽいもの書きたくない・・・。
0258nobodyさん
02/05/10 16:10ID:???プラグインによって+αの機能を多く実装してますが、
プログラム的なものは分岐式とループぐらいだと思います。
(これは他のテンプレートエンジンもそうですが)
ロジックが露出してしまいそうな部分は、カスタムタグを提供する事で
対処する事ができます。
#テンプレートに渡された連想配列からツリー形式のメニューを
#動的に生成しようとするとテンプレート側で分岐やループを駆使する事になるので、
#これを何とかするタグが作れないか考案中。
0259nobodyさん
02/05/10 21:51ID:/cNgrcGuPHPってもともとそういうものだからな。
0260nobodyさん
02/05/11 01:40ID:???なのにそのPHPでテンプレートを開発している奴らの目標は何かと問いつめたい
ただ、{?php xxxx ?}みたいなタグじゃない形で PHP が実行できると
便利な場合もあるなと思った
0261nobodyさん
02/05/11 04:38ID:???やっぱり、いかにプログラマとデザイナーの作業に分けるかでしょ。
じゃあ、PHPがHTML埋め込み型言語である理由って何?とか言われると
すごい小さいアプリなら、てっとり早くでっちあげるのには便利かなー、って
くらいしか思いつかない。
個人的には、PHPはHTML埋め込み"可能"言語であって、
スクリプト内にHTMLを埋め込もうと思えば、あくまでも"可能"であるって
ぐらいの認識かなぁ。
自分がずっとSmartyを推してる理由は、変数置換や繰り返し以外にも、
プラグイン追加による機能拡張や、テンプレートの出力を一部キャッシュして
パフォーマンスを上げたりする事が可能だから。
静的コンテンツを動的に生成したい時とか本当に便利。
■ このスレッドは過去ログ倉庫に格納されています