3

遍历和更新 drupal 站点中每个节点的最有效方法是什么,例如以机械方式添加标签?Drupal 6 有一个闪亮的新批处理 API,但是在 Drupal 5 中做什么呢?

我开始编写一个保留指针的脚本,然后遍历 cron 上的所有节点,加载它们,然后保存它们,但我想知道还能做什么。

4

3 回答 3

4

我不建议直接在数据库级别上工作,因为某些模块可能想要更新其他一些相关的表。最可靠和灵活的方法是编写一个脚本来循环加载、更改和保存节点。您还可以尝试为 Drupal 5 使用额外的特殊模块:

于 2008-10-12T12:22:35.987 回答
2

考虑作业队列模块。这是关于它的引用(来自模块的项目页面):

...模块用于对函数调用进行排队以在 cron 上执行。模块使用 job_queue_add() 函数将作业添加到队列中

这个模块是 Drupal 7 的生命周期结束,在 core 中有一个队列

于 2009-04-15T10:46:50.223 回答
0

嗯,我不熟悉 drupal 5 的数据库结构,但如果它与 drupal 6 足够相似,您可以通过在term_node表格之外轻松地修改这一切。它是节点 ID 到术语 ID 的映射器:

term_node
- nid
- vid
- tid

nid 当然是节点 id,vid 是修订版 id,如果你使用修订版,tid 是术语 id。条款都存储在term_data

term_data
- tid
- name

是更有趣的列。因此,如果您已经有现有术语,则可以创建现有 tid 的快速映射,然后添加到 term_node 中所需的任何节点。无论如何,在这方面粗心可能会导致奇怪的数据问题,所以我不会建议这种方法,除非您对原始数据库感到非常满意。

于 2008-10-11T23:37:30.383 回答