Fix notics on Membership Settings form.
authoreileen <emcnaughton@wikimedia.org>
Thu, 18 Oct 2018 19:59:33 +0000 (08:59 +1300)
committereileen <emcnaughton@wikimedia.org>
Thu, 18 Oct 2018 19:59:33 +0000 (08:59 +1300)
Membership settings form has some enotices off the back of work on the
display form. This fixes those & makes it a 'pure' form in that it relies fully on the
metadata

CRM/Admin/Form/Preferences.php
CRM/Admin/Form/Preferences/Member.php
CRM/Admin/Form/SettingTrait.php
settings/Member.setting.php

index 28b4cf191a465dbac44c9e35d5e002c109de6bd2..710623cef01ec1ac4ee2a270dca0354dda63adec 100644 (file)
@@ -44,7 +44,7 @@ class CRM_Admin_Form_Preferences extends CRM_Core_Form {
 
   protected $_checkbox = NULL;
 
-  protected $_varNames = NULL;
+  protected $_varNames = [];
 
   protected $_config = NULL;
 
index 8ae9eabcf1046b4d929340bcc046333e8d09b112..619ca6958151b1db90f111e0016390285ea0d919 100644 (file)
  * This class generates form components for component preferences.
  */
 class CRM_Admin_Form_Preferences_Member extends CRM_Admin_Form_Preferences {
-  public function preProcess() {
-    CRM_Utils_System::setTitle(ts('CiviMember Component Settings'));
-    $this->_varNames = array(
-      CRM_Core_BAO_Setting::MEMBER_PREFERENCES_NAME => array(
-        'default_renewal_contribution_page' => array(
-          'html_type' => 'select',
-          'title' => ts('Default online membership renewal page'),
-          'option_values' => array('' => ts('- select -')) + CRM_Contribute_PseudoConstant::contributionPage(),
-          'weight' => 1,
-          'description' => ts('If you select a default online contribution page for self-service membership renewals, a "renew" link pointing to that page will be displayed on the Contact Dashboard for memberships which were entered offline. You will need to ensure that the membership block for the selected online contribution page includes any currently available memberships.'),
-        ),
-      ),
-    );
 
-    parent::preProcess();
-  }
-
-  /**
-   * Build the form object.
-   */
-  public function buildQuickForm() {
-    parent::buildQuickForm();
-  }
+  protected $_settings = [
+    'default_renewal_contribution_page' => CRM_Core_BAO_Setting::MEMBER_PREFERENCES_NAME,
+  ];
 
 }
index 5b5364d1e1d324e485fd8931e61ddc1821593e21..92e961591fc5536d4939485bf454488c00696d6b 100644 (file)
@@ -191,6 +191,7 @@ trait CRM_Admin_Form_SettingTrait {
     // setting_description should be deprecated - see Mail.tpl for metadata based tpl.
     $this->assign('setting_descriptions', $descriptions);
     $this->assign('settings_fields', $settingMetaData);
+    $this->assign('fields', $settingMetaData);
   }
 
   /**
@@ -208,6 +209,7 @@ trait CRM_Admin_Form_SettingTrait {
       'checkboxes' => 'CheckBoxes',
       'checkbox' => 'CheckBox',
       'radio' => 'Radio',
+      'select' => 'Select',
     ];
     return $mapping[$spec['html_type']];
   }
index f2a8962b7a7c8d48801a3a55524384f7dbfb231c..49500a886abd90a02a80e55403a4fe3b89797b1f 100644 (file)
@@ -42,16 +42,17 @@ return array(
     'group' => 'member',
     'name' => 'default_renewal_contribution_page',
     'type' => 'Integer',
-    'html_type' => 'Select',
+    'html_type' => 'select',
     'default' => NULL,
     'pseudoconstant' => array(
-      'name' => 'contributionPage',
+      // @todo - handle table style pseudoconstants for settings & avoid deprecated function.
+      'callback' => 'CRM_Contribute_PseudoConstant::contributionPage',
     ),
     'add' => '4.1',
     'title' => 'Default online membership renewal page',
     'is_domain' => 1,
     'is_contact' => 0,
-    'description' => 'If you select a default online contribution page for self-service membership renewals, a "renew" link pointing to that page will be displayed on the Contact Dashboard for memberships which were entered offline. You will need to ensure that the membership block for the selected online contribution page includes any currently available memberships.',
+    'description' => ts('If you select a default online contribution page for self-service membership renewals, a "renew" link pointing to that page will be displayed on the Contact Dashboard for memberships which were entered offline. You will need to ensure that the membership block for the selected online contribution page includes any currently available memberships.'),
     'help_text' => NULL,
   ),
 );