Использовать theme ()
Вы должны всегда вызывать функции вашей темы через функцию theme()
, как показано в первом примере: theme('MyFunction')
.Если вы этого не сделаете, вы наносите вред системе тем Drupal и не позволяете другим разработчикам модулей эффективно переопределять ваш вывод.
При написании собственных функций темы не забывайте использовать hook_theme
(объяснено здесь ), чтобы зарегистрировать функцию вашей темы в реестре тем.Если вы этого не сделаете, вызов theme('MyFunction')
не сработает.Никогда не повредит очистить кеши после первоначальной регистрации функции.
Пример того, почему это важно
Например, в файле template.php вашей темы вы можете определить свою собственную функцию theme_image
дляпереопределить, как ядро Drupal обрабатывает изображения.Вы назовете свою функцию name_of_theme_image
и начнете работать, переопределяя то, что она возвращает.Если бы theme_image
не всегда вызывалось как theme('image')
, вы бы не смогли использовать это переопределенное поведение, потому что theme()
действует как единственная точка входа и делегатор функций темы.То же самое относится и к функциям вашей темы.