diff core/modules/contact/src/Entity/ContactForm.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 129ea1e6d783
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/modules/contact/src/Entity/ContactForm.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,187 @@
+<?php
+
+namespace Drupal\contact\Entity;
+
+use Drupal\Core\Config\Entity\ConfigEntityBundleBase;
+use Drupal\contact\ContactFormInterface;
+use Drupal\Core\Url;
+
+/**
+ * Defines the contact form entity.
+ *
+ * @ConfigEntityType(
+ *   id = "contact_form",
+ *   label = @Translation("Contact form"),
+ *   handlers = {
+ *     "access" = "Drupal\contact\ContactFormAccessControlHandler",
+ *     "list_builder" = "Drupal\contact\ContactFormListBuilder",
+ *     "form" = {
+ *       "add" = "Drupal\contact\ContactFormEditForm",
+ *       "edit" = "Drupal\contact\ContactFormEditForm",
+ *       "delete" = "Drupal\Core\Entity\EntityDeleteForm"
+ *     }
+ *   },
+ *   config_prefix = "form",
+ *   admin_permission = "administer contact forms",
+ *   bundle_of = "contact_message",
+ *   entity_keys = {
+ *     "id" = "id",
+ *     "label" = "label"
+ *   },
+ *   links = {
+ *     "delete-form" = "/admin/structure/contact/manage/{contact_form}/delete",
+ *     "edit-form" = "/admin/structure/contact/manage/{contact_form}",
+ *     "collection" = "/admin/structure/contact",
+ *     "canonical" = "/contact/{contact_form}",
+ *   },
+ *   config_export = {
+ *     "id",
+ *     "label",
+ *     "recipients",
+ *     "reply",
+ *     "weight",
+ *     "message",
+ *     "redirect",
+ *   }
+ * )
+ */
+class ContactForm extends ConfigEntityBundleBase implements ContactFormInterface {
+
+  /**
+   * The form ID.
+   *
+   * @var string
+   */
+  protected $id;
+
+  /**
+   * The human-readable label of the category.
+   *
+   * @var string
+   */
+  protected $label;
+
+  /**
+   * The message displayed to user on form submission.
+   *
+   * @var string
+   */
+  protected $message;
+
+  /**
+   * List of recipient email addresses.
+   *
+   * @var array
+   */
+  protected $recipients = [];
+
+  /**
+   * The path to redirect to on form submission.
+   *
+   * @var string
+   */
+  protected $redirect;
+
+  /**
+   * An auto-reply message.
+   *
+   * @var string
+   */
+  protected $reply = '';
+
+  /**
+   * The weight of the category.
+   *
+   * @var int
+   */
+  protected $weight = 0;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getMessage() {
+    return $this->message;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setMessage($message) {
+    $this->message = $message;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRecipients() {
+    return $this->recipients;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setRecipients($recipients) {
+    $this->recipients = $recipients;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRedirectPath() {
+    return $this->redirect;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRedirectUrl() {
+    if ($this->redirect) {
+      $url = Url::fromUserInput($this->redirect);
+    }
+    else {
+      $url = Url::fromRoute('<front>');
+    }
+    return $url;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setRedirectPath($redirect) {
+    $this->redirect = $redirect;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getReply() {
+    return $this->reply;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setReply($reply) {
+    $this->reply = $reply;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getWeight() {
+    return $this->weight;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setWeight($weight) {
+    $this->weight = $weight;
+    return $this;
+  }
+
+}