我想在創建新內容之後重定向用戶,而不是將其指向內容的「查看」頁面。如何在創建新內容後重定向Drupal用戶
我見過提到使用hook_alter或其他東西,但我對drupal真的很陌生,甚至不知道這意味着什麼?
謝謝!
我想在創建新內容之後重定向用戶,而不是將其指向內容的「查看」頁面。如何在創建新內容後重定向Drupal用戶
我見過提到使用hook_alter或其他東西,但我對drupal真的很陌生,甚至不知道這意味着什麼?
謝謝!
正如你所說,你是Drupal的新手,我建議看看Rules module。您可以添加一個觸發器來保存/更新內容,並添加一個操作,將用戶重定向到特定頁面。
但是,您可以在使用form_alter鉤子的輕量級自定義模塊中做同樣的事情。
首先,找到表單的表單ID。對於節點形式,它是[node-type] _node_form。 然後,您可以添加一個新的提交功能,在表單提交時執行。在這個提交處理程序中,設置重定向路徑。
請參閱this guide on a basic how-to on creating a module。 你的模塊代碼會是這樣的初級講座:
<?php
function mymodule_mytype_node_form_alter(&$form, &$form_state) {
$form['#submit'][] = 'mymodule_node_submit_do_redirect';
}
function mymodule_node_submit_do_redirect($form, &$form_state) {
$form_state['redirect'] = 'my_custom_destination';
}
一個非常非常簡單的方法是設置在節點形式的URL目的地。 例如,如果您打開http://example.com/node/add/mytype?destination=my_custom_destination
,您將被重定向到該URL而不是節點視圖頁面。
感謝您的快速響應!非常有幫助=) – UpsetPopcorn
不知何故,它不適用於我:(。每個功能已達到,但重定向不會發生。 –
如果您以這種方式添加提交處理程序,它將無法正常工作,您需要確保您添加提交處理程序到正確的位置,並且通常以行爲'$ form ['actions'] ['submit'] ['#submit'] [] =「handler_name」 – Ziftman