Merge pull request #24115 from kcristiano/5.52-token
[civicrm-core.git] / CRM / Custom / Form / DeleteField.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
5 | |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
10 */
11
12 /**
13 *
14 * @package CRM
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
16 */
17
18 /**
19 * This class is to build the form for deleting a field
20 */
21 class CRM_Custom_Form_DeleteField extends CRM_Core_Form {
22
23 /**
24 * The group id.
25 *
26 * @var int
27 */
28 protected $_id;
29
30 /**
31 * The title of the group being deleted.
32 *
33 * @var string
34 */
35 protected $_title;
36
37 /**
38 * Set up variables to build the form.
39 *
40 * @return void
41 * @access protected
42 */
43 public function preProcess() {
44 $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, TRUE);
45
46 $defaults = [];
47 $params = ['id' => $this->_id];
48 CRM_Core_BAO_CustomField::retrieve($params, $defaults);
49
50 $this->_title = $defaults['label'] ?? NULL;
51 $this->assign('title', $this->_title);
52 $this->setTitle(ts('Delete %1', [1 => $this->_title]));
53 }
54
55 /**
56 * Build the form object.
57 *
58 * @return void
59 */
60 public function buildQuickForm() {
61
62 $this->addButtons([
63 [
64 'type' => 'next',
65 'name' => ts('Delete Custom Field'),
66 'isDefault' => TRUE,
67 ],
68 [
69 'type' => 'cancel',
70 'name' => ts('Cancel'),
71 ],
72 ]);
73 }
74
75 /**
76 * Process the form when submitted.
77 *
78 * @return void
79 */
80 public function postProcess() {
81 $field = new CRM_Core_DAO_CustomField();
82 $field->id = $this->_id;
83 $field->find(TRUE);
84
85 CRM_Core_BAO_CustomField::deleteField($field);
86
87 // also delete any profiles associted with this custom field
88 CRM_Core_Session::setStatus(ts('The custom field \'%1\' has been deleted.', [1 => $field->label]), '', 'success');
89
90 }
91
92 }