SQL запрос прям в файле шаблона

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

Аватар пользователя Konstantin_Vedernikov Konstantin_Vede... 8 февраля 2010 в 5:48

Здравствуйте.
Принимаю критику и советы.
Понадобилось вывести определенным образом тип материала на конкретной странице. Использование Views не подходит, т.к. пишет слишком громоздкий код в страницу и не настроить все так, как нужно. Поэтому принял решение, прям в коде файла page.tpl.php сделать запрос к базе и вывести все как мне нужно.
Уважаемые знатоки Drupal'а, скажите пожалуйста, можно ли это использовать и на что это может повлиять?

P.S.
Тема будет использоваться только на одном проекте и всегда будет под моим наблюдением.

Комментарии

Аватар пользователя Обухов Никита Обухов Никита 8 февраля 2010 в 9:31

http://api.drupal.org/api/function/template_preprocess_page/6

Вставляете в template.php функцию THEMENAME_preprocess_page

В ней делаете запрос, результат добавляете в $variables['my_var']

В page.tpl.php будет доступна $my_var с результатом запроса.

Используйте arg() чтобы запрос выполнялся только на нужных вам страницах, а не везде.

Аватар пользователя olk olk 8 февраля 2010 в 12:07

Концептуально не верно, шаблоны (как впрочем и template.php), предназначены для "вывода" (показа) информации, т.е. это уровень "представления" ...
Так что, «правильней» конечно (если не хотите заморачиваться с тяжеловесами вроде view), создать свой модуль , где получить эти данные запросом, и выдать через hook_menu, по определенному адресу ...
На самом деле все это не очень сложно Smile ...

Но если, вам все равно, то и ваше решение подойдет, просто я хотел заметить, что все же это не совсем верно ...

Аватар пользователя Konstantin_Vedernikov Konstantin_Vede... 8 февраля 2010 в 12:40

Всем большое спасибо за дельные советы.
В общем-то я конечно понимаю, что не совсем правильно. Поэтому сделал, как сказал olk, т.е. разработал свой модуль, который берет из базы нужные данные и выводит их на монитор.