技術や物事のかきとめ(旧データ)

はてなダイアリーからの移行です。もともとかつて「はてなグループ」で公開していた内容を移動しました。

smarty

配列の中の特定の値を表示したい

こんなときは、配列のインデックスを使う。 <{$list[0].uo_time}>via. http://sunset.freespace.jp/smarty/SmartyManual_2-6-5J_html/language.variables.html

Arrayがどれだけあるか探す。

<{$list|@count}>via. http://d.hatena.ne.jp/m383m/20070802/1186039736 【keyword】smarty 要素 数える

最初の一文字目で切る → truncate

({assign var="hoge" value="thisisabook"}) ({$hoge|truncate:1:""}) 出力結果 t

Smartyテンプレート中にJavascriptやCSSを書きたいがエラーになってしまう。

■原因/理由 それらのスクリプト中にて使用する "{" と "}" が、 Smartyのタグ定義でも使用されているためです。 それらで囲われた箇所が、smartyのタグと解釈されてしまい、 結果として定義していないsmartyタグのエラーといわれてしまいます。 ■対策 以下…

関数呼び出し中に変数を使いたい場合の記述

t_img_url_skin filename=skin_`$before_after`_header

関数〜if〜 変数に値が存在する/しないを確認する書き方

{if $hoge} 変数$hogeには値が存在しています→{$hoge} {else} 変数$hogeは値なしです。 {/if}

エスケープしたものを元に戻す修飾子

{$var|smarty:nodefaults}$default_modifiers http://sunset.freespace.jp/smarty/SmartyManual_2-6-3J_html/variable.default.modifiers.html

変数表示の中で、さらに変数を使いたい場合

配列変数$varの[0-9]番目(→さらに変数$foo)を表示する場合の記述 {$var.$foo}

修飾子 date_formatの注意

書式はこちら {$var|date_format="フォーマット文字列"}フォーマット文字列は、いかなる場合でもダブルクォーテーション(””)で囲みます。 ただし、変数からフォーマットを決定する場合は以下のように記述します。 変数 $time = 2006-11-15 23:01:10 $fvar …

セッション関連の警告が出る

たとえばこんな感じ Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /www/onlinevideo_alpha/site_manage/moviesearch.php:10) in /www/onlinevideo_alpha/includes/configure.inc.php on line 5…

phpのエクステンションで実現するテンプレートエンジン

smartyより早いとか何とか... http://simplate.aimy.jp/

html_table関数の注意

<th>タグにタイトル名などを入れたい場合は、使用するのが難しい。 →配列の中にタイトル名を入れる必要がありそう。 追記 trの中身を配列にセットして{html_table}関数を使用している例 http://sunset.freespace.jp/Smarty/SmartyManual_2-6-6J_html/language.fu</th>…

{html_***}関数で生成できないform部品

・textarea ・text ・button

Smartyクラスを継承したクラスを定義したときに出現したエラー

arning: main(Smarty/MySmartyManage.class.php): failed to open stream: No such file or directory in /www/onlinevideo_alpha/site_manage/usrresult.php on line 27Fatal error: main(): Failed opening required 'Smarty/MySmartyManage.class.php' (i…

{section}関数と{foreach}関数の違い

項目 {foreach}関数 {section}関数 プロパティ 少ない 多い 取り扱える配列 ネストができる 単純配列のみ

デバッグの方法

$debugging_ctrl変数を使用したほうが、簡単です!

あまり使わないほうがいい関数と代替方法

{eval} 変数の解析をキャッシュしないため、リクエスト毎にコンパイルがされるため ・テンプレートの共通部分管理 →{include}関数を使用する ・ロジック →php側でなるべく行う {math} 内部的に、上記であげた{eval}関数を使用するため ・ロジック →php側でな…

.confファイル(設定ファイル)の記述 - コメントをつける

#(シャープ)を行頭に置くと、その行はコメントになります。

html_image関数

画像を表示するための関数。リンクを貼ることができる。 =制限事項= 画像が存在しない場合にエラーとなる リンクで、target指定ができない →上記を解決したスクリプトは以下に公開されている。 http://bayun.boo.jp/webdev/2005/11/smarty_2.html

congif_load関数 と include関数

◆違い ファイルの読み込み config_load:設定ファイルの内容を静的に読み込み include:外部テンプレートの処理結果を読み込み

smartyのタグを変更する。

以下を参照のこと。{} から、他のものに変更ができます。 http://sunset.freespace.jp/Smarty/SmartyManual_2-6-6J_html/language.escaping.html=追記= 変更するタグはなんでもいいが、"{" と "}" を入れないといけない。 →OK [[-- --]] → NG [[--{ }--…

参考資料

Smarty - コンパイリング PHP テンプレートエンジン http://sunset.freespace.jp/Smarty/ smartyドキュメントの和訳。分かりやすいですよ。 Smarty徹底入門(1) http://phpspot.org/blog/archives/2005/04/smarty1_1.html さわりの部分が書いてあるので、参考…

コメントについての注意

phpとsmartyのコメントはまったく違うため注意! ◆phpのコメント コメントの記述方法は3種類あります。 //一行のコメントです /* 複数行わたるコメントです なんだかJavaとにていますね */ # perlっぽくこれでもコメントにできます。◆smartyのコメント {* コ…

パスへのディレクトリ記述

$o_smarty -> template_dir="./templates/"; $o_smarty -> compile_dir="./templates_c/";相対パスは使えるが、絶対パスを使用するとエラーとなる。要確認。

SmartyのtplファイルへのCSS

<head> での記述では、コンパイルエラーとなる? ・Smartyで使うデリミタ({ }のタグ)と、CSS, Javascriptの構文で ガチあうことが原因。 ・この現象を回避することは可能。以下を参照のこと。◆参照文献 Smartyの構文解析を回避 http://sunset.freespace.jp/Smart</head>…

ループの総数を数える

$smarty.foreach.LOOPNAME.last : 配列の一番最後を表示

デバッグのメモ[1] vardumpしたい→@debug_print_var

修飾子 @debug_print_var を使用する {$hoge|@debug_print_var} {$foo|@debug_print_var:0:100} ◆参考URL http://cl.pocari.org/2006-11-29-1.html