X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FStorage%2FDerivedPageDataUpdater.php;h=4903cf00950f19f0cc563815d3245ce70a8a0b45;hb=c081ae8e4de5075f5fec5b8f5f4c0734b7e9f05a;hp=2cf3ceeb2c4139688bd45815307b2023d2e949f3;hpb=7bdfadde3fe1b14ff633ff740f77d74585b8e00a;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Storage/DerivedPageDataUpdater.php b/includes/Storage/DerivedPageDataUpdater.php index 2cf3ceeb2c..4903cf0095 100644 --- a/includes/Storage/DerivedPageDataUpdater.php +++ b/includes/Storage/DerivedPageDataUpdater.php @@ -79,7 +79,7 @@ use WikiPage; * * DerivedPageDataUpdater instances are designed to be cached inside a WikiPage instance, * and re-used by callback code over the course of an update operation. It's a stepping stone - * one the way to a more complete refactoring of WikiPage. + * on the way to a more complete refactoring of WikiPage. * * When using a DerivedPageDataUpdater, the following life cycle must be observed: * grabCurrentRevision (optional), prepareContent (optional), prepareUpdate (required @@ -343,14 +343,6 @@ class DerivedPageDataUpdater implements IDBAccessObject, LoggerAwareInterface { } } - /** - * @return bool|string - */ - private function getWikiId() { - // TODO: get from RevisionStore - return false; - } - /** * Checks whether this DerivedPageDataUpdater can be re-used for running updates targeting * the given revision. @@ -580,7 +572,6 @@ class DerivedPageDataUpdater implements IDBAccessObject, LoggerAwareInterface { */ public function isContentDeleted() { if ( $this->revision ) { - // XXX: if that revision is the current revision, this should be skipped return $this->revision->isDeleted( RevisionRecord::DELETED_TEXT ); } else { // If the content has not been saved yet, it cannot have been deleted yet. @@ -668,7 +659,7 @@ class DerivedPageDataUpdater implements IDBAccessObject, LoggerAwareInterface { $hasLinks = (bool)count( $this->getCanonicalParserOutput()->getLinks() ); } - foreach ( $this->getModifiedSlotRoles() as $role ) { + foreach ( $this->getSlots()->getSlotRoles() as $role ) { $roleHandler = $this->slotRoleRegistry->getRoleHandler( $role ); if ( $roleHandler->supportsArticleCount() ) { $content = $this->getRawContent( $role ); @@ -1217,7 +1208,8 @@ class DerivedPageDataUpdater implements IDBAccessObject, LoggerAwareInterface { } // "created" is forced here - $this->options['created'] = ( $this->pageState['oldId'] === 0 ); + $this->options['created'] = ( $this->options['created'] || + ( $this->pageState['oldId'] === 0 ) ); $this->revision = $revision; @@ -1493,7 +1485,6 @@ class DerivedPageDataUpdater implements IDBAccessObject, LoggerAwareInterface { $id = $this->getPageId(); $title = $this->getTitle(); - $dbKey = $title->getPrefixedDBkey(); $shortTitle = $title->getDBkey(); if ( !$title->exists() ) { @@ -1531,7 +1522,7 @@ class DerivedPageDataUpdater implements IDBAccessObject, LoggerAwareInterface { // TODO: make search infrastructure aware of slots! $mainSlot = $this->revision->getSlot( SlotRecord::MAIN ); if ( !$mainSlot->isInherited() && !$this->isContentDeleted() ) { - DeferredUpdates::addUpdate( new SearchUpdate( $id, $dbKey, $mainSlot->getContent() ) ); + DeferredUpdates::addUpdate( new SearchUpdate( $id, $title, $mainSlot->getContent() ) ); } // If this is another user's talk page, update newtalk. @@ -1582,7 +1573,10 @@ class DerivedPageDataUpdater implements IDBAccessObject, LoggerAwareInterface { // TODO: In the wiring, register a listener for this on the new PageEventEmitter ResourceLoaderWikiModule::invalidateModuleCache( - $title, $oldLegacyRevision, $legacyRevision, $this->getWikiId() ?: wfWikiID() + $title, + $oldLegacyRevision, + $legacyRevision, + $this->loadbalancerFactory->getLocalDomainID() ); $this->doTransition( 'done' );