2010-04-14 35 views

回答

4

在默認Drupal安裝,而不他們將輸出同樣的事情,任何模板定製。

但是,theme()函數本質上是Drupal中主題系統的一個包裝。通過傳遞'links'作爲第一個參數,你告訴Drupal尋找鏈接主題,無論這是一個函數還是一個模板。在這種情況下,主題是一個被調用的函數(theme_links())。

如果您想對主題進行更改,可以通過覆蓋它來完成。例如,您可以創建功能myTheme_links()並使其覆蓋默認theme_links()。如果您直接調用功能theme_links(),則必須將此代碼更改爲相應的主題功能。但是,如果使用theme()函數,則不會有任何其他更改,因爲此函數知道主題何時被覆蓋並採取適當的操作。簡而言之,使用theme()函數是未來驗證代碼的更靈活的解決方案,可能被認爲是Drupal的做事方式。請參閱Drupal's theme documentation

+0

謝謝bkildow。好答案。我正在學習drupal主題的高級方面,只要我開始閱讀你的答案,我就知道我會問一個愚蠢的問題,因爲我知道主題重寫和主題函數過程。我只是沒有想到我發佈之前。謝謝你的幫助。 – screenm0nkey 2010-04-15 08:57:39

3

簡短的版本是:

如果使用theme_links()可以使用my_theme_links命名約定,因爲你直接調用它不能取代在你的主題,主題功能。

如果您改爲使用theme('links') drupal將根據優先級找出可能使用哪些主題函數。這是Drupal和它的主題系統如此靈活的一部分。一切都可以被覆蓋。

+0

不知道我會寫多少次這句話,但是,多虧了googletorp。我知道我自己的問題的答案,因爲在我發佈之前我沒有想過。 – screenm0nkey 2010-04-15 09:00:43

相關問題