私のサイトのフォーラムでは、デフォルトでフォーラムが有効になっています。共有/フォーラムに移動してほしい。そのために私が取ることができるさまざまなアプローチは何ですか?また、どれが最適ですか?
Pathauto モジュールでこれを実行しようとしましたが、「ホーム >> 共有 >> フォーラム」と表示されるはずのパンくずリストに「ホーム >> フォーラム」と表示されます。
共有/フォーラムでのみフォーラムページを表示する場合は、カスタムモジュールで次のコードを使用できます。
function mymodule_menu_alter(&$items) {
if (isset($items['forum'])) {
$items['share/forum'] = $items['forum'];
unset($items['forum']);
}
if (isset($items['forum/%forum_forum'])) {
$items['share/forum/%forum_forum'] = $items['forum/%forum_forum'];
unset($items['forum/%forum_forum']);
}
}
フォーラムを古いパスと新しいパスの両方で表示したい場合は、次のコードを使用できます。
function mymodule_menu() {
$items['share/forum'] = array(
'title' => 'Forums',
'page callback' => 'forum_page',
'access arguments' => array('access content'),
'file' => 'forum.pages.inc',
);
$items['share/forum/%forum_forum'] = array(
'title' => 'Forums',
'page callback' => 'forum_page',
'page arguments' => array(1),
'access arguments' => array('access content'),
'file' => 'forum.pages.inc',
);
return $items;
}
ブレッドクラムについては、ドキュメントページで報告されている内容を考慮して、hook_menu_breadcrumb_alter()を実装する必要があります。
実装では、menu_get_active_breadcrumb()が、このフックが呼び出された後、アクティブなトレイルに対して次の調整を実行することを考慮に入れる必要があります。
- $active_trailの最後のリンクは、その'href'が$itemの'href'と同一である場合に削除されます。これは、ブレッドクラムには通常、現在のページへのリンクが含まれていないために発生します。
- 現在の$itemがMENU_DEFAULT_LOCAL_TASKの場合、$ active_trailの(2番目から)最後のリンクが削除されます。これは、デフォルトのローカルタスクのパス上にあるときに、現在のページへのリンクを表示しないために発生します。たとえば、パスnode /%/ viewにいる場合、ブレッドクラムにnode /%へのリンクを含めることはできません。
多くの方法があります.1)pathautoを使用できます(これは使用しましたが、デフォルトのnidを使用して追跡するため、ブレッドクラムでそのように表示されます)2)サブドメインモジュールを使用してフォーラムをシフトします(ホストがそれをサポートしている場合) ) 3) phpbb などの別のフォーラム モジュールを使用し、リダイレクトを使用して目的のパスに配置します。
あなたに合うものはどれでも..