奇特なブログ

「殊勝に値する行いや心掛け」を意味する、奇特な人になる為のブログです

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

自作フレームワーク:template_convert_loop.php

注意:
本プログラムは、
いわゆる徳丸本に書かれているセキュリティ対策の多くは反映してます。
しかし、高難易度の攻撃に耐えられる程の対策は出来ていないと思います。
本プログラムの流用は自由ですが、流用によって生じた損害については、
自己責任でお願いしてますので、その旨ご了承下さい。


自作フレームワークのトップページに戻る

現在、本クラスは使用されていません。



<?php

/**
* ループ専用のテンプレート置換処理クラス
*
* HTMLテンプレート内のループの部分の置換を行うクラス
*/
class template_convert_loop extends template_convert {

/**
* テンプレート置換ロジック実行
*
*/
public function convert_template($view) {

$output_html = $view->get_output_html();

$output_buf = mb_strstr($output_html, '|||', true);
$after = mb_strstr($output_html, '|||');
$after_array = explode('|||', $after);
$name = $after_array[1];
$body = $after_array[2];
$rows = $view->get_loop_array_value($name);
if (true === isset($rows)) {
// ループ名が設定されている時のみデータもある
$row_size = count($rows);
// 表示する行数分繰り返す
for ($i = 0; $i < $row_size; $i++) {
// 初期化
$body_buf = $body;
// strstrは検索文字列が見つからない時はfalseを返すので、その間繰り返し
while (false !== ($data_before = mb_strstr($body_buf, ';;;', true))) {
$data_after = mb_substr(mb_strstr(mb_substr(mb_strstr($body_buf, ';;;'), 3), ';;;'), 3);
$data_array = explode(';;;', $body_buf);
// モデルのゲッターを実行しデータを取得
$data_value = utility::create_accessor_name($rows[$i], 'get', $data_array[1]);
$body_buf = $data_before . $data_value . $data_after;
}
$output_buf .= $body_buf;
}
}
$output_buf .= $after_array[4];
$view->set_output_html($output_buf);
}
}

?>



スポンサーサイト

テーマ:日記 - ジャンル:日記

  1. 2011/02/03(木) 22:28:16|
  2. 自作プログラム
  3. | トラックバック:0
  4. | コメント:0
<<自作フレームワーク:template_convert_multi.php | ホーム | 自作フレームワーク:template_convert.php>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://kitoku1.blog129.fc2.com/tb.php/84-f5a603cd
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。