2021-07-10 19:18:17 +01:00
|
|
|
<?php
|
2021-07-10 18:21:03 -04:00
|
|
|
define('IN_PONEPASTE', 1);
|
|
|
|
require_once('includes/common.php');
|
2021-07-10 19:18:17 +01:00
|
|
|
require_once('includes/functions.php');
|
|
|
|
|
2021-08-17 13:19:10 -04:00
|
|
|
function getMonthPopularPastes(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 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();
|
|
|
|
}
|
2021-07-13 13:32:28 -04:00
|
|
|
|
|
|
|
function transformPasteRow(array $row) : array {
|
2021-08-17 13:13:04 -04:00
|
|
|
global $conn;
|
|
|
|
|
2021-07-13 13:32:28 -04:00
|
|
|
return [
|
|
|
|
'id' => $row['id'],
|
|
|
|
'title' => $row['title'],
|
|
|
|
'member' => $row['member'],
|
|
|
|
'time' => $row['created_at'],
|
2021-07-20 08:44:23 +01:00
|
|
|
'time_update' => $row['updated_at'],
|
2021-07-18 20:56:05 +01:00
|
|
|
'friendly_update_time' => friendlyDateDifference(new DateTime($row['updated_at']), new DateTime()),
|
2021-08-17 13:13:04 -04:00
|
|
|
'friendly_time' => friendlyDateDifference(new DateTime($row['created_at']), new DateTime()),
|
|
|
|
'tags' => getPasteTags($conn, $row['id'])
|
2021-07-13 13:32:28 -04:00
|
|
|
];
|
|
|
|
}
|
|
|
|
|
2021-08-17 13:19:10 -04:00
|
|
|
$popular_pastes = array_map('transformPasteRow', getMostViewedPastes($conn, 10));
|
|
|
|
$monthly_popular_pastes = array_map('transformPasteRow', getMonthPopularPastes($conn, 10));
|
|
|
|
$recent_pastes = array_map('transformPasteRow', getRecentCreatedPastes($conn, 10));
|
|
|
|
$updated_pastes = array_map('transformPasteRow', getRecentUpdatesPastes($conn, 10));
|
|
|
|
$random_pastes = array_map('transformPasteRow', getRandomPastes($conn, 10));
|
2021-07-13 13:32:28 -04:00
|
|
|
|
2021-07-10 19:18:17 +01:00
|
|
|
// Theme
|
2021-07-10 18:21:03 -04:00
|
|
|
$p_title = $lang['archive']; // "Pastes Archive";
|
2021-08-22 21:45:26 -04:00
|
|
|
$page_template = 'discover';
|
|
|
|
require_once('theme/' . $default_theme . '/common.php');
|
|
|
|
|