【freo】【freoプラグイン】【スケジュール管理系プラグイン】スケジュールプラグイン
- 2014/03/01 07:26
- スケジュールプラグイン
- 83
スケジュールを管理するプラグインを作成しました。
特徴
開催日時の他、終了日時を設定できるので、期間のある予定を管理するのに適しています。
タイトル、場所、コメント、イメージ、ファイル(10種)、オプション(10種)を登録できます。
- 予定を登録して、一覧表示・個別に表示できます。
- 予定一覧では登録した予定を開催日時順に並べて表示します。
- 終了日時を登録できます。
- 場所を登録できます。
- 同じ開催日時の予定は予定名順に並べて表示します。
- 開催日時の昇順・降順、予定名の昇順・降順を管理画面の設定から変更できます。
- URLを入力すると予定名に任意のリンクを貼ることができます。
- コメントをつけられます。
- タグを利用して予定を分類できます。
- カテゴリーを登録して予定を分類できます。
- 予定イメージ(画像に限る)を1つ登録できます。
- 予定イメージの他に10個までファイル(画像)を登録できます。
- オプション項目を10個まで登録できます。
- オプションの名前・種類は任意に設定できます。
サンプル
当サイトのスケジュールで使用しています。
ダウンロード
導入方法
- 上記ファイルをDLして解凍する。
- あらかじめ管理者でfreoにログインしておく。
- [schedule]フォルダをfreo設置フォルダにアップデート。
- ブラウザから[freo/index.php/schedule/setup]にアクセスしてセットアップを実行する。
- パーミッションが設定されない場合は[freo/configs/plugins/schedule.ini]のパーミッションを606に設定する。
- [freo/files/temporaries/plugins/schedule]フォルダと[freo/files/plugins/schedule]フォルダのパーミッションを707に変更する。
- 管理画面の[設定管理]―[プラグインの設定]―[スケジュールプラグイン]で各種設定を行います。
- 管理画面の[プラグイン]―[スケジュールプラグイン]でイベントを登録します。
- [freo/index.php/schedule]にアクセスして正常に予定がリスト表示されるか確認してください。
デフォルト画面・ページ画面で予定を表示する方法
下記ソースをイベント予定を表示したい画面のテンプレートに挿入します。
<!--{foreach from=$plugin_schedules|smarty:nodefaults item='plugin_schedule'}--> <h3><!--{if $plugin_schedule.url}--><a href="{if $plugin_schedule.url|regex_match:'/^https?\:\/\//'}{$plugin_schedule.url}{else}{$freo.core.http_file}/{$plugin_schedule.url}{/if}" target="_blank">{$plugin_schedule.title}</a><!--{else}-->{$plugin_schedule.title}<!--{/if}--><!--{if $freo.user.authority == 'root' or $freo.user.authority == 'author'}--><a href="{$freo.core.http_file}/schedule/admin_form?id={$plugin_schedule.id}"><img src="{$freo.core.http_url}images/icons/edit.png" alt="編集" title="編集" width="16" height="16" /></a><!--{/if}--></h3> <dl class="schedule"> <dt>日時</dt> <dd><a href="{$freo.core.http_file}/schedule/view/{$plugin_schedule.id}">{$plugin_schedule.datetime|date_format:'%Y/%m/%d %H:%M:%S'}~{$plugin_schedule.enddatetime|date_format:'%Y/%m/%d %H:%M:%S'}</a></dd> <dt>場所</dt> <dd>{$plugin_schedule.place}</dd> <dt>コメント</dt> <dd>{$plugin_schedule.text|mb_truncate:50:'...'}</dd> <dt>カテゴリー</dt> <dd><a href="{$freo.core.http_file}/schedule?category_id={$plugin_schedule.category_id}">{$plugin_schedule_categories[$plugin_schedule.category_id].name}</a></dd> <dt>イメージ</dt> <dd><!--{if $plugin_schedule_files[$plugin_schedule.id].file}--><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/schedule_files/{$plugin_schedule.id}/{$plugin_schedule_files[$plugin_schedule.id].file}" alt="{$plugin_schedule.title}" /><!--{/if}--></dd> <dt>タグ</dt> <dd><!--{foreach from=$plugin_schedule_tags[$plugin_schedule.id]|smarty:nodefaults item='plugin_schedule_tag' name='loop'}--><a href="{$freo.core.http_file}/schedule?tag={$plugin_schedule_tag|smarty:nodefaults|escape:'url'}">{$plugin_schedule_tag}</a><!--{if !$smarty.foreach.loop.last}-->, <!--{/if}--><!--{/foreach}--></dd> </dl> <!--{/foreach}-->
おまけのCSS
下記ソースを[freo/css/default.css]に加筆してください。
dl.schedule dt{ clear:left; float:left; width:135px; margin:0 0 8px; background-color:#cccccc; border-left:3px solid #000000; padding-left:5px; } dl.schedule dd{margin:0 0 8px 150px;} dl.schedule dd img{max-width:200px;}
スケジュールプラグインのテーブル構成
- イベントをリスト管理します。
- 初期状態のテーブル名は
freo_plugin_eventlist
です。
フィールド | タイプ | ヌル | キー | 備考 | 格納データ | 補足 |
---|---|---|---|---|---|---|
id | INT UNSIGNED | KEY | AUTO_INCREMENT | イベントID | ||
category_id | VARCHAR | YES | カテゴリーID | |||
created | DATETIME | 登録日時 | 新規登録日時で自動的に反映 | |||
modified | DATETIME | 更新日時 | 最終更新日時を自動的に反映 | |||
datetime | DATETIME | 開催日時 | 現在日時が自動的に反映。任意で入力も可能。 | |||
enddatetime | DATETIME | 終了日時 | 現在日時が自動的に反映。任意で入力も可能。 | |||
title | VARCHAR(255) | YES | 予定名 | |||
url | TEXT | YES | 予定URL | |||
tag | VARCHAR(255) | YES | タグ | |||
place | VARCHAR(255) | YES | 場所 | |||
option01 | TEXT | YES | オプション1 | |||
option02 | TEXT | YES | オプション2 | |||
option03 | TEXT | YES | オプション3 | |||
option04 | TEXT | YES | オプション4 | |||
option05 | TEXT | YES | オプション5 | |||
option06 | TEXT | YES | オプション6 | |||
option07 | TEXT | YES | オプション7 | |||
option08 | TEXT | YES | オプション8 | |||
option09 | TEXT | YES | オプション9 | |||
option10 | TEXT | YES | オプション10 | |||
text | TEXT | YES | コメント |
スケジュールプラグインのカテゴリーテーブル構成
- スケジュールのカテゴリーを管理します。
- 初期状態のテーブル名は
freo_plugin_schedule_category
です。
フィールド | タイプ | ヌル | キー | 備考 | 格納データ | 補足 |
---|---|---|---|---|---|---|
id | INT UNSIGNED | KEY | AUTO_INCREMENT | イベントID | ||
created | DATETIME | 登録日時 | 新規登録日時で自動的に反映 | |||
modified | DATETIME | 更新日時 | 最終更新日時を自動的に反映 | |||
sort | INT UNSIGNED | 表示順 | 自動的に入力。任意で入力も可能。 | |||
name | VARCHAR(255) | カテゴリー名 | ||||
memo | TEXT | YES | カテゴリーのコメント |
更新履歴
2014/03/01 | 配布開始 |
2016/01/14 | 終了日付が不正であった不具合を解消。 [freo/libs/freo/plugins/config.schedule.php] [freo/libs/freo/plugins/page.schedule.php]をアップデートしてください。 |
Eriko
初めまして!
スケジュールプラグインで日頃から大変お世話になっています。
もし可能ならご教授いただきたいことがありコメントさせていただきました。
lolipopサーバーで使用させて頂いているのですが、
先日lolipop内事前新サーバー移設を実行し、それ以降から「終了日時」の表記がおかしなことになってしまいました。
これまでは、現在日時が正常に反映されていたものが
例えば本日付けでの投稿だと「-1年11月30日」という表記になってしまいます。
開催日時は正常に現在日時が自動的に反映されるのですが…
ちなみにPHPバージョンは5.3になります。
この移設が原因なのかが分からずコメントさせていただいたのですが
なにか修正対策などご教授お願いできればよろしくお願い致します。