Compare commits

..

2 Commits

3 changed files with 15 additions and 14 deletions

View File

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

View File

@ -393,13 +393,12 @@ 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 */ /* 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': 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::logm('get a random article');
Tools::redirect('?view=view&id=' . $id[0]); if ($this->store->getRandomId($this->user->getId())) {
$id = $this->store->getRandomId($this->user->getId())[0];
//$this->displayView('view', $id); Tools::redirect('?view=view&id=' . $id[0]);
Tools::logm('got the article with id ' . $id[0]);
}
break; break;
default: default:
break; break;

View File

@ -68,7 +68,7 @@ else if (isset($_POST['install'])) {
if ($_POST['db_engine'] == 'sqlite') { if ($_POST['db_engine'] == 'sqlite') {
if (!copy('install/poche.sqlite', 'db/poche.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 { else {
$db_path = 'sqlite:' . realpath('') . '/db/poche.sqlite'; $db_path = 'sqlite:' . realpath('') . '/db/poche.sqlite';
@ -160,7 +160,7 @@ else if (isset($_POST['install'])) {
if (!copy('inc/poche/config.inc.default.php', 'inc/poche/config.inc.php')) { 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 { } else {
if ($_POST['db_engine'] != 'sqlite') { if ($_POST['db_engine'] != 'sqlite') {
$content = str_replace("define ('STORAGE', 'sqlite');", "define ('STORAGE', '".$_POST['db_engine']."');", $content); $content = str_replace("define ('STORAGE', 'sqlite');", "define ('STORAGE', '".$_POST['db_engine']."');", $content);
@ -407,7 +407,7 @@ border: 1px solid #000;
<div class='messages success install'> <div class='messages success install'>
<p> <p>
<a href="index.php?clean=0">Click here to finish update.</a><br> <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>
<p>You may have to clear cache (by going into config screen) after update.</p> <p>You may have to clear cache (by going into config screen) after update.</p>
</div> </div>