トップページphp
1001コメント342KB

【PHP】 Smarty 隔離スレ 【テンプレート】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/02/02(土) 00:21:09ID:6cKcKeTp
まぬあるhttp://www.smarty.net/manual/ja/
0081nobodyさん2008/05/03(土) 21:44:08ID:K4MBJC9r
templates_cの方がやばいだろ。
0082jtb2008/05/03(土) 21:57:29ID:???
自宅鯖を、レンタル鯖にするところまではできるんですが、ユーザーと、ftpパスワードの保存先ディレクトリどこにしようか迷ってるのですが、普通はどこに保存してますか?
0083nobodyさん2008/05/03(土) 22:08:53ID:???
public_html/secure/ftppass.txt
0084nobodyさん2008/05/03(土) 23:29:36ID:???
>>80
ローカル上のシステムって意味がわからんが。

ローカル鯖でも立てない限り、確認は無理。
コーダーに鯖立て強要(例えXAMPPでも)も厳しい。

OK?
0085nobodyさん2008/05/03(土) 23:33:32ID:???
開発中はbaseパス設定するなり置換するなり好きなようにすればいいじゃん
0086nobodyさん2008/05/03(土) 23:36:53ID:???
開発中はtemplateをhtdocs以下に置いてもいいじゃん
0087nobodyさん2008/05/04(日) 00:40:42ID:???
ローカルにサーバー立てられないやつは
この業界から消えていいよ。
0088nobodyさん2008/05/04(日) 01:46:37ID:???
XAMPPのサーバも立てられないコーダなんて糞過ぎ。まぁ、だからコーダなんだろうけど。いやしかし。

まぁ、俺なら*.tpl(*.htmlを含んでもいい)をtemplateディレクトリに、残りをhtdocsに置くスクリプトを用意するけどね。
0089nobodyさん2008/05/04(日) 02:21:16ID:???
XAMPPは地雷だろ・・・
0090nobodyさん2008/05/05(月) 19:52:01ID:???
ローカル環境作ってない奴ってバージョン管理やデプロイ手作業でやってる訳かな?
高校生バイトじゃあるまいし
0091nobodyさん2008/05/06(火) 12:34:25ID:???
デプロイを手作業でやらないって
何を使ってるの?
0092nobodyさん2008/05/06(火) 15:53:08ID:???
テスト環境ならsvn管理下に置いてsvn updateだけど
本番環境は手作業だなあ
0093nobodyさん2008/05/06(火) 22:40:24ID:???
分散ものに関わるとシェルなりでスクリプト走らすけど、ねえ
0094nobodyさん2008/05/07(水) 14:15:57ID:???
>>93
それもやるけど、しかしコンソールに生のHTML、しかもオーサリングソフトで作ったような多重テーブルとスクリプトが含まれる
テキストはもはや人間の読むものではない。
0095nobodyさん2008/05/09(金) 04:28:25ID:???
デプロイって標準的なやり方ってないのかな。
0096nobodyさん2008/05/09(金) 06:33:29ID:???
>>95
つFFFTP
0097nobodyさん2008/05/09(金) 12:07:52ID:???
>>59
自分はいつも
SetupSmarty
ってつけてる。
0098モモ子2008/05/09(金) 13:33:34ID:6V2WpTSb
テンプレートでいつも {$var|escape} みたいに escape つけるの
面倒だよねー?何かいい方法はないかなー?
0099nobodyさん2008/05/09(金) 14:51:49ID:???
? ? ?
0100nobodyさん2008/05/09(金) 16:58:56ID:???
>>98
・escape済の変数をassignする
・もしくはdefault_modifiersにescapeをいれとく

お好きなほうでどうぞ。
後者は特定の条件で不具合が発生するので、自力で修正する自信ないならお勧めしない。
0101nobodyさん2008/05/10(土) 08:34:44ID:???
なんで肝心な不具合とかが修正されないんだろ。
日本とは感覚が違ってて必要とされてないのかな。
0102nobodyさん2008/05/10(土) 09:46:22ID:???
Smarty3でも出ない限りは、このままなんじゃね?
0103nobodyさん2008/05/15(木) 19:11:15ID:ss9CEhce
JSmartyでもry
0104nobodyさん2008/05/19(月) 00:22:26ID:???
Smartyの残骸に悩むPHP土方の皆さんごきげんようw
0105nobodyさん2008/05/21(水) 08:04:10ID:???
普通に、外部モジュール化したHTMLテンプレートを読み込んで、
正規表現で独自タグを変数に置換して出力。
っていう古式ゆかしきCGI技じゃいかんの?
Smartyの3〜4倍は速いぞ。
0106nobodyさん2008/05/21(水) 08:06:14ID:???
まだこういう馬鹿いるのかw
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:???
>107がそう思ってるならその自分のやり方を貫けばいい
>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:???
おまいは全世界を統一したい野望でもあるのか?
統一すれば効率はいいだろうが、そんなツマラン世界は御免こうむる
0113nobodyさん2008/05/21(水) 13:44:07ID:???
>>109
おまいは、現場でコーディング規約とかに文句言うタイプだろ。
0114nobodyさん2008/05/22(木) 01:18:43ID:???
文句言うべきときは言うべきだと思う

//使うなって言われる噴飯モノの現場もあるしな
しかも理由が「/**/と入れ子にできちゃうから」という意味不明具合
0115nobodyさん2008/05/22(木) 01:48:09ID:???
>>112
趣味と仕事を兼ねるからツマランのじゃね?
仕事と割り切って出世する事を考えていこうよ。
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:hyBgIur5
Smartyはプロの世界でもよく使われるんですか?
0119nobodyさん2008/06/01(日) 17:37:18ID:???
SmartyのないPHPなんてレモンのないコーヒーですよ。
0120nobodyさん2008/06/01(日) 18:54:42ID:???
なぬ?
0121nobodyさん2008/06/02(月) 03:03:23ID:???
Smartyを始めたら背が5cm伸びて、彼女が出来ました。
0122nobodyさん2008/06/02(月) 03:08:23ID:???
OpenPNEが一日も早くSmarty外ししてくれることを願うよ。つうか俺がコミットすりゃいいのかな。
0123nobodyさん2008/06/02(月) 04:38:00ID:???
>>122
そんなことしたら背が縮んで、彼女が離れていくじゃないか。
0124nobodyさん2008/06/02(月) 05:30:17ID:???
嫁と分かれたいケースに最適ですかね
0125nobodyさん2008/06/02(月) 05:53:12ID:???
>>124
リンクしてコンパイル済みなら分離できません
0126nobodyさん2008/06/02(月) 06:36:26ID:???
ライブラリと生活モデル、および資産の依存性を分離して
再コンパイルするしかない訳ですね。
わかります。
0127nobodyさん2008/06/02(月) 18:15:50ID:???
再婚パイルをお考えですか。
0128nobodyさん2008/06/03(火) 04:20:49ID:???
GirlFriend Pluginがファイル破損しちゃいました。
どこで再配布してますか?
0129nobodyさん2008/06/03(火) 08:16:30ID:???
新しいPluginは古いものと互換性がないので、
関連ファイルは全部削除しないとダメだよ
0130nobodyさん2008/06/03(火) 14:28:35ID:???
まさかこのスレでふっきれるとはおもわなんだ。
貴様らありがとう。
0131nobodyさん2008/06/04(水) 22:39:07ID:???
ウチ、すごいぞw
俺が来るまで何年もプログラミング初心者が入ってきては辞めての繰り返しだったみたいで、
機能つけたしが全てSmarty設置で実現されてるwww
サイトのいたるところにvarだのbinだのがあるwwww
勘弁してくれwwww
0132nobodyさん2008/06/04(水) 22:53:01ID:???
日本語でおk
0133nobodyさん2008/06/05(木) 12:25:23ID:???
業務でSmartyを使っているのか...
0134nobodyさん2008/06/05(木) 13:57:52ID:???
>>134
そりゃ背が伸びて彼女ができるなら使うだろう。
0135nobodyさん2008/06/05(木) 14:50:40ID:???
業務だからこそ使うんじゃないの?
逆に趣味とかじゃ使いたくない。
0136nobodyさん2008/06/05(木) 21:38:50ID:???
趣味でPHPはないわ。
俺は半年ほど休んでた時期に趣味で遊んだのはSchemeだけだった。
実務(共同作業)がSchemeでも進められるなら、迷わずこれを選ぶ。
しかし近年の現実はどいつもこいつもPerlすら宇宙語だからな。PHP一択にならざるをえない。
0137nobodyさん2008/06/06(金) 13:01:48ID:???
PHP + Smarty を使って、お客専用のCMSモドキより、
MovableType4.1 + αカスタマイズのCMSモドキの方が、お客には受けが良かった上に見積もりも良かった!

業務でSmartyを使うなら、隠れて使いたい
0138nobodyさん2008/06/06(金) 21:00:18ID:???
そりゃデザインのおかげじゃねーの
0139nobodyさん2008/06/06(金) 22:14:37ID:???
見た目以外に判断材料があるやつなんて、最低でもPHPを書けるレベル以上のやつに限られる。
0140nobodyさん2008/06/06(金) 23:39:38ID:???
>>139
いや、判断材料としては操作感も重要だけど、使う側と作る側のロジックが違うから
どう考えても不条理な操作が要求されたりするんだよなあ。

もちろん使う人のために作るんだからお客様優先なわけだが、
将来コケるのが目に見えてるから困る。

0141nobodyさん2008/06/06(金) 23:48:35ID:astBuURj
現在のバージョンは、
・セールスレターテンプレート集(68通)
・売れるセールスレターの書き方
・ダイレクトメールワークシート
・穴埋め式Eメールテンプレート(14通)
・究極のセールスレターツールBOX
など、合計で500ページ近いパッケージとCDROMが
セットになっています。


ただ、この無料お試しはだいぶコストがかかるらしいので
500個の限定だそうです。



興味があればこちらをクリックしてください。
http://www.123marketing.jp/yanik/indextrial.php?jvcd=16797

0142nobodyさん2008/06/06(金) 23:49:48ID:???
>>140
それはあなたが低スキルだからでしょうね。コケて逃亡するのはあなたではないでしょうか。
0143nobodyさん2008/07/10(木) 05:42:24ID:NxX5vAdg
Smartyで、テンプレート内で送られてきた変数の簡単な計算できませんか?

{$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
■ MySmarty.class.php
<?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" );
?>

これは仕様なの?
01471462008/07/21(月) 01:41:40ID:8uak49aQ
MySmarty.class.phpで半角空白がなくなっていますが、
2chにコピペするときの変換ミスで、実際は正常に動いています。
0148nobodyさん2008/07/21(月) 01:47:07ID:???
仕様
01491462008/07/21(月) 01:52:13ID:???
>>148
ええ!? マジすか……。
それじゃ、ディレクトリが多数ある場合は、
全てのディレクトリにMySmarty.class.phpが必要ってこと?
プラグイン自作してどうにかなる話じゃないですよ?w
0150nobodyさん2008/07/21(月) 02:24:44ID:???
お前は何を言ってるんだ
0151nobodyさん2008/07/21(月) 03:18:45ID:???
>>150
いや、文字通り、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:???
>>152
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:???
PHPは実行されてるファイルの位置がカレントディレクトリになるから……
0156nobodyさん2008/07/24(木) 21:30:17ID:???
$template_dir
これは、デフォルトのテンプレートディレクトリの名前です。 ファイルのインクルード時にリソースの種類を指定しなかった場合は、
このディレクトリから探します。デフォルトは ./templates で、 これは、実行しているスクリプトと
同じ場所にある templates/ ディレクトリを探すということです。

という文章からすると「実行しているスクリプト」が基準になるということみたいだな。
0157nobodyさん2008/08/01(金) 21:13:05ID:???
Smarty廃れましたなぁ。
そんなことより、PHPもJSPのように
カスタムタグが使えたらいいのにね。
0158nobodyさん2008/08/02(土) 02:29:09ID:???
廃れてないけど
0159nobodyさん2008/08/02(土) 19:51:20ID:???
スレ立て半年でこの程度の伸びだったら、十分廃れてるだろw
ぶっちゃけ、必要な機能だけ絞り込んで自分で作った方がいい。
0160nobodyさん2008/08/02(土) 19:56:13ID:???
いいというのはどういう点で?
0161nobodyさん2008/08/03(日) 10:51:13ID:4+uLL3BX
でも、テンプレートって言えば、もうSmartyでしょ。
0162nobodyさん2008/08/03(日) 11:32:25ID:???
テンプレート機能だけ使いたいならSmartyを使うか、生phpで済ませる
各種FW使うなら同梱されてるテンプレートエンジンを使う
0163nobodyさん2008/08/04(月) 11:49:55ID:???
「index.php#xxx」

smartyで↑の「xxx」を取得する方法ってありますか?
0164nobodyさん2008/08/04(月) 22:09:03ID:???
>>163
例で示されたxxxの部分は通常サーバ側には送信されることはない。
なのでサーバサイドで動いているsmartyから取得することは不可能。
0165nobodyさん2008/08/05(火) 16:01:03ID:???
>>164
ぎょぎょ!
確かにその通りでした。
0166nobodyさん2008/08/06(水) 21:40:18ID:???
仮に送信されるにしても、smartyじゃなくPHPから取ると思うんだけどなあ。
0167nobodyさん2008/08/07(木) 20:08:18ID:???
テンプレ内で{}使う方法ド忘れした誰かHELP
0168nobodyさん2008/08/07(木) 20:16:02ID:???
http://www.smarty.net/manual/ja/language.function.ldelim.php
0169nobodyさん2008/09/04(木) 10:40:28ID:???
{include}
で出力された結果が複数行にわたる場合、全ての行に対してインデントさせるにはどうすればいいですか?
{"\t"}{include}
とかしても先頭の行だけしかインデントされなくて
0170nobodyさん2008/09/04(木) 11:33:28ID:???
全部divで囲んでCSSで
01711692008/09/04(木) 12:15:47ID:???
ああ、すみません、出力されたソースでの話です・・・
0172nobodyさん2008/09/04(木) 12:25:57ID:???
変数に格納してindentかけるとか?
01731692008/09/04(木) 21:08:05ID:???
すみません、変数の宣言はphpファイル側でするものですか?もしそうなら、
配布されているウェブアプリがsmartyを使っているのですが
配布ファイルのバージョンアップの際に面倒なことにならないかな・・・と
というかphpはわからなくて
smartyも触るのは初めてでマニュアルを見ながら触っているのですが・・・

インデントするのも難しいですね
レスしてくれた方々、ありがとうございますm(_ _)m
0174nobodyさん2008/09/04(木) 21:11:12ID:???
Smartyの前にやるべきことが・・・
0175nobodyさん2008/09/04(木) 21:31:16ID:???
デザイナにはロジックを触らせないコンセプトのSmarty
01761692008/09/05(金) 00:54:49ID:???
すみません、includeのassignでできました
レスしてくれた方々、ありがとうございますm(_ _)m
0177nobodyさん2008/09/24(水) 00:32:25ID:KMdxurbq
JSPのカスタムタグがPHPにもあればいいのにな。
タグとクラスが一対一になってるのが素晴らしい。
0178nobodyさん2008/09/25(木) 00:09:46ID:lXgzxRnB
すみません、教えてください。

<p>名前:{$name}</p>

テンプレートに上記のような記述をしたのですが、
「名前:」の部分が化けてしまいます。
テンプレートファイルはEUCで保存してあります。
原因としてはどのような事が考えられますか?
0179nobodyさん2008/09/25(木) 01:02:44ID:???
>>178
テンプレートをコンパイルしたあとのPHPファイルを見てみれば?
01801782008/09/25(木) 02:06:16ID:???
>>179
見ましたが、既に化けてます・・・
SmartyがEUC以外の文字コードで
テンプレートを処理しているということでしょうか?
■ このスレッドは過去ログ倉庫に格納されています