Дадоха ми следния код за сайта ми. Обаче кода е classes , а в сайта ми използвам само функции и обикновени заявки. Някой може ли да ми направи следния код като функции или като обикновени заявки?
Ето двата файла:
home/tasks.php
class/Tasks.php
Ето двата файла:
home/tasks.php
Код:
<?php
session_start();
require('functions.php');
if(file_exists('classes/Tasks.php')){
include('classes/Tasks.php');
} else {
echo message(35, 'error');
}
$db = new Database;
$Task = new Tasks;
switch($_GET['page']){
case 'add':
$body = $Task->InsertTask($_POST['description_Pascal'], $_POST['description_C'], $_POST['Answer_Pascal'], $_POST['Answer_C'], $_POST['categories'], $_POST['levels']);
break;
case 'show':
$body = $Task->Show($_GET['task']);
break;
case 'categories':
$body = $Task->Categories($_GET['level']);
break;
case 'tasks':
$body = $Task->ShowTasks($_GET['category'], $_GET['level']);
break;
case 'comment':
if (trim($_POST['content']) <> ""){
$body = $Task->update_comment($_GET['id'], $_POST['content']);
$body .= "<meta http-equiv=\"Refresh\" content=\"2; URL=$HTTP_REFERER\">";
} else {
$body .= message(40, 'error');
$body .= "<meta http-equiv=\"Refresh\" content=\"2; URL=$HTTP_REFERER\">";
}
break;
case 'submit':
if($_SESSION['loged_in_user']){
$body = $Task->showEnterForm();
} else {
$body = message('38', 'text');
}
break;
case 'del':
if($_SESSION['premissions_user'] == 'admin'){
$body = $Task->Delete($_GET['task']);
} else {
$body = message('39', 'error');
}
break;
case 'edit':
if($_SESSION['premissions_user'] == 'admin'){
$body = $Task->edit($_GET['task']);
} else {
$body = message('39', 'error');
}
break;
case 'update':
if($_SESSION['premissions_user'] == 'admin'){
$body = $Task->update($_POST['description_Pascal'], $_POST['description_C'], $_POST['Answer_Pascal'], $_POST['Answer_C'], $_POST['categories'], $_POST['levels'], $_POST['task_ID']);
} else {
$body = message('39', 'error');
}
break;
case 'mark':
$body = $Task->Mark($_GET['id']);
break;
case 'list':
$body = $Task->Lista($_GET['id']);
break;
case 'last_comments':
$body = $Task->Last_comments();
break;
case 'tosolve':
$body = $Task->ToSolve();
break;
case 'answer':
$body = $Task->Answer($_GET['id']);
break;
case 'submitAnswer':
$body = $Task->submitAnswer($_POST['code'], $_POST['taskID']);
break;
case 'delAnswer':
if($_SESSION['premissions_user'] == 'admin'){
$body = $Task->delAnswer($_GET['task']);
} else {
$body = message('39', 'error');
}
break;
case 'editAnswer':
if($_SESSION['premissions_user'] == 'admin'){
$body = $Task->editAnswer($_GET['task']);
} else {
$body = message('39', 'error');
}
break;
case 'updateAnswer':
if($_SESSION['premissions_user'] == 'admin'){
$body = $Task->updateAnswer($_POST['code'], $_POST['taskID']);
} else {
$body = message('39', 'error');
}
break;
default:
$body = $Task->Levels();
break;
}
// Generate template
template();
?>
class/Tasks.php
Код:
<?php
require_once('functions.php');
class Tasks {
var $Database;
var $info;
var $result;
function ToSolve(){
$this->Database = new Database();
$array = $this->Database->Query("SELECT * FROM `marked` WHERE `Type` = 'list' AND `User` = '".user2id($_SESSION[loged_in_user])."' ORDER BY `ID` DESC");
if (empty($array)) $body = "<h1>Задачи чакащи за решение</h1>\n<div style=\"text-align:center;\"><em>Няма задачи в списъка</em></div>";
else {
$body .="<h1>Задачи чакащи за решение</h1>\n <table border=\"0\" width=\"100%\" class=\"colored\"><tr><th>Задача</th><th>Премахни от списъка</th></tr>";
foreach ($array as $key => $value){
$body .= "<tr><td><a href=\"tasks.php?page=show&task=".$array[$key]['Task']."\">Задача ".$array[$key]['Task']."</a></td><td><a href=\"tasks.php?page=list&id=".$array[$key]['Task']."\">[x]</a></td></tr>\n";
}
$body .="</table>";
}
return $body;
}
function Last_comments(){
$this->Database = new Database();
$array = $this->Database->Query("SELECT * FROM `comments` ORDER BY `Date` DESC");
$body .="<h1>Последни коментари</h1>\n <table border=\"0\" width=\"100%\" class=\"colored\"><tr><th>Потребител</th><th>Съобщение</th><th>Дата</th><th>[x]</th></tr>";
foreach ($array as $key => $value){
$body .= "<tr><td>".id2user($array[$key]['Author'])."</td><td><a href=\"tasks.php?page=show&task=".$array[$key]['TaskID']."\">".filter($array[$key]['Content'])."</a></td><td>".$array[$key]['Date']."</td><td><a href=\"comment_del.php?id=".$array[$key]['TaskID']."&c=".$array[$key]['id']."&admin=1\">[x]</a></td></tr>\n";
}
$body .="</table>";
return $body;
}
function showCategories(){
//Use Database class
$this->Database = new Database();
$this->Database->MySQLExec("SELECT * FROM `tasks_categories`");
$body = '<select size="1" id="mySelect1" name="categories">';
while($Row = $this->Database->MySQLFetchRow()){
$body .= '<option value="'.$Row['ID'].'">'.$Row['Name'].'</option>';
}
$body .= '</select>';
return $body;
}
function showEditCategories($ID){
//Use Database class
$this->Database = new Database();
$this->db = new Database();
$this->Database->MySQLExec("SELECT * FROM `tasks_categories`");
$this->db->MySQLExec("SELECT `Category` FROM `tasks` WHERE `ID` = '".$ID."'");
$Record = $this->db->MySQLFetchRow();
$body = '<select size="1" id="mySelect1" name="categories">';
while($Row = $this->Database->MySQLFetchRow()){
if($Row['ID'] == $Record['Category']){
$body .= '<option value="'.$Row['ID'].'" selected="selected">'.$Row['Name'].'</option>';
} else {
$body .= '<option value="'.$Row['ID'].'">'.$Row['Name'].'</option>';
}
}
$body .= '</select>';
return $body;
}
function showLevels(){
//Use Database class
$this->Database = new Database();
$this->Database->MySQLExec("SELECT * FROM `tasks_levels`");
$body = '<select size="1" id="mySelect2" name="levels">';
while($Row = $this->Database->MySQLFetchRow()){
$body .= '<option value="'.$Row['ID'].'">'.$Row['Name'].'</option>';
}
$body .= '</select>';
return $body;
}
function showEditLevels($ID){
//Use Database class
$this->Database = new Database();
$this->db = new Database();
$this->Database->MySQLExec("SELECT * FROM `tasks_levels`");
$this->db->MySQLExec("SELECT `Level` FROM `tasks` WHERE `ID` = '".$ID."'");
$Record = $this->db->MySQLFetchRow();
$body = '<select size="1" id="mySelect2" name="levels">';
while($Row = $this->Database->MySQLFetchRow()){
if($Row['ID'] == $Record['Level']){
$body .= '<option value="'.$Row['ID'].'" selected="selected">'.$Row['Name'].'</option>';
} else {
$body .= '<option value="'.$Row['ID'].'">'.$Row['Name'].'</option>';
}
}
$body .= '</select>';
return $body;
}
function showEnterForm(){
$body .= '<h1>Добави задача</h1>';
$body .= '<form action="tasks.php?page=add" method="post">';
$body .= '<p>Ниво на задачите</p>';
$body .= $this->showLevels();
$body .= '<p>Категория на задачите</p>';
$body .= $this->showCategories();
$body .='
<p>Описание на задачата на Pascal</p>'.editor('description_Pascal').'
<textarea name="description_Pascal" rows="10" cols="77" id="description_Pascal"></textarea><br />
<p>Решение на задачата на Pascal</p>
<textarea name="Answer_Pascal" rows="10" cols="77"></textarea><br />
<p>Описание на задачата на C</p>'.editor('description_C').'
<textarea name="description_C" rows="10" cols="77" id="description_C"></textarea><br />
<p>Решение на задачата на C</p>
<textarea name="Answer_C" rows="10" cols="77" id="Answer_C"></textarea><br />
<input type="submit" value="Добави" />
</form>';
return $body;
}
function InsertTask($description_Pascal, $description_C, $Answer_Pascal, $Answer_C, $categories, $levels){
if($_SESSION['premissions_user'] == 'admin'){
$publish = 1;
} else {
$publish = 0;
}
//Use Database class
$this->Database = new Database();
$this->Database->MySQLExec("INSERT INTO `tasks` VALUES ('', '$description_Pascal', '$description_C', '$Answer_Pascal', '$Answer_C', '$_SESSION[loged_in_user]', '$categories', '$levels', '0', '0', '$publish')");
return 'Успено добавено! <a href="tasks.php?page=submit">Назад</a>';
}
function vote($id){
$this->db = new Database;
$this->db->MySQLExec("SELECT * FROM `vote` WHERE `TaskID` = '".$id."' AND `Username` = '".$_SESSION['loged_in_user']."'");
if($this->db->MySQLAffectRows() > 0){
$this->db->MySQLExec("SELECT `vote`, `vote_people` FROM `tasks` WHERE `ID` = '".$id."'");
$Row = $this->db->MySQLFetchRow();
return '<strong style="float:left;">Трудност: </strong><img src="design/img/vote/rate'.round($Row['vote']/$Row['vote_people']).'.gif" alt="'.round($Row['vote']/$Row['vote_people']).'" />';
} else {
return "\t\t".'<strong style="float:left;">Трудност:</strong>
<div id="vote">
<a href="vote.php?vote=1&id='.$id.'" class="vote1" title="Оценете тази задача с Много лесна" onmouseover=\'vote("1");\' onmouseout=\'vote("0");\'><em>1</em></a>
<a href="vote.php?vote=2&id='.$id.'" class="vote1" title="Оценете тази задача с Лесна" onmouseover=\'vote("2");\' onmouseout=\'vote("0");\'><em>2</em></a>
<a href="vote.php?vote=3&id='.$id.'" class="vote1" title="Оценете тази задача с Нормална" onmouseover=\'vote("3");\' onmouseout=\'vote("0");\'><em>3</em></a>
<a href="vote.php?vote=4&id='.$id.'" class="vote1" title="Оценете тази задача с Трудна" onmouseover=\'vote("4");\' onmouseout=\'vote("0");\'><em>4</em></a>
<a href="vote.php?vote=5&id='.$id.'" class="vote1" title="Оценете тази задача с Много трудна" onmouseover=\'vote("5");\' onmouseout=\'vote("0");\'><em>5</em></a>
</div>';
}
}
// Коментари
function show_comments($id) {
$query = "SELECT * FROM `comments` WHERE `TaskID` = '".$id."' ";
$result = mysql_query($query);
if (mysql_num_rows($result) > 6){
$this->info .= "\n\t\t<br /><br />
<h5>
<a href=\"#\" onclick=\"Effect.toggle('changetemplate', 'appear'); return false;\" title=\"Показва Цялата дискусия\">Покажи дискусията</a>
</h5>
<div id=\"changetemplate\" style=\"display: none;\">
<div style=\"background-color: inherit; width:462x; border:1px solid #f1f1f1; padding:10px;\">
\n\t\t "
;
}elseif(mysql_num_rows($result) <> 0){
$this -> info .= "\n\t\t<br /><h1>Дискусия по задачата:</h1>\n\t\t";
}
if (mysql_num_rows($result) <> 0){
while ($record = mysql_fetch_assoc($result)){
$this -> info .= "\n\t\t"."<div id=\"comments\">";
$this -> info .= "<table border=\"0\" class=\"colored\" width=\"100%\">\n";
$this -> info .= "\t\t\t<tr>\n\t\t\t\t
<th style=\"text-align:center; font-weight: bolder;\">".id2user($record[Author])."</th>\n\t\t\t\t
<th><div style=\"float:left; font-weight: bolder;\">Пуснато на: ".$record[Date]."</div>";
if ($_SESSION[premissions_user] == "admin"){
$this -> info.=" <div style=\"text-align:right;\">
<a href=\"comment_edit.php?id=".$id."&c=".$record[id]."\" title=\"Промяна на коментара\" >Редактирай</a>
<a href=\"comment_del.php?id=".$id."&c=".$record[id]."\" title=\"Изтрива коментара\">Изтрий</a>
</div>";
}
$this -> info .= "\t\t\t\t</th>\n\t\t\t</tr>\n\t\t\t\t<tr>
<td colspan=\"2\">".filter($record[Content])."</td>\n\t\t\t</tr>\n";
}
// $comment = emoticons($comment);
// $this -> info .= makeHref($comment);
$this -> info .= "\t\t</table></div>";
if (mysql_num_rows($result) > 3){
$this -> info .="</div></div>";
}
// $this -> info = $this -> info. "\n\t\t<div id=\"artmenu\"><a href=\"javascript:history.back();\" title=\"Назад към уроците\" id=\"back\">Назад</a><a href=\"javascript:history.go(-2);\" title=\"Назад към категориите\" id=\"menukat\">Към категориите</a><a href=\"#\" onclick=\"new Effect.ScrollTo('header'); return false\" title=\"Към началото на страницата\" id=\"menuup\">Нагоре</a></div>";
}
}
function post_comment($id){
if ($_SESSION['loged_in_user']) {
return "<br /><br /><div style=\"display:block; margin: 0 50px;\"><h1>Коментирай</h1>
<form action=\"tasks.php?page=comment&id=".$id."\" method=\"post\" class=\"dictsearch\">
".editor('commentarea')."
<div style=\"text-align:center;\"><textarea name=\"content\" cols=\"64\" rows=\"5\" id=\"commentarea\" class=\"commentarea\"></textarea><br />
<input type=\"submit\" value=\"Коментирай\" />
</form></div></div>";
}
}
function update_comment($id,$content){
$query = "INSERT INTO `comments` ( `id` , `TaskID` , `Author` , `Content` , `Date`, `lang` ) VALUES ('', '".$id."', '".user2id($_SESSION[loged_in_user])."', '".$content."', '".date("Y-m-d H:i:s")."', '".changeLang()."')";
if (mysql_query($query))return "Благодарим Ви за коментара !";
}
function Is_Marked($ID){
$query = "SELECT * FROM `marked` WHERE `User` = '".user2id($_SESSION[loged_in_user])."' AND `Task` = '$ID' and `Type` = 'read'";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) return true; else return false;
}
function Mark($ID){
if ($this->Is_Marked($ID)) return $this->UnMark_Task($ID); else return $this->Mark_Task($ID);;
}
function Mark_Task($ID){
$query = "INSERT INTO `marked` (`ID` ,`User` ,`Task`,`Type`) VALUES (NULL , '".user2id($_SESSION[loged_in_user])."', '$ID', 'read')";
$result = mysql_query($query);
return "Маркирането успешно. Моля изчакайте секунда.. <meta http-equiv=\"Refresh\" content=\"0 URL=$_SERVER[HTTP_REFERER]\">";
}
function UnMark_Task($ID){
$query = "DELETE FROM `marked` WHERE `User` = '".user2id($_SESSION[loged_in_user])."' and Task='$ID' and `Type` = 'read'";
$result = mysql_query($query);
return "Размаркирането успешно. Моля изчакайте секунда.. <meta http-equiv=\"Refresh\" content=\"0; URL=$_SERVER[HTTP_REFERER]\">";
}
function Is_List($ID){
$query = "SELECT * FROM `marked` WHERE `User` = '".user2id($_SESSION[loged_in_user])."' AND `Task` = '$ID' and `Type` = 'list'";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) return true; else return false;
}
function Lista($ID){
if ($this->Is_List($ID)) return $this->UnMark_List($ID); else return $this->Mark_List($ID);;
}
function Mark_List($ID){
$query = "INSERT INTO `marked` (`ID` ,`User` ,`Task`,`Type`) VALUES (NULL , '".user2id($_SESSION[loged_in_user])."', '$ID','list')";
$result = mysql_query($query);
return "Добавянето в списъка е успешно. Моля изчакайте секунда.. <meta http-equiv=\"Refresh\" content=\"0 URL=$_SERVER[HTTP_REFERER]\">";
}
function UnMark_List($ID){
$query = "DELETE FROM `marked` WHERE `User` = '".user2id($_SESSION[loged_in_user])."' and Task='$ID' and `Type` = 'list'";
$result = mysql_query($query);
return "Премахването от списъка е успешно. Моля изчакайте секунда.. <meta http-equiv=\"Refresh\" content=\"0; URL=$_SERVER[HTTP_REFERER]\">";
}
function Show($ID){
//Use Database class
$this->Database = new Database();
if(is_numeric($ID)){
$this->Database->MySQLExec("SELECT * FROM `tasks` WHERE `ID` = '".$ID."' AND `publish` = '1'");
if($this->Database->MySQLAffectRows() == 1){
$Row = $this->Database->MySQLFetchRow();
if($_SESSION['premissions_user'] == 'admin'){
$body .= "<br /><div style=\"background:#fbf4bf; text-align:right; color: #fff;\">
<a href=\"tasks.php?page=edit&task=".$Row['ID']."\" title=\"Редактирай задачата\">Редактирай задачата</a>
<a href=\"tasks.php?page=del&task=".$Row['ID']."\" title=\"Изтрий задачата\">Изтрий задачата</a></div>";
}
if ($Row[vote_people] >= 1) { $body .= "<div id=\"vote_res\">Трудност: ".round($Row[vote]/$Row[vote_people],2)."</div>"; }
if (changeLang() == 'Pascal'){
$body .= filter($Row['Description_Pascal']).'<br /><br />';
} else {
$body .= filter($Row['Description_C']).'<br /><br />';
}
if($_SESSION['loged_in_user']) {
if (changeLang() == 'Pascal'){
if (!($Row['Answer_Pascal'])) {$body .= '<div style="clear:both; text-align:center;"><br />Все още няма решение на <em>Pascal</em> за тази задача публикувано от автора. Предложи решение? <a href="tasks.php?page=answer&id='.$ID.'">Тук</a></div>';
if ($Row['Answer_C'] <> "") $body .= "<div style=\"clear:both; text-align:center;\">Има решение на <em>C++</em> желаете ли да го видите? <a href=\"javascript: changeLang();\">Да</a></div>"; }
else $body .= 'Решение публикувано от <strong>'.$Row['Author'].'</strong>: <pre class="sh_pascal">'.filter($Row['Answer_Pascal']).'</pre><form action="get_task.php" method="post"><input type="hidden" name="id" value="'.$Row['ID'].'"/><input type="hidden" name="lang" value="pascal"/><input type="submit" value="Свали като .pas" /></form><br />';
} else {
if (!($Row['Answer_C'])) { $body .= '<div style="clear:both; text-align:center;"><br />Все още няма решение на <em>C++</em> за тази задача публикувано от автора. Предложи решение? <a href="tasks.php?page=answer&id='.$ID.'">Тук</a></div>';
if ($Row['Answer_Pascal'] <> "") $body .= "<div style=\"clear:both; text-align:center;\">Има решение на Pascal желаете ли да го видите? <a href=\"javascript: changeLang();\">Да</a></div>"; }
else $body .= 'Решение публикувано от <strong>'.$Row['Author'].'</strong> <pre class="sh_cpp">'.filter($Row['Answer_C']).'</pre><form action="get_task.php" method="post"><input type="hidden" name="id" value="'.$Row['ID'].'"/><input type="hidden" name="lang" value="c"/><input type="submit" value="Свали като .cpp" /></form>';
}
$body .= $this->showAnswers($ID);
} else {
$body .= '<div style="color:red; text-align:center; margin: 10px;">За да видите решението трябва да влезете като потребител или да се регистрирате от <a href="index.php?page=register">тук</a></div>';
}
if($_SESSION['loged_in_user']) {$body .="<div style=\"text-align:center; margin-top: 10px;\"><a href=\"tasks.php?page=answer&id=".$ID."\">[Предложи решение]</a> <a href=\"tasks.php?page=mark&id=".$Row['ID']."\">"; if ($this->Is_Marked($Row['ID'])) $body .="[Маркирай като нерешена задача]"; else $body .="[Маркирай като решена задача]"; $body .="</a> <a href=\"report_bug.php?action=task\">[Съобщи за грешна задача/решение]</a> <a href=\"tasks.php?page=list&id=".$Row['ID']."\">"; if ($this->Is_List($Row['ID']))$body .= "<br />[Премахни от списък \"чакащи за решение\"]"; else $body .="<br />[Постави в списък \"чакащи за решение\"]"; $body .="</a></div><br /><br />"; }
if($_SESSION['loged_in_user']) $body .= $this->vote($Row[ID]).$this->show_comments($Row[ID]).$this->info.$this->post_comment($Row[ID]);
} else {
$body = message(25, 'error');
}
} else {
$body = message(25, 'error');
}
return $body;
}
function Levels(){
//Use Database class
$this->Database = new Database();
$this->Database->MySQLExec("SELECT * FROM `tasks_levels`");
$body .= '<h1>Задачи://Нива</h1><div style="float: left; width: 100%; margin-top: 20px;">';
while ($Row = $this->Database->MySQLFetchRow()){
$body .= '<div class="blockFull"><div class="blockTop"></div>
<div class="blockCenter">
<a href="tasks.php?page=categories&level='.$Row['ID'].'">'.$Row['Name'].'</a>
</div>
<div class="blockBottom"></div></div>';
}
$body .= '</div>';
return $body;
}
function Categories($level){
//Use Database class
$this->Database = new Database();
if(is_numeric($level)){
$this->Database->MySQLExec("SELECT * FROM `tasks_levels` WHERE `ID` = '".$level."'");
if($this->Database->MySQLAffectRows() == 1){
$this->Database->MySQLExec("SELECT * FROM `tasks_categories`");
$body .= '<h1>Задачи://Категории</h1><div style="float: left; width: 100%; margin-top: 20px;">';
while ($Row = $this->Database->MySQLFetchRow()){
$result = mysql_query("SELECT * FROM `tasks` WHERE `Category` = '".$Row[ID]."' AND `Level` = '".$level."'");
$i=0;
while ($rec = mysql_fetch_assoc($result)) {
$i++;
}
$body .='<div class="blockFull"><div class="blockTop"></div>
<div class="blockCenter">
<span style="float:left; width: 80%;"><a href="tasks.php?page=tasks&category='.$Row['ID'].'&level='.$level.'">'.$Row['Name'].'</a></span><span style="float:right; margin-right: 10px;">('.$i.' зад.) </span>
</div>
<div class="blockBottom"></div></div>';
}
$body .= '</div>';
} else {
$body = message(22, 'text');
}
} else {
$body = message(22, 'text');
}
return $body;
}
function ShowTasks($category, $level){
//Use Database class
$this->Database = new Database();
if(is_numeric($category) && is_numeric($level)){
if (isset($_GET[paget]) && is_numeric($_GET[paget])) { $page = $_GET[paget]; } else { $page=1; };
$tasks_page = 8;
$start_from = ($page-1) * $tasks_page;
$this->Database->MySQLExec("SELECT * FROM `tasks` WHERE `Category` = '".$category."' AND `Level` = '".$level."' AND `publish` = '1' LIMIT $start_from, $tasks_page ");
$result = mysql_query("SELECT * FROM `tasks_categories` WHERE `ID` = '".$category."'");
$rec = mysql_fetch_assoc($result);
$body .= "<h1 style=\"margin-bottom: 30px;\">Ниво ";
if ($level == 1) $body .= "A";
elseif($level == 2) $body .= "Б";
elseif($level == 3) $body .= "В";
else $body .= $level;
$body .= "://Раздел: \"$rec[Name]\"</h1>";
if($this->Database->MySQLAffectRows() > 0){
$j=1;
while ($Row = $this->Database->MySQLFetchRow()){
switch ($j) {
case 1:
$top = "taskTop";
$bottom = "taskBottom";
break;
case 2:
$top = "taskTop";
$bottom = "taskBottomLeft";
break;
case 3:
$top = "taskTopBottomLeft";
$bottom = "taskBottomBottom";
break;
case 4:
$top = "taskTopBottomRight";
$bottom = "taskBottomBottom";
break;
}
$body .= '<div class="taskAll"><div class="'.$top.'"></div>
<div class="taskCenter">
<a href="tasks.php?page=show&task='.$Row['ID'].'">'.filter(cutString($Row['Description_Pascal'], 170)).'</a>
</div>
<div class="'.$bottom.'"></div></div>';
if($j == 4) { $j=1; }else { $j++;}
}
$sql = "SELECT COUNT(ID) FROM `tasks` WHERE `Category` = '".$category."' AND `Level` = '".$level."' AND `publish` = '1'";
$rs_result = mysql_query($sql);
$row = mysql_fetch_row($rs_result);
$total_records = $row[0];
$total_pages = ceil($total_records / $tasks_page);
$body .= "<div style=\"display:block; clear:both; text-align:center;\">Страница <br />";
for ($i=1; $i<=$total_pages; $i++) {
$body .= "<a href=\"$_SERVER[PHP_SELF]?page=tasks&category=$category&level=$level&paget=".$i."\">".$i."</a> ";
}
$body .= "</div>";
} else {
$body .= message(24, 'text');
}
} else {
$body = message(23, 'text');
}
return $body;
}
function Delete($ID){
$this->Database = new Database();
$this->Database->MySQLExec("DELETE FROM `tasks` WHERE `ID` = '".$ID."'");
return '<p>Задачата е изтрита. <a href="tasks.php">Назад</a></p>';
}
function edit($ID){
$this->Database = new Database;
$this->Database->MySQLExec("SELECT * FROM `tasks` WHERE `ID` = '".$ID."'");
$Row = $this->Database->MySQLFetchRow();
$body .= '<h1>Редактиране на задача</h1>';
$body .= '<form action="tasks.php?page=update" method="post" id="bbcode">';
$body .= '<p>Ниво на задачите</p>';
$body .= $this->showEditLevels($ID);
$body .= '<p>Категория на задачите</p>';
$body .= $this->showEditCategories($ID);
$body .='
<p>Описание на задачата на Pascal</p>'.editor('description_Pascal').'
<textarea name="description_Pascal" rows="10" cols="77" id="description_Pascal">'.$Row['Description_Pascal'].'</textarea>
<p>Решение на задачата на Pascal</p>
<textarea name="Answer_Pascal" rows="10" cols="77">'.$Row['Answer_Pascal'].'</textarea><br />
<p>Описание на задачата на C</p>'.editor('description_C').'
<textarea name="description_C" rows="10" cols="77" id="description_C">'.$Row['Description_C'].'</textarea><br />
<p>Решение на задачата на C</p>
<textarea name="Answer_C" rows="10" cols="77" id="Answer_C">'.$Row['Answer_C'].'</textarea><br />
<input type="hidden" name="task_ID" value="'.$ID.'" />
<input type="submit" value="Добави" />
</form>';
return $body;
}
function update($description_Pascal, $description_C, $Answer_Pascal, $Answer_C, $categories, $levels, $ID){
$this->Database = new Database;
$this->Database->MySQLExec("UPDATE `tasks` SET `Description_Pascal` = '$description_Pascal', `Description_C` = '$description_C', `Answer_Pascal` = '$Answer_Pascal', `Answer_C` = '$Answer_C', `Category` = '$categories', `Level` = '$levels' WHERE `ID` = '$ID'");
return '<p>Задачата е редактирана. <a href="tasks.php?page=show&task='.$ID.'">Назад</a></p>';
}
function Answer($ID){
$this->Database = new Database();
if(is_numeric($ID)){
$this->Database->MySQLExec("SELECT `ID` FROM `tasks` WHERE `ID` = '".$ID."' AND `publish` = '1'");
if($this->Database->MySQLAffectRows() == 1){
$Row = $this->Database->MySQLFetchRow();
$body = '<h1>Предложи решение на задачата</h1>
<form action="tasks.php?page=submitAnswer" method="post">
'.editor('code').'
<textarea rows="10" cols="70" name="code" id="code" /></textarea>
<input type="hidden" name="taskID" value="'.$ID.'" />
<p><input type="submit" value="Предложи" /></p>
</form>
';
} else {
$body = message(25, 'error');
}
} else {
$body = message(25, 'error');
}
return $body;
}
function submitAnswer($code, $id){
$this->Database = new Database();
$matches = strstr($code, "[pre class='sh_pascal']");
/*preg_match("[pre class='sh_pascal']", $code, $matches, PREG_OFFSET_CAPTURE);*/
if($matches == False) $lang = 'C'; else $lang = 'Pascal';
$this->Database->MySQLExec("INSERT INTO `tasks_answers` VALUES ('', '".$id."', '".$code."', '".$_SESSION['loged_in_user']."', '".$lang."', '0')");
return '<p>Решението е предложено! <a href="tasks.php?page=show&task='.$id.'">Назад</a></p>';
}
function delAnswer($id){
$this->Database = new Database();
$this->Database->MySQLExec("DELETE FROM `tasks_answers` WHERE `ID` = '".$id."'");
return '<p>Решението е изтрито! <a href="javascript: history.go(-1);">Назад</a></p>';
}
function editAnswer($id){
$this->Database = new Database();
$this->Database->MySQLExec("SELECT * FROM `tasks_answers` WHERE `ID` = '".$id."'");
$Row = $this->Database->MySQLFetchRow();
$body = '<h1>Редактирай решение на задачата</h1>
<form action="tasks.php?page=updateAnswer" method="post">
'.editor('code').'
<textarea rows="10" cols="70" name="code" id="code" />'.$Row['Answer'].'</textarea>
<input type="hidden" name="taskID" value="'.$Row['ID'].'" />
<p><input type="submit" value="Редактирай" /></p>
</form>
';
return $body;
}
function updateAnswer($code, $id){
$this->Database = new Database();
preg_match("[pre class='sh_pascal']", $code, $matches);
if($matches != '') $lang = 'Pascal'; else $lang = 'C';
$this->Database->MySQLExec("UPDATE `tasks_answers` SET `Answer` = '".$code."', `Language` = '".$lang."' WHERE `ID` = '".$id."'");
return '<p>Решението е редактирано! <a href="javascript: history.back(-1);">Назад</a></p>';
}
function showAnswers($taskID){
$this->Database = new Database();
$this->Database->MySQLExec("SELECT * FROM `tasks_answers` WHERE `TaskID` = '".$taskID."' AND `Language` = '".changeLang()."' AND `Published` = '1'");
if($this->Database->MySQLAffectRows() > 0){
$body = '<h1>Решения предложени от потребителите:</h1>';
while($Row = $this->Database->MySQLFetchRow()){
$body .= '
<div style="width: 100%; height: auto; float left;">
'.filter($Row['Answer']).'
<p><strong>Автор:</strong> '.$Row['Author'].'</p>
<a href="tasks.php?page=editAnswer&task='.$Row['ID'].'" title="Редактирай задачата">Редактирай</a>
<a href="tasks.php?page=delAnswer&task='.$Row['ID'].'" title="Изтрий задачата">Изтрий </a>
</div>';
}
}
return $body;
}
}
?>