/** * Updates the collections an item is in * * @param array $newCollections Array of new collection keys to set */ public function setCollections($collectionKeys=[]) { if (!$this->loaded['collections']) { $this->loadCollections(); } if ((!$this->collections && !$collectionKeys) || (!Zotero_Utilities::arrayDiffFast($this->collections, $collectionKeys) && !Zotero_Utilities::arrayDiffFast($collectionKeys, $this->collections))) { Z_Core::debug("Collections have not changed for item $this->id"); return; } $this->storePreviousData('collections'); $this->collections = array_unique($collectionKeys); $this->changed['collections'] = true; }