X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FUtils%2FVersionCheck.php;h=4a9407f5dbe8f7783b30a9f77c0f6da81415cd4c;hb=8e7dbe1623e988dc347e1866055f4b3833c443a1;hp=0b3b9fa4607c11d8d1f643cbdfc4145ccd99d223;hpb=ade6fb60d785ddb1a0ee60782644ea34a4c01eef;p=civicrm-core.git diff --git a/CRM/Utils/VersionCheck.php b/CRM/Utils/VersionCheck.php index 0b3b9fa460..4a9407f5db 100644 --- a/CRM/Utils/VersionCheck.php +++ b/CRM/Utils/VersionCheck.php @@ -74,9 +74,10 @@ class CRM_Utils_VersionCheck { /** * Self-populates version info * - * @throws \Exception + * @param bool $force + * @throws Exception */ - public function initialize() { + public function initialize($force = FALSE) { $this->getJob(); // Populate remote $versionInfo from cache file @@ -84,9 +85,9 @@ class CRM_Utils_VersionCheck { // Fallback if scheduled job is enabled but has failed to run. $expiryTime = time() - self::CACHEFILE_EXPIRE; - if (!empty($this->cronJob['is_active']) && + if ($force || (!empty($this->cronJob['is_active']) && (!$this->isInfoAvailable || filemtime($this->cacheFile) < $expiryTime) - ) { + )) { // First try updating the files modification time, for 2 reasons: // - if the file is not writeable, this saves the trouble of pinging back // - if the remote server is down, this will prevent an immediate retry @@ -177,6 +178,7 @@ class CRM_Utils_VersionCheck { * Add info to the 'entities' array */ private function getEntityStats() { + // FIXME hardcoded list = bad $tables = [ 'CRM_Activity_DAO_Activity' => 'is_test = 0', 'CRM_Case_DAO_Case' => 'is_deleted = 0', @@ -202,15 +204,18 @@ class CRM_Utils_VersionCheck { 'CRM_Mailing_Event_DAO_Delivered' => NULL, ]; foreach ($tables as $daoName => $where) { - $dao = new $daoName(); - if ($where) { - $dao->whereAdd($where); + if (class_exists($daoName)) { + /* @var \CRM_Core_DAO $dao */ + $dao = new $daoName(); + if ($where) { + $dao->whereAdd($where); + } + $short_name = substr($daoName, strrpos($daoName, '_') + 1); + $this->stats['entities'][] = [ + 'name' => $short_name, + 'size' => $dao->count(), + ]; } - $short_name = substr($daoName, strrpos($daoName, '_') + 1); - $this->stats['entities'][] = [ - 'name' => $short_name, - 'size' => $dao->count(), - ]; } }