public function getWikiData($wikiId, $langCode) { $visualization = new CityVisualization(); $wikiData = $visualization->getWikiDataForVisualization($wikiId, $langCode); return $this->sanitizeWikiData($wikiData); }
protected function checkWikiStatus($wikiId, $langCode) { $wikiStatus = ['hasImagesRejected' => false, 'hasImagesInReview' => false, 'isApproved' => false, 'isAutoApproved' => false]; WikiaLogger::instance()->debug("SpecialPromote", ['method' => __METHOD__, 'wikiId' => $wikiId, 'lang' => $langCode]); $visualization = new CityVisualization(); $wikiDataVisualization = $visualization->getWikiDataForVisualization($wikiId, $langCode); $mainImage = $this->getMainImage(); $additionalImages = $this->getAdditionalImages(); if (!empty($wikiDataVisualization['main_image'])) { $wikiStatus['isApproved'] = true; } $imageStatuses = array(); if ($mainImage) { $imageStatuses[] = $mainImage['review_status']; } if ($additionalImages) { foreach ($additionalImages as $image) { $imageStatuses[] = $image['review_status']; } } foreach ($imageStatuses as $status) { switch ($status) { case ImageReviewStatuses::STATE_REJECTED: $wikiStatus['hasImagesRejected'] = true; break; case ImageReviewStatuses::STATE_UNREVIEWED: case ImageReviewStatuses::STATE_IN_REVIEW: case ImageReviewStatuses::STATE_QUESTIONABLE: case ImageReviewStatuses::STATE_QUESTIONABLE_IN_REVIEW: $wikiStatus['hasImagesInReview'] = true; break; case ImageReviewStatuses::STATE_AUTO_APPROVED: $wikiStatus['isAutoApproved'] = true; break; } } WikiaLogger::instance()->debug("SpecialPromote", ['method' => __METHOD__, "imageStatuses" => $imageStatuses]); return $wikiStatus; }
/** * Add wiki (wiki id) to selected collection * * @param $cityId * @param $collectionId */ public function addWikiToCollection($collectionId, $cityId) { $collection = $this->getById($collectionId); $cityVisualization = new CityVisualization(); $wikiData = $cityVisualization->getWikiDataForVisualization($cityId, $collection['lang_code']); if (empty($wikiData['main_image'])) { $status = ['value' => false, 'message' => wfMessage('manage-wikia-home-collections-add-failure-image', $wikiData['name'])->text()]; } else { if (!$this->checkWikiCollectionExists($collectionId, $cityId)) { $db = wfGetDB(DB_MASTER, array(), $this->wg->ExternalSharedDB); $insertData = ['collection_id' => $collectionId, 'city_id' => $cityId]; $db->insert(self::COLLECTIONS_CV_TABLE, $insertData); $db->commit(); $this->clearCache($collection['lang_code']); $this->clearWikiCache($cityId); $status = ['value' => true, 'message' => wfMessage('manage-wikia-home-collections-add-success')->plain()]; } else { $status = ['value' => false, 'message' => wfMessage('manage-wikia-home-collections-add-failure-already-exists')->plain()]; } } return $status; }