diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 049566d..c810354 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -20,20 +20,12 @@ class AuthController extends Controller { public function checkSelf(Request $r) { // /api/auth/checkself $check = $this->checkLegit($r->kero_token); - return array($check); } - public function checkLegit($t) { - if (!isset($t)) { - return 0; - } - - $check = DB::table('users') - ->select('id') - ->where('kero_token', $t) - ->first(); - + public function checkLegit ($t) { + if (!isset($t) || empty($t) || is_null($t)) return 0; + $check = DB::table('users')->select('id')->where('kero_token', $t)->first(); return $check->id; } diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index edcd643..ef03b91 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -3,21 +3,68 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use App\Http\Controllers\AuthController; use App\Http\Controllers\SiteController; +use App\Http\Controllers\UserController; class HomeController extends Controller { + private $objAuth; private $objSite; + private $objUser; private $menu; public function __construct() { + $this->objAuth = new AuthController(); $this->objSite = new SiteController(); + $this->objUser = new UserController(); $this->menu = $this->objSite->getPagesInMenu(); //$this->middleware('auth'); } public function index () { $menu = $this->menu; + $cook = (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''); + $id = $this->objAuth->checkLegit($cook); + $user = $this->objUser->getUser2($id, $cook); $res = $this->objSite->getPosts2(); - return view('pages.site.index', compact(['res', 'menu'])); + return view('pages.site.index', compact(['res', 'menu', 'user'])); + } + + public function post ($slug) { + $menu = $this->menu; + $cook = (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''); + $id = $this->objAuth->checkLegit($cook); + $user = $this->objUser->getUser2($id, $cook); + $res = $this->objSite->getPost2($slug, $cook); + return view('pages.site.post', compact(['res', 'menu', 'user'])); + } + + public function page ($slug) { + $menu = $this->menu; + $cook = (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''); + $id = $this->objAuth->checkLegit($cook); + $user = $this->objUser->getUser2($id, $cook); + $res = $this->objSite->getPage2($slug, $cook); + return view('pages.site.page', compact(['res', 'menu', 'user'])); + } + + public function login () { + if (isset($_COOKIE['kero_token'])) return redirect(''); + $menu = $this->menu; + $cook = (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''); + $id = $this->objAuth->checkLegit($cook); + $user = $this->objUser->getUser2($id, $cook); + $res = array(); + return view('pages.site.login', compact(['res', 'menu', 'user'])); + } + + public function register () { + if (isset($_COOKIE['kero_token'])) return redirect(''); + $menu = $this->menu; + $cook = (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''); + $id = $this->objAuth->checkLegit($cook); + $user = $this->objUser->getUser2($id, $cook); + $res = array(); + return view('pages.site.register', compact(['res', 'menu', 'user'])); } } diff --git a/app/Http/Controllers/SiteController.php b/app/Http/Controllers/SiteController.php index b752fb6..7379ac4 100644 --- a/app/Http/Controllers/SiteController.php +++ b/app/Http/Controllers/SiteController.php @@ -23,8 +23,8 @@ class SiteController extends Controller { } // Posts - public function getPosts2() { // /api/rpc/site/post/get/all - $kero_token = $_COOKIE['kero_token']; + public function getPosts2 () { + $kero_token = (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : ''); $check = $this->objAuth->checkLegit($kero_token); // Load group colours. @@ -304,6 +304,119 @@ class SiteController extends Controller { return $res; } + public function getPost2 ($slug, $kero) { + $check = $this->objAuth->checkLegit($kero); + $valid = $this->objAuth->getPermissions($kero); + + // Load group colours. + $ucol = $this->objUser->getGroupColours(); + + // Load content. + if ($valid['blg_editpost']) { + $get = DB::table('blg_content') + ->join('users', 'blg_content.user_id', '=', 'users.id') + ->join('usr_details', 'usr_details.user_id', '=', 'blg_content.user_id') + ->join('usr_profile', 'usr_profile.user_id', '=', 'blg_content.user_id') + ->join('usr_perm_id', 'usr_perm_id.user_id', '=', 'blg_content.user_id') + ->where('isPost', 1) + ->where('slug', $slug) + ->get(array( + 'blg_content.id', + 'blg_content.user_id', + 'title', + 'slug', + 'post_date', + 'publish_date', + 'public_status', + 'message', + 'username', + 'perm_id', + 'gender', + 'avatar', + 'name_style', + 'display_name' + )); + } + else { + $get = DB::table('blg_content') + ->join('users', 'blg_content.user_id', '=', 'users.id') + ->join('usr_details', 'usr_details.user_id', '=', 'blg_content.user_id') + ->join('usr_profile', 'usr_profile.user_id', '=', 'blg_content.user_id') + ->join('usr_perm_id', 'usr_perm_id.user_id', '=', 'blg_content.user_id') + ->where('public_status', 0) + ->where('isPost', 1) + ->where('slug', $slug) + ->get(array( + 'blg_content.id', + 'blg_content.user_id', + 'title', + 'slug', + 'post_date', + 'publish_date', + 'public_status', + 'message', + 'username', + 'perm_id', + 'gender', + 'avatar', + 'name_style', + 'display_name' + )); + } + + $res = array(); + setlocale(LC_ALL, 'ja_JP.utf8'); + + foreach ($get as $i) { + $showName = ''; + $showCol = ''; + $showGroupName = ''; + + // Display name or username? + if (!empty($i->display_name)) { + $showName = $i->display_name; + } + else { + $showName = $i->username; + } + + // Custom name styling or default? + if (!empty($i->name_style)) { + $showCol = $i->name_style; + } + else { + foreach ($ucol as $j) { + if ($j->id == $i->perm_id) { + if ($i->gender == 1) $showCol = $j->colour_m; + else if ($i->gender == 2) $showCol = $j->colour_f; + else $showCol = $j->colour_u; + } + } + } + + // Group names. + $gname = $this->objUser->getGroupName($i->user_id); + $showGroupName = $gname[0]->name; + + array_push($res, [ + 'id' => $i->id, + 'user_id' => $i->user_id, + 'title' => $i->title, + 'slug' => $i->slug, + 'post_date' => strftime('%Y/%m/%d(%a) %H:%M:%S %Z', $i->post_date), + 'publish_date' => strftime('%Y/%m/%d(%a) %H:%M:%S %Z', $i->publish_date), + 'public_status' => $i->public_status, + 'message' => $i->message, + 'gender' => $i->gender, + 'avatar' => $i->avatar, + 'showcol' => $showCol, + 'showname' => $showName + ]); + } + + return $res; + } + public function getPost($slug, Request $r) { // /api/rpc/site/post/get/slug/slug $check = $this->objAuth->checkLegit($r->kero_token); $valid = $this->objAuth->getPermissions($r->kero_token); @@ -887,6 +1000,28 @@ class SiteController extends Controller { ->get(); } + public function getPage2 ($slug, $kero) { + $valid = $this->objAuth->getPermissions($kero); + + if ($valid['blg_editpage'] == 1) { + return DB::table('blg_content') + ->select('id', 'title', 'slug', 'isMenu', 'public_status', 'message') + ->where('isPost', 0) + ->where('slug', $slug) + ->orderBy('sortorder', 'asc') + ->first(); + } + else { + return DB::table('blg_content') + ->select('id', 'title', 'slug', 'isMenu', 'public_status', 'message') + ->where('public_status', 0) + ->where('isPost', 0) + ->where('slug', $slug) + ->orderBy('sortorder', 'asc') + ->first(); + } + } + public function getPage($slug, Request $r) { // /api/rpc/site/page/get/slug/slug $valid = $this->objAuth->getPermissions($r->kero_token); diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 449d4a9..7628a1a 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -172,7 +172,75 @@ class UserController extends Controller { return $get; } - public function getUser($id, Request $r) { // /api/rpc/user/user/getuser/id/uid + public function getUser2 ($id, $kero) { // /api/rpc/user/user/getuser/id/uid + $getting = array( + 'users.id', + 'users.username', + 'usr_perm_module.name as group_name', + 'usr_profile.display_name', + 'usr_profile.name_style', + 'usr_perm_id.perm_id', + 'usr_profile.member_title', + 'usr_details.total_posts', + 'usr_details.total_threads', + 'usr_details.reg_date', + 'usr_contacts.website_link', + 'usr_contacts.website_name', + 'usr_profile.post_style as poststyle', + 'usr_profile.gender', + 'usr_profile.location', + 'usr_profile.birthday', + 'usr_profile.bio', + 'usr_profile.avatar', + 'usr_profile.country', + 'usr_contacts.website_link', + 'usr_contacts.website_name', + 'usr_contacts.youtube_link', + 'usr_contacts.youtube_name', + 'usr_contacts.niconico', + 'usr_contacts.pixiv', + 'usr_contacts.discord', + 'usr_contacts.mastodon', + 'usr_contacts.twitter' + ); + + $check = $this->objAuth->checkLegit($kero); + $valid = $this->objAuth->getPermissions($kero); + $cols = $this->getGroupColours()->toArray(); + + if ($valid['usr_editother'] == 1 || $id == $check) { + array_push($getting, 'users.password'); + } + + if ($valid['usr_emailshow'] == 1 || $id == $check) { + array_push($getting, 'users.email'); + } + + if ($valid['usr_ipshow'] == 1 || $id == $check) { + array_push($getting, 'usr_profile.ip_address'); + } + + if ($valid['usr_canwarn'] == 1 || $id == $check) { + array_push($getting, 'usr_details.strikes'); + } + + $get = DB::table('users') + ->join('usr_details', 'usr_details.user_id', '=', 'users.id') + ->join('usr_profile', 'usr_profile.user_id', '=', 'users.id') + ->join('usr_contacts', 'usr_contacts.user_id', '=', 'users.id') + ->join('usr_perm_id', 'usr_perm_id.user_id', '=', 'users.id') + ->join('usr_perm_module', 'usr_perm_module.id', 'usr_perm_id.perm_id') + ->where('users.id', $id) + ->get($getting); + + foreach ($get as $g) { + $g->showname = (!empty($g->display_name) && !is_null($g->display_name) ? $g->display_name : $g->username); + } + + return $get; + } + + public function getUser ($id, Request $r) { // /api/rpc/user/user/getuser/id/uid $getting = array( 'users.id', 'users.username', diff --git a/public/assets/img/bitchute.png b/public/assets/img/bitchute.png new file mode 100644 index 0000000..c25a501 Binary files /dev/null and b/public/assets/img/bitchute.png differ diff --git a/public/assets/img/discord.png b/public/assets/img/discord.png new file mode 100644 index 0000000..2206077 Binary files /dev/null and b/public/assets/img/discord.png differ diff --git a/public/assets/img/twitter.png b/public/assets/img/twitter.png new file mode 100644 index 0000000..1988514 Binary files /dev/null and b/public/assets/img/twitter.png differ diff --git a/resources/assets/sass/_variables.scss b/resources/assets/sass/_variables.scss index 21f6937..e4bb4c5 100644 --- a/resources/assets/sass/_variables.scss +++ b/resources/assets/sass/_variables.scss @@ -7,10 +7,6 @@ $font-family-sans-serif: "Raleway", sans-serif; $font-size-base: 1rem; $line-height-base: 1.6; -body{ - background-color: #31363b; - color: #fcfcfc !important; -} #app { font-family: monospace; font-size: large; @@ -18,6 +14,6 @@ body{ -moz-osx-font-smoothing: grayscale; text-align: left; margin-top: 20px; - margin-left: 20px; + margin-left: 0px; } diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss index e0eb3ab..25b9126 100644 --- a/resources/assets/sass/app.scss +++ b/resources/assets/sass/app.scss @@ -8,11 +8,11 @@ // Bootstrap @import '~bootstrap/scss/bootstrap'; -html { - // cursor: text; -} + html { + // cursor: text; + } -body { + body { font-family: 'Avenir', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; @@ -20,13 +20,89 @@ body { color: #fcfcfc; background-color: #232629; } + + .logo-img { + border: 2px solid #3daee9; + box-shadow: 0 0 7px 3px #1d99f3; + } + + .logo-sns { + background-color: #31363b; + border: 1px solid #eff0f1; + padding: 4px; + margin: 4px 10px; + } + + .logo-sns:hover { + background-color: #eff0f1; + border: 1px solid #31363b; + } + + .logo-br { + position: absolute; + bottom: 8px; + right: 16px; + } + + /// Stroke font-character + /// @param {Integer} $stroke - Stroke width + /// @param {Color} $color - Stroke color + /// @return {List} - text-shadow list + @function stroke($stroke, $color) { + $shadow: (); + $from: $stroke*-1; + @for $i from $from through $stroke { + @for $j from $from through $stroke { + $shadow: append($shadow, $i*1px $j*1px 0 $color, comma); + } + } + @return $shadow; + } + /// Stroke font-character + /// @param {Integer} $stroke - Stroke width + /// @param {Color} $color - Stroke color + /// @return {Style} - text-shadow + @mixin stroke($stroke, $color) { + text-shadow: stroke($stroke, $color); + } + + @keyframes sitenamehover { + 0% { text-shadow: stroke(4, #1d99f3); } + 25% { text-shadow: stroke(4, #3daee9); } + 50% { text-shadow: stroke(4, #ffe6f9); } + 75% { text-shadow: stroke(4, #3daee9); } + 100% { text-shadow: stroke(4, #1d99f3); } + } + + .logo-c { + font-size: 64px; + font-weight: bolder; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + text-shadow: stroke(4, #1d99f3); + } + + .logo-c:hover { + animation: sitenamehover 2s linear infinite; + } + + .sidemenu { + border: 2px solid #3daee9; + box-shadow: 0 0 7px 3px #1d99f3; + } + a { color: #1d99f3; } + a:hover { + color: #3daee9; + } .bg-dark { background: radial-gradient(farthest-corner at 50% 85%, #3498db 0%, #232629 100%); - border-bottom: 2px solid #3daee9; + border: 2px solid #3daee9; box-shadow: 0 0 7px 3px #1d99f3; } .navbar-nav .dropdown-menu { @@ -50,66 +126,49 @@ body { border-radius: 2px; cursor: pointer; } - .navbar-brand:hover, .nav-item:hover { - background-color: #2980b9; + .navbar-brand:hover, .nav-item:hover { background-color: #2980b9; } + .badge-danger { + color: #fcfcfc; + background-color: #da4453; } .badge-light { color: #232629; background-color: #eff0f1; } - .badge { - font-size: 100%; - } + .badge { font-size: 100%; } .within { margin: 30px auto; border: 2px solid #3daee9; box-shadow: 0px 0px 7px 3px #1d99f3; } - .bar { - background: linear-gradient( - to bottom, - #22699c 0%, - #436a86 34%, - #1a3746 100% - ); + .nav-pills .nav-link { border-radius: 0px; } + .bar { background: linear-gradient(to bottom, #22699c 0%, #436a86 34%, #1a3746 100%); } + .bara { background: linear-gradient(180deg,#0094ff 0,#8bb6d6 34%,#04547d 100%); } + .bar, .bara { + text-align: center; + color: #fcfcfc; padding: 5px; font-size: 200%; border-bottom: solid 2px #3daee9; cursor: pointer; transition: background 0.3s, color 0.3s; } - .bar > a { - color: #fcfcfc; - } - .bar > a:hover { - text-decoration: none; - } - .bar:hover { - background: linear-gradient( - to bottom, - #2980b9 0%, - #6e93ad 34%, - #2b6b8b 100% - ); - // background-color: #2980b9; - } + .bar > a { color: #fcfcfc; } + .bar > a:hover { text-decoration: none; } + .bar:hover { background: linear-gradient(to bottom, #2980b9 0%, #6e93ad 34%, #2b6b8b 100%) } .meta { padding: 5px; text-align: left; background-color: #2c3e50; border-bottom: solid 2px #3daee9; } - .comment { - border-top: solid 2px #3daee9; - } + .comment { border-top: solid 2px #3daee9; } .back, .comment { padding: 10px; background-color: #31363b; text-align: left; } - .modal-header, .modal-body, .modal-footer { - color: #fcfcfc; - } + .modal-header, .modal-body, .modal-footer { color: #fcfcfc; } .modal-header { background: linear-gradient( to bottom, @@ -118,12 +177,8 @@ body { #3daee9 100% ); } - .modal-body { - background-color: #4d4d4d; - } - .modal-footer { - background-color: #31363b; - } + .modal-body { background-color: #4d4d4d; } + .modal-footer { background-color: #31363b; } .form-control, .form-control:focus { background-color: #31363b; color: #fcfcfc; diff --git a/resources/views/layouts/site.blade.php b/resources/views/layouts/site.blade.php index 9b82939..cc78a9a 100644 --- a/resources/views/layouts/site.blade.php +++ b/resources/views/layouts/site.blade.php @@ -7,21 +7,7 @@ - {{ config('app.name', 'Laravel') }} - - - @@ -29,46 +15,60 @@
-
画像
+
+ +
テクニカル諏訪子
+
+
ビットチュートのロゴ
+
ツイッターのロゴ
+
ディスコードのロゴ
+
+
-
+
diff --git a/resources/views/pages/site/login.blade.php b/resources/views/pages/site/login.blade.php new file mode 100644 index 0000000..2af9c74 --- /dev/null +++ b/resources/views/pages/site/login.blade.php @@ -0,0 +1,23 @@ +@extends('layouts.site') + +@section('content') + +
+
サインイン
+
+
+
ユーザー名
+
+
+
+
パスワード
+
+
+
+
+
+
+
+
+ +@endsection diff --git a/resources/views/pages/site/page.blade.php b/resources/views/pages/site/page.blade.php index e69de29..9c14e5f 100644 --- a/resources/views/pages/site/page.blade.php +++ b/resources/views/pages/site/page.blade.php @@ -0,0 +1,9 @@ +@extends('layouts.site') + +@section('content') +
+
{{ $res->title }}
+
{!! $res->message !!}
+
+ +@endsection diff --git a/resources/views/pages/site/post.blade.php b/resources/views/pages/site/post.blade.php index 45be6fd..e3cf540 100644 --- a/resources/views/pages/site/post.blade.php +++ b/resources/views/pages/site/post.blade.php @@ -1,158 +1,26 @@ - +@extends('layouts.site') - +
+
{{ $res[0]['title'] }}
+
+ + + {{ $res[0]['showname'] }} + 、 + {{ $res[0]['publish_date'] }}で公開 +
+
+ {!! $res[0]['message'] !!} +
+
+
+
+
コメントは見つかれませんでした。
+
+
+
+
+@endsection diff --git a/resources/views/pages/site/profile.blade.php b/resources/views/pages/site/profile.blade.php new file mode 100644 index 0000000..94bd13f --- /dev/null +++ b/resources/views/pages/site/profile.blade.php @@ -0,0 +1,5 @@ +@extends('layouts.site') + +@section('content') + +@endsection diff --git a/resources/views/pages/site/register.blade.php b/resources/views/pages/site/register.blade.php new file mode 100644 index 0000000..2a859c2 --- /dev/null +++ b/resources/views/pages/site/register.blade.php @@ -0,0 +1,58 @@ +@extends('layouts.site') + +@section('content') + +
+
新規登録
+
+
+
ユーザー名 必須
+
+
+
+
パスワード 必須
+
+
+
+
パスワード確認 必須
+
+
+
+
電子メール 必須
+
+
+
+
+
+
+
+
性別
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+
+ +@endsection diff --git a/routes/view/bash.php b/routes/view/bash.php index ad52620..76e1d9f 100644 --- a/routes/view/bash.php +++ b/routes/view/bash.php @@ -1,3 +1,3 @@