*

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

公開日: : 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 プラグインを作る(3)

前回のソースがイマイチだったので若干書き直しました。しかし、これで正しいのかも疑問なんですが、取り敢

記事を読む

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

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

記事を読む

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

空室管理画面の2回目。今回は空室状況の入力欄と月が変わった時の処理を加えてみます。今回は一覧表示なの

記事を読む

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

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

記事を読む

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

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

記事を読む

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

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Optionally add an image (JPEG only)

Sponsored Link

エレコム GRAPH GEAR NEO カメラバッグDGB-P01BKにジンバルを入れる

やっぱり高いけどEndurance (エンデュランス) カメラバッグの

エレコム GRAPH GEAR NEO カメラバッグDGB-P01BKが北の国から

一年中GWの美少女です。 Lowepro カメラリュック フリッ

MOZA Mini-S スマホ用スタビライザーが届いた!

1万円弱で買えるスマホ用ブラシレスジンバルの新型 MOZA Mini-

GoPro Hero7 Black用 保護ケース アルミ合金保護フレームがいいよって話

別に大した話ではありません。 最近書くことが少ないのでたまには書

期待の新製品 MOZA Mini-S スマホ用スタビライザーが発売されたみたい

教えてもらった新製品のホームページで MOZA Mini-Sが紹介され

→もっと見る




  •  

PAGE TOP ↑