【PHP】 Smarty 隔離スレ 【テンプレート】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/02/02(土) 00:21:09ID:6cKcKeTp0065nobodyさん
2008/04/28(月) 18:33:55ID:???0066ムームー
2008/05/02(金) 02:13:12ID:xWzxYhLM「このディレクトリをwebサーバのドキュメントルート下に置く事を推奨しません。」
と書いてあるんだけど、根拠がわかる人いる?
0067nobodyさん
2008/05/02(金) 02:14:59ID:???0068nobodyさん
2008/05/02(金) 02:26:22ID:???おまけに内部のデータ構造も推測できちゃう作りでしたとかやる奴がいるからだろう
0069ムームー
2008/05/02(金) 03:55:53ID:xWzxYhLM> 逆になぜ置く必要があるのか
テンプレートを別ディレクトリに配置すると、保守性が悪いから。
>>68
> httpdの設定ミスってテンプレートだだ漏れ
> おまけに内部のデータ構造も推測できちゃう作りでした
テンプレートが見られても、あんまり危険性がないと思うんだけどな。
escape し忘れて XSS される、ぐらいかな。
でも、そんなのはテンプレート見るまでもなく、
実際に入力してみれば escape していないことはすぐ分かるしさ。
0070nobodyさん
2008/05/02(金) 08:18:26ID:???もしくはせめてaccessでも使え
0072nobodyさん
2008/05/02(金) 13:35:15ID:???推奨であってドキュメントルート下だと動作しない訳じゃないんだし
俺はレンタルサーバとかでドキュメントルートにしか置けない場合を除いて別ディレクトリに置くけどな
0073nobodyさん
2008/05/02(金) 14:11:27ID:???0074nobodyさん
2008/05/02(金) 14:25:29ID:???0075nobodyさん
2008/05/02(金) 14:31:06ID:???ローカルで管理しづらいって、さっぱりわからんなあ
例えばドキュメントルートの一つ上の階層にテンプレートを置くとして
そこを基点に管理するだけの話だと思うんだが
0076nobodyさん
2008/05/02(金) 17:21:49ID:???0077nobodyさん
2008/05/02(金) 18:53:27ID:???HTMLコーディングしてる最中にプレビュー出来ないってのが面倒だって事だろ?
0079nobodyさん
2008/05/03(土) 19:44:56ID:???templates/index.html
htdocs/image.jpg
というファイル構成だと、
ローカルファイル上で画像チェックをする術が無いって事だよ。
これは、コーダー観点で見ると致命的に面倒。
htdocs以下をテンプレートディレクトリにする事で解消されるから、利便上htdocsに置く人達がいるわけだ。
templatesディレクトリに画像とか置いちゃう方法でもいいんだけど。
0080nobodyさん
2008/05/03(土) 20:00:42ID:???0081nobodyさん
2008/05/03(土) 21:44:08ID:K4MBJC9r0082jtb
2008/05/03(土) 21:57:29ID:???0083nobodyさん
2008/05/03(土) 22:08:53ID:???0084nobodyさん
2008/05/03(土) 23:29:36ID:???ローカル上のシステムって意味がわからんが。
ローカル鯖でも立てない限り、確認は無理。
コーダーに鯖立て強要(例えXAMPPでも)も厳しい。
OK?
0085nobodyさん
2008/05/03(土) 23:33:32ID:???0086nobodyさん
2008/05/03(土) 23:36:53ID:???0087nobodyさん
2008/05/04(日) 00:40:42ID:???この業界から消えていいよ。
0088nobodyさん
2008/05/04(日) 01:46:37ID:???まぁ、俺なら*.tpl(*.htmlを含んでもいい)をtemplateディレクトリに、残りをhtdocsに置くスクリプトを用意するけどね。
0089nobodyさん
2008/05/04(日) 02:21:16ID:???0090nobodyさん
2008/05/05(月) 19:52:01ID:???高校生バイトじゃあるまいし
0091nobodyさん
2008/05/06(火) 12:34:25ID:???何を使ってるの?
0092nobodyさん
2008/05/06(火) 15:53:08ID:???本番環境は手作業だなあ
0093nobodyさん
2008/05/06(火) 22:40:24ID:???0094nobodyさん
2008/05/07(水) 14:15:57ID:???それもやるけど、しかしコンソールに生のHTML、しかもオーサリングソフトで作ったような多重テーブルとスクリプトが含まれる
テキストはもはや人間の読むものではない。
0095nobodyさん
2008/05/09(金) 04:28:25ID:???0098モモ子
2008/05/09(金) 13:33:34ID:6V2WpTSb面倒だよねー?何かいい方法はないかなー?
0099nobodyさん
2008/05/09(金) 14:51:49ID:???0100nobodyさん
2008/05/09(金) 16:58:56ID:???・escape済の変数をassignする
・もしくはdefault_modifiersにescapeをいれとく
お好きなほうでどうぞ。
後者は特定の条件で不具合が発生するので、自力で修正する自信ないならお勧めしない。
0101nobodyさん
2008/05/10(土) 08:34:44ID:???日本とは感覚が違ってて必要とされてないのかな。
0102nobodyさん
2008/05/10(土) 09:46:22ID:???0103nobodyさん
2008/05/15(木) 19:11:15ID:ss9CEhce0104nobodyさん
2008/05/19(月) 00:22:26ID:???0105nobodyさん
2008/05/21(水) 08:04:10ID:???正規表現で独自タグを変数に置換して出力。
っていう古式ゆかしきCGI技じゃいかんの?
Smartyの3〜4倍は速いぞ。
0106nobodyさん
2008/05/21(水) 08:06:14ID:???0107nobodyさん
2008/05/21(水) 08:12:24ID:???ちゃんとロジックとデザイン分離できてるじゃん。
そもそもPerlとか他の言語のテンプレートエンジン全般に言えるけど、
こういうシンプルな目的だったのに、
万人の要望に応えるうちに無駄に富豪化して、
ムーアの法則頼りで突っ走ってるのが、今のテンプレートエンジンだろ。
0108nobodyさん
2008/05/21(水) 09:50:33ID:???デザインとロジックの分離レベルにもよるけど、
ビューで処理すべきロジックもあるって事だ。
if
foreach
include
|escape
あたりは最低限必須だろ。
0109nobodyさん
2008/05/21(水) 10:14:55ID:???>108がそう思ってるならその自分のやり方を貫けばいい
自分の考えを押し付けるのが一番うざい。
0110nobodyさん
2008/05/21(水) 12:49:26ID:???もっとも>>108の挙げてる機能くらいは無いと確かに困るというか
ロジック側でHTMLを吐く必要性が出てくるので嫌
0111nobodyさん
2008/05/21(水) 12:49:45ID:???実装の統一化は今後の開発効率を左右する重要な課題。
ただ、Smartyに何かが足りないのは確か。
結局どこかで独自に使い方を工夫しないといけない場合が出る。
特にescape。
0112nobodyさん
2008/05/21(水) 13:06:06ID:???統一すれば効率はいいだろうが、そんなツマラン世界は御免こうむる
0114nobodyさん
2008/05/22(木) 01:18:43ID:???//使うなって言われる噴飯モノの現場もあるしな
しかも理由が「/**/と入れ子にできちゃうから」という意味不明具合
0116nobodyさん
2008/05/22(木) 02:33:05ID:???いくらコード練っても、中/印/ベトナム経由の「安いだけの人材」がケツ噛み続ける時代
会社としてのポストがなくなる
「MFC超得意だからMSなくなるまでは困らん」と言ってた先輩が潰れて実家の本屋継いだぜ
「PHP? 新し物好きは迷惑だね。perlで一生食っていけるよ」と豪語してた
馬鹿女は、アルコールで精神病院を経て休職後、そのまま元彼と寿退社してリタイアだ。
一番頼れる仲間は某MTAのドキュメントにも名前を連ねる我が社の誇りだった人
今はビル屋上緑化を主とする企業のヒラ営業に転職しちまったぜ。
毎日PHPに限らずコード書かされてて思うが、
なんかそういうドロップアウトした筈の彼らがみんな幸せそうに見えるんだ
なんでなんだろう
なんの話だっけ
0117nobodyさん
2008/05/22(木) 12:54:15ID:???0118nobodyさん
2008/06/01(日) 12:02:10ID:hyBgIur50119nobodyさん
2008/06/01(日) 17:37:18ID:???0120nobodyさん
2008/06/01(日) 18:54:42ID:???0121nobodyさん
2008/06/02(月) 03:03:23ID:???0122nobodyさん
2008/06/02(月) 03:08:23ID:???0124nobodyさん
2008/06/02(月) 05:30:17ID:???0126nobodyさん
2008/06/02(月) 06:36:26ID:???再コンパイルするしかない訳ですね。
わかります。
0127nobodyさん
2008/06/02(月) 18:15:50ID:???0128nobodyさん
2008/06/03(火) 04:20:49ID:???どこで再配布してますか?
0129nobodyさん
2008/06/03(火) 08:16:30ID:???関連ファイルは全部削除しないとダメだよ
0130nobodyさん
2008/06/03(火) 14:28:35ID:???貴様らありがとう。
0131nobodyさん
2008/06/04(水) 22:39:07ID:???俺が来るまで何年もプログラミング初心者が入ってきては辞めての繰り返しだったみたいで、
機能つけたしが全てSmarty設置で実現されてるwww
サイトのいたるところにvarだのbinだのがあるwwww
勘弁してくれwwww
0132nobodyさん
2008/06/04(水) 22:53:01ID:???0133nobodyさん
2008/06/05(木) 12:25:23ID:???0135nobodyさん
2008/06/05(木) 14:50:40ID:???逆に趣味とかじゃ使いたくない。
0136nobodyさん
2008/06/05(木) 21:38:50ID:???俺は半年ほど休んでた時期に趣味で遊んだのはSchemeだけだった。
実務(共同作業)がSchemeでも進められるなら、迷わずこれを選ぶ。
しかし近年の現実はどいつもこいつもPerlすら宇宙語だからな。PHP一択にならざるをえない。
0137nobodyさん
2008/06/06(金) 13:01:48ID:???MovableType4.1 + αカスタマイズのCMSモドキの方が、お客には受けが良かった上に見積もりも良かった!
業務でSmartyを使うなら、隠れて使いたい
0138nobodyさん
2008/06/06(金) 21:00:18ID:???0139nobodyさん
2008/06/06(金) 22:14:37ID:???0140nobodyさん
2008/06/06(金) 23:39:38ID:???いや、判断材料としては操作感も重要だけど、使う側と作る側のロジックが違うから
どう考えても不条理な操作が要求されたりするんだよなあ。
もちろん使う人のために作るんだからお客様優先なわけだが、
将来コケるのが目に見えてるから困る。
0141nobodyさん
2008/06/06(金) 23:48:35ID:astBuURj・セールスレターテンプレート集(68通)
・売れるセールスレターの書き方
・ダイレクトメールワークシート
・穴埋め式Eメールテンプレート(14通)
・究極のセールスレターツールBOX
など、合計で500ページ近いパッケージとCDROMが
セットになっています。
ただ、この無料お試しはだいぶコストがかかるらしいので
500個の限定だそうです。
興味があればこちらをクリックしてください。
http://www.123marketing.jp/yanik/indextrial.php?jvcd=16797
0143nobodyさん
2008/07/10(木) 05:42:24ID:NxX5vAdg{$value + 3}など。
試してみたのですが、{$value}の値がそのまま出力されます
0144nobodyさん
2008/07/10(木) 09:09:32ID:???0145nobodyさん
2008/07/10(木) 21:23:41ID:???0146nobodyさん
2008/07/21(月) 01:40:20ID:8uak49aQ<?php
require_once("Smarty/Smarty.class.php");
classMySmartyextendsSmarty {
publicfunction__construct() {
$this->Smarty();
$this->template_dir="./data/templates";
$this->compile_dir="./data/templates_c";
}
}
?>
■ test.php(MySmarty.class.php と同じディレクトリ) → 正常に動作
<?php
require_once( './MySmarty.class.php' );
$o_smarty = new MySmarty();
$o_smarty->display( "main.tpl" );
?>
■ dir.php(MySmarty.class.php の直下のフォルダ) → エラー
Warning: Smarty error: unable to read resource: "main.tpl" in C:\hoge\Smarty\Smarty.class.php on line 1092
<?php
require_once( '../MySmarty.class.php' );
$o_smarty = new MySmarty();
$o_smarty->display( "main.tpl" );
?>
これは仕様なの?
0147146
2008/07/21(月) 01:41:40ID:8uak49aQ2chにコピペするときの変換ミスで、実際は正常に動いています。
0148nobodyさん
2008/07/21(月) 01:47:07ID:???0149146
2008/07/21(月) 01:52:13ID:???ええ!? マジすか……。
それじゃ、ディレクトリが多数ある場合は、
全てのディレクトリにMySmarty.class.phpが必要ってこと?
プラグイン自作してどうにかなる話じゃないですよ?w
0150nobodyさん
2008/07/21(月) 02:24:44ID:???0151nobodyさん
2008/07/21(月) 03:18:45ID:???いや、文字通り、Smarty.class.phpを継承した設定済みのMySmarty.class.phpを
直下以外のディレクトリに置くとtemplatesディレクトリの認識がしなくなるのが仕様だったら、
多数のディレクトリ分けしてると超大変だよね、って言ってるんだけど。
>>146が仕様で間違いないのなら、俺は何か間違ったこと言っているか?
0152nobodyさん
2008/07/21(月) 09:54:38ID:???dir.phpからみて
$this->template_dir="./data/templates";
$this->compile_dir="./data/templates_c";
このディレクトリはどこでしょう?
0153nobodyさん
2008/07/21(月) 12:55:50ID:???dir.phpは、MySmarty.class.phpを呼び出しているだけで、
dataディレクトリは、MySmarty.class.phpから見た相対パスだから、
dir.phpから見たdataディレクトリの場所は、関係ないと思うけど。
そもそも、なぜか絶対パスを受け付けてくれんのよね。エラーになる。
0154nobodyさん
2008/07/22(火) 08:41:57ID:???こっちのほうが深刻というか根幹な問題をかかえてる気がするのだが・・・
0155nobodyさん
2008/07/24(木) 14:01:26ID:???0156nobodyさん
2008/07/24(木) 21:30:17ID:???これは、デフォルトのテンプレートディレクトリの名前です。 ファイルのインクルード時にリソースの種類を指定しなかった場合は、
このディレクトリから探します。デフォルトは ./templates で、 これは、実行しているスクリプトと
同じ場所にある templates/ ディレクトリを探すということです。
という文章からすると「実行しているスクリプト」が基準になるということみたいだな。
0157nobodyさん
2008/08/01(金) 21:13:05ID:???そんなことより、PHPもJSPのように
カスタムタグが使えたらいいのにね。
0158nobodyさん
2008/08/02(土) 02:29:09ID:???0159nobodyさん
2008/08/02(土) 19:51:20ID:???ぶっちゃけ、必要な機能だけ絞り込んで自分で作った方がいい。
0160nobodyさん
2008/08/02(土) 19:56:13ID:???0161nobodyさん
2008/08/03(日) 10:51:13ID:4+uLL3BX0162nobodyさん
2008/08/03(日) 11:32:25ID:???各種FW使うなら同梱されてるテンプレートエンジンを使う
0163nobodyさん
2008/08/04(月) 11:49:55ID:???smartyで↑の「xxx」を取得する方法ってありますか?
0164nobodyさん
2008/08/04(月) 22:09:03ID:???例で示されたxxxの部分は通常サーバ側には送信されることはない。
なのでサーバサイドで動いているsmartyから取得することは不可能。
■ このスレッドは過去ログ倉庫に格納されています