/** * Remove star from a given object * * @param ProjectObject $object * @param User $user * @return boolean */ function unstarObject($object, $user) { if (!$object->canView($user)) { return false; } // if if (StarredObjects::isStarred($object, $user)) { $cache_id = 'object_starred_by_' . $user->getId(); $starred_objects = cache_get($cache_id); if (!is_array($starred_objects)) { $starred_objects = StarredObjects::findObjectIdsByUser($user); } // if // Not starred? if (!in_array($object->getId(), $starred_objects)) { return true; } // if $execute = db_execute('DELETE FROM ' . TABLE_PREFIX . 'starred_objects WHERE object_id = ? AND user_id = ?', $object->getId(), $user->getId()); if ($execute && !is_error($execute)) { unset($starred_objects[array_search($object->getId(), $starred_objects)]); cache_set($cache_id, $starred_objects); } // if return $execute; } // if return true; }