CRM_Core_DAO - Add helper function to determine if associated component is enabled
authorColeman Watts <coleman@civicrm.org>
Thu, 15 Sep 2022 16:05:14 +0000 (12:05 -0400)
committerColeman Watts <coleman@civicrm.org>
Thu, 15 Sep 2022 20:10:54 +0000 (16:10 -0400)
16 files changed:
CRM/Activity/BAO/Query.php
CRM/Activity/Form/Activity.php
CRM/Campaign/BAO/Campaign.php
CRM/Case/BAO/Case.php
CRM/Core/BAO/UFGroup.php
CRM/Core/DAO.php
CRM/Core/EntityTokens.php
CRM/Core/Resources.php
CRM/Mailing/Selector/Browse.php
CRM/Utils/Check/Component/Case.php
Civi/API/Request.php
Civi/Api4/Action/Entity/Get.php
templates/CRM/Activity/Form/ActivityView.tpl
templates/CRM/Contribute/Page/ContributionPage.tpl
templates/CRM/Event/Page/ManageEvent.tpl
templates/CRM/Mailing/Page/Browse.tpl

index d147c9fc6f3612381874c3aa17076aefde4b7895..03b895776498052d1b7399c36456c93a84c2a2ad 100644 (file)
@@ -500,7 +500,7 @@ class CRM_Activity_BAO_Query {
     // Add engagement level CRM-7775.
     $buildEngagementLevel = FALSE;
     $buildSurveyResult = FALSE;
-    if (CRM_Campaign_BAO_Campaign::isCampaignEnable() &&
+    if (CRM_Campaign_BAO_Campaign::isComponentEnabled() &&
       CRM_Campaign_BAO_Campaign::accessCampaign()
     ) {
       $buildEngagementLevel = TRUE;
index ab071e004a693f9c25bfbba8067d194d25905dd6..2886929f9235500cd9ff8c3a6779213a9286c755 100644 (file)
@@ -683,7 +683,7 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
 
     // Add engagement level CRM-7775
     $buildEngagementLevel = FALSE;
-    if (CRM_Campaign_BAO_Campaign::isCampaignEnable() &&
+    if (CRM_Campaign_BAO_Campaign::isComponentEnabled() &&
       CRM_Campaign_BAO_Campaign::accessCampaign()
     ) {
       $buildEngagementLevel = TRUE;
@@ -698,7 +698,7 @@ class CRM_Activity_Form_Activity extends CRM_Contact_Form_Task {
     // check for survey activity
     $this->_isSurveyActivity = FALSE;
 
-    if ($this->_activityId && CRM_Campaign_BAO_Campaign::isCampaignEnable() &&
+    if ($this->_activityId && CRM_Campaign_BAO_Campaign::isComponentEnabled() &&
       CRM_Campaign_BAO_Campaign::accessCampaign()
     ) {
 
index 0174f2c5e3197567484084676689e8afa244f8f3..2314942c10c7cd6dbe050120ab07c91c1c45626f 100644 (file)
@@ -255,7 +255,7 @@ Order By  camp.title";
 
       //do check for component.
       if ($doCheckForComponent) {
-        $campaigns['isCampaignEnabled'] = $isValid = self::isCampaignEnable();
+        $campaigns['isCampaignEnabled'] = $isValid = self::isComponentEnabled();
       }
 
       //do check for permissions.
@@ -283,11 +283,12 @@ Order By  camp.title";
 
   /**
    * Is CiviCampaign enabled.
-   *
+   * @deprecated
    * @return bool
    */
   public static function isCampaignEnable(): bool {
-    return CRM_Core_Component::isEnabled('CiviCampaign');
+    CRM_Core_Error::deprecatedFunctionWarning('isComponentEnabled');
+    return self::isComponentEnabled();
   }
 
   /**
index c45b8dffd30615c1e271ef3fa64f6e019162653f..7ea41f2efe6872bc0414cf501a9b00ebe67d84e5 100644 (file)
@@ -30,11 +30,12 @@ class CRM_Case_BAO_Case extends CRM_Case_DAO_Case implements \Civi\Core\HookInte
 
   /**
    * Is CiviCase enabled?
-   *
+   * @deprecated
    * @return bool
    */
   public static function enabled() {
-    return CRM_Core_Component::isEnabled('CiviCase');
+    CRM_Core_Error::deprecatedFunctionWarning('isComponentEnabled');
+    return self::isComponentEnabled();
   }
 
   /**
@@ -63,7 +64,7 @@ class CRM_Case_BAO_Case extends CRM_Case_DAO_Case implements \Civi\Core\HookInte
    */
   public static function on_hook_civicrm_post(\Civi\Core\Event\PostEvent $e): void {
     // FIXME: The EventScanner ought to skip over disabled components when registering HookInterface
-    if (!CRM_Core_Component::isEnabled('CiviCase')) {
+    if (!self::isComponentEnabled()) {
       return;
     }
     if ($e->entity === 'Activity' && in_array($e->action, ['create', 'edit'])) {
@@ -2467,7 +2468,7 @@ WHERE id IN (' . implode(',', $copiedActivityIds) . ')';
     }
 
     //do check for civicase component enabled.
-    if ($checkComponent && !self::enabled()) {
+    if ($checkComponent && !self::isComponentEnabled()) {
       return $allow;
     }
 
@@ -2709,7 +2710,7 @@ WHERE id IN (' . implode(',', $copiedActivityIds) . ')';
    * or 'access all cases and activities'
    */
   public static function accessCiviCase() {
-    if (!self::enabled()) {
+    if (!self::isComponentEnabled()) {
       return FALSE;
     }
 
@@ -2732,7 +2733,7 @@ WHERE id IN (' . implode(',', $copiedActivityIds) . ')';
    * @return bool
    */
   public static function accessCase($caseId, $denyClosed = TRUE) {
-    if (!$caseId || !self::enabled()) {
+    if (!$caseId || !self::isComponentEnabled()) {
       return FALSE;
     }
 
index 063fe93f16be8c7e0f6c6dc5ec21708512e4870f..7dc58cb1f5d90b5be35d375fe8d808c4fae3a218 100644 (file)
@@ -2164,7 +2164,7 @@ AND    ( entity_id IS NULL OR entity_id <= 0 )
       $form->add('textarea', $name, $title, CRM_Core_DAO::getAttribute('CRM_Core_DAO_Email', $fieldName));
     }
     elseif (substr($fieldName, -11) == 'campaign_id') {
-      if (CRM_Campaign_BAO_Campaign::isCampaignEnable()) {
+      if (CRM_Campaign_BAO_Campaign::isComponentEnabled()) {
         $campaigns = CRM_Campaign_BAO_Campaign::getCampaigns(CRM_Utils_Array::value($contactId,
           $form->_componentCampaigns
         ));
index 7d916175019b4def0618c6bd7b495af7634bda7c..90757d0305a545d120a6a10a2c3ee324882f5dfa 100644 (file)
@@ -3366,4 +3366,14 @@ SELECT contact_id
     $this->name = $name . $suffix;
   }
 
+  /**
+   * Check if component is enabled for this DAO class
+   *
+   * @return bool
+   */
+  public static function isComponentEnabled(): bool {
+    $daoName = static::class;
+    return !defined("$daoName::COMPONENT") || CRM_Core_Component::isEnabled($daoName::COMPONENT);
+  }
+
 }
index 8f7866971b5a5230c43acc062d5b08bea1896aa5..9ee0757364335735c43cc4b9b35eff0841105996 100644 (file)
@@ -409,7 +409,7 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber {
     // 'not a real field' offered up by case - seems like an oddity
     // we should skip at the top level for now.
     $fields = ['tags'];
-    if (!CRM_Campaign_BAO_Campaign::isCampaignEnable()) {
+    if (!CRM_Campaign_BAO_Campaign::isComponentEnabled()) {
       $fields[] = 'campaign_id';
     }
     return $fields;
index 88a8d64a0ecc9f5fbe3a9bd0e6d716117337f63f..27c13416ca2f1b1112920a8925595b71426ba29f 100644 (file)
@@ -504,7 +504,7 @@ class CRM_Core_Resources implements CRM_Core_Resources_CollectionAdderInterface
 
     foreach (CRM_Core_DAO_AllCoreTables::daoToClass() as $entity => $daoName) {
       // Skip DAOs of disabled components
-      if (defined("$daoName::COMPONENT") && !CRM_Core_Component::isEnabled($daoName::COMPONENT)) {
+      if (!$daoName::isComponentEnabled()) {
         continue;
       }
       $baoName = str_replace('_DAO_', '_BAO_', $daoName);
index 8151febab94ef6cbb9f01f8391ec716faa7a5721..df1442be6ff750763d81f3bc60d2aa25346c0a9d 100644 (file)
@@ -162,7 +162,7 @@ class CRM_Mailing_Selector_Browse extends CRM_Core_Selector_Base implements CRM_
         ]
       );
 
-      if (CRM_Campaign_BAO_Campaign::isCampaignEnable()) {
+      if (CRM_Campaign_BAO_Campaign::isComponentEnabled()) {
         self::$_columnHeaders[] = [
           'name' => ts('Campaign'),
           'sort' => 'campaign_id',
index 89f623ed73fa7b2cfe8889f2b92a9824900d5ece..d6b4c1148824d86f66d1eaae0a8bc1e8d49b6ba0 100644 (file)
@@ -40,7 +40,7 @@ class CRM_Utils_Check_Component_Case extends CRM_Utils_Check_Component {
    * @inheritDoc
    */
   public function isEnabled() {
-    return CRM_Case_BAO_Case::enabled();
+    return CRM_Case_BAO_Case::isComponentEnabled();
   }
 
   /**
index 55765a9bcb36401feb7715854a2334d62fea482f..62cd7605cdf6c9e1b15ae2c79362b91c347263b6 100644 (file)
@@ -52,7 +52,7 @@ class Request {
         }
         // Check enabled components
         $daoName = \CRM_Core_DAO_AllCoreTables::getFullName($entity);
-        if ($daoName && defined("{$daoName}::COMPONENT") && !\CRM_Core_Component::isEnabled($daoName::COMPONENT)) {
+        if ($daoName && !$daoName::isComponentEnabled()) {
           throw new \Civi\API\Exception\NotImplementedException("$entity API is not available because " . $daoName::COMPONENT . " component is disabled");
         }
         $args = (array) CoreUtil::getInfoItem($entity, 'class_args');
index 13b96573fe637a93010f6ec1a7aa801ea2431c15..a7fa82d76217fb1752f861c78dcf176e2c0f57bd 100644 (file)
@@ -35,7 +35,7 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
     return array_filter($provider->getEntities(), function($entity) {
       // Only include DAO entities from enabled components
       $daoName = $entity['dao'] ?? NULL;
-      return (!$daoName || !defined("{$daoName}::COMPONENT") || \CRM_Core_Component::isEnabled($daoName::COMPONENT));
+      return (!$daoName || $daoName::isComponentEnabled());
     });
   }
 
index b0a02df612d4372aee2c5e4bcbdd0ef27eab0bf8..35c0297cfe5cdee118ef4417bedc6860f7fa997e 100644 (file)
@@ -36,7 +36,7 @@
         {/if}
 
   {if $values.engagement_level AND
-      call_user_func( array( 'CRM_Campaign_BAO_Campaign', 'isCampaignEnable' ) )}
+      call_user_func( array( 'CRM_Campaign_BAO_Campaign', 'isComponentEnabled' ) )}
       <td class="label">{ts}Engagement Level{/ts}</td><td class="view-value">{$values.engagement_level}</td>
   {/if}
 
index 2321d2524b2be7630fcec8979cb4d826db39e134..330b87da8fab38004e3ff77487e119758a90cee9 100644 (file)
@@ -37,7 +37,7 @@
                  <th>{ts}Title{/ts}</th>
                <th>{ts}ID{/ts}</th>
                <th>{ts}Enabled?{/ts}</th>
-             {if call_user_func(array('CRM_Campaign_BAO_Campaign','isCampaignEnable'))}
+             {if call_user_func(array('CRM_Campaign_BAO_Campaign','isComponentEnabled'))}
              <th>{ts}Campaign{/ts}</th>
             {/if}
             <th></th>
@@ -48,7 +48,7 @@
                      <td><strong>{$row.title}</strong></td>
                      <td>{$row.id}</td>
                      <td id="row_{$row.id}_status">{if $row.is_active eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
-          {if call_user_func(array('CRM_Campaign_BAO_Campaign','isCampaignEnable'))}
+          {if call_user_func(array('CRM_Campaign_BAO_Campaign','isComponentEnabled'))}
           <td>{$row.campaign}</td>
           {/if}
           <td class="crm-contribution-page-actions right nowrap">
index b634902a124cbba9933bc46809150bfa606e854f..c69aa9943f32f60e298c0f7283a77034b82d85bc 100644 (file)
@@ -41,7 +41,7 @@
         <th>{ts}Public?{/ts}</th>
         <th>{ts}Starts{/ts}</th>
         <th>{ts}Ends{/ts}</th>
-        {if call_user_func(array('CRM_Campaign_BAO_Campaign','isCampaignEnable'))}
+        {if call_user_func(array('CRM_Campaign_BAO_Campaign','isComponentEnabled'))}
           <th>{ts}Campaign{/ts}</th>
         {/if}
         <th>{ts}Active?{/ts}</th>
@@ -64,7 +64,7 @@
           <td class="crm-event-is_public">{if $row.is_public eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
           <td class="crm-event-start_date" data-order="{$row.start_date|crmDate:'%Y-%m-%d'}">{$row.start_date|crmDate:"%b %d, %Y %l:%M %P"}</td>
           <td class="crm-event-end_date" data-order="{$row.end_date|crmDate:'%Y-%m-%d'}">{$row.end_date|crmDate:"%b %d, %Y %l:%M %P"}</td>
-          {if call_user_func(array('CRM_Campaign_BAO_Campaign','isCampaignEnable'))}
+          {if call_user_func(array('CRM_Campaign_BAO_Campaign','isComponentEnabled'))}
             <td class="crm-event-campaign">{$row.campaign}</td>
           {/if}
           <td class="crm-event_status" id="row_{$row.id}_status">
index c0fdd64d5a360d55eba9555e07d64e077c325ec8..01482f230bda363014058971b9743a088725e13c 100644 (file)
@@ -67,7 +67,7 @@
         <td class="crm-mailing-scheduled">{$row.scheduled}</td>
         <td class="crm-mailing-start">{$row.start}</td>
         <td class="crm-mailing-end">{$row.end}</td>
-       {if call_user_func(array('CRM_Campaign_BAO_Campaign','isCampaignEnable'))}
+       {if call_user_func(array('CRM_Campaign_BAO_Campaign','isComponentEnabled'))}
           <td class="crm-mailing-campaign">{$row.campaign}</td>
       {/if}
         <td>{$row.action|smarty:nodefaults|replace:'xx':$row.id}</td>