Example #1
0
 public function process($parameters)
 {
     //do control panela maju pristup len prihlaseny uzivatelia
     $this->checkUser();
     $noticeManager = new NoticeManager();
     $userManager = new UserManager();
     $loggedUser = $userManager->returnUser();
     //zadane URL pre odhlasenie
     if (!empty($parameters[0]) && $parameters[0] == 'odhlasit') {
         $userManager->logOut();
         $this->redirect('prihlasenie');
     }
     //zadane URL pre zobrazenie rozpisanych clankov redaktora alebo admina
     if (!empty($parameters[0]) && $parameters[0] == 'moje-clanky') {
         //ak je prihlaseny redaktor alebo admin
         if ($loggedUser['admin'] == 1 || $loggedUser['admin'] == 2) {
             $articleManager = new ArticleManager();
             $unpublishedArticles = $articleManager->returnUnpublishedArticles();
             //vybratie iba tych nepublikovanych clankov, ktorych autor je momentalne prihlaseny uzivatel
             $userArticles = array();
             foreach ($unpublishedArticles as $article) {
                 if ($article['author'] == $loggedUser['name']) {
                     $userArticles[] = $article;
                 }
             }
             //ak nie su ziadne clanky na zobrazenie
             if (sizeof($userArticles) == 0) {
                 $this->createMessage('Žiadne články na zobrazenie', 'info');
             }
             $this->data['userArticles'] = $userArticles;
             $this->head['title'] = 'Moje články';
             $this->view = 'myArticles';
         }
     }
     //ak bol odoslany formular s novym oznamom
     if (isset($_POST['newNoticeSubmit'])) {
         //overenie ci je prihlaseny admin
         $this->checkUser(true);
         if (isset($_POST['noticeField'])) {
             $noticeManager->addNotice($_POST['noticeField']);
             $this->createMessage('Oznam bol úspešne uložený', 'success');
             $this->redirect('panel');
         }
     }
     //zadane URL pre odstranenie oznamu
     if (!empty($parameters[1]) && $parameters[1] == 'odstranit') {
         //overenie ci je prihlaseny admin
         $this->checkUser(true);
         //odstran oznam s danym ID
         $noticeManager->removeNotice($parameters[0]);
         $this->redirect('panel');
     }
     //ak je zadane URL pre odstranenie uzivatelskeho uctu
     if (!empty($parameters[1]) && $parameters[1] == 'odstranit-ucet') {
         if ($parameters[0] == $loggedUser['name']) {
             $userManager->deleteUser($parameters[0]);
         } else {
             $this->redirect('chyba');
         }
         $this->createMessage('Váš účet bol odstránený zo systému. Ďakujeme', 'warning');
         $userManager->logOut();
         $this->redirect('');
     }
     //zadane URL pre zobrazenie control panelu
     if (empty($parameters[0])) {
         $user = $userManager->returnUser();
         //oznamy
         $this->data['notices'] = $noticeManager->returnNotices();
         //data pre sablonu
         $this->data['admin'] = $user['admin'];
         $this->data['user'] = $user['name'];
         $messageManager = new MessageManager();
         $this->data['receivedMessages'] = $messageManager->returnReceivedMessages($user['name']);
         $this->data['sentMessages'] = $messageManager->returnSentMessages($user['name']);
         //nastavenie sablony a title
         $this->view = 'controlPanel';
         $this->head['title'] = 'Ovládací panel';
     }
 }
Example #2
0
 public function process($parameters)
 {
     $articleManager = new ArticleManager();
     $userManager = new UserManager();
     $commentManager = new CommentManager();
     $validation = new Validation();
     $user = $userManager->returnUser();
     $this->data['admin'] = $user['admin'];
     //ak je zadane URL pre clanok, uloz clanok do premennej $article
     if (!empty($parameters[0]) && $parameters[0] != 'page' && $parameters[0] != 'unpublished') {
         $article = $articleManager->returnArticle($parameters[0]);
     }
     //nie je zadane url clanku, tak vypise zoznam clankov
     if (empty($parameters[0])) {
         $articles = $articleManager->returnPublicArticles(0);
         $this->data['articles'] = $validation->statusOfArticles($articles);
         //zisti pocet clankov, a pripravi pocet stran
         $countArticles = sizeof($articles);
         $modulo = $countArticles % 5;
         if ($modulo == 0) {
             $this->data['pages'] = $countArticles / 5;
         } else {
             $this->data['pages'] = intval($countArticles / 5 + 1);
         }
         $this->data['currentPage'] = 1;
         //aktualna strana
         $this->view = 'articles';
     }
     //ak je zadane URL pre zobrazenie nepublikovanych clankov
     if (!empty($parameters[0]) && $parameters[0] == 'unpublished') {
         $articles = $articleManager->returnUnpublishedArticles();
         $this->data['articles'] = $validation->statusOfArticles($articles);
         $this->view = 'articles';
     }
     //ak je zadane URL pre zobrazenie konkretnej strany
     if (!empty($parameters[0]) && $parameters[0] == 'page') {
         //ak je zadane cislo strany
         if (!empty($parameters[1]) && is_numeric($parameters[1])) {
             if ($parameters[1] == 1) {
                 $offset = 0;
             } else {
                 $offset = $parameters[1] * 5 - 5;
             }
             //zisti pocet clankov, a pripravi pocet stran
             $articles = $articleManager->returnPublicArticles(0);
             //vsetky clanky
             $countArticles = sizeof($articles);
             $modulo = $countArticles % 5;
             if ($modulo == 0) {
                 $this->data['pages'] = $countArticles / 5;
             } else {
                 $this->data['pages'] = intval($countArticles / 5 + 1);
             }
             $this->data['currentPage'] = $parameters[1];
             //aktualna strana
             //vratenie clankov s pozadovanym offsetom
             $articles = $articleManager->returnPublicArticles($offset);
             $this->data['articles'] = $validation->statusOfArticles($articles);
             $this->view = 'articles';
         } else {
             $this->redirect('clanky');
         }
     }
     //ak je zadane URL pre zmazanie clanku
     if (!empty($parameters[1]) && $parameters[1] == 'odstranit' && $parameters[0] != 'page') {
         //overi ci clanok z URL existuje
         if (!$article) {
             $this->redirect('chyba');
         }
         //overi ci je prihlaseny admin
         $this->checkUser(true);
         $articleManager->deleteArticle($parameters[0]);
         $this->createMessage('Článok bol odstránený', 'success');
         $this->redirect('clanky');
     }
     //ak je zadane URL pre zmazanie komentara
     if (!empty($parameters[0]) && !empty($parameters[1]) && $parameters[1] == 'odstranit-komentar' && !empty($parameters[2])) {
         //overi ci clanok z URL existuje
         if (!$article) {
             $this->redirect('chyba');
         }
         $this->checkUser(true);
         //overi ci je prihlaseny admin
         $commentManager->deleteComment($parameters[2]);
         $this->createMessage('Komentár bol odstránený', 'success');
     }
     //ak je zadane URL clanku
     if (!empty($parameters[0]) && $parameters[0] != 'page' && $parameters[0] != 'unpublished') {
         //ak nebol clanok na zadanej URL najdeny
         //alebo ak uzivatel nie je admin a clanok nie je publikovany
         //presmeruj na chybove hlasenie
         if (!$article || $user['admin'] != '1' && $article['public'] == '0') {
             $this->redirect('chyba');
         }
         //ak bol odoslany komentar
         if ($_POST) {
             //ak bol spravne vyplneny antispam
             if ($_POST['year'] == date('Y')) {
                 //vyber udajov z $_POST a ich ulozenie do premennej $comment
                 $keys = array('article_id', 'comment', 'author');
                 $comment = array_intersect_key($_POST, array_flip($keys));
                 //ulozenie komentara do DB
                 $commentManager->saveComment($comment, $user['name']);
                 $this->createMessage('Váš komentár bol úspešne pridaný', 'success');
                 $this->redirect('clanky/' . $article['url']);
             } else {
                 $this->createMessage('Chybne vyplnený antispam', 'warning');
                 $this->redirect('clanky/' . $article['url']);
             }
         }
         //hlavicka stranky
         $this->head = array('title' => $article['title'], 'key_words' => $article['key_words'], 'description' => $article['description']);
         //naplnenie premennych pre sablonu
         $this->data['article'] = $article;
         $this->data['user'] = $user['name'];
         //status clanku (publikovany/nepublikovany)
         $status = $validation->statusOfArticles(array($article));
         $this->data['article']['status'] = $status[0]['status'];
         //komentare k clanku
         $this->data['comments'] = $commentManager->returnCommentsById($article['article_id']);
         //priradenie avataru uzivatela do komentarov
         $i = 0;
         foreach ($this->data['comments'] as $commentData) {
             $userData = $userManager->returnUserInfo($commentData['author']);
             $this->data['comments'][$i]['avatar'] = $userData['avatar'];
             $this->data['comments'][$i]['userRank'] = $validation->returnUserRank($userData['admin']);
             $i += 1;
         }
         //zaznamena navstevu clanku
         $articleManager->newVisit($article['article_id'], $article['visits']);
         //nastavenie sablony
         $this->view = 'article';
     }
 }
Example #3
0
 public function process($parameters)
 {
     $articleManager = new ArticleManager();
     $userManager = new UserManager();
     $commentManager = new CommentManager();
     $validation = new Validation();
     $user = $userManager->returnUser();
     $this->data['admin'] = $user['admin'];
     //ak je zadane URL pre clanok, uloz clanok do premennej $article
     if (!empty($parameters[0]) && $parameters[0] != 'page' && $parameters[0] != 'unpublished') {
         $article = $articleManager->returnArticle($parameters[0]);
     }
     //nie je zadane url clanku, tak vypise zoznam clankov
     if (empty($parameters[0])) {
         $articles = $articleManager->returnPublicArticles(0);
         $this->data['articles'] = $validation->statusOfArticles($articles);
         if (sizeof($articles) == 0) {
             $this->createMessage('Žiadne články na zobrazenie', 'info');
         }
         //zisti pocet clankov, a pripravi pocet stran
         $countArticles = sizeof($articles);
         $modulo = $countArticles % 5;
         if ($modulo == 0) {
             $this->data['pages'] = $countArticles / 5;
         } else {
             $this->data['pages'] = intval($countArticles / 5 + 1);
         }
         $this->data['currentPage'] = 1;
         //aktualna strana
         //hlavicka stranky
         $this->head = array('title' => 'Zverejnené články', 'key_words' => 'coding.wz.sk - články', 'description' => 'Zverejnené články');
         $this->view = 'articles';
     }
     //ak je zadane URL pre zobrazenie nepublikovanych clankov
     if (!empty($parameters[0]) && $parameters[0] == 'unpublished') {
         $articles = $articleManager->returnUnpublishedArticles();
         $this->data['articles'] = $validation->statusOfArticles($articles);
         if (sizeof($articles) == 0) {
             $this->createMessage('Žiadne články na zobrazenie', 'info');
         }
         //hlavicka stranky
         $this->head = array('title' => 'Nezverejnené články', 'key_words' => 'coding.wz.sk', 'description' => 'Nezverejnené články');
         $this->view = 'articles';
     }
     //ak je zadane URL pre zobrazenie konkretnej strany
     if (!empty($parameters[0]) && $parameters[0] == 'page') {
         //ak je zadane cislo strany
         if (!empty($parameters[1]) && is_numeric($parameters[1])) {
             if ($parameters[1] == 1) {
                 $offset = 0;
             } else {
                 $offset = $parameters[1] * 5 - 5;
             }
             //zisti pocet clankov, a pripravi pocet stran
             $articles = $articleManager->returnPublicArticles(0);
             //vsetky clanky
             $countArticles = sizeof($articles);
             $modulo = $countArticles % 5;
             if ($modulo == 0) {
                 $this->data['pages'] = $countArticles / 5;
             } else {
                 $this->data['pages'] = intval($countArticles / 5 + 1);
             }
             $this->data['currentPage'] = $parameters[1];
             //aktualna strana
             //vratenie clankov s pozadovanym offsetom
             $articles = $articleManager->returnPublicArticles($offset);
             $this->data['articles'] = $validation->statusOfArticles($articles);
             if (sizeof($articles) == 0) {
                 $this->createMessage('Žiadne články na zobrazenie', 'info');
             }
             //hlavicka stranky
             $this->head = array('title' => 'Zverejnené články - Strana ' . $parameters[1], 'key_words' => 'coding.wz.sk - články', 'description' => 'Zverejnené články');
             $this->view = 'articles';
         } else {
             $this->redirect('clanky');
         }
     }
     //ak je zadane URL pre zmazanie clanku
     if (!empty($parameters[1]) && $parameters[1] == 'odstranit' && $parameters[0] != 'page') {
         //overi ci clanok z URL existuje
         if (!$article) {
             $this->redirect('chyba');
         }
         //ak je clanok nepublikovany a je prihlaseny autor tohoto clanku
         if ($article['public'] == 0 && $article['author'] == $user['name']) {
             $articleManager->deleteArticle($parameters[0]);
         } else {
             //overi ci je prihlaseny admin
             $this->checkUser(true);
             $articleManager->deleteArticle($parameters[0]);
         }
         $this->createMessage('Článok bol odstránený', 'success');
         $this->redirect('clanky');
     }
     //ak je zadane URL pre publikovanie clanku
     if (!empty($parameters[1]) && $parameters[1] == 'publikovat' && $parameters[0] != 'page') {
         //overi ci clanok z URL existuje
         if (!$article) {
             $this->redirect('chyba');
         }
         //overi ci je prihlaseny admin
         $this->checkUser(true);
         $articleManager->publishArticle($article['url']);
         $this->createMessage('Článok bol publikovaný', 'success');
         $this->redirect('clanky');
     }
     //ak je zadane URL pre zmazanie komentara
     if (!empty($parameters[0]) && !empty($parameters[1]) && $parameters[1] == 'odstranit-komentar' && !empty($parameters[2])) {
         //overi ci clanok z URL existuje
         if (!$article) {
             $this->redirect('chyba');
         }
         $this->checkUser(true);
         //overi ci je prihlaseny admin
         $commentManager->deleteComment($parameters[2]);
         $this->createMessage('Komentár bol odstránený', 'success');
     }
     //ak je zadane URL clanku
     if (!empty($parameters[0]) && $parameters[0] != 'page' && $parameters[0] != 'unpublished') {
         //ak nebol clanok na zadanej URL najdeny
         if (!$article) {
             $this->redirect('chyba');
         }
         //ak uzivatel nie je admin ALEBO redaktor A clanok nie je publikovany
         if ($article['public'] == 0 && $user['admin'] == 0) {
             $this->redirect('chyba');
         }
         //ak je uzivatel redaktor A nie je autorom daneho clanku
         if ($user['admin'] == 2 && $user['name'] != $article['author'] && $article['public'] == 0) {
             $this->redirect('chyba');
         }
         //ak bol odoslany komentar
         if ($_POST) {
             //odstranenie skodliveho kodu z antispam pola
             $captchaAnswer = strip_tags($_POST['captchaAnswer']);
             //ak bol spravne vyplneny antispam
             if ($validation->checkCaptcha($_POST['captchaNumber1'], $_POST['captchaNumber2'], $captchaAnswer)) {
                 $comment['article_id'] = $_POST['article_id'];
                 $comment['author'] = $_POST['author'];
                 $comment['comment'] = htmlspecialchars($_POST['comment']);
                 //pridanie emoticonov
                 $comment['comment'] = $commentManager->addEmoticons($comment['comment']);
                 //ulozenie komentara do DB
                 $commentManager->saveComment($comment, $user['name']);
                 $this->createMessage('Váš komentár bol úspešne pridaný', 'success');
                 $this->redirect('clanky/' . $article['url']);
             } else {
                 $this->createMessage('Chybne vyplnený antispam', 'warning');
                 $this->redirect('clanky/' . $article['url']);
             }
         }
         //naplnenie premennych pre sablonu
         $this->data['article'] = $article;
         $this->data['category'] = $validation->returnCategoryName($article['category']);
         $this->data['user'] = $user['name'];
         //status clanku (publikovany/nepublikovany)
         $status = $validation->statusOfArticles(array($article));
         $this->data['article']['status'] = $status[0]['status'];
         //komentare k clanku
         $this->data['comments'] = $commentManager->returnCommentsById($article['article_id']);
         //antispam otazka
         $this->data['captcha'] = $validation->returnCaptcha();
         //priradenie avataru uzivatela do komentarov
         $i = 0;
         foreach ($this->data['comments'] as $commentData) {
             $userData = $userManager->returnUserInfo($commentData['author']);
             $this->data['comments'][$i]['avatar'] = $userData['avatar'];
             $this->data['comments'][$i]['userRank'] = $validation->returnUserRank($userData['admin']);
             $i += 1;
         }
         //zaznamena navstevu clanku
         $articleManager->newVisit($article['article_id'], $article['visits']);
         //hlavicka stranky
         $this->head = array('title' => $article['title'], 'key_words' => $article['key_words'], 'description' => $article['description']);
         $this->view = 'article';
     }
 }