//@todo 保存テーブルは二つに分ける //@todo クラスファイル名がかなりめんどい事になっているので、それも時間があれば対応。 //【課題】オブジェクト指向とは言い難いのでクラスの使用方法とオブジェクト指向の理解を深める // ⇒アクセス修飾子が開放的すぎる、抽象クラスの適切な使用、取り入れれる所にはデザインパターンを使ってみるなど // HTMLの組み方が全然駄目 //pathの定数設定 define('DOCROOT', __DIR__ . '/'); define('APPPATH', realpath(__DIR__ . '/../app') . '/'); //bootstrapでclass直下、model直下のクラスをオートロード require DOCROOT . 'bootstrap.php'; //POST値取得、初期表示時は空 $post = classes_input::postAll(); //バリデーションエラー時のフォームを開いた状態 保持に使用:フォームliタグのクラス名 $post_form = Classes_Input::post('post_form'); if (isset($post['post_form'])) { unset($post['post_form']); } $errors = array(); //入力フォームのフィールド名と、バリデーション関数名をセットする $fieldset = Model_Index::fieldset($post); //postされた時 if (!empty($post) && Classes_Input::isPost()) { //submitボタンのPOST値を元に処理を振り分ける list($db_status, $errors) = Model_index::routingSubmitBtn($post, $fieldset); } //掲示板のリストデータ取得 $thread_list = Model_Index::getCommentList(); //エスケープ処理 $thread_list = Classes_Input::escape($thread_list); //テンプレートファイルの読み込み require APPPATH . 'view/index/template.php';
<?php define('DOCROOT', __DIR__ . '/../../'); define('APPPATH', realpath(__DIR__ . '/../../../app') . '/'); require DOCROOT . 'bootstrap.php'; if (!Classes_Input::isPost()) { //POST以外ははじく header("HTTP/1.0 404 Not Found"); return; } header("Content-Type: text/html; charset=UTF-8"); //コメントID $id = Classes_Input::post('id'); //バリデーションエラー時に使用 通常:ブランク エラー時:1次元配列のシリアライズデータ $selialize_post = Classes_Input::post('post'); $selialize_errors = Classes_Input::post('errors'); //シリアライズデータをデコード 通常:ブランク エラー時:1次元配列 $post = empty($selialize_post) ? array() : unserialize(base64_decode($selialize_post)); $errors = empty($selialize_errors) ? array() : unserialize(base64_decode($selialize_errors)); $db = new Model_Database_Thread(); $form_data = $db->select($id); //テンプレートファイルをバッファリング ob_flush(); ob_implicit_flush(0); //メインコメントの場合 if (is_null($form_data['parent_id'])) { require APPPATH . 'view/index/main_form.php'; } else { require APPPATH . 'view/index/reply_form.php'; } //文字列で読み込み