/** * Bulk reverts changes made to history saving objects. */ public function bulkRevert() { $this->readInteger('timeframe', true); if (!$this->parameters['timeframe']) { $this->parameters['timeframe'] = 86400 * 7; } EditHistoryManager::getInstance()->bulkRevert($this->objectIDs, $this->parameters['timeframe']); }
/** * @see \wcf\form\IForm::save() */ public function save() { parent::save(); EditHistoryManager::getInstance()->bulkRevert($this->userIDs, $this->timeframe * 86400); // reset clipboard ClipboardHandler::getInstance()->removeItems($this->objectTypeID); $this->saved(); // show success message WCF::getTPL()->assign('message', 'wcf.global.success'); WCF::getTPL()->display('success'); exit; }
/** * @see \wcf\data\AbstractDatabaseObjectAction::update() */ public function update() { // count attachments if (isset($this->parameters['attachmentHandler']) && $this->parameters['attachmentHandler'] !== null) { $this->parameters['data']['attachments'] = count($this->parameters['attachmentHandler']); } // update lastVersionTime for edit history if (MODULE_EDIT_HISTORY && isset($this->parameters['isEdit']) && isset($this->parameters['data']['text'])) { $this->parameters['data']['lastVersionTime'] = TIME_NOW; } parent::update(); // get ids $objectIDs = array(); foreach ($this->objects as $entry) { $objectIDs[] = $entry->entryID; } if (!empty($objectIDs)) { // delete old search index entries SearchIndexManager::getInstance()->delete('de.incendium.cms.news.entry', $objectIDs); } $publicationEntryIDs = array(); foreach ($this->objects as $entry) { // handle the news categories if (isset($this->parameters['categoryIDs'])) { $entry->updateCategoryIDs($this->parameters['categoryIDs']); } // update tags if (!empty($this->parameters['tags'])) { // set language id (cannot be zero) $languageID = !isset($this->parameters['data']['languageID']) || $this->parameters['data']['languageID'] === null ? LanguageFactory::getInstance()->getDefaultLanguageID() : $this->parameters['data']['languageID']; TagEngine::getInstance()->addObjectTags('de.incendium.cms.news.entry', $entry->entryID, $this->parameters['tags'], $languageID); } // create new search index entry SearchIndexManager::getInstance()->add('de.incendium.cms.news.entry', $entry->entryID, isset($this->parameters['data']['message']) ? $this->parameters['data']['message'] : $entry->message, isset($this->parameters['data']['subject']) ? $this->parameters['data']['subject'] : $entry->subject, $entry->time, $entry->userID, $entry->username, $entry->languageID); // handle publication if (!$entry->isPublished && !empty($this->parameters['data']['isPublished'])) { $publicationEntryIDs[] = $entry->entryID; } // edit if (isset($this->parameters['isEdit']) && isset($this->parameters['data']['message'])) { $historySavingEntry = new HistorySavingEntry($entry->getDecoratedObject()); EditHistoryManager::getInstance()->add('de.incendium.cms.news.entry', $entry->entryID, $entry->message, $historySavingEntry->getTime(), $historySavingEntry->getUserID(), $historySavingEntry->getUsername(), isset($this->parameters['editReason']) ? $this->parameters['editReason'] : '', WCF::getUser()->userID); } NewsEntryModificationLogHandler::getInstance()->edit($entry->getDecoratedObject(), isset($this->parameters['reason']) ? $this->parameters['reason'] : ''); // update embedded objects if (isset($this->parameters['data']['message'])) { if ($entry->hasEmbeddedObjects != MessageEmbeddedObjectManager::getInstance()->registerObjects('de.incendium.cms.news.entry', $entry->entryID, $this->parameters['data']['message'])) { $entry->update(array('hasEmbeddedObjects' => $entry->hasEmbeddedObjects ? 0 : 1)); } } // trigger publication if (!empty($publicationEntryIDs)) { $action = new EntryAction($publicationEntryIDs, 'triggerPublication'); $action->executeAction(); } } }