mirror of
https://github.com/Neetpone/ponepaste.git
synced 2025-03-12 14:40:09 +01:00
Does the site even work anymore? Probably not.
This commit is contained in:
parent
d036647181
commit
82c956d9e1
10 changed files with 55 additions and 84 deletions
|
@ -2,7 +2,6 @@
|
||||||
define('IN_PONEPASTE', 1);
|
define('IN_PONEPASTE', 1);
|
||||||
|
|
||||||
require_once(__DIR__ . '/../includes/common.php');
|
require_once(__DIR__ . '/../includes/common.php');
|
||||||
require_once(__DIR__ . '/../includes/Tag.class.php');
|
|
||||||
|
|
||||||
/* get rid of unintended wildcards in a parameter to LIKE queries; not a security issue, just unexpected behaviour. */
|
/* get rid of unintended wildcards in a parameter to LIKE queries; not a security issue, just unexpected behaviour. */
|
||||||
function escapeLikeQuery(string $query) : string {
|
function escapeLikeQuery(string $query) : string {
|
||||||
|
|
73
discover.php
73
discover.php
|
@ -3,66 +3,7 @@ define('IN_PONEPASTE', 1);
|
||||||
require_once('includes/common.php');
|
require_once('includes/common.php');
|
||||||
require_once('includes/functions.php');
|
require_once('includes/functions.php');
|
||||||
|
|
||||||
function getMonthPopularPastes(DatabaseHandle $conn, int $count) : array {
|
function transformPasteRow(Paste $row) : array {
|
||||||
$query = $conn->prepare(
|
|
||||||
"SELECT pastes.id AS id, title, created_at, updated_at, users.username AS member
|
|
||||||
FROM pastes
|
|
||||||
INNER JOIN users ON users.id = pastes.user_id
|
|
||||||
WHERE MONTH(created_at) = MONTH(NOW()) AND visible = '0' ORDER BY views DESC LIMIT ?");
|
|
||||||
$query->execute([$count]);
|
|
||||||
return $query->fetchAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
function getRecentUpdatesPastes(DatabaseHandle $conn, int $count) : array {
|
|
||||||
$query = $conn->prepare(
|
|
||||||
"SELECT pastes.id AS id, title, created_at, updated_at, users.username AS member
|
|
||||||
FROM pastes
|
|
||||||
INNER JOIN users ON users.id = pastes.user_id
|
|
||||||
WHERE visible = '0' ORDER BY updated_at DESC
|
|
||||||
LIMIT ?");
|
|
||||||
$query->execute([$count]);
|
|
||||||
return $query->fetchAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
function getRecentCreatedPastes(DatabaseHandle $conn, int $count) : array {
|
|
||||||
$query = $conn->prepare("
|
|
||||||
SELECT pastes.id, title, created_at, updated_at, users.username AS member
|
|
||||||
FROM pastes
|
|
||||||
INNER JOIN users ON pastes.user_id = users.id
|
|
||||||
WHERE visible = '0'
|
|
||||||
ORDER BY created_at DESC
|
|
||||||
LIMIT ?");
|
|
||||||
$query->execute([$count]);
|
|
||||||
return $query->fetchAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
function getMostViewedPastes(DatabaseHandle $conn, int $count) : array {
|
|
||||||
$query = $conn->prepare("
|
|
||||||
SELECT pastes.id AS id, title, created_at, updated_at, views, users.username AS member
|
|
||||||
FROM pastes INNER JOIN users ON users.id = pastes.user_id
|
|
||||||
WHERE visible = '0'
|
|
||||||
ORDER BY views DESC
|
|
||||||
LIMIT ?
|
|
||||||
");
|
|
||||||
$query->execute([$count]);
|
|
||||||
return $query->fetchAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
function getRandomPastes(DatabaseHandle $conn, int $count) : array {
|
|
||||||
$query = $conn->prepare("
|
|
||||||
SELECT pastes.id, title, created_at, updated_at, views, users.username AS member
|
|
||||||
FROM pastes
|
|
||||||
INNER JOIN users ON users.id = pastes.user_id
|
|
||||||
WHERE visible = '0'
|
|
||||||
ORDER BY RAND()
|
|
||||||
LIMIT ?");
|
|
||||||
$query->execute([$count]);
|
|
||||||
return $query->fetchAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
function transformPasteRow(array $row) : array {
|
|
||||||
global $conn;
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'id' => $row['id'],
|
'id' => $row['id'],
|
||||||
'title' => $row['title'],
|
'title' => $row['title'],
|
||||||
|
@ -71,15 +12,15 @@ function transformPasteRow(array $row) : array {
|
||||||
'time_update' => $row['updated_at'],
|
'time_update' => $row['updated_at'],
|
||||||
'friendly_update_time' => friendlyDateDifference(new DateTime($row['updated_at']), new DateTime()),
|
'friendly_update_time' => friendlyDateDifference(new DateTime($row['updated_at']), new DateTime()),
|
||||||
'friendly_time' => friendlyDateDifference(new DateTime($row['created_at']), new DateTime()),
|
'friendly_time' => friendlyDateDifference(new DateTime($row['created_at']), new DateTime()),
|
||||||
'tags' => getPasteTags($conn, $row['id'])
|
'tags' => $row->tags
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
$popular_pastes = array_map('transformPasteRow', getMostViewedPastes($conn, 10));
|
$popular_pastes = Paste::getMostViewed()->map('transformPasteRow');
|
||||||
$monthly_popular_pastes = array_map('transformPasteRow', getMonthPopularPastes($conn, 10));
|
$monthly_popular_pastes = Paste::getMonthPopular()->map('transformPasteRow');
|
||||||
$recent_pastes = array_map('transformPasteRow', getRecentCreatedPastes($conn, 10));
|
$recent_pastes = Paste::getRecent()->map('transformPasteRow');
|
||||||
$updated_pastes = array_map('transformPasteRow', getRecentUpdatesPastes($conn, 10));
|
$updated_pastes = Paste::getRecentlyUpdated()->map('transformPasteRow');
|
||||||
$random_pastes = array_map('transformPasteRow', getRandomPastes($conn, 10));
|
$random_pastes = Paste::getRandom()->map('transformPasteRow');
|
||||||
|
|
||||||
// Theme
|
// Theme
|
||||||
$page_template = 'discover';
|
$page_template = 'discover';
|
||||||
|
|
|
@ -24,6 +24,15 @@ class SessionHelper {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function destroySession() {
|
||||||
|
$token = $_COOKIE[SessionHelper::REMEMBER_TOKEN_COOKIE];
|
||||||
|
|
||||||
|
\UserSession::where('token', $token)->delete();
|
||||||
|
|
||||||
|
unset($_COOKIE[SessionHelper::REMEMBER_TOKEN_COOKIE]);
|
||||||
|
setcookie(SessionHelper::REMEMBER_TOKEN_COOKIE, null, time() - 3600);
|
||||||
|
}
|
||||||
|
|
||||||
private static function currentUserFromRememberToken(string $remember_token) {
|
private static function currentUserFromRememberToken(string $remember_token) {
|
||||||
$session = \UserSession
|
$session = \UserSession
|
||||||
::with('user')
|
::with('user')
|
||||||
|
@ -54,8 +63,4 @@ class SessionHelper {
|
||||||
|
|
||||||
return \User::find(intval($_SESSION['user_id']));
|
return \User::find(intval($_SESSION['user_id']));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function destroySession(DatabaseHandle $conn, string $token) {
|
|
||||||
$conn->query('DELETE FROM user_sessions WHERE user_id = ? AND token = ?', [$this->user_id, $token]);
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,4 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
require_once(__DIR__ . '/Tag.php');
|
require_once(__DIR__ . '/Tag.php');
|
||||||
|
@ -13,4 +15,40 @@ class Paste extends Model {
|
||||||
public function tags() {
|
public function tags() {
|
||||||
return $this->belongsToMany(Tag::class, 'paste_taggings');
|
return $this->belongsToMany(Tag::class, 'paste_taggings');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getRecent(int $count = 10) : Collection {
|
||||||
|
return Paste::with('user')
|
||||||
|
->orderBy('created_at', 'DESC')
|
||||||
|
->where('visible', 0)
|
||||||
|
->limit($count)->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getRecentlyUpdated(int $count = 10) : Collection {
|
||||||
|
return Paste::with('user')
|
||||||
|
->orderBy('updated_at', 'DESC')
|
||||||
|
->where('visible', 0)
|
||||||
|
->limit($count)->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getMostViewed(int $count = 10) : Collection {
|
||||||
|
return Paste::with('user')
|
||||||
|
->orderBy('views')
|
||||||
|
->where('visible', 0)
|
||||||
|
->limit($count)->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getMonthPopular(int $count = 10) : Collection {
|
||||||
|
return Paste::with('user')
|
||||||
|
->whereRaw('MONTH(created_at) = MONTH(NOW())')
|
||||||
|
->where('visible', 0)
|
||||||
|
->orderBy('views')
|
||||||
|
->limit($count)->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getRandom(int $count = 10) : Collection {
|
||||||
|
return Paste::with('user')
|
||||||
|
->orderByRaw('RAND()')
|
||||||
|
->where('visible', 0)
|
||||||
|
->limit($count)->get();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,5 @@ class User extends Model {
|
||||||
/*public function pastes() {
|
/*public function pastes() {
|
||||||
return $this->hasMany(Paste::class);
|
return $this->hasMany(Paste::class);
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
class UserSession extends Model {
|
class UserSession extends Model {
|
||||||
|
|
||||||
protected $table = 'user_sessions';
|
protected $table = 'user_sessions';
|
||||||
|
|
||||||
protected $casts = [
|
protected $casts = [
|
||||||
|
@ -12,8 +11,4 @@ class UserSession extends Model {
|
||||||
public function user() {
|
public function user() {
|
||||||
return $this->belongsTo(User::class);
|
return $this->belongsTo(User::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ define('IN_PONEPASTE', 1);
|
||||||
require_once('includes/common.php');
|
require_once('includes/common.php');
|
||||||
require_once('includes/captcha.php');
|
require_once('includes/captcha.php');
|
||||||
require_once('includes/functions.php');
|
require_once('includes/functions.php');
|
||||||
require_once('includes/Tag.class.php');
|
|
||||||
|
|
||||||
function verifyCaptcha() : string|bool {
|
function verifyCaptcha() : string|bool {
|
||||||
global $captcha_config;
|
global $captcha_config;
|
||||||
|
|
|
@ -9,9 +9,7 @@ if ($_SERVER['REQUEST_METHOD'] !== 'POST' || $current_user === null) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Destroy remember token */
|
/* Destroy remember token */
|
||||||
$current_user->destroySession($conn, $_COOKIE[User::REMEMBER_TOKEN_COOKIE]);
|
\PonePaste\Helpers\SessionHelper::destroySession();
|
||||||
unset($_COOKIE[User::REMEMBER_TOKEN_COOKIE]);
|
|
||||||
setcookie(User::REMEMBER_TOKEN_COOKIE, null, time() - 3600);
|
|
||||||
|
|
||||||
/* Destroy PHP session */
|
/* Destroy PHP session */
|
||||||
unset($_SESSION['user_id']);
|
unset($_SESSION['user_id']);
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
define('IN_PONEPASTE', 1);
|
define('IN_PONEPASTE', 1);
|
||||||
require_once('includes/common.php');
|
require_once('includes/common.php');
|
||||||
require_once('includes/functions.php');
|
require_once('includes/functions.php');
|
||||||
require_once('includes/Tag.class.php');
|
|
||||||
require_once('includes/passwords.php');
|
require_once('includes/passwords.php');
|
||||||
require_once('includes/models/Paste.php');
|
require_once('includes/models/Paste.php');
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
define('IN_PONEPASTE', 1);
|
define('IN_PONEPASTE', 1);
|
||||||
require_once('../includes/common.php');
|
require_once('../includes/common.php');
|
||||||
require_once('../includes/Tag.class.php');
|
|
||||||
|
|
||||||
function upgrade_tagsys(DatabaseHandle $conn) {
|
function upgrade_tagsys(DatabaseHandle $conn) {
|
||||||
$result = $conn->query('SELECT id, tagsys FROM pastes')
|
$result = $conn->query('SELECT id, tagsys FROM pastes')
|
||||||
|
|
Loading…
Add table
Reference in a new issue