Google Calendar Eventsプラグインのウイジッド表示をカスタマイズ

先日、コンサデコンサにGoogle Calendar Eventsプラグインを導入した。

カスタマイズはやりやすそうなので導入したのだが、そのカスタマイズの覚え書き。


【カスタマイズ:二日分だけ表示する方法】

ウイジッドでは、直近、何件まで表示できるという設定がある。しかしこれでは、直近、二日間分(今日、明日)だけ表示といったことができない。

これを実現するには、
Google Calendar Eventsの設定 → 各Feedの設定 → Retrieve events from/Retrieve events untilを設定する。すべてのfeedでこの設定を実行する。(ver 2.0では対応していません。0.7での話です)

GCE-tips

この設定の意味は、どこからどこを取り込むか?
・00:00today 0 → 今日のゼロ時(ゼロ秒後)から
・00:00today 172800 → 今日のゼロ時(172800秒後)まで

172800秒は、48時間・二日間なので、これで二日分の予定を取り込んでくれる。
ウイジッドの方は、件数の数字を少し大きめにしておけば、二日分の予定が全部表示できる。

秒数を変更すれば、何日分にも対応できる。


【時間を表示する】

導入当初、ウィジットでなぜか開始、終了の時間を表示してくれないという、問題にぶつかった。かなり悩んだ。結論としては、設定が必要ということが判明した。

Feed設定内のTimeFormatの欄にPHPのtimeフォーマットを記述する。ここが空欄だと、時間が表示されない。dateformatの方は、空欄でも問題なかった。

dateformat

(例)H:i

(もしかしたら)
この問題は、もしかしたらコンサデコンサでは投稿記事で投稿時間を表示させないように、設定>一般で時刻フォーマットを空欄しているのが原因かも。

投稿時間を表示させないようにするにはfunction.phpを書き換えず、コントロールパネルで設定する。設定→一般内の時間の表記をカスタムに選んで、空欄にすると表示されなくなる。

time


【ウィジッドのレイアウトを変更する】

simple display options(プリセットモード)から、Event display builder(カスタマイズモード)へ変更する。

gcepref1

defaultのショートコードの組み合わせは、
[php]

[event-title]
Starts: [start-time]
Ends: [end-date] – [end-time]

[if-location]

Location: [location]

[/if-location]
[if-description]

Description: [description]

[/if-description]

[link newwindow=”true”]More details…[/link]

[/php]

(表示例)

gcedafault

このままでは、一予定あたりの表示量が多すぎて、サイドバーを圧迫するので、シンプルにカスタマイズする。

(やりたいこと)

  1. なるべくコンパクトに表示したい。→項目毎に改行するのではなく、1行に表示したい。
  2. 開始時間を表示したい。ただし、開始時間の無いAll-Dayイベントでは開始時間を表示しない。(start-time)で表示させると、All-Dayイベントでは開始時間が0:00と表示されてしまう。これを無くしたい。
  3. (More details…)からではなく、各予定のタイトルからGoogleカレンダーに飛ばしたい。

(1)GCEのショートコードをひとつづつdivタグで区切らず、列記していけば良い。

(2)(if-not-all-day)か、(if-all-day)のショートコードを使う。これらのコードで、(start-time)コードをくくる。今回は、(if-not-all-day)を使い、All-dayイベントでない場合に、開始時間を表示する、という組み合わせで対応した。

(3)(event-title)のショートコードを、(link newwindow=”true”)のショートコードでくくると良い。

以上をまとめて、実際に使用したショートコードは下記の通り。まず最初にタイトル(ちゃんとgoogleカレンダーへのリンク付き)、2行目に開始時間と場所を表記。

[php]

[link newwindow=”true”][event-title][/link]
[if-not-all-day][start-time]から[/if-not-all-day] [if-location]場所: [location][/if-location]

[/php]

(表示例)
gcecustom

なお、祝日、誕生日などAll-day イベントしか登録されていないFeedでは、時間表記や場所の表記用のコードは削除して使用しなければよい。


【未解決の問題】
ウィジッドの本日の時間定義が世界標準時となっているためか、日本だと朝の九時に更新される。
ウイジッド表示では朝の9時に前日分の予定がクリアされ、当日分以降が表示されるようになる。0時から朝の9時までは、昨日の予定も表示されることになる。
なお、各予定の時間はTimezone設定されているのでずれたりはしない。ので、大きな実害がないので解決は先送りにすることとする。


「Google Calendar Eventsプラグインのウイジッド表示をカスタマイズ」への2件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です