2010-08-15 27 views
1

我需要顯示一些自定義的HTML /處理代碼,才能顯示Drupal表單。如何返回自定義HTML和表單?我的代碼是:需要在表單返回之前添加一些自定義HTML ..如何?

function myfunction() { 
    global $base_path, $base_url; 
    $output = ""; // Clear the variable, just in case 
    include ('includes/SOME_HTML_OUTPUT.inc'); 
    return $output; //NOT GOING TO WORK 
    return drupal_get_form('my_form'); 
} 

回答

5

正確的方法做你想做的是:

function myfunction() { 
    $output = theme('your_theme_function'); // Create your custom markup. 
    $output .= drupal_get_form('my_form'); // Create the form markup. 
    return $output; 
} 

你的主題函數應該處理創建自定義的標記。它可以通過php函數或使用模板和預處理函數來完成。

上述方法的美妙之處在於您可以連接到Drupal主題系統並獲得靈活性。如果設計師想要更改HTML,他可以像他平常那樣做。當您使用Drupal主題系統時,您還可以添加模板建議和其他功能。

在你的具體情況下,你可能知道你需要所有這些好東西,Drupal提供,但你仍然應該養成這樣的編碼習慣。它會讓你的模塊更加靈活。你也應該想在drupal.org上以模塊的形式回饋一些東西,如果你希望你的模塊可以被其他人使用,那麼這樣的編碼是絕對必要的。

+0

像往常一樣,你的答案非常詳盡。謝謝。 – jini 2010-08-15 15:45:44

0

drupal_get_form()函數輸出什麼?只是HTML?

你可以這樣做: return $output.drupal_get_form('my_form');

????

+0

這實際上可以工作,但這是用Drupal做這件事的根本錯誤方式。 – googletorp 2010-08-15 14:23:57

+0

@googletorp,更具體。 *爲什麼*這樣做是錯誤的? – zrajm 2013-07-27 04:17:05

0

請澄清你的問題。

do includes/SOME_HTML_OUTPUT.inc應該會產生$output包含/ SOME_HTTP_OUTPUT.inc究竟是放置在哪裏?

並看看module_load_include API。它可能會有幫助。

相關問題