インストールには,手動でプラグイン用のディレクトリを作成し,適切なディレクトリへファイルをコピーする必要があります。
以下の説明で,
を表しています。
$_CONF['menu_elements'] = array(
'custom'
);
//require_once( 'custom/custom_menuentries.php' );
$_CONF['menu_elements'] = array(
'home', // ホーム へのリンク
'contribute', // 記事の新規作成へのリンク
'calendar', // カレンダ表示へのリンク
'search', // 検索オプションへのリンク
'stats', // ステータス情報
'directory', // 記事の一覧
'prefs', // アカウント情報
'plugins' // プラグイン {plg_menu_elements} 変数と同じ.
// 'custom' // CUSTOM_menuEntries 関数の返す文字列を表示.
//(詳細はlib-custom.php参照)
);
本プラグインではメニューアイテムを3種類のモードで使い分けることが可能です。各モードの説明を次に示します。
モード | 説明 | 難易度 | 柔軟性 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
固定 | タイトル文字列を固定するモードです。 併せて「タイトル(固定)」を入力します。 |
簡単 | 低 | |||||||||
可変 | Geeklogの多言語切り替え機能に応じてタイトルを可変にするモードです。 併せて「タイトル(可変)」を入力します。 「タイトル(可変)」には言語ファイル内で定義されている配列変数を指定します。 例えば、$MY_WORD['label'] をタイトルにする場合は MY_WORD['label'] を記入します。 |
やや難しい | 中 | |||||||||
PHP | 多言語切り替え機能に応じてタイトルを可変にするモードです。 併せて「PHP関数名」を入力します。 「PHP関数名」にはメニューアイテムの情報を返り値として返す関数の関数名を指定します。 この関数は関数名に接頭辞「phpmenuitem_」を付けて定義して下さい。 関数の定義は system/lib-custom.php で行うのが適当でしょう。 サンプルとして、plugins/custommenu/functions.php に 次の関数を定義しています。
|
難しい | 高 |
バージョン0.2.3より多言語切り替え機能への対応を強化しました。
バージョン0.2.2以前のバージョンでは、多言語切り替えのために「可変モード」を用意していましたが、メニューアイテムの表示を切り替えることはできるものの、リンク先まで切り替えることはできませんでした。(そこまでやるにはPHPモードを活用する必要がありました。)
バージョン0.2.3からはGeeklog1.5.1から追加された「ブロックの多言語切り替え機能」と同様の機能をサポートします。
「ブロックの多言語切り替え機能」の詳細については以下のWikiを参照してください。
一例として、英語と日本語を切り替える場合の使用方法を示します。
about
about_en
about_ja
about 有効
about_en 無効
about_ja 無効
バージョン0.3.0よりURLの照合機能を追加しました。
URLの照合機能とは、Geeklogサイトの表示中のページのURLをメニューアイテムごとに照合し、マッチしたメニューアイテムのスタイルを変化させるものです。
例えば、リンクのページを開いているときに、リンクのメニューアイテムを反転させて表示させることが可能となります。
ただし、別途、システムの一部(lib-common.php)とテーマの一部を変更する必要があります。
一例として、リンクのメニューアイテムを反転させる方法を示します。ここでは、professionalテーマを用います。
バージョン0.4.0より多階層メニューや画像を使ったメニューに対応した独自メニューレンダラを搭載しました。
比較的大規模なサイトに多くみられるプルダウンメニューなどを実装可能な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を使ってレイアウトを調整してください。
本作品で、削除および矢印アイコンとして使用している 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
バージョン | 公開日 | 説明 |
---|---|---|
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 | 初期バージョン |