From 9f19368bafdccd063d86ed25df0bebff8f7555d6 Mon Sep 17 00:00:00 2001
From: timleytens <timleytens@635308.no-reply.drupal.org>
Date: Wed, 13 Feb 2013 10:45:44 -0500
Subject: [PATCH] Issue #1689726 by acrazyanimal, TimLeytens: Add support for
 the inline entity form module.

---
 eck.entity_type.inc                 |    4 +++-
 eck.info                            |    3 +++
 includes/eck.inline_entity_form.inc |   30 ++++++++++++++++++++++++++++++
 3 files changed, 36 insertions(+), 1 deletions(-)
 create mode 100644 includes/eck.inline_entity_form.inc

diff --git a/eck.entity_type.inc b/eck.entity_type.inc
index 382d1b8..550c217 100644
--- a/eck.entity_type.inc
+++ b/eck.entity_type.inc
@@ -397,7 +397,9 @@ function eck__entity_type__info($entity_type) {
           'label' => t('Teaser'),
           'custom settings' => TRUE,
       )
-    )
+    ),
+    // Inline entity form module integration.
+    'inline entity form' => array('controller' => 'EckInlineEntityFormController'),
   );
   
   $eck_path = eck__entity_type__path();
diff --git a/eck.info b/eck.info
index cda7e91..76bb4d4 100644
--- a/eck.info
+++ b/eck.info
@@ -7,7 +7,10 @@ configure = admin/structure/entity-type
 dependencies[] = entity
 dependencies[] = ctools
 
+; Views integration files
 files[] = views/handlers/eck_views_handler_field_link.inc
 files[] = views/handlers/eck_views_handler_field_link_edit.inc
 files[] = views/handlers/eck_views_handler_field_link_delete.inc
 
+; Inline entity form integration
+files[] = includes/eck.inline_entity_form.inc
diff --git a/includes/eck.inline_entity_form.inc b/includes/eck.inline_entity_form.inc
new file mode 100644
index 0000000..1ddb9c1
--- /dev/null
+++ b/includes/eck.inline_entity_form.inc
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ * @file
+ * Defines the inline entity form controller for ECK Entities.
+ */
+
+class EckInlineEntityFormController extends EntityInlineEntityFormController {
+
+  /**
+   * Overrides EntityInlineEntityFormController::labels().
+   */
+  public function labels() {
+    $entity_info = entity_get_info($this->entityType);
+    $labels = array(
+      'singular' => $entity_info['label'],
+      'plural' => $entity_info['label'],
+    );
+    return $labels;
+  }
+
+  /**
+   * Overrides EntityInlineEntityFormController::entityForm().
+   */
+  public function entityForm($entity_form, &$form_state) {
+    $entity_form = array_merge($entity_form, eck__entity__form($entity_form, $form_state, $entity_form['#entity']));
+    unset($entity_form['submit']);
+    return $entity_form;
+  }
+}
-- 
1.7.5.4

