*

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


 
 

関連記事

新バーチャル歌姫デビュー CeVIO Creative Studio は期待して良さそう

既にサンプル曲がガンガンアップされています。噂の歌声合成ソフト CeVIO Creative Stu

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

WordPressのオリジナルプラグインにショートコード機能を持たせる

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る連載で、ショートコード

記事を読む

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

Message

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

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

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

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

録音ミニスタジオ完成の図と12色のリモコンLED電球

構想10年・制作3日の自宅音声収録スタジオの完成です。 ご覧の通

録音(撮影)ミニスタジオの制作DIY

そんな訳で吸音スポンジを壁に取り付けてみた続きです。 調子に乗っ

YAMAHA MG10UXミキサー到着

2018年 物置(事務所or作業場or遊び部屋)の一角を音声収録&撮影

そしてzbrush coreをインストールしてみる話

Blenderに挫折してから一気に3Dにのめり込んでいます。 ま

録音環境を改善する!吸音パネルをDIYとか

久々に更新! すっかり更新グセが抜けてしまい、イマイチやる気が出

→もっと見る




  •  

PAGE TOP ↑