连接到 drupal 页面上的另一个数据库

发布于 2024-10-17 23:03:29 字数 140 浏览 1 评论 0原文

现在我想显示来自另一个论坛的一些文章标题。把文章标题放在page-front.tpl.php上。也许我可以直接把数据库连接和查询代码写到page-front.tpl.php中。但这对于效率来说太糟糕了。以获得高效率。我该怎么办。 drupal的版本是drupal 6

now i want to display some articles title which from another forum. and put the articles' title on the page-front.tpl.php.maybe i can write the database connection and query code into the page-front.tpl.php directly. but this is too bad for efficiency. in order to get a hign efficiency. how should i do. the version of drupal is drupal 6

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦旅人picnic 2024-10-24 23:03:29

除非您要缓存结果,否则代码放置的位置对于性能来说并不重要。然而,如果遵循一些最佳实践和设计原则,它们将使您的代码更易于维护。

做到这一点的最佳方法是将代码放置在自定义模块中。您可以创建一个块(hook_block),您可以将其放在首页上。这也将允许 Drupal 的块缓存启动,这对于外部数据库连接来说是理想的。

Unless you are going to cache the results, it doesn't matter much in regards to performance, where you put the code. There are, however, some best practices and design principals that will make your code easier to maintain if followed.

The best way to do this, is to place the code in a custom module. You could make a block (hook_block), that you could place on the front page. That would also allow for Drupal's block cache to kick in, which is desirable for foreign database connections.

§普罗旺斯的薰衣草 2024-10-24 23:03:29

请参阅 http://drupal.org/node/18429 了解如何使用提供的连接到另一个数据库API。请注意,在 D6 中,您只能连接到与默认数据库相同的数据库类型(mysql/pgsql)。

正如 googletorp 已经指出的那样,您不应该在主题函数/模板内执行查询或进行任何处理。

例如,您可以在 hook_preprocess_page() 函数中执行此操作,然后将其显示在模板中。

或者更好的是,如果这对您有用,那就编写一个简单的模块来公开一个块,然后您可以将其放置在主题中的任何位置。请参阅hook_block()。这样,Drupal 就可以为您处理缓存,您只需要定义它应该如何缓存(全局,每个角色,..)。上面的链接文档页面对此进行了全部描述。

See http://drupal.org/node/18429 on how to connect to another database by using the provided API. Note that in D6, you can only connect to the same database type (mysql/pgsql) as your default db is.

As googletorp already noted, you should not execute queries or do any processing inside theme functions/templates.

You for example do it inside a hook_preprocess_page() function and then just display it in your template.

Or even better, if that works for you, would be to write a simple module that exposes a block which you can then place wherever you want in your theme. See hook_block(). With that, Drupal can take care of the caching for you, you just need to define how it is supposed to be cached (global, per role, ..). This is all described on the linked documentation page above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文