我想在drupal 7中创建一个自定义字段。evrything工作得很好,除了从wysiwyg字段。 我用下面的代码来构建一个所见即所得的元素:所见即所得的自定义字段中的drupal 7
$element['my_body'] = array(
'#title' => t('Editor'),
'#type' => 'text_format',
'#tree' => true,
'#rows' => 20,
'#format' => 'filtered_html',
);
当它不是所见即所得(普通文本区域)都攒去罚款,但之后,我将其更改为TEXT_FORMAT,Drupal的获取字段作为阵列的价值与2个键(值和格式),这是一个错误,而Drupal保存该字段的值。 尽管我不了解它,但drupal期望得到的是两个不同的值(body_filter和format),而不是具有2个键(值和格式)的body_filter数组。
任何人都可以给我一个提示如何解决这个问题(在谷歌和drupal.org找不到任何相关的东西)?
谢谢。
尽我所知,Drupal实际上是自动保存数据。 Drupal通过检查表单中字段名称的db字段名称(在module.install文件中创建)来执行“魔术”。 这发生在field_sql_storage_field_storage_write() – 2011-06-05 15:15:15
啊,你正在创建一个字段。是的,那么这些值将根据模式自动保存。 *然而,你可以通过实现http://api.drupal.org/api/drupal/modules--field--field.api.php/function/hook_field_presave/7来改变它,并将数组分成两个单独的值,根据你的模式。另外,你可以看看text.module是如何实现的,它具有相同的“问题”,但我无法弄清楚。 – Berdir 2011-06-05 17:58:14