# Geeklog Mycaljp プラグイン

## バージョン: 2.2.0

## 作成者: Yoshinori Tahara - dengen

## 公開日: 2012.12.8

## ライセンス: GPLv2

## 概要:

- Geeklog用サイトカレンダーです。

## 機能:

- コンテンツへのリンクが日付に張られています。日付のリンクをクリックするとその日のコンテンツの一覧が表示されます。
- 特に記事はイントロ部の一覧が表示されます。
- ユーザーが自由にカレンダーのスタイルをカスタマイズできます。
- Geeklogのテーマごとのスタイル設定が可能です。
- 複数のプリセットテンプレートが用意されています。（現在4種類）
- 管理画面で手軽にコンフィギュレーションが可能です。（検索対象の絞り込みなど、設定変更が可能）
- 土、日、日本の休日の色分け表示が可能です。
- マルチランゲージに対応しています。
- アクセシビリティに配慮して、カレンダーの読み飛ばし用リンクを配置しています。
- Ajax技術の活用により月めくりが軽くなっています。

## 条件:

- このプラグインは、バージョン2.2.0以降より、Geeklog 2.0.0 以降用となります。それ以前のバージョンのGeeklogでは動作しません。
- Dataproxyプラグインのバージョン1.6.0以降を別途インストールする必要があります。

## この説明のセクション:

- ０） インストール
- １） アンインストール
- ２） コンフィギュレーション
- ３） カスタマイズ（スタイルやレイアウトの変更）
- ４） スライドカレンダー
- ５） 改訂履歴

### ０） インストール

インストールには、手動でプラグイン用のディレクトリを作成し、適切なディレクトリへファイルをコピーする必要があります。

#### Step 0 - データベースのバックアップ

- mycaljp プラグインはテーブルを追加しませんが、管理者メニューの「DBのバックアップ」や phpMyAdmin を使用して、事前に Geeklog のデータベースをバックアップしておくことをお勧めします。

#### Step 1 - アーカイブの展開

- mycaljp プラグインのアーカイブを <geeklog-dir>/plugins/ ディレクトリに展開します。mycaljp という名前のディレクトリができます。

#### Step 2 - 必要なディレクトリの作成

- <public_html> ディレクトリの下に mycaljp という名前のディレクトリを作ります。
- <admin>/plugins/ ディレクトリの下にも mycaljp という名前のディレクトリを作ります。

#### Step 3 - 必要なファイルのコピー

- <geeklog-dir>/plugins/mycaljp/ ディレクトリに移動します。
- admin ディレクトリの内容を、Step 2 で作成した <admin>/plugins/mycaljp/ ディレクトリにコピーします。
- public_html ディレクトリの内容を、Step 2 で作成した <public_html>/mycaljp/ ディレクトリにコピーします。

#### Step 4 - プラグイン管理ページでインストールの実行

- Rootユーザーとしてログインし、プラグイン管理ページで mycaljp プラグインのインストールを実行します。
- 失敗した場合には、エラーログ（ error.log ）を調べます。
- この時点で、mycaljp プラグインはインストールされ、機能しているはずです。（自動的にサイトカレンダー表示用ブロックが作成されます）

Goto Top

### １） アンインストール

#### Step 0 - データベースのバックアップ

- mycaljp プラグインはアンインストール時に、テーブルの破棄などは行いませんが、管理者メニューの「DBのバックアップ」や phpMyAdmin を使用して、事前に Geeklog のデータベースをバックアップしておくことをお勧めします。

#### Step 1 - プラグイン管理ページでアンインストールの実行

- Rootユーザーとしてログインし、プラグイン管理ページで、mycaljp プラグインをアンインストールします。

#### Step 2 - ディレクトリの削除

- インストールの過程で作成した3つのディレクトリ（ <geeklog-dir>/plugins/mycaljp/ 、<public_html>/mycaljp/ 、<admin>/plugins/mycaljp/ ）を削除します。

Goto Top

### ２） コンフィギュレーション

管理画面のコンフィギュレーションから「Mycaljp」を選択すると、本プラグインの各種設定が行えます。
以下、設定項目を説明します。

#### サイトカレンダーのメイン設定

設定項目 | デフォルト値 | 説明 | 該当の配列変数
--- | --- | --- | ---
ヘッダータイトル（年） | 'Y年' | ヘッダータイトルのうち、年を示す部分のフォーマットを設定します。 "Y" 年．4 桁の数字．(例: 1999または2003) "y" 年．2 桁の数字．(例: 99 または 03) | $_MYCALJP2_CONF['headertitleyear']
ヘッダータイトル（月） | 'm月' | ヘッダータイトルのうち、月を示す部分のフォーマットを設定します。 "m" 月．数字。先頭にゼロをつける．(01 から 12) "n" 月．数字。先頭にゼロをつけない．(1 から 12) "F" 月．フルスペルの文字．(January から December) "M" 月．3 文字形式．(Jan から Dec) | $_MYCALJP2_CONF['headertitlemonth']
ヘッダータイトルの順序 | 年 月 | ヘッダータイトルの年と月の表示順序を設定します。 一般的に、和風にしたいときは「年 月」、洋風にしたいときは「月 年」を選択します。 | $_MYCALJP2_CONF['titleorder']
各曜日タイトル | '日' '月' '火' '水' '木' '金' '土' | 曜日の文字列を設定します。 | $_MYCALJP2_CONF['sunday'] $_MYCALJP2_CONF['monday'] $_MYCALJP2_CONF['tuesday'] $_MYCALJP2_CONF['wednesday'] $_MYCALJP2_CONF['thursday'] $_MYCALJP2_CONF['friday'] $_MYCALJP2_CONF['saturday']
土・日・休日を色分け表示する | はい | 土・日・休日を色分け表示の有無を設定します。 「はい」を選択すると色分け表示します。 「いいえ」を選択すると色分け表示しません。 | $_MYCALJP2_CONF['showholiday']
日本の休日を調べる | はい | 日本の休日を調べるかどうかを設定します。 「はい」を選択すると日本の休日を色分け表示の対象とします。 「いいえ」を選択すると日本の休日を色分け表示の対象としません。 | $_MYCALJP2_CONF['checkjpholiday']
右サイドバーを表示する | はい | 日付のリンクをクリックしたあとの、コンテンツの一覧表示画面において、右サイドバーを表示するかどうかを設定します。 「はい」を選択すると右サイドバーを表示します。 「いいえ」を選択すると右サイドバーを表示しません。 | $_MYCALJP2_CONF['enablesrblocks']
記事のイントロを表示する | はい | 日付のリンクをクリックしたあとの、コンテンツの一覧表示画面において、記事のイントロ部を表示するかどうかを設定します。 「はい」を選択すると記事のイントロ部を一覧表示します。 「いいえ」を選択すると記事のタイトルを一覧表示します。 | $_MYCALJP2_CONF['showstoriesintro']
テーマのテンプレートを使う | いいえ | テーマで提供されているテンプレートを適用するかどうかを設定します。 <public_html>/layout/テーマ名/mycaljp ディレクトリ内のテンプレートを使用するかどうか設定します。 詳細については ３） カスタマイズ（スタイルやレイアウトの変更）を参照してください。 | $_MYCALJP2_CONF['use_theme']
テンプレート名 | default | サイトカレンダーの表示に用いられるテンプレートを選択します。 本プラグインには最初から数種類のテンプレートが用意されています。 なお、名前に「_multi_language」を含むテンプレートはマルチランゲージ環境用に設定されたものです。 | $_MYCALJP2_CONF['template']
日付の形式 | [Y-m-d] | サイトカレンダーの日付などをクリックした際の検索結果で用いられる日付の形式を設定します。 「日付の形式」で使用するパラメーターは、PHPのdate()関数のformatパラメーターと同じです。 | $_MYCALJP2_CONF['date_format']
サポートするコンテンツ |  | サイトカレンダーが検索対象としてサポートするコンテンツを設定します。 | $_MYCALJP2_CONF['supported_contents']
有効にするコンテンツ |  | サイトカレンダーが検索するコンテンツを設定します。 有効：1、無効：0 | $_MYCALJP2_CONF['enabled_contents']

#### 静的ページの設定

設定項目 | デフォルト値 | 説明 | 該当の配列変数
--- | --- | --- | ---
リストに掲載するタイプ | センターブロックに表示されるページのみ | サイトカレンダーが検索する静的ページの種類を設定します。 | $_MYCALJP2_CONF['sp_type']
除外するページID | formmail | サイトカレンダーの検索対象から除外する静的ページを設定します。 | $_MYCALJP2_CONF['sp_except']

#### ブロックの設定

設定項目 | デフォルト値 | 説明 | 該当の配列変数
--- | --- | --- | ---
有効 | はい | ブロックを有効化します。 | $_MYCALJP2_CONF['block_enable']
左ブロックで表示する | はい | 左ブロックで表示(はい) あるいは右 (いいえ)に表示します。 | $_MYCALJP2_CONF['block_isleft']
ブロックの順番 | 10 | ブロックカラムのソート番号を指定します。 | $_MYCALJP2_CONF['block_order']
話題オプション | すべて | 'すべて'なら、すべてのページで表示されます。 'ホームページのみ'ならホームページのみで表示されます。 '話題を選択する'なら選択された話題でのみ表示されます。 | $_MYCALJP2_CONF['block_topic_option']
話題 | - | 話題オプションが '話題を選択する'のときだけ表示されます。 | $_MYCALJP2_CONF['block_topic']
グループ | Mycaljp Admin | パーミッションで使われるグループ | $_MYCALJP2_CONF['block_group_id']

Goto Top

### ３） カスタマイズ（スタイルやレイアウトの変更）

Geeklog テーマに合わせてサイトカレンダーのスタイルやレイアウトを変更する方法を説明します。

ここでは、テンプレート「glossy_multi_language」を元にカスタマイズすることを例にして説明します。

#### Step 0 - テンプレートのコピー

- サイトカレンダーのテンプレートは <public_html>/mycaljp/templates/ ディレクトリに配置されています。
- この中の glossy_multi_language ディレクトリおよびその中の全てのファイルを、ご使用中のテーマディレクトリ内にコピーします。
- ご使用中のテーマディレクトリ内にコピーした glossy_multi_language ディレクトリの名前を mycaljp にリネームします。
- 管理画面のコンフィギュレーション-「Mycaljp」で、「テーマのテンプレートを使う」を「はい」に設定します。

#### Step 1 - CSSファイルとテンプレートファイルの変更

- CSSファイルの <テーマディレクトリ>/mycaljp/mycaljp.css をお好みに合わせて変更してください。
- テンプレートファイルの <テーマディレクトリ>/mycaljp/*.thtml をお好みに合わせて変更してください。

#### Step 2 - 配列変数 $_MYCALJP2_CONF の活用

- PHPファイルの <テーマディレクトリ>/mycaljp/config.php で配列変数 $_MYCALJP2_CONF を設定することができます。
- <テーマディレクトリ>/mycaljp/config.php の配列変数 $_MYCALJP2_CONF による設定は、管理画面でのコンフィギュレーションより優先されます。
- 「曜日タイトル」や「ヘッダータイトルの順序」などテーマ専用に指定したい場合などに活用できます。
- マルチランゲージ環境で言語ごとに「曜日タイトル」などを変えたい場合などに活用できます。
- 配列変数 $_MYCALJP2_CONF の詳細については、<geeklog-dir>/plugins/mycaljp/install_defaults.php を参照してください。(手抜き^^;)

Goto Top

### ４） スライドカレンダー

本プラグインには、水平方向に日付を並べた、いわゆるスライドカレンダーが同梱されています。

スライドカレンダーは、水平方向に長い形状であるため、通常サイドバーに表示させることは難しく、ヘッダー部に埋め込まれることが多いようです。

ここでは、スライドカレンダーをGeeklogテーマのヘッダー部に埋め込む手順を説明します。

スライドカレンダーはGeeklogテーマに埋め込んで使用しますので、同時にサイトカレンダーのカスタマイズを行うことはできません。

#### Step 0 - テンプレートのコピー

- <geeklog-dir>/plugins/mycaljp/slidecalender/mycaljp/ ディレクトリおよびその中の全てのファイルを、ご使用中のテーマディレクトリ内にコピーします。

#### Step 1 - スライドカレンダー用CSSのインポート

- ご使用中のGeeklogテーマのテンプレートファイル（通常は style.css ）をテキストエディターで開き、テキスト中の適切な位置に次の文字列を挿入し保存してください。
  (@importルールの前にスタイルを記述したり、@importルールの間にスタイルを記述することはできませんので、ご注意ください。)

    @import url("mycaljp/mycaljp.css"); /* スライドカレンダー用スタイル */

#### Step 2 - Geeklogテーマのテンプレートファイルの変更

- ご使用中のGeeklogテーマのテンプレートファイル（通常は header.thtml ）をテキストエディターで開き、スライドカレンダーを表示させたい位置に次の文字列を挿入し保存してください。
  これで、スライドカレンダーは表示されるようになったはずです。

    <?php if (function_exists(mycaljp_slidecalender)) echo mycaljp_slidecalender(); ?>

#### Step 3 - CSSファイルとテンプレートファイルの変更

- CSSファイルの <テーマディレクトリ>/mycaljp/mycaljp.css をお好みに合わせて変更してください。
- テンプレートファイルの <テーマディレクトリ>/mycaljp/*.thtml をお好みに合わせて変更してください。

#### Step 4 - 配列変数 $_MYCALJP2_CONF の活用

- ３） カスタマイズ（スタイルやレイアウトの変更）の Step 2 をご覧下さい。

Goto Top

### ５） 改訂履歴

バージョン | 公開日 | 説明
--- | --- | ---
2.2.0 | 2012.12.8 | 変更 Geeklog 2.0.0からの新テーマエンジンに合わせて最適化しました。 変更 動作に必要なGeeklogのバージョンを 2.0.0以降に変更しました。 変更 ダイナミックブロックタイプに変更しました。 修正 コンフィギュレーションの設定項目「サポートするコンテンツ」及び「有効にするコンテンツ」の変更でエラーが発生する問題を修正しました。
2.1.4 | 2011.9.3 | 追加 Geeklog1.8からの新コンフィギュレーションUIに対応しました。
2.1.3 | 2010.11.27 | 変更 コンフィギュレーションの設定項目「テンプレート名」を選択式へ変更しました。（設定がより簡単になります。） 変更 サポートするコンテンツの初期値からdownloadを削除し、downloadsを追加しました。
2.1.2 | 2010.3.6 | 修正 「テーマのテンプレートを使う」機能が実際には動作していなかった問題を修正しました。（ひろろんさんに感謝します。）
2.1.1 | 2009.11.7 | 変更 携帯電話でのカレンダー表示を改善し、月めくり操作が問題なくできるようにしました。
2.1.0 | 2009.11.3 | 変更 Geeklog1.6で動作するようにしました。 追加 Dataproxyに対応しました。（というかDataproxyが必須になりました） 追加 コンフィギュレーションとオートインストール機能に対応しました。
2.0.7 | 2009.8.17 | 修正 XSS脆弱性を修正しました。
2.0.6 | 2009.3.28 | 追加 Auge Bangさんが制作された、「mycaljp専用Black Theme」を同梱しました。(Augeさん、どうも有難うございます!) 修正 Geeklog1.5以降で記事のイントロ表示した際に日付が現在の日付になってしまう問題を修正しました。
2.0.5 | 2008.9.26 | 追加 インクルード対策を実施しました。
2.0.4 | 2008.9.17 | 追加 Calendarjpプラグインに対応しました。
2.0.3 | 2008.9.15 | 修正 CSRF対策のミスを修正しました。
2.0.2 | 2008.9.10 | 追加 CSRF対策を施しました(Geeklog1.5以降でのみ有効)。
2.0.1 | 2008.7.26 | 変更 Geeklog1.5で動作するようにしました。 修正 プラグインバージョンが正常に更新されない問題を修正しました。 修正 テンプレートおよびスタイルシートの軽微な修正。
2.0.0 | 2008.3.21 | 初期バージョン

Goto Top