にしし ふぁくとりー:西村文宏 個人サイト

さんごよみ : Update Log

  • 2023年02月25日 Ver 1.2.0 公開: 相対的な月指定ができるoffsetパラメータを追加。再構築時のエラーを解消。大量のアラートがサーバログに記録される等の不具合を修正。
  • 2022年11月24日 Ver 1.1.0 公開: カラーテーマ増量、ログインフォーム下部のメッセージを管理画面上で設定しておける機能を追加、細かな仕様改善等。
  • 2022年06月25日 Ver 1.0.0 公開: Fumy Teacher's Schedule Boardの後継CGIとして初公開。(開発裏話
  • 2021年09月30日 Ver 0.1.1 Preview版: 一応動く状態で試験リリース。
  • 2021年04月22日 てがろぐベースのカレンダーCGIとしての再開発を開始。

CGIの紹介

スキン式で自由にデザインできるスケジュールカレンダー表示CGI

  • 「さんごよみ」は、カレンダー形式や週間予定表形式でスケジュールを表示できるフリーCGIです。標準でモバイル対応なので、パソコンからだけでなくスマートフォンからも閲覧・登録が可能です。
  • Web上に見えているカレンダーそのものに予定を追記するだけでなく、各日の詳細予定を別途登録しておけるため、たくさんのスケジュールを同日に書き込みたい場合にも対応できます。
  • カレンダーに表示する文字には、簡単な装飾を加えたり、任意のURLへのリンクを加えたりできるため、予定の他に参考情報等を残しておく用途にも使えます。記述内容には、🍔🍙🍛🍞🍨🍩🍫🍬🍮🍰🍵📅などの絵文字も使用可能です。(お手軽マイクロブログCGI「てがろぐ」と同じ装飾が使えます。)
  • ユーザ認証機能付きで複数ユーザによる編集にも対応していますから、少人数で共有する仲間内の共通カレンダーや、複数スタッフで共有する営業カレンダーなどとしても使えます。
  • スキン式なので、スキンHTMLを編集すれば表示形態は自由に作れます。スキン(ベースHTMLファイル)を書き換えれば、デザインや構成を自由自在に変更可能です。設置サイトのデザインに合わせたスケジュール掲示板にカスタマイズできます。
  • 日本の祝日規則に対応しているため、日本の法令に沿った色分け表示(祝日の表示)も可能です。どこを何色で表示するかはスキン次第なので、色分けしたければできますし、色分けしたくなければしない状態で使うこともできます。
  • カレンダー以外にも「1週間の汎用予定表」や、カレンダーで見えないくらい遠い先の大まかな予定を掲示板形式で投稿できる「長期予定表」もあり、様々なスケジュール管理用途に対応できます。特に、月間予定(カレンダー)に書き込んだスケジュールは、RSSフィードの形で配信することもできます。

スケジュール表は、週間・月間・長期の3種類を自由に組み合わせ可能

このCGIでのスケジュール表示は、次の3種類のブロックで構成されています。(それぞれ表示するかどうかはスキンファイルの書き方次第で自由に選択できるため、必要な機能だけをお使い頂けます。)

  • 1週間の汎用スケジュール表
    • 曜日別の汎用スケジュールを表示できます。
    • さんごよみは、元々「Fumy Techer's Schedule Board」という名称で教員向けスケジュール表示CGIとして製作されたため、この「1週間の汎用スケジュール表」は、曜日ごとに「どこに居るのか?」・「何時間目に講義があるのか?」などを表示する機能として用意されました。
    • 標準では縦方向に曜日が並び、横方向に「所在」欄と「講義」欄の2欄がありますが、この「所在」・「講義」という文字列は自由に変更可能です。また、縦横のマス数を変更することもできます。したがって、学校スケジュール以外の目的にも活用可能です。クリニックの診察予定表のように曜日を横方向に載せることもできます。この「1週間の汎用スケジュール表」が不要であれば、まるごと非表示にもできます。
  • 月間スケジュール表(カレンダー)
    • 1ヶ月単位の予定をカレンダー形式で表示できます。
    • カレンダーは複数月分を同時に表示可能です。標準では3ヶ月分ずつ表示する設定ですが、何ヶ月でも自由に指定でき、上限はありません。前後のカレンダーへ移動するリンクを使えば、表示されている月数を超える先のカレンダーも表示できますし、過去のカレンダーを見ることもできます。
    • 日本の祝日規則に対応しており、各種祝日の表示が可能で、祝日が日曜日に重なった場合の「振替休日」のほか、祝日と祝日に挟まれた平日を休日にする「国民の休日」の判定・反映機能もあります。また、「創立記念日」などのユーザ独自の祝日(下図3枚目の橙色矢印部分など)を加えることも可能ですし、休日にはならない単なる記念日の表示も可能です(下図3枚目の水色矢印部分など)。※祝日や記念日の設定仕様について詳しくは後述します。
  • 長期スケジュール表
    • 遠い先のスケジュールについて、「何月何日に何がある」という形式で表示できます。
    • カレンダー表示では把握しにくい、かなり先の予定を告知するために使えます。各項目には個別に掲載期限を設定しておくことができ、期限を過ぎた項目は自動的に非表示になります。日付表示欄には自由に何でも記述できるので、必ずしも日付とセットで投稿しなければならないわけではありません。汎用の簡易掲示板としても活用可能です。
    • この「長期スケジュール表」が不要であれば、まるごと非表示にもできます。

カレンダー機能は、移動祝日も含めた日本の祝日規則に対応

  • 出力するカレンダーは、2021年時点の日本の祝日規則に対応しています。特に2020年・2021年には東京オリンピック開催に合わせて、単年だけ祝日が移動する特別ルール(海の日や体育の日が移動する特例)がありました。そのような、「特定の年だけ祝日が移動する」ケースにも対応しています。(図は、2021年に「海の日」が移動したところです。)
  • 祝日リストは自由に追加・削除等の編集が可能な上、「特定の年だけ祝日になる日」や「祝日にはならないが記念日として表示する日」や「振替休日のルールは適用しないローカル休日」等の設定も下図のように個別に設定できます。祝日リストには2022年時点での日本の祝日が登録されていますが、これらを削除することで祝日を一切表示しないカレンダーとして表示することも可能です。
  • 年ごとに対象日が変化する祝日「春分の日」(3月20日か21日頃)や「秋分の日」(9月22日か23日頃)も年ごとに自動計算して表示します。祝日ではないものの「夏至」・「冬至」・「節分」も年によって日が変わりますが、これらも自動計算して「記念日」扱い(=祝日にはならないが名称を表示する日)として表示できます。
  • 各種ハッピーマンデー規則(敬老の日が9月の第3月曜日や、海の日が7月の第3月曜日など)にも対応済みです。また、学校カレンダーや企業の営業カレンダーなどとして使う場合に「X月の第3火曜日は特別休日」のような、月曜日以外の特定の曜日に対して休日を設定するような登録もできます。
  • 2009年9月から時々発生することになった新しい「国民の休日」規則『シルバーウィーク』にも対応済みです。祝日が連続する日が日曜日に掛かっている場合に、月曜日以外の日が振替休日になる規則にも対応済みです。
  • 曜日の表示は、標準設定では「日」~「土」の日本語略称表記ですが、管理画面(コントロールパネル)から設定を変更することで「日曜日」~「土曜日」でも「Sun」~「Sat」でも何でも自由な文字列に変えられます。

カレンダーの表示もモバイル対応(スマホ対応)

  • デフォルトのスキンではレスポンシブWebデザインを採用しているため、スケジュール表示もカレンダー表示も、スマートフォンなどのモバイル端末からでも閲覧可能です。図はiOS上のSafariでの表示例です。
  • スケジュールを登録する管理画面も、モバイル端末からの操作に対応しています。

さんごよみのiOSでの表示例(カレンダー)

さんごよみのiOSでの表示例(管理画面)

画像の投稿も可能(カレンダー内にも直接画像を表示可能)

  • 画像を投稿しておく機能も内蔵されており、カレンダーや長期予定表(掲示板)に画像を掲載することもできます。(画像の投稿機能は、設定でOFFにすることもできます。投稿可能な1画像あたりのファイルサイズを制限することもできます。)
  • 投稿した画像を埋め込むほか、他サイトに存在する画像のURLを指定することでその画像を埋め込むこともできます。
  • 標準スキンでは、カレンダーに直接埋め込んだ画像はサムネイルの形で表示され、クリックして表示される詳細画面で拡大されて表示されます。スケジュールのほかに、写真やイラストの公開ツールとしても使えるかもしれません。

スタイルシートベースのデザイン

  • CGIが出力するカレンダーやスケジュール表のHTMLには、CSS(スタイルシート)でデザインできるようclass名を付加してあります。
  • 標準添付スキンでは、日曜日や祝日は赤色で、土曜日は青色で表示されていますが、これらはCSSに配色が定義してあるだけです。他の色に変更することも、色分けしないようにすることも、CSSを編集すれば自由にカスタマイズできます。
  • スタイルシートを書き換えるだけで自由にデザインの変更ができます。(サンプルのCSSファイルを参考にすると、より容易にカスタマイズできるでしょう。)

スキン式(テンプレートHTML読込式)を採用

  • このCGIが出力する「ページ全体のデザイン」は、スキンファイル(テンプレートHTMLファイル)がベースになっています。このスキンファイルを書き換えることで、自由に表示内容をカスタマイズできます。
  • カレンダーの掲載位置・表示する文章・ページデザインなど、スキンファイルを書き換えるだけで自由に配置・デザインできます。
    例えば、「長期予定表を最初に表示してから月間予定表を表示したい」などの表示順の指定や、「1週間の汎用予定表は不要だから非表示にしたい」などの表示限定の指定などは、スキンファイルの書き換えで簡単に実現できます。
  • スキンHTMLファイルの中身は、(CGI側が認識するための専用キーワードを含む以外は)一般的なHTMLですから、HTMLの編集知識があれば自由度の高いカスタマイズが可能です。
  • スキンファイルはどのようにでも編集可能ですが、無料でお使い頂く限りは「Powered by さんごよみ」の表記とリンクの掲載は必須です。ビジネスサイトでご活用になる場合など、Powered by表記を削除なさりたい場合は、別途ライセンス(安価です)をご取得頂く必要があります。詳しくはCGI使用条件(ライセンス)項目をご参照下さい。ビジネス用途であっても「Powered by さんごよみ」の表記を表示してお使いになるなら無償でご使用頂けます。なお、CGIの管理画面(コントロールパネル)に見える著作権表記を削除することはできません。

便利機能:RSS配信、定型句登録

  • カレンダーに掲載したスケジュールは、RSSフィードとして配信することもできます。
  • 頻繁に入力する文字列がある場合は、あらかじめ「定型句」として登録しておけば、プルダウンメニューから選択するだけで入力できる、スケジュール簡単入力支援機能もあります。

勝手に突然デザインが変わったりしない、自サイト専用のスケジュールカレンダー

  • スケジュール機能を備えた各種カレンダー表示サービスは、ネット上にも多々あります。しかし、運営側の都合で気に入らない変更が突然加わったり、便利に使っていた機能が改悪されることもよくあります。 さんごよみは、自力で自分のサーバに設置するCGIですから、勝手に突然デザインが変わったりすることはありません。 デザインをカスタマイズすることで、自分だけが最も見やすく使いやすいスケジュールカレンダーとして運営し続けられます。
  • 個人用のスケジュールカレンダーとしてもご活用頂けますが、「勝手にデザインが変わらない」という点は、「Web上に掲載する営業カレンダー」などのように、「他人に見せるためのカレンダー」として使われることを主に想定しています。 Webページに埋め込んだカレンダーのデザインが(サービス会社側の都合で)勝手に変わると不都合がありますよね。 さんごよみCGIなら、自分でデザインを変更しない限り、勝手に見た目が変わることはありません。

簡単設置

  • データベース不要! (ウェブサーバ側に特殊な機能は必要ありません。)
  • わずか10個のファイルを同一ディレクトリにアップロードすれば使えます。(プログラムファイル×2、データファイル×5、スキンファイル×3)
  • このCGIは、Perlで記述されています。Perl 5が実行できさえすれば、他に必要なものは(ほとんど)ありません。多くのスペースで設置・使用が可能でしょう。 (※Perl 5.6以上が必要で、CGIモジュールとTime::Localモジュールが必須ですが、たいていのウェブサーバでは使用可能でしょう。たとえ両モジュールがサーバ側に用意されていなくても、自身で入手してCGIと同じディレクトリに置けば使えます。)

この「さんごよみ」はフリーCGIとして提供しており、どなたでも無料でご利用頂けます。個人サイト・法人サイト共に、商用サイト・非商用サイト等の区別なく、ご自由にご利用下さい。 ウェブ作成業者等による代行設置も可能です。ただし、著作権表示を削除したり書き換えたりはしないで下さい。詳しくはCGI使用条件(ライセンス)項目をご参照下さい。

CGIのダウンロード

CGI「さんごよみ」一式は以下のリンクからダウンロード頂けます。ZIP形式で圧縮していますので、ダウンロード後に展開して下さい。 セットアップ方法は後述の「CGIの設置方法」をご参照下さい。

[Version] 1.2.0 [File] sangoyomi.zip [Size] 212KB [Date] 2023/02/25.
最新版 Ver 1.2.0 をダウンロードする

以下は、旧バージョンです。特に問題がない限りは、上記の最新版をダウンロードしてご使用下さい。

[Version] 1.1.0 [File] sangoyomi.zip [Size] 211KB [Date] 2022/11/24.
旧版 Ver 1.1.0 をダウンロードする
[Version] 1.0.0 [File] sangoyomi-100.zip [Size] 208KB [Date] 2022/06/25.
旧版 Ver 1.0.0 をダウンロードする

※旧バージョンからのアップグレード(バージョンアップ)方法については、下記の解説「バージョンアップ方法」をご参照下さい。

「さんごよみ」は、教員向け予定表CGI「Fumy Teacher's Schedule Board」の後継CGIという位置付けですが、データに互換性はなく、プログラムも1から完全に異なりますので、バージョン番号は引き継いでいません。 「Fumy Teacher's Schedule Board」は Ver 2.3.1 が最終バージョンで、 「さんごよみ」としては Ver 1.0.0 が最初のバージョンです。

CGIの動作サンプル

動作サンプルを見たい場合や、書き込みを試したい場合は、下記のテスト運用版をご自由にご使用下さい。スケジュールの投稿や各種管理操作をご自由にお試し頂けます。

コントロールパネルのパスワードは、どのユーザもすべて「guest」です。(半角英字)
ユーザごとに権限レベルを変えてありますので、それぞれの権限レベルでどのような表示・操作になるのかをお試し頂けます。
実際に週間スケジュール・月間カレンダー・長期予定のそれぞれに何でも自由にお書き込み頂けます。
公序良俗に反する書き込みはしないようにお願い致します。あまりにひどいと、試用版の掲載を中止せざるを得なくなってしまいますので。

この動作サンプルでは、HTMLタグの使用は不可に設定していますが、実際に運営する際にはHTMLタグも自由に入力可能です。※不可にも設定できます。

CGIの設置方法・設置環境

動作要件はとても緩いので、たいていのウェブサーバでは何も気にせず10ファイルをアップロードするだけで使える場合も多そうな気がします。

CGIの設置環境要件

  • CGIは Perl で記述しています。動作には、Perl 5 が必要です。(※Perl 5.6以上)
  • CGIモジュールTime::Localモジュールも必須ですが、CGIが使用可能なサーバならたいていインストールされているので問題ありません。(もしそれらがない場合でも、両モジュールを別途入手してCGIと同じディレクトリに置き、読み込むよう設定すれば使えます。)
  • それ以外には、特に必要なものはありません。データベースは使いません。
  • HTTPでもHTTPSでも動作します。

CGIの設置方法(パーミッションの設定)

さんごよみCGIのセットアップは簡単です。基本的には、ファイルをアップロードして、パーミッションの値を設定するだけです。
以下の3手順でどうぞ。

最近のウェブサーバなら、おそらく特に何も書き換えずにそのままアップロードするだけで動くことが多いです。
しかし、お使いのサーバによっては、CGIソースの1行目にある #! /usr/bin/env perl の記述を、例えば #! /usr/bin/perl#! /usr/local/bin/perl などに書き換える必要がある場合もあります。 もし書き換える必要があれば、sangoyomi.cgi ファイルをテキストエディタで開いて、1行目をサーバ会社の指定通りに書き換えて下さい。

ZIPを展開したファイルの内、説明用の「README.TXT」を除く計10個のファイルを、任意のディレクトリにアップロードして下さい。
サブフォルダは必須ではありませんので必要に応じてアップロードすれば良いです。考えるのが面倒なら全ファイル・全サブフォルダを(階層構造を維持したまま)アップロードしても問題ありません。
なお、FTPソフトに転送モードが選択できる場合は、《CGIソースを書き換えていないなら》バイナリモードで、《CGIソースを書き換えたなら》アスキーモード(テキストモード)に設定するのが無難です。

Webサーバにアップロードできたら、各ファイルのパーミッション(アクセス権/属性)を下表の通りに設定して下さい。

※注:レンタルサーバの「さくらインターネット」・「ロリポップ」・「リトルサーバー」などのような「suEXEC」という安全な仕組みが有効なサーバに設置する場合は、下表の「suEXEC」側のパーミッションに設定する必要があります。 誤って「一般の場合」の値を設定すると動作に支障が出る可能性がありますのでご注意下さい。

どのように設定すれば良いかが分からない場合は、下記の順でお試し下さい。

  • まず、「suEXEC」の方の値に設定してみて下さい。それで動けばそのままお使い頂けます。
  • もし動かなかったり不都合がある場合は、次に「一般の場合」の 705 や 604 のように真ん中がゼロの値を設定してみて下さい。それで動けばそのままお使い頂けます。
  • それでも問題があった場合は、「一般の場合」の 755 や 644 の方の値を設定してみて下さい。
ファイル名パーミッション補足
suEXEC※A一般の場合※B
▼プログラムファイル
sangoyomi.cgi 700705 (755)メインCGI (これを実行します) ※0
fumycts.pl 600604 (644)補助プログラム (メインCGIから呼び出されます)
▼データファイル(CGIによって書き換えられるファイル)
data-schedule.xml 600606 (666)スケジュール記録用ファイル(CGIによって編集されます) ※1,2
data-weekly.dat 週間予定表の記録用ファイル(CGIによって編集されます) ※1,3
data-longterm.xml 長期予定表の記録用ファイル(CGIによって編集されます) ※1,2
sangoyomi.ini 設定記録用ファイル(CGIによって編集されます) ※1,4
psif.cgi パスワード・セッションID格納ファイル(CGIによって編集されます) ※1,5
▼表示HTML関連ファイル
skin-cover.html 604 644
※たぶんデフォルトのままで可
表示用スキンファイル(テンプレートHTMLファイル:全体用) ※1
skin-oneday.html 表示用スキンファイル(テンプレートHTMLファイル:一日用) ※1
sangoyomi.css 表示用スタイルシートファイル ※1,6
▼サブディレクトリ(※設置は任意)
backup 705707 (777)自動バックアップファイルが蓄積されるディレクトリ ※7
images 705707 (777)投稿画像ファイルが蓄積されるディレクトリ ※7

※A:suEXECという安全な仕組みが採用されているサーバでは、こちらの値を設定しないと正しく動かない場合があります。(特にディレクトリの値を「一般の場合」にはしないようご注意下さい。)
※B:ウェブサーバのヘルプをご参照頂き、サーバ側が要求する(推奨する)値があればそれに設定して下さい。そのような情報がないか分からない場合は、まずは「705」や「604」のように真ん中がゼロの値にしてみて下さい。それで支障がある場合には、「755」や「644」などの(真ん中がゼロではない)値の方をお試し下さい。

※0:ファイル名を「index.cgi」に変更しても動作可能ですが、それよりは .htaccessファイルを使って「sangoyomi.cgi」を省略してアクセス可能にする方法の採用がお勧めです。
※1:ファイル名は自由に変更可能です。(ファイル名の変更内容は sangoyomi.cgi 内に反映させる必要があります。よく分からない場合はデフォルトのままご使用下さい。)
※2:ファイル拡張子は.xml以外に変更しても構いません。(記録形式はXMLです。)
※3:ファイル拡張子は.dat以外に変更しても構いません。(記録形式は独自の形式です。)
※4:ファイル拡張子は.ini以外に変更しても構いません。(記録形式はINIベースの独自仕様です。)
※5:ファイル拡張子は.cgi以外でも構いませんが、外部から閲覧されるのを防ぐために「.cgi」にしてあります。他の拡張子に変更する場合は、.htaccessファイルなどを使って中身が閲覧されないように設定しておく方が無難です。ログイン用のパスワードを忘れてしまった場合は、このファイルの中身を空っぽにして再度アップロードすると、無条件ログインが可能になります。
※6:ファイル拡張子は.cssでなければなりません。
※7:このディレクトリには「書き込み権限」の付与が必須です。(※サーバでsuEXECが使われている場合は、705等の一般的な値のままで正しく動作します。逆に、777などに設定すると動かなくなります。)

➡ ここまで完了したら、もう動作するハズです。

バージョンアップ方法

以前のバージョンをお使いの場合は、 sangoyomi.cgi と fumycts.pl の2つのファイルのみを上書きアップロードして下さい。 それ以外のファイルをアップロードする必要はありません。

特に、各種データファイルを上書きしてしまうと、過去のデータが消えてしまいますので、くれぐれもご注意下さい。

さんごよみCGIは、「Fumy Techer's Schedule Board」の後継CGIとして開発したものですが、システムやデータファイルに互換性は一切ありません。 「Fumy Techer's Schedule Board」のデータを引き継いで使うことはできませんのでご注意下さい。(データの記録形式も、文字コードも異なります。)

CGIの使用方法

以下は「さんごよみ」の簡単な使用方法です。
シンプルなインターフェイスのCGIなので、説明を読まなくても使えるとは思いますが。

スケジュールカレンダーの表示

適切に設置が完了していれば、 sangoyomi.cgi をブラウザで表示させることで、スケジュールを表示できます。
他のページからリンクする場合には、この sangoyomi.cgi にリンクすると良いでしょう。

なお、さんごよみCGI本体を置いたディレクトリに「.htaccess」ファイルを用意して以下の1行を書いておけば、わざわざ「sangoyomi.cgi」のファイル名を「index.cgi」に修正しなくても、「/」で終わるURLでアクセスできます。

DirectoryIndex sangoyomi.cgi

この場合、実体の位置は https://www.example.com/calendar/sangoyomi.cgi でも、 https://www.example.com/calendar/ という「/」で終わるURLだけで表示できます。

なお、スキンファイルの schedule.html を表示させても意味がありませんのでご注意下さい。
スキンファイルは、CGIから参照されるだけで、書き換えられるわけではありません。(schedule.htmlファイル内にスケジュールそのものが挿入されたりはしません。) スケジュールの表示には、CGIをブラウザで実行(表示)して下さい。

管理画面の表示

スケジュールを登録したり、設定をしたりできる管理画面には、?mode=admin のパラメータを加えるとアクセスできます。

  • CGIの本体が https://www.example.com/calendar/sangoyomi.cgi の位置にある場合は、
  • 管理画面は、https://www.example.com/calendar/sangoyomi.cgi?mode=admin のURLで表示できます。

ログインされていない状況では、管理画面が表示される前にまずログイン画面が表示されます。
一度ログインすれば、自らログアウトしない限り、セッション有効期限(標準では31日)が来るまではログイン状態が維持されます。

標準スキンには、管理画面へのリンクも設けてありますので、そのリンクをクリックすることでもアクセスできます。

初回アクセス時には、パスワードを設定して下さい。
さんごよみCGIには複数のIDを作成可能ですから、必要に応じてIDを新規作成できます。どのIDにもパスワードを設定するのを忘れないようご注意下さい。(ローカルで使用する場合など、絶対に安全だと分かっている場所で使うケースも考慮して、パスワードなしで使い続けることも可能な仕様にはなっています。)

任意の期間のカレンダーを表示する方法

カレンダーの下に表示されるナビゲーションリンクから前後の隣接月に移動することもできますが、URLにパラメータを加えれば任意の年月のカレンダーを表示できます。 指定する場合は、URLの末尾を以下のようにして下さい。

http://~/sangoyomi.cgi?year=2022&month=3

上記の場合は、2022年3月から指定月間のカレンダーを表示します。

http://~/sangoyomi.cgi?year=2023&month=1

上記の場合は、2023年1月から指定月間のカレンダーを表示します。

yearパラメータに西暦4桁を指定し、monthパラメータに月1~2桁を指定するだけです。yearパラメータとmonthパラメータは必ず2つセットで使います。どちらか一方しか指定しなかった場合は、何も指定されなかったものとして、現在月から表示されます。

1ページに何ヶ月分のカレンダーを同時表示するのかは、設定画面から自由に指定できます。12ヶ月(1年分)以上を同時に表示させることもできます。

▼表示年月を相対的に指定ができるoffsetパラメータの使い方:

任意の年月を具体的には指定せずに、「現在月より1ヶ月前」や、「現在月の2ヶ月後」のような、相対的な指定も可能です。(※Ver 1.2.0以降)
事前にリンクなりブックマークなりを1つ作っておくだけで、常に「今より1ヶ月前のカレンダーから見る」というようなこともできます。(※例えば、3ヶ月分のカレンダーを1ページに表示するよう設定しているとき、「今月・来月・再来月」ではなく、「前月・今月・来月」の3つを見たい場合など。)

http://~/sangoyomi.cgi?offset=-1

上記の場合は、現在年月から1ヶ月前のカレンダーを表示します。(過去に戻る場合は、マイナスの値を指定して下さい。)

http://~/sangoyomi.cgi?offset=2

上記の場合は、現在年月から2ヶ月後のカレンダーを表示します。(未来を指定する場合は、正の整数を指定して下さい。「+」記号は不要です。)

カレンダーに表示されるスケジュールの編集

スケジュールの編集(カレンダーへの掲載)操作手順には、下記のⒶ・Ⓑ 2通りのアプローチがあります。(どちらでも同じように登録・編集できます。)

どちらのアプローチからでも、最終的に表示されるスケジュール編集画面での登録方法は共通です。

適用しているスキンによってはⒶのアプローチが用意されていない可能性があります。その際は、Ⓑの方法を使って下さい。

▼Ⓐ ページ上に表示されているカレンダーから直接編集する方法:

下図①のように、編集したい日付をクリックします。 すると、下図②のように詳細スケジュールが疑似モーダルウインドウに表示されます。この領域の右下にスケジュール編集(登録)ボタンがありますのでクリックします。

スケジュール詳細表示部分に「編集」ボタンを配置するかどうかは、スキンの作り方次第です。
標準スキンでは、上図のように「編集」ボタンを設けてありますが、スキンをカスタマイズすることで、編集ボタンの位置を変更したり、編集ボタンを削除したりすることもできます。

標準スキンで使われている「疑似モーダルウインドウ」は、Jack Moore氏が製作した軽量でカスタマイズ可能なLightbox風jQueryプラグインである「Colorbox」をCDN経由で読み込むことで実現しています。 そのため、jQueryがCDNから読み込めなかったり、ColorboxスクリプトがCDNから読み込めなかったりすると、疑似モーダルウインドウは表示されません。
スキンを自作することで、Colorbox以外のスクリプトを使ったり、何のスクリプトも使わずに最初から詳細スケジュールを表示したり、自由に表示形態を指定できます。

▼Ⓑ 管理画面のスケジュール編集画面から編集する方法:

管理画面にアクセスして、下図①のように「スケジュール編集」ボタンをクリックします。 すると、下図②のように日付を選択する画面になりますから、編集したい日付をクリックします。編集したい月が表示されていない場合は、カレンダー下部のボタンを使って望みの月を表示させて下さい。

スケジュールが既に登録されている日には、角丸四角が表示されています。(※上図②では、6月2日や3日など計6個のセルがそうなっています。)
「今日」の日付には、セルに水色の背景色が付いています。(※上図②では、6月14日のセルがそうなっています。)

▼スケジュール編集画面での登録方法:

スケジュールは日付ごとに「概要」と「詳細」の2種類を登録できます。下図の①が概要欄、②が詳細欄です。詳細欄は入力を省略することもできます。

この「概要」と「詳細」がそれぞれどのように表示されるのかはスキン次第ですが、標準スキンでは、以下のように表示されます。

  • 「概要」:箱形カレンダーの内側に直接表示されます。(下図①)
  • 「詳細」:カレンダーで日付がクリックされた後の疑似モーダルウインドウ内に表示されます。(下図②)

「概要」側にたくさん文字を書きすぎると、カレンダーの表示が崩れますのでご注意下さい。
「概要」は10文字程度の短い内容に留めておくと、見やすいカレンダーが維持できるでしょう。

HTMLの直接入力も可能です。HTMLタグを書けば、そのままHTMLとして解釈されて表示されます。
※HTMLの直接入力は、設定でOFFにすることもできます。複数人で共有する場合など、安全面を考慮するならOFFにして運営すると良いでしょう。(動作サンプルではOFFにしてあります。

スケジュールの実データは、 data-schedule.xml ファイルに記録されています。このファイルの中身はXMLベースのテキスト形式ですから、テキストエディタでも編集できます。ファイルの中を覗いて、記録方式が想像できるなら直接編集する方が楽かもしれません。 なお、XMLの文法チェック機能のあるテキストエディタで編集するとエラーが報告される場合がありますが、そのエラーに沿って修正しないで下さい。XMLっぽいデータ形式ですが、XMLの正確な文法には従っていませんので、文法チェック機能の報告通りに修正してしまうと、表示がおかしくなる可能性があります。

一週間の汎用予定表の編集

一週間の汎用予定表は、管理画面の専用編集画面から編集できます。縦横のセル数(マス目の数)は設定画面から自由に変更できますので、縦方向ではなく横方向に曜日を配置するなどのカスタマイズも可能です。 「一週間の汎用予定表」という名称ですが、それ以外の掲示用途にも使用可能です。項目名も含めてすべてを編集可能ですから、好きなように書き換えてお使い頂けます。

一週間の汎用予定表を編集するには、管理画面のHOMEから「汎用1週間予定表編集」ボタンをクリックします(下図①)。 すると、下図②のような画面になりますので、自由に編集して下さい。標準では、縦方向に曜日が取られており、横方向に自由入力欄が3列用意されています。

縦横の行列数を変更したい場合は、管理画面の「設定」→「システム設定」→【1週間汎用予定表の設定】で下図のように設定できます。

「一週間の汎用予定表」の実データは、 data-weekly.dat ファイルに記録されています。このファイルの中身はテキスト形式ですから、テキストエディタでも編集できます。ファイルの中を覗いて、記録方式が想像できるなら直接編集する方が楽かもしれません。

長期予定表(掲示板)の編集

長期予定表(掲示板)は、管理画面の専用編集画面から編集できます。直近のカレンダーでは表示しきれないような遠い先の予定を掲載しておく掲示板のような感じを想定していますが、何を掲載する用途にも活用可能です。 投稿時に設定しておいた掲載期限日を過ぎると、自動的に非表示になる仕様があります。

長期予定表を編集するには、下図①のように管理画面の「長期予定表編集」ボタンを押します。下図②のような長期予定の一覧画面が出ます。

長期予定表では、掲載終了日付を超えた投稿は自動で非表示になりますが、データとして自動削除されるわけではありません。下図②のように、灰色背景になっている項目が「掲載期限切れ」で非表示になっている投稿です。 個別に削除するなり、編集して再利用するなりできます。 新規に項目を追加する場合は、この画面の左上にある「長期予定表に新規項目を追加」ボタンを押します。既存の項目を編集する場合は、「投稿番号」列にある「編集」ボタンを押します。

すると、下図③のような長期予定の登録画面になりますので、自由に入力して下さい。

長期予定では、入力欄3つに対して下記のように入力して投稿できます。

  • 掲載期限:その投稿を表示する期限日を YYYY/MM/DD 形式で指定します。右側のボタンを押すと簡単に入力できますが、手動で任意の日付を入力しても構いません。数字と「/」記号はすべて半角で入力して下さい。
  • 表示日付:実際に掲載する日付です。投稿日を書いても良いですし、掲載期限を書いても良いですし、日付以外の任意の文字列を書いても構いません。何でも書けます。何も書かずに空欄にすると、掲載期限と同じ日付が表示されます。
  • 本文:本文を何でも入力できます。

「長期予定表」の実データは、 data-longterm.xml ファイルに記録されています。このファイルの中身はXMLベースのテキスト形式ですから、テキストエディタでも編集できます。ファイルの中を覗いて、記録方式が想像できるなら直接編集する方が楽かもしれません。

画像の掲載方法

画像を掲載するには、以下の2通りの操作方法があります。

▼Ⓐ さんごよみCGI上で画像を投稿する場合

さんごよみCGI上で画像ファイルを投稿する場合は、下図①のように管理画面の「画像の管理」をクリックして表示される画像の管理画面で、下図②の水色矢印部分でアップロードしたい画像ファイルを選択して「アップロード」ボタンを押して下さい。

アップロードされた画像には、1つ1つ個別の「埋め込みコード」が発行されています(上図②の紫色矢印部分)。 このコードをコピーして、スケジュール本文や長期予定本文にペーストすれば、その位置にその画像が表示されます。

画像を掲載できるのは、「月間スケジュールカレンダー」(概要・詳細どちらでも)と「長期予定表」の本文の2カ所のみです。「1週間の汎用予定表」には画像は掲載できません。

▼Ⓑ 他サイトに存在する画像のURLを指定して埋め込む場合

他サイトに存在する画像のURLを指定して埋め込みたい場合は、[PICT:画像URL] の記法を本文に記述することで埋め込めます。
例えば、https://www.example.com/images/sakura.jpg にある画像を埋め込みたい場合は、[PICT:https://www.example.com/images/sakura.jpg] のように記述します。

すべて半角文字で記述して下さい。URLの前後に余計な空白があると正しく認識されません。空白なく詰めて記述して下さい。
てがろぐと同じ記法です。

画像を埋め込めるのは、「月間スケジュールカレンダー」(概要・詳細どちらでも)と「長期予定表」の本文の2カ所のみです。「1週間の汎用予定表」には画像は埋め込めません。

ページタイトルやフッタリンク、凡例の編集

ページの表示はスキンHTMLを編集することで好きなように書き換えることができます。 しかし、スキンをいちいち編集するのは手間が掛かりますから、要所はCGI上で書き換えられるようになっています。

管理画面のHOMEから「設定」→「フリースペース」をクリックすると、下図のように『ヘッダ用フリースペース』・『フッタ用フリースペース』・『多目的フリースペース』の3項目を編集できるようになります。 標準スキンでは『多目的フリースペース』は、カレンダー直下に記載されている「凡例」の掲載用に使用しています。フリースペースの掲載位置は自由ですから、それ以外の場所の更新目的に使うこともできます。

もしスケジュールにHTMLタグを使用できないよう設定していたとしても、『多目的フリースペース』欄では常にHTMLタグを使用可能です。

古いスケジュールデータについて

古いスケジュールデータ(今日よりも前のデータ)は、表示はされなくなりますが、データファイル内には残っています。 そのまま使い続けると、データファイルのサイズが大きくなっていきますので、適宜削除して下さい。 古いデータの削除は、管理画面の「再構築/一括削除」から実行できます。

この画面からは「昨年までのデータ」または「先月までのデータ」を一括削除できます。それ以外の範囲のデータを削除したい場合は、それぞれの編集画面から個別に削除して下さい。

RSSフィードの収録内容の設定方法

月間スケジュールデータ(=箱形カレンダーに表示される内容)は、RSSフィードとしても配信できます。 その際、「概要」と「詳細」のどこまでのRSSフィードに含めるかは設定画面から設定できます。

RSSフィードには、当日以後のすべてのデータが含まれます。昨日までのデータは含まれません。
当日以後のデータが1件も登録されていない場合は、中身(エントリ)のないRSSフィードが出力されますので、RSSリーダーによっては「正しいRSSではない」と解釈される可能性がある点にご注意下さい。

パスワードを忘れてしまった場合

パスワードを忘れてしまった場合は、パスワード・セッションID保存用ファイル「psif.cgi」の中身を空っぽにして再アップロードして下さい。 すると、次に管理画面にアクセスしたときにはパスワードなしでログインできます。(複数のIDを作っていた場合、すべてのIDのパスワードが「なし」状態に初期化されますのでご注意下さい。)

パスワード・セッションID保存用ファイル「psif.cgi」の中には、各IDのパスワードがハッシュ化されて保存されています。ハッシュ化とは、元に戻せない暗号化のような仕組みなので、「psif.cgi」ファイルそのものをテキストエディタ等で読み込んでもパスワードは分かりません。

CGIのカスタマイズ方法

「さんごよみ」は、表示用のスキンファイルをカスタマイズすることで、見た目を自由に変更できます。 スキンの実体は単純なHTML+CSSファイルですから、自由に編集したり自作したりしてお使い頂けます。 お望みのカレンダーになるようデザインしてみて下さい。 なお、法人向けのカスタマイズサービスも提供しておりますので、お気軽にお問い合わせ下さい。

CGIのカスタマイズに使えるファイル群

次のファイルを書き換えることで、自由にカスタマイズが可能です。

  • デザインのカスタマイズ
    • sangoyomi.css : ページのデザインを記述しているスタイルシートです。スタイルを変更したい場合に書き換えます。
  • ページそのもののカスタマイズ
    • skin-cover.html : ページ全体を作る「カバースキン」ファイルです。(このファイルを編集することで、ページの構成内容を自由に変更できます。)
    • skin-oneday.html : カレンダーの1日分を作る「1日スキン」ファイルです。(このファイルを編集することで、カレンダー内側の構成を自由に変更できます。)

    これら2ファイルは、標準スキンでは、下図のような役割分担になります。

さんごよみCGIを構成する2つのスキンファイルの役割

ページそのもののカスタマイズに使う「スキンHTML」2種では、既定のキーワードを [[KEYWORD]] のような書き方で記載することで、対応する情報を挿入できます。 それらのカスタマイズ方法を以下にご紹介致します。

ページ全体を作る《カバースキン》ファイル「skin-cover.html」の編集方法(キーワードの一覧と書き方)

カバースキンファイル「skin-cover.html」は、CGIが出力するページ全体を作るスキン(テンプレートHTML)ファイルです。テキストエディタやホームページ作成ソフトなどで編集できます。以下のキーワードを含めておくことで、CGI側が各情報を挿入して表示します。

【基本要素:月間スケジュールカレンダー関連】

  • HTML内に、[[SCHEDULE:CALENDAR]] と記述すると、その位置に月間カレンダーが挿入されます。(1スキン内で1回のみ記述できます。)
  • HTML内に、[[EDIT:CALENDAR:URL]] と記述すると、月間スケジュールの編集画面TOPのURLが挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[NAVI:CALENDAR:PREV:URL]] と記述すると、前の期間のカレンダーを表示するためのURLが挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[NAVI:CALENDAR:NEXT:URL]] と記述すると、次の期間のカレンダーを表示するためのURLが挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[NAVI:CALENDAR:PERIOD]] と記述すると、1ページに表示されるカレンダーの数が挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[RSS:URL]] と記述すると、その位置に月間スケジュールをRSSフィードで出力するためのURL相対パスで挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[RSS:URL:FULL]] と記述すると、その位置に月間スケジュールをRSSフィードで出力するためのURL絶対URLで挿入されます。(1スキン内で何回でも記述できます。)

RSSフィードに含まれるのは、月間スケジュールカレンダーに表示される予定だけです。1週間の汎用予定表や、長期予定表の内容は含まれません(それらをRSSで配信する方法は、今のところありません)。

【基本要素:1週間の汎用予定表関連】

  • HTML内に、[[SCHEDULE:WEEKLY]] と記述すると、その位置に1週間の汎用予定表が挿入されます。(1スキン内で1回のみ記述できます。)
  • HTML内に、[[EDIT:WEEKLY:URL]] と記述すると、1週間の汎用予定の編集画面のURLが挿入されます。(1スキン内で何回でも記述できます。)

【基本要素:長期予定表(掲示板)関連】

  • HTML内に、[[SCHEDULE:LONGRANGE]] と記述すると、その位置に長期予定表(掲示板)が挿入されます。(1スキン内で1回のみ記述できます。)
  • HTML内に、[[EDIT:LONGRANGE:URL]] と記述すると、長期予定表の編集画面TOPのURLが挿入されます。(1スキン内で何回でも記述できます。)

【基本要素:その他】

  • HTML内に、[[SITUATION]] と記述すると、表示する投稿が限定されている場合(年月日別表示や検索結果など)に、限定内容を案内する文言がプレーンテキストで挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[SITUATION:HTML]] と記述すると、表示する投稿が限定されている場合(年月日別表示や検索結果など)に、限定内容を案内する文言がHTMLで挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[SITUATION:TITLE]] と記述すると、表示する投稿が限定されている場合(年月日別表示や検索結果など)に、限定内容を案内する文言がプレーンテキストで挿入され、(何かが挿入される場合に限っては)末尾に「-」記号が付きます。主にtitle要素内で使うことを想定していますが、他の場所でも使えます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[SITUATION:CLASS]] と記述すると、そのとき表示されている状況を示すキーワードが半角空白区切りで挿入されます。主にbody要素のclass属性値で使うことを想定しています。詳しくは「そのときの表示状況に応じてページデザインを切り替える方法」をご参照下さい。(1スキン内で何回でも記述できます。)
  • HTML内に、[[LOGINCHECKER]] と記述すると、ログイン状態に応じて表示を切り替えるのに必要なコードが挿入されます。(1スキン内で何回でも記述できます。)

[[LOGINCHECKER]]で挿入される『ログイン状態に応じて表示を切り替えるのに必要なコード』は、ログインされていない状態で何かを非表示にするような必要がなければ、書かなくても問題ありません。

【細かな情報要素】

  • HTML内に、[[INFO:LASTUPDATE]] と記述すると、最終更新日時が「YYYY/MM/DD hh:mm:ss」形式で挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[INFO:LASTUPDATE:表記方法]] と記述すると、最終更新日時が任意の表記形式で挿入されます。書き方は内側スキンの[[DATE]]と同じです。(1スキン内で何回でも記述できます。)

【システムナビゲーション要素】

  • HTML内に、[[ADMIN:URL]] と記述すると、その位置に管理画面(コントロールパネル)のURL相対パスで挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[ADMIN:URL:FULL]] と記述すると、その位置に管理画面(コントロールパネル)のURL絶対URLで挿入されます。(1スキン内で何回でも記述できます。)

【多目的フリースペース要素】

  • HTML内に、[[FREESPACE]] と記述すると、その位置に多目的フリースペースとして登録された文章が挿入されます。標準スキンでは、月間スケジュールカレンダー用の凡例表示枠として使っていますが、そのほか何の表示目的にも活用可能です。(1スキン内で何回でも記述できます。)
  • HTML内に、[[FREESPACEEDIT:URL]] と記述すると、その位置に多目的フリースペースを編集できる管理画面へのURLが挿入されます。編集用リンクを作りたい場合に使えます。(1スキン内で何回でも記述できます。)

【ヘッダ・フッタ向けフリースペース要素】

  • HTML内に、[[FREE:TITLE:MAIN]] と記述すると、その位置に主タイトルとして設定された文字列(設定画面のフリースペース内で設定できます)が挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[FREE:TITLE:SUB]] と記述すると、その位置に副タイトルとして設定された文字列(設定画面のフリースペース内で設定できます)が挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[FREE:DESCRIPTION]] と記述すると、その位置に一行概要文として設定された文字列(設定画面のフリースペース内で設定できます)が挿入されます。(1スキン内で何回でも記述できます。)
  • HTML内に、[[FREE:HOMELINK]] と記述すると、その位置にウェブサイトHOMEへ戻るリンクが挿入されます。てがろぐHOMEへ戻るリンクではないので注意して下さい。リンク先は、設定画面のフリースペース内で設定できます。(1スキン内で何回でも記述できます。)

上記のキーワードは主に、ページのヘッダ部分やフッタ部分で使われることを想定したフリースペースです。しかし、スキンの書き方次第では、ヘッダやフッタ以外でも自由に使えます。

【汎用要素・その他】

  • HTML内に、[[RANDOM:10]] と記述すると、その位置に1~10の間のランダムな整数(1と10を含む)が半角テキストで挿入されます。値は10以外でも、1桁~10桁の範囲で任意の数値を指定できます。(1スキン内で何回でも記述できます。外側スキン・内側スキン両方で使えます。)
  • HTML内に、[[CHARCODE]] と記述すると、CGIの文字コード名が挿入されます。(1スキン内で何回でも記述できます。) ※標準では「UTF-8」です。
  • HTML内に、[[VERSION]] と記述すると、CGIの名称とバージョン番号が挿入されます。(1スキン内で何回でも記述できます。) ※この記述が1度もない場合は、CGI側が強制的にHTML末尾に同文を挿入します。スキン内にこの表記を使っておく方が、望み通りにデザインを作れるでしょう。この表示を見えなくしたり、極端に見えにくくしたりしないで下さい。

【ファイル合成・ライブラリ読み込み】

  • HTML内に、[[INCLUDE:ファイル名]] と記述すると、その位置に指定ファイルの中身がそのままが挿入されます。SSI(Server Side Include)やPHPのincludeのように動作します。例えば [[INCLUDE:apple/pen.html]] と記述すると、その位置にappleフォルダのpen.htmlの中身がそのまま挿入されます。ファイルは相対パスで記述して下さい(※注)。(1スキン内で何回でも記述できます。)

※注:相対パスでの記述は、スキンファイルの位置に関係なく、『CGI本体の存在する位置からの相対パス』で指定する必要がある点にご注意下さい。
※CGI本体よりも上位のディレクトリを参照したい場合は「../」の記述が使えます。この上位ディレクトリの参照を禁止する設定も可能です。その設定は、CGIソースの冒頭付近で変更できます。

  • HTML内に、[[JS:LIGHTBOX]] と記述すると、その位置にLightboxが必要な場合(※)に限って、Lightboxを読み込むために必要なJavaScriptが挿入されます。具体的には、CDN経由でLightbox用CSSとJavaScriptが読み込まれます。(1スキン内で1回のみ記述できます。)
  • HTML内に、[[JS:LIGHTBOX:JQ]] と記述すると、その位置にLightboxが必要な場合(※)に限って、jQueryとLightboxを読み込むために必要なJavaScriptが挿入されます。具体的には、CDN経由でjQuery本体と、Lightbox用CSSとJavaScriptが読み込まれます。(1スキン内で1回のみ記述できます。)

※「Lightboxが必要な場合」とは、投稿内に画像が1枚でも掲載されている状況で、その画像にLightbox用の属性「data-lightbox」が記述されている場合です。(外側スキンファイルに直接何かを記述している場合など、投稿以外の部分にLightboxを必要とする記述があっても反応しませんのでご注意下さい。その場合は、[[JS:LIGHTBOX]] を使うのではなく、常時Lightboxを読み込むようなHTMLをスキンに直接記述して下さい。)
※設定でLightbox以外の画像拡大スクリプトを読み込むように指定している場合は、その指定スクリプトが読み込まれます。その場合は、Lightbox用の属性「data-lightbox」ではなく、設定で指定した属性が存在している場合にのみ読み込まれます。詳しくは、「Lightbox以外の画像拡大スクリプトを読み込んで使う方法」もご参照下さい。

カレンダーの1日分を作る《1日スキン》ファイル「skin-oneday.html」の編集方法(キーワードの一覧と書き方)

《1日スキン》ファイル「skin-oneday.html」は、カレンダー内側の1日分を表示する部分を作るためのスキン(テンプレートHTML)ファイルです。下記のキーワードはどれも、1スキン内に何度でも挿入できます。(1度も使わない項目があっても構いません。)

【カレンダー日時表示関連要素】

  • HTML内に、[[DAY:NUMBER]] と記述すると、その位置に日付(日の数値)が挿入されます。年月は含まず「日」の数字だけです。主に、カレンダー内で日付数字を表示する目的で使います。
  • HTML内に、[[DAY:NAME]] と記述すると、その位置に祝日名・記念日名が挿入されます。祝日でも記念日でもなく、振替休日でもない場合は、何も挿入されません。
  • HTML内に、[[DATE:日付書式]] と記述すると、その位置に日付が指定の形式で挿入されます。
    • 「日付書式」の部分には任意の文字列を指定でき、下表のように解釈されます。取捨選択も掲載順序も自由です。同じ文字を何度も使えます。大文字・小文字は区別するので注意して下さい。下記以外の文字はそのまま出力されます。
      記号挿入内容挿入例または範囲備考
      Y年 (西暦)2022
      y年 (西暦下2桁)22
      R年 (和暦:元号+年)令和4数字の桁数は不定
      r年 (和暦:年のみ)4
      M月 (2桁固定)01 ~ 121桁なら先頭に0を付加
      G月 (1~2桁)1 ~ 121桁は1桁のまま
      J月名(和暦)睦月 ~ 師走
      E月名(英語)January ~ December
      e月名(英略)Jan ~ Dec英字3文字
      D日 (2桁固定)01 ~ 311桁なら先頭に0を付加
      N日 (1~2桁)1 ~ 311桁は1桁のまま
      W曜日(英語)Monday ~ Sunday
      w曜日(英略)Mon ~ Sun英字3文字
      B曜日(和名)月曜日 ~ 日曜日漢字3文字
      b曜日(和略)月 ~ 日漢字1文字
      A相対時間(前後付)3秒前、5分前、12日前投稿後の経過時間(※)
      a相対時間(前後無)3秒、5分、12日
      h00 ~ 232桁固定
      m00 ~ 59
      s00 ~ 59

      ※時(h)・分(m)・秒(s)の指定に意味はありません。
      このCGIは、お手軽マイクロブログCGI「てがろぐ」と一部の仕様を共有しているため、上記には「時/分/秒」を挿入する書式も含まれています。 しかし、カレンダーを表示する上で「時/分/秒」に意味はないため、「時/分/秒」を挿入するような記述を加えても「00」が固定的に出力されるだけで、意味はありません。

    • 例えば、[[DATE:Y年M月D日(w)]] と記述すると、「2024年01月31日(Wed)」の形式で挿入されます。
    • 例えば、[[DATE:R年(Y年)G月N日B]] と記述すると、「令和4年(2022年)5月16日月曜日」の形式で挿入されます。
    • 例えば、[[DATE:Y-M-D]] と記述すると、「2024-01-31」の形式で挿入されます。
    • 例えば、[[DATE:M月(J)のN日]] と記述すると、「6月(水無月)の8日」の形式で挿入されます。

    上表以外の文字はそのまま出力される仕様ですが、半角英字に関しては今後の機能追加によって新たな挿入記号として使われる可能性がありますので、半角英字は「そのまま表示される」という前提では使わない方が無難です。

【スケジュール表示要素】

  • HTML内に、[[SCHEDULE:SUMMARY]] と記述すると、その位置に概要として登録されたスケジュール本文が挿入されます。
  • HTML内に、[[SCHEDULE:DETAIL]] と記述すると、その位置に詳細として登録されたスケジュール本文が挿入されます。
  • HTML内に、[[EDITURL]] と記述すると、その位置にその日付のスケジュールを編集するための編集ページの固有URLが挿入されます。(ログインしていない状態でこのURLにアクセスした場合は、ログイン画面が先に表示されます。)

【投稿ユーザ関連要素】

  • HTML内に、[[USERID]] と記述すると、その位置に投稿者のID名が挿入されます。
  • HTML内に、[[USERNAME]] と記述すると、その位置に投稿者の表示名が挿入されます。表示名が設定されていないユーザや、既に削除されたユーザの場合はデフォルト設定の名称(標準では「?」)が代わりに挿入されます。
  • HTML内に、[[USERICON]] と記述すると、その位置に投稿者のアイコン画像がimg要素を使って挿入されます。アイコン画像が設定されていないユーザや、既に削除されたユーザの場合は、デフォルト設定のアイコンが表示されます。

ユーザ別にスケジュールを閲覧するような機能はありません。あくまでも、「そのスケジュールを最後に編集したのは誰か」が分かるだけです。

【その他】

  • HTML内に、[[RANDOM:10]] と記述すると、その位置に1~10の間のランダムな整数(1と10を含む)が半角テキストで挿入されます。値は10以外でも、1桁~10桁の範囲で任意の数値を指定できます。(この記述は、外側スキン・内側スキン両方で使えます。)

スキン編集の補足

  • HTML内のその他の部分は、何でも自由に書き換えることができます。
  • 付属のスキンファイルを参考にして編集すれば、楽にカスタマイズできるでしょう。
  • スキン内に記述したキーワードが認識されない場合は、以下の点を確認してみて下さい。
    • 括弧が二重になっているか?
      [DATE][[DATE] では認識されません。[[DATE]] のように開始括弧も終了括弧も二重になっているかどうか確認して下さい。
    • 余計な空白文字が入っていないか?
      →括弧とキーワードの間は詰めて記述する必要があります。空白があると認識されません。
    • 半角の大文字で記述しているか?
      →括弧とキーワードは半角文字でしか認識されません。また、英字は大文字でしか認識されません(※日付の指定文字列や識別子は除く)。

更新履歴

[Ver 1.1.0 → Ver 1.2.0] (2023/02/25)
■offsetパラメータを追加:「?offset=-1」で先月、「?offset=-2」で2ヶ月前、のように相対的な月指定が可能に。事前にリンクなりブックマークなりを1つ作っておくだけで「現在より1ヶ月前」とかのカレンダーにアクセスできる。
■長期予定表のデータ件数が0件のとき、「再構築」メニューをクリックするとInternal Server Errorになる問題を修正。
■サーバのエラーログにアラートが大量に記録されてしまう問題を解消。
■ある特定の祝日指定が、指定月の全日を祝日化してしまう可能性がある不具合を修正。(例えば「01/01」という祝日指定の結果 2001/01/xx の全日が祝日になってしまう問題を解消。)

[Ver 1.0.0 → Ver 1.1.0] (2022/11/24)
■カラーテーマを増量。(てがろぐ3.8.0と同じカラーテーマを使用可能に。)
■ログインフォームの下部に表示されるメッセージを管理画面上で設定しておける機能を追加。
■ドキュメントルートの自動取得位置を管理画面で確認できるように仕様改善。
■ライセンス取得時に「このCGIについて」枠の表示状態を選択できる機能を追加。

[Ver 0.1.1 → Ver 1.0.0] (2022/06/25)
スケジュール・カレンダーCGI「さんごよみ」として初公開。

[Ver 0.0.0 → 0.1.1] (2021/09/30)
一応動く状態で試験リリース。

[Ver 0.0.0] (2021/04/22)
てがろぐベースのカレンダーCGIとしての再開発を開始。

[Fumy Teacher's Schedule Board Ver 2.3.1] (2018/08/27)
2001年頃から開発を始めた前身CGI「Fumy Teacher's Schedule Board」のVer 2.3.1(最終版)を公開。

さんごよみCGIは、教員向け予定表CGIである「Fumy Teacher's Schedule Board」が前身のCGIです。「Fumy Teacher's Schedule Board」は、2001年頃に開発を開始したCGIで、既にUIが古く機能も乏しかったため、2021年にてがろぐベースで再開発を進めました。 「さんごよみ」と「Fumy Teacher's Schedule Board」は、標準スキンの見た目は似ていますが、システムに互換性はないため、「Fumy Teacher's Schedule Board」のデータを「さんごよみ」に引き継いで使うことはできません。

著作権と免責

  • このCGIの著作権は、西村文宏(にしし)にあります。
  • このCGIを使用した結果、使用者にいかなる損害を与えたとしても、製作者および公開者は、その責を一切負いません。使用者個人の責任でご使用下さい。

CGI使用条件(ライセンス)

■どなたでも使用可能
個人サイト・法人サイト・商用サイト・非商用サイト等の種別を問わず、どなたでも無料でご使用頂けます。一般公開サイト・非公開サイトなど、どこにでも設置してご使用頂けます。
■必須条件(2点)
①CGIが出力するウェブページには「Powered by さんごよみ」の表記とリンクの掲載が必須です(※平均的な人類が読める限り装飾の変更や配置の移動は自由)。ただし、削除して運営できるライセンスを用意しています
②CGIが出力する管理用画面には著作権表記(Copyright)の掲載が必須です(※移動や改変は不可)。
■禁止事項
Powered-by表記(上記①)やCGIの著作権表示(上記②)は、削除したり編集したり隠したり極端に見えにくくしたりしないで下さい。
※Powered-by表記(上記①)については、削除して運営できるライセンスをご取得頂けば削除して運営できます
不特定多数へ向けた再配布はしないで下さい。

ライセンスについて詳しくは、お問い合わせ下さい。 なお、ライセンスをご取得頂くと、管理画面HOMEに表示されている「このCGIについて」枠も非表示にできます。

■代行設置可能
ウェブ作成業者(個人事業・法人問わず)等による無償または有償での代行設置(※)にお使い頂くことも可能です。 ただし、CGIそのものを販売(またはレンタル)してはならず、CGIの著作権表示や「Powered by」表記は(上記項目の通り)削除したり修正したり隠したりしないで下さい。 また、CGIに関して作者は保証もサポートもしない点をあらかじめご了承下さい。

※ここでの「代行設置」とは、客先など相手先のサーバにアップロードして、CGIを使用可能な状態にする作業のことを指します。

「Powered by さんごよみ」表記の削除を許可したライセンスで動作しているCGIは、ライセンスコードの埋め込みをお願いしています。(ブラウザ上には表示されませんが、出力HTMLソース内にライセンスコードの存在が見えます。) なお、その場合でも「管理画面の下部に表示される著作権表示」は削除できません。

法人向けCGIカスタマイズ サービス

「さんごよみ」を御社サイトの営業カレンダー枠などに使ってみませんか?
「さんごよみ」は単独のカレンダーページを生成するだけでなく、既存ページの内部に埋め込むこともできます

ご依頼頂ければ、Powered-by表記を非表示にして使える永久ライセンスとセットにして、セットアップや設定を致します。
そのほか、御社サイトデザインに合わせたスキンの製作や、CGIソースそのもののカスタマイズも承ります。
詳しくは、お気軽にお問い合わせ下さい。

フィードバックのお願い(ご感想・ご要望歓迎)

このCGIを使ってみたご感想、ご要望などをぜひお送り下さい。
ご要望には(作者の興味が続いている限り)できるだけ応じたいと考えています。
設置された報告だけでも歓迎です。本当に歓迎です。すさまじく歓迎です。
活用されていることが分かると、開発の励みになりますので(^-^)、ぜひよろしくお願い致します。

ご要望・ご質問の送り先は

ご要望やご質問・不具合報告等は、下記へお気軽にお送り下さい。

今後のバージョンについて

次期バージョンの開発進捗状況をチェックしたい場合は、開発進捗報告ページもご覧下さい。
また、今後に追加を検討している主な機能の一覧については、下記「開発検討中の機能」項目をご参照下さい。

開発検討中の機能

さんごよみCGIへの追加を検討している機能リスト(抜粋・順不同)です。 検討はしていますが、追加できるかどうかは別問題です。(^_^;) 気長にお待ち頂ければ幸いです。 なお下記のリストに存在しても「この機能は是非とも欲しい」というものがありましたら、何度でもお知らせ頂ける方が、優先度の決定の参考にできてありがたいです。

※頂いた要望ではないものの、作者が思いついた機能等を開発放言に随時投げていますので、この中でお望みの機能があればお知らせ頂けると今後の参考になるので大変ありがたいです。

  • 標準スキン以外のスキンの公開。
  • 管理画面で、登録したスケジュールを表形式で一覧表示して編集操作できるようにする機能。
  • スケジュールのカテゴリ分類機能。
  • ハッシュタグ機能。
  • 長期予定表の投稿内容もRSSフィードに含める機能。(現在は、月間スケジュールカレンダーの掲載内容だけがRSSフィードに含まれます。)
  • 月間スケジュールカレンダー以外のデータのバックアップ機能。(現在は、月間スケジュールカレンダーの掲載内容だけが自動バックアップの対象です。)

その他、ご要望の機能がありましたら、お気軽にお知らせ下さい

--- 当サイト内を検索 ---