*

ペンション・民宿・プチホテル用 宿泊予約 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


 
 

関連記事

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

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

記事を読む

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

前回までで基本的なプラグインの制作方法を簡単に学びました。今回からは空室管理の画面を作ってみます。柔

記事を読む

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

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

記事を読む

WordPressのプラグインで独自のページを作る方法がわからない

Wordpressのプラグインを開発していて疑問がでてきました。プラグイン独自のページはどうすればい

記事を読む

ワードプレス用宿泊予約プラグイン開発「空室情報の表示」とか

久しぶりのワードプレスネタ。全然完成しませんわ。今回は最初にブラウザのキャッシュを切る作業をしました

記事を読む

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

Message

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

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

気になる情報・新製品発見メモ

日頃ネットをウロウロしていて記事にするほどでもない情報、記事にするほど

【開封】SmallRig Drop-In Baseplate (Manfrotto 501PL QR Plate Compatible) 2006

引き続き SmallRig Universal Shoulder Pa

【開封】SmallRig Universal Shoulder Pad 2057

最初にお断りしておきますが、いわゆる「単なる開封」記事です。予めご了承

【雑談】URSA mini の設定確認とか安物時計を貰った話

寒くなってきましたがスッキリ晴れ渡る日曜日。久しぶりに予定もなくノビノ

URSA mini & Filmconvert アップデート祭り

いつものように雑談更新。今更お断りすることも無いとは思いますが、今回も

SONY α6300 24p 30p 60p 120pで画質比較

世間では黒金とか言うケシカラン状況になっています。 浮かれポンチ

→もっと見る




  •  

PAGE TOP ↑