/** * make sure documents related to Collection[Role|]s in subtree are updated * (XML-Cache and server_date_published) * * @param Opus_Collection Starting point for recursive update to documents */ protected function updateDocuments($model) { if (is_null($model) || is_null($model->getId())) { // TODO explain why this is right return; } $collections = Opus_Db_TableGateway::getInstance('Opus_Db_Collections'); $collectionIdSelect = $collections->selectSubtreeById($model->getId(), 'id'); $documentFinder = new Opus_DocumentFinder(); $documentFinder->setCollectionId($collectionIdSelect); // clear affected documents from cache $xmlCache = new Opus_Model_Xml_Cache(); $xmlCache->removeAllEntriesWhereSubSelect($documentFinder->getSelectIds()); // update ServerDateModified for affected documents $date = new Opus_Date(); $date->setNow(); Opus_Document::setServerDateModifiedByIds($date, $documentFinder->ids()); }
protected function invalidateDocumentCacheFor(Opus_Model_AbstractDb $model) { $documentFinder = new Opus_DocumentFinder(); $documentFinder->setDependentModel($model); $select = $documentFinder->getSelectIds(); $ids = $documentFinder->Ids(); $xmlCache = new Opus_Model_Xml_Cache(); $xmlCache->removeAllEntriesWhereSubSelect($select); $date = new Opus_Date(); $date->setNow(); Opus_Document::setServerDateModifiedByIds($date, $ids); }