Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.52 KB | None | 0 0
  1. <?php
  2. namespace Model;
  3.  
  4. class Version
  5. {
  6.     /**
  7.      * Vrátí verzi článku podle URL
  8.      * @param String[$url] URL
  9.      * @access public
  10.      * @return PDOStatement Výsledek dotazu
  11.      */
  12.     public function getByUrl( $url )
  13.     {
  14.         return Database::parameters("
  15.             SELECT * FROM `version`
  16.             INNER JOIN `article`
  17.             ON `version`.`article_id` = `article`.`id`
  18.             WHERE
  19.             `version`.`url` = ?
  20.             ORDER BY `version`.`id` DESC LIMIT 1
  21.         ", array($url));
  22.     }
  23.  
  24.     /**
  25.      * Vrátí verzi článku podle Id
  26.      * @param String[$url] id
  27.      * @access public
  28.      * @return PDOStatement Výsledek dotazu
  29.      */
  30.     public function getById( $id )
  31.     {
  32.         return Database::parameters("
  33.             SELECT * FROM `version`
  34.             INNER JOIN `article`
  35.             ON `version`.`article_id` = `article`.`id`
  36.             WHERE
  37.             `version`.`id` = ?
  38.             ORDER BY `version`.`id` DESC LIMIT 1
  39.         ", array($id));
  40.     }
  41.  
  42.     /**
  43.      * Vrátí verzi článku podle Id článku
  44.      * @param String[$url] Id článku
  45.      * @access public
  46.      * @return PDOStatement Výsledek dotazu
  47.      */
  48.     public function getByArticleId( $article_id )
  49.     {
  50.         return Database::parameters("
  51.             SELECT * FROM `version`
  52.             WHERE
  53.             `article_id` = ?
  54.         ", array($article_id));
  55.     }
  56.  
  57.     /**
  58.      * Vrátí verzi článku podle ID rodiče
  59.      * @param Integer[$parentId] ID rodiče
  60.      * @access public
  61.      * @return PDOStatement Výsledek dotazu
  62.      */
  63.     public function getByParent( $parentId )
  64.     {
  65.         return Database::parameters("
  66.             SELECT * FROM `version`
  67.             WHERE `parent` = ? AND id IN (
  68.               SELECT MAX(id) FROM version
  69.               GROUP BY article_id
  70.             )
  71.         ", array($parentId));
  72.     }
  73.  
  74.     /**
  75.      * Vrátí rodiče
  76.      * @param Integer[$parentId] ID rodiče
  77.      * @access public
  78.      * @return PDOStatement Výsledek dotazu
  79.      */
  80.     public function getParent( $parentId )
  81.     {
  82.         return Database::parameters("
  83.             SELECT *
  84.             FROM `version`
  85.             WHERE `article_id` = ?
  86.             ORDER BY `id` DESC LIMIT 1
  87.         ", array($parentId));
  88.     }
  89.  
  90.     /**
  91.      * Vrátí rodiče
  92.      * @param Integer[$parentId] URL rodiče
  93.      * @access public
  94.      * @return PDOStatement Výsledek dotazu
  95.      */
  96.     public function getParentURL( $parentURL )
  97.     {
  98.         return Database::parameters("
  99.             SELECT *
  100.             FROM `version`
  101.             WHERE `url` = ?
  102.             ORDER BY `id` DESC LIMIT 1
  103.         ", array($parentURL));
  104.     }
  105.  
  106.     /**
  107.      * Vytvoří novou verzi článku
  108.      * @param Array()[$values] Hodnoty pro vložení
  109.      * @access public
  110.      * @return PDOStatement Výsledek dotazu
  111.      */
  112.     public function newVersion( $values )
  113.     {
  114.         return Database::parameters("
  115.             INSERT INTO `version`
  116.             (`article_id`, `author_id`, `parent`, `url`, `title`, `content`)
  117.             VALUES
  118.             (?, ?, ?, ?, ?, ?)
  119.         ", array(
  120.             $values["article_id"],
  121.             $values["author_id"],
  122.             $values["parent"],
  123.             $values["url"],
  124.             $values["title"],
  125.             $values["content"]
  126.         ));
  127.     }
  128.  
  129.     /**
  130.      * Vytvoří nový článek
  131.      * @param Boolean[$editable] Je článek upravitelný?
  132.      * @access public
  133.      * @return PDOStatement Výsledek dotazu
  134.      */
  135.     public function newArticle( $editable )
  136.     {
  137.         return Database::parameters("
  138.             INSERT INTO `article`
  139.             (`editable`)
  140.             VALUES
  141.             (?)
  142.         ", array(
  143.             $editable
  144.         ));
  145.     }
  146.  
  147.     /**
  148.      * Vybere podle limitu
  149.      * @param Integer Limit
  150.      * @access public
  151.      * @return PDOStatement Výsledek dotazu
  152.      */
  153.     public function getByLimit( $limit )
  154.     {
  155.         $sql = Database::$connection->prepare("
  156.             SELECT * FROM `version`
  157.             WHERE
  158.             id IN (
  159.               SELECT MAX(id) FROM version
  160.               GROUP BY article_id
  161.             )
  162.             LIMIT :limit");
  163.  
  164.         $sql->bindParam( ":limit", $limit, \PDO::PARAM_INT );
  165.         $sql->execute();
  166.         return $sql;
  167.     }
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement