четверг, 1 декабря, 2016 - 17:23

Бывают случаи когда нужно скажем нужна маленькая форма для создания сущность.
Для этих целей мне удобно использовать entityform в качестве прослойки.

Работает это так создаём entityform с таким же списком полей.
При сохранение entityform создаём нашу новую node и сохраняем её с данными entityform.
Не забываем удалить submissions, что бы просто незасарял базу.

/**
 * Implements hook_entity_insert().
 */
function hook_entity_insert($entity, $type) {
  $bundle = isset($entity->type) ? $entity->type : '*';

  switch ("{$type}:{$bundle}") {
    case 'entityform:bundle':
      $wrapper = entity_metadata_wrapper($type, $entity);

      // create node
      $node = entity_create('type', array('type' => 'bundle'));
      $wrapper_node = entity_metadata_wrapper('type', $node);
      $wrapper_node->field_name = $wrapper->field_name->value();
      $wrapper_node->save();

      // remove submissions
      $wrapper->delete();

      break;
  }
}

Успешной разработки админок.