/** * get wiki info ( wikiname, description, url, status, images ) * @param integer $wikiId * @param string $langCode * @param WikiDataGetter $dataGetter * @return array wikiInfo */ public function getWikiInfo($wikiId, $langCode, WikiDataGetter $dataGetter) { $this->wf->ProfileIn(__METHOD__); $wikiInfo = array('name' => '', 'headline' => '', 'description' => '', 'url' => '', 'new' => 0, 'hot' => 0, 'official' => 0, 'promoted' => 0, 'blocked' => 0, 'images' => array()); if (!empty($wikiId)) { $wiki = F::build('WikiFactory', array($wikiId), 'getWikiById'); if (!empty($wiki)) { $wikiInfo['url'] = $wiki->city_url . '?redirect=no'; } $wikiData = $dataGetter->getWikiData($wikiId, $langCode); if (!empty($wikiData)) { $wikiInfo['name'] = $wikiData['name']; $wikiInfo['headline'] = $wikiData['headline']; $wikiInfo['description'] = $wikiData['description']; // wiki status $wikiInfo['new'] = intval(CityVisualization::isNewWiki($wikiData['flags'])); $wikiInfo['hot'] = intval(CityVisualization::isHotWiki($wikiData['flags'])); $wikiInfo['official'] = intval(CityVisualization::isOfficialWiki($wikiData['flags'])); $wikiInfo['promoted'] = intval(CityVisualization::isPromotedWiki($wikiData['flags'])); $wikiInfo['blocked'] = intval(CityVisualization::isBlockedWiki($wikiData['flags'])); $wikiInfo['images'] = array(); if (!empty($wikiData['main_image'])) { $wikiInfo['images'][] = $wikiData['main_image']; } $wikiData['images'] = !empty($wikiData['images']) ? (array) $wikiData['images'] : array(); // wiki images if (!empty($wikiData['images'])) { $wikiInfo['images'] = array_merge($wikiInfo['images'], $wikiData['images']); } } } $this->wf->ProfileOut(__METHOD__); return $wikiInfo; }