Advertisement
Guest User

Untitled

a guest
Sep 15th, 2015
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.64 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\CoreModule\Model;
  4.  
  5. use App\Model\BaseManager;
  6. use Nette\Database\Table\Row;
  7. use Nette\Database\Table\Selection;
  8. use Nette\Utils\ArrayHash;
  9.  
  10. /**
  11.  * Třída poskytuje metody pro správu článků v redakčním systému.
  12.  * @package App\CoreModule\Model
  13.  */
  14. class ArticleManager extends BaseManager
  15. {
  16.     /** Konstanty pro manipulaci s modelem. */
  17.     const
  18.         TABLE_NAME = 'article',
  19.         COLUMN_ID = 'article_id',
  20.         COLUMN_URL = 'url';
  21.  
  22.     /**
  23.      * Vrátí seznam článků v databázi.
  24.      * @return Selection seznam článků
  25.      */
  26.     public function getArticles()
  27.     {
  28.         return $this->database->table(self::TABLE_NAME)->order(self::COLUMN_ID . ' DESC');
  29.     }
  30.  
  31.     /**
  32.      * Vrátí článek z databáze podle jeho URL.
  33.      * @param string $url URl článku
  34.      * @return bool|mixed|IRow první článek, který odpovídá URL nebo false při neúspěchu
  35.      */
  36.     public function getArticle($url)
  37.     {
  38.         return $this->database->table(self::TABLE_NAME)->where(self::COLUMN_URL, $url)->fetch();
  39.     }
  40.  
  41.     /**
  42.      * Uloží článek do systému. Pokud není nastaveno ID, vloží nový, jinak provede editaci.
  43.      * @param array|ArrayHash $article článek
  44.      */
  45.     public function saveArticle($article)
  46.     {
  47.         if(!$article[self::COLUMN_ID])
  48.             $this->database->table(self::TABLE_NAME)->insert($article);
  49.         else
  50.             $this->database->table(self::TABLE_NAME)->where(self::COLUMN_ID, $article[self::COLUMN_ID])->update($article);
  51.     }
  52.  
  53.     /**
  54.      * Odstraní článek.
  55.      * @param string $url URL článku
  56.      */
  57.     public function removeArticle($url)
  58.     {
  59.         $this->database->table(self::TABLE_NAME)->where(self::COLUMN_URL, $url)->delete();
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement