*

ワードプレス用宿泊予約プラグイン開発「空室情報読み込み」

公開日: : WordPress ,

前回までに作ったカレンダーに空室状況を表示させます。最初に表示欄を作って確認してからデータベースの読み込み関数を組み込みます。

まずは前回までのカレンダー部分を確認しておきます。

function get_booking_calendar($year = "", $month = "") {
    if(empty($year) && empty($month)) {
        $year = date("Y");
        $month = date("n");
    }
    //月末の取得
    $l_day = date("j", mktime(0, 0, 0, $month + 1, 0, $year));
    //初期出力
    $tmp = <<<EOM
<table class="calendar">
    <caption>{$year}年{$month}月</caption>
    <tr>
        <th class="sun">日</th>
        <th>月</th>
        <th>火</th>
        <th>水</th>
        <th>木</th>
        <th>金</th>
        <th class="sat">土</th>
    </tr>\n
EOM;
    $lc = 0;
    //月末分繰り返す
    for ($i = 1; $i < $l_day + 1;$i++) {
        //曜日の取得
        // 0=日曜日 1=月曜日 2=火曜日....6=土曜日
        $week = date("w", mktime(0, 0, 0, $month, $i, $year));
        //曜日が日曜日の場合
        if ($week == 0) {
            $tmp .= "\t<tr>\n";
            $lc++;
        }
        //1日の場合
        if ($i == 1) {
            if($week != 0) { // 日曜日じゃない場合
                $tmp .= "\t<tr>\n";
                $lc++;
            }
            $tmp .= repeat($week);
            // 空枠を$week個挿入する
            // 例:火曜日は$week=2 なので日曜・月曜の分(2個)空き枠を入れる
        }
        if ($i == date("j") && $year == date("Y") && $month == date("n")) {
            //現在の日付の場合 date("j")は今日の日付(頭にゼロなし)
            $tmp .= "\t\t<td class=\"today\">{$i}</td>\n";
        } else {
            //現在の日付ではない場合
            $tmp .= "\t\t<td>{$i}</td>\n";
        }
        //月末の場合
        if ($i == $l_day) {
            $tmp .= repeat(6 - $week);
        }
        //土曜日の場合 ここで次の行に移動する
        if($week == 6) {
            $tmp .= "\t</tr>\n";
        }
    }
    if($lc < 6) {
    // 仕上がりが6行無い場合は1行追加する
        $tmp .= "\t<tr>\n";
        $tmp .= repeat(7);
        $tmp .= "\t</tr>\n";
    }
    if($lc == 4) {
    // 仕上がりが4行だった場合は上と合わせて2行追加で合計6行
        $tmp .= "\t<tr>\n";
        $tmp .= repeat(7);
        $tmp .= "\t</tr>\n";
    }
    $tmp .= "</table>\n";
    return $tmp;
}
 
function repeat($n) {
    return str_repeat("\t\t<td> </td>\n", $n);
}
?>

上のソースの「$tmp」変数に「$tmp2」を追加して空室状況表示の行を足していきます。

.....
        <th>金</th>
        <th class="sat">土</th>
    </tr>\n
EOM;
    $tmp2 = "";
    $lc = 0;
    //月末分繰り返す
....
//曜日が日曜日の場合
        if ($week == 0) {
            $tmp .= "\t<tr>\n";
            $tmp2 .= "\t<tr>\n";
....

という感じです。ポイントは「月末の場合」や「土曜日の場合」に以下のように$tmpへ追加し$tmp2の内容をクリアしておくことです。

//土曜日の場合 ここで次の行に移動する
        if($week == 6) {
		$tmp .= "\t</tr>\n";
		$tmp2 .= "\t</tr>\n";
		$tmp .= $tmp2;
		$tmp2 = "";
        }

また、最終部分の行数を調整する部分も同様の処理を加えます。

 if($lc < 12) {
    // 仕上がりが6行無い場合は1行追加する
        $tmp .= "\t<tr>\n";
        $tmp .= repeat(7);
        $tmp .= "\t</tr>\n";
	$tmp2 .= "\t<tr>\n";
        $tmp2 .= repeat(7);
        $tmp2 .= "\t</tr>\n";
	$tmp .= $tmp2;
	$tmp2 = "";
    }

以上で表示を確認すると下図のように2行表示させることに成功します。

スクリーンショット 2013-08-01 2.10.35 2

部屋タイプの取得

最初に部屋タイプを読み込んでおきます。読み込み専用の関数を用意します。

function load_type() {
	$array_data = array();
	$op_data = get_option( 'DrTE_option' );
	$array_data[0] = $op_data['DrTE_rooms'];
	$array_data[1] = $op_data['DrTE_type1'];
	$array_data[2] = $op_data['DrTE_type2'];
	$array_data[3] = $op_data['DrTE_type3'];
	return $array_data;
}

そしてカレンダーのメイン関数get_booking_calendar に引数の部屋タイプを追加します。

function get_booking_calendar($year = "", $month = "", $type = 1) {
....

本題の空室情報の読み込み

そして改造すべき部分は次の処理です。

if ($i == date("j") && $year == date("Y") && $month == date("n")) {
            //現在の日付の場合 date("j")は今日の日付(頭にゼロなし)
            $tmp .= "\t\t<td class=\"today\">{$i}</td>\n";
            $tmp2 .= "\t\t<td class=\"today\">{$i}</td>\n";
} else {
            //現在の日付ではない場合
            $tmp .= "\t\t<td>{$i}</td>\n";
            $tmp2 .= "\t\t<td>{$i}</td>\n";
        }

$tmp2 の行を以下の内容に書換えます。

$tmp2 .= "\t\t<td class=\"today\">" . load_aki_data($year, $month, $i, $type) . "</td>\n";

以上の処理で空き部屋数が表示されます。

スクリーンショット 2013-08-06 0.54.53

次回はこれを設定に従って○×▲表示にします。


Sponsored Link


 
 

関連記事

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

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

記事を読む

ペンション・民宿・プチホテル用 宿泊予約 WordPress プラグインを作る(6)初期設定画面

ここまでで、ひと通りの仕組みというか流れは理解できたような気がします。まずは初期設定画面から制作して

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

Message

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

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

簡単にSONYカメラとURSA mini 4.6Kの色を合わせる LUTS

少し色々試してみて、とっても気に入ったので改めてご紹介してみます。

MOZA AirCrossのPIDを調整してみる美少女

最初に MOZA AirCrossをPCに繋いで調整する手順を簡単に紹

JJC 液晶シェード(液晶フード) SONY α6000 α6300 α6500 用を試す!

おじさんが液晶フードを試してみたけど...というお話をしまーす!

MOZA AirCross 3軸手持ちジンバルを買ってみた【動画編】

Amazon様で「4,990円OFFのクーポンが適用されています」とい

無料の動画素材サイトをメモ

自分用の動画素材サイトをメモ。 ライセンス等は当然ですが自己責任。良

→もっと見る




  •  

PAGE TOP ↑