CustomMenu Editor プラグイン

バージョン: 0.7.0

作成者: Yoshinori Tahara - dengen

公開日: 2013.03.17

ライセンス: GPLv2

概要:

機能:

条件:

この説明のセクション:

1) インストール

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

以下の説明で,

を表しています。

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

Step 1 - アーカイブの展開

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

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

Step 4 - コンフィギュレーションの確認

Step 5 - lib-custom.php の編集

/*
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 - プラグインエディターでインストールの実行

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

Goto Top

2) アップグレード (バージョン0.6.1以前からバージョン0.7.0へ)

CustomMenu Editorプラグインはバージョン0.7.0から利用者が少なくなったIE6とIE7のサポートを廃止します。
また、ナビゲーションメニューのスタイル設定を /layout/テーマ名/custommenu/custommenu.css で行うように変更しました。
これらのことから、バージョン0.6.1以前からバージョン0.7.0へアップグレードする場合は、以下の手順により行なってください。

Step 0 - Geeklog本体のアップグレード

Step 1 - プラグインエディターで無効化

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

Step 3 - ディレクトリ/layout/テーマ名/custommenu/の削除

Step 4 - テンプレートファイルの復旧

Step 5 - スタイルシートの復旧

Step 6 - アーカイブの展開

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

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

Step 9 - プラグインエディターで有効化

Step 10 - プラグインエディターでアップデート

Step 11 - テンプレートの配置(表示レイアウトの最適化)

Goto Top

3) アンインストール

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

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

Step 2 - コンフィギュレーションの設定を元にもどす

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

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

Goto Top

4) メニューアイテムのモードについて

本プラグインではメニューアイテムを3種類のモードで使い分けることが可能です。各モードの説明を次に示します。

モード 説明 難易度 柔軟性
固定 タイトル文字列を固定するモードです。
併せて「タイトル(固定)」を入力します。
簡単
可変 Geeklogの多言語切り替え機能に応じてタイトルを可変にするモードです。
併せて「タイトル(可変)」を入力します。
「タイトル(可変)」には言語ファイル内で定義されている配列変数を指定します。
例えば、$MY_WORD['label'] をタイトルにする場合は MY_WORD['label'] を記入します。
やや難しい
PHP 多言語切り替え機能に応じてタイトルを可変にするモードです。
併せて「PHP関数名」を入力します。
「PHP関数名」にはメニューアイテムの情報を返り値として返す関数の関数名を指定します。
この関数は関数名に接頭辞「phpmenuitem_」を付けて定義して下さい。
関数の定義は system/lib-custom.php で行うのが適当でしょう。
サンプルとして、plugins/custommenu/functions.php に 次の関数を定義しています。
サンプル関数名 メニュータイトル 説明
phpmenuitem_contribute 記事投稿 話題に応じてURLを変化させる例です。
phpmenuitem_login ログイン(ログアウト) ユーザーがログインしているかどうかに応じて、タイトルとURLを変化させる例です。
難しい

Goto Top

5) 多言語切り替え機能について

Geeklog1.5.1から追加された「ブロックの多言語切り替え機能」と同様の機能をサポートします。

「ブロックの多言語切り替え機能」の詳細については以下のWikiを参照してください。

一例として、英語と日本語を切り替える場合の使用方法を示します。

about
about_en
about_ja
about        有効
about_en     無効
about_ja     無効

Goto Top

6) URLの照合機能について

URLの照合機能とは、Geeklogサイトの表示中のページのURLをメニューアイテムごとに照合し、マッチしたメニューアイテムのスタイルを変化させるものです。

例えば、リンクのページを開いているときに、リンクのメニューアイテムを反転させて表示させることが可能となります。

一例として、リンクのメニューアイテムを反転させる方法を示します。ここでは、professionalテーマを用います。

Goto Top

7) 多階層メニューに対応した独自メニューレンダラについて

CustomMenu Editor プラグインは多階層メニューや画像を使ったメニューに対応した独自メニューレンダラを搭載しています。

比較的大規模なサイトに多くみられるプルダウンメニューなどを実装可能なHTMLを出力できます。

Geeklog標準のメニューレンダラが出力するヘッダーメニュー部のHTMLは次のようなものです。

<div class="header-navigation-container">
  <ul>
    <li class="menuitem"><a href="index1.php">text1</a></li>
    <li class="menuitem"><a href="index2.php">text2</a></li>
    <li class="menuitem"><a href="index3.php">text3</a></li>
        :
        :
        :
    <li class="menuitem last"><a href="indexx.php">textx</a></li>
  </ul>
</div>

これに対して、独自メニューレンダラでは、次のような入れ子構造のHTMLを出力することができます。

<div class="header-navigation-container">
  <ul>
    <li id="menu_id1" class="menuitem"><a href="index1.php">text1</a></li>
    <li id="menu_id2" class="menuitem"><a href="index2.php">text2</a>
    <ul>
      <li id="submenu_id1" class="menuitem"><a href="index_s1.php">text1</a></li>
      <li id="submenu_id2" class="menuitem"><a href="index_s2.php">text2</a></li>
      <li id="submenu_id3" class="menuitem"><a href="index_s3.php">text3</a></li>
          :
          :
          :
      <li id="submenu_idx" class="menuitem"><a href="index_sx.php">textx</a></li>
    </ul>
    </li>
    <li id="menu_id3" class="menuitem"><a href="index3.php">text3</a></li>
        :
        :
        :
    <li id="menu_idx" class="menuitem last"><a href="indexx.php">textx</a></li>
  </ul>
</div>

また、メニューアイテムごとに次のテンプレート変数をサポートします。

テンプレート変数名 説明
menuitem_url メニューアイテムのリンク先URL
menuitem_text メニューアイテムのタイトル
menuitem_id メニューアイテムのID
menuitem_class メニューアイテムのクラス名 (例:'last')
class_property メニューアイテムのクラスプロパティ (例:'class="last"')
menuitem_icon_url メニューアイテムのアイコンとして用いる画像のURL

多階層メニューを試すには、次の操作を行って下さい。

画像を使ったメニューを試すには、テンプレート変数 menuitem_icon_url を使って、/layout/テーマ名/custommenu 内の menuitem.thtml, menuitem_drop.thtml を修正します。加えて、CSSを使ってレイアウトを調整してください。

Goto Top

8) 著作権について

本作品で、削除および矢印アイコンとして使用している 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

9) 改訂履歴

バージョン 公開日 説明
0.7.0 2013.03.17 追加 Geeklog 2.0.0からの新テーマエンジンに合わせて最適化しました。
追加 Denim, Modern Curve, WAIproCSSの各テーマのサポートを開始しました。
追加 動作に必要なGeeklogのバージョンを 2.0.0以降に変更しました。
変更 メニューデザインを新しくシンプルなデザインに変更しました。
変更 メニューのスタイル設定用のスタイルシートcustommenu.cssを追加しました。
変更 IE6及びIE7のサポートを廃止しました。
変更 テーマ標準のテンプレートmenuitem.thtml、menuitem_last.thtmlや、style.cssの変更を行う必要がなくなりました。
修正 親アイテムIDとして自分・子・孫のメニューアイテムIDを設定できてしまう問題を修正しました。
修正 管理画面でページを切り替えた場合にタイトルのチェックボックスが間違ってオン・オフされる問題を修正しました。
修正 PHPモードのメニューアイテムにぶら下がる子メニューアイテムが表示されない場合がある問題を修正しました。
修正 Geeklog本体のアップグレードとともにインストールされる場合にエラーが発生する問題を修正しました。
0.6.1 2011.11.17 修正 インストール時に初期登録メニューアイテムのグループが正しく設定されない問題を修正しました。
0.6.0 2011.5.22 追加 Geeklog 1.8.0で強化されたコンフィギュレーションUIに対応しました。
変更 動作に必要なGeeklogのバージョンを 1.8.0以降に変更しました。
0.5.0 2010.5.6 追加 Geeklog 1.6.0で追加された自動インストール機能に対応しました。
追加 Geeklog 1.6.1で追加されたCUSTOM_renderMenuに対応しました。
0.4.3 2009.8.4 追加 Geeklog 1.6.0で追加されたサイト移行機能に対応しました。
変更 Geeklog 1.6.0から追加されたCOM_output関数を使用してHTMLを出力するようにしました。
0.4.2 2009.1.9 修正 掲示板プラグイン(forum)と併用した場合に、掲示板の「最新の投稿」が表示されなくなる問題に対応しました。
0.4.1 2009.1.4 追加 PHPモードで、ID、クラス名、子メニューエントリの配列を設定できるようにしました。
修正 メニューアイテムの編集におけるバリデーションを強化しました。
修正 0.4.0以降へのバージョンアップが正常に行えない問題に対応しました。
修正 メニューアイテムIDの変更に伴い親アイテムIDが更新されない問題に対応しました。
修正 テンプレートとCSSを一部修正しました。
修正 説明書(readme_jp.thml, readme_jp_1.5.html)を充実させました。
0.4.0 2008.12.24 追加 多階層メニューや画像を使ったメニューに対応する独自のメニューレンダラを搭載しました。
修正 同梱の/layoutディレクトリの内容が古くなっていた問題を解消しました。
0.3.0 2008.12.13 追加 URLの照合機能を追加しました。
0.2.3 2008.12.9 変更 インストール・アンインストール時に必要なコンフィギュレーションの設定を、自動的に行うようにしました。(Geeklog1.5以降で使用する場合のみ有効)
追加 多言語切り替え機能への対応を強化しました。
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