Exemplo n.º 1
0
 /**
  * Add a ResultWrapper containing IDs and titles to a LinkCache object.
  * As normal, titles will go into the static Title cache field.
  * This function *also* stores extra fields of the title used for link
  * parsing to avoid extra DB queries.
  *
  * @param LinkCache $cache
  * @param ResultWrapper $res
  * @return array Array of remaining titles
  */
 public function addResultToCache($cache, $res)
 {
     if (!$res) {
         return array();
     }
     // For each returned entry, add it to the list of good links, and remove it from $remaining
     $ids = array();
     $remaining = $this->data;
     foreach ($res as $row) {
         $title = Title::makeTitle($row->page_namespace, $row->page_title);
         $cache->addGoodLinkObjFromRow($title, $row);
         $ids[$title->getPrefixedDBkey()] = $row->page_id;
         unset($remaining[$row->page_namespace][$row->page_title]);
     }
     // The remaining links in $data are bad links, register them as such
     foreach ($remaining as $ns => $dbkeys) {
         foreach ($dbkeys as $dbkey => $unused) {
             $title = Title::makeTitle($ns, $dbkey);
             $cache->addBadLinkObj($title);
             $ids[$title->getPrefixedDBkey()] = 0;
         }
     }
     return $ids;
 }
Exemplo n.º 2
0
 /**
  * Add a ResultWrapper containing IDs and titles to a LinkCache object.
  * As normal, titles will go into the static Title cache field.
  * This function *also* stores extra fields of the title used for link
  * parsing to avoid extra DB queries.
  *
  * @param LinkCache $cache
  * @param ResultWrapper $res
  * @return array Array of remaining titles
  */
 public function addResultToCache($cache, $res)
 {
     if (!$res) {
         return [];
     }
     $titleFormatter = MediaWikiServices::getInstance()->getTitleFormatter();
     // For each returned entry, add it to the list of good links, and remove it from $remaining
     $ids = [];
     $remaining = $this->data;
     foreach ($res as $row) {
         $title = new TitleValue((int) $row->page_namespace, $row->page_title);
         $cache->addGoodLinkObjFromRow($title, $row);
         $pdbk = $titleFormatter->getPrefixedDBkey($title);
         $ids[$pdbk] = $row->page_id;
         unset($remaining[$row->page_namespace][$row->page_title]);
     }
     // The remaining links in $data are bad links, register them as such
     foreach ($remaining as $ns => $dbkeys) {
         foreach ($dbkeys as $dbkey => $unused) {
             $title = new TitleValue((int) $ns, $dbkey);
             $cache->addBadLinkObj($title);
             $pdbk = $titleFormatter->getPrefixedDBkey($title);
             $ids[$pdbk] = 0;
         }
     }
     return $ids;
 }