Example #1
0
 /**
  *  Funkce pro vykreslení obsahu stránky
  */
 public function display($content)
 {
     $currentUser = CurrentUser::getInstance();
     $title = $this->controller->getTitle();
     echo '<!DOCTYPE html>
       <html>
         <head>
           <meta charset="utf-8" />
           <title>' . (!empty($title) ? htmlspecialchars($title) . ' | ' : '') . 'Ukázkový jednoduchý blog</title>
           <link rel="stylesheet" href="' . BASE_URL . '/resources/css/main.css" type="text/css" />
           <link rel="stylesheet" href="' . BASE_URL . '/resources/css/nette.css" type="text/css" />
         </head>
         <body>
           <header>
             <h1><a href="' . BASE_URL . '">Jednoduchý blog</a></h1>
             <div id="currentUser">';
     if ($currentUser->isLoggedIn()) {
         echo 'Přihlášený uživatel: <strong>' . $currentUser->name . '</strong> (' . $currentUser->email . ')
                       <a href="' . BASE_URL . '/user/logout">Odhlásit se...</a>';
     } else {
         echo '<a href="' . BASE_URL . '/user/login">Přihlásit se...</a>';
     }
     echo '      </div>
           </header>';
     #region nav
     if (!empty($this->controller->categories)) {
         echo '<nav><ul>';
         foreach ($this->controller->categories as $categoryItem) {
             echo '<li><a href="' . BASE_URL . '/article/list?category=' . $categoryItem->id . '" ' . (!empty($this->controller->currentCategory) && $this->controller->currentCategory == $categoryItem->id ? 'class="active"' : '') . '>' . htmlspecialchars($categoryItem->name) . '</a></li>';
         }
         echo '</ul></nav>';
     }
     #endregion nav
     echo '    <section id="main">';
     #region info zprávy
     $infoMessages = $this->controller->getInfoMessages();
     if (!empty($infoMessages['info'])) {
         echo '<div class="flash"><ul>';
         foreach ($infoMessages['info'] as $infoMessage) {
             echo ' <li>' . $infoMessage . '</li>';
         }
         echo '  </ul></div>';
     }
     if (!empty($infoMessages['error'])) {
         echo '<div class="flash error"><ul>';
         foreach ($infoMessages['error'] as $infoMessage) {
             echo ' <li>' . $infoMessage . '</li>';
         }
         echo '  </ul></div>';
     }
     #endregion info zprávy
     echo $content;
     echo '    </section>';
     echo '<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
       <script type="text/javascript" src="' . BASE_URL . '/resources/js/tinymce/tinymce.min.js"></script>
       <script type="text/javascript" src="' . BASE_URL . '/resources/js/tinymce/jquery.tinymce.min.js"></script>
       <script type="text/javascript" src="' . BASE_URL . '/resources/js/main.js"></script>';
     echo '</body></html>';
 }
Example #2
0
 /**
  * Funkce pro zobrazení view
  */
 function display()
 {
     /** @var CurrentUser $currentUser */
     $currentUser = CurrentUser::getInstance();
     echo '<article>';
     echo '<h1>' . htmlspecialchars($this->article->title) . '</h1>';
     if ($currentUser->hasAccess('article', 'edit')) {
         echo '<a href="' . BASE_URL . '/article/edit?id=' . $this->article->id . '">upravit článek</a>';
     }
     echo '<dl class="articleInfo">
         <dt>Kategorie:</dt>
         <dd><a href="' . BASE_URL . '/article/list?category=' . $this->article->category . '">' . htmlspecialchars($this->article->categoryName) . '</a></dd>
         <dt>Autor:</dt>
         <dd>' . htmlspecialchars($this->article->authorName) . '</dd>
       </dl>';
     echo $this->article->getFullContent();
     echo '</article>';
 }
Example #3
0
 /**
  * Funkce pro zobrazení view
  */
 function display()
 {
     /** @var CurrentUser $currentUser */
     $currentUser = CurrentUser::getInstance();
     echo '<h1>' . htmlspecialchars($this->category->name) . '</h1>';
     if ($currentUser->hasAccess('article', 'add')) {
         echo '<a href="' . BASE_URL . '/article/add?category=' . $this->category->id . '">přidat článek...</a>';
     }
     if (!empty($this->articles)) {
         foreach ($this->articles as $article) {
             echo '<article>
             <h2><a href="' . BASE_URL . '/article/show?id=' . $article->id . '">' . htmlspecialchars($article->title) . '</a></h2>
             ' . $article->perex . '
           </article>';
         }
     } else {
         echo '<p>Nebyly nalezeny žádné články</p>';
     }
 }
Example #4
0
session_start();
require_once './application/config.php';
require_once './application/library/Autoloader.php';
\Blog\Library\Autoloader::registerSplAutoload();
if (@$_REQUEST['controller'] != '') {
    $controllerName = ucfirst(trim($_REQUEST['controller'])) . 'Controller';
} else {
    $controllerName = 'HomepageController';
    $_REQUEST['controller'] = 'default';
}
if (isset($_REQUEST['action'])) {
    $action = trim($_REQUEST['action']) . 'Action';
} else {
    $action = 'defaultAction';
}
$currentUser = \Blog\Library\CurrentUser::getInstance();
//overeni existence controlleru a jeho spusteni
//vytvoření controlleru a kontrola, jestli existuje požadovaná metoda
if (\Blog\Library\Autoloader::controllerExists($controllerName)) {
    $controllerName = '\\Blog\\Controllers\\' . $controllerName;
    /** @var \Blog\Library\Controller $controller  */
    $controller = new $controllerName();
    if (method_exists($controller, $action)) {
        //kontrola přístupu
        if ($currentUser->hasAccess($_REQUEST['controller'], @$_REQUEST['action'])) {
            $controller->{$action}();
        } elseif (!$currentUser->isLoggedIn()) {
            //zobrazime vyzvu pro prihlaseni
            $controller->addInfoMessage('Pro zobrazení požadovaného modulu se musíte přihlásit.');
            $controller->setRedirect(BASE_URL . '/user/login');
        } else {
Example #5
0
 /**
  * Akce pro úpravu článku
  */
 public function editAction()
 {
     /** @var ArticlesModel $articlesModel */
     $articlesModel = ArticlesModel::getInstance();
     if (!($article = $articlesModel->find(@$_REQUEST['id'], true))) {
         $this->generateError(404, 'Požadovaný obsah nebyl nalezen.');
         return;
     }
     if (!empty($_POST['id']) && $this->checkEditForm($article)) {
         /** @var CurrentUser $currentUser */
         $currentUser = CurrentUser::getInstance();
         $article->author = $currentUser->id;
         if ($articlesModel->save($article)) {
             $this->addInfoMessage('Článek byl úspěšně uložen.');
         } else {
             $this->addInfoMessage('Článek nebyl uložen.', 'error');
         }
         $this->setRedirect('/article/show?id=' . $article->id);
     }
     $this->currentCategory = $article->category;
     $this->setTitle('Úprava článku');
     /** @var Article_EditView $view */
     $view = $this->getView('edit');
     $view->formError = $this->formErrors;
     $view->article = $article;
     $view->categories = $this->categories;
     $view->display();
 }
Example #6
0
 /**
  * Akce pro registraci uživatele
  */
 public function registerAction()
 {
     $this->setTitle('Zaregistrovat se...');
     if (!empty($_POST)) {
         $user = new User();
         if ($this->checkRegisterForm($user)) {
             //formulář je v pořádku - zaregistrujeme uživatele
             if ($this->usersModel->save($user)) {
                 $this->usersModel->sendRegistrationMail($user);
                 CurrentUser::login($user);
                 $this->addInfoMessage('Registrace byla úspěšně dokončena.');
             } else {
                 $this->addInfoMessage('Uživatelský účet nebyl vytvořen.', 'error');
             }
             $this->setRedirect(BASE_URL);
         }
     }
     /** @var User_RegisterView $view */
     $view = $this->getView('register');
     $view->email = @$_REQUEST['email'];
     $view->name = @$_REQUEST['name'];
     $view->formError = @$this->formErrors;
     $view->display();
 }