Avoid PHP notices on the UF settings page.
authorBradley Taylor <hello@brad-taylor.co.uk>
Sun, 30 Jan 2022 11:51:55 +0000 (11:51 +0000)
committerBradley Taylor <hello@brad-taylor.co.uk>
Sun, 30 Jan 2022 17:58:05 +0000 (17:58 +0000)
This primarially benefits non Drupal environments,
specifically WordPress and Joomla.

CRM/Admin/Form/Setting/UF.php
templates/CRM/Admin/Form/Setting/UF.tpl

index 16aedbc90f8ab1cf6772d06b44d5e6914b59b8fa..54078cddc92203e510065cdb87ca7c8e61201a73 100644 (file)
@@ -32,16 +32,21 @@ class CRM_Admin_Form_Setting_UF extends CRM_Admin_Form_Setting {
     $this->_uf = $config->userFramework;
     $this->_settings['syncCMSEmail'] = CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME;
 
-    if ($this->_uf == 'WordPress') {
-      $this->_settings['wpBasePage'] = CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME;
-    }
+    $this->assign('wpBasePageEnabled', FALSE);
+    $this->assign('userFrameworkUsersTableNameEnabled', FALSE);
 
     $this->setTitle(
       ts('Settings - %1 Integration', [1 => $this->_uf])
     );
 
+    if ($this->_uf == 'WordPress') {
+      $this->_settings['wpBasePage'] = CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME;
+      $this->assign('wpBasePageEnabled', TRUE);
+    }
+
     if ($config->userSystem->is_drupal) {
       $this->_settings['userFrameworkUsersTableName'] = CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME;
+      $this->assign('userFrameworkUsersTableNameEnabled', TRUE);
     }
 
     // find out if drupal has its database prefixed
@@ -62,6 +67,8 @@ class CRM_Admin_Form_Setting_UF extends CRM_Admin_Form_Setting {
       }
     }
 
+    $this->assign('tablePrefixes', FALSE);
+
     if ($config->userSystem->viewsExists() &&
       (
         $config->dsn != $config->userFrameworkDSN || !empty($drupal_prefix)
index 0f9398cbd3076bad9a9bb60fb937fd1dcd5b9d95..be63b583363b045760ebbd1782e11255ddf950e8 100644 (file)
 <div class="crm-block crm-form-block crm-uf-form-block">
 <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
       <table class="form-layout-compressed">
-         <tr class="crm-uf-form-block-userFrameworkUsersTableName">
+        {if $userFrameworkUsersTableNameEnabled}
+        <tr class="crm-uf-form-block-userFrameworkUsersTableName">
             <td class="label">{$form.userFrameworkUsersTableName.label}</td>
             <td>{$form.userFrameworkUsersTableName.html}</td>
         </tr>
-        {if !empty($form.wpBasePage)}
-         <tr class="crm-uf-form-block-wpBasePage">
+        {/if}
+        {if $wpBasePageEnabled}
+        <tr class="crm-uf-form-block-wpBasePage">
             <td class="label">{$form.wpBasePage.label}</td>
             <td>{$config->userFrameworkBaseURL}{$form.wpBasePage.html}
             <p class="description">{ts 1=$config->userFrameworkBaseURL}By default, CiviCRM will generate front-facing pages using the home page at %1 as its base. If you want to use a different template for CiviCRM pages, set the path here.{/ts}</p>