function execute() { global $wgOut, $wgRequest; require_once 'dedupQuery.php'; $action = $wgRequest->getVal('act'); if ($action == NULL) { EasyTemplate::set_path(dirname(__FILE__)); $wgOut->addHTML(EasyTemplate::html('CommunityExpert.tmpl.php')); } elseif ($action == "get") { $url = $wgRequest->getVal('url'); $query = $this->getQueryFromUrl($url); if ($query) { dedupQuery::addQuery($query); dedupQuery::matchQueries(array($query)); $dbr = wfGetDB(DB_SLAVE); $sql = "select user_name,tq.tq_title as title, sum(ct) as score from firstedit join dedup.title_query tq on tq.tq_page_id=fe_page join dedup.query_match on tq.tq_query=query2 join wiki_shared.user on fe_user=user_id where query1=" . $dbr->addQuotes($query) . " group by fe_user order by score desc"; $dbr = wfGetDB(DB_SLAVE); $res = $dbr->query($sql, __METHOD__); header("Content-Type: text/tsv"); header('Content-Disposition: attachment; filename="Dedup.xls"'); print "User page\tRelated title\n"; foreach ($res as $row) { print "http://www.wikihow.com/User:"******"\thttp://www.wikihow.com/" . str_replace(" ", "-", $row->title) . "\n"; } exit; } else { print "NO URL"; exit; } } }
function execute($par) { global $wgUser, $wgOut, $wgRequest, $wgServer, $isDevServer; $userGroups = $wgUser->getGroups(); if ($wgUser->isBlocked() || !in_array('staff', $userGroups)) { $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->showErrorPage('nosuchspecialpage', 'nospecialpagetext'); return; } if ($wgRequest->wasPosted()) { $this->action = $wgRequest->getVal('a'); $this->slowQuery = $wgRequest->getVal('alts') == 'true'; $this->introOnly = $wgRequest->getVal('intonly') == 'true'; switch ($this->action) { case 'cats': $this->outputCategoryReport(); break; case 'articles': $this->outputArticleReport(); break; case 'ids': $this->outputArticleIdReport(); break; } return; } $this->action = empty($par) ? 'cats' : strtolower($par); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('download.jQuery.js'), 'extensions/wikihow/common', false)); EasyTemplate::set_path(dirname(__FILE__) . '/'); $vars = array(); $this->setVars($vars); $html = EasyTemplate::html('ArticleData', $vars); $wgOut->setPageTitle('Article Stats'); $wgOut->addHTML($html); }
public function execute() { global $wgRequest, $wgOut, $wgUser; $userGroups = $wgUser->getGroups(); if ($wgUser->isBlocked() || !in_array('staff', $userGroups)) { $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->errorpage('nosuchspecialpage', 'nospecialpagetext'); return; } if ($wgRequest->wasPosted()) { $query = $wgRequest->getVal('query'); ini_set('memory_limit', '1024M'); //Take up to 4 minutes to download big queries set_time_limit(240); $this->getQuery(); } else { EasyTemplate::set_path(dirname(__FILE__) . '/'); $vars = array('fields' => $this->getFields()); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('download.jQuery.js'), 'extensions/wikihow/common', false)); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('jquery.sqlbuilder-0.06.js'), 'extensions/wikihow/titus', false)); $html = EasyTemplate::html('flaviusquerytool.tmpl.php', $vars); $wgOut->addHTML($html); } return $html; }
private function showAdminForm() { global $wgOut; EasyTemplate::set_path(dirname(__FILE__)); $vars['ts'] = wfTimestampNow(); $wgOut->addHtml(EasyTemplate::html('imagefeedback_admin')); }
/** * Called when the user goes to an edit page * Override the functionality of the edit to require a URL to translate */ static function onCustomEdit() { global $wgRequest, $wgOut; $draft = $wgRequest->getVal('draft', null); $target = $wgRequest->getVal('title', null); $action = $wgRequest->getVal('action', null); $section = $wgRequest->getVal('section', $wgRequest->getVal('wpSection', null)); $save = $wgRequest->getVal('wpSave', null); $title = Title::newFromURL($target); // We have the dialog to enter the URL when we are adding a new article, and have no existing draft. if (self::isTranslatorUser()) { if ($draft == null && !$title->exists() && $action == 'edit') { EasyTemplate::set_path(dirname(__FILE__) . '/'); // Templates to remove from tranlsation $remove_templates = array("{{FA}}", "\\[\\[Category:[^\\]]+\\]\\]"); // Words or things to automatically translate $translations = array(array('from' => self::getSectionRegex('Steps'), 'to' => self::getSectionWikitext(wfMsg('Steps'))), array('from' => self::getSectionRegex('Tips'), 'to' => self::getSectionWikitext(wfMsg('Tips'))), array('from' => self::getSectionRegex('Warnings'), 'to' => self::getSectionWikitext(wfMsg('Warnings'))), array('from' => self::getSectionRegex('Ingredients'), 'to' => self::getSectionWikitext(wfMsg('Ingredients'))), array('from' => self::getSectionRegex("Things You'll need"), 'to' => self::getSectionWikitext(wfMsg('Thingsyoullneed'))), array('from' => self::getSectionRegex("Related wikiHows"), 'to' => self::getSectionWikitext(wfMsg('Related'))), array('from' => self::getSectionRegex("Sources and Citations"), 'to' => self::getSectionWikitext(wfMsg('Sources')))); $vars = array('title' => $target, 'checkForLL' => true, 'translateURL' => true, 'translations' => json_encode($translations), 'remove_templates' => array_map(preg_quote, $remove_templates)); $html = EasyTemplate::html('TranslateEditor.tmpl.php', $vars); $wgOut->addHTML($html); QuickEdit::showEditForm($title); return false; } elseif ($section == null && $save == null) { EasyTemplate::set_path(dirname(__FILE__) . '/'); $vars = array('title' => $target, 'checkForLL' => true, 'translateURL' => false); $html = EasyTemplate::html('TranslateEditor.tmpl.php', $vars); $wgOut->addHTML($html); QuickEdit::showEditForm($title); return false; } } return true; }
static function beforeHeaderDisplay($isMobile) { global $whEditRedirectSave, $wgOut, $wgRequest, $wgUser, $wgTitle; /* * We only want to display the edit redirect page on desktop after the first edit on a main namespace page. We check a bunch of criteria to ensure this is he case. * criteria to ensure this is indeed the first edit */ if (!$isMobile && isset($_SESSION[self::OUR_SESSION_NAME]) && $_SESSION[self::OUR_SESSION_NAME] && Hydra::isEnabled(self::EXPERIMENT_NAME) || $wgRequest->getVal("abtest_test2") == "1") { // Turn off cache because this is a onetime thing $wgOut->enableClientCache(false); unset($_SESSION[self::OUR_SESSION_NAME]); $cats = $wgTitle->getParentCategories(); if (sizeof($cats) == 0) { return true; } $catkeys = array_keys($cats); $cat = false; foreach ($catkeys as $k) { if (preg_match('@Category:(.+)@i', $k, $matches) && $matches[1] != 'Featured-Articles') { $cat = $matches[1]; break; } } // We only display the edit redirect dialog for main namespace edits if ($wgTitle->getNamespace() == NS_MAIN && $wgRequest->getText('action', 'view') == 'view' && $cat) { EasyTemplate::set_path(dirname(__FILE__)); $catText = str_replace('-', ' ', $cat); $vars = array('cat' => $cat, 'catText' => $catText); $tmpl = EasyTemplate::html("CatRedirect.tmpl.php", $vars); $wgOut->addScript($tmpl); } } return true; }
function execute($par) { global $wgUser, $wgOut, $wgRequest; $userGroups = $wgUser->getGroups(); if ($wgUser->isBlocked() || !in_array('staff', $userGroups)) { $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->showErrorPage('nosuchspecialpage', 'nospecialpagetext'); return; } if ($wgRequest->wasPosted()) { $wgOut->disable(); $result = array(); $result['debug'][] = "posted to apiappadmin"; if ($wgRequest->getVal("action") == "default") { $this->testQuery(&$result); } else { if ($wgRequest->getVal("action") == "getpage") { //nothing yet } } echo json_encode($result); return; } $wgOut->setPageTitle('APIAppAdmin'); EasyTemplate::set_path(dirname(__FILE__) . '/'); $vars['css'] = HtmlSnips::makeUrlTags('css', array('apiappadmin.css'), 'extensions/wikihow/apiappsupport', true); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('apiappadmin.js'), 'extensions/wikihow/apiappsupport', true)); $html = EasyTemplate::html('APIAppAdmin', $vars); $wgOut->addHTML($html); }
public function execute() { global $wgOut; EasyTemplate::set_path(dirname(__FILE__)); $wgOut->setPageTitle("Welcome to wikiHow!"); $wgOut->addHTML(EasyTemplate::html('NewUserPage.tmpl.php')); return true; }
/** * Show the HTML template for adding images to URLs */ private function showTemplate() { global $wgOut, $wgActiveLangs; EasyTemplate::set_path(dirname(__FILE__)); $tmpl = EasyTemplate::html("Alfredo.tmpl.php", array('langs' => $this->langs)); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('download.jQuery.js'), 'extensions/wikihow/common', false)); $wgOut->addHTML($tmpl); }
public function execute() { require_once 'YBSuggestions.php'; require_once 'KeywordIdeasCSV.php'; global $wgOut, $wgRequest, $wgUser; if ($wgUser->isBlocked()) { throw new PermissionsError('Leonard'); } $userGroups = $wgUser->getGroups(); if (!in_array('staff', $userGroups)) { $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->showErrorPage('nosuchspecialpage', 'nospecialpagetext'); return; } $csvFieldName = 'csvfile'; $action = $wgRequest->getVal('act'); $avg_gad_keyword_search_thresh = $wgRequest->getVal('thresh'); if (empty($avg_gad_keyword_search_thresh)) { $avg_gad_keyword_search_thresh = self::AVG_GAD_KEYWORD_MONTHLY_SEARCH_THRESH; } else { $avg_gad_keyword_search_thresh = (int) $avg_gad_keyword_search_thresh; } $groupTitles = $wgRequest->getVal('groupTitles'); $groupTitles = empty($groupTitles) ? false : true; $this->queriesR = $wgRequest->getVal('seed'); $file = $wgRequest->getVal($csvFieldName); if ($action == NULL) { EasyTemplate::set_path(dirname(__FILE__)); $wgOut->addHTML(EasyTemplate::html('Leonard.tmpl.php')); } elseif ($action == 'getTitles' && $_FILES && !empty($_FILES["csvfile"]["name"])) { list($err, $filename) = $this->uploadFile($csvFieldName, $this->allowedFileExts, $this->allowedCsvFileSize, $this->allowedFileTypes, true); if ($err) { $wgOut->addHTML($err); } else { list($err, $seed, $rows) = Yboss::fetchQueries($filename, $avg_gad_keyword_search_thresh, $groupTitles); unlink($filename); if ($err) { $wgOut->addHTML($err); } else { $xlsFileName = ""; if ($seed) { $xlsFileName = $seed[KeywordIdeasCSV::KEY_KEYWORD]; if (!empty($xlsFileName)) { $xlsFileName = str_replace(' ', '-', $xlsFileName); } } $this->printCSVRows($rows, $xlsFileName); } } } elseif ($action == 'getTitles' && $this->queriesR) { $internalDedup = $wgRequest->getVal('internalDedup'); if ($internalDedup) { $this->getTopMatchBatch(); } else { $this->getBatch(); } } }
private function generateHtml() { global $wgOut; $me = Title::makeTitle(NS_SPECIAL, 'ImageUploadHandler'); $vars = array(); $vars['submitUrl'] = $me->getFullUrl() . '?viapage=' . $this->t->getPartialURL(); $vars['loadingWheel'] = wfGetPad('/extensions/wikihow/rotate.gif'); return EasyTemplate::html('mobile-image-upload.tmpl.php', $vars); }
function printReport() { global $wgOut, $wgRequest; $vars['results'] = $this->getEdits(); $vars['days'] = $wgRequest->getVal("days", 30); $vars['css'] = HtmlSnips::makeUrlTags('css', array('adminmethodeditor.css'), 'extensions/wikihow/altmethodadder', true); $html = EasyTemplate::html('AdminMethodEditor', $vars); $wgOut->addHTML($html); }
function execute($par) { global $wgOut, $wgRequest, $wgUser, $wgParser; wfLoadExtensionMessages("TipsPatrol"); if ($wgUser->isBlocked()) { $wgOut->blockedPage(); return; } if ($wgUser->isAnon() || self::isBlockedFromTipsPatrol($wgUser)) { $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->errorpage('nosuchspecialpage', 'nospecialpagetext'); return; } $this->skipTool = new ToolSkip("tiptool", "tipsandwarnings", "tw_checkout", "tw_checkout_user", "tw_id"); if ($wgRequest->wasPosted()) { $wgOut->disable(); $result = array(); $tipId = $wgRequest->getVal('tipId'); if ($wgRequest->getVal('coachTip')) { $this->coachResult($tipId, &$result); } elseif ($tipId != null && $wgRequest->getVal('skipTip')) { $this->logTip($tipId, self::TIP_ACTION_SKIP); $this->skipTool->skipItem($tipId); $this->skipTool->unUseItem($tipId); } elseif ($wgRequest->getVal('deleteTip')) { $articleId = $wgRequest->getVal('articleId'); $tip = $wgRequest->getVal('tip'); $this->deleteTip($tipId, $articleId, $tip); } elseif ($wgRequest->getVal('keepTip')) { //used to send to keepTip, but now we have an extra step: QG $articleId = $wgRequest->getVal('articleId'); $tip = $wgRequest->getVal('tip'); $this->logTip($tipId, self::TIP_ACTION_QG, '', $tip); $this->addToQG($tipId, $articleId, $tip, $result); } $this->getNextTip(&$result); echo json_encode($result); return; } $wgOut->setHTMLTitle(wfMsg('tipspatrol')); $wgOut->setPageTitle(wfMsg('tipspatrol')); $wgOut->addHTML(HtmlSnips::makeUrlTags('css', array('tipspatrol.css'), 'extensions/wikihow/tipsandwarnings', false)); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('tipspatrol.js'), 'extensions/wikihow/tipsandwarnings', false)); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('mousetrap.min.js,jquery.cookie.js'), 'extensions/wikihow/common', false)); EasyTemplate::set_path(dirname(__FILE__)); $vars = array(); $vars['tip_skip_title'] = wfMsg('tip_skip_title'); $vars['tip_keep_title'] = wfMsg('tip_keep_title'); $vars['tip_delete_title'] = wfMsg('tip_delete_title'); $wgOut->addHTML(EasyTemplate::html('TipsPatrol.tmpl.php', $vars)); $bubbleText = "Only publish this tip if you can make it helpful, clear, and grammatically correct. Most tips should get deleted."; InterfaceElements::addBubbleTipToElement('tip_tip', 'tptrl', $bubbleText); $this->displayLeaderboards(); }
public static function parserFunction($parser, $arrowText, $grayText, $scrollText) { global $wgTitle, $wgContLang; $scrollText = self::prepareText($scrollText); $grayText = self::prepareText($grayText); $arrowText = self::prepareText($arrowText); $vars = array('arrowText' => $arrowText, 'grayText' => $grayText, 'scrollText' => $scrollText, 'id' => 'scrl-' . hash("md5", $scrollText . mt_rand(1, 1000))); EasyTemplate::set_path(dirname(__FILE__) . '/'); $html = EasyTemplate::html('textscroller', $vars); $html = preg_replace("@\n@", "", $html); return $parser->insertStripItem($html); }
public function getHtml() { global $wgTitle; $html = ""; if (self::isValidArticle()) { $this->setTemplatePath(); $vars['ar_css'] = ""; $vars['ar_js'] .= ""; $html = EasyTemplate::html('rating_desktop.tmpl.php', $vars); } return $html; }
public function execute() { global $wgRequest, $wgOut; $queries = $wgRequest->getVal('queries'); $checkUrls = $wgRequest->getVal('checkUrls'); if ($queries == NULL) { EasyTemplate::set_path(dirname(__FILE__)); $wgOut->addHTML(EasyTemplate::html('QueryCat.tmpl.php')); } elseif ($checkUrls) { header("Content-Type: text/tsv"); header('Content-Disposition: attachment; filename="Dedup.xls"'); $urls = preg_split("@[\r\n]+@", $queries); foreach ($urls as $url) { if (preg_match("@http://www\\.wikihow\\.com/(.+)@", $url, $matches)) { $t = Title::newFromText($matches[1]); if (!$t) { $t = Title::newFromText(urldecode($matches[1])); } if ($t) { $cats = $t->getParentCategories(); $cats = array_keys($cats); $sls = array(); foreach ($cats as $cat) { $tree = $this->getCategoryTree($cat); if (sizeof($tree) >= 2 && $tree[0] != "Category:WikiHow") { $sls[str_replace('Category:', '', $tree[1])] = 1; } } print $url; foreach ($sls as $sl => $v) { print "\t" . $sl; } print "\n"; } } } exit; } else { header("Content-Type: text/tsv"); header('Content-Disposition: attachment; filename="Dedup.xls"'); print "Query\tTop Level Match\t2nd level match\t3rd level matches\n"; $queries = preg_split("@[\r\n]+@", $queries); foreach ($queries as $query) { print $query . "\t"; self::printQueryLevelCat($query, 0, 1, false); self::printQueryLevelCat($query, 1, 1, false); self::printQueryLevelCat($query, 2, false, true); print "\n"; } exit; } }
function printResponse($testResult, $response) { global $wgOut, $wgUser; wfLoadExtensionMessages('RCTestGrader'); $testResult['heading'] = wfMsg('rct_heading', $wgUser->getName()); $testResult['intro'] = wfMsg('rct_intro'); $testResult['img_class'] = $this->getImgClass($testResult, $response); $testResult['bg_class'] = $this->getBackgroundClass($testResult, $response); $testResult['response_heading'] = $this->getResponseHeading($testResult['correct'], $response); $testResult['response_txt'] = $this->getResponseText($testResult['ideal_responses'], $response, $testResult['correct']); $testResult['exp_heading'] = $testResult['correct'] ? wfMsg('rct_exp_heading_correct') : wfMsg('rct_exp_heading_wrong'); EasyTemplate::set_path(dirname(__FILE__) . '/'); $html = EasyTemplate::html('RCTestGrader', $testResult); $wgOut->addHtml($html); }
public function execute($par) { global $wgRequest, $wgOut, $wgUser, $wgLang, $wgLanguageCode; if ($wgUser->isBlocked()) { $wgOut->blockedPage(); return; } $userGroups = $wgUser->getGroups(); if ($wgUser->getID() == 0 || !(in_array('sysop', $userGroups) || in_array('staff', $userGroups))) { $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->showErrorPage('nosuchspecialpage', 'nospecialpagetext'); return; } if (!$wgRequest->wasPosted()) { EasyTemplate::set_path(dirname(__FILE__)); $tmpl = EasyTemplate::html("RevertTool.tmpl.php", array('msg' => wfMsg("mass-revert-message"), 'msgName' => "mass-revert-message")); $wgOut->addHTML($tmpl); return true; } else { set_time_limit(0); $list = $wgRequest->getVal('page-list'); $revertUser = $wgRequest->getVal('revert-user'); $list = explode("\n", $list); $urls = array(); if ($wgLanguageCode != "en") { $pages = Misc::getPagesFromURLs($list); foreach ($pages as $page) { if ($page['lang'] == $wgLanguageCode) { $urls[] = Misc::getLangBaseURL($page['lang']) . '/' . $page['page_title']; } else { $links = TranslationLink::getLinksTo($page['lang'], $page['page_id']); foreach ($links as $link) { if ($link->toLang == $wgLanguageCode) { $urls[] = $link->toURL; } } } } } else { $urls = $list; } $results = $this->revertList($urls, $revertUser); $wgOut->setArticleBodyOnly(true); $wgOut->addHTML(json_encode($results)); return true; } }
/** * Execute function */ public function execute() { global $wgOut, $wgUser, $wgRequest, $wgSharedDB; // Only show for staff if ($wgUser->isBlocked()) { $wgOut->blockedPage(); return; } $userGroups = $wgUser->getGroups(); if ($wgUser->getID() == 0 || !in_array('staff', $userGroups)) { $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->showErrorPage('nosuchspecialpage', 'nospecialpagetext'); return; } // Display the list of users in a trial $group = $wgRequest->getVal('group', NULL); $experiment = $wgRequest->getval('experiment', NULL); if ($group != NULL && $experiment != NULL) { $dbr = wfGetDB(DB_SLAVE); $sql = 'select user_name, hcu_main_edits from hydra_cohort_user' . ' JOIN ' . $wgSharedDB . '.user on user_id=hcu_user' . ' WHERE hcu_group=' . $dbr->addQuotes($group) . ' AND hcu_experiment=' . $dbr->addQuotes($experiment); $res = $dbr->query($sql, __METHOD__); $wgOut->addHTML("<table>"); $wgOut->addHTML("<tr><td>User Name</td><td>Edit Count</td></tr>"); foreach ($res as $row) { $wgOut->addHTML("<tr><td><a href=\"/User:"******"\">" . $row->user_name . "</a></td><td>" . $row->hcu_main_edits . "</td></tr>\n"); } $wgOut->addHTML("</table>"); return; } $dbr = wfGetDB(DB_SLAVE); // Get stats for edits by users in a trial group $sql = 'select hg_name, hcu_experiment as experiment_name, sum(hcu_main_edits >= ' . self::EDIT_GOAL . ') as success, sum(hcu_main_edits >= ' . self::EDIT_GOAL2 . ') as success2, count(hcu_user) as ct, avg(hcu_main_edits) as avg_edits, hg_id, ht_percent,ht_id from hydra_cohort_user ' . ' JOIN hydra_group on hg_id = hcu_group ' . ' LEFT JOIN hydra_trial on ht_group = hcu_group AND ht_experiment = hcu_experiment ' . ' JOIN ' . $wgSharedDB . '.user on user_id=hcu_user' . ' GROUP BY hcu_group, hcu_experiment'; $res = $dbr->query($sql, __METHOD__); $trials = array(); foreach ($res as $row) { $trials[$row->hg_name][] = array('experiment' => $row->experiment_name, 'group' => $row->hg_id, 'success' => $row->success, 'success2' => $row->success2, 'count' => $row->ct, 'avg_total' => round($row->avg_edits, 2), 'pct' => $row->ht_percent, 'trial' => $row->ht_id); } EasyTemplate::set_path(dirname(__FILE__)); $vars = array('trials' => $trials); $tmpl = EasyTemplate::html("Hydra.experiments.tmpl.php", $vars); $wgOut->addHTML($tmpl); }
function execute($par) { global $wgOut, $wgRequest, $wgUser; $fname = 'CatSearchUI::execute'; wfProfileIn($fname); $wgOut->setRobotpolicy('noindex,nofollow'); if ($wgUser->getId() == 0) { $wgOut->errorpage('nosuchspecialpage', 'nospecialpagetext'); } $js = HtmlSnips::makeUrlTags('js', array('catsearchui.js'), '/extensions/wikihow/catsearch?rev=' . WH_SITEREV, CATSEARCH_DEBUG); $css = HtmlSnips::makeUrlTags('css', array('catsearchui.css'), '/extensions/wikihow/catsearch?rev=' . WH_SITEREV, CATSEARCH_DEBUG); $vars = array('js' => $js, 'css' => $css, 'csui_search_label' => wfMsg('csui_search_label'), 'csui_interests_label' => wfMsg('csui_interests_label'), 'csui_suggested_label' => wfMsg('csui_suggested_label'), 'csui_no_interests' => wfMsg('csui_no_interests')); $this->getUserCategoriesHtml($vars); EasyTemplate::set_path(dirname(__FILE__) . '/'); $html = EasyTemplate::html('CatSearchUI', $vars); $embedded = intval($wgRequest->getVal('embed')); $wgOut->setArticleBodyOnly($embedded); $wgOut->addHtml($html); wfProfileOut($fname); }
function printDetail() { global $wgRequest, $wgOut; $dbr = wfGetDB(DB_SLAVE); $uid = intVal($wgRequest->getVal("uid")); $res = $dbr->select(array('rctest_scores', 'rctest_quizzes'), array('rs_timestamp', 'rq_difficulty', 'rs_quiz_id', 'rs_correct', 'rs_response'), array('rq_id = rs_quiz_id', 'rs_user_id' => $uid), "RCTestAdmin::printDetail", array('ORDER BY' => 'rs_timestamp DESC, rq_difficulty, rs_correct')); wfLoadExtensionMessages('RCTestGrader'); $scores = array(); while ($row = $dbr->fetchObject($res)) { $score = get_object_vars($row); $score['rs_correct'] = $score['rs_correct'] ? "Yes" : "No"; $score['rs_response'] = RCTestGrader::getButtonText($score['rs_response']); $score['rs_timestamp'] = date('Y-m-d', wfTimestamp(TS_UNIX, $score['rs_timestamp'])); $scores[] = $score; } $vars['results'] = $scores; $vars['css'] = HtmlSnips::makeUrlTags('css', array('rctestadmin.css'), 'extensions/wikihow/rctest', false); $html = EasyTemplate::html('RCTestAdminDetail', $vars); $wgOut->setArticleBodyOnly(true); $wgOut->addHTML($html); }
function execute($par) { global $wgRequest, $wgOut, $wgUser; $target = isset($par) ? $par : $wgRequest->getVal('target'); #if ($wgRequest->wasPosted() || true) { if ($wgRequest->getVal('interests')) { $wgOut->disable(); $x = new LSearch(); $interests = split("\n", $wgRequest->getVal('interests')); //$hits= $x->googleSearchResultTitles('"' . implode('" OR "', $interests) . '"'); $result = array(); $result['titles'] = array(); /*foreach ($hits as $t) { $result['titles'][] = $t->getText(); } */ $hits = array(Title::newFromText('French-Kiss'), Title::newFromText('Save-a-Wet-Cell-Phone'), Title::newFromText('Ollie-off-a-Kicker')); foreach ($hits as $t) { $dbr = wfGetDB(DB_SLAVE); $x = array(); $x['url'] = $t->getFullURL(); $x['title'] = $t->getText(); $row = $dbr->selectRow('page', array('page_counter', 'page_touched', 'page_further_editing'), array('page_id' => $t->getArticleID())); $x['counter'] = number_format($row->page_counter, 0, "", ","); $x['touched'] = wfTimeAgo($row->page_touched); if ($row->page_further_editing) { $x['morehelp'] = "yes"; } else { $x['morehelp'] = "no"; } $result['titles'][] = $x; } echo json_encode($result); return; } EasyTemplate::set_path(dirname(__FILE__)); $wgOut->addHTML(EasyTemplate::html('interests.tmpl.php')); }
public function execute() { global $wgRequest, $wgOut, $wgUser; $userGroups = $wgUser->getGroups(); if ($wgUser->isBlocked() || !in_array('staff', $userGroups)) { $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->showErrorPage('nosuchspecialpage', 'nospecialpagetext'); return; } if ($wgRequest->wasPosted()) { $query = $wgRequest->getVal('query'); ini_set('memory_limit', '1024M'); //Take up to 4 minutes to download big queries set_time_limit(240); $this->getQuery(); } else { EasyTemplate::set_path(dirname(__FILE__) . '/'); $vars = array('fields' => $this->getFields()); $html = EasyTemplate::html('flaviusquerytool.tmpl.php', $vars); $wgOut->addHTML($html); } return $html; }
public function execute() { global $wgRequest, $wgOut, $wgUser; $userGroups = $wgUser->getGroups(); if (!in_array('staff', $userGroups)) { $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->showErrorPage('nosuchspecialpage', 'nospecialpagetext'); return; } $dbr = wfGetDB(DB_SLAVE); $pageId = $wgRequest->getVal('page_id', ''); if (!is_int($pageId)) { $t = Title::newFromText($pageId); if ($t) { $pageId = $t->getArticleId(); } else { $pageId = ""; } } if ($pageId) { $t = Title::newFromID($pageId); $sql = "select page_title,r.rev_id, r.rev_comment, user_name, ec_bytes from dedup.edit_contributions join revision r on r.rev_id=ec_rev join revision r2 on r2.rev_id=ec_gr join page on page_id = r2.rev_page join wiki_shared.user on user_id=r.rev_user where page_id=" . $dbr->addQuotes($pageId); $res = $dbr->query($sql, __METHOD__); $contributions = array(); foreach ($res as $row) { $contributions[] = array('page_title' => $row->page_title, 'rev_id' => $row->rev_id, 'user_name' => $row->user_name, 'bytes' => $row->ec_bytes, 'comment' => $row->rev_comment); } EasyTemplate::set_path(dirname(__FILE__) . '/'); $vars = array('contributions' => $contributions); $wgOut->addHTML(EasyTemplate::html('EditContribution_results.tmpl.php', $vars)); } else { EasyTemplate::set_path(dirname(__FILE__) . '/'); $vars = array(); $wgOut->addHTML(EasyTemplate::html('EditContribution_form.tmpl.php', $vars)); } }
function getToolHtml() { EasyTemplate::set_path(dirname(__FILE__) . '/'); $vars = array('dbfields' => $this->getTitusFields(), 'languages' => $this->languageInfo); return EasyTemplate::html('titusquerytool.tmpl.php', $vars); }
<?php define('WH_USE_BACKUP_DB', true); require_once 'commandLine.inc'; $EXPERIMENT_NAME = 'after_rc_notify'; $dbr = wfGetDB(DB_SLAVE); $sql = "select hcu_user, u.user_email, rc_title, pu.user_name, pu.user_id, rev.rev_id from recentchanges join hydra_cohort_user on hcu_user=rc_user join wiki_shared.user u on u.user_id=hcu_user join logging on log_timestamp > date_sub(now(), interval 3 day) AND log_type='patrol' AND log_params=rc_this_oldid join wiki_shared.user pu on pu.user_id=log_user join revision rev on rev_id=rc_this_oldid left join revision rev2 on rev.rev_page=rev2.rev_page AND rev2.rev_id > rev.rev_id AND (rev2.rev_comment like '%Reverted edits by [[Special:Contributions/%' or rev2.rev_comment like '%Copyviocheckbot has found a potential copyright violation%') left join nfd on nfd_page=rev.rev_page and nfd_status=0 where hcu_experiment=" . $dbr->addQuotes($EXPERIMENT_NAME) . " AND u.user_email is NOT NULL AND u.user_email <> '' AND u.user_email_authenticated is NOT NULL AND hcu_run=0 AND rc_patrolled=1 AND rc_namespace=0 AND nfd_page is NULL AND rev2.rev_page is NULL GROUP BY hcu_user"; $res = $dbr->query($sql, __METHOD__); $emails = array(); foreach ($res as $row) { $email = array('from' => 'Krystle <*****@*****.**>', 'to' => $row->user_email, 'article' => $row->rc_title, 'username' => $row->user_name, 'user_id' => $row->hcu_user, 'revision' => $row->rev_id); print_r($email); $emails[] = $email; } global $wgOutputEncoding; $dbw = wfGetDB(DB_MASTER); foreach ($emails as $email) { $from = new MailAddress($email['from']); $to = new MailAddress($email['to']); $subject = 'Nice contribution on wikiHow!'; EasyTemplate::set_path(dirname(__FILE__) . '/../extensions/wikihow/hydra/experiments'); $body = EasyTemplate::html('RCPatrolEmail.tmpl.php', array('articleURL' => 'http://www.wikihow.com/' . $email['article'], 'articleName' => str_replace("-", " ", $email['article']), 'userURL' => 'http://www.wikihow.com/User:'******'username'], 'username' => $email['username'])); $content_type = "text/html; charset={$wgOutputEncoding}"; UserMailer::send($to, $from, $subject, $body, null, $content_type); $sql = "update hydra_cohort_user set hcu_run=1 WHERE hcu_user="******" AND hcu_experiment=" . $dbw->addQuotes($EXPERIMENT_NAME) . " LIMIT 1"; $res = $dbw->query($sql, __METHOD__); $logTo = new MailAddress("elizabethwikihowtest@gmail.com, gershon@wikihow.com"); UserMailer::send($logTo, $from, $to . ":" . $subject, $body, null, $content_type); }
public static function getXPath(&$bodyHtml, &$r) { global $wgWikiHowSections, $IP, $wgTitle; $lang = MobileWikihow::getSiteLanguage(); // munge steps first $opts = array('no-ads' => true); require_once "{$IP}/skins/WikiHowSkin.php"; $oldTitle = $wgTitle; $wgTitle = $r->getTitle(); $vars['bodyHtml'] = WikihowArticleHTML::postProcess($bodyHtml, $opts); $vars['lang'] = $lang; EasyTemplate::set_path(dirname(__FILE__) . '/'); $html = EasyTemplate::html('thumb_html.tmpl.php', $vars); require_once "{$IP}/extensions/wikihow/mobile/JSLikeHTMLElement.php"; $doc = new DOMDocument('1.0', 'utf-8'); $doc->registerNodeClass('DOMElement', 'JSLikeHTMLElement'); $doc->strictErrorChecking = false; $doc->recover = true; @$doc->loadHTML($html); $doc->normalizeDocument(); $xpath = new DOMXPath($doc); $wgTitle = $oldTitle; return $xpath; }
function printData() { global $wgOut, $wgRequest; $coachEnabled = TipsPatrol::isTPCoachEnabled(); $vars['disableDisplay'] = $coachEnabled ? "block" : "none"; $vars['enableDisplay'] = $coachEnabled ? "none" : "block"; $vars['scores'] = $this->getScores(); $vars['tests'] = $this->getTests(); $vars['days'] = $wgRequest->getVal("days", 7); $vars['css'] = HtmlSnips::makeUrlTags('css', array('tpcoachadmin.css'), 'extensions/wikihow/tipsandwarnings', true); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('tpcoachadmin.js'), 'extensions/wikihow/tipsandwarnings', true)); $html = EasyTemplate::html('TPCoachAdmin', $vars); $wgOut->addHTML($html); }
/** * cuteCUTE **/ function execute($par) { global $wgRequest, $wgOut, $wgUser, $wgLang, $wgParser, $efType, $wgTitle; $target = isset($par) ? $par : $wgRequest->getVal('target'); wfLoadExtensionMessages('EditFinder'); self::setTemplatePath(); if ($wgUser->isBlocked()) { $wgOut->blockedPage(); return; } if ($wgUser->getID() == 0) { $wgOut->setRobotpolicy('noindex,nofollow'); $wgOut->errorpage('nosuchspecialpage', 'nospecialpagetext'); return; } $this->topicMode = strtolower($par) == 'topic' || strtolower($wgRequest->getVal('edittype')) == 'topic'; if ($wgRequest->getVal('fetchArticle')) { $wgOut->setArticleBodyOnly(true); echo json_encode($this->getNextArticle()); return; } elseif ($wgRequest->getVal('show-article')) { $wgOut->setArticleBodyOnly(true); if ($wgRequest->getInt('aid') == '') { $catsJs = $this->topicMode ? "editFinder.getThoseInterests();" : "editFinder.getThoseCats();"; $catsTxt = $this->topicMode ? "interests" : "categories"; $wgOut->addHTML('<div class="article_inner">No articles found. <a href="#" onclick="' . $catsJs . '">Select more ' . $catsTxt . '</a> and try again.</div>'); return; } $t = Title::newFromID($wgRequest->getInt('aid')); $articleTitleLink = $t->getLocalURL(); $articleTitle = $t->getText(); //$edittype = $a['edittype']; //get article $a = new Article($t); $r = Revision::newFromTitle($t); $popts = $wgOut->parserOptions(); $popts->setTidy(true); $popts->enableLimitReport(); $parserOutput = $wgParser->parse($r->getText(), $t, $popts, true, true, $a->getRevIdFetched()); $popts->setTidy(false); $popts->enableLimitReport(false); $html = WikihowArticleHTML::processArticleHTML($parserOutput->getText(), array('no-ads', 'ns' => NS_MAIN)); $wgOut->addHTML($html); return; } elseif ($wgRequest->getVal('edit-article')) { // SHOW THE EDIT FORM $wgOut->setArticleBodyOnly(true); $t = Title::newFromID($wgRequest->getInt('aid')); $a = new Article($t); $editor = new EditPage($a); $editor->edit(); return; } elseif ($wgRequest->getVal('action') == 'submit') { $wgOut->setArticleBodyOnly(true); $efType = strtolower($wgRequest->getVal('type')); $t = Title::newFromID($wgRequest->getInt('aid')); $a = new Article($t); //log it $params = array($efType); $log = new LogPage('EF_' . substr($efType, 0, 7), false); // false - dont show in recentchanges $log->addEntry('', $t, 'Repaired an article -- ' . strtoupper($efType) . '.', $params); $text = $wgRequest->getVal('wpTextbox1'); $sum = $wgRequest->getVal('wpSummary'); //save the edit $a->doEdit($text, $sum, EDIT_UPDATE); wfRunHooks("EditFinderArticleSaveComplete", array($a, $text, $sum, $wgUser, $efType)); return; } elseif ($wgRequest->getVal('confirmation')) { $wgOut->setArticleBodyOnly(true); echo $this->confirmationModal($wgRequest->getVal('type'), $wgRequest->getInt('aid')); wfProfileOut(__METHOD__); return; } elseif ($wgRequest->getVal('cancel-confirmation')) { $wgOut->setArticleBodyOnly(true); echo $this->cancelConfirmationModal($wgRequest->getInt('aid')); wfProfileOut(__METHOD__); return; } else { //default view (same as most of the views) $sk = $wgUser->getSkin(); $wgOut->setArticleBodyOnly(false); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('mousetrap.min.js', 'jquery.cookie.js'), 'extensions/wikihow/common', false)); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('preview.js'), 'skins/common', false)); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('clientscript.js', 'preview.js'), 'skins/common', false)); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('editfinder.js'), 'extensions/wikihow/editfinder', false)); $efType = strtolower($target); if (strpos($efType, '/') !== false) { $efType = substr($efType, 0, strpos($efType, '/')); } if ($efType == '') { //no type specified? send 'em to format... $wgOut->redirect('/Special:EditFinder/Format'); } $wgOut->addHTML('<script>var g_eftype = "' . $target . '";</script>'); //add main article info $vars = array('pagetitle' => wfMsg('app-name') . ': ' . wfMsg($efType), 'question' => wfMsg('editfinder-question'), 'yep' => wfMsg('editfinder_yes'), 'nope' => wfMsg('editfinder_no'), 'helparticle' => wfMsg('help_' . $efType)); $vars['uc_categories'] = $this->topicMode ? 'Interests' : 'Categories'; $vars['lc_categories'] = $this->topicMode ? 'interests' : 'categories'; $vars['editfinder_edit_title'] = wfMsg('editfinder_edit_title'); $vars['editfinder_skip_title'] = wfMsg('editfinder_skip_title'); $vars['css'] = HtmlSnips::makeUrlTags('css', array('editfinder.css'), 'extensions/wikihow/editfinder', false); $vars['css'] .= HtmlSnips::makeUrlTags('css', array('suggestedtopics.css'), 'extensions/wikihow', false); $html = EasyTemplate::html('editfinder_main', $vars); $wgOut->addHTML($html); $wgOut->setHTMLTitle(wfMsg('app-name') . ': ' . wfMsg($efType) . ' - wikiHow'); $wgOut->setPageTitle(wfMsg('app-name') . ': ' . wfMsg($efType) . ' - wikiHow'); } $stats = new EditFinderStandingsIndividual($efType); $stats->addStatsWidget(); $standings = new EditFinderStandingsGroup($efType); $standings->addStandingsWidget(); }
/** * EXECUTE **/ function execute($par) { global $wgRequest, $wgOut, $wgUser, $wgLang, $wgParser, $wgHooks, $wgTitle, $wgStarterPages; $wgHooks['ShowBreadCrumbs'][] = array($this, 'removeBreadCrumbsCallback'); //$wgHooks['WrapBodyWithArticleInner'][] = array($this, 'wrapBodyWithArticleInner'); wfLoadExtensionMessages('StarterTool'); self::setTemplatePath(); if ($wgUser->isBlocked()) { $wgOut->blockedPage(); return; } $referral = $wgRequest->getVal('ref'); //get contents if ($wgRequest->getVal('edit')) { $wgOut->setArticleBodyOnly(true); $sentenceNum = $wgRequest->getVal('starter_title'); $sentence = $this->getSentence($sentenceNum); $sentence = preg_replace('@<[/]?(span|[ovwxp]:\\w+)[^>]*?>@', '', $sentence); $vars = array('sentence' => $sentence); $html = EasyTemplate::html('edit', $vars); $wgOut->addHTML($html); return; } elseif ($wgRequest->getVal('finish')) { $finishNum = "Finish-" . $wgRequest->getVal('finish'); self::logInfo($finishNum); } elseif ($wgRequest->getVal('editNum')) { $editNum = "Edit-" . $wgRequest->getVal('editNum'); self::logInfo($editNum); if ($wgRequest->getVal('getsome')) { $wgOut->setArticleBodyOnly(true); $sentence = self::getSentence(); $wgOut->addHTML($sentence); return; } } elseif ($wgRequest->getVal('getsome')) { $wgOut->setArticleBodyOnly(true); $sentence = self::getSentence(); $wgOut->addHTML($sentence); return; } elseif ($wgRequest->getVal('action') == 'submit') { $wgOut->setArticleBodyOnly(true); $t = Title::newFromText($wgRequest->getVal('starter-title')); $a = new Article($t); //internal log if ($referral != "") { self::logInfo("submit"); } //log it $params = array(); $log = new LogPage('Starter_Tool', false); // false - dont show in recentchanges $log->addEntry('', $t, 'Fixed a sentence with the Starter Tool.', $params); $text = $wgRequest->getVal('wpTextbox1'); $sum = $wgRequest->getVal('wpSummary'); //save the edit if ($a->doEdit($text, $sum, EDIT_SUPPRESS_RC)) { //revert the edit for the next user $minRev = self::getFirstArticleRevision($t->getArticleId()); //don't log rollback for the user $oldglobal = $wgUser; $wgUser = User::newFromName("MasterSockPuppet421"); $dbr = wfGetDB(DB_SLAVE); $r = Revision::loadFromId($dbr, $minRev); $a->doEdit($r->getText(), 'Auto-rollback from Starter Tool.', EDIT_SUPPRESS_RC); // reset the wguser var $wgUser = $oldglobal; wfRunHooks("StarterToolSaveComplete", array($a, $text, $sum, $wgUser, $efType)); } return; } else { //default; get a sentence if ($referral != "") { //log that they came in from the specific ad self::logInfo("Ad-" . $referral); setcookie(StarterTool::COOKIE_NAME, 1, 0); } $wgOut->addScript(HtmlSnips::makeUrlTags('css', array('starter.css'), 'extensions/wikihow/starter', false)); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('starter.js'), 'extensions/wikihow/starter', false)); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('clientscript.js'), 'skins/common/', false)); $wgOut->addScript(HtmlSnips::makeUrlTags('js', array('jquery.cookie.js'), 'extensions/wikihow/common', false)); $sk = $wgUser->getSkin(); $wgOut->setArticleBodyOnly(false); $vars = array('pagetitle' => wfMsg('app-name'), 'question' => wfMsg('fix-this'), 'yep' => wfMsg('yep'), 'nope' => wfMsg('nope')); $html = EasyTemplate::html('starter', $vars); $wgOut->addHTML($html); } $wgOut->setHTMLTitle(wfMsg('pagetitle', wfMsg('app-name'))); }