Joomler!.net - Decided on Joomla!

Wiki or Wordpress? No it is JContentPlus.

 

Archives

Blog

Demo

Home » Blog » メニュー
0 votes
Written by:Joomler! 9790 hits Wednesday, 25 March 2009 16:43

google_chrome

Joomla!の管理画面をChromeで見ています。

コンポーネントを作成していて、バックエンドのファイルを、コードが書いていない状態で一通り用意し、バックエンドのコンポーネントのメニューをクリックするとPHPのエラーが発生した画面になるのが普通ではじめはその通りの表示だったのですが、コードを追記し、異なるエラーを発生させてもChromeではその画面にはならない現象が発生しました。

それ以降どれだけコードを変更しても駄目でした。結局、その状態をFirefoxで確認すると正常でしたが、Chromeではブラウザの再起動か何かしないと正常な状態にはなりませんでした。

最初、設定が悪かったかと思い、何度も確認したのですが、おかしいところは何もないし、

「こんなところで、つまずくか?」

と考えながらひとつひとつチェックしていました。

まさか、Chromeが原因だとは思いもしなかったので今後注意しないといけません。Chromeでは、リンク先を先読みしてキャッシュしているのでしょうか・・・。

 
0 votes
Written by:Joomler! 7060 hits Tuesday, 10 March 2009 16:35

第四回は、メニューで設定したクラス接尾辞をテンプレートで利用してみます。

ページ毎(メニュー毎)にクラスの値を変えたり表示を変更するのは、$Itemid(メニューID)を下記のように取得すれば良いことをご存じの方は多いと思います。

$Itemid = JRequest::getInt('Itemid');

これで取得したメニューIDでモジュールを表示したり、非表示にすることは、Joomla!1.0.xからも、普通に今まで行ってきました。ですが、これだとクラスの値だけをページ毎に設定したくてもコンテンツなどには、接尾辞は反映されるが、テンプレートまでは来ません。

そこで以下のようにしてメニューで設定したクラス接尾辞をテンプレートで利用できるようにしました。

$Itemid = JRequest::getInt('Itemid');
$pageclass_sfx = '';
if($Itemid > 0){
	$menu = &JSite::getMenu();
	$params = & $menu->getParams($Itemid);
	$pageclass_sfx = $params->get('pageclass_sfx', '');
}

$this->params->set('pageclass_sfx', $pageclass_sfx);

こうすることで、通常テンプレートのパラメータ(設定値)を得るように

$this->params->get('pageclass_sfx');

で現在のメニューで設定した、クラス接尾辞が得られます。$Itemidで分岐してやることと大きな差はありませんが、最初に上記のコードを書いておく事で面倒な複数の分岐処理を書く必要がなくなります。

全く同じようにする必要はありませんが、何かの足しにはと・・・。

 
1 votes
Written by:Joomler! 9125 hits Monday, 16 February 2009 17:04

このサイトのテンプレート作成の事もあり、私なりにテンプレート作成記録を書いていこうかと思う。

まず、第一回(って続くのか?)
よくあるサイト下部の 「|」で分割されたメニューをモジュールの出力をそのまま使って、作ってみる。できあがりの出力結果は、画像の通り。

 template_01_module_override

ちなみに解説すると、tableタグを使わずセンターに持ってきて、しかも文字で「|」をセパレータとして使い、センターに持ってきて且つ、横幅は臨機応変、柔軟に対応したい。(こんなことしなくたって・・・と言う方は、さっさとよそへ行った方が時間がもったいないです。)

で、モジュールから出力されるメニューは、モジュール(mod_mainmenu)の設定をどうしようが、メニューリンクは、必ず「ul」なり、「table」タグで囲まれて出力されます。私のような、CSS下手な人間にとってこれは、非常に面倒です。・・・私には無理です。

そこで、こんなオーバーライドをしてみました。

 
0 votes
Written by:Joomler! 12425 hits Friday, 28 November 2008 16:38

サイトを作成しているとよくあることですが、

  • この時は表示したいけどいつも非表示にしたい。
  • この時だけは非表示にしたい。

などと。

Joomla!は、メニューにテンプレートを割り当てる事ができるのでメニュー毎にテンプレートを切り替える方法は、一般的な方法です。

もう一つ簡単な方法として考えられること。要はその表示・非表示の条件が、何で判断できるかを考えてみます。

例えば、

  • ログインしていない時に表示したいけど、ログイン後は非表示にしたい。
    簡単です。モジュールの中にきっとログイン後しか表示しないモジュールがあると思います。なければ、ユーザー詳細などログイン後にしか表示しないメニューを他のメニューモジュールとは別で作成し、アクセスするレベルを一般(Public)から登録(Registered)に変更します。そして単独(他の同条件のモジュールと共に)で表示するモジュールポジションを作成します。ログイン後に表示したいモジュールを作成したポジションに指定します。

    後は、下記のようにテンプレートに記述すれば、このモジュールが表示されているときは、ログイン後で表示されていないときは、ログインされていないと判断することができます。
    <?php if($this->countModules('作成したモジュールのモジュールポジション')) : ?>
    	<jdoc:include type="modules" name="ログイン後に表示したいモジュールポジション" style="rounded" />
    <?php endif; ?>
 
2 votes
Written by:Joomler! 8076 hits Thursday, 24 July 2008 16:34

などと本家フォーラムにて議論されていましたが、Joomla!1.5はデモとして使っているだけなのでさっぱり何のことだかわかりませんでした。1.5.4にアップデート後でしたが、さっぱりわかりません。と、昨日画像つきで解説されていたのを見て初めてこれのことかと・・・。

実例

duplicate_title

などとページにタイトルが・・・。でも、これって普通じゃないの?というかメニューのパラメータ設定に表示・非表示がありますよね。同じものがページのタイトルになってブラウザのタイトルバーに表示されています。・・・別におかしくないような・・・。前からそうじゃなかったっけ?などと思ったり。使っていないのでそうなのかもしれません。もしかしたらデフォルトでなかったものがデフォルトになっただけとか。・・・どうなのでしょう。(確かめていません。)

普通にメニューのパラメータ設定の一番下の欄(システム・パラメータ)のページタイトルの表示を非表示すればでません。

・・・はじめてじゃないだろうか・・・こんなに投稿しない日が連続したのは。Island with a palm tree

別にさぼってたわけじゃないですが・・・。Dont tell anyone

 
3 / 4

JContentPlus for Joomla!1.5 powered by Joomler!.net

joomler.net is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla!(R) name is used under a limited license from Open Source Matters in the United States and other countries.
joomler.net is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.