Define the defaultExternUrl setting ("standalone"/"router")
authorTim Otten <totten@civicrm.org>
Tue, 12 May 2020 23:14:07 +0000 (16:14 -0700)
committerTim Otten <totten@civicrm.org>
Wed, 13 May 2020 07:05:49 +0000 (00:05 -0700)
This toggle allows a sysadmin to choose between the legacy `extern/foo.php`
and newer built-in routes.

CRM/Admin/Form/Setting/Url.php
settings/Core.setting.php
templates/CRM/Admin/Form/Setting/Url.hlp
templates/CRM/Admin/Form/Setting/Url.tpl

index 09b1dd1fc45f2d558e771121071e031fe7142626..fa854247eaf4243b053c5c79cd4d964d65e11c77 100644 (file)
@@ -21,6 +21,7 @@
 class CRM_Admin_Form_Setting_Url extends CRM_Admin_Form_Setting {
   protected $_settings = [
     'disable_core_css' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
+    'defaultExternUrl' => CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
     'userFrameworkResourceURL' => CRM_Core_BAO_Setting::URL_PREFERENCES_NAME,
     'imageUploadURL' => CRM_Core_BAO_Setting::URL_PREFERENCES_NAME,
     'customCSSURL' => CRM_Core_BAO_Setting::URL_PREFERENCES_NAME,
index 349f266bde10d5184d4c4589738d88f8851c2390..910182dde4a4e0b55856b7bb70b2bb66da6a3583 100644 (file)
@@ -239,6 +239,27 @@ return [
     'description' => NULL,
     'help_text' => NULL,
   ],
+  'defaultExternUrl' => [
+    'group_name' => 'CiviCRM Preferences',
+    'group' => 'core',
+    'name' => 'defaultExternUrl',
+    'type' => 'String',
+    'quick_form_type' => 'Select',
+    'html_type' => 'Select',
+    'html_attributes' => [
+      'class' => 'crm-select2',
+    ],
+    'default' => 'router',
+    'add' => '5.27',
+    'title' => ts('Extern URL Style'),
+    'is_domain' => 1,
+    'is_contact' => 0,
+    'help_text' => NULL,
+    'options' => [
+      'standalone' => ts('Prefer standalone scripts'),
+      'router' => ts('Prefer normal router'),
+    ],
+  ],
   'activity_assignee_notification' => [
     'group_name' => 'CiviCRM Preferences',
     'group' => 'core',
index a2d1b1a86b247c09bbd709e09a3989245a952dce..e01986593a7791874842c809b4b5978a5399f811 100644 (file)
 <p>{ts}You can modify the look and feel of CiviCRM by adding your own stylesheet. For small to medium sized modifications, use your css file to override some of the styles in civicrm.css. Or if you need to make drastic changes, you can choose to disable civicrm.css completely.{/ts}</p>
 {/htxt}
 
+{htxt id='id-defaultExternUrl'}
+<p>{ts}CiviCRM generates callback URLs for external services.{/ts}</p>
+<p>{ts}Some callback URLs are being migrated to a different style. During the transition, you may indicate a preferred style, such as:{/ts}</p>
+<ul>
+    <li>{ts}"Standalone Scripts" - In the traditional style, each callback URL is a standalone PHP script. You may wish to use this style if you need to maximize performance or if you need continuity.{/ts}</li>
+    <li>{ts}"Router" - In the newer style, each callback URL is defined like a normal CiviCRM page. You may wish to use this style for greater consistency or portability.{/ts}</li>
+</ul>
+<p>{ts}This setting only affects the default URL produced by "civicrm-core". Extensions and add-ons may override specific URLs.{/ts}</p>
+{/htxt}
+
 {htxt id='id-url_vars'}
 {ts}URL Variables{/ts}
   <table>
index 3ecb7699b760d3699e74fdc76e3d9ebf5434090f..ab3cd178b92449b889d1f9d6bbdb4e64e1249d6e 100644 (file)
             <p class="description font-red">{ts}{$verifySSL_description}{/ts}</p>
         </td>
     </tr>
+    <tr class="crm-url-form-block-defaultExternUrl">
+        <td class="label">
+            {$form.defaultExternUrl.label} {help id='id-defaultExternUrl'}
+        </td>
+        <td>
+            {$form.defaultExternUrl.html}
+        </td>
+    </tr>
 </table>
 <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
 </div>