gpt4 book ai didi

drupal - 我需要一个将字段集合附加到表单的示例

转载 作者:行者123 更新时间:2023-12-04 16:11:39 26 4
gpt4 key购买 nike

我有一些附加到节点类型的字段集合,我正在使用 Drupal 的 Form API 编写自定义表单。

如何将这些字段集合字段加载到表单中?我应该使用 hook_form , hook_field , 或者是其他东西?

有人能给我一个简单的例子来编写一个表单元素,它是一个具有无限基数的字段集合吗?

最佳答案

我能够使用以下代码加载字段集合表单。我添加了额外的注释并删除了从 $form_state['values'] 变量中寻找字段值的自定义逻辑。

function mymodule_custom_form($form, $form_state, $args ){
$form = array();
$type = $args['type'];
$id = $args['id'];
module_load_include('inc', 'field_collection', 'field_collection.pages');
if(!empty($entity->field_comments[LANGUAGE_NONE][0]['value']) ){
$field_collection_item = field_collection_item_load($entity->field_comments[$entity->language][0]['value'], TRUE);
$output = drupal_get_form('field_collection_item_form', $field_collection_item);
}else{
$output = field_collection_item_add('field_comments', 'node', $entity->nid);
}
dpm($output);
// If you want to use field collection form submit handlers as is, just return the below
// In case you want to use your own custom submit handlers then do modify the $output array as seems fit.
$form['field_collection_element'] = $output;
// You may also attach the $output array to your custom form array. Make sure you handle submit handlers properly

return $form;
}

示例提交处理程序
@see 在提交处理程序中,您可以使用 here 中给出的示例
function mymodule_custom_form_submit( $form, $form_state ){
...
if(empty($item_id)){
$field_collection_item = entity_create('field_collection_item', array('field_name' => $field_name ));
$field_collection_item->setHostEntity('node', $node);
}
else {
$items = entity_load('field_collection_item', array($item_id));
$field_collection_item = $items[$item_id];
}
if( is_object($field_collection_item)){
// for references.
$field_collection_item->field1[$node->language][0]['target_id'] = $field1_val;
// normal values
$field_collection_item->field2[$node->language][0]['value'] = $field2_val;
$field_collection_item->field3[$node->language][0]['value'] = $field3_val;
if(empty($item_id)){
$field_collection_item->save( FALSE );
}
else{
$field_collection_item->save( TRUE );
}
}
...
}

关于drupal - 我需要一个将字段集合附加到表单的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13364905/

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