Drupal模块来操纵每个节点的主体

时间:2010-03-16 15:08:50

标签: drupal

使用Feeds模块从旧网站导入内容后,我留下了包含返回旧网站的链接的节点主体。

是否有一个Drupal模块将执行一次性过程来迭代每个节点,使用一些自定义代码操纵节点的内容?

4 个答案:

答案 0 :(得分:2)

您可以轻松编写PHP脚本来逐步执行node_revisions表并在那里进行处理。如果您对自定义代码感到满意,那么它可能是最快的方式。

答案 1 :(得分:0)

您可以编写自己的模块,以便运行一次。有一个Drupal hook_init()可以在模块打开时用来触发代码,并且页面已加载。在该函数中,您可以使用db_query查询节点表中的所有节点,遍历每个节点并在要更改的链接上执行preg_replace。修改$ node对象后,在循环结束时使用node_save($ node)来保存节点更改。

或者,您可以使用Link Checker,Path Redirect和/或Global Redirect等模块将旧路径链接到新路径并查找已破坏的链接。

答案 2 :(得分:0)

我通常在phpMyAdmin中运行SQL查询。请参阅http://drupal.org/node/718700#comment-2616682上的帖子。

答案 3 :(得分:0)

迟到的答案,但不过。 有一个pathologic模块,可用于修复节点中的链接。例如,使它们成为绝对的或重写主机部分。