protected function performAction() { $jobs = array(); $target = $this->title; $base = $this->title->getPrefixedText(); $translationPages = $this->getTranslationPages(); foreach ($translationPages as $old) { $jobs[$old->getPrefixedText()] = DeleteJob::newJob($old, $base, !$this->singleLanguage(), $this->user); } $sectionPages = $this->getSectionPages(); foreach ($sectionPages as $old) { $jobs[$old->getPrefixedText()] = DeleteJob::newJob($old, $base, !$this->singleLanguage(), $this->user); } if (!$this->doSubpages) { $subpages = $this->getSubpages(); foreach ($subpages as $old) { if (TranslatablePage::isTranslationPage($old)) { continue; } $jobs[$old->getPrefixedText()] = DeleteJob::newJob($old, $base, !$this->singleLanguage(), $this->user); } } Job::batchInsert($jobs); $cache = wfGetCache(CACHE_DB); $cache->set(wfMemcKey('pt-base', $target->getPrefixedText()), array_keys($jobs), 60 * 60 * 6); if (!$this->singleLanguage()) { $this->page->removeTags(); } MessageGroups::clearCache(); MessageIndexRebuildJob::newJob()->insert(); global $wgOut; $wgOut->addWikiMsg('pt-deletepage-started'); }