支援者♡限定記事対応

This commit is contained in:
2025-12-29 18:05:59 +09:00
parent c458eecd53
commit 6a4ff9d9e5
6 changed files with 47 additions and 7 deletions

View File

@@ -11,6 +11,7 @@ class BlogPost {
$path = ROOT.$section;
$posts = [];
$isMember = $user !== NULL && $user->role !== \Roles::BANNED;
$isPaywall = $user !== NULL && $user->role >= \Roles::SUBSCRIBER;
$isStaff = $user !== NULL && $user->role & (\Roles::ADMIN | \Roles::STAFF);
if (!is_dir($path)) return $posts;
@@ -46,6 +47,9 @@ class BlogPost {
$preview = mb_substr(strip_tags($articleBody), 0, 50).'...';
$slug = basename($file, '.md');
if (isset($metadata['draft']) && !$isStaff) continue;
$cannotPreview = (!$isMember && in_array('memberonly', $metadata['category']))
|| ((!$isPaywall && !$isStaff) && in_array('subscriberonly', $metadata['category']))
|| (!$isStaff && in_array('staffonly', $metadata['category']));
$posts[] = [
'title' => $metadata['title'] ?? '',
@@ -54,7 +58,7 @@ class BlogPost {
'thumborient' => $metadata['thumborient'] ?? '',
'category' => $metadata['category'] ?? [],
'uuid' => $metadata['uuid'] ?? '',
'preview' => ((!$isMember && in_array('memberonly', $metadata['category'])) || (!$isStaff && in_array('staffonly', $metadata['category'])) ? '未許可' : $preview),
'preview' => ($cannotPreview ? '未許可' : $preview),
'slug' => $slug,
];
}