2011-06-22 13 views
2

に私は(ニースメニューを使用して)このような主要なリンクとのDrupal 6.22サイト、持っている:Drupalの6:親メニュー項目のリダイレクト最初のサブメニュー項目

Section 1 
- Foo 
- Bar 
Section 2 
- Page A 
(...) 

は私のクライアントはこれを尋ねた:ユーザーがクリックした場合 "セクション1 "、" Foo "ページが表示されます。つまり、「セクション」をクリックすると、そのセクションの最初の子にリダイレクトされます。まず

は、私は、メニュー項目「第1」「1節/ foo」というのパスを変更しますが、Fooのページ(私はメニューパンくずを使用しています)でのブレッドクラムが表示されます。

Home > Section 1 

Iをブレッドクラムは、これを表示する:

Home > Section 1 > Foo 

だから、うまくいかなかったこと、私は、リダイレクトモジュールをインストールして定義された「セクション1 - > 1節/ fooは」リダイレクトが、私はを指しているメニュー項目を作成することはできません。 "セクション1"(エイリアスではありません)。

アイデア?前もって感謝します。

答えて

2

メニュー配列を直接編集する必要があります。現在使用中のテーマからtemplate.phpを開き、関数names_name_preprocess_page(& $ vars)の中にこれを追加してください:

print_r($ vars ['primary_links']); exit();

次に、サイトのページを更新すると、primary_links配列からプリントアウトされます。あなたがお好みの値に設定することで、[HREF]を変更することができ

Array ( [menu-640 active-trail] => Array ( [attributes] => Array ( [title] => A Page Title ) [href] => node/20 [title] => A Page Link Title ) )

:それは次のようになります。子どもを養子にして親を適切に変更するには、foreach($ vars ['primary_links'])ループを使って創造的にする必要がありますが、あまり難しくありません。

+0

プライマリリンクにNice Menusブロックを使用しているため、動作しません。 – dusan

+0

これを実行するには、ニースメニューがtemplate.phpファイルで使用するテーマ機能を変更する必要があります。 ニースメニューモジュールのフォルダ内で.tpl.phpで終わるファイルを探し、template.phpでコードを複製するか、またはnice_menus.moduleでhook_theme()の実装を探しますメニュー項目を構築している関数に渡します。独自のカスタムモジュールやtemplate.phpから変更することができれば、Nice Menus(!)でうまくプレイして、探しているものを得ることができます。 –

+0

良い点、今はNice Menusのテーマ機能を使用しています。私はあなたの答えを受け入れるでしょう。 – dusan

1

これはDrupalの大きな苦痛です。私の解決策は、リダイレクトページ専用のノードを作成することです。 (私は実際にはリダイレクトと呼ばれるコンテンツタイプを作成するので、別々に扱うことができます.../redirect/page-nameのようなエイリアスを自動的に作成します)ノードが作成されたら、そのページから実ページ。

robots.txtをリダイレクト/ *を禁止するように設定して、リダイレクトページが見つかった場合にGoogleがリダイレクトページのインデックスを作成しようとしないようにします。

関連する問題