Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\contact\Entity;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\Core\Config\Entity\ConfigEntityBundleBase;
|
Chris@0
|
6 use Drupal\contact\ContactFormInterface;
|
Chris@0
|
7 use Drupal\Core\Url;
|
Chris@0
|
8
|
Chris@0
|
9 /**
|
Chris@0
|
10 * Defines the contact form entity.
|
Chris@0
|
11 *
|
Chris@0
|
12 * @ConfigEntityType(
|
Chris@0
|
13 * id = "contact_form",
|
Chris@0
|
14 * label = @Translation("Contact form"),
|
Chris@17
|
15 * label_collection = @Translation("Contact forms"),
|
Chris@17
|
16 * label_singular = @Translation("contact form"),
|
Chris@17
|
17 * label_plural = @Translation("contact forms"),
|
Chris@17
|
18 * label_count = @PluralTranslation(
|
Chris@17
|
19 * singular = "@count contact form",
|
Chris@17
|
20 * plural = "@count contact forms",
|
Chris@17
|
21 * ),
|
Chris@0
|
22 * handlers = {
|
Chris@0
|
23 * "access" = "Drupal\contact\ContactFormAccessControlHandler",
|
Chris@0
|
24 * "list_builder" = "Drupal\contact\ContactFormListBuilder",
|
Chris@0
|
25 * "form" = {
|
Chris@0
|
26 * "add" = "Drupal\contact\ContactFormEditForm",
|
Chris@0
|
27 * "edit" = "Drupal\contact\ContactFormEditForm",
|
Chris@0
|
28 * "delete" = "Drupal\Core\Entity\EntityDeleteForm"
|
Chris@0
|
29 * }
|
Chris@0
|
30 * },
|
Chris@0
|
31 * config_prefix = "form",
|
Chris@0
|
32 * admin_permission = "administer contact forms",
|
Chris@0
|
33 * bundle_of = "contact_message",
|
Chris@0
|
34 * entity_keys = {
|
Chris@0
|
35 * "id" = "id",
|
Chris@0
|
36 * "label" = "label"
|
Chris@0
|
37 * },
|
Chris@0
|
38 * links = {
|
Chris@0
|
39 * "delete-form" = "/admin/structure/contact/manage/{contact_form}/delete",
|
Chris@0
|
40 * "edit-form" = "/admin/structure/contact/manage/{contact_form}",
|
Chris@0
|
41 * "collection" = "/admin/structure/contact",
|
Chris@0
|
42 * "canonical" = "/contact/{contact_form}",
|
Chris@0
|
43 * },
|
Chris@0
|
44 * config_export = {
|
Chris@0
|
45 * "id",
|
Chris@0
|
46 * "label",
|
Chris@0
|
47 * "recipients",
|
Chris@0
|
48 * "reply",
|
Chris@0
|
49 * "weight",
|
Chris@0
|
50 * "message",
|
Chris@0
|
51 * "redirect",
|
Chris@0
|
52 * }
|
Chris@0
|
53 * )
|
Chris@0
|
54 */
|
Chris@0
|
55 class ContactForm extends ConfigEntityBundleBase implements ContactFormInterface {
|
Chris@0
|
56
|
Chris@0
|
57 /**
|
Chris@0
|
58 * The form ID.
|
Chris@0
|
59 *
|
Chris@0
|
60 * @var string
|
Chris@0
|
61 */
|
Chris@0
|
62 protected $id;
|
Chris@0
|
63
|
Chris@0
|
64 /**
|
Chris@0
|
65 * The human-readable label of the category.
|
Chris@0
|
66 *
|
Chris@0
|
67 * @var string
|
Chris@0
|
68 */
|
Chris@0
|
69 protected $label;
|
Chris@0
|
70
|
Chris@0
|
71 /**
|
Chris@0
|
72 * The message displayed to user on form submission.
|
Chris@0
|
73 *
|
Chris@0
|
74 * @var string
|
Chris@0
|
75 */
|
Chris@0
|
76 protected $message;
|
Chris@0
|
77
|
Chris@0
|
78 /**
|
Chris@0
|
79 * List of recipient email addresses.
|
Chris@0
|
80 *
|
Chris@0
|
81 * @var array
|
Chris@0
|
82 */
|
Chris@0
|
83 protected $recipients = [];
|
Chris@0
|
84
|
Chris@0
|
85 /**
|
Chris@0
|
86 * The path to redirect to on form submission.
|
Chris@0
|
87 *
|
Chris@0
|
88 * @var string
|
Chris@0
|
89 */
|
Chris@0
|
90 protected $redirect;
|
Chris@0
|
91
|
Chris@0
|
92 /**
|
Chris@0
|
93 * An auto-reply message.
|
Chris@0
|
94 *
|
Chris@0
|
95 * @var string
|
Chris@0
|
96 */
|
Chris@0
|
97 protected $reply = '';
|
Chris@0
|
98
|
Chris@0
|
99 /**
|
Chris@0
|
100 * The weight of the category.
|
Chris@0
|
101 *
|
Chris@0
|
102 * @var int
|
Chris@0
|
103 */
|
Chris@0
|
104 protected $weight = 0;
|
Chris@0
|
105
|
Chris@0
|
106 /**
|
Chris@0
|
107 * {@inheritdoc}
|
Chris@0
|
108 */
|
Chris@0
|
109 public function getMessage() {
|
Chris@0
|
110 return $this->message;
|
Chris@0
|
111 }
|
Chris@0
|
112
|
Chris@0
|
113 /**
|
Chris@0
|
114 * {@inheritdoc}
|
Chris@0
|
115 */
|
Chris@0
|
116 public function setMessage($message) {
|
Chris@0
|
117 $this->message = $message;
|
Chris@0
|
118 return $this;
|
Chris@0
|
119 }
|
Chris@0
|
120
|
Chris@0
|
121 /**
|
Chris@0
|
122 * {@inheritdoc}
|
Chris@0
|
123 */
|
Chris@0
|
124 public function getRecipients() {
|
Chris@0
|
125 return $this->recipients;
|
Chris@0
|
126 }
|
Chris@0
|
127
|
Chris@0
|
128 /**
|
Chris@0
|
129 * {@inheritdoc}
|
Chris@0
|
130 */
|
Chris@0
|
131 public function setRecipients($recipients) {
|
Chris@0
|
132 $this->recipients = $recipients;
|
Chris@0
|
133 return $this;
|
Chris@0
|
134 }
|
Chris@0
|
135
|
Chris@0
|
136 /**
|
Chris@0
|
137 * {@inheritdoc}
|
Chris@0
|
138 */
|
Chris@0
|
139 public function getRedirectPath() {
|
Chris@0
|
140 return $this->redirect;
|
Chris@0
|
141 }
|
Chris@0
|
142
|
Chris@0
|
143 /**
|
Chris@0
|
144 * {@inheritdoc}
|
Chris@0
|
145 */
|
Chris@0
|
146 public function getRedirectUrl() {
|
Chris@0
|
147 if ($this->redirect) {
|
Chris@0
|
148 $url = Url::fromUserInput($this->redirect);
|
Chris@0
|
149 }
|
Chris@0
|
150 else {
|
Chris@0
|
151 $url = Url::fromRoute('<front>');
|
Chris@0
|
152 }
|
Chris@0
|
153 return $url;
|
Chris@0
|
154 }
|
Chris@0
|
155
|
Chris@0
|
156 /**
|
Chris@0
|
157 * {@inheritdoc}
|
Chris@0
|
158 */
|
Chris@0
|
159 public function setRedirectPath($redirect) {
|
Chris@0
|
160 $this->redirect = $redirect;
|
Chris@0
|
161 return $this;
|
Chris@0
|
162 }
|
Chris@0
|
163
|
Chris@0
|
164 /**
|
Chris@0
|
165 * {@inheritdoc}
|
Chris@0
|
166 */
|
Chris@0
|
167 public function getReply() {
|
Chris@0
|
168 return $this->reply;
|
Chris@0
|
169 }
|
Chris@0
|
170
|
Chris@0
|
171 /**
|
Chris@0
|
172 * {@inheritdoc}
|
Chris@0
|
173 */
|
Chris@0
|
174 public function setReply($reply) {
|
Chris@0
|
175 $this->reply = $reply;
|
Chris@0
|
176 return $this;
|
Chris@0
|
177 }
|
Chris@0
|
178
|
Chris@0
|
179 /**
|
Chris@0
|
180 * {@inheritdoc}
|
Chris@0
|
181 */
|
Chris@0
|
182 public function getWeight() {
|
Chris@0
|
183 return $this->weight;
|
Chris@0
|
184 }
|
Chris@0
|
185
|
Chris@0
|
186 /**
|
Chris@0
|
187 * {@inheritdoc}
|
Chris@0
|
188 */
|
Chris@0
|
189 public function setWeight($weight) {
|
Chris@0
|
190 $this->weight = $weight;
|
Chris@0
|
191 return $this;
|
Chris@0
|
192 }
|
Chris@0
|
193
|
Chris@0
|
194 }
|