2011-07-15 65 views
2

我有一個面板頁設置路徑node/%node/foo和所有工作正常,當我訪問一個鏈接,如node/6/foo。但是,當我訪問nodealias/foo時,它根本不起作用。這樣可以讓面板與pathauto一起工作嗎?Drupal面板頁Pathauto

我想我可能不得不實施掛鉤hook_url_inbound_alter並自己更改網址。

我也貼在面板模塊在這裏支持請求:http://drupal.org/node/1219796

回答

1

我使用下面的代碼修復了這個問題,您需要更改模式以匹配您的url別名模式並更改函數名稱以匹配模塊名稱。

function brooklands_url_inbound_alter(&$path, $original_path, $path_language) { 
    $pattern = '#^works\/[A-Za-z0-9]+(-[A-Za-z0-9]+)*\/images(\/\d+)?$#'; 
    if(preg_match($pattern, $original_path)) { 
     $snip = substr($original_path, 0, strrpos($original_path, '/images')); 
     $system_path = drupal_lookup_path('source', $snip); 
     if($system_path) { 
      $tail = substr($original_path, strrpos($original_path, '/images')); 
      $path = $system_path . $tail; 
     } 
    } 
} 
0

的nodealias與NID = 6的節點的全部別名。第三個參數(foo)通過由面板模塊的hook_menu()添加到確切的別名(node /%nid /%anythingelse),並且不會應用於別名的URL,因此您不能使用nodealias/foo url來訪問只是因爲它不被面板模塊「掛鉤」。 我認爲,手動更改網址是一個好主意。

2

由於阿列克謝答案面板不關心的別名,它只能看到節點/%NID 下面是有效還是爲D7一個很好的解釋: http://drupal.org/node/211338 總結,並把它最新的D7: 出口您創建的面板的變體,並將其導入到覆蓋Drupal中的默認節點顯示的面板中。 將變體添加到變體中,以便面板/變體僅用於您希望使用此變體顯示的內容類型。 瞧:)(在鏈路閱讀的討論,否則摘要將很難理解)

希望這有助於 - 我自己也花一些時間google搜索,並試圖瞭解這一點,我也被這樣的事實感到困惑該視圖確實關心別名...

+0

同樣在這裏,我有這個問題搏鬥了更多的時間比我會承認,因爲在意識到之前我已經對別名作出了同樣的假設。 – Ashlar

1

您可以使用此模塊Subpathauto

它會自動進行別名與子路徑,如工作:nodealias/foo

+0

我一直都在使用它,它完美地工作。 – user1015214