+--------------------------------------------------------------------+
| CiviCRM version 4.6 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014 |
+ | Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
/**
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2014
+ * @copyright CiviCRM LLC (c) 2004-2015
* $Id$
*
*/
}
/**
- * Change the cache_date
+ * Change the cache_date.
*
* @param array $groupID
* @param bool $processed
}
/**
- * Removes all the cache entries pertaining to a specific group
+ * Removes all the cache entries pertaining to a specific group.
* If no groupID is passed in, removes cache entries for all groups
* Has an optimization to bypass repeated invocations of this function.
* Note that this function is an advisory, i.e. the removal respects the
}
/**
- * Removes one or more contacts from the smart group cache
+ * Removes one or more contacts from the smart group cache.
* @param int|array $cid
* @param int $groupId
* @return bool
}
/**
- * Load the smart group cache for a saved search
+ * Load the smart group cache for a saved search.
*
* @param object $group
* The smart group that needs to be loaded.
}
// grab a lock so other processes dont compete and do the same query
- $lockName = "civicrm.group.{$groupID}";
- $lock = new CRM_Core_Lock($lockName);
+ $lock = Civi\Core\Container::singleton()->get('lockManager')->acquire("data.core.group.{$groupID}");
if (!$lock->isAcquired()) {
// this can cause inconsistent results since we dont know if the other process
// will fill up the cache before our calling routine needs it.
$customClass = CRM_Contact_BAO_SearchCustom::customClass($ssParams['customSearchID'], $savedSearchID);
$searchSQL = $customClass->contactIDs();
$searchSQL = str_replace('ORDER BY contact_a.id ASC', '', $searchSQL);
+ if (!strstr($searchSQL, 'WHERE')) {
+ $searchSQL .= " WHERE ( 1 ) ";
+ }
$idName = 'contact_id';
}
else {
"INSERT IGNORE INTO civicrm_group_contact_cache (contact_id, group_id)
SELECT DISTINCT $idName, group_id FROM $tempTable
");
- CRM_Core_DAO::executeQuery(" DROP TABLE $tempTable");
+ CRM_Core_DAO::executeQuery(" DROP TEMPORARY TABLE $tempTable");
}
self::updateCacheTime($groupIDs, $processed);
}
/**
- * Get all the smart groups that this contact belongs to
+ * Get all the smart groups that this contact belongs to.
* Note that this could potentially be a super slow function since
* it ensure that all contact groups are loaded in the cache
*