PC、スマホ(スマートフォン)、携帯(ガラケー)3デバイスに対応したフリー(無料)のシンプルスケジュールカレンダー・営業日カレンダーCMSプログラムです。管理画面で営業日、休業日、定休日を設定、更新可能です。
お店や会社、スポーツクラブ、学校(スクール)などの営業日スケジュールカレンダーに最適です。
クライアントが更新することを想定しているので、シンプルで直感的な更新が可能です。
【2024/05/09 重要なお知らせ】
祝日の自動取得機能が正常に動作しない問題。
対象バージョン:ver1.0.2以下。ver1.0.3以降は問題ありません。
※バージョンはconfig.phpの上部に記載されています。
症状:祝日の自動取得が行えない。
原因:GoogleカレンダーAPIの仕様が変わったためと思われます。
対象者:祝日の自動取得機能をONにしている方のみ。(config.phpでON、OFF可能。デフォルト値はOFF)
修正方法:以下をご参考の上で修正してください。
設定ファイルconfig.phpを開き、以下の記述をファイル内検索してください。
//$holidays_id = 'japanese__ja@holiday.calendar.google.com'; // Google 公式版日本語
この先頭のスラッシュ2つ「//」を削除してコメントアウトを解除(有効化)してください。
これだけです。
ユーザ名:admin
パスワード:1397
※自由に登録、編集して下さい。
PCのみ表示形式を表(テーブル)形式、リスト形式から選択可能です。(スマホ、ガラケーはリスト形式)
デフォルトは表(テーブル)形式です。設定ファイルにて変更可能です。
iframeタグ(インラインフレーム)で表示しています。実際は既存サイトなどに埋め込むことになるかと思います。
カレンダーの幅は自由に変更可能です。(デフォルトは100%)カレンダーはシンプルなHTMLのタグです。CSSにて自由に設定下さい。(ソースを表示して各タグ、class等を確認しつつ設定下さい)
携帯、スマホはQRコードを読めば実機でも確認できます。スマホ、携帯は既存ページ内に表示させるよりもリンクさせる方法が良いでしょう。
スマホ用QR |
携帯用QR |
事前にご利用規約をご確認下さい。
クリックで自分のPCに保存して下さい。または右クリック⇒「対象をファイルに保存」
ファイルの文字コードはUTF-8です。必ず対応したエディタで開いてください。
メモ帳(UTF-8非対応)は使用禁止です。ファイルが壊れます。TeraPad(無料)やDreamWeaver等で開いてください。必ずUTF-8のBOM無し(UTF-8N)で保存して下さい(いずれもデフォルトではBOM無しで保存されます)。
BOMについて詳しく知りたい方はこちら
※PHPではスラッシュ2回「//」の後からその行の末尾までがコメント扱いとなります。「#」、「/**/」もです。
ダウンロードしたzipファイルを解凍するとcalendar01フォルダがあります。
赤字のファイルが触るファイルです。その他は基本的には触らずOKです。
・index.php | PC用のカレンダーを表示するファイルです。実際にはこれをトップページ、または任意のページの任意の箇所にiframeタグで読み込むことになると思います。見た目等はCSSで自由に調整して下さい。 |
---|---|
インラインフレーム使用時のiframeタグ以下のタグを表示させたい場所に貼り付ければOKです。必要に応じて幅、高さ、パス等を調整してください。スクロールバーを出したくない場合は高さは多めに指定すると良いです。 |
|
・Readme.txt | 設置法、利用規約など。 |
・admin.php | 管理画面です。登録や変更を行います。クライアントにはこのURLだけを教えることになるかと思います。 |
・complete.php | 「更新」による2重登録防止用のリダイレクトファイルです。そのまま置いておきましょう。 |
・config.php | 設定ファイル。管理画面ログイン情報の設定やその他設定、関数記述など |
・style.css | admin.php、index.php、sp.phpのスタイルを記述してます(もちろん独自のCSSでもOKです)必要に応じて自由に変更して下さい。 |
・data/ | データ保存用ディレクトリ(パーミッションを書き込み可能なものに) |
┗ holiday_set.dat | 休業日データを保存するファイル (パーミッション666等書き込み可能なものに) |
┗closed.dat | 定休日データを保存するファイル (パーミッション666等書き込み可能なものに) |
┗西暦_holiday.dat | ダウンロード直後は存在しません。サーバーにアップロード後、初回アクセス時に自動生成されます。 祝日データを保存するファイルです。年が切り替わるタイミングでGoogleAPIより当年、翌年、前年分の祝日データを自動で取得、保存します。Googleの仕様により祝日データが正確では無い場合は直接編集も可能です。登録データを参考に変更下さい。 |
sp.php | スマホ用のカレンダーです。このファイルにリンクさせる形になるかと思いますが、iframeで読み込んでもOKかもしれません。(ただし、スマホ全機種でのiframeタグ対応は保証できませんのでリンクさせるのが無難です) |
i.php | 携帯(ガラケー)用のカレンダーです。携帯はiframeに対応していな機種がほとんどかと思うので、このファイルにリンクさせる形になるかと思います。 |
config.phpをエディタソフトで開き、ログインのためのID、パスワードを変更してください。
初期値は
ID:admin
パスワード:1397
になっています。必ず変更してください。その他必要に応じてコメントを参考に設定してください。
「calendar01」フォルダごと全ファイルをアップし、
「data」ディレクトリのパーミッションを書き込み可能な755 or 777等に設定(サーバーによる)
data/holiday_set.datのパーミッションを書き込み可能な666等に設定(サーバーによる)
data/closed.dat.datのパーミッションを書き込み可能な666等に設定(サーバーによる)
にしてください。
もちろんカレンダーを埋め込んだページもアップして下さい。これで完了です。
各パーミッションの適切な値はサーバーのマニュアル等を参考に変更下さい。
サーバーによっては値が違う、または変更の必要自体無いこともあります。
もしパーミッションの設定が間違っていた場合ですが、すべての環境での保証はありませんが管理画面にてその旨警告が表示されるよう設定しています。またもしパーミッションが間違いの場合には「data」ディレクトリの場合、祝日データが取得できない、また、holiday_set.dat、closed.datの場合、新規登録時にエラーで登録自体ができません。要するにまともに動かないのでテスト段階ですぐに気付けます。
逆にそのようなことがない場合は適切なパーミッションになっていると考えてOKです。
ちなみにエックスサーバーの場合、今のところパーミッション変更は不要です。
ブラウザで「あなたのサイトのURL」/calendar01/admin.phpを表示し、管理画面にログインし、登録を行ってみてください。正常に登録、編集できればOKです。定休日設定も確認下さい。
ifirameなどで埋め込んだページもブラウザで確認してみて下さい。
登録データが反映されていればOKです。
設置するページやその他必要に応じてスタイルシート、HTML等で見た目の調整を行ってください。じゆ~です!
その他htmlソースを見ると分かりますが、タグや各セル、各曜日にはそれぞれclassを振っていますので、
style.cssのCSSを変更して自由にデザイン下さい
また、class="youbi_0"が日曜日でそのまま曜日ごとに連番が振られclass="youbi_6"が土曜日となっています。
カレンダー部分のhtmlを変更したい場合はconfig.php内下部に各デバイス(PC用、スマホ用、携帯用)ごとに記述しています。カレンダーのタグや「日」、「月」などのテキストを変更したい場合直接変更してください。
これら設置法などはダウンロードファイル内のReadme.txtにも記述しています。
充分な検証は行っておりますが、配布直後は未知の不具合等が無いとも限りませんので、気になる点などがあれば遠慮なくお問い合わせ下さい。
また使用感などもいただけますとものすごーくありがたいです^^
デフォルトではページ下部に著作権表示リンクがあります。
これらの著作権表示の削除には1サイトあたり2000円+消費税の使用料金が必要になります。
お支払いいただいた場合、この表示が削除されます。
2サイト目以降は都度料金が必要になります。
クレジットカードでのお支払いはこちら
(完全自動化によりクレジットカード払いの場合、決済完了後即ダウンロード可能です。手数料無し)
calendar01フォルダ内のindex.phpの必要な箇所(2箇所)をコピペすればOKです。コメントも書いておりますので参考下さい。
ただし、埋め込み先のページは拡張子が.phpでかつ文字コードがUTF-8である必要があります。
また
require_once('config.php');
の箇所は設置場所によって変更下さい。単純にconfig.phpへの相対パスを書けばいいだけです。(絶対パス不可)
例 require_once('calendar01/config.php');
CSSファイルへのリンク部分も必要に応じて変更下さい。もちろんオリジナルでもOKです。
2014/11/25以前にダウンロードされた方は以下のページにまとめしたのでご参照下さい。
GoogleAPIの仕様変更に伴う既存ファイルの修正方法
2014/11/17からのGoogleAPIの仕様変更に伴い、GoogleAPIキーが必要になりました。お手数ですが、事前にAPIキーの取得が必要になります。取得方法は以下ページにまとめておりますのでご参考下さい。
GoogleカレンダーAPIキーの取得手順
祝日設定は不要、またはGoogleAPIキーの取り方が分からない、または面倒な方はそのままでも運用は問題ありません。デフォルトはOFFです。(祝日が赤字にならないだけです)または祝日用のデータファイルをこのページからダウンロードいただいて手動でdataディレクトリにアップしても反映可能です。
PHP4.3.9~PHP8.1
その他一般的なレンタルサーバーであれば問題なく動作するはずですが、
すべての環境(サーバー)での動作を保証するものではありませんのでご了承下さい。
問題が出る可能性が高い、またはそのままでは必ず問題が出ることが分かっているサーバー
※現状私自身が把握している範囲です。(実際に確認していますのでちゃんと根拠もあります)
1,Yahoo系(ジオプラス、ウェブホスティングとも)※Softbankも含む
2,KDDI系(CPI含む)
3,NTT系(WebArena(suiteX)、NTTビズリンク(BizLink))
※プロバイダー系は特に問題が多いです。(個人的には絶対に借りてはいけないと考えています)
4,スマイルサーバー
5,ファーストサーバ
特にCPI、NTT系、スマイルサーバー、ファーストサーバで問題がある場合はこちらも参照下さい
経験上、結局は「餅は餅屋です」。プロバイダー系はプラン、金額に関係なく特に問題が多いです。サーバーの問題で時間を取られるのは非常に無駄ですし、その先ずっと影響しますのでサーバー選びは慎重にされることをオススメします。
特に理由がなければあえてこれらのサーバーは借りないほうが得策でしょう。高いから良い、安いからダメという安易なものでもありませんので難しいところですね。(まぁ安いには安いなりの理由があるのですが・・)
HTMLやCSSなどをある程度理解されている方を対象としています。
カスタマイズ方法などのサポートは行っておりませんのでご了承ください。
修正方法などに関するサポートは有料にて承ります。
管理人1人で運営していますので。。。
設置の際の不明点や気になった点、不具合等があれば遠慮なくなんでもご連絡ください。
カスタマイズ(改造等)方法などのサポートは行っておりません。
カスタマイズや仕様変更、設置代行などは2,000円~の有料にて承ります。
・無料版プログラムはフリーウェアです。ただし、著作権は放棄するものではありません。
・プログラムの著作権表示リンク(ページ下部にある当サイトへのリンク)を無断で削除することはできません。
(一律2,000円+消費税の削除依頼をいただいた場合を除く)
・プログラムの再配布、再販売は禁止です。
※ただしクライアントへの納品などでシステム費用、設置費用として請求されるのは問題ありません。
・プログラムによって何らかの不利益、損害が生じても一切の責任を負いません。
あらかじめご了承の上ご使用ください。
もし何らかのトラブルがあった場合には、ご相談いただければ解決策が見つかるかもしれません。
(クライアントへの原因の説明など)
・プログラムは全ての環境(サーバー)での動作を保証するものではありません。
・改変等は自由ですが、自己責任でお願いします。
・有料版をご購入いただいた場合、初期不良を除き、ご使用後の返金には応じ兼ねます。
・有料版(著作権リンク削除含む)は1サイト(同一ドメイン)内であれば複製の上で複数利用可能です。
2サイト目以降は都度サイトより購入申込みが必要になります。
※サブドメインはその性質上、別サイト(別ドメイン)とみなします。
ダウンロードいただいた時点で利用規約に同意したものとみなされます。
2024.05.09 ver1.0.3リリース
祝日の自動取得機能が正常に動作しない問題の改善。
ver1.0.2以下の場合で祝日の自動取得機能をONにしている場合は修正が必要です。
ページ上部に記載しておりますのでご確認いただければと思います。
2021.05.20 v1.0.2リリース
管理画面における反射型クロスサイトスクリプティングの指摘と修正方法について
-- 脆弱性に該当する製品名およびバージョン
※ver.1.0.0~ver.1.0.1
(バージョンはadmin/include/config.php内の上部に記載しています)
確認済対象ブラウザ:(Firefox/Chromeで確認)
-- 脆弱性の内容
管理画面にアクセスしたユーザーを悪意のあるページに誘導することで、ウェブブラウザ上で任意のスクリプトが実行される可能性。
この条件が成立するには管理画面にログインしている管理者を特定のページに誘導する必要があることから、実際に発生する可能性は限りなく低いと思われます。これまでに実害の報告などは届いておりません。
ただ念の為、下記手順にて修正を行なっていただければと思います。
-- 脆弱性への対応方法と適用方法
最新版をダウンロードの上で設定ファイルconfig.phpのみを差し替えていただくか(設定が初期化されます)、
または以下手順で修正を行なってください。
config.phpの723行目付近の以下の箇所。
※ファイル内で1箇所しかありませんので間違うことはありません。
$scheduleCalendar = '<form action="?ym='.$getYm.'" method="post">';
↓以下のように修正いただくか、そのままコピペください。
$scheduleCalendar = '<form action="?ym='.h($getYm).'" method="post">';
※「$getYm」をh()で囲むだけです。
以上、これだけです。念の為、管理画面で更新などの操作を行なってください。
特に問題がなければ完了です。もし万が一問題が発生した場合は戻していただくか、お問い合わせください。
-- 謝辞
apple502j様並びに情報処理推進機構 IPA様、JPCERT/CC 脆弱性コーディネーショングループ様にはこの場を借りて感謝申し上げます。
2020.07.30 1.0.1 リリース
脆弱性対策に伴うコード修正
クロスサイト・リクエスト・フォージェリ(CSRF)対策及びセキュリティ強化のためセッション名の変更。
-- 脆弱性に該当する製品名およびバージョン
【Calendar01】(3デバイス対応)PHP営業日・スケジュールカレンダーフリー(無料)版
【Calendar02】PHP営業日・スケジュールカレンダー(テキスト入力付) フリー・無料版
※ver.1.0.0(2020/07/30以降にダウンロードされた方は該当しません。)
(バージョンはReadmeまたはconfig.php内に記載しています)
確認済対象ブラウザ:(Firefox/Chromeで確認)
-- 脆弱性の内容
1,クロスサイト・リクエスト・フォージェリ(CSRF)
管理画面へログイン中の管理者が悪意のある第三者が作成した罠ページへ誘導された場合に、特定のリンクをクリックさせることによって任意のスクリプトを含む文字列が投稿され、閲覧者側で任意のスクリプトが実行される可能性。
2,特定の条件下において、遠隔の第三者に管理者権限で当該製品にログインされる問題。
この条件が成立するには第三者があなたのサイトのサーバー上に無断でファイルを設置する必要があることから、この問題が実際に発生する可能性は限りなく低いと思われます。これまでに実害の報告などは届いておりません。
ユーザーにとって利便性が良いため、あえてそうしていたということもありますので、
非常に判断が難しいものでしたが、今回の指摘を真摯に受け止め、また利便性よりも安全性を優先するという判断としました。
-- 脆弱性への対応方法と適用方法
1,クロスサイト・リクエスト・フォージェリ(CSRF)
最新版をダウンロードいただき、既存のadmin.phpのみを差し替えて(上書き)下さい。
複数の複雑な条件が重ならない限り本脆弱性は発生しないため、設置中のものがすぐに攻撃対象となる可能性は低いと考えていますが、大変お手数おかけしますが出来る限りご対応頂きますようお願い申し上げます。
問題が出た場合にはお気軽にお問い合わせよりご連絡下さい。
2,特定の条件下において、遠隔の第三者に管理者権限で当該製品にログインされる問題。
以下手順で修正を行なってください。
1,admin.phpをエディタソフトで開いていただき、
「session_start();」を見つけて下さい。(ファイル内に1箇所しかないため検索すればすぐに見つかります)
2,この「session_start();」の上に以下1行をコピペして下さい。
※「PHPSystem」部分の文字は変更して下さい。英数字のみとして下さい。
例
session_name('PHPSystem123');
session_start();
※順番に注意して下さい。必ずsession_start();の上に追加下さい。
以上、これだけです。
もしすでに「session_name()」がある場合はすでに対策済のバージョンですので変更不要です。
尚、当サイトの管理画面があるプログラムを複数設置している場合で一度のログイン認証で相互に行き来出来たほうが良い場合はsession_nameの文字列を同じものとして下さい。
-- 謝辞
ご報告いただきました「三井物産セキュアディレクション株式会社 東内様」、
並びに情報処理推進機構 IPA様、JPCERT/CC 脆弱性ハンドリングチーム様にはこの場を借りて感謝申し上げます。
2015.06.19
サーバーのPHPのバージョンがPHP4.○○の場合に管理画面で翌月、前月が「1月」と表示されてしまう。及び表示側で前月に戻れない不具合を修正しました。PHP5以上であれば問題はありませんでしたので、今現在設置中の方は特に問題はございません。
(今現在大多数のサーバーではPHP5以上のため基本的には問題ありません)
ご連絡いただきましたI様にはこの場を借りて感謝申し上げます。
2014.11.25
2014.11.17からのGoogleカレンダーAPIの仕様変更に伴い、祝日データが自動で取得されない不具合を修正しました。2014.11.25以前にダウンロードされた方は大変お手数ですが、現在配布中の最新版をダウンロードいただくか、修正をお願い致します 。
GoogleAPIの仕様変更に伴う既存ファイルの修正方法
今後は祝日自動取得にGooglAPIキーが必要になります。→googleにて無料で取得できます。
または最新版に限りますが、設定ファイルでこの機能をOFFにし、このサイトから祝日用のデータファイルをダウンロードの上、手動でアップする方法もあります。またはそもそも祝日設定が不要であればOFFのままで運用可能です。
2014.02.28 Calenderのスペルが間違っていたものを修正しました。ソースコード内のスペルも変更しています。(Calender→Calendar)
2014.02.01 インラインフレーム(iframe)での設置のみを考慮していましたが、既存のページにも直接埋め込めるよう修正しました。但し埋め込み先のページの文字コードがUTF-8である必要があります。
2014.01.19 スマホ、携帯版は表形式ではなく、縦長のリスト形式で表示するよう修正。PCは表形式、リスト形式選択可能に(デフォルトは表形式)
2013/9/4 Beta版としてプログラムの配布を開始