3 +--------------------------------------------------------------------+
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2019 |
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
19 | You should have received a copy of the GNU Affero General Public |
20 | License and the CiviCRM Licensing Exception along |
21 | with this program; if not, contact CiviCRM LLC |
22 | at info[AT]civicrm[DOT]org. If you have questions about the |
23 | GNU Affero General Public License or the licensing of CiviCRM, |
24 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
25 +--------------------------------------------------------------------+
31 * @copyright CiviCRM LLC (c) 2004-2019
35 * This class generates form components for Component.
37 class CRM_Admin_Form_Setting_Component
extends CRM_Admin_Form_Setting
{
38 protected $_components;
40 protected $_settings = [
41 'enable_components' => CRM_Core_BAO_Setting
::SYSTEM_PREFERENCES_NAME
,
45 * Build the form object.
47 public function buildQuickForm() {
48 $this->addFormRule(['CRM_Admin_Form_Setting_Component', 'formRule'], $this);
49 parent
::buildQuickForm();
55 * @param array $fields
56 * The input form values.
58 * The uploaded files if any.
59 * @param array $options
60 * Additional user data.
63 * true if no errors, else array of errors
65 public static function formRule($fields, $files, $options) {
68 if (array_key_exists('enable_components', $fields) && is_array($fields['enable_components'])) {
69 if (in_array('CiviPledge', $fields['enable_components']) &&
70 !in_array('CiviContribute', $fields['enable_components'])
72 $errors['enable_components'] = ts('You need to enable CiviContribute before enabling CiviPledge.');
74 if (in_array('CiviCase', $fields['enable_components']) &&
75 !CRM_Core_DAO
::checkTriggerViewPermission(TRUE, FALSE)
77 $errors['enable_components'] = ts('CiviCase requires CREATE VIEW and DROP VIEW permissions for the database.');