2008-10-11 85 views
2

什么是最有效的方式来通过和更新Drupal站点中的每个节点,例如机械添加标签? Drupal 6有一个闪亮的新批API,但在Drupal 5中该做什么?Drupal 5中的批量节点操作

我开始编写一个脚本来保存指针,然后绕过cron上的所有节点,加载它们然后保存它们,但我不知道还有什么可以做的。

回答

4

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

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中你想要的任何节点。无论如何,在这方面粗心大意可能会导致奇怪的数据问题,所以我不会建议这种方法,除非你对原始数据库感觉很舒服。

+0

在db级别上做事情并不是我想做的事情 - 有更多的风险以微妙的方式混淆所有事情,然后在通知太晚之前不会注意到。 – deadprogrammer 2008-10-13 20:04:06

2

考虑Job queue模块。下面是一个关于它的报价(来自模块的项目页面):

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

此模块是Drupal 7的生命周期结束,它有一个queue in core