gpt4 book ai didi

api - drupal Bootstrap 脚本 : how to get list of all nodes of type x?

转载 作者:行者123 更新时间:2023-12-01 08:54:24 24 4
gpt4 key购买 nike

我创建了一个自定义导入和导出,目前作为外部脚本(通过 Bootstrap ),我计划稍后以更通用的方式创建一个模块。

我正在为 nagios 以及我们的主机管理和 nagios 配置构建一个前端。也许它可能对其他环境(网络管理)有用

现在我需要知道如何获取类型 x 的所有节点的列表?

我想避免直接使用 SQL。

我得到的一个建议是制作一个 rss 并解析它但是我访问了 drupal 数据库十几次以提取各种节点,所以为一件事做一个网络请求感觉很奇怪

所以我作为新手 drupal dev 正在寻找的只是指向此任务的基本搜索模块 api 的指针

TIA弗洛里安

最佳答案

为什么要避免使用 SQL?

如果您想获取有关数据库中内容的信息,如所有 x 类型的节点,获取它的唯一方法是通过 SQL 查询,除非您已经提取了数据。

像这样的查询

db_query("SELECT title, nid FROM {node} WHERE type = 'x';");

不应该是破坏你表现的东西。

编辑:
您提供的链接来自 Drupal 7,因此您必须仔细阅读。原因是在 Drupal 7 中,不仅可以使用 db_query,它基本上是 php 函数 mysql_querypg_query 的包装器。它有点不同,使用它,您不必使用 db_specific 代码。无论如何,Drupal 7 中的新功能有点像 ORM。我没有详细阅读它,但想法是您可以使用对象上的命令构建查询。这可能就是你所追求的。然而,Drupal 7 还没有为生产站点做好准备。仍然存在许多关键问题和安全问题。所以这在相当长的一段时间内是不可能的。

编辑 2:
如果你想获取节点标题和正文,这是你应该做的:

$type = 'x';
$query = db_query("SELECT r.nid, r.title, r.body FROM {node} AS n
LEFT JOIN {node_revisions} AS r ON r.nid = n.nid
WHERE type = '%s';", array($type));
$nodes = array();
while ($node = db_fetch_object($query)) {
$nodes[$node->nid] = $node;
}

如果你想从数据库中提取数组而不是对象,你可以使用 db_fetch_array 而不是 db_fetch_object。

关于api - drupal Bootstrap 脚本 : how to get list of all nodes of type x?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2477219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com