$this->handle = new PDO($db_path);
break;
case 'mysql':
- $db_path = 'mysql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB . ';charset=utf8mb4';
- $this->handle = new PDO($db_path, STORAGE_USER, STORAGE_PASSWORD, array(
- PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
- ));
+ if (MYSQL_USE_UTF8MB4) {
+ $db_path = 'mysql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB . ';charset=utf8mb4';
+ $this->handle = new PDO($db_path, STORAGE_USER, STORAGE_PASSWORD, array(
+ PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
+ ));
+ } else {
+ $db_path = 'mysql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB;
+ $this->handle = new PDO($db_path, STORAGE_USER, STORAGE_PASSWORD);
+ }
break;
case 'postgres':
$db_path = 'pgsql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB;
return $entries;
}
+ public function retrieveAllWithTags($user_id)
+ {
+ $entries = $this->retrieveAll($user_id);
+ $count = count($entries);
+ for ($i = 0; $i < $count; $i++) {
+ $tag_entries = $this->retrieveTagsByEntry($entries[$i]['id']);
+ $tags = [];
+ foreach ($tag_entries as $tag) {
+ $tags[] = $tag[1];
+ }
+ $entries[$i]['tags'] = implode(',', $tags);
+ }
+ return $entries;
+ }
+
public function retrieveOneById($id, $user_id)
{
$entry = NULL;
return $count;
}
+ public function getRandomId($user_id, $view) {
+ $random = (STORAGE == 'mysql') ? 'RAND()' : 'RANDOM()';
+ switch ($view) {
+ case 'archive':
+ $sql = "SELECT id FROM entries WHERE user_id=? AND is_read=? ORDER BY ". $random . " LIMIT 1";
+ $params = array($user_id,1);
+ break;
+ case 'fav':
+ $sql = "SELECT id FROM entries WHERE user_id=? AND is_fav=? ORDER BY ". $random . " LIMIT 1";
+ $params = array($user_id,1);
+ break;
+ default:
+ $sql = "SELECT id FROM entries WHERE user_id=? AND is_read=? ORDER BY ". $random . " LIMIT 1";
+ $params = array($user_id,0);
+ break;
+ }
+ $query = $this->executeQuery($sql, $params);
+ $id = $query->fetchAll();
+
+ return $id;
+ }
+
+ public function getPreviousArticle($id, $user_id)
+ {
+ $sql = "SELECT id FROM entries WHERE id = (SELECT max(id) FROM entries WHERE id < ? AND is_read=0) AND user_id=? AND is_read=0";
+ $params = array($id, $user_id);
+ $query = $this->executeQuery($sql, $params);
+ $id_entry = $query->fetchAll();
+ $id = $id_entry[0][0];
+ return $id;
+ }
+
+ public function getNextArticle($id, $user_id)
+ {
+ $sql = "SELECT id FROM entries WHERE id = (SELECT min(id) FROM entries WHERE id > ? AND is_read=0) AND user_id=? AND is_read=0";
+ $params = array($id, $user_id);
+ $query = $this->executeQuery($sql, $params);
+ $id_entry = $query->fetchAll();
+ $id = $id_entry[0][0];
+ return $id;
+ }
+
public function updateContent($id, $content, $user_id)
{