Avoid duplicate statusPreference checks
authorColeman Watts <coleman@civicrm.org>
Tue, 17 Nov 2015 20:25:10 +0000 (15:25 -0500)
committerColeman Watts <coleman@civicrm.org>
Tue, 17 Nov 2015 20:25:10 +0000 (15:25 -0500)
CRM/Utils/Check/Message.php

index a3640928c1802c1a71a18d21ecb725c23cfc3e00..d673091b29fd3ada2c1e717ecceb36f8aab39a8d 100644 (file)
@@ -64,6 +64,12 @@ class CRM_Utils_Check_Message {
    */
   private $icon;
 
+  /**
+   * @var bool
+   *   Has this message been suppressed?
+   */
+  private $isVisible;
+
   /**
    * @var bool|string
    *   Date this message is hidden until
@@ -173,15 +179,20 @@ class CRM_Utils_Check_Message {
   }
 
   /**
-   * Return message visibility.
+   * Get message visibility.
    *
    * @return bool
    */
   public function isVisible() {
-    return !$this->checkStatusPreference();
+    if (!isset($this->isVisible)) {
+      $this->isVisible = !$this->checkStatusPreference();
+    }
+    return $this->isVisible;
   }
 
   /**
+   * Get date hidden until.
+   *
    * @return string
    */
   public function getHiddenUntil() {
@@ -194,6 +205,8 @@ class CRM_Utils_Check_Message {
   /**
    * Check if message is visible or has been hidden by the user.
    *
+   * Also populates this->hiddenUntil property.
+   *
    * @return bool
    *   TRUE means hidden, FALSE means visible.
    * @throws \CiviCRM_API3_Exception