public static function setCache($ID = false, $Data = false)
{
self::instance()->collection->refreshCache((int) $ID);
$Categories = Gdn::cache()->get(self::CACHE_KEY);
self::$Categories = null;
if (!$Categories) {
return;
}
// Extract actual category list, remove key if malformed
if (!$ID || !is_array($Categories) || !array_key_exists('categories', $Categories)) {
Gdn::cache()->remove(self::CACHE_KEY);
return;
}
$Categories = $Categories['categories'];
// Check for category in list, otherwise remove key if not found
if (!array_key_exists($ID, $Categories)) {
Gdn::cache()->remove(self::CACHE_KEY);
return;
}
$Category = $Categories[$ID];
$Category = array_merge($Category, $Data);
$Categories[$ID] = $Category;
// Update memcache entry
self::$Categories = $Categories;
unset($Categories);
self::BuildCache($ID);
self::JoinUserData(self::$Categories, true);
}