LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Wiki

piCal(パイカル) anchor.png

機能:カレンダー
種別:動的コンテンツ
作者:GIJOE
バージョン:0.93
動作環境:XOOPS2.0、本家版2.2、XOOPS Cube Legacy 2.1、俺的XOOPS
配布元:http://xoops.peak.ne.jp/
複製:Duplicatable V2

Page Top

概要 anchor.png

  • スケジュールを記録できるカレンダーです。複数の日にまたがる予定や、繰り返しの予定なども書き込めます。
  • 必要に応じて、年間表示、月別表示、1日表示と、予定一覧を切り替えて表示できます。
  • スケジュールはカテゴリ分けをすることができ、絞り込み表示や、カテゴリごとの閲覧権限設定が可能です。カテゴリは子要素を持つことができ、複数のカテゴリに属する予定の登録も可能です。
  • プラグインを用いることで他モジュールの更新日時を拾ってきて表示できます。
  • iCalendar*1 のデータをインポート/エクスポートできます。
  • Duplicatable V2です。モジュールのフォルダを「任意のフォルダ名+数字」とすることで、モジュールの複製が可能です。
  • バージョン0.93以降、Protector必須となりました。
Page Top

インストール anchor.png

まず、Protectorがインストールされていることを確認します。さらに一般設定で、「大きな傘Anti-XSS」が有効になっていることを確認しておいてください。

モジュール本体は、通常の方法でインストールします。
あわせて同梱されている common フォルダを XOOPS_ROOT_PATH にアップします。
commonフォルダの位置は下の図を見れば感覚的にも判りやすいでしょう。

tinyd_fig01.gif

(最近のXOOPSではこれをアップロードしなくても意外と普通に動きます)
3rdパーティ製のプラグインをインストールする場合、それぞれのプラグインが指示するフォルダ(plugins フォルダ以下。ほとんどの場合、plugins/monthly/ )にプラグインをコピーし、piCal の「プラグイン管理」で設定をします。

Page Top

アップデート anchor.png

Duplicatable V2モジュールであるため、piCalを複数利用している場合は、すべてのモジュールを一斉にアップデートする必要があります。バージョンが揃わない場合には、動作の不備があり得ます。
modules/ 以下のフォルダを上書きコピーします。
更新履歴に指示がある場合には、システム管理->モジュール管理にて、モジュールアップデートを行います。
バージョン0.5以前のpiCalからのアップグレードや、サーバを途中で移動した場合などは、piCal管理画面のテーブルメンテナンスに入ってください。メンテナンスが必要な場合、そこで指示が出されます。

また、0.93以上にアップデートする場合は、Protectorがインストールされていることを必ず事前に確認します。さらに一般設定で、「大きな傘Anti-XSS」が有効になっていることを確認しておいてください。その状態になっていないのに0.93以上に上書きアップデートすると、その時点でログインさえも容易にできなくなる可能性があります。

はまってしまった場合は、緊急回避処置として、include/read_configs.phpを編集します。

// piCal cannot work without Protector's BigUmbrella.
$rs= $xoopsDB->query( "SELECT conf_value FROM ".$xoopsDB->prefix('config')." WHERE conf_name='enable_bigumbrella'" ) ;
@list( $bigumbrella_enabled ) = $xoopsDB->fetchRow( $rs ) ;
if( empty( $bigumbrella_enabled ) ) {
	die( 'piCal cannot work without Protector\'s BigUmbrella anti-XSS.' ) ;
}

この部分をコメントアウトしてください。

Page Top

アンインストール anchor.png

通常通りのアンインストールです。
データはすべてデータベースに入っていますので、バックアップを取る場合は、xoops_pical(数字)_* というテーブル群を保存するだけで十分です。(もちろん、それだけでは、piCalのデータに結びつけられたXOOPSコア機能である、コメントやイベント通知は保存・復元できません)

Page Top

使用方法 anchor.png

インストールをして、/modules/piCal/index.php にアクセスすると、カレンダーが表示されます。すでに予定が書き込まれている場合、該当する日の予定が表示され、予定名をクリックすることで詳細が表示されます。
予定の登録権限を持つ人がログインしてる場合は、日付のマスの中に鉛筆のアイコンが表示されますので、ここからスケジュールの新規登録を行います(この場合、開始日時と終了日時にクリックした年月日があらかじめセットされています)。piCal のサブメニューの新規登録からもスケジュールの追加が可能です。
「グループの全体的な権限」などで承認が要らないとされたグループからの登録の場合、登録された予定がすぐに表示されます。承認が必要な場合は、管理者にのみ、未承認の予定が緑色で見えます。
カテゴリの追加・編集や、アクセス権限の管理は、XOOPS の管理画面で行います。

Page Top

予定の編集 anchor.png

カレンダーで各日の鉛筆アイコンをクリックするか、メニューから新規登録を選ぶことで、あたらしい予定を追加できます。
予定を新規登録をする場合は、「新規登録」ボタンしか表示されませんが、すでに登録している予定を編集する場合は、「変更」「別件登録」「削除」を選択できます。 「編集」や「削除」は、予定を登録した本人(要権限)か、piCalのモジュール管理者のみが可能です。

件名予定の名称です。月別カレンダーの項目名及び拡張ミニカレンダーのミニアイコンの alt として表示されます。
タイムゾーンイベントのタイムゾーンです。日本のイベントであればGMT+09:00です。下の開始日時は、ここで指定されたタイムゾーンでの日時で入力します。
開始日時予定の開始日時です。入力欄横のアイコンを押すと入力補助用のミニカレンダーが表示されます。
終了日時予定の終了日時です。入力欄横のアイコンを押すと入力補助用のミニカレンダーが表示されます。
全日オプション全日イベント終日の予定の場合、「全日イベント」をチェックします。開始時刻と終了時刻の入力がオフになり、その日の予定詳細では、最上段に終日イベントとして表示されます。
長期イベント終日イベントであり、かつ複数の日程にまたがる予定を、月別フルサイズカレンダーで、わかりやすく表示するためのオプションです。個々の日程に予定名を表示するのでなく、日程をまたぐ棒線で予定期間を表示し、カレンダーの欄外に予定名を表示します。表示方法上の理由から最大4件までしか表示されません。同月内に長期イベントがそれ以上ある場合は5つめから通常の全日イベントと同じく表示されます。
記念日・祝日等カレンダー上で、予定名が赤字で表示されるようになります。
「長期イベント」チェックと「記念日・祝日」チェックは、「全日イベント」をチェックしている場合のみ有効です。また「長期イベント」チェックと「記念日・祝日」チェックは、両方ともチェックできますが、カレンダーの表示上は変化しません。
場所場所情報を入力できます。
連絡先連絡先を入力できます。
詳細予定の詳細を書き込めます。入力フォーム上にスマイリーアイコンは表示されていませんが、入力すればちゃんとフェイスマークに変換されます。
カテゴリ予定が属するカテゴリを複数設定できます。
レコード表示予定の公開、非公開及び公開先の特定を設定できます。
繰り返しその予定が繰り返すものである場合、どういった繰り返し方をするのかを設定できます。繰り返し条件の設定(日単位、週単位、月単位、年単位)と、繰り返しの終了条件を設定できます。
状態予定の表示に関する承認・未承認の表示です。

Page Top

予定表 詳細情報 anchor.png

閲覧権限を持つユーザは、予定の詳細として上述の項目と最終更新日時が閲覧できます。編集の権限を持っているユーザは、この詳細情報から「編集」「削除」ができます。
それとは別に、その予定を iCalendar 形式(Mac 用と Windows 用あり)で書き出すためのボタンが表示されます(一般設定「icsファイル出力の許可・不許可」を許可している場合)。

Page Top

管理画面解説 anchor.png

スケジュールの承認管理者の承認が必要なスケジュールについて、承認・編集・削除ができます。予定追加への承認の要・不要は「一般設定」及び「グループの全体的な権限」で設定します。
予定管理登録されている予定に関して、内容の編集や予定の削除、カテゴリへの登録、iCalendar形式への出力ができます。未承認の予定もここで編集できます。
カテゴリ管理カテゴリの新規作成、編集、削除、表示のオンオフ、メニューへの表示順の設定ができます。
カテゴリーのアクセス権限グループごとに各カテゴリのアクセス権限を設定します。ただしゲストに許可されているカテゴリは、どのグループに属していても閲覧できます。
グループの全体的な権限スケジュールの登録・編集作業に関して、グループごとに、その権限を設定できます。ここでの権限設定を有効にするためには「一般設定>一般ユーザの権限」で、「グループ毎に設定する」を選ぶ必要があります。
なお管理者の権限とゲストの権限も編集できるようになっていますが、管理者はそもそも全ての権限が有効なので、ここで設定する意味はありません。またゲストの権限設定は、一般設定で行います。
iCalendar インポートオンラインにあるデータ及びローカルのiCalendar形式のデータの取り込みができます。直前にインポートされた予定は黄色く表示され、この時点で、要らない予定を削除することもできます。
テーブルメンテナンス予定データのメンテナンスを行います。古いpiCal(0.5以前)からのアップグレードした場合、まずはこの画面でテーブル構造を更新する必要があります。また、途中でpiCalを動かしているサーバのタイムゾーンが変わった場合も、ここでタイムゾーンの変更を行います。
プラグイン管理pluginsフォルダに追加したプラグインを有効にします。表中最下部の「新規」欄で、表示したいビューに対して、対象モジュールとプラグイン名を選択します。適用先に「すべて」を選ぶとすべてのビューに対して同一のモジュール-プラグインの組み合わせが登録されるので便利です。
適用先(ビュー)のうち、月間・週間・日毎の3つは、メイン画面用です。一方で、唯一、プラグイン機能が実装されたブロックである拡張ミニカレンダーは複製可能なブロックなので、複製しただけ適用先の種類は増えます。
「表示名」は、拡張ミニカレンダーで「ドット画像」とともにカレンダー下部に表示されます。オプションに対応したプラグインでは、「オプション」欄に数字を入力することで、カテゴリごとのドット画像分けなどが可能になります。
「<->」は、表示順です。
一般設定一般ユーザーとゲストの権限設定、カレンダーの表示設定、コメント・イベント通知の設定などを行えます。

Page Top

pluginsフォルダ anchor.png

pluginsフォルダの中には、さらにdaily, weekly, monthly の3種類のサブフォルダがあります。これらの中に、それぞれプラグインファイルが収められています。
実際には、dailyやweekly内のプラグインは、monthly用プラグインの無駄を省く(速度向上)ために作られたものなので、monthly用プラグインしかなくても、週間ビューや日毎ビューに利用することは可能です。

Page Top

plugin紹介 anchor.png

プラグイン名対象モジュールオプション
bulletin.phpsuinさんのbulletin用。記事登録日を表示表示したいカテゴリ番号をカンマで区切って指定可能
eguide2.phpnobuさんのイベント案内v2用。イベント日を表示なし
eguide.phpnobuさんのイベント案内v1.x用。イベント日を表示なし
hakusen-birthday.phpsuinさんの白扇用。誕生日を表示なし
membership-birthday.phpmembershipモジュール用。誕生日を表示なし
myalbum-p-categories.phpmyAlbum-P用。カテゴリ毎に最終投稿日を表示なし
myalbum-p-photos.phpmyAlbum-P用。写真投稿日を表示表示したいカテゴリ番号をカンマで区切って指定可能
mydownloads.phpmydownloads用。ファイル更新日を表示なし
mylinks.phpmylinks用。ファイル更新日を表示なし
news.phpnews用。記事登録日を表示表示したいトピック番号をカンマで区切って指定可能
piCal.phppiCal用。予定日を表示表示したいカテゴリ番号をカンマで区切って指定可能
plzXoo-answer.php教えてXoo!用。回答投稿日を表示なし
plzXoo-question.php教えてXoo!用。質問投稿日を表示なし
smartsection.phpSmartSection用。記事投稿日を表示なし
weblinks.phpWebLinks用。登録日を表示なし
weblog-blogid.phptohokuaikiさんのうぇブログ1.x用。ブログエントリ毎に投稿日を表示なし
weblog-date.phptohokuaikiさんのうぇブログ1.x用。投稿のあった日を表示なし
wordpress-daily.phpnobunobuさんのwordpressME用。投稿のあった日を表示なし
wordpress-item.phpnobunobuさんのwordpressME用。ブログエントリ毎に投稿日を表示なし
yomi.phpnao-ponさんのyomi用。リンク登録日を表示なし
Page Top

ブロック解説 anchor.png

ブロック名説明ブロック複製オプション
ミニカレンダー (piCal)任意のブロックにミニカレンダーを表示します。なにかの予定がある日付が、当該日へのハイパーリンクになります。複製可なし
拡張ミニカレンダー (piCal)任意のブロックにミニカレンダーを表示します。カテゴリや、プラグイン利用によって更新情報を取得しているモジュールごとのミニアイコンをあわせて表示し、当該項目への個別リンクを表示します。複製可「1日あたりのGIFリンク表示件数」ミニアイコンの最大数を指定します
「1プラグインあたり1日1件しか表示しない」ここにチェックをすると、1日に2個以上該当する場合でも、1個しか表示しません
月別フルサイズカレンダー (piCal)任意のブロックに月別フルサイズカレンダーを表示します。原則的には、piCal のメインページに表示される月別カレンダーと同じものですが、表示切り替えはできません。複製不可なし
今日の予定 (piCal)任意のブロックに、アクセス当日の予定を「今日の予定」として表示します。「ブロック編集」で、表示するカテゴリの絞り込みも可能です。複製可「カテゴリー絞り込み」指定されたカテゴリーの予定だけが表示されます
%s の予定 (piCal)任意のブロックに、カレンダーで表示をしている日の予定を「○月○日の予定」として表示します。「ブロック編集」で、表示するカテゴリの絞り込みも可能です。複製可「カテゴリー絞り込み」指定されたカテゴリーの予定だけが表示されます
今後の予定 (piCal)任意のブロックに、アクセス日以降の予定を「今後の予定」として表示します。「ブロック編集」で、表示するカテゴリの絞り込みと「表示件数」と最大表示日数を編集できます。未来の予定は、当日の予定とアイコン色を分けて表示されます。複製可「表示件数」予定の近い順にこの件数だけ表示されます
「カテゴリー絞り込み」指定されたカテゴリーの予定だけが表示されます
「最大*日後まで表示」あまりに遠い予定を表示したくない場合に指定します
%s 以降の予定 (piCal)任意のブロックに、カレンダーで表示をしている日以降の予定を「○月○日以降の予定」として表示します。「ブロック編集」で、表示するカテゴリの絞り込みと「表示件数」と最大表示日数を編集できます。未来の予定は、当日の予定とアイコン色を分けて表示されます。複製可「表示件数」予定の近い順にこの件数だけ表示されます
「カテゴリー絞り込み」指定されたカテゴリーの予定だけが表示されます
「最大*日後まで表示」あまりに遠い予定を表示したくない場合に指定します
新たな予定 (piCal)任意のブロックに、新規に登録された予定を表示します。「ブロック編集」で、表示するカテゴリの絞り込みと表示件数が編集できます。複製可「表示件数」登録日順にこの件数だけ表示されます
「カテゴリー絞り込み」指定されたカテゴリーの予定だけが表示されます

Page Top

テンプレートセット anchor.png

Page Top

基本テンプレート anchor.png

pical_event_detail.html予定表の詳細情報の画面テンプレート
pical_print.html印刷時の出力用テンプレート
pical_event_list.html予定表で「予定一覧表示」にした場合の画面テンプレート

piCalは、年間ビュー・月間ビュー・週間ビュー・日毎ビュー・予定編集画面は、Smartyテンプレートを利用しておらず、ある程度以上の外観編集を望む場合、どうしてもpiCal.php 自体のHackとなってしまうのが、piCalの使いづらい点である。

Page Top

ブロックのテンプレート anchor.png

pical_todays_schedule.html今日の予定の表示、または、カレンダーで指定された日の予定の表示(共用)
pical_coming_schedule.html今日以降の予定の表示、または、カレンダーで指定された日以降の予定の表示(共用)
pical_new_event.html新規に登録された予定の表示
pical_minical_ex.htmlプラグイン拡張が可能なミニカレンダーの表示
Page Top

patTemplate anchor.png

piCalの一部の機能は、patTemplateを採用している。
Smartyと異なり、ブレース{}で囲まれた英字がテンプレート変数となる。
images/default/ を別名にコピーしてからカスタマイズすること。
(一般設定で指定する必要もあり)

block_monthly.tmpl.html月間ブロックの外観
daily.tmpl.htmlメイン部日毎ビューの外観
weekly.tmpl.htmlメイン部週間ビューの外観
monthly.tmpl.htmlメイン部月間ビューの外観
yearly.tmpl.htmlメイン部年間ビューの外観
minical.tmpl.htmlミニカレンダーブロックの外観
minical_for_monthly.tmpl.html月間ビューに表示される前月および翌月のミニカレンダーの外観
minical_for_yearly.tmpl.html年間ビューの各月ミニカレンダーの外観
Page Top

意外と知られていない機能 anchor.png

Page Top

RSS出力機能 anchor.png

rss2_coming.php および rss2_today.php を利用すると、piCalに登録された予定をRSS2.0形式で取得することが可能である。
前者が「今後の予定」、後者が「今日の予定」に該当する。
あえてpubdateを出力していないので、xhldで取得すれば、予定通りに表示される。

Page Top

ロケール機能 anchor.png

locales/ フォルダ以下に、ロケールファイルが存在する。
コピーして使うのが吉で、japan.php を別名(例えばmyjapan.php)にコピーしてから、その名前をpiCal一般設定の「地域設定ファイル」に記述する(myjapan)。
あとは、その中身に「創立記念日」などを書き込めば、祝日と同じ形でローカルな休日を表現できる。

Page Top

カテゴリー名のclass指定 anchor.png

月間ビューなどに表示される予定名には、その予定が所属するカテゴリーがclass指定されている。
つまり、スタイルシートを工夫するだけで、カテゴリー毎に色分けすることが簡単にできるわけだ。

Page Top

よくある質問 anchor.png

Page Top

表示される時間がずれる anchor.png

XOOPS 一般設定と、各予定のタイムゾーンの設定を確認してください。

Page Top

カレンダーの横幅を編集したい anchor.png

フルサイズカレンダーの横幅を変えるためには、modules/piCal/class/piCal.php を編集する必要があります。しかし table の width 指定の他にスペーサー画像の編集なども必要なので、なかなか簡単にはできません。
カレンダーの table 幅がフレキシブルに変化する CSS化バージョン achiCal を使うと、編集が比較的簡単になります。

Page Top

ライセンス anchor.png

GPLv2です。


*1 イベント情報を共通に扱うために定義されたフォーマット。拡張子icsのファイルとして利用されることが多い。WindowsではOutlook、MacではiCalがそれぞれ対応している

トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 35012, today: 1, yesterday: 0
初版日時: 2006-05-29 (月) 04:23:30
最終更新: 2014-01-13 (月) 22:06:01 (JST) (1172d) by jidaikobo
Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities