Version 1
[yaffs-website] / web / core / lib / Drupal / Core / Entity / BundleEntityFormBase.php
diff --git a/web/core/lib/Drupal/Core/Entity/BundleEntityFormBase.php b/web/core/lib/Drupal/Core/Entity/BundleEntityFormBase.php
new file mode 100644 (file)
index 0000000..f51dd36
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+
+namespace Drupal\Core\Entity;
+
+/**
+ * Class BundleEntityFormBase is a base form for bundle config entities.
+ */
+class BundleEntityFormBase extends EntityForm {
+
+  /**
+   * Protects the bundle entity's ID property's form element against changes.
+   *
+   * This method is assumed to be called on a completely built entity form,
+   * including a form element for the bundle config entity's ID property.
+   *
+   * @param array $form
+   *   The completely built entity bundle form array.
+   *
+   * @return array
+   *   The updated entity bundle form array.
+   */
+  protected function protectBundleIdElement(array $form) {
+    $entity = $this->getEntity();
+    $id_key = $entity->getEntityType()->getKey('id');
+    assert('isset($form[$id_key])');
+    $element = &$form[$id_key];
+
+    // Make sure the element is not accidentally re-enabled if it has already
+    // been disabled.
+    if (empty($element['#disabled'])) {
+      $element['#disabled'] = !$entity->isNew();
+    }
+    return $form;
+  }
+
+}