public function setBits($bits) { # Queue the file op # @todo FIXME: Move to LocalFile.php if ($this->isDeleted()) { if ($bits & File::DELETED_FILE) { # Still deleted } else { # Newly undeleted $key = $this->file->getStorageKey(); $srcRel = $this->file->repo->getDeletedHashPath($key) . $key; $this->list->storeBatch[] = array($this->file->repo->getVirtualUrl('deleted') . '/' . $srcRel, 'public', $this->file->getRel()); $this->list->cleanupBatch[] = $key; } } elseif ($bits & File::DELETED_FILE) { # Newly deleted $key = $this->file->getStorageKey(); $dstRel = $this->file->repo->getDeletedHashPath($key) . $key; $this->list->deleteBatch[] = array($this->file->getRel(), $dstRel); } # Do the database operations $dbw = wfGetDB(DB_MASTER); $dbw->update('oldimage', array('oi_deleted' => $bits), array('oi_name' => $this->row->oi_name, 'oi_timestamp' => $this->row->oi_timestamp, 'oi_deleted' => $this->getBits()), __METHOD__); return (bool) $dbw->affectedRows(); }