public function route($params) { $userManager = new UserManager(); $user = $userManager->returnUser(); $header_menu = 'login_bar'; if (!$user) { $this->addMessage("Pro tuto akci je nutné se přihlásit"); $this->redirect("login"); } $this->header_menu = $header_menu; $this->head['title_html'] = 'Správa uživatelů'; $this->checkUser(2); //oveření, zda jde o administrátora switch ($params[0]) { case 'my': $this->redirect("user"); case 'add': $article = DBmodel::fromPOST(Article::class); // ověřím vyplnění zaslaných dat if ($article) { $articleManager->add_new_article($article); $this->addMessage("Článek byl úspěšně přidán"); } else { $this->addMessage("Článek nebyl přidán kvůlu nevyplněným údajům"); } $this->view = 'new_article'; break; default: $this->data['users'] = $userManager->return_all_users(); foreach ($this->data['users'] as $user) { if ($user['role'] == 0) { $user['color'] = "green"; } else { if ($user['role'] == 1) { $user['color'] = "purple"; } else { $user['color'] = "red"; } } } $this->view = 'users'; break; } }
public function route($params) { $userManager = new UserManager(); $user = $userManager->returnUser(); if ($user) { $this->redirect("dashboard"); } $header_menu = 'login_bar_none'; $this->head['title_html'] = 'Registrace'; if ($_POST) { $new_user = DBmodel::fromPOST(NewUser::class); // ověřím vyplnění zaslaných dat if ($new_user) { if (!filter_var($new_user->email, FILTER_VALIDATE_EMAIL)) { $this->addMessage("Zadaný email má neplatný formát"); } else { if ($new_user->password != $new_user->password2) { $this->addMessage("Zadaná hesla se neshodují"); } else { $userManager = new UserManager(); $exist = $userManager->return_users_by_login($new_user->username); if ($exist) { $this->addMessage("Účet se zadaným loginem již existuje"); } else { $userManager->register($new_user); $this->addMessage("Registrace proběhla úspěšně, nyní se můžete přihlásit"); $this->redirect("login"); } } } } else { $this->addMessage("Registrace selhala kvůli nevyplněným údajům"); } } else { $_POST = NULL; } $this->header_menu = $header_menu; $this->view = 'registration'; }
public function route($params) { $articleManager = new ArticleManager(); $userManager = new UserManager(); $user = $userManager->returnUser(); $this->data['title_html'] = ""; $header_menu = 'login_bar'; if (!$user) { $this->addMessage("Pro tuto akci je nutné se přihlásit"); $this->redirect("login"); } $this->header_menu = $header_menu; if (empty($params[0])) { $this->redirect("dashboard"); } switch ($params[0]) { case 'new': $this->checkUser(0); $_POST = NULL; $this->data['title_html'] = 'Nový článek'; $this->view = 'new_article'; break; case 'my': $this->data['title_html'] = 'Mé články'; $this->checkUser(0); if (isset($params[1])) { $article = $articleManager->return_article($params[1]); //var_dump($article); $this->data['id_article'] = $article['id_article']; $this->data['title'] = $article['title']; $this->data['authors'] = $article['authors']; $this->data['notes'] = $article['notes']; $this->data['link_pdf'] = $article['link_pdf']; $this->view = 'my_article'; } else { //$this->data['articles'] = $articleManager->return_all_articles(); $this->data['articles'] = $articleManager->return_my_articles($user['id_user']); $this->view = 'my_articles'; } break; case 'add': $this->checkUser(0); $this->data['title'] = $_POST['title']; $article = DBmodel::fromPOST(Article::class); // ověřím vyplnění zaslaných dat if ($article) { $articleManager = new ArticleManager(); $res = $articleManager->get_last_id()->fetch(); $id = "_1"; if ($res) { $id = "_" . ($res['id_article'] + 1); } $file_ok = 0; $target_dir = "pdf/"; $target_name = explode(".", $_FILES["link_pdf"]["name"])[0] . $id; $target_extension = explode(".", $_FILES["link_pdf"]["name"])[1]; $target_file = $target_dir . $target_name . "." . $target_extension; if ($target_extension != "pdf") { $this->addMessage("Nahraný dokument není ve formátu pdf"); } else { // je to pdf if (move_uploaded_file($_FILES["link_pdf"]["tmp_name"], $target_file)) { $this->addMessage("Dokument byl úspěšně nahrán na server"); $file_ok = 1; } else { $file_ok = 0; $this->addMessage("Chyba při nahrávání dokumentu na server"); } } if ($file_ok) { $article->link_pdf = $target_file; $articleManager->add_new_article($article, $user['id_user']); $this->addMessage("Článek byl úspěšně přidán"); } else { $this->addMessage("PDF dokument se nepodařilo nahrát na server <b>" . $_FILES["link_pdf"]["name"] . "</b>"); } $this->redirect("article/my"); } else { $this->addMessage("Článek nebyl přidán kvůli nevyplněným údajům"); } $this->data['title'] = $_POST['title']; $this->view = 'new_article'; break; case 'remove': $this->checkUser(0); $articleManager->delete_article_database($params[1], $user['id_user']); $this->redirect("article/my"); break; case 'manager': $this->data['title_html'] = 'Správa článků'; $this->checkUser(2); $articles = $articleManager->return_all_articles_w_reviews(); // final articles $fa = array(); foreach ($articles as $key => $a) { if (!isset($fa[$a['id_article']])) { $fa[$a['id_article']] = $a->toArray(); $fa[$a['id_article']]['reviews'] = []; } if ($a['id_review'] != null) { $fa[$a['id_article']]['reviews'][] = $a; } if (count($fa[$a['id_article']]['reviews']) == 3) { if ($fa[$a['id_article']]['reviews'][0]['accepted']) { $fa[$a['id_article']]['can_accept'] = "<span class='accepted'>Schváleno!</span>"; } else { $fa[$a['id_article']]['can_accept'] = '<input type="submit" class="btn btn-primary btn-block" value="Schválit">'; } //die(); } else { $fa[$a['id_article']]['can_accept'] = "<span class='accepted-no'>Nedostatek recenzí</span>"; } } $this->data['users'] = $userManager->return_all_users_by_role(1); $this->data['articles'] = $fa; $this->view = 'articles_editor'; break; case 'review': $this->data['title_html'] = 'Recenze článku'; if (!isset($params[1])) { $this->redirect("dashboard"); } $article = $articleManager->return_article($params[1]); $this->data['title'] = $article['title']; $this->data['authors'] = $article['authors']; $this->data['notes'] = $article['notes']; $this->data['link_pdf'] = $article['link_pdf']; $this->data['article_id_article'] = $params[1]; $this->view = 'review_article'; break; case 'add-review': $this->checkUser(1); $review = DBmodel::fromPOST(Review::class); // ověřím vyplnění zaslaných dat if ($review) { $reviewManager = new ReviewManager(); $reviewManager->add_review($review, $user['id_user']); $this->addMessage("Recenze byla úspěšně odeslána"); $this->redirect("dashboard"); } else { $this->addMessage("Recenze nebyla přidána kvůli neyplněným údajům"); } break; case 'remove-review': $this->checkUser(2); $reviewManager = new ReviewManager(); $reviewManager->delete_review($params[1]); $this->redirect("article/manager"); break; case 'add-reviewer': $this->checkUser(2); $reviewManager = new ReviewManager(); if ($reviewManager->add_reviewer($_POST['id_article'], $_POST['reviewer'])) { $this->addMessage("Recenzent byl úspěšně přidělen"); } else { $this->addMessage("Vybraný recenzent má již tento článek přidělen"); } $this->redirect("article/manager"); break; case 'accept': $this->checkUser(2); $accept = DBmodel::fromPOST(Accept::class); // ověřím vyplnění zaslaných dat if ($accept) { $reviewManager = new ReviewManager(); $reviewManager->accept_reviews($accept); $this->addMessage("Recenze byly úspěšně schváleny"); } else { $this->addMessage("Recenze nemohly být schváleny, protože jich není dostatečný počet: <b>3</b>"); } $this->redirect("article/manager"); break; case 'update': // editace článku $this->data['title_html'] = 'Úprava článku'; $this->checkUser(0); $article = DBmodel::fromPOST(Article::class); // ověřím vyplnění zaslaných dat if ($article) { $articleManager->update_article($article, $_POST['id_article']); $this->addMessage("Článek byl úspěšně upraven"); } else { $this->addMessage("Článek nebyl upraven kvůli nevyplněným údajům"); } $this->redirect("article/my/" . $_POST['id_article']); break; case 'upload': // nahrání nového PDF $this->checkUser(0); $articleManager = new ArticleManager(); $res = $articleManager->get_last_id()->fetch(); $id = "_1"; if ($res) { $id = "_" . $res['id_article']; } $target_dir = "pdf/"; $target_name = explode(".", $_FILES["fileToUpload"]["name"])[0] . $id; $target_extension = explode(".", $_FILES["fileToUpload"]["name"])[1]; $target_file = $target_dir . $target_name . "." . $target_extension; if (isset($_POST["submit"])) { if ($target_extension != "pdf") { $this->addMessage("Nahraný dokument není ve formátu pdf"); } else { // je to pdf if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { $articleManager->update_article_file($target_name . "." . $target_extension, $_POST['id_article']); $this->addMessage("Dokument byl úspěšně nahrán na server"); } else { $this->addMessage("Chyba při nahrávání dokumentu na server"); } } } $this->redirect("article/my/" . $_POST['id_article']); break; default: $this->redirect("dashboard"); break; } $this->head['title_html'] = $this->data['title_html']; }