/** * @see \wcf\data\DatabaseObjectList::readObjects() */ public function readObjects() { parent::readObjects(); if ($this->loadDeleteNote) { $objectIDs = array(); foreach ($this->objects as $object) { if ($object->isDeleted) { $objectIDs[] = $object->entryID; } } // load deletion data if (!empty($objectIDs)) { $this->logList = new EntryListModificationLogList(); $this->logList->setEntryData($objectIDs, 'trash'); $this->logList->readObjects(); foreach ($this->logList as $logEntry) { foreach ($this->objects as $object) { if ($object->entryID == $logEntry->objectID) { $object->setLogEntry($logEntry); } } } } } }
/** * Trashes given entries. * * @return array<array> */ public function trash() { $entryIDs = array(); foreach ($this->objects as $entry) { $entry->update(array('deleteTime' => TIME_NOW, 'isDeleted' => 1)); $this->addEntryData($entry->getDecoratedObject(), 'isDeleted', 1); EntryModificationLogHandler::getInstance()->trash($entry->getDecoratedObject(), $this->parameters['data']['reason']); $entryIDs[] = $entry->entryID; } if (empty($this->parameters['ignoreFiles'])) { $this->trashFiles($entryIDs); } EntryEditor::rebuildEntryData($entryIDs); // get delete notes $logList = new EntryListModificationLogList($entryIDs, 'trash'); $logList->getConditionBuilder()->add("modification_log.time = ?", array(TIME_NOW)); $logList->readObjects(); $logEntries = array(); foreach ($logList as $logEntry) { $logEntries[$logEntry->objectID] = $logEntry->__toString(); } foreach ($this->getObjects() as $entry) { $this->addEntryData($entry->getDecoratedObject(), 'deleteNote', $logEntries[$entry->entryID]); } $this->unmarkItems(); UserStorageHandler::getInstance()->resetAll('filebaseUnreadEntries'); UserStorageHandler::getInstance()->resetAll('filebaseUnreadWatchedEntries'); return $this->getEntryData(); }