のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,643,834人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - string_format + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
401 : nobodyさん - 2009/01/20(火) 18:40:01 ID:??? (-27,-30,-67)
PHP側で連想配列のキーにピリオドを含む使った

$foo['bar.baz']='hoge';

のような変数をSmarty側にassignした場合、
テンプレ側ではどういう表現をすればアクセスできるの?

{$foo[bar.baz]}

はだめだったんだけど、何か他の表現方法あるのかな?
403 : nobodyさん - 2009/02/03(火) 21:30:12 ID:??? (+23,-30,+0)
phpからdisplayしようとすると

Warning: preg_match() [function.preg-match]: Compilation failed: repeated subpattern is too long at offset 18454 in /usr/share/pear/Smarty/libs/Smarty_Compiler.class.php on line 454

Fatal error: Smarty error: [in main.tpl line 1]: syntax error: unrecognized tag: include file="header.tpl" (Smarty_Compiler.class.php, line 455) in /usr/share/pear/Smarty/libs/Smarty.class.php on line 1092

こんなエラーが出てしまうんですけども、原因を教えていただけないでしょうか。
ちなみにmain.tplの中身はこんなのです。

{{include file="header.tpl"}}
{{foreach from=$include_files item=file}}
{{include file="$file"}}
{{/foreach}}
{{include file="footer.tpl"}}
404 : nobodyさん - 2009/02/03(火) 21:32:58 ID:??? (+20,+29,-5)
なんで二重括弧なの?
405 : nobodyさん - 2009/02/03(火) 21:41:22 ID:??? (-24,-30,-66)
>>404

Smarty.class.phpを継承したクラスも使ってるので、本家との差別化のためです。

継承したほうは
$this->left_delimiter = '{{';
$this->right_delimiter = '}}';
を設定してあるので大丈夫だと思うんですけども。

ちなみに括弧ひとつにしても同じエラー出ます。
406 : 403 - 2009/02/03(火) 21:51:04 ID:??? (-27,-30,-76)
環境書き忘れました

CentOS 5.2 Kernel 2.6x
PHP 5.1.6

preg_matchでSmartyのタグ探して処理させてるから
タグ探しに失敗したSmartyがそんな命令ねーよって怒ってるんですかね。
407 : nobodyさん - 2009/02/03(火) 21:53:11 ID:??? (+13,+15,-3)
試してみたいから再現できるコード出してくれ
410 : nobodyさん - 2009/02/04(水) 01:57:17 ID:??? (+22,+29,-15)
当然ながら私の環境では再現しません
411 : 403 - 2009/02/04(水) 19:44:57 ID:??? (+32,+29,-49)
既にSmartyが実働してるサーバからSmarty関連のファイルを引っ張ってきて
インストールしたら正常に動きました。
公式の最新バージョンはバグ有りなんですかね?
何はともあれ、お騒がせしました。
412 : nobodyさん - 2009/02/04(水) 22:30:27 ID:??? (+27,+29,-9)
自分の環境で試してくれる回答者放置とか最悪な質問者だな
413 : 403 - 2009/02/05(木) 07:13:36 ID:??? (+32,+29,-30)
大変失礼しました。
わざわざ確認していただき、ありがとうございます。
お礼?になるか分かりませんが、問題のあった方のSmartyをアップしておきます。
libsの中身を入れ替えるだけで多分再現できると思います。

http://www1.axfc.net/uploader/File/so/18050
414 : nobodyさん - 2009/02/05(木) 08:52:10 ID:??? (+20,+27,+0)
問題のあったファイルがお礼とかw
415 : nobodyさん - 2009/03/03(火) 15:33:16 ID:??? (-29,-30,-77)
値がある場合はstring_formatの%0.1,なかった場合は にしたいんだけど
{var|default:' '|string_format:'%0.1'}
だと値が無い場合には全て0.0になってしまうし、
{var|string_format:'%0.1'|default:' '}
だと値が無い場合にnoticeが出てしまって両立できないんだけど、
どうしたらいいかな?
417 : nobodyさん - 2009/03/05(木) 19:41:11 ID:??? (-27,-30,-149)
CakePHP1.2にSmartyView入れて使い始めてみたんだけど
$form->createに$optionsを引数で渡すと出力されないのは指定の仕方が悪いのかま?

{$form->create('Modelhoge', array('action'=>'Actionhoge'))}

モデルだけ指定すると出力されるんだが、、
419 : nobodyさん - 2009/03/12(木) 20:22:12 ID:??? (+25,+29,-31)
昨日テンプレートエンジンというものを知って調べたが、こんなもん速度と品質犠牲に使う本気で奴バカすぎ。ヒアドキュメントで十分すぎ。
420 : nobodyさん - 2009/03/13(金) 10:39:43 ID:??? (+14,+26,-2)
そうだよ?
421 : nobodyさん - 2009/03/13(金) 10:48:04 ID:??? (+25,+29,-43)
PHP自体がテンプレートエンジンであり
速度と品質を犠牲に使うなんて馬鹿すぎと既にCとJavaプログラマに言われていることを
419は知らないのだった
422 : nobodyさん - 2009/03/13(金) 11:05:13 ID:??? (+27,+29,-38)
Smartyってめっちゃ便利やな!
PHP案件は全部これ使って開発してるぁるょ!
425 : nobodyさん - 2009/03/16(月) 17:22:30 ID:??? (-4,+2,-2)
変数名が違うんだろ
426 : nobodyさん - 2009/03/19(木) 02:15:19 ID:??? (+24,+26,-33)
そのレベルだとSmartyどころかphp初心者だろ……
431 : nobodyさん - 2009/04/23(木) 02:55:05 ID:??? (-2,+0,-3)
430です。すみません、誤爆です・・。質問スレに書きます。
434 : nobodyさん - 2009/05/03(日) 14:56:11 ID:??? (+27,+29,-5)
なるほど
消しても問題なさそうですね?
ありがとうございます
438 : nobodyさん - 2009/05/05(火) 21:30:24 ID:??? (+20,+22,-16)
HTMLファイルだって定義するぐらいはできるんだぜ
439 : nobodyさん - 2009/05/06(水) 01:41:19 ID:T5mYjMeP (+12,+26,-3)
>>437-438
どこの設定を変更したら出来るのですか?
441 : nobodyさん - 2009/05/09(土) 23:09:48 ID:??? (-13,-16,-19)
www.smarty.netにつながらないんだけど俺だけ?
442 : nobodyさん - 2009/05/10(日) 20:05:32 ID:??? (+26,+29,-8)
>>441
落ちてるね。こういうサイトはミラーが必要だとおもいまする。
443 : nobodyさん - 2009/05/12(火) 01:20:58 ID:??? (+22,+29,-1)
一生落ちてればいいと思う。
445 : nobodyさん - 2009/05/13(水) 13:46:20 ID:??? (+12,+14,-14)
クラスのメソッドを指定できる関数をつくればいいんじゃあ
446 : nobodyさん - 2009/05/13(水) 21:18:42 ID:??? (-6,-30,-103)
初心者で悪いんだが

--Hoge.php--------

class Hoge {
  var piyo;

  function Hoge() {
    $this->piyo = $_POST['some'];

    require_once 'view.tpl';
  }
}

--view.tpl---------

<p><?php echo $this->piyo; ?></p>


テンプレートとしての機能ってこれじゃ駄目なの?
447 : nobodyさん - 2009/05/13(水) 21:46:03 ID:??? (+34,+29,-48)
>>446
こういうセキュリティホールを量産する奴がいるから
テンプレートエンジンは必要
448 : nobodyさん - 2009/05/14(木) 00:07:02 ID:??? (+22,+25,+1)
>>447

イミフ
449 : nobodyさん - 2009/05/14(木) 02:00:08 ID:??? (+27,+29,-36)
POSTで送られたデータを無加工で出力するなって事だ
そりゃそうと、普通にメソッドコール出来たと思ったけど
450 : nobodyさん - 2009/05/14(木) 03:34:09 ID:??? (+33,+26,-107)
>>446
それでも問題無い場合もあるよ。
ケースバイケース。

複数人(特に外注)を使う場合は、記述方法の統一されたテンプレートエンジンをオススメだけどね・・・
PHPをテンプレートエンジンとして使う=テンプレートを扱う人にシステム全権限を与える。

善悪にかかわらず、不正なコードでシステムがクラッシュする可能性が増えるってこった。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - string_format + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について