Функции в template.php Я правильно это понимаю?

Главные вкладки

Аватар пользователя Mарат Mарат 9 сентября 2008 в 17:12

Подскажите, правильно ли я понял суть и некоторые моменты касательно template.php

1. Функция которую я перепишу в template.php в папку своей темы, перекроет эту функцию находящуюся в папке модуля.

Такой пример: я копирую function search_box из search.module в template.php, затем переименовываю ее в function phptemplate_search_box и затем вношу изменения уже тут, в template.php. Это верно?

2. Почему то не все, внесенные в template.php и затем измененные функции работают. Например я взял function search_box и что бы спрятать кнопку submit сделал так:

было: $form['basic']['inline']['submit'] = array('#type' => 'submit', '#value' => t('Search'));

сделал: $form['basic']['inline']['submit'] = array('#type' => 'submit', '#value' => t('Search'), '#attributes' => array('style' => 'display:none;'));

Но кнопка не исчезла.

Причем если вносить это изменение прямо в search.module то кнопка, как мне и нужно, исчезает.

Кеш делал.

3. В файле template.php нет закрывающей ?>, это нормально?

Комментарии

Аватар пользователя neochief neochief 9 сентября 2008 в 19:23

Вы можете переопределять лишь theme_* функции из модулей, заменяя theme_ на phptemplate_ в названии функции, ну и сам код, естественно.

Аватар пользователя direqtor direqtor 10 сентября 2008 в 4:16

"Mарат" wrote:
Спасибо всем, теперь понятно. Т.е.не theme_* функции можно только в модулях править?

Практически все (исключений пока не встречал) в друпале, что выводится как HTML в страницу проходит через функции theme_*, так что править код модулей почти нет необходимости.