From eb1af592194e225bf887e4893e697f0ab8dd9a26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Sun, 4 Aug 2013 20:58:31 +0200 Subject: refactoring --- inc/store/sqlite.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc/store') diff --git a/inc/store/sqlite.class.php b/inc/store/sqlite.class.php index 21081608..a15bc095 100644 --- a/inc/store/sqlite.class.php +++ b/inc/store/sqlite.class.php @@ -90,7 +90,7 @@ class Sqlite extends Store { } catch (Exception $e) { - logm('execute query error : '.$e->getMessage()); + Tools::logm('execute query error : '.$e->getMessage()); } } -- cgit v1.2.3 From 3208d538a750866221fa231d4230082eef90ca69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Mon, 5 Aug 2013 08:54:42 +0200 Subject: mysql support --- inc/store/mysql.class.php | 202 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 inc/store/mysql.class.php (limited to 'inc/store') diff --git a/inc/store/mysql.class.php b/inc/store/mysql.class.php new file mode 100644 index 00000000..78254a5f --- /dev/null +++ b/inc/store/mysql.class.php @@ -0,0 +1,202 @@ + + * @copyright 2013 + * @license http://www.wtfpl.net/ see COPYING file + */ + +class Mysql extends Store { + + public static $db_path = 'mysql:host=localhost;dbname=poche'; + public static $user = 'root'; + public static $password = 'root'; + var $handle; + + function __construct() { + parent::__construct(); + + $this->handle = new PDO(self::$db_path, self::$user, self::$password); + $this->handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + } + + private function getHandle() { + return $this->handle; + } + + public function isInstalled() { + // $sql = "SELECT name FROM sqlite_sequence WHERE name=?"; + // $query = $this->executeQuery($sql, array('config')); + // $hasConfig = $query->fetchAll(); + + // if (count($hasConfig) == 0) + // return FALSE; + + // if (!$this->getLogin() || !$this->getPassword()) + // return FALSE; + + return TRUE; + } + + public function install($login, $password) { + $this->getHandle()->exec('CREATE TABLE IF NOT EXISTS "config" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "name" VARCHAR UNIQUE, "value" BLOB)'); + + $this->handle->exec('CREATE TABLE IF NOT EXISTS "entries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "title" VARCHAR, "url" VARCHAR UNIQUE , "is_read" INTEGER DEFAULT 0, "is_fav" INTEGER DEFAULT 0, "content" BLOB)'); + + if (!$this->getLogin()) { + $sql_login = 'INSERT INTO config ( name, value ) VALUES (?, ?)'; + $params_login = array('login', $login); + $query = $this->executeQuery($sql_login, $params_login); + } + + if (!$this->getPassword()) { + $sql_pass = 'INSERT INTO config ( name, value ) VALUES (?, ?)'; + $params_pass = array('password', $password); + $query = $this->executeQuery($sql_pass, $params_pass); + } + + return TRUE; + } + + public function getLogin() { + $sql = "SELECT value FROM config WHERE name=?"; + $query = $this->executeQuery($sql, array('login')); + $login = $query->fetchAll(); + + return isset($login[0]['value']) ? $login[0]['value'] : FALSE; + } + + public function getPassword() { + $sql = "SELECT value FROM config WHERE name=?"; + $query = $this->executeQuery($sql, array('password')); + $pass = $query->fetchAll(); + + return isset($pass[0]['value']) ? $pass[0]['value'] : FALSE; + } + + public function updatePassword($password) + { + $sql_update = "UPDATE config SET value=? WHERE name='password'"; + $params_update = array($password); + $query = $this->executeQuery($sql_update, $params_update); + } + + private function executeQuery($sql, $params) { + try + { + $query = $this->getHandle()->prepare($sql); + $query->execute($params); + return $query; + } + catch (Exception $e) + { + Tools::logm('execute query error : '.$e->getMessage()); + } + } + + public function retrieveAll() { + $sql = "SELECT * FROM entries ORDER BY id"; + $query = $this->executeQuery($sql, array()); + $entries = $query->fetchAll(); + + return $entries; + } + + public function retrieveOneById($id) { + parent::__construct(); + + $entry = NULL; + $sql = "SELECT * FROM entries WHERE id=?"; + $params = array(intval($id)); + $query = $this->executeQuery($sql, $params); + $entry = $query->fetchAll(); + + return $entry[0]; + } + + public function getEntriesByView($view) { + parent::__construct(); + + switch ($_SESSION['sort']) + { + case 'ia': + $order = 'ORDER BY id'; + break; + case 'id': + $order = 'ORDER BY id DESC'; + break; + case 'ta': + $order = 'ORDER BY lower(title)'; + break; + case 'td': + $order = 'ORDER BY lower(title) DESC'; + break; + default: + $order = 'ORDER BY id'; + break; + } + + switch ($view) + { + case 'archive': + $sql = "SELECT * FROM entries WHERE is_read=? " . $order; + $params = array(1); + break; + case 'fav' : + $sql = "SELECT * FROM entries WHERE is_fav=? " . $order; + $params = array(1); + break; + default: + $sql = "SELECT * FROM entries WHERE is_read=? " . $order; + $params = array(0); + break; + } + + $query = $this->executeQuery($sql, $params); + $entries = $query->fetchAll(); + + return $entries; + } + + public function add($url, $title, $content) { + parent::__construct(); + $sql_action = 'INSERT INTO entries ( url, title, content ) VALUES (?, ?, ?)'; + $params_action = array($url, $title, $content); + $query = $this->executeQuery($sql_action, $params_action); + return $query; + } + + public function deleteById($id) { + parent::__construct(); + $sql_action = "DELETE FROM entries WHERE id=?"; + $params_action = array($id); + $query = $this->executeQuery($sql_action, $params_action); + return $query; + } + + public function favoriteById($id) { + parent::__construct(); + $sql_action = "UPDATE entries SET is_fav = IF (is_fav, 0, 1)"; + $query = $this->executeQuery($sql_action, array()); + } + + public function archiveById($id) { + parent::__construct(); + $sql_action = "UPDATE entries SET is_read = IF (is_read, 0, 1)"; + $query = $this->executeQuery($sql_action, array()); + } + + public function getLastId() { + parent::__construct(); + return $this->getHandle()->lastInsertId(); + } + + public function updateContentById($id) { + parent::__construct(); + $sql_update = "UPDATE entries SET content=? WHERE id=?"; + $params_update = array($content, $id); + $query = $this->executeQuery($sql_update, $params_update); + } +} -- cgit v1.2.3 From 6a361945eaf86a978b82bd6fb3442fe64428d9df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Mon, 5 Aug 2013 21:56:32 +0200 Subject: new design, pagination & more --- inc/store/sqlite.class.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'inc/store') diff --git a/inc/store/sqlite.class.php b/inc/store/sqlite.class.php index a15bc095..3e391e40 100644 --- a/inc/store/sqlite.class.php +++ b/inc/store/sqlite.class.php @@ -114,7 +114,7 @@ class Sqlite extends Store { return $entry[0]; } - public function getEntriesByView($view) { + public function getEntriesByView($view, $limit = '') { parent::__construct(); switch ($_SESSION['sort']) @@ -152,6 +152,8 @@ class Sqlite extends Store { break; } + $sql .= ' ' . $limit; + $query = $this->executeQuery($sql, $params); $entries = $query->fetchAll(); -- cgit v1.2.3 From 7ce7ec4c942e0a3567858ad0ec8e654000b49a3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Tue, 6 Aug 2013 14:18:03 +0200 Subject: prepare to multi users --- inc/store/sqlite.class.php | 68 +++++++++++++++++++++++----------------------- inc/store/store.class.php | 6 +--- 2 files changed, 35 insertions(+), 39 deletions(-) (limited to 'inc/store') diff --git a/inc/store/sqlite.class.php b/inc/store/sqlite.class.php index 3e391e40..3cc5276d 100644 --- a/inc/store/sqlite.class.php +++ b/inc/store/sqlite.class.php @@ -25,59 +25,59 @@ class Sqlite extends Store { } public function isInstalled() { - $sql = "SELECT name FROM sqlite_sequence WHERE name=?"; - $query = $this->executeQuery($sql, array('config')); - $hasConfig = $query->fetchAll(); + $sql = "SELECT username FROM users WHERE id=?"; + $query = $this->executeQuery($sql, array('1')); + $hasAdmin = $query->fetchAll(); - if (count($hasConfig) == 0) - return FALSE; - - if (!$this->getLogin() || !$this->getPassword()) + if (count($hasAdmin) == 0) return FALSE; return TRUE; } public function install($login, $password) { - $this->getHandle()->exec('CREATE TABLE IF NOT EXISTS "config" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "name" VARCHAR UNIQUE, "value" BLOB)'); - - $this->handle->exec('CREATE TABLE IF NOT EXISTS "entries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "title" VARCHAR, "url" VARCHAR UNIQUE , "is_read" INTEGER DEFAULT 0, "is_fav" INTEGER DEFAULT 0, "content" BLOB)'); + $sql = 'INSERT INTO users ( username, password ) VALUES (?, ?)'; + $params = array($login, $password); + $query = $this->executeQuery($sql, $params); - if (!$this->getLogin()) { - $sql_login = 'INSERT INTO config ( name, value ) VALUES (?, ?)'; - $params_login = array('login', $login); - $query = $this->executeQuery($sql_login, $params_login); - } + return TRUE; + } - if (!$this->getPassword()) { - $sql_pass = 'INSERT INTO config ( name, value ) VALUES (?, ?)'; - $params_pass = array('password', $password); - $query = $this->executeQuery($sql_pass, $params_pass); + private function getConfigUser($id) { + $sql = "SELECT * FROM users_config WHERE user_id = ?"; + $query = $this->executeQuery($sql, array($id)); + $result = $query->fetchAll(); + $user_config = array(); + + foreach ($result as $key => $value) { + $user_config[$value['name']] = $value['value']; } - return TRUE; + return $user_config; } - public function getLogin() { - $sql = "SELECT value FROM config WHERE name=?"; - $query = $this->executeQuery($sql, array('login')); + public function login($username, $password) { + $sql = "SELECT * FROM users WHERE username=? AND password=?"; + $query = $this->executeQuery($sql, array($username, $password)); $login = $query->fetchAll(); - return isset($login[0]['value']) ? $login[0]['value'] : FALSE; - } - - public function getPassword() { - $sql = "SELECT value FROM config WHERE name=?"; - $query = $this->executeQuery($sql, array('password')); - $pass = $query->fetchAll(); + $user = array(); + if (isset($login[0])) { + $user['id'] = $login[0]['id']; + $user['username'] = $login[0]['username']; + $user['password'] = $login[0]['password']; + $user['name'] = $login[0]['name']; + $user['email'] = $login[0]['email']; + $user['config'] = $this->getConfigUser($login[0]['id']); + } - return isset($pass[0]['value']) ? $pass[0]['value'] : FALSE; + return $user; } - public function updatePassword($password) + public function updatePassword($id, $password) { - $sql_update = "UPDATE config SET value=? WHERE name='password'"; - $params_update = array($password); + $sql_update = "UPDATE users SET password=? WHERE id=?"; + $params_update = array($password, $id); $query = $this->executeQuery($sql_update, $params_update); } diff --git a/inc/store/store.class.php b/inc/store/store.class.php index dd7d4cfe..5f8939b9 100644 --- a/inc/store/store.class.php +++ b/inc/store/store.class.php @@ -13,14 +13,10 @@ class Store { } - public function getLogin() { + public function login() { } - public function getPassword() { - - } - public function add() { } -- cgit v1.2.3 From 8d3275bee488d058c6ff0efe6e81d20a584d3709 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Tue, 6 Aug 2013 15:51:48 +0200 Subject: multi user --- inc/store/file.class.php | 4 --- inc/store/mysql.class.php | 7 ----- inc/store/sqlite.class.php | 75 +++++++++++++++++++++------------------------- inc/store/store.class.php | 4 --- 4 files changed, 34 insertions(+), 56 deletions(-) (limited to 'inc/store') diff --git a/inc/store/file.class.php b/inc/store/file.class.php index ad20937d..c9d85dcc 100644 --- a/inc/store/file.class.php +++ b/inc/store/file.class.php @@ -44,8 +44,4 @@ class File extends Store { public function getLastId() { } - - public function updateContentById($id) { - - } } diff --git a/inc/store/mysql.class.php b/inc/store/mysql.class.php index 78254a5f..8b7f83da 100644 --- a/inc/store/mysql.class.php +++ b/inc/store/mysql.class.php @@ -192,11 +192,4 @@ class Mysql extends Store { parent::__construct(); return $this->getHandle()->lastInsertId(); } - - public function updateContentById($id) { - parent::__construct(); - $sql_update = "UPDATE entries SET content=? WHERE id=?"; - $params_update = array($content, $id); - $query = $this->executeQuery($sql_update, $params_update); - } } diff --git a/inc/store/sqlite.class.php b/inc/store/sqlite.class.php index 3cc5276d..4c628dc1 100644 --- a/inc/store/sqlite.class.php +++ b/inc/store/sqlite.class.php @@ -57,9 +57,9 @@ class Sqlite extends Store { } public function login($username, $password) { - $sql = "SELECT * FROM users WHERE username=? AND password=?"; - $query = $this->executeQuery($sql, array($username, $password)); - $login = $query->fetchAll(); + $sql = "SELECT * FROM users WHERE username=? AND password=?"; + $query = $this->executeQuery($sql, array($username, $password)); + $login = $query->fetchAll(); $user = array(); if (isset($login[0])) { @@ -76,9 +76,9 @@ class Sqlite extends Store { public function updatePassword($id, $password) { - $sql_update = "UPDATE users SET password=? WHERE id=?"; - $params_update = array($password, $id); - $query = $this->executeQuery($sql_update, $params_update); + $sql_update = "UPDATE users SET password=? WHERE id=?"; + $params_update = array($password, $id); + $query = $this->executeQuery($sql_update, $params_update); } private function executeQuery($sql, $params) { @@ -94,27 +94,27 @@ class Sqlite extends Store { } } - public function retrieveAll() { - $sql = "SELECT * FROM entries ORDER BY id"; - $query = $this->executeQuery($sql, array()); + public function retrieveAll($user_id) { + $sql = "SELECT * FROM entries WHERE user_id=? ORDER BY id"; + $query = $this->executeQuery($sql, array($user_id)); $entries = $query->fetchAll(); return $entries; } - public function retrieveOneById($id) { + public function retrieveOneById($id, $user_id) { parent::__construct(); $entry = NULL; - $sql = "SELECT * FROM entries WHERE id=?"; - $params = array(intval($id)); + $sql = "SELECT * FROM entries WHERE id=? AND user_id=?"; + $params = array(intval($id), $user_id); $query = $this->executeQuery($sql, $params); $entry = $query->fetchAll(); return $entry[0]; } - public function getEntriesByView($view, $limit = '') { + public function getEntriesByView($view, $user_id, $limit = '') { parent::__construct(); switch ($_SESSION['sort']) @@ -139,54 +139,54 @@ class Sqlite extends Store { switch ($view) { case 'archive': - $sql = "SELECT * FROM entries WHERE is_read=? " . $order; - $params = array(-1); + $sql = "SELECT * FROM entries WHERE user_id=? AND is_read=? " . $order; + $params = array($user_id, -1); break; case 'fav' : - $sql = "SELECT * FROM entries WHERE is_fav=? " . $order; - $params = array(-1); + $sql = "SELECT * FROM entries WHERE user_id=? AND is_fav=? " . $order; + $params = array($user_id, -1); break; default: - $sql = "SELECT * FROM entries WHERE is_read=? " . $order; - $params = array(0); + $sql = "SELECT * FROM entries WHERE user_id=? AND is_read=? " . $order; + $params = array($user_id, 0); break; } $sql .= ' ' . $limit; - $query = $this->executeQuery($sql, $params); - $entries = $query->fetchAll(); + $query = $this->executeQuery($sql, $params); + $entries = $query->fetchAll(); return $entries; } - public function add($url, $title, $content) { + public function add($url, $title, $content, $user_id) { parent::__construct(); - $sql_action = 'INSERT INTO entries ( url, title, content ) VALUES (?, ?, ?)'; - $params_action = array($url, $title, $content); - $query = $this->executeQuery($sql_action, $params_action); + $sql_action = 'INSERT INTO entries ( url, title, content, user_id ) VALUES (?, ?, ?, ?)'; + $params_action = array($url, $title, $content, $user_id); + $query = $this->executeQuery($sql_action, $params_action); return $query; } - public function deleteById($id) { + public function deleteById($id, $user_id) { parent::__construct(); - $sql_action = "DELETE FROM entries WHERE id=?"; - $params_action = array($id); + $sql_action = "DELETE FROM entries WHERE id=? AND user_id=?"; + $params_action = array($id, $user_id); $query = $this->executeQuery($sql_action, $params_action); return $query; } - public function favoriteById($id) { + public function favoriteById($id, $user_id) { parent::__construct(); - $sql_action = "UPDATE entries SET is_fav=~is_fav WHERE id=?"; - $params_action = array($id); + $sql_action = "UPDATE entries SET is_fav=~is_fav WHERE id=? AND user_id=?"; + $params_action = array($id, $user_id); $query = $this->executeQuery($sql_action, $params_action); } - public function archiveById($id) { + public function archiveById($id, $user_id) { parent::__construct(); - $sql_action = "UPDATE entries SET is_read=~is_read WHERE id=?"; - $params_action = array($id); + $sql_action = "UPDATE entries SET is_read=~is_read WHERE id=? AND user_id=?"; + $params_action = array($id, $user_id); $query = $this->executeQuery($sql_action, $params_action); } @@ -194,11 +194,4 @@ class Sqlite extends Store { parent::__construct(); return $this->getHandle()->lastInsertId(); } - - public function updateContentById($id) { - parent::__construct(); - $sql_update = "UPDATE entries SET content=? WHERE id=?"; - $params_update = array($content, $id); - $query = $this->executeQuery($sql_update, $params_update); - } } diff --git a/inc/store/store.class.php b/inc/store/store.class.php index 5f8939b9..d6e63014 100644 --- a/inc/store/store.class.php +++ b/inc/store/store.class.php @@ -52,8 +52,4 @@ class Store { public function getLastId() { } - - public function updateContentById($id) { - - } } -- cgit v1.2.3 From bc1ee8524e0769ad37e3c4c02cfe96d2f60e52f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Wed, 7 Aug 2013 14:24:07 +0200 Subject: postgres --- inc/store/file.class.php | 47 ----------- inc/store/mysql.class.php | 195 -------------------------------------------- inc/store/sqlite.class.php | 197 --------------------------------------------- inc/store/store.class.php | 55 ------------- 4 files changed, 494 deletions(-) delete mode 100644 inc/store/file.class.php delete mode 100644 inc/store/mysql.class.php delete mode 100644 inc/store/sqlite.class.php delete mode 100644 inc/store/store.class.php (limited to 'inc/store') diff --git a/inc/store/file.class.php b/inc/store/file.class.php deleted file mode 100644 index c9d85dcc..00000000 --- a/inc/store/file.class.php +++ /dev/null @@ -1,47 +0,0 @@ - - * @copyright 2013 - * @license http://www.wtfpl.net/ see COPYING file - */ - -class File extends Store { - function __construct() { - - } - - public function add() { - - } - - public function retrieveOneById($id) { - - } - - public function retrieveOneByURL($url) { - - } - - public function deleteById($id) { - - } - - public function favoriteById($id) { - - } - - public function archiveById($id) { - - } - - public function getEntriesByView($view) { - - } - - public function getLastId() { - - } -} diff --git a/inc/store/mysql.class.php b/inc/store/mysql.class.php deleted file mode 100644 index 8b7f83da..00000000 --- a/inc/store/mysql.class.php +++ /dev/null @@ -1,195 +0,0 @@ - - * @copyright 2013 - * @license http://www.wtfpl.net/ see COPYING file - */ - -class Mysql extends Store { - - public static $db_path = 'mysql:host=localhost;dbname=poche'; - public static $user = 'root'; - public static $password = 'root'; - var $handle; - - function __construct() { - parent::__construct(); - - $this->handle = new PDO(self::$db_path, self::$user, self::$password); - $this->handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - } - - private function getHandle() { - return $this->handle; - } - - public function isInstalled() { - // $sql = "SELECT name FROM sqlite_sequence WHERE name=?"; - // $query = $this->executeQuery($sql, array('config')); - // $hasConfig = $query->fetchAll(); - - // if (count($hasConfig) == 0) - // return FALSE; - - // if (!$this->getLogin() || !$this->getPassword()) - // return FALSE; - - return TRUE; - } - - public function install($login, $password) { - $this->getHandle()->exec('CREATE TABLE IF NOT EXISTS "config" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "name" VARCHAR UNIQUE, "value" BLOB)'); - - $this->handle->exec('CREATE TABLE IF NOT EXISTS "entries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "title" VARCHAR, "url" VARCHAR UNIQUE , "is_read" INTEGER DEFAULT 0, "is_fav" INTEGER DEFAULT 0, "content" BLOB)'); - - if (!$this->getLogin()) { - $sql_login = 'INSERT INTO config ( name, value ) VALUES (?, ?)'; - $params_login = array('login', $login); - $query = $this->executeQuery($sql_login, $params_login); - } - - if (!$this->getPassword()) { - $sql_pass = 'INSERT INTO config ( name, value ) VALUES (?, ?)'; - $params_pass = array('password', $password); - $query = $this->executeQuery($sql_pass, $params_pass); - } - - return TRUE; - } - - public function getLogin() { - $sql = "SELECT value FROM config WHERE name=?"; - $query = $this->executeQuery($sql, array('login')); - $login = $query->fetchAll(); - - return isset($login[0]['value']) ? $login[0]['value'] : FALSE; - } - - public function getPassword() { - $sql = "SELECT value FROM config WHERE name=?"; - $query = $this->executeQuery($sql, array('password')); - $pass = $query->fetchAll(); - - return isset($pass[0]['value']) ? $pass[0]['value'] : FALSE; - } - - public function updatePassword($password) - { - $sql_update = "UPDATE config SET value=? WHERE name='password'"; - $params_update = array($password); - $query = $this->executeQuery($sql_update, $params_update); - } - - private function executeQuery($sql, $params) { - try - { - $query = $this->getHandle()->prepare($sql); - $query->execute($params); - return $query; - } - catch (Exception $e) - { - Tools::logm('execute query error : '.$e->getMessage()); - } - } - - public function retrieveAll() { - $sql = "SELECT * FROM entries ORDER BY id"; - $query = $this->executeQuery($sql, array()); - $entries = $query->fetchAll(); - - return $entries; - } - - public function retrieveOneById($id) { - parent::__construct(); - - $entry = NULL; - $sql = "SELECT * FROM entries WHERE id=?"; - $params = array(intval($id)); - $query = $this->executeQuery($sql, $params); - $entry = $query->fetchAll(); - - return $entry[0]; - } - - public function getEntriesByView($view) { - parent::__construct(); - - switch ($_SESSION['sort']) - { - case 'ia': - $order = 'ORDER BY id'; - break; - case 'id': - $order = 'ORDER BY id DESC'; - break; - case 'ta': - $order = 'ORDER BY lower(title)'; - break; - case 'td': - $order = 'ORDER BY lower(title) DESC'; - break; - default: - $order = 'ORDER BY id'; - break; - } - - switch ($view) - { - case 'archive': - $sql = "SELECT * FROM entries WHERE is_read=? " . $order; - $params = array(1); - break; - case 'fav' : - $sql = "SELECT * FROM entries WHERE is_fav=? " . $order; - $params = array(1); - break; - default: - $sql = "SELECT * FROM entries WHERE is_read=? " . $order; - $params = array(0); - break; - } - - $query = $this->executeQuery($sql, $params); - $entries = $query->fetchAll(); - - return $entries; - } - - public function add($url, $title, $content) { - parent::__construct(); - $sql_action = 'INSERT INTO entries ( url, title, content ) VALUES (?, ?, ?)'; - $params_action = array($url, $title, $content); - $query = $this->executeQuery($sql_action, $params_action); - return $query; - } - - public function deleteById($id) { - parent::__construct(); - $sql_action = "DELETE FROM entries WHERE id=?"; - $params_action = array($id); - $query = $this->executeQuery($sql_action, $params_action); - return $query; - } - - public function favoriteById($id) { - parent::__construct(); - $sql_action = "UPDATE entries SET is_fav = IF (is_fav, 0, 1)"; - $query = $this->executeQuery($sql_action, array()); - } - - public function archiveById($id) { - parent::__construct(); - $sql_action = "UPDATE entries SET is_read = IF (is_read, 0, 1)"; - $query = $this->executeQuery($sql_action, array()); - } - - public function getLastId() { - parent::__construct(); - return $this->getHandle()->lastInsertId(); - } -} diff --git a/inc/store/sqlite.class.php b/inc/store/sqlite.class.php deleted file mode 100644 index 4c628dc1..00000000 --- a/inc/store/sqlite.class.php +++ /dev/null @@ -1,197 +0,0 @@ - - * @copyright 2013 - * @license http://www.wtfpl.net/ see COPYING file - */ - -class Sqlite extends Store { - - public static $db_path = 'sqlite:./db/poche.sqlite'; - var $handle; - - function __construct() { - parent::__construct(); - - $this->handle = new PDO(self::$db_path); - $this->handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - } - - private function getHandle() { - return $this->handle; - } - - public function isInstalled() { - $sql = "SELECT username FROM users WHERE id=?"; - $query = $this->executeQuery($sql, array('1')); - $hasAdmin = $query->fetchAll(); - - if (count($hasAdmin) == 0) - return FALSE; - - return TRUE; - } - - public function install($login, $password) { - $sql = 'INSERT INTO users ( username, password ) VALUES (?, ?)'; - $params = array($login, $password); - $query = $this->executeQuery($sql, $params); - - return TRUE; - } - - private function getConfigUser($id) { - $sql = "SELECT * FROM users_config WHERE user_id = ?"; - $query = $this->executeQuery($sql, array($id)); - $result = $query->fetchAll(); - $user_config = array(); - - foreach ($result as $key => $value) { - $user_config[$value['name']] = $value['value']; - } - - return $user_config; - } - - public function login($username, $password) { - $sql = "SELECT * FROM users WHERE username=? AND password=?"; - $query = $this->executeQuery($sql, array($username, $password)); - $login = $query->fetchAll(); - - $user = array(); - if (isset($login[0])) { - $user['id'] = $login[0]['id']; - $user['username'] = $login[0]['username']; - $user['password'] = $login[0]['password']; - $user['name'] = $login[0]['name']; - $user['email'] = $login[0]['email']; - $user['config'] = $this->getConfigUser($login[0]['id']); - } - - return $user; - } - - public function updatePassword($id, $password) - { - $sql_update = "UPDATE users SET password=? WHERE id=?"; - $params_update = array($password, $id); - $query = $this->executeQuery($sql_update, $params_update); - } - - private function executeQuery($sql, $params) { - try - { - $query = $this->getHandle()->prepare($sql); - $query->execute($params); - return $query; - } - catch (Exception $e) - { - Tools::logm('execute query error : '.$e->getMessage()); - } - } - - public function retrieveAll($user_id) { - $sql = "SELECT * FROM entries WHERE user_id=? ORDER BY id"; - $query = $this->executeQuery($sql, array($user_id)); - $entries = $query->fetchAll(); - - return $entries; - } - - public function retrieveOneById($id, $user_id) { - parent::__construct(); - - $entry = NULL; - $sql = "SELECT * FROM entries WHERE id=? AND user_id=?"; - $params = array(intval($id), $user_id); - $query = $this->executeQuery($sql, $params); - $entry = $query->fetchAll(); - - return $entry[0]; - } - - public function getEntriesByView($view, $user_id, $limit = '') { - parent::__construct(); - - switch ($_SESSION['sort']) - { - case 'ia': - $order = 'ORDER BY id'; - break; - case 'id': - $order = 'ORDER BY id DESC'; - break; - case 'ta': - $order = 'ORDER BY lower(title)'; - break; - case 'td': - $order = 'ORDER BY lower(title) DESC'; - break; - default: - $order = 'ORDER BY id'; - break; - } - - switch ($view) - { - case 'archive': - $sql = "SELECT * FROM entries WHERE user_id=? AND is_read=? " . $order; - $params = array($user_id, -1); - break; - case 'fav' : - $sql = "SELECT * FROM entries WHERE user_id=? AND is_fav=? " . $order; - $params = array($user_id, -1); - break; - default: - $sql = "SELECT * FROM entries WHERE user_id=? AND is_read=? " . $order; - $params = array($user_id, 0); - break; - } - - $sql .= ' ' . $limit; - - $query = $this->executeQuery($sql, $params); - $entries = $query->fetchAll(); - - return $entries; - } - - public function add($url, $title, $content, $user_id) { - parent::__construct(); - $sql_action = 'INSERT INTO entries ( url, title, content, user_id ) VALUES (?, ?, ?, ?)'; - $params_action = array($url, $title, $content, $user_id); - $query = $this->executeQuery($sql_action, $params_action); - return $query; - } - - public function deleteById($id, $user_id) { - parent::__construct(); - $sql_action = "DELETE FROM entries WHERE id=? AND user_id=?"; - $params_action = array($id, $user_id); - $query = $this->executeQuery($sql_action, $params_action); - return $query; - } - - public function favoriteById($id, $user_id) { - parent::__construct(); - $sql_action = "UPDATE entries SET is_fav=~is_fav WHERE id=? AND user_id=?"; - $params_action = array($id, $user_id); - $query = $this->executeQuery($sql_action, $params_action); - } - - public function archiveById($id, $user_id) { - parent::__construct(); - $sql_action = "UPDATE entries SET is_read=~is_read WHERE id=? AND user_id=?"; - $params_action = array($id, $user_id); - $query = $this->executeQuery($sql_action, $params_action); - } - - public function getLastId() { - parent::__construct(); - return $this->getHandle()->lastInsertId(); - } -} diff --git a/inc/store/store.class.php b/inc/store/store.class.php deleted file mode 100644 index d6e63014..00000000 --- a/inc/store/store.class.php +++ /dev/null @@ -1,55 +0,0 @@ - - * @copyright 2013 - * @license http://www.wtfpl.net/ see COPYING file - */ - -class Store { - function __construct() { - - } - - public function login() { - - } - - public function add() { - - } - - public function retrieveAll() { - - } - - public function retrieveOneById($id) { - - } - - public function retrieveOneByURL($url) { - - } - - public function deleteById($id) { - - } - - public function favoriteById($id) { - - } - - public function archiveById($id) { - - } - - public function getEntriesByView($view) { - - } - - public function getLastId() { - - } -} -- cgit v1.2.3