private function store($question, $questionParsed, $tags, $details, $tagsNoQuestion, $type, $flags) { global $sDB, $sUser, $sTemplate; $url = url_sanitize($questionParsed); $i = 0; while (true) { $cur = $url . ($i > 0 ? '-' . $i : ''); $res = $sDB->exec("SELECT `url` FROM `questions` WHERE `url` = '" . mysql_real_escape_string($cur) . "' LIMIT 1;"); if (mysql_num_rows($res)) { $i++; continue; } break; } if ($i > 0) { $url .= '-' . $i; } $additionalData = new stdClass(); $additionalData->percPro = 0; $additionalData->percCon = 0; $additionalData->numCheckIns = 0; $additionalData->tags = array_unique($tagsNoQuestion); $sDB->exec("INSERT INTO `questions` (`questionId`, `title`, `url`, `details`, `dateAdded`, `userId`, `score`, `scoreTrending`, `scoreTop`, `additionalData`, `groupId`, `type`, `flags`) VALUES\r\n (NULL, '" . mysql_real_escape_string($question) . "', '" . mysql_real_escape_string($url) . "', '" . mysql_real_escape_string($details) . "',\r\n '" . time() . "', '" . $sUser->getUserId() . "', '0', '0', '0', '" . serialize($additionalData) . "', '" . i($this->groupId) . "', '" . i($type) . "', '" . i($flags) . "');"); $questionId = mysql_insert_id(); if (!$questionId) { $this->setError($sTemplate->getString("ERROR_NEW_QUESTION_TRY_AGAIN")); return false; } foreach ($tags as $k => $v) { $sDB->exec("INSERT INTO `tags` (`tagId`, `questionId`, `tag`, `groupId`) VALUES(NULL, '" . i($questionId) . "', '" . mysql_real_escape_string($v) . "', '" . i($this->groupId) . "');"); } if ($this->group) { $this->redirectUrl = $sTemplate->getRoot() . "groups/" . $this->group->url() . "/" . $url . "/"; } else { if ($flags & QUESTION_FLAG_PART_ALL) { $url = "unregistered/" . $url; } if ($type == QUESTION_TYPE_UNLISTED) { $url = "unlisted/" . $url; } $this->redirectUrl = $sTemplate->getRoot() . $url . "/"; } return $questionId; }
private function store($headline, $headlineParsed, $abstract, $details) { global $sDB, $sUser; $questionId = $this->question->questionId(); $url = url_sanitize($headlineParsed); $i = 0; while (true) { $cur = $url . ($i > 0 ? '-' . $i : ''); $res = $sDB->exec("SELECT `url` FROM `arguments` WHERE `questionId` = '" . i($questionId) . "' AND `parentId` = '0' AND `url` = '" . mysql_real_escape_string($cur) . "' LIMIT 1;"); if (mysql_num_rows($res)) { $i++; continue; } break; } if ($i > 0) { $url .= '-' . $i; } $sDB->exec("INSERT INTO `arguments` (`argumentId`, `questionId`, `parentId`, `type`, `userId`, `url`, `headline`, `abstract`, `details`, `dateAdded`, `score`) VALUES\r\n (NULL, '" . i($questionId) . "', '0', '" . i($this->faction) . "', '" . i($sUser->getUserId()) . "','" . mysql_real_escape_string($url) . "',\r\n '" . mysql_real_escape_string($headline) . "', '" . mysql_real_escape_string($abstract) . "', '" . mysql_real_escape_string($details) . "',\r\n '" . time() . "', '0');"); $argumentId = mysql_insert_id(); if (!$argumentId) { $this->setError($sTemplate->getString("ERROR_NEW_ARGUMENT_TRY_AGAIN")); return false; } $this->redirectUrl = $this->question->url(); return $argumentId; }
private function store($title, $titleParsed, $visibility) { global $sDB, $sUser, $sTemplate; $url = url_sanitize($titleParsed); $i = 0; while (true) { $cur = $url . ($i > 0 ? '-' . $i : ''); $res = $sDB->exec("SELECT `url` FROM `groups` WHERE `url` = '" . mysql_real_escape_string($cur) . "' LIMIT 1;"); if (mysql_num_rows($res)) { $i++; continue; } break; } if ($i > 0) { $url .= '-' . $i; } $sDB->exec("INSERT INTO `groups` (`groupId`, `title`, `url`, `ownerId`, `dateAdded`, `visibility`) VALUES\r\n (NULL, '" . mysql_real_escape_string($title) . "', '" . mysql_real_escape_string($url) . "', '" . mysql_real_escape_string($sUser->getUserId()) . "',\r\n '" . time() . "', '" . i($visibility) . "');"); $groupId = mysql_insert_id(); if (!$groupId) { $this->setError($sTemplate->getString("ERROR_NEW_GROUP_TRY_AGAIN")); return false; } $this->redirectUrl = $sTemplate->getRoot() . "groups/" . $url . "/"; return $groupId; }
private function store($headline, $headlineParsed, $abstract, $details) { global $sDB, $sUser, $sStatistics; $questionId = $this->question->questionId(); if ($headline != $this->counterArgument->headlinePlain()) { $url = url_sanitize($headlineParsed); $i = 0; while (true) { $cur = $url . ($i > 0 ? '-' . $i : ''); $res = $sDB->exec("SELECT `url` FROM `arguments` WHERE `questionId` = '" . i($questionId) . "' AND `parentId` = '0' AND `url` = '" . mysql_real_escape_string($cur) . "' LIMIT 1;"); if (mysql_num_rows($res)) { $i++; continue; } break; } if ($i > 0) { $url .= '-' . $i; } } else { $url = $this->argument->urlPlain(); } $sDB->exec("UPDATE `arguments` SET `url` = '" . mysql_real_escape_string($url) . "',\r\n `headline` = '" . mysql_real_escape_string($headline) . "',\r\n `abstract` = '" . mysql_real_escape_string($abstract) . "',\r\n `details` = '" . mysql_real_escape_string($details) . "',\r\n `score` = '0'\r\n WHERE `argumentId` = '" . i($this->counterArgument()->argumentId()) . "' LIMIT 1;"); $sStatistics->resetArgumentVotes($this->argument()); $this->redirectUrl = $this->question->url(); return $this->counterArgument()->argumentId(); }
private function store($question, $questionParsed, $tags, $details, $tagsNoQuestion, $type, $flags) { global $sDB, $sUser, $sTemplate, $sStatistics; $url = url_sanitize($questionParsed); // only update url if the title has changed if ($question != $this->question()->titlePlain()) { $i = 0; while (true) { $cur = $url . ($i > 0 ? '-' . $i : ''); $res = $sDB->exec("SELECT `url` FROM `questions` WHERE `url` = '" . mysql_real_escape_string($cur) . "' LIMIT 1;"); if (mysql_num_rows($res)) { $i++; continue; } break; } if ($i > 0) { $url .= '-' . $i; } } else { $url = $this->question()->urlPart(); } $additionalData = new stdClass(); $additionalData->percPro = 0; $additionalData->percCon = 0; $additionalData->numCheckIns = 0; $additionalData->tags = array_unique($tagsNoQuestion); $sDB->exec("UPDATE `questions` SET `title` = '" . mysql_real_escape_string($question) . "',\r\n `url` = '" . mysql_real_escape_string($url) . "',\r\n `details` = '" . mysql_real_escape_string($details) . "',\r\n `additionalData` = '" . serialize($additionalData) . "',\r\n `type` = '" . i($type) . "',\r\n `flags` = '" . i($flags) . "',\r\n `score` = 0,\r\n `scoreTop` = 0\r\n WHERE `questionId` = '" . i($this->question()->questionId()) . "' LIMIT 1;"); $sDB->exec("DELETE FROM `tags` WHERE `questionId` = '" . i($this->question()->questionId()) . "';"); $sDB->exec("DELETE FROM `user_factions` WHERE `questionId` = '" . i($this->question()->questionId()) . "';"); $sStatistics->resetQuestionVotes($this->question()); foreach ($tags as $k => $v) { $sDB->exec("INSERT INTO `tags` (`tagId`, `questionId`, `tag`, `groupId`) VALUES(NULL, '" . i($this->question()->questionId()) . "', '" . mysql_real_escape_string($v) . "', '" . i($this->groupId) . "');"); } if ($this->group) { $this->redirectUrl = $sTemplate->getRoot() . "groups/" . $this->group->url() . "/" . $url . "/"; } else { if ($flags & QUESTION_FLAG_PART_ALL) { $url = "unregistered/" . $url; } if ($type == QUESTION_TYPE_UNLISTED) { $url = "unlisted/" . $url; } $this->redirectUrl = $sTemplate->getRoot() . $url . "/"; } return true; }