Пример #1
0
 /**
  * Add row to the redirect table if this is a redirect, remove otherwise.
  *
  * @param IDatabase $dbw
  * @param Title $redirectTitle Title object pointing to the redirect target,
  *   or NULL if this is not a redirect
  * @param null|bool $lastRevIsRedirect If given, will optimize adding and
  *   removing rows in redirect table.
  * @return bool True on success, false on failure
  * @private
  */
 public function updateRedirectOn($dbw, $redirectTitle, $lastRevIsRedirect = null)
 {
     // Always update redirects (target link might have changed)
     // Update/Insert if we don't know if the last revision was a redirect or not
     // Delete if changing from redirect to non-redirect
     $isRedirect = !is_null($redirectTitle);
     if (!$isRedirect && $lastRevIsRedirect === false) {
         return true;
     }
     if ($isRedirect) {
         $this->insertRedirectEntry($redirectTitle);
     } else {
         // This is not a redirect, remove row from redirect table
         $where = ['rd_from' => $this->getId()];
         $dbw->delete('redirect', $where, __METHOD__);
     }
     if ($this->getTitle()->getNamespace() == NS_FILE) {
         RepoGroup::singleton()->getLocalRepo()->invalidateImageRedirect($this->getTitle());
     }
     return $dbw->affectedRows() != 0;
 }
Пример #2
0
 /**
  * Print the results, callback for $db->sourceStream()
  * @param ResultWrapper $res The results object
  * @param IDatabase $db
  */
 public function sqlPrintResult($res, $db)
 {
     if (!$res) {
         // Do nothing
         return;
     } elseif (is_object($res) && $res->numRows()) {
         foreach ($res as $row) {
             $this->output(print_r($row, true));
         }
     } else {
         $affected = $db->affectedRows();
         $this->output("Query OK, {$affected} row(s) affected\n");
     }
 }