我遇到了一些問題,試圖將絕對URI作爲參數傳遞給乾淨的URL。在URI中傳遞URI作爲Drupal 6中的URL參數
我有設立這樣hook_menu():
function mymodule_menu() {
return array(
'page/%' => array(
'title' => 'DBpedia Display Test',
'page callback' => 'mymodule_dbpedia_display',
'page arguments' => array(1),
),
);
}
,並在頁面回調:
function mymodule_dbpedia_display($uri) {
// Make an HTTP request for this URI
// and then render some things
return $output;
}
什麼我希望做的是某種方式傳遞完整的URI(如「http://dbpedia.org/resource/Coffee」)到我的頁面回調。我已經嘗試了一些東西,到目前爲止,什麼也沒有工作......
- http://mysite.com/page/http%3A%2F%2Fdbpedia.org%2Fresource%2FCoffee
完全打破了Drupal的改寫 - http://mysite.com/page/?uri=http%3A%2F%2Fdbpedia.org%2Fresource%2FCoffee
給出了一個404 - http://mysite.com/page/http://dbpedia.org/resource/Coffee
僅返回「HTTP :「,這很有道理
我大概可以使用$ _GET來提取整個查詢字符串,但我想我希望有更多'Drupal'解決方案。有什麼建議麼?
謝謝。 %menu_trail方法不能像你所描述的那樣簡單,但是它使我朝着正確的方向前進,並且讓它工作。我找到了解決方案[這裏](http://drupal.org/node/109153#load)。我使用%wildcard_load()函數將參數映射反轉爲字符串。太糟糕了,這並不簡單,但它有效。 – wynz 2010-06-16 14:10:36
我報告的內容是用http://drupal.org/node/109153#to_arg寫的。我實際上在我正在開發的一個模塊(http://drupal.org/project/opensearch)中使用它,並且它可以工作。 – kiamlaluno 2010-06-17 02:53:41
您的使用情況有所不同。 %menu_tail部分永遠不會傳遞給回調。 opensearch模塊和核心搜索模塊都使用search_get_keys()直接從$ _GET獲取參數。從我所知道的情況來看,%menu_tail主要是允許在URL中有一個額外的斜槓時正確編寫頁面上的鏈接。 D7的情況[尚未解決](http://drupal.org/node/600424)。感謝您指出opensearch模塊,但期待着嘗試一下即將推出的項目。 – wynz 2010-06-17 09:02:51