# 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のメニューエントリーには、'home', 'contribute', 'search', 'stats', 'directory', 'prefs', 'plugins', 'custom'の８種類があります。
- (参考) このうち、'custom' はカスタムメニューエントリーの集合であり、CUSTOM_menuEntries 関数が返すエントリー群を束ねたものです。
- 管理画面で「コンフィギュレーション：Geeklog」の「Geeklogの設定：テーマ」を選択し、「テーマ」フィールドの「メニュー項目」 に「custom」を追加し、それ以外の全ての値を削除してください。

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

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

    /*
    function CUSTOM_menuEntries ()
    {
        global $_CONF, $_USER;

        $myentries = array ();

        // Sample link #1: Link to Gallery
        $myentries[] = array ('url'   => $_CONF['site_url'] . '/gallery/',
                              'label' => 'Gallery');

        // Sample link #2: Link to the Personal Calendar - only visible for
        // logged-in users
        if (!empty ($_USER['uid']) && ($_USER['uid'] > 1)) {
            $myentries[] = array ('url'   => $_CONF['site_url']
                                             . '/calendar/index.php?mode=personal',
                                  'label' => 'My Calendar');
        }

        return $myentries;
    }
    */

#### 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 - コンフィギュレーションの設定を元にもどす

- １）の Step 4 で行った修正を元に戻します。
- 管理画面で「コンフィギュレーション：Geeklog」の「Geeklogの設定：テーマ」を選択し、「テーマ」フィールドの「メニュー項目」を元にもどしてください。
- (参考) Geeklogのメニュー項目の初期値は、順に'contribute', 'search', 'stats', 'directory', 'plugins' です。

#### 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