首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建或编辑contentType A节点时contentType B中的编辑字段

创建或编辑contentType A节点时contentType B中的编辑字段
EN

Drupal用户
提问于 2018-10-14 19:34:02
回答 1查看 28关注 0票数 0

创建或编辑contentType A的节点时,需要编辑contentType B中的字段。

我知道这是可以使用规则的,但我需要更多的控制,所以我想在我自己的模块中这样做。

尝试了这段代码但没有成功:

代码语言:javascript
复制
function MYMODULE_node_presave($node) {
    MYMODULE_change_value($node);
}

function MYMODULE_change_value($node) {
    $node = node_load($node->nid);

    $referenced_nid = $node->referenced_node[LANGUAGE_NOE][0]['target_id']

    $referenced_node = node_load(referenced_nid);

    $referenced_node->my_field[LANGUAGE_NONE][0]['value'] = 12345.0;
    node_save($referenced_node);
}

我选错钩了吗?

EN

回答 1

Drupal用户

回答已采纳

发布于 2018-10-14 20:50:20

尝试以下几点:

代码语言:javascript
复制
/**
 * Implements hook_node_presave().
 */
function yourModule_node_presave($node) {
  if ($node->type == 'your_typeA') {
    yourModule_change_value($node);
  }
}

function yourModule_change_value($node) {
  if (isset($node->field_node_referenced[LANGUAGE_NONE][0]['target_id'])) {
    //- Get referenced node id
    $referenced_node_id = $node->field_node_referenced[LANGUAGE_NONE][0]['target_id'];
    //- Load referenced node
    $wrapper = entity_metadata_wrapper('node', $referenced_node_id);
    $wrapper->field_name->set(array(
      'value' => 'test new field value'
    ));
    $wrapper->save();
  }
}
票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/270920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档