Drupal 需要建议以使我的d7逻辑正确吗

Drupal 需要建议以使我的d7逻辑正确吗,drupal,drupal-7,Drupal,Drupal 7,目标:保存更新的节点的信息。我们需要收集更新的节点的节点id,以及将其添加书签的用户的用户名 实施: 我已经使用flags和rules模块获得了这两个细节。我制作了一个自定义模块,实现了钩子来获取这些信息 我被困在这里: 现在我需要保存用户名和节点id。我仍在决定是使用字段还是db层 一个用户名可以保存多个节点id 现在的问题是我不确定有多少节点足够。这取决于用户。可能需要为一个用户保存5个甚至500个节点ID 那么,我该如何对此作出准备 所以我被逻辑束缚住了。我应该如何使用db层或自定义内容类

目标:保存更新的节点的信息。我们需要收集更新的节点的节点id,以及将其添加书签的用户的用户名

实施:

我已经使用flags和rules模块获得了这两个细节。我制作了一个自定义模块,实现了钩子来获取这些信息

我被困在这里:

现在我需要保存用户名和节点id。我仍在决定是使用字段还是db层

一个用户名可以保存多个节点id

现在的问题是我不确定有多少节点足够。这取决于用户。可能需要为一个用户保存5个甚至500个节点ID

那么,我该如何对此作出准备

所以我被逻辑束缚住了。我应该如何使用db层或自定义内容类型中的字段来保存此内容?我该怎么做呢

请给我一些建议。我用的是d7

自定义模块代码
看起来您应该使用和来访问刚刚添加或更新的节点

如果您希望在保存节点数据之前访问该数据,则可以使用它

我认为您不需要presave,因为您提到需要节点ID,而presave还没有新节点的ID

这里有一种处理新节点和更新节点的方法。前两个函数只是挂接到正确的位置,并将节点路由到第三个函数

<?php
// hook into node inserts
function customvishal_node_insert($node) {
  if ($node->type == 'mynodetype') {
    customvishal_handle_data($node);
  }
}

// hook into node updates
function customvishal_node_update($node) {
  if ($node->type == 'mynodetype') {
    customvishal_handle_data($node);
  }

}

// custom handler for the nodes
function customvishal_handle_data($node) {
  // load a user object of the node's author
  $author = user_load($node->uid);

  // now do what we need to do with $node and $user data

}

请记住,您需要清除Drupal缓存,以便模块中的新挂钩在D7中工作。

据我所知,您想将用户名与各种节点ID链接起来吗?是创建与之链接的节点的人还是任何人?你能更深入地描述一下这个问题吗,或者提供你已经编写的代码吗?@kerrM:任何人都可以链接到一个节点。我正在使用flag模块,以便用户可以将节点添加到书签中。我已经编辑了我的问题以获取更多信息。谢谢:
<?php
// hook into node inserts
function customvishal_node_insert($node) {
  if ($node->type == 'mynodetype') {
    customvishal_handle_data($node);
  }
}

// hook into node updates
function customvishal_node_update($node) {
  if ($node->type == 'mynodetype') {
    customvishal_handle_data($node);
  }

}

// custom handler for the nodes
function customvishal_handle_data($node) {
  // load a user object of the node's author
  $author = user_load($node->uid);

  // now do what we need to do with $node and $user data

}