コンテンツとデザインの分離
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/27(日) 17:59ID:6pK8snWA<%〜%>やらprint文の嵐になってしまう。
「HTMLはHTML、プログラムはプログラムと完全に分離する方法はないものか。」
を話し合うスレッドです。
0002名無しさん@お腹いっぱい。
2001/05/27(日) 18:46ID:PLEgfcrY0003名無しさん@お腹いっぱい。
2001/05/27(日) 19:07ID:rsikQ/Ns0004名無しさん@お腹いっぱい。
2001/05/28(月) 06:25ID:QyrSaBKA<html>
<head>
<title>%%%%TITLE%%%%</title>
</head>
こんな感じのやつで。あとで%%%%TITLE%%%%を変数と置換。
>>2がいうとおり、このテンプレートを外部から読むか、内部に入れるかは自由。
0005名無しさん@お腹いっぱい。
2001/05/28(月) 11:45ID:/loPusng0006名無しさん@お腹いっぱい。
2001/05/28(月) 13:11ID:yQtftbTo0007名無しさん@お腹いっぱい。
2001/05/28(月) 13:19ID:XZfJcTNcあれ好きなんだけど。
0008名無しさん@お腹いっぱい。
2001/05/28(月) 14:39ID:9UeTzpncHTML::Templateの方が便利かな?
試してみよっと
00091
2001/05/28(月) 18:15ID:ucUrq.A6これは便利そうです。
#でも、最近はPerl使ってないんだよねぇ。
Javaあたりだとどんな方法があるでしょうか?
JSP + Beanでゴニョゴニョ。なんてまどろっこしい方法なんて誰も使いませんよね(^^;
自分はXMLCに注目しているのですが、HTMLの操作をすべてDOMで行わなければ
ならなかったりで、今ひとつ食指が動きません。
00101
2001/05/28(月) 19:17ID:ucUrq.A6PHP4テンプレートクラスライブラリ
ttp://zato.nu/tmpl/
これもタグ置換型ですね。
0011名無しさん@お腹いっぱい。
2001/05/29(火) 03:46ID:???なんか新しい言語を覚えなきゃいけない風でやなんだけど、実際どう?
友人が使ってるのをちょっと見ただけだからよくわからんが。
0012名無しさん@お腹いっぱい。
2001/05/29(火) 16:32ID:pjNjykSQを作る。
<oresama:valueOf name="foo" />
みたいなの。JSP だと結構うまいこと分離できるよ。多少の知識は
いるけどね。
0013名無しさん@お腹いっぱい。
2001/05/29(火) 18:53ID:oi4kyUtIテンプレートのタグ?それともメソッドの使い方?
どっちにしてもそれほど難しくないよ。
0014名無しさん@お腹いっぱい。
2001/05/29(火) 19:01ID:99dLOuS2http://search.cpan.org/doc/SAMTREGAR/HTML-Template-2.2/Template.pm
0015名無しさん@お腹いっぱい。
2001/05/30(水) 02:43ID:n7P1SKLk面白いと思った。
<td>名前</td><td><TMPL_VAR NAME=name></td>は
<td>名前</td><td><!-- TMPL_VAR NAME=name --></td>でもオッケー
0016Pマン
2001/05/30(水) 03:55ID:owRJ.xHAvar $htmldata ;
function HTMLClass( $htmlfile ) {
$htmldata = file( $htmlfile ) ;
$this->htmldata = "" ;
for( $ii=0; $ii<count( $htmldata ); $ii++ ) {
$this->htmldata .= $htmldata[$ii] ;
}
}
function output( &$data ) {
$str = $this->htmldata ;
reset( $data ) ;
while( list( $key, $val ) = each( $data ) ) {
$str = ereg_replace( "@" . $key . "@", $val, $str ) ;
}
echo $str ;
}
}
サンプルクラス。
$tmp = new HTMLClass( "a.html" ) ;
$repdat["data"] = "hogehoge" ;
$tmp->output( $repdat ) ;
@data@ を hogehoge に置換。もっと短く出来ると思うけど
適当にこんな感じなのはいかがでしょう?
0017名無しさん@お腹いっぱい。
2001/05/30(水) 22:36ID:aom7mYQI編集可能領域だけをPerlから変更するようにして使っているよ。
001815
2001/05/31(木) 09:31ID:DL2pokUMそれもいいね。
ファイルを1行ずつ読んで、Dreamweaverのコメントにマッチしたら
置換する、というやり方でしょ?
俺はPerLのHTML::TemplateでつかうHTMLファイルを
.tmplにして、それをDreamweaverで編集してた。
モジュールのインストールがいらないから、そっちの方が良いかも。
ただ、疑問なのは、例えばテンプレート内にあるフォームの中に
データを埋め込むとき。
<input type="text" name="sample" value="ここに埋め込む">
こんな時は、ソース編集でvalueにDreamweaver形式のコメントを
打つの?
0019ちょこら
2001/05/31(木) 16:26ID:zuNYGVLgお、俺もそれでやってる。
あと、>>18みたいなケースのときはコメントを置換するようにしてる。
<!-- hoge -->
を$hogeに置換すんの。
自分でライブラリ作ったから同じスクリプトを
テンプレートかえるだけで使いまわせていいよ。
002017
2001/05/31(木) 17:10ID:iOzcc6dM{$hogehoge;}と入れて、これを置換している。
あまりCGIが得意じゃないんで、恥ずかしいけど
↓こんな感じ。(藁
$postdata{ "hoge" } = $line[ 1 ];
$postdata{ "hoge2" } = $line[ 2 ];
print insertTemplate( './main2.htm', %postdata );
sub insertTemplate
{
local( $filename, %form ) = @_;
local( @lines, $line );
open( FILE, "< $filename" );
@lines = <FILE>;
close( FILE );
$line = join( '', @lines );
$line =~ s/\{\$(.*?)\}/$form{ $1 }/gs;
$line;
}
0021名無しさん@お腹いっぱい。
2001/06/15(金) 12:53ID:erdVYa/Yhttp://jakarta.apache.org/velocity/ymtd/ymtd.html
0022名無しさん@お腹いっぱい。
2001/06/15(金) 15:11ID:6nOh67xEsub template_expand{
my($filename) = @_;
my($text, $trans);
local $/;
local *IN;
local *echo = sub { $trans .= join "", @_; };
open IN, "< $filename" or return;
$text = <IN>;
$text =~ s{<\?perl\s+(.*?)\s*\?>}{ eval($1);$trans }egsm;
close IN;
return $text;
}
0023名無しさん
2001/06/21(木) 18:42ID:fZd90uYU0024名無しさん@お腹いっぱい。
2001/06/21(木) 18:51ID:???0025sage
2001/06/22(金) 16:25ID:FGxLT2Ws002625
2001/06/22(金) 17:03ID:???http://www.thewebmasters.net/php/
0027名無しさん@お腹いっぱい。
2001/06/22(金) 19:22ID:???0028名無しさん@お腹いっぱい。
2001/06/22(金) 22:06ID:QfivNl3kデザインとロジックの分離じゃなくて?
0029名無しさん@お腹いっぱい。
2001/06/22(金) 22:36ID:???ホントだ(w
0030名無しさん@お腹いっぱい。
2001/06/22(金) 22:51ID:NESmv9PY<html>
<head>
<title>%%%%TITLE%%%%</title>
</head>
の形のだと、HTMLしかわかんない俺とかでもデザインのカスタマイズがしやすい。
0031名無しさん@お腹いっぱい。
2001/06/29(金) 15:03ID:???php4だと配布サイトに載っているパッチをあてないと上手く動かなかったけど。
テンプレートを入れ子にできるので部品化・使い回しできるのがイイ。
00321
2001/06/29(金) 15:51ID:8ZDmK9dUSmartyもいいですよ。
>>10であげたテンプレートクラスが霞んでしまうほどの出来です。
(作者さん失礼…)
http://www.phpinsider.com/php/code/Smarty/
0033名無しさん@お腹いっぱい。
2001/07/02(月) 01:54ID:X8cwHu0Ahttp://www.linkclub.or.jp/~sawamur/perl/Perltag.pm
この「Perltag」はhtmlファイルにサブルーチンや
変数を直接書くことができます。
「Perltag.pm」。これこそがデザインとロジックの完璧な分離だと
思いますが皆さんはどう思いますか?
※ちなみに作者ではないです。
0034名無しさん@お腹いっぱい。
2001/07/02(月) 02:08ID:7NP//cxc分離?逆じゃない?
0035名無しさん@お腹いっぱい。
2001/07/02(月) 02:17ID:???eperl使うならPHPとかJSPで略。
0036名無しさん@お腹いっぱい。
2001/07/02(月) 02:22ID:GjfjvDNAむしろeRubyの方が(以下略
0037名無しさん@お腹いっぱい。
2001/07/02(月) 22:55ID:1TJMjc3ESmarty って仕様でかすぎない? ってあんまり見てないんだけど。
最初、自分で作ろうと思って、いろいろ他のを見たけど
よくよく考えたら、PHP でこれをすると、HTML 内に処理を書けるって
いう言語自体の優位性が無くなってしまうね。
00381
2001/07/03(火) 17:00ID:0lIoca6wSmartyではドキュメントにも書いてある通り、絶対にHTML内には
<?PHPタグは書かないことを前提に設計されてますので、Smartyの
設計者たちにとってはHTML内に処理を書くことのメリットよりも
デメリットの方が大きいと考えたのでしょう。
Smartyでは、HTMLテンプレートの解釈にかかるオーバーヘッドを
減らす為に、HTMLテンプレートをPHPにコンパイル(?)してから実行
しているのですが、面白い仕様ですね。(EnhydraのXMLCと同じ)
00391
2001/07/03(火) 17:05ID:0lIoca6wだーれも使ってないのかな。
それとも、テンプレートという考え方にはそれほど需要がない?
004037
2001/07/04(水) 01:02ID:???職場は Servlet のプロジェクト一色でフレームワークや EJB の
ことはみんなスキルがあるが、PHP や Perl のテンプレートの
ことを話したら、最初、JSP + タグライブラリと同じだという意見も
あったが、基本的にテンプレートはWYSWYG で編集できることを
目的としている点で方向性が違うということを言ったら
目から鱗という人間が多かった。
Java でも Jakarta のサブプロジェクトでテンプレートが
あるにはあるみたいだけど、あまり聞かないね。
需要はあると思うけどなぁ。
0041名無しさん@お腹いっぱい。
2001/07/06(金) 18:03ID:???Enhydra使えばまったく問題ナシ
00421
2001/07/06(金) 20:34ID:9bX.xTlkEnhydraの目玉であるXMLCですが、DOMってすごく煩雑なんですよね。
思想は理解できるのですが、現実とのギャップが埋め切れて無いような
気がします。DODSも然り。
あと、Javaサーブレットの場合は静的コンテンツの扱いが煮え切らない
部分がありますね。(これは自分が慣れてないせいかも)
0043名無しさん@お腹いっぱい。
2001/08/06(月) 01:12ID:of8Q373o0044ナナ萌え(゚д゚)ウマー
2001/08/07(火) 00:13ID:???%> 〜 <% にHTMLを書くと思ったほうが
ソースが綺麗になるよ☆
0045コメント無しさん
2001/08/07(火) 15:45ID:???@ITの記事に、「デザインとプログラムの分離を果たした開発の例」みたいな
のがあって、実際にそのサイト見てみたら
「凝ったデザイン+ほぼプログラムレス」
「しょぼいデザイン+プログラムたくさん」
っていう感じで、ほんとに分離できてるのか謎だった。
0046名無しさん@お腹いっぱい。
2001/08/07(火) 15:47ID:???っていうか分離してないじゃん。
0048ナナ萌え(゚д゚)ウマー
2001/08/08(水) 01:10ID:???DWの吐くASPのコードはえぐい。
特にDB操作関連、逝ってよし。
0049名無しさん@お腹いっぱい。
2001/08/08(水) 23:50ID:svrEP0ocCGIをCで書いて、ちょっとしたテクで出来た。
うちはデザインハウスだから、ASPとか嫌われるんだよね。
デザイナーが全部創りたがるから(w
0050名無しさん@お腹いっぱい。
2001/08/09(木) 00:15ID:???素人さんいらっしゃーい
0051ナナ萌え(゚д゚)ウマー
2001/08/09(木) 01:32ID:???どんなテク?
0052名無しさん@お腹いっぱい。
2001/08/09(木) 03:49ID:xE5lKX6Y0053名無しさん@お腹いっぱい。
2001/08/09(木) 15:40ID:???・・・・実際は>>4だと思うが。
0054名無しさん@お腹いっぱい。
2001/08/18(土) 02:38ID:bwvOb6EEjavaばんざい!
でもXSLって、結構ややこしーよね。
0055名無しさん@お腹いっぱい。
2001/08/20(月) 12:26ID:aorICbHMっちゅーか激しく汚いよね > XSL
なんでマークアップ言語をプログラミング言語にしたがるかなって感じ。
0056名無しさん@お腹いっぱい。
2001/08/22(水) 00:16ID:sfZGtIL6こんなもん売るなよ... ダサい上に高すぎ。
どんな会社かと思ったらSPAM送信ツール売ってる会社だったのね。
# ってかこっちも高すぎ(大笑い)
0057名無しさん@お腹いっぱい。
2001/08/23(木) 00:28ID:???>なんでマークアップ言語をプログラミング言語にしたがるかなって感じ。
これは意味わかんねーけど、XML加工ってパフォーマンス最悪だよな。
どうやったって遅くなる。
これってハードと回線の発展まつしか解決策はねーのか?
005855
2001/08/23(木) 10:53ID:696IfwN6ゼロからparsesするタイプだと結構そうなりますね。EnhydraとかはDOMツリーをキャッシングして使いまわしてパフォーマンス上の問題を回避しようとしてる。
何度もparseするコストを下げるために、DOMを永続化したりとparse結果を使いまわすことで大分回避できそうな気がする。
なんか昔のRDBMSを見てるみたいだ。確実にガンガン改善されてゆくんだろうけど、XMLを使うってことは富豪プログラミングの極みなのかも。
> これは意味わかんねーけど、
うん、ちょっと判りにくい言い回しかも。単に激しく読みにくいと感じているだけです。慣れていないだけなのかなぁ。
0059名無しさん@お腹いっぱい。
01/11/30 23:53ID:wIXh/fr50060名無しさん@お腹いっぱい。
01/11/30 23:59ID:???UltraDeveloperの方が数段上の機能を持ってるぞ。
ちゃんと研究してんのかな。(W
0061名無しさん@お腹いっぱい。
01/12/07 19:09ID:???Perl->MS-ASP->Servlet&JSP->WebLogic->WebObjectsという流れ(笑)
DB連携は楽チンつーか、極楽つーか、今まで漏れがやってきたことは、いったいなんだったんだろう?
0062名無しさん@お腹いっぱい。
01/12/25 00:00ID:NlMRZ7tXこのwalrusっていうの使ったことある人いる?
http://www.brain-tokyo.jp/~research/koutetu/walrus/index.html
なんかけっこうよさげなんだが、このデモがちょっとイタイ。
http://210.155.146.159/walrus/demo/
0063名無しさん@お腹いっぱい。
01/12/25 00:29ID:???なかなかイイんじゃねぇの?
っていうか、デモはシンプルなほうがいいと思うが。
派手なデモとか、そゆのがいいなら.NETとかヤレよ(ワラ
0064名無しさん@お腹いっぱい。
01/12/25 02:14ID:rO3objigこの発想、イイ(・∀・)ね。
ドリームウィーバーみたいなソフトでHTML使う人にとっても
こっちのほうが、HTML::Templateみたいな独自タグよりも使いやすいかなあ?
006562
01/12/25 10:24ID:w8XWyZY6デモでゴルゴとか言ってるとちょっとひいちゃうんだよな。
0066名無しさん@お腹いっぱい。
01/12/25 11:31ID:qH/nvcoMブラウザでプレビューしてもまともなのにならなかったりするのが欠点。
例) <a href="<tmpl_var var="url">">url</a>
>>62 みたいに、id="..." を使うってのはあたりかも。
でも if とかどうやって実装したらいいんじゃろ。
ロジックの分離って意味では、if は邪道なのかな。
ロジックとデザインの分離っていっても、
デザイン部がプログラムであってもいいわけだよね...?
■ このスレッドは過去ログ倉庫に格納されています