コンテンツとデザインの分離
■ このスレッドは過去ログ倉庫に格納されています
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デザインとロジックの分離じゃなくて?
■ このスレッドは過去ログ倉庫に格納されています