$this->BcBaser->element('global_menu')で展開されるリスト要素にてcurrentクラスが定義されないことがある
TeddyBuddy > $this->BcBaser->element('global_menu')で展開されるリスト要素にてcurrentクラスが定義されないことがある @ 2014/8/7 3:46 |
---|
■ BaserCMS:3.0.5
■ スマートURL:OFF ■ 設置フォルダ:サブフォルダ ■ OS:OS X 10.9.4 ■ PHP:5.4.24 ■ 利用データベース:MySQL 5.6.19 $this->BcBaser->element('global_menu')を入れると、
といった具合に展開されるかと思います。 この時、現在見ているページとメニューが一致する時にLI要素のクラスに"current"と入るはずなのですが、 選んだページによって入る時と入らない時があります。 上の例の場合だと「メニュー2」「メニュー5」「メニュー6」のページを開いた時はそれぞれのLI要素のクラスに"current"と入ったのですが、それ以外のページでは入りませんでした。 何か特定の条件下で発生しているのかと思って確認してみたのですが、どうもそのようではないのです。 本来はきちんと"current"が入ると思うのですが、いかがでしょうか? |
goichi > Re: $this->BcBaser->element('global_menu')で展開されるリスト要素にてcurrentクラスが定義されないことがある @ 2014/8/7 23:31 |
---|
こんにちは、私の環境だと正常動作しているように思います。
引用: 本来はきちんと"current"が入ると思うのですが、いかがでしょうか? サンプルを掲示していただいた通り、menu01〜06を作成して試してみましたが、全てのページでliに「current」クラスが付与されました。。。 ただ、3.0.5が出たばかりのバージョンなので、他の人の環境だと同じ現象が起きるかもしれませんので、少し回答を待ってみても良いかも知れません。 |
TeddyBuddy > Re: $this->BcBaser->element('global_menu')で展開されるリスト要素にてcurrentクラスが定義されないことがある @ 2014/8/14 1:12 |
---|
goichiさん、投稿ありがとうございます。
まず、1つ記入し忘れていましたが、私はglobal_menu.phpファイルを使用しているテーマのElementsフォルダに用意しておりません。 よって、コアテンプレートのファイルを参照していると思われます。 goichiさんもコアテンプレートのファイルを使って検証されたと思われます。 引用: サンプルを掲示していただいた通り、menu01〜06を作成して試してみましたが、全てのページでliに「current」クラスが付与されました。。。 あれから自分でも検証してみたところ、私の提示した例では問題ないようですね。 それで、問題のあった箇所となかった箇所の違いを検証したところ、 問題が起こるのはメニュー項目のリンク先が次のような場合でした。 ○「ホーム」の場合(/index.php/) ○固定ページカテゴリーのインデックスページ(/index.php/[ページカテゴリー名]) ○ブログのインデックスページ(/index.php/[ブログアカウント名]) これはこういう仕様なんでしょうかね。 コアテンプレートに含まれているglobal_menu.phpファイルを使ってカスタマイズするしかないですかね。 一度挑戦してみますが、何か良い方法があればご提示ください。 |
TeddyBuddy > Re: $this->BcBaser->element('global_menu')で展開されるリスト要素にてcurrentクラスが定義されないことがある @ 2014/8/14 1:50 |
---|
引用:
それで、問題のあった箇所となかった箇所の違いを検証したところ、 更に検証したところ、リンク先URLの後ろに"index"を追加すると問題なく"current"が追加されることが分かりました。 ○「ホーム」の場合(/index.php/ → /index.php/index) ○固定ページカテゴリーのインデックスページ(/index.php/[ページカテゴリー名] → /index.php/[ページカテゴリー名]/index) ○ブログのインデックスページ(/index.php/[ブログアカウント名] → /index.php/[ブログアカウント名]/index) ただ、できることなら少しでもURLを短くすっきりさせたいので、せめて「ホーム」だけでも"index"を追加しなくても上手くいくようにしたいなあと思います。 一応global_menu.phpファイルと睨めっこしてみたいと思います。 |
TeddyBuddy > Re: $this->BcBaser->element('global_menu')で展開されるリスト要素にてcurrentクラスが定義されないことがある @ 2014/8/14 13:00 |
---|
引用:
ただ、できることなら少しでもURLを短くすっきりさせたいので、せめて「ホーム」だけでも"index"を追加しなくても上手くいくようにしたいなあと思います。 こんな感じで直してみました。 まず、「Home > システム設定 > メニュー管理 > メニュー一覧」にて該当するメニュー名のリンクURLを次のように設定しました。 ○「ホーム」の場合(/) ○固定ページカテゴリーのインデックスページ(/[ページカテゴリー名] → /[ページカテゴリー名]/) ○ブログのインデックスページ(/[ブログアカウント名] → /[ブログアカウント名]/) 要は必ず"/"で終わるようにしました。 その上で、「Home > テーマ管理 > [Core] エレメントテンプレート 一覧」にてglobal_menu.phpファイルを[現在のテーマへコピー]し、そのファイルの42行目を下記のように変更しました。
これで当初のやりたかったことができるようになりました。 |
goichi > Re: $this->BcBaser->element('global_menu')で展開されるリスト要素にてcurrentクラスが定義されないことがある @ 2014/8/14 19:47 |
---|
TeddyBuddy > Re: $this->BcBaser->element('global_menu')で展開されるリスト要素にてcurrentクラスが定義されないことがある @ 2014/8/15 21:06 |
---|
ryuring > Re: $this->BcBaser->element('global_menu')で展開されるリスト要素にてcurrentクラスが定義されないことがある @ 2014/10/14 15:19 |
---|
Twitter:@ryuring |
TeddyBuddy > Re: $this->BcBaser->element('global_menu')で展開されるリスト要素にてcurrentクラスが定義されないことがある @ 2014/11/9 13:16 |
---|
ryuringさん、修正ありがとうございました。
このスレッドを立てる前の状態、 引用: ○「ホーム」の場合(/index.php/) これに戻して、かつ自分で用意したglobal_menu.phpを外して検証したところ、今度は問題なく処理されるようになりました。 助かりました! ■ BaserCMS:3.0.6.1 ■ スマートURL:OFF ■ 設置フォルダ:サブフォルダ ■ OS:OS X 10.10 ■ PHP:5.5.14 ■ 利用データベース:MySQL 5.6.21 |