2014
4
11

PHP+DBでタイムテーブル型予約システムをつくる 第3回「全体像」

3回目。どんどん需要が無くなってる感はありますが細々やっていきますよ!アイキャッチ画像が思いつかなかったらぱくたその可愛い動物にしようと心に決めた。そう決めた。


関連記事

ご注意

記事公開当初は「WordPressでタイムテーブル型予約システムをつくる」というタイトルだったのですが、WP4.0まで検証したのち、実装可能ではあるもののやはりWPには不向きだと判断したため記事タイトルを変更しました。

もはや自分でも稼働させていないため、機能追加やバージョンアップ、組み込みサポートのご依頼はお受けしておりませんので、悪しからずご理解ください。

スニペットだけでも何か作る際のお役にたてたら、という気持ちでコードを書き残しておきます。間違いや、お気づきの点がありましたらご指摘下さい。

はじめに

テンプレートファイルの作成

まずは固定ページテンプレートpage.phpをダウンロード&コピーして、好きな名前にします。例としてrsv_timetable.phpという名前にしました。

テーマによって違うと思いますが、中身はだいたいこんな感じなはず。忘れずにTemplate Nameを変えてから、同じフォルダへアップロードします。

固定ページに適用

任意の固定ページのページ属性を、先程作ったテンプレートへ設定します。

140411-1

本文を書いてthe_content()で出力できますが、特に必要はありませんので、任意です。(WordPressで作る意味ねーじゃん、と感じる部分ですよねー…。)

さて、これでrsv_timetable.phpへゴリゴリ書いて実装していきます!

データの受け渡しについて

$_POSTで

$_GETなどもありますが、今回は$_POSTを使ってみました。

htmlにこのように書くと、

140411-2

ブラウザ上ではテキストボックスとボタンが表示されます。(CSSによって見た目は違ってきます。)このテキストボックスに入れた値や、ボタンを押したかどうかのデータは、1行目に書いたURLに遷移する際に引き継げるので、遷移先のphpファイル(今回はページ遷移なしのつもりなので空にします)にて、

このように書くことで取得できます。でもこのままでは危ないので、

チェック処理をしたり、文字列を強制したりなどして取得するのが安心です。

今回は複数のフォームを用意するつもりなので、それを全部取得すると、このようにちょっと多めの記述になってしまうのですが、

このようにして書いてやれば楽なんですって!!なるほどなるほど。

そしてこれをhtmlに表示する時には

このようにエスケープしてやります。これもいちいち書くと大変なので、functions.php などに

このような関数をつくってやっておいて、

こうして呼び出してあげれば簡単です!

こちらを参考にさせていただいています。ありがとうございます。

各ボタン名を決めておく

140411-3

今回はこのような種類のボタンを使うので、それぞれ違う名前をつけておいて、「このボタンを押された時はこの処理をする」という条件分けに使います。

  • 登録ボタン …register
  • カレンダーボタン …calendar
  • 削除ボタン(キー無) …delete
  • 削除ボタン(キー有) …kwd_delete

例として、こういう名前でいきます。削除ボタンは、見た目は同じでも削除キーの有無で違う処理をすることになるので、違う名前をつけておきます。

全体像

ページ

140411-4

このような部位で構成されています(配置はお好みで)。これを、このようなコードで書いてみます。

コード

ざっくりこんな感じです。名前や所属をクッキーで保存する機能もつけてみたかったので、get_header()を読み込むより先にいろいろ書いています。(setcookie()はhtml出力よりも先に書かなきゃいけないんですね。)

内容はメインループの中に書くので、the_*()などのテンプレートタグが使えます。今回は使っていないですが、お好みでthe_title()the_content()なんかも入れられます。また、「メッセージ部分」は、必要なときだけ表示するので、実装の際はPHPで条件分けをして出力するようにします。

メインループとthe_*()について以前書いた記事もあります。

追記:WPじゃないコード

ちなみに、わたしが実稼働で使っている普通の PHP + MySQL で書いたのは、こんな感じです。

どちらも大体の形は同じなので、今後はWPコードを元に「この部分にこれを書きます」みたいな形で紹介していくつもりです。お好みで読み換えていただければ。

CSS

ちなみにこんな感じのCSSで成形していますが、こちらもお好みです。

参考

こちらの本を熟読させてもらっています。

PHP初心者のわたしでもとってもわかりやすいです!

新しいバージョン対応の本も最近出たばっかりなんですね!

次回から、具体的な中身の実装です。まずはカレンダーかなー、と思ってます。

  • このエントリーをはてなブックマークに追加
  • follow us in feedly 618
  • RSSを登録

公開日:2014/04/11
更新日:2014/05/22


コメントを残す




*印は必須項目です。コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にですがスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)


back to top