public function getWikisInVisualisationAsCSV() { wfProfileIn(__METHOD__); global $wgOut; if (!$this->checkAccess()) { wfProfileOut(__METHOD__); $this->response->setHeader('Cache-Control', 'no-cache'); throw new PermissionsException('managewikiahome'); } // get data $visualizationLang = $this->request->getVal('lang', $this->wg->contLang->getCode()); $list = $this->helper->getWikisForStaffTool($this->prepareFilterOptions($visualizationLang, [])); $collections = $this->getWikiaCollectionsModel()->getList($visualizationLang); $verticals = $this->helper->getWikiVerticals(); // output data in csv format $out = fopen('php://memory', 'w'); // header $outHeader = ['ID', 'Vertical', 'Title', 'Is blocked?', 'Is promoted?', 'Is official?']; foreach ($collections as $collection) { $outHeader[] = 'In collection: ' . $collection['name'] . '?'; } fputcsv($out, $outHeader); foreach ($list as $wiki) { $outLine = [$wiki->city_id, $verticals[$wiki->city_vertical], $wiki->city_title, CityVisualization::isBlockedWiki($wiki->city_flags) ? 1 : 0, CityVisualization::isPromotedWiki($wiki->city_flags) ? 1 : 0, CityVisualization::isOfficialWiki($wiki->city_flags) ? 1 : 0]; foreach ($collections as $collection) { $outLine[] = in_array($collection['id'], $wiki->collections) ? 1 : 0; } fputcsv($out, $outLine); } fseek($out, 0); $csv = stream_get_contents($out); fclose($out); // turn off usual rendering $wgOut->disable(); // set up headers $this->response->setFormat(WikiaResponse::FORMAT_RAW); $this->response->setHeader('Cache-Control', 'private'); $this->response->setHeader('Content-Description', 'File Transfer'); $this->response->setHeader('Content-Disposition', 'attachment; filename=ManageWikiaHomeWikisList-' . $visualizationLang . '.csv'); $this->response->setHeader('Content-Transfer-Encoding', 'binary'); $this->response->setContentType('application/octet-stream'); $this->response->setBody($csv); wfProfileOut(__METHOD__); }
<td> <a href="#" class="status-official" data-id="<?php echo $wiki->city_id; ?> " data-vertical="<?php echo $wiki->city_vertical; ?> " data-flags="<?php echo CityVisualization::isOfficialWiki($wiki->city_flags); ?> " data-flag-type="<?php echo WikisModel::FLAG_OFFICIAL; ?> "> <?php echo CityVisualization::isOfficialWiki($wiki->city_flags) ? wfMessage('manage-wikia-home-wiki-list-official-yes')->text() : wfMessage('manage-wikia-home-wiki-list-official-no')->text(); ?> </a> </td> <td> <?php $i = 1; ?> <?php foreach ($collections as $collection) { ?> <label><input type="checkbox" class="collection-checkbox" value="<?php echo $collection['id']; ?> " <?php if (in_array($collection['id'], $wiki->collections)) {
/** * 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) { wfProfileIn(__METHOD__); $wikiInfo = array('name' => '', 'headline' => '', 'description' => '', 'url' => '', 'official' => 0, 'promoted' => 0, 'blocked' => 0, 'images' => array()); if (!empty($wikiId)) { $wiki = WikiFactory::getWikiById($wikiId); 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['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']); } } } wfProfileOut(__METHOD__); return $wikiInfo; }