подключиться к другой базе данных на странице drupal - PullRequest
0 голосов
/ 19 февраля 2011

Теперь я хочу отобразить заголовок некоторых статей из другого форума.и поместите заголовок статьи на страницу-front.tpl.php.maybe я могу написать подключение к базе данных и код запроса непосредственно в страницу-front.tpl.php.но это слишком плохо для эффективности.для того, чтобы получить высокую эффективность.как я должен сделать.версия друпала это друпал 6

Ответы [ 2 ]

4 голосов
/ 19 февраля 2011

Если вы не собираетесь кэшировать результаты, это не имеет большого значения для производительности, где вы размещаете код. Однако существуют некоторые передовые практики и принципы разработки, которые облегчат поддержку вашего кода, если будут выполняться.

Лучший способ сделать это - поместить код в пользовательский модуль. Вы можете сделать блок (hook_block), который вы можете разместить на первой странице. Это также позволило бы задействовать блочный кеш Drupal, что желательно для внешних подключений к базе данных.

2 голосов
/ 20 февраля 2011

См. http://drupal.org/node/18429 о том, как подключиться к другой базе данных с помощью предоставленного API.Обратите внимание, что в D6 вы можете подключаться только к тому же типу базы данных (mysql / pgsql), что и ваш db по умолчанию.

Как уже отмечал googletorp, вы должны не выполнять запросы или выполнятьобработка внутри функций / шаблонов тем.

Вы, например, делаете это внутри функции hook_preprocess_page (), а затем просто отображаете ее в своем шаблоне.

Или даже лучше, если это работает для вас, будетнаписать простой модуль, который предоставляет блок, который вы можете затем разместить в своей теме в любом месте.Смотрите hook_block () .При этом Drupal может позаботиться о кэшировании за вас, вам просто нужно определить, как он должен кэшироваться (глобально, для каждой роли, ..).Все это описано на связанной странице документации выше.

...