Compare commits

..

7 Commits

3 changed files with 21 additions and 17 deletions

View File

@ -411,12 +411,14 @@ class Database {
return $count;
}
public function getRandomId($row, $user_id) {
$sql = "SELECT id FROM entries WHERE user_id=? LIMIT 1 OFFSET ? ";
$params = array($user_id, $row);
$query = $this->executeQuery($sql, $params);
public function getRandomId($user_id) {
$random = (STORAGE == 'mysql') ? 'RAND()' : 'RANDOM()';
$sql = "SELECT id FROM entries WHERE user_id=? ORDER BY ". $random . " LIMIT 1";
$params = array($user_id);
$query = $this->executeQuery($sql, $params);
$id = $query->fetchAll();
return $query->fetchAll();
return $id;
}

View File

@ -393,13 +393,13 @@ class Poche
/* For some unknown reason I can't get displayView() to work here (it redirects to home view afterwards). So here's a dirty fix which redirects directly to URL */
case 'random':
$count = $this->store->getEntriesByViewCount($view, $this->user->getId());
$id_query = $this->store->getRandomId(rand(1,$count)-1, $this->user->getId());
$id = $id_query[0];
Tools::logm('get a random article');
Tools::redirect('?view=view&id=' . $id[0]);
//$this->displayView('view', $id);
if ($this->store->getRandomId($this->user->getId())) {
$id_array = $this->store->getRandomId($this->user->getId());
$id = $id_array[0];
Tools::redirect('?view=view&id=' . $id[0]);
Tools::logm('got the article with id ' . $id[0]);
}
break;
default:
break;
@ -754,7 +754,7 @@ class Poche
Tools::logm('Import of articles finished: '.$i.' articles added (w/o content if not provided).');
}
else {
$this->messages->add('s', _('Did you forget to select a file?'));
$this->messages->add('e', _('Did you forget to select a file?'));
}
// file parsing finished here
// now download article contents if any

View File

@ -12,6 +12,7 @@ $errors = array();
$successes = array();
$final = false;
$email = "";
require_once('install_functions.php');
@ -61,6 +62,7 @@ else if (isset($_POST['install'])) {
// User informations
$username = trim($_POST['username']);
$password = trim($_POST['password']);
$email = trim($_POST['email']);
$salted_password = sha1($password . $username . $salt);
// Database informations
@ -68,7 +70,7 @@ else if (isset($_POST['install'])) {
if ($_POST['db_engine'] == 'sqlite') {
if (!copy('install/poche.sqlite', 'db/poche.sqlite')) {
$errors[] = 'Impossible to create the SQLite database file.';
$errors[] = 'Impossible to create the SQLite database file. Please check your file permissions.';
}
else {
$db_path = 'sqlite:' . realpath('') . '/db/poche.sqlite';
@ -140,8 +142,8 @@ else if (isset($_POST['install'])) {
if ($continue) {
$sql = "INSERT INTO users (username, password, name, email) VALUES (?, ?, ?, '')";
$params = array($username, $salted_password, $username);
$sql = "INSERT INTO users (username, password, name, email) VALUES (?, ?, ?, ?)";
$params = array($username, $salted_password, $username, $email);
$query = executeQuery($handle, $sql, $params);
$id_user = (int)$handle->lastInsertId('users_id_seq');
@ -160,7 +162,7 @@ else if (isset($_POST['install'])) {
if (!copy('inc/poche/config.inc.default.php', 'inc/poche/config.inc.php')) {
$errors[] = 'Installation aborted, impossible to create inc/poche/config.inc.php file. Maybe you don\'t have write access to create it.';
$errors[] = 'Installation aborted, impossible to create inc/poche/config.inc.php file. Maybe you don\'t have write access to create it. Check your file permissions.';
} else {
if ($_POST['db_engine'] != 'sqlite') {
$content = str_replace("define ('STORAGE', 'sqlite');", "define ('STORAGE', '".$_POST['db_engine']."');", $content);
@ -407,7 +409,7 @@ border: 1px solid #000;
<div class='messages success install'>
<p>
<a href="index.php?clean=0">Click here to finish update.</a><br>
If it fails, just delete the install directory.
If it fails, check your file permissions or just delete the install directory.
</p>
<p>You may have to clear cache (by going into config screen) after update.</p>
</div>