インストールには,手動でプラグイン用のディレクトリを作成し,適切なディレクトリへファイルをコピーする必要があります。
以下の説明で,
を表しています。
/*
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;
}
*/
本プラグインではメニューアイテムを3種類のモードで使い分けることが可能です。各モードの説明を次に示します。
モード | 説明 | 難易度 | 柔軟性 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
固定 | タイトル文字列を固定するモードです。 併せて「タイトル(固定)」を入力します。 |
簡単 | 低 | |||||||||
可変 | Geeklogの多言語切り替え機能に応じてタイトルを可変にするモードです。 併せて「タイトル(可変)」を入力します。 「タイトル(可変)」には言語ファイル内で定義されている配列変数を指定します。 例えば、$MY_WORD['label'] をタイトルにする場合は MY_WORD['label'] を記入します。 |
やや難しい | 中 | |||||||||
PHP | 多言語切り替え機能に応じてタイトルを可変にするモードです。 併せて「PHP関数名」を入力します。 「PHP関数名」にはメニューアイテムの情報を返り値として返す関数の関数名を指定します。 この関数は関数名に接頭辞「phpmenuitem_」を付けて定義して下さい。 関数の定義は system/lib-custom.php で行うのが適当でしょう。 サンプルとして、plugins/custommenu/functions.php に 次の関数を定義しています。
|
難しい | 高 |
Geeklog1.5.1から追加された「ブロックの多言語切り替え機能」と同様の機能をサポートします。
「ブロックの多言語切り替え機能」の詳細については以下のWikiを参照してください。
一例として、英語と日本語を切り替える場合の使用方法を示します。
about
about_en
about_ja
about 有効
about_en 無効
about_ja 無効
URLの照合機能とは、Geeklogサイトの表示中のページのURLをメニューアイテムごとに照合し、マッチしたメニューアイテムのスタイルを変化させるものです。
例えば、リンクのページを開いているときに、リンクのメニューアイテムを反転させて表示させることが可能となります。
一例として、リンクのメニューアイテムを反転させる方法を示します。ここでは、professionalテーマを用います。
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を使ってレイアウトを調整してください。
本作品で、削除および矢印アイコンとして使用している 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.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 | 初期バージョン |