public function getTagListRows($rawTag, $offset, $rows = NUM_ROWS, $filter = null) { global $wgUser; $db = WAPDB::getInstance($this->dbType); $orderBy = 'ct_rank'; $filter = intVal($filter); // Don't pass in a filter, will filter below $vars['articles'] = $db->getArticlesByTagName($rawTag, 0, self::MAX_NUM_ROWS, WAPArticleTagDB::ARTICLE_UNASSIGNED, '', $orderBy); if (!empty($filter)) { foreach ($vars['articles'] as $i => $a) { // bitwise filter by category if (!($a->getCatInfo() & $filter)) { unset($vars['articles'][$i]); } } } $vars['u'] = BabelfishUser::newFromUserObject($wgUser, $this->dbType); $vars['numrows'] = $rows; $vars['tag'] = $rawTag; $config = WAPDB::getInstance($this->dbType)->getWAPConfig(); $linkerClass = $config->getLinkerClassName(); $vars['linker'] = new $linkerClass($this->dbType); $tmpl = new WAPTemplate($this->dbType); $html = $tmpl->getHtml('tag_list_pager_rows.tmpl.php', $vars); return $html; }
public function getTagListRows($rawTag, $offset, $rows = NUM_ROWS, $filter = null) { $db = WAPDB::getInstance($this->dbType); $vars['articles'] = $db->getArticlesByTagName($rawTag, $offset, $rows, WAPArticleTagDB::ARTICLE_UNASSIGNED, $filter); $vars['numrows'] = $rows; $vars['tag'] = $rawTag; $config = WAPDB::getInstance($this->dbType)->getWAPConfig(); $linkerClass = $config->getLinkerClassName(); $vars['linker'] = new $linkerClass($this->dbType); $tmpl = new WAPTemplate($this->dbType); return $tmpl->getHtml('tag_list_pager_rows.tmpl.php', $vars); }
function outputCompletedReportHtml() { global $wgOut; $wgOut->setPageTitle('Completed Report Generator'); global $wgOut; $vars = $this->getDefaultVars($this->dbType); if ($this->cu->isAdmin()) { $vars['langs'][] = 'all'; } $vars['buttonId'] = 'rpt_completed_articles_admin'; $tmpl = new WAPTemplate($this->dbType); $wgOut->addHtml($tmpl->getHtml('completed_report.tmpl.php', $vars)); }
function articleDetails() { global $wgRequest, $wgOut; $url = Misc::getUrlDecodedData($wgRequest->getVal('url')); $msg = ""; try { $langCode = $this->cu->getLanguageTag(); // throws exception if no language tag set for user $processedUrls = $this->wapDB->processUrlListByLang($url, $langCode); $articleState = 'invalid'; $articleClass = $this->config->getArticleClassName(); $ca = $articleClass::newFromUrl($url, $langCode, $this->dbType); foreach ($processedUrls as $state => $urls) { if (!empty($urls)) { $articleState = $state; break; } } $msg = "Not a valid wikiHow Article."; $supportEmail = $this->config->getSupportEmailAddress(); switch ($articleState) { case 'completed': $msg = $this->cu->getId() == $ca->getUserId() ? " You have already completed this article" : "This article is already completed."; break; case 'assigned': $msg = $this->cu->getId() == $ca->getUserId() ? "You have already reserved this article." : "This article is reserved by another user."; break; case 'excluded': $msg = "This article is on the exclude list. It is permanently unavailable."; break; case 'unassigned': $t = Title::newFromId($urls[0]['aid']); if (!$t || !$t->exists()) { // Make sure it's still a valid wikiHow title. Edge case where articles are deleted // before nightly maintenance script cleans those up // If it isn't, stick with the default message } else { if (!$this->cu->canView($ca)) { $msg = "This article is on a special list, please email {$supportEmail} for permission to reserve."; } else { // Show the article $vars = $this->getDefaultVars(); $vars['a'] = $ca; $vars['cu'] = $this->cu; $tmpl = new WAPTemplate($this->dbType); $msg = $tmpl->getHtml('article_details.tmpl.php', $vars); } } break; case 'new': $msg = $this->config->getNewArticleMessage($supportEmail); break; case 'invalid': // Stick with the default message break; } } catch (Exception $e) { $msg = "No language tag set. Please contact " . $this->config->getSupportEmailAddress(); } $msg = "<h4>{$msg}</h4>"; $wgOut->setArticleBodyOnly(true); $wgOut->addHtml($msg); }
function articleDetails() { global $wgRequest, $wgOut; $wgOut->setArticleBodyOnly(true); $vars = $this->getDefaultVars($this->dbType); $articleClass = $this->config->getArticleClassName(); $url = Misc::getUrlDecodedData($wgRequest->getVal('url')); $langs = $this->config->getSupportedLanguages(); foreach ($langs as $lang) { $ca = $articleClass::newFromUrl($url, $lang, $this->dbType); $vars['lang'] = $lang; $vars['article'] = $ca; $vars['user'] = $ca->getUser(); $vars['tags'] = $ca->getTags(); $tmpl = new WAPTemplate($this->dbType); $wgOut->addHtml($tmpl->getHtml('article_details_admin.tmpl.php', $vars)); $wgOut->addHtml($html); } }