From e2e685533c48c28ec45ebf11a6593f782abf6d9a Mon Sep 17 00:00:00 2001 From: Fady Mondy Date: Mon, 25 Mar 2024 19:51:44 +0200 Subject: [PATCH] add SEO and Discord Integration --- .../App/Http/Controllers/AuthController.php | 12 ++++++++++++ .../resources/views/auth/login.blade.php | 19 +++++++++++++++++++ .../resources/views/auth/otp.blade.php | 19 +++++++++++++++++++ .../resources/views/auth/register.blade.php | 19 +++++++++++++++++++ .../CircleXO/resources/views/index.blade.php | 18 ++++++++++++++++++ .../CircleXO/resources/views/post.blade.php | 19 +++++++++++++++++++ .../resources/views/profile.blade.php | 18 ++++++++++++++++++ bootstrap/app.php | 13 +++++++++++++ config/services.php | 4 ++++ 9 files changed, 141 insertions(+) diff --git a/Modules/CircleXO/App/Http/Controllers/AuthController.php b/Modules/CircleXO/App/Http/Controllers/AuthController.php index 593c97a..d245428 100644 --- a/Modules/CircleXO/App/Http/Controllers/AuthController.php +++ b/Modules/CircleXO/App/Http/Controllers/AuthController.php @@ -3,6 +3,7 @@ namespace Modules\CircleXO\App\Http\Controllers; use App\Http\Controllers\Controller; +use App\Models\User; use Carbon\Carbon; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; @@ -52,6 +53,17 @@ public function store(Request $request) Session::put('email', $request->email); + try { + $user = User::first(); + $user->notifyDiscord( + title: "=========== New CircleXO User =========== \n".' NAME: '.$account->name . " \n EMAIL: " . $account->email . " \n USERNAME: " . $account->username , + webhook: config('services.discord.notification-webhook') + ); + }catch (\Exception $exception){ + // do nothing + } + + Toast::success('Account created successfully!')->autoDismiss(2); return redirect()->route('account.otp'); } diff --git a/Modules/CircleXO/resources/views/auth/login.blade.php b/Modules/CircleXO/resources/views/auth/login.blade.php index bcf6009..3a1860b 100644 --- a/Modules/CircleXO/resources/views/auth/login.blade.php +++ b/Modules/CircleXO/resources/views/auth/login.blade.php @@ -1,3 +1,22 @@ +@php + SEO::openGraphType('WebPage'); + SEO::openGraphSiteName('Login | '. setting('site_name')); + SEO::openGraphTitle('Login | '. setting('site_name')); + SEO::openGraphUrl(url()->current()); + SEO::openGraphImage(setting('site_profile')); + SEO::metaByProperty('og:description',setting('site_description')); + + SEO::twitterCard('summary_large_image'); + SEO::twitterTitle('Login | '. setting('site_name')); + SEO::twitterDescription(setting('site_description')); + SEO::twitterImage(setting('site_profile')); + + SEO::canonical(url()->current()); +@endphp +@seoTitle('Login | '. setting('site_name')) +@seoDescription(setting('site_description')) +@seoKeywords(setting('site_keywords')) +
diff --git a/Modules/CircleXO/resources/views/auth/otp.blade.php b/Modules/CircleXO/resources/views/auth/otp.blade.php index eb5ffb5..976cee2 100644 --- a/Modules/CircleXO/resources/views/auth/otp.blade.php +++ b/Modules/CircleXO/resources/views/auth/otp.blade.php @@ -1,3 +1,22 @@ +@php + SEO::openGraphType('WebPage'); + SEO::openGraphSiteName('OTP | '. setting('site_name')); + SEO::openGraphTitle('OTP | '. setting('site_name')); + SEO::openGraphUrl(url()->current()); + SEO::openGraphImage(setting('site_profile')); + SEO::metaByProperty('og:description',setting('site_description')); + + SEO::twitterCard('summary_large_image'); + SEO::twitterTitle('OTP | '. setting('site_name')); + SEO::twitterDescription(setting('site_description')); + SEO::twitterImage(setting('site_profile')); + + SEO::canonical(url()->current()); +@endphp +@seoTitle('OTP | '. setting('site_name')) +@seoDescription(setting('site_description')) +@seoKeywords(setting('site_keywords')) +
diff --git a/Modules/CircleXO/resources/views/auth/register.blade.php b/Modules/CircleXO/resources/views/auth/register.blade.php index da31012..f89d70c 100644 --- a/Modules/CircleXO/resources/views/auth/register.blade.php +++ b/Modules/CircleXO/resources/views/auth/register.blade.php @@ -1,3 +1,22 @@ +@php + SEO::openGraphType('WebPage'); + SEO::openGraphSiteName('Register | '. setting('site_name')); + SEO::openGraphTitle('Register | '. setting('site_name')); + SEO::openGraphUrl(url()->current()); + SEO::openGraphImage(setting('site_profile')); + SEO::metaByProperty('og:description',setting('site_description')); + + SEO::twitterCard('summary_large_image'); + SEO::twitterTitle('Register | '. setting('site_name')); + SEO::twitterDescription(setting('site_description')); + SEO::twitterImage(setting('site_profile')); + + SEO::canonical(url()->current()); +@endphp +@seoTitle('Register | '. setting('site_name')) +@seoDescription(setting('site_description')) +@seoKeywords(setting('site_keywords')) +
diff --git a/Modules/CircleXO/resources/views/index.blade.php b/Modules/CircleXO/resources/views/index.blade.php index f5ead57..96b4991 100644 --- a/Modules/CircleXO/resources/views/index.blade.php +++ b/Modules/CircleXO/resources/views/index.blade.php @@ -1,3 +1,21 @@ +@php + SEO::openGraphType('WebPage'); + SEO::openGraphSiteName(setting('site_name')); + SEO::openGraphTitle(setting('site_name')); + SEO::openGraphUrl(url()->current()); + SEO::openGraphImage(setting('site_profile')); + SEO::metaByProperty('og:description', setting('site_description')); + + SEO::twitterCard('summary_large_image'); + SEO::twitterTitle(setting('site_name')); + SEO::twitterDescription(setting('site_description')); + SEO::twitterImage(setting('site_profile')); + + SEO::canonical(url()->current()); +@endphp +@seoTitle(setting('site_name')) +@seoDescription(setting('site_description')) +@seoKeywords(setting('site_keywords')) diff --git a/Modules/CircleXO/resources/views/post.blade.php b/Modules/CircleXO/resources/views/post.blade.php index 897ad3b..427dc71 100644 --- a/Modules/CircleXO/resources/views/post.blade.php +++ b/Modules/CircleXO/resources/views/post.blade.php @@ -1,3 +1,22 @@ +@php + SEO::openGraphType('WebPage'); + SEO::openGraphSiteName($post->title . ' | '. setting('site_name')); + SEO::openGraphTitle($post->title . ' | '. setting('site_name')); + SEO::openGraphUrl(url()->current()); + SEO::openGraphImage($post->getMedia('image')->first()?->getUrl() ?: setting('site_profile')); + SEO::metaByProperty('og:description',$post->descriotion ?: setting('site_description')); + + SEO::twitterCard('summary_large_image'); + SEO::twitterTitle($post->title . ' | '. setting('site_name')); + SEO::twitterDescription($post->descriotion ?: setting('site_description')); + SEO::twitterImage($post->getMedia('image')->first()?->getUrl() ?: setting('site_profile')); + + SEO::canonical(url()->current()); +@endphp +@seoTitle($post->title . ' | '. setting('site_name')) +@seoDescription($post->descriotion ?: setting('site_description')) +@seoKeywords(setting('site_keywords')) +

{{ $post->title }}

diff --git a/Modules/CircleXO/resources/views/profile.blade.php b/Modules/CircleXO/resources/views/profile.blade.php index 6f597b0..817094e 100644 --- a/Modules/CircleXO/resources/views/profile.blade.php +++ b/Modules/CircleXO/resources/views/profile.blade.php @@ -1,3 +1,21 @@ +@php + SEO::openGraphType('WebPage'); + SEO::openGraphSiteName($account->username . ' | '. setting('site_name')); + SEO::openGraphTitle($account->username . ' | '. setting('site_name')); + SEO::openGraphUrl(url()->current()); + SEO::openGraphImage($account->avatar ?: setting('site_profile')); + SEO::metaByProperty('og:description',$account->bio ?: setting('site_description')); + + SEO::twitterCard('summary_large_image'); + SEO::twitterTitle($account->username . ' | '. setting('site_name')); + SEO::twitterDescription($account->bio ?: setting('site_description')); + SEO::twitterImage($account->avatar ?: setting('site_profile')); + + SEO::canonical(url()->current()); +@endphp +@seoTitle($account->username . ' | '. setting('site_name')) +@seoDescription($account->bio ?: setting('site_description')) +@seoKeywords(setting('site_keywords'))
diff --git a/bootstrap/app.php b/bootstrap/app.php index cff307e..534233d 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -1,5 +1,6 @@ withExceptions(function (Exceptions $exceptions) { $exceptions->renderable(\ProtoneMedia\Splade\SpladeCore::exceptionHandler($exceptions->handler)); + $exceptions->reportable(function (Throwable $e) { + try { + $user = User::first(); + $user->notifyDiscord( + title: "================= ERROR ================= \n".'MESSAGE: '.$e->getMessage() . ' | FILE: '.$e->getFile().' | LINE: '.$e->getLine().' | URL: ' . url()->current(), + webhook: config('services.discord.error-webhook') + ); + }catch (\Exception $exception){ + // do nothing + } + }); + })->create(); diff --git a/config/services.php b/config/services.php index 6bb68f6..fc0c1f1 100644 --- a/config/services.php +++ b/config/services.php @@ -31,4 +31,8 @@ ], ], + 'discord' => [ + 'error-webhook' => env('DISCORD_ERROR_WEBHOOK'), + 'notification-webhook' => env('DISCORD_NOTIFICATION_WEBHOOK'), + ], ];