支援者♡限定記事対応
This commit is contained in:
9
blog/subscriberonly-post.md
Normal file
9
blog/subscriberonly-post.md
Normal file
@@ -0,0 +1,9 @@
|
||||
title: 【新機能】支援者♡限定
|
||||
uuid: 6e7d1725-c9d3-4279-967c-39bfc37fea8e
|
||||
author: 諏訪子
|
||||
date: 2025-12-29 08:43:27
|
||||
thumbnail:
|
||||
thumborient: center
|
||||
category: feature,subscriberonly
|
||||
----
|
||||
これを見れば、モネロちゃんは貴方の事が大好き!!♡
|
||||
@@ -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,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -114,6 +114,7 @@ class Home extends BlogPost {
|
||||
$auth = new Auth();
|
||||
$user = $auth->getLoggedInUser();
|
||||
$isMember = $user !== NULL && $user->role !== \Roles::BANNED;
|
||||
$isPaywall = $user !== NULL && $user->role >= \Roles::SUBSCRIBER;
|
||||
$isStaff = $user !== NULL && $user->role & (\Roles::ADMIN | \Roles::STAFF);
|
||||
$tmpl->assign('user', $user);
|
||||
|
||||
@@ -133,6 +134,7 @@ class Home extends BlogPost {
|
||||
}
|
||||
|
||||
if (!$isMember && in_array('memberonly', $meta->category)) goto denyaccess;
|
||||
if ((!$isPaywall && !$isStaff) && in_array('subscriberonly', $meta->category)) goto denyaccess;
|
||||
if (!$isStaff && in_array('staffonly', $meta->category)) goto denyaccess;
|
||||
if (isset($meta->draft) && !$isStaff) goto denyaccess;
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
<?php
|
||||
namespace Site\Controller;
|
||||
|
||||
use Site\Lib\Template;
|
||||
use Site\Controller\Mods;
|
||||
use Site\Lib\Auth;
|
||||
use Site\Lib\Template;
|
||||
|
||||
class Notfound {
|
||||
use Mods;
|
||||
@@ -12,6 +13,11 @@ class Notfound {
|
||||
$tmpl = new Template('/');
|
||||
$pagetit = 'Not found';
|
||||
|
||||
// ユーザー
|
||||
$auth = new Auth();
|
||||
$user = $auth->getLoggedInUser();
|
||||
$tmpl->assign('user', $user);
|
||||
|
||||
$tmpl->assign('pagetit', $pagetit);
|
||||
$tmpl->assign('curPage', '404');
|
||||
$tmpl->assign('menu', $this->getMenu());
|
||||
|
||||
@@ -39,13 +39,29 @@ class Auth {
|
||||
unset($user->password);
|
||||
unset($user->tokens);
|
||||
$myself = $this->getUserData();
|
||||
if ($myself->role & (\Roles::PLAYSTATIONNDA | \Roles::NINTENDONDA | \Roles::MEMBER | \Roles::BANNED)) {
|
||||
unset($user->email);
|
||||
}
|
||||
if ($myself->id != $user->id && $myself->role < \Roles::STAFF) $user->email = '(秘密)';
|
||||
$user->name = namecolor($user);
|
||||
$user->regDate = date('Y年m月d日', $user->regDate);
|
||||
$user->gender = $user->gender === \Gender::MALE ? '男' : ($user->gender === \Gender::FEMALE ? '女' : '不明');
|
||||
$user->role = $user->role & (\Roles::ADMIN | \Roles::STAFF) ? '管理者' : ($user->role === \Roles::BANNED ? 'BANされた' : 'ユーザー');
|
||||
|
||||
switch (true) {
|
||||
case ($user->role & \Roles::ADMIN):
|
||||
$user->role = '管理者';
|
||||
break;
|
||||
case ($user->role & \Roles::STAFF):
|
||||
$user->role = '076スタジオの会社員';
|
||||
break;
|
||||
case ($user->role & (\Roles::FSUBSCRIBER | \Roles::PSUBSCRIBER | \Roles::NSUBSCRIBER | \Roles::SUBSCRIBER)):
|
||||
$user->role = '支援者♡';
|
||||
break;
|
||||
case ($user->role & \Roles::BANNED):
|
||||
$user->role = 'BANされた';
|
||||
break;
|
||||
default:
|
||||
$user->role = 'ユーザー';
|
||||
break;
|
||||
}
|
||||
|
||||
$user->avatar = '/static/user/'.($user->avatar === '' ? 'noicon.png' : $user->username.'/'.$user->avatar);
|
||||
$user->altName = $user->displayname ?: $user->username;
|
||||
unset($user->username);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="3"><img src="{{ $u->avatar }}" alt="{{ $u->altName }}" style="max-width: 100px; max-height: 100px; width: 100%; height: 100%;" /></td>
|
||||
<td rowspan="4"><img src="{{ $u->avatar }}" alt="{{ $u->altName }}" style="max-width: 100px; max-height: 100px; width: 100%; height: 100%;" /></td>
|
||||
<td>登録日:{{ $u->regDate }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -13,6 +13,9 @@
|
||||
<tr>
|
||||
<td>性別:{{ $u->gender }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>メールアドレス:{{ $u->email }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user