Esempio n. 1
0
 function tagArticles(&$pageIds, $langCode, $tags)
 {
     $dbw = $this->dbw;
     // Check for and add new tags
     $tags = $this->addNewTags($tags);
     $ts = wfTimestampNow(TS_UNIX);
     $data = array();
     foreach ($pageIds as $aid) {
         foreach ($tags as $tag) {
             $data[] = array("ca_tag_id" => $tag['tag_id'], "ca_page_id" => $aid, "ca_lang_code" => $langCode, "ca_tagged_on" => $ts);
         }
     }
     if (!empty($data)) {
         $articleTagTable = $this->wapConfig->getArticleTagTableName();
         $articleTable = $this->wapConfig->getArticleTableName();
         $sql = WAPUtil::makeBulkInsertStatement($data, $articleTagTable);
         $dbw->query($sql);
         // Update reserved flag
         $ids = implode(",", $pageIds);
         $sql = "UPDATE {$articleTable}, {$articleTagTable} SET ca_reserved = 1\n\t\t\t\tWHERE ca_page_id = ct_page_id AND ca_lang_code = ct_lang_code AND ca_lang_code = '{$langCode}' AND (ct_user_id > 0 OR ct_completed = 1) AND ca_page_id IN ({$ids})";
         $dbw->query($sql);
     }
 }
 function removeTagArticles()
 {
     global $wgRequest, $IP;
     $urlList = Misc::getUrlDecodedData($wgRequest->getVal('urls'));
     $tags = $wgRequest->getArray('tags');
     WAPUtil::createTagArrayFromRequestArray($tags);
     $langs = $this->config->getSupportedLanguages();
     foreach ($langs as $lang) {
         $this->wapDB->removeTagsFromArticles($urlList, $lang, $tags);
     }
     $this->outputSuccessHtml("Tag(s) successfully removed");
 }
 protected function insertRows(&$rows)
 {
     $dbw = wfGetDB(DB_MASTER);
     if (!empty($rows)) {
         $table = $this->getWAPConfig()->getArticleTableName();
         $sql = WAPUtil::makeBulkInsertStatement($rows, $table, true);
         if ($this->simulate) {
             echo $sql, "\n\n====\n\n";
         } else {
             $dbw->query($sql, __METHOD__);
         }
     }
 }
Esempio n. 4
0
 public function addUser(&$url, $powerUser = false)
 {
     if (0 !== stripos($url, 'http://www.wikihow.com/')) {
         throw new Exception('User urls should start with http://www.wikihow.com/');
     }
     $uname = WAPUtil::getUserNameFromUserUrl($url);
     $success = false;
     $u = User::newFromName($uname);
     if ($u) {
         $uid = $u->getId();
         if (!empty($uid)) {
             $groupName = $this->getWAPConfig()->getWikiHowGroupName();
             $u->addGroup($groupName);
             if ($powerUser) {
                 $powerUserGroup = WAPDB::getInstance($this->dbType)->getWAPConfig()->getWikiHowPowerUserGroupName();
                 $u->addGroup($powerUserGroup);
             }
             $success = true;
         }
     }
     return $success;
 }
Esempio n. 5
0
 public function getCompletedArticles($langCode, $fromDate)
 {
     global $IP;
     $dbr = self::getDBR();
     require_once "{$IP}/extensions/wikihow/DatabaseHelper.class.php";
     $articleTable = $this->config->getArticleTableName();
     $defaultUser = $this->config->getDefaultUserName();
     $rows = DatabaseHelper::batchSelect($articleTable, array('*'), array("ct_completed" => 1, "ct_lang_code" => $langCode, "ct_completed_timestamp > '{$fromDate}'", "ct_user_text != '{$defaultUser}'"), __METHOD__, array(), DatabaseHelper::DEFAULT_BATCH_SIZE, $dbr);
     $this->formatData($rows);
     return self::getReportArray(WAPUtil::generateTSVOutput($rows));
 }