ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(11)空室管理画面 B
空室管理画面の2回目。今回は空室状況の入力欄と月が変わった時の処理を加えてみます。今回は一覧表示なのでまだいいほうかもしれませんが、カレンダーとか面倒なんですよね。
まずは表示用HTMLをループで生成する関数をROOMクラスに加えます。
wp-contents/plugins/drtehotel/class/rooms.php
function create_calendar() { $yy = mb_substr($this->rdate,0,4); // 年の取り出し $mm = mb_substr($this->rdate,5,2); // 月の取り出し $last = date('t', mktime(0,0,0, $mm, 1, $yy)); // 末日 $week = array( '日', '月', '火', '水', '木', '金', '土' ); $tmp = ""; for ($i=0; $i<$last; $i++) { if( $i<9 ) $dd = "0" . strval($i+1); else $dd = $i + 1; $youbi = date('w', mktime(0,0,0, $mm, $dd, $yy)); $tmp .= '<tr>'; $tmp .= '<td>' . $yy . "年" . $mm . "月" . $dd . "日</td>"; if( $youbi==0 ) $tmp .= '<td class="sun">' . $week[$youbi] . "曜日</td>"; else if( $youbi==6 ) $tmp .= '<td class="sat">' . $week[$youbi] . "曜日</td>"; else $tmp .= '<td class="week">' . $week[$youbi] . "曜日</td>"; $tmp .= '<td>'. $this->rtype . '</td>'; $tmp .= '<td><input type="text" name="ma' . $i . '" value="' . $this->name . '"></td>'; $tmp .= '</tr>'; } return $tmp; }
日付と曜日の処理をしています。曜日は配列で表示させて、土日はclassを変えてCSSで色分けします。CSSの設定は良くわからなかったのでHTMLでを出力する部分で無理やり書きだすようにしました。
function show_screen() { echo '<link rel="stylesheet" href="' . WP_PLUGIN_URL . '/'. str_replace(basename(__FILE__),"",plugin_basename(__FILE__)) .'defoStyle.css" />'; echo '<div class="wrap">'; echo '<div id="icon-options-general" class="icon32"> <br /></div><h2>空室管理</h2>';
「class/defoStyle.css」ファイルを作成し .sun などを設定しています。
同じようにテーブルデザインなどをCSSでデザインできるようになりました。
ここで不具合を発見。最初に空室管理のページを開いた段階では、日付等が設定されていないので上図のように日付欄がおかしなことになっています。
function create_calendar() の中で$this->rdateが設定されているかどうか確認する方法を考えました。しかし、別途テーブルからデータを読み込む際も確認が必要となるため、確認(設定されていない場合は今月を設定)処理を別途関数で用意することにしました。
wp-contents/plugins/drtehotel/class/rooms.php
function check_rdata() { $yy = mb_substr($this->rdate,0,4); // 年の取り出し $mm = mb_substr($this->rdate,5,2); // 月の取り出し if (!checkdate($mm, 10, $yy)) { // yy年mm月10日は異常な場合 $this->rdate = date("Y年m月"); $op_data = get_option( 'DrTE_option' ); // テーブルから初期設定を読み込む $this->rtype = $op_data['DrTE_type1']; // 部屋タイプ1を設定 } }
メインのプラグインファイル側で form の action 値がない場合には上記関数を実行させるように修正します。
wp-contents/plugins/drtehotel/drtehotel.php
if ($_POST['action']=='change') { $rm->rtype = $_POST['rtype']; $rm->rdate = $_POST['rdate']; } else if ($_POST['action']=='update') { check_admin_referer('example'); $rm->comments = '<div id="message" class="updated"> <p>更新しました。</p></div>'; } else { $rm->check_rdata(); } //画面表示 $rm->show_screen();
テーブルからの読み込み・更新処理は次回に!
Sponsored Link
関連記事
-
ワードプレス用宿泊予約プラグイン開発「空室情報の表示」とか
久しぶりのワードプレスネタ。全然完成しませんわ。今回は最初にブラウザのキャッシュを切る作業をしました
-
ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(12)空室管理画面 C
空室情報のデータベース処理を一気に終えました。ごちゃごちゃしてきたので、もっとスッキリ書く方法が無い
-
ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(2)
前回の物を若干変更しながら、どんどん進んでいきたいと思います。今回は管理画面の表示内容について行って
-
ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(7)セキュリティ対策
ここでセキュリティ対策についてまとめて復習してみます。ネットを検索すると、さまざまな対策が紹介されて
-
ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(6)初期設定画面
ここまでで、ひと通りの仕組みというか流れは理解できたような気がします。まずは初期設定画面から制作して
ご質問は掲示板へお願いいたします。