2014
3
25

PHP+DBでタイムテーブル型予約システムをつくる 第1回「概要」

自作のテーブルを追加して読み書きを行う、予約システム的なものをつくりました。その経緯をまとめてみるという、ちょっと(かなり)ボリュームのありそうな連載記事になりそうですが、よろしければお付き合いください。


関連記事

ご注意

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

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

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

きっかけ

こちらで紹介されている「会議室予約」のようなシステムが出来ないかな、と思ってつくりました。

スクリプトを引用させていただいてはおりませんが、仕様やレイアウトをおおいに参考にさせていただきました。(既にサイトは閉鎖されており、上記リンクは有志の方による復元サイトのようです。)この場にて、厚く御礼申し上げます。

前置き

末尾にも追記しましたが、他にもいっぱい優秀なツールがあるのにわざわざPHPで、しかもWordPressでやることじゃないんじゃないの、というような内容だったりします。

実用性はさておき、独自テーブルを作ってそれを操作してみたり、フォームを使った値の引き渡しなどphpの基礎的なこと(これもWordPressである必要はないんですが)も、はじめて踏み込んだ領域だったので非常に勉強になりました。WordPressに限らず、何かつくろうとしているどなたかのお役に立てたらいいなという思いもあり、やったことを書き出して行こうかと思います。

あわよくば、「もっとこうしたほうが良い」「そんなんじゃヤバイ」というようなツッコミもいただけたら、とても有難く思います。

というわけで、多分かなり長い連載記事になるんじゃないかと思いますので、興味のある方に読んでいただけたら嬉しいです。

完成図

140325-1-1

※クリックで拡大

公式テーマ、Twenty Twelveへ組み込んだ例です。任意の固定ページを使います。画面遷移はせず、ひとつのページだけで動きます。

このテーマに合うように試作してありますが、htmlはできるだけシンプルに出力されるようにしたつもりなので、CSSでお好みのレイアウトやデザインに変更していただけます。データベースへ追加するテーブルはひとつだけで、読み書きもそこしか使いません。

仕様

基本機能

140325-2

項目(例では会議室)はいくつでも設定できます。ただ、あんまり多いとはみ出しますし、処理も重くなるので適度な数が良いかと思います。

また、時間軸は何時から何時まで、何分刻みで、という設定ができます。これもあんまり細かい刻みにすると長くなってしまうので、10分、30分、60分くらいの刻みがおすすめです。

例では備考と削除キーは未入力も可にしてありますが、もちろんすべて必須にすることもできます。

カレンダー部分は、投稿記事へリンクするget_calendar()とは別物で、クリックした日付を保持して再読み込み、日付に応じたタイムテーブルを出力します。日付がそれぞれsubmitボタンになっているのをCSSでリンクっぽく見せています。

時間を横軸にしたレイアウトも可能

140325-3-1

※クリックで拡大

タイムテーブルを、縦横を入れ替えたレイアウトで出力することもできます。

こんな使い方も

140325-5

項目は自由に変えられるので、人の管理にも使えます。各スタッフのタイムテーブルとしても。美容室さんとか。ごめんなさい働いたことないので妄想なんですけど…!

運用するにあたって

小規模ネットワーク向け

もともと、社内ネットワークからしか利用できないWebサーバで使うつもりでつくったものなので、デフォルト状態だとアクセス出来る人は誰でも書き込み可能です。利用者が限られているネットワークならまだしも、せっかくなのでもうちょっと使いようはないものか…、と考えてみました。

プラグインとの併用

こういった会員制サイト用のプラグインと組み合わせて、該当ページにアクセス出来る人を限定してしまえば使えそうです。

ログインユーザー以外は閲覧のみ

こちらのテンプレートタグを使って、タイムテーブル内の削除ボタンと、登録フォームをログインユーザーしか見えないようにしてしまうとか。

140325-4

試してみると、ログアウト時はこんな感じに見えました。

こちらの記事の最後に書かれているログインフォームを併用するととってもいい感じです!「編集するにはログインしてください」みたいなメッセージと一緒に出すといいかも。

他のテーマに入れたイメージ

試作で使ったのがTwenty Twelveというちょっと古いテーマだったので、試しに他のテーマにも組み込んでどんな風に見えるか検証してみました。

Twenty Thirteen

140325-6-1

※クリックで拡大

字がでっかいwww これは、日付部分をh1で括ってあるからだと思います。こういうテーマに使うならテーブルのCSSももう少しカラフルにしたほうが良さそうですね。カレンダー部分もTwenty Twelveに合わせた色なので、もうちょっと変えてあげたほうが良さそうです。

Twenty Fourteen

140325-7-1

※クリックで拡大

現在(2014年3月時点)で一番新しい公式テーマ。意外とこのままでもいけそう。カレンダーはもうちょいCSSいじったほうがいいかなー。

作り方は以下続刊

どういう順番で書いていったら分かりやすいかなぁと考えているのですが、次回はまずデータベースへ自作テーブルを追加して、読み書きが出来る状態にするところまでを予定しています。

追記

多々ご指摘いただいております通り、いま現在非常に優秀で柔軟性の高いツールやグループウェアがいっぱいあるなか、こんな方法で、しかもわざわざWordPressでとか…、今時ナンセンスなのはごもっともだと思います(;´Д`)

そもそもの依頼の前提が「冒頭の既製品に近いもの」だったことと、使用予定のWebサーバにWordPressを入れるつもりだったことから「これWPのDB使えないかな!組み込んだらどうなるのかな!」という完全に好奇心で突き進んでしまったのですが、所感としてはやはりWPに入れる必要性はなかったなー…という感じです。

実を言うと、わたしも実用ではWordPressから外して、独立したPHPファイルとDBを使うことにしてしまいました_(:3 」∠)_

とはいえ、一応WordPressでも出来た!という経験は楽しかったです。組み込むために無駄と思える部分もあった反面、同じDBで一元管理できたり、関数やテンプレートタグが使えたり、上記のようなプラグインと併用して使えたりと、この部分は便利だ!と思った面もありました。

せっかくなので、無駄と思ったところ、無駄じゃなかったところ、WordPress外でやるには、などなど試行錯誤もひっくるめて、記録しておこうかな、とそのように考えております。そのなかから少しでもどなたかのお役に立てる何かがあればいいなという気持ちで進めていきますので、興味のある方にご覧いただけたら幸いです。

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

公開日:2014/03/25
更新日:2014/05/22


コメントを残す




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


back to top