gpt4 book ai didi

drupal - 使用 Drupal 7 实体和字段 API 的正确方法

转载 作者:行者123 更新时间:2023-12-04 15:37:20 24 4
gpt4 key购买 nike

我正在尝试使用 Drupal 7 的实体和字段 API 来正确构建一个新模块。我从文档中无法理解的是使用新 API 创建具有多个设置字段的“内容类型”(不是节点类型)的正确方法,例如 Body。

我正在尝试使用 hook_entity_info 设置实体,然后我相信我需要使用 field_create_instance 添加正文字段,但我似乎无法让它工作。

在 mycontenttype.module 中:

/**
* Implements hook_entity_info().
*/
function mycontenttype_entity_info() {
$return = array(
'mycontenttype' => array(
'label' => t('My Content Type'),
'controller class' => 'MyContentTypeEntityController',
'base table' => 'content_type',
'uri callback' => 'content_type_uri',
'entity keys' => array(
'id' => 'cid',
'label' => 'title',
),
'bundles' => array(
'mycontenttype' => array(
'label' => 'My Content Type',
'admin' => array(
'path' => 'admin/contenttype',
'access arguments' => array('administer contenttype'),
),
),
),
'fieldable' => true,
),
);
return $return;
}

/**
* Implements hook_field_extra_fields().
*/
function mycontenttype_field_extra_fields() {
$return['mycontenttype']['mycontenttype'] = array(
'form' => array(
'body' => array(
'label' => 'Body',
'description' => t('Body content'),
'weight' => 0,
),
),
);
return $return;
}

那么这是否在 .install 文件中?
function mycontenttype_install() {
$field = array(
'field_name' => 'body',
'type' => 'text_with_summary',
'entity_types' => array('survey'),
'translatable' => TRUE,
);
field_create_field($field);

$instance = array(
'entity_type' => 'mycontenttype',
'field_name' => 'body',
'bundle' => 'mycontenttype',
'label' => 'Body',
'widget_type' => 'text_textarea_with_summary',
'settings' => array('display_summary' => TRUE),
'display' => array(
'default' => array(
'label' => 'hidden',
'type' => 'text_default',
),
'teaser' => array(
'label' => 'hidden',
'type' => 'text_summary_or_trimmed',
),
),
);
field_create_instance($instance);
}

最佳答案

我认为您的问题是,如果安装了节点模块,则已经有一个名为“body”的字段。您应该将您的字段重命名为“mycontenttype_body”(comment.module 使用comment_body),或者重新使用“body”字段并跳过添加字段部分并跳过添加它的实例。前者优于后者。

关于drupal - 使用 Drupal 7 实体和字段 API 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4700636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com