# CustomMenu Editor プラグイン

## バージョン: 0.2.2

## 作成者: Yoshinori Tahara - dengen

## 公開日: 2008.9.26

## ライセンス: GPL

## 概要:

- CustomMenu Editor プラグインは，メインメニュー（ヘッダーメニュー）の設定を管理画面で簡単に行えるようにするものです。
- 厳密に言うと、本プラグインはカスタムメニューエントリーを扱うものなのですが、メインメニューの全てのエントリーをカスタムメニューエントリーに統一することにより、快適なメニュー編集が可能になります。

## 機能:

- メインメニューの登録、修正、並べ替え、削除などの編集が管理画面で行えます。
- 多言語切り替え機能に対応したモード（可変モード）を備えています。
- PHPモードにより、メニューに動的な変化を付けることができます。
- Geeklog標準のメニューエントリーがあらかじめ登録済みであり、また、各種プラグインにより登録されるメニューエントリーを自動的に収集します。

## 条件:

- このプラグインは，Geeklog 1.4.1 および 1.5.0 用です。それ以外のバージョンでは動作確認を行っていません。

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

- １） インストール
- ２） アンインストール
- ３） 著作権について
- ４） 改訂履歴

### １） インストール

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

以下の説明で，

- <geeklog_dir> は，システムの config.php が存在するディレクトリ
- <public_html> は，lib-common.php が存在するディレクトリ
- <admin> は，管理者用ファイルが存在するディレクトリ（普通は，<public_html>/admin/ ）

を表しています。

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

- CustomMenu Editor プラグインはテーブルを追加するので，管理者メニューの「DBのバックアップ」や phpMyAdmin を使用して，事前に Geeklog のデータベースをバックアップしておきます。

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

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

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

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

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

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

#### Step 4 - Geeklog 本体の config.php の編集

- (参考) Geeklogのメニューエントリーには、'home', 'contribute', 'search', 'stats', 'directory', 'prefs', 'plugins', 'custom'の８種類があります。
- (参考) このうち、'custom' はカスタムメニューエントリーの集合であり、CUSTOM_menuEntries 関数が返すエントリー群を束ねたものです。
- このセクションでは、メニューエントリーを 'custom' だけ有効にし、その他の７種類のエントリーを無効にしてしまいます。
- あなたがコンフィギュレーションエディタプラグインを使用している場合は、これを使ってメニューエントリーを「カスタム」だけ残し、その他のチェックボックスをオフにしてください。
- あなたがコンフィギュレーションエディタプラグインを使用していない場合は、<geeklog_dir>/config.phpをテキストエディタで開き、変数 $_CONF['menu_elements'] を次のように変更して下さい。

    $_CONF['menu_elements'] = array(
        'custom'
    );

#### Step 5 - lib-custom.php の編集

- (参考) Geeklog 日本語版では、<geeklog_dir>/system/lib-custom.php からカスタムメニューエントリーを司る custom_menuentries.php をインクルードしています。
- (参考) さらに custom_menuentries.php にはカスタムメニューエントリーを定義する CUSTOM_menuEntries 関数が含まれています。
- 本プラグインでは、独自にCUSTOM_menuEntries 関数を定義していますので、lib-custom.php のインクルード指令を無効にしてやります。
- <geeklog_dir>/system/lib-custom.php をテキストエディタで開き、次のようにコメントアウトしてください。（既にコメントアウトされている場合は変更不要です）

    //require_once( 'custom/custom_menuentries.php' );

#### Step 6 - プラグインエディタでインストールの実行

- Root ユーザとしてログインし，プラグインエディタから custommenu のインストールを実行します。
- 失敗した場合には，エラーログ（ error.log ）を調べます。
- これで，CustomMenu Editor プラグインはインストールされました。
- 投稿管理メニューまたはサイドバーのメニューから、「カスタムメニュー」をクリックすると、カスタムメニューリストが表示されるでしょう。

#### Step 7 - テンプレートの配置（表示レイアウトの最適化）

- CustomMenu Editor プラグインのテンプレートは professional テーマをターゲットにして最適化しています。
- professional テーマや professional テーマから派生したテーマを使用している場合は次を読まなくても良いでしょう。
- ProfessionalCSS テーマや ProfessionalCSS テーマから派生したテーマを使用している場合は、ディレクトリ<geeklog-dir>/plugins/custommenu/layout/ProfessionalCSS/custommenuを、ディレクトリ<public_html>/layout/<テーマ名>/の下へコピーしてください。

Goto Top

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

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

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

#### Step 1 - プラグインエディタでアンインストールの実行

- プラグインエディタから，custommenu をアンインストールします。このとき，CustomMenu Editor プラグインが使用していたテーブルは破棄され，その中に記録されていたデータも削除されます。

#### Step 2 - Geeklog 本体の config.php を元にもどす

- <geeklog_dir>/config.phpをテキストエディタで開き、変数 $_CONF['menu_elements'] を元にもどしてください。ちなみにGeeklog日本語版の初期値は次のようになっています。

    $_CONF['menu_elements'] = array(
        'home',         // ホーム へのリンク
        'contribute',   // 記事の新規作成へのリンク
        'calendar',     // カレンダ表示へのリンク
        'search',       // 検索オプションへのリンク
        'stats',        // ステータス情報
        'directory',    // 記事の一覧
        'prefs',        // アカウント情報
        'plugins'       // プラグイン {plg_menu_elements} 変数と同じ．
        // 'custom'     // CUSTOM_menuEntries 関数の返す文字列を表示．
        //（詳細はlib-custom.php参照）
    );

#### Step 3 - lib-custom.php を元にもどす

- １）の Step 5 で行った修正を元に戻します。

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

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

Goto Top

### ３） 著作権について

本作品で、削除および矢印アイコンとして使用している delete.png, arrow-dn.png, arrow-up.pngは Joseph North さんの著作物です。
ライセンスは次のリンクをご覧ください。

Sweetie Icon Set
----------------
Author: Joseph North
Email: sublick@gmail.com
License: Creative Commons Attribution-ShareAlike 2.0
Year: 2005

Goto Top

### ４） 改訂履歴

バージョン | 公開日 | 説明
--- | --- | ---
0.2.2 | 2008.9.26 | 修正 インクルード対策を実施しました。
0.2.1 | 2008.9.15 | 修正 CSRF対策のミスを修正しました。
0.2.0 | 2008.9.3 | 追加 Geeklog1.5で動作するようにしました。 追加 メニューアイテムの編集項目:URLで、サイトURLに置換されるタグ'[site_url]'が使えるようになりました。 修正 アンインストールしたプラグインのメニューアイテムが削除できない問題を修正しました。 修正 標準テンプレートをProfessionalCSS用のものからprofessional用のものへ変更しました。
0.1.0 | 2008.5.12 | 初期バージョン

Goto Top