*

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(11)空室管理画面 B

公開日: : 最終更新日:2013/07/04 WordPress ,

空室管理画面の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 などを設定しています。

スクリーンショット 2013-06-27 3.04.00

同じようにテーブルデザインなどをCSSでデザインできるようになりました。

スクリーンショット 2013-06-28 2.02.41

ここで不具合を発見。最初に空室管理のページを開いた段階では、日付等が設定されていないので上図のように日付欄がおかしなことになっています。

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


 
 

関連記事

ワードプレス用宿泊予約プラグイン開発「空室カレンダー表示」

前回ネットで検索して見つけた calendar($year = "", $month = "") 関

記事を読む

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(2)

前回の物を若干変更しながら、どんどん進んでいきたいと思います。今回は管理画面の表示内容について行って

記事を読む

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(10)空室管理画面 A

さっそく空室管理画面を作っていきます。今回は画面設計中心です。部屋タイプの選択と、空き情報を更新する

記事を読む

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(1)

初心者が、あらためて WordPress のプラグインを一から作る経過報告。たぶん連載記事ですね。途

記事を読む

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(4)データベース基礎

今回はWordPressのプラグイン開発で必要になるデータベースに関する知識ついて調べました。この辺

記事を読む

ご質問は掲示板へお願いいたします。

Message

メールアドレスが公開されることはありません。

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

DJI Osmo Mobile 2 の少しディープなレビュー

DJI Osmo Mobile 2 を選んだのは「アクティブトラック」

スマホ用ジンバル比較=DJI OSMO mobile2 vs ZHIYUN Smooth 4 vs MOZA mini-mi

さて! 聞いて気になる見て欲しくなる。うれし恥ずかしスマホ用ジンバルの

【実験】Neewer 37mmクリップオンND 2-400 NDフィルタークリップ付きの性能を確認

前回の記事「FiLMiC pro 〜 iPhoneで動画撮影本気モード

FiLMiC pro 〜 iPhoneで動画撮影本気モード

俄然! iPhoneの有効活用が気になり始めました。 前回プレビ

【失敗】究極のプレビューモニターを発見!低価格&軽量&ワイヤレス&多機能 for SONY α and GH5

MOZA AirCrossを手に入れて、すっかり ラン&ガンスタイルに

→もっと見る




  •  

PAGE TOP ↑