static function getHubIdFromTitle($title) { global $wgHubsPages, $wgContLanguageCode; if (empty($wgHubsPages[$wgContLanguageCode])) { return false; } if (self::isHubsPage($title)) { if (is_array($wgHubsPages[$wgContLanguageCode][strtolower($title->getUserCaseDBKey())])) { return WikiFactoryTags::idFromName($wgHubsPages[$wgContLanguageCode][strtolower($title->getUserCaseDBKey())]['name']); } return WikiFactoryTags::idFromName($wgHubsPages[$wgContLanguageCode][strtolower($title->getUserCaseDBKey())]); } else { return false; } }
/** * doMultiRemoveTags * * @access private * @author uberfuzzy@wikia-inc.com * * @return text message (use Wikia::*box functions) */ private function doMultiRemoveTags() { /* working data is stored in object prior to call $this->mRemoveTag; has the tag to remove $this->mRemoveTags; has int array of wiki id to remove from */ /* in theory, these should never trigger, but BSTS */ if (empty($this->mRemoveTag)) { return Wikia::errorbox("no tag to remove?"); } if (empty($this->mRemoveTags)) { return Wikia::errorbox("no items to remove?"); } /* turn the tag string into the tag id */ $tagID = WikiFactoryTags::idFromName($this->mRemoveTag); if ($tagID === false) { return Wikia::errorbox("tag [{$this->mRemoveTag}] doesnt exist"); } /* to get list of all wikis with this tag, and later, use this to cache clear */ $tagsQuery = new WikiFactoryTagsQuery($this->mRemoveTag); $fails = array(); foreach ($this->mRemoveTags as $wkid) { $oTag = new WikiFactoryTags($wkid); $ret = $oTag->removeTagsById(array($tagID)); if ($ret === false) { $fails[] = $wkid; } } /* force dump of the tag_map in memcache */ $tagsQuery->clearCache(); /* since we /hopefully/ removed some tags from wikis, force the search results for this pageload to be empty. */ $this->mTagWikiIds = array(); #print "(forcing mTagWikiIds to null at ".gmdate('r').")"; if (empty($fails)) { return Wikia::successbox("ok!"); } else { return Wikia::errorbox("ok, but failed at " . count($fails) . " wikis" . " (" . implode(", ", $fails) . ")"); } }