diff --git a/.bash_logout b/.bash_logout deleted file mode 100644 index de4f5f75d..000000000 --- a/.bash_logout +++ /dev/null @@ -1,7 +0,0 @@ -# ~/.bash_logout: executed by bash(1) when login shell exits. - -# when leaving the console clear the screen to increase privacy - -if [ "$SHLVL" = 1 ]; then - [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q -fi diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 8f0de65c5..000000000 --- a/.editorconfig +++ /dev/null @@ -1,18 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -indent_size = 4 -indent_style = space -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -trim_trailing_whitespace = false - -[*.{yml,yaml}] -indent_size = 2 - -[docker-compose.yml] -indent_size = 4 diff --git a/.env.example b/.env.example deleted file mode 100644 index 9abaed959..000000000 --- a/.env.example +++ /dev/null @@ -1,89 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY= -APP_DEBUG=true -APP_TIMEZONE=UTC -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -APP_MAINTENANCE_STORE=database - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST= -DB_PORT=3306 -DB_DATABASE= -DB_USERNAME= -DB_PASSWORD= - -SESSION_DRIVER=database -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -SCOUT_DRIVER=meilisearch -SCOUT_PREFIX= -MEILISEARCH_HOST= -MEILISEARCH_KEY= - -MAIL_MAILER=log -MAIL_HOST=127.0.0.1 -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -MAIL_ENCRYPTION=null -MAIL_FROM_ADDRESS="hello@example.com" -MAIL_FROM_NAME="${APP_NAME}" -MAIL_SEND_METHOD=directly - -ADMIN_PANEL_PATH=admin - -CF_TURNSTILE_SITE_KEY= -CF_TURNSTILE_SECRET_KEY= - -ANALYTICS_PROPERTY_ID= - -GEMINI_API_KEY= - -NOTIFICATION_SEND_METHOD=directly - -FONTAWESOME_PRO=false - -# Theme asset overrides (optional) -# Point this directory to your gitignored Vue theme (e.g. resources/js/CryptographVue) -THEME_ASSET_DIR= -# Override entries only if they do not live under THEME_ASSET_DIR/app.(css|js) -THEME_CSS_ENTRY= -THEME_JS_ENTRY= -# Absolute or relative path to a replacement Tailwind config file -# (CommonJS module, e.g. tailwind.theme.cjs). -# Leave empty to use the default repository config. -THEME_TAILWIND_CONFIG= -# Optional directory that contains the theme-specific package.json/node_modules. -# Defaults to THEME_ASSET_DIR when present. -THEME_PACKAGE_DIR= diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index f1e902a02..000000000 --- a/.gitattributes +++ /dev/null @@ -1,14 +0,0 @@ -* text=auto eol=lf - -*.blade.php diff=html - -*.css linguist-detectable=false -*.js linguist-detectable=false -*.html linguist-detectable=false - -*.php diff=php - - -/.github export-ignore -CHANGELOG.md export-ignore -.styleci.yml export-ignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 97750a4e0..000000000 --- a/.gitignore +++ /dev/null @@ -1,37 +0,0 @@ -/.phpunit.cache -/node_modules -/public/build -/public/hot -/public/storage -/storage/*.key -/vendor -.env -.env.backup -.env.production -.phpunit.result.cache -Homestead.json -Homestead.yaml -auth.json -npm-debug.log -yarn-error.log -/.fleet -/.idea -/.vscode -/storage/analytics - -# Project exclude paths -/storage/app/* -/storage/debugbar/ -/storage/framework/* -composer.lock -config/debugbar.php -/resources/views/themes -/public/themes/fontawesome -/public/robots.txt -ads.txt -app-ads.txt -/Modules -modules_statuses.json -*~ -public/acusensor.php -/resources/js/ diff --git a/.styleci.yml b/.styleci.yml deleted file mode 100644 index 9daadf161..000000000 --- a/.styleci.yml +++ /dev/null @@ -1,9 +0,0 @@ -php: - preset: laravel - disabled: - - no_unused_imports - finder: - not-name: - - index.php -js: true -css: true diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index 0fd4ea5e5..000000000 --- a/AGENTS.md +++ /dev/null @@ -1,32 +0,0 @@ -# Repository Guidelines - -## Project Structure & Module Organization -- Core Laravel code sits in `app/` with environment-wide config in `config/` and shared routes in `routes/`. -- Feature modules (`Modules/Podcast`, `Modules/XSayfaMuhasebe`) mirror the nwidart layout (`app/`, `resources/`, `routes/`, `tests/`) and are toggled through `modules_statuses.json`. -- Shared views and assets belong in `resources/` (`views/`, `js/app.js`, `lang/`), compiled files deploy from `public/`, and `database/migrations` or `seeders` control schema updates alongside Meilisearch index settings. - -## Build, Test, and Development Commands -- Bootstrap dependencies with `composer install` and `npm install`; repeat `npm install` inside a module when its `package.json` changes. -- Use `php artisan serve` for the backend, `npm run dev` for shared assets, and `npm run dev` from a module directory to watch module bundles. -- Keep data aligned via `php artisan migrate --seed` and confirm module state with `php artisan module:list`. -- Quality checks: `./vendor/bin/pint` formats PHP, `npm run lint` runs ESLint, and `php artisan scout:sync-index-settings` refreshes search mappings after schema changes. - -## Coding Style & Naming Conventions -- Follow PSR-12 with four-space indentation (`.editorconfig`, `.styleci.yml`); controllers, jobs, and listeners use `StudlyCase` suffixes within the proper namespace. -- Use camelCase in PHP, snake_case for database columns, and PascalCase for React or Blade component filenames. -- Prefer `FormRequest` classes for validation and mirror module namespaces (`Modules\\...`) when adding services, events, or tests. - -## Testing Guidelines -- Place HTTP and integration coverage in `tests/Feature/*Test.php`; isolated logic goes in `tests/Unit`. -- Module-specific tests live in `Modules//tests`; run targeted suites with `php artisan test --filter=Podcast` or run everything via `php artisan test`. -- Cover queue jobs, events, and Meilisearch interactions when modifying those touchpoints. - -## Commit & Pull Request Guidelines -- Write small, imperative commits (`Fix authors view fallback`) and reference issues with `Fixes #123` where relevant. -- Before submitting a PR, run linting and tests, summarise the change, list manual checks, and attach UI screenshots when Blade or Inertia output changes. -- Note any new environment keys (Meilisearch, Gemini, OpenAI, Cloudflare Turnstile) or PHP extension requirements so reviewers can reproduce. - -## Security & Configuration Tips -- Never commit `.env`; update `.env.example` instead and remind deployers about required PHP functions (`proc_*`, `escapeshell*`). -- Queue behaviour respects `MAIL_SEND_METHOD` and `NOTIFICATION_SEND_METHOD`; call out changes that affect worker throughput or Horizon tuning. -- For new external integrations, add config defaults under `config/` and update the README installation checklist for operators. diff --git a/README.md b/README.md deleted file mode 100644 index 0987f3f6a..000000000 --- a/README.md +++ /dev/null @@ -1,166 +0,0 @@ -## About This Project -# Alpha Blog - -I had previously designed the database of this system using MongoDB, but due to various compatibility issues, I had to redesign it using MySQL. - -The in-site search engine is provided by Meilisearch. - - -#### The following PHP functions need to be enabled on the server for this system to work: - -```bash -escapeshellarg, escapeshellcmd, proc_open, proc_get_status, proc_close -``` - -### For installation after git clone process - -```bash -composer update --no-dev -``` - -```bash -cp .env.example .env -``` - -Edit the .env file for database information, Meilisearch, Email SMTP and Cloudflare Turnstile (similar to Google Recaptcha) definitions - -```bash -php artisan key:generate -``` - -```bash -php artisan storage:link -``` - -```bash -php artisan migrate -``` - -## MeiliSearch Integration -You need to use Meilisearch for the in-site search engine. After registering at https://www.meilisearch.com/, you can get the master key and add it to your .env file with the address given to you. If you do not want to create an account on the Meilisearch website, you can use it by installing it on your own server. You can get information about this from this [link](https://niyazi.net/en/meilisearch-and-laravel-integration). - - -```bash -MEILISEARCH_HOST= -MEILISEARCH_KEY= -``` - -```bash -php artisan scout:sync-index-settings -``` - -#### After all this, if you want, you can change the admin panel path from the ADMIN_PANEL_PATH variable in the .env file - -```bash -php artisan optimize -``` - -To create a user after these operations - -```bash -php artisan app:create-user -``` - -To delete posts and comments in the trash, as well as words you don't intend to use in search words - -```bash -php artisan app:clear-trash -``` - -Cron job definition to automatically delete unused search words, trashed posts and comments from the last 30 days - -```bash -* * * * * php artisan schedule:run >> /dev/null 2>&1 -``` - -or -```bash -0 0 * * * php artisan clear-trash >> /dev/null 2>&1 -``` - -### For activate Gemini Chatbot -If you want to activate Gemini Chatbot you have to get an API key from https://makersuite.google.com/app/apikey and add it to the .env file - -```bash -GEMINI_API_KEY= -``` - -### For activate ChatGPT Chatbot -If you want to activate ChatGPT Chatbot you have to get an API key from https://platform.openai.com/api-keys and add it to the .env file - -```bash -OPENAI_API_KEY= -``` - -Also you can change ChatGPT model from the .env file - -```bash -OPENAI_MODEL= -``` - -## Cloudflare Turnstile Integration -By creating an account on Cloudflare, you can get your site key and secret key for Turnstile and add it to your .env file. - -```bash -CF_TURNSTILE_SITE_KEY= -CF_TURNSTILE_SECRET_KEY= -``` - -### Note -By default, notification and contact emails are sent directly. If you change this to queue in the .env file, these sends will be queued and happen in the background - -```bash -MAIL_SEND_METHOD=queue -NOTIFICATION_SEND_METHOD=queue -``` - - - -## Features -- Blogs with Categories -- Page -- Personal notes - - Your personal notes are stored encrypted in the database. - - Your encryption key is not stored in the database. If you forget your encryption key, you will not be able to access your notes. - - Your notes can not accessed by the admin or any other user. -- In-site search engine (Meilisearch) - - The words searched in the search engine are kept in the database - - It saves the words that are not found among the words in the on-site searches to generate ideas for content on that topic later. -- Admin panel -- OneSignal Push Notification for Admin - - New Comment Notification - - Searched Word Notification -- Webauthn Login -- 2-Factor Authentication -- AI Chatbot - Based by Gemini or ChatGPT -- IP Filter (Blacklist and Whitelist) -- User management -- Cloudflare Turnstile (similar to Google Recaptcha) -- Email SMTP -- Media Library -- MySQL -- Laravel 12 -- PHP 8.3 -- Bootstrap 5 -- Font Awesome 6.5.1 - -## Theme-Specific Asset Overrides -Each deployment can keep its Vue theme (and its npm dependencies) outside of git. Point `THEME_ASSET_DIR` to that gitignored folder (for example `resources/js/CryptographVue`) and the application will automatically treat `/app.css` and `/app.js` as the default Vite inputs, expose the directory through `config('theme.paths.asset_dir')`, and install the theme’s `package.json` before every `npm run dev/build/preview`. If your theme uses different filenames, override them explicitly: - -```bash -THEME_ASSET_DIR=resources/js/CryptographVue -THEME_CSS_ENTRY= -THEME_JS_ENTRY= -THEME_TAILWIND_CONFIG=resources/js/CryptographVue/tailwind.config.js -THEME_PACKAGE_DIR= -``` - -`THEME_CSS_ENTRY` / `THEME_JS_ENTRY` fall back to `/app.css|app.js` when left empty, while `THEME_PACKAGE_DIR` defaults to the same directory. Tailwind configs can export either a full config object or a function that receives the base config and returns the final one; **for now the override file must be CommonJS** (`module.exports = { ... }` or rename it to `.cjs`) so it can be loaded synchronously. - -When the resolved package directory (from `THEME_PACKAGE_DIR`, `THEME_ASSET_DIR` or the entry files) contains a `package.json`, the npm scripts automatically run `npm install` there **only when needed** (missing `node_modules` or a newer `package-lock.json`). You can force a reinstall manually via: - -```bash -npm run theme:install -``` - -This keeps shared dependencies such as Pusher in the root `package.json` while allowing each site to own its bespoke theme, package.json and node_modules without committing them to git or affecting other deployments. diff --git a/app/Actions/CacheClear.php b/app/Actions/CacheClear.php deleted file mode 100644 index d81bc649b..000000000 --- a/app/Actions/CacheClear.php +++ /dev/null @@ -1,34 +0,0 @@ -cf_email, $cf->cf_key); - $adapter = new Guzzle($key); - $zones = new Zones($adapter); - $zoneID = $zones->getZoneID($cf->domain); - $zones->cachePurgeEverything($zoneID); - } - - return true; - } - return false; - } -} diff --git a/app/Actions/Fortify/CreateNewUser.php b/app/Actions/Fortify/CreateNewUser.php deleted file mode 100644 index 7bf18d0a4..000000000 --- a/app/Actions/Fortify/CreateNewUser.php +++ /dev/null @@ -1,40 +0,0 @@ - $input - */ - public function create(array $input): User - { - Validator::make($input, [ - 'name' => ['required', 'string', 'max:255'], - 'email' => [ - 'required', - 'string', - 'email', - 'max:255', - Rule::unique(User::class), - ], - 'password' => $this->passwordRules(), - ])->validate(); - - return User::create([ - 'name' => $input['name'], - 'email' => $input['email'], - 'password' => Hash::make($input['password']), - ]); - } -} diff --git a/app/Actions/Fortify/PasswordValidationRules.php b/app/Actions/Fortify/PasswordValidationRules.php deleted file mode 100644 index 76b19d330..000000000 --- a/app/Actions/Fortify/PasswordValidationRules.php +++ /dev/null @@ -1,18 +0,0 @@ -|string> - */ - protected function passwordRules(): array - { - return ['required', 'string', Password::default(), 'confirmed']; - } -} diff --git a/app/Actions/Fortify/ResetUserPassword.php b/app/Actions/Fortify/ResetUserPassword.php deleted file mode 100644 index 7a57c5037..000000000 --- a/app/Actions/Fortify/ResetUserPassword.php +++ /dev/null @@ -1,29 +0,0 @@ - $input - */ - public function reset(User $user, array $input): void - { - Validator::make($input, [ - 'password' => $this->passwordRules(), - ])->validate(); - - $user->forceFill([ - 'password' => Hash::make($input['password']), - ])->save(); - } -} diff --git a/app/Actions/Fortify/UpdateUserPassword.php b/app/Actions/Fortify/UpdateUserPassword.php deleted file mode 100644 index 700563905..000000000 --- a/app/Actions/Fortify/UpdateUserPassword.php +++ /dev/null @@ -1,32 +0,0 @@ - $input - */ - public function update(User $user, array $input): void - { - Validator::make($input, [ - 'current_password' => ['required', 'string', 'current_password:web'], - 'password' => $this->passwordRules(), - ], [ - 'current_password.current_password' => __('The provided password does not match your current password.'), - ])->validateWithBag('updatePassword'); - - $user->forceFill([ - 'password' => Hash::make($input['password']), - ])->save(); - } -} diff --git a/app/Actions/Fortify/UpdateUserProfileInformation.php b/app/Actions/Fortify/UpdateUserProfileInformation.php deleted file mode 100644 index 0930ddf38..000000000 --- a/app/Actions/Fortify/UpdateUserProfileInformation.php +++ /dev/null @@ -1,58 +0,0 @@ - $input - */ - public function update(User $user, array $input): void - { - Validator::make($input, [ - 'name' => ['required', 'string', 'max:255'], - - 'email' => [ - 'required', - 'string', - 'email', - 'max:255', - Rule::unique('users')->ignore($user->id), - ], - ])->validateWithBag('updateProfileInformation'); - - if ($input['email'] !== $user->email && - $user instanceof MustVerifyEmail) { - $this->updateVerifiedUser($user, $input); - } else { - $user->forceFill([ - 'name' => $input['name'], - 'email' => $input['email'], - ])->save(); - } - } - - /** - * Update the given verified user's profile information. - * - * @param array $input - */ - protected function updateVerifiedUser(User $user, array $input): void - { - $user->forceFill([ - 'name' => $input['name'], - 'email' => $input['email'], - 'email_verified_at' => null, - ])->save(); - - $user->sendEmailVerificationNotification(); - } -} diff --git a/app/Actions/LanguageAction.php b/app/Actions/LanguageAction.php deleted file mode 100644 index dcde5b40a..000000000 --- a/app/Actions/LanguageAction.php +++ /dev/null @@ -1,108 +0,0 @@ -segment(1), $except)) { - if (session()->has('language')) { - if ($request->segment(1) == session('language')) { - $language = $languages->getLanguage(session('language')); - } - elseif ($request->segment(1) == null) { - $language = $languages->getLanguage(app('default_language')->code); - } - else { - $language = self::language($languages); - } - } - else { - if ($request->segment(1) == null) { - $language = $languages->getLanguage(app('default_language')?->code); - } - else { - $language = self::language($languages); - } - } - } - else { - if (session()->has('language')) { - $language = $languages->getLanguage(session('language')); - if ($language == null) { - $route = RouteRedirectAction::RouteRedirect($request); - if ($route) { - if ((int)$route->redirect_code === 404) { - abort(404); - } else { - return redirect($route->new_url, (int) $route->redirect_code); - } - } else { - abort(404); - } - } - } - else { - $language = $languages->getLanguage( - explode('-', explode(',', $request->server('HTTP_ACCEPT_LANGUAGE') - )[0])[0] - ); - if (!$language) { - $language = $languages->getLanguage(app('default_language')->code); - } - } - } - - session()->put('language', $language?->code); - session()->put('language_flag', $language?->flag); - session()->put('language_name', $language?->name); - - app()->setLocale($language?->code); - setlocale(LC_ALL, $language?->code); - setlocale(LC_TIME, $language?->code); - } - } - - private static function language($languages){ - $language = $languages->getLanguage(request()->segment(1)); - if ($language == null) { - $route = RouteRedirectAction::RouteRedirect(request()); - if ($route) { - if ((int)$route->redirect_code === 404) { - abort(404); - } else { - return redirect($route->new_url, (int) $route->redirect_code); - } - } else { - abort(404); - } - } - return $language; - } -} diff --git a/app/Actions/RouteRedirectAction.php b/app/Actions/RouteRedirectAction.php deleted file mode 100644 index 027756228..000000000 --- a/app/Actions/RouteRedirectAction.php +++ /dev/null @@ -1,25 +0,0 @@ -path().($request->getQueryString() ? '?'.$request->getQueryString() : ''); - if (Cache::has(config('cache.prefix').'routes_'.Str::slug($route_path))) { - $route = Cache::get(config('cache.prefix').'routes_'.Str::slug($route_path)); - } else { - $route = Cache::rememberForever(config('cache.prefix').'route_'.Str::slug($route_path), - function () use ($route_path) { - return RouteRedirects::where('old_url', $route_path)->first(); - }); - } - - return $route; - } -} diff --git a/app/Actions/SessionAction.php b/app/Actions/SessionAction.php deleted file mode 100644 index 30a074b01..000000000 --- a/app/Actions/SessionAction.php +++ /dev/null @@ -1,50 +0,0 @@ -ip(); - $reader = new Reader(storage_path('GeoLite2-City.mmdb')); - - try{ - $record = $reader->city($ip); - $country_code = $record->country->isoCode; - $country_name = $record->country->name; - $region_name = $record->mostSpecificSubdivision->name; - $city_name = $record->city->name; - $zip_code = $record->postal->code; - } - catch (AddressNotFoundException $e){ - $country_code = null; - $country_name = null; - $region_name = null; - $city_name = null; - $zip_code = null; - } - - UserSessions::updateOrInsert([ - 'session_id' => session()->getId(), - 'user_id' => auth()->id(), - ], [ - 'ip_address' => $ip, - 'user_agent' => $request->userAgent(), - 'country_code' => $country_code, - 'country_name' => $country_name, - 'region_name' => $region_name, - 'city_name' => $city_name, - 'zip_code' => $zip_code, - ]); - } -} diff --git a/app/Actions/SocialNetworkSaveAction.php b/app/Actions/SocialNetworkSaveAction.php deleted file mode 100644 index 005ebc745..000000000 --- a/app/Actions/SocialNetworkSaveAction.php +++ /dev/null @@ -1,53 +0,0 @@ -first(); - if ($social == null) { - $social = new SocialNetworks; - } - $social->user_id = $user_id; - } else { - $social = SocialNetworks::where('type', 'website')->first(); - if ($social == null) { - $social = new SocialNetworks; - } - } - $social->facebook = $request->facebook; - $social->instagram = $request->instagram; - $social->linkedin = $request->linkedin; - $social->github = $request->github; - $social->devto = $request->devto; - $social->medium = $request->medium; - $social->youtube = $request->youtube; - $social->reddit = $request->reddit; - $social->xbox = $request->xbox; - $social->deviantart = $request->deviantart; - $social->website = $request->website; - $social->x = $request->x; - $social->twitch = $request->twitch; - $social->telegram = $request->telegram; - $social->discord = $request->discord; - $social->type = $type; - $status = $social->save(); - DB::commit(); - - return $status; - } catch (Exception $e) { - DB::rollBack(); - - return false; - } - } -} diff --git a/app/Actions/UserAction.php b/app/Actions/UserAction.php deleted file mode 100644 index 9bcef5449..000000000 --- a/app/Actions/UserAction.php +++ /dev/null @@ -1,56 +0,0 @@ -name = $request->name; - $user->surname = $request->surname; - $user->nickname = $request->nickname; - $user->location = $request->location; - $user->about = $request->about; - $user->education = $request->education; - $user->job_title = $request->job_title; - $user->skills = $request->skills; - if ($request->has('role')) { - $user->role = $request->role; - } - $user->save(); - DB::commit(); - - return response()->json([ - 'status' => 'success', - 'message' => __('profile.save_success'), - ], 200); - } catch (\Exception $e) { - DB::rollBack(); - - return response()->json([ - 'status' => 'error', - 'message' => __('profile.save_error'), - ], 422); - } - } - - public static function changePassword($request, $user): bool - { - $user->password = Hash::make($request->password); - - return $user->save(); - } - - public static function changeEmail($request, $user): bool - { - $user->email = $request->email; - - return $user->save(); - } -} diff --git a/app/Actions/WebAuthnAction.php b/app/Actions/WebAuthnAction.php deleted file mode 100644 index b7644f4c3..000000000 --- a/app/Actions/WebAuthnAction.php +++ /dev/null @@ -1,34 +0,0 @@ -id)->where('id', $request->post('webauthn_id'))->first(); - $webauthn->delete(); - - if ($webauthn::where('authenticatable_id', $user->id)->count() == 0) { - $auth_user = User::where('id', $user->id)->first(); - $auth_user->webauthn = false; - $auth_user->save(); - } - - return response()->json(['status' => 'success']); - } - - public function rename(Request $request, WebAuthnCredential $webauthn, $user): JsonResponse - { - $webauthn = $webauthn::where('authenticatable_id', $user->id)->where('id', $request->post('webauthn_id'))->first(); - $webauthn->device_name = $request->post('device_name'); - $webauthn->save(); - - return response()->json(['status' => true]); - } -} diff --git a/app/Console/Commands/ClearTrash.php b/app/Console/Commands/ClearTrash.php deleted file mode 100644 index 39769843d..000000000 --- a/app/Console/Commands/ClearTrash.php +++ /dev/null @@ -1,36 +0,0 @@ -forceDelete(); - Posts::onlyTrashed()->forceDelete(); - Search::where('think', false)->forceDelete(); - $this->info('Recycle bin emptied successfully'); - } -} diff --git a/app/Console/Commands/CreateUser.php b/app/Console/Commands/CreateUser.php deleted file mode 100644 index 0e8cff354..000000000 --- a/app/Console/Commands/CreateUser.php +++ /dev/null @@ -1,61 +0,0 @@ -ask('Enter your name'); - $surname = $this->ask('Enter your surname'); - $username = $this->ask('Enter username'); - $nickname = $this->ask('Enter nickname'); - $email = $this->ask('Enter email'); - $password = $this->secret('Enter password'); - $password_confirmation = $this->secret('Enter password again'); - - if ($password != $password_confirmation) { - $this->error('Passwords do not match'); - - return; - } - - $user = new User; - $user->name = $name; - $user->surname = $surname; - $user->username = $username; - $user->nickname = $nickname; - $user->email = $email; - $user->password = Hash::make($password); - - if ($user::count() == 0) { - $user->role = 'owner'; - } else { - $user->role = 'admin'; - } - $user->save(); - - $this->info('User created successfully'); - } -} diff --git a/app/Helpers/functions.php b/app/Helpers/functions.php deleted file mode 100644 index 938cc2577..000000000 --- a/app/Helpers/functions.php +++ /dev/null @@ -1,76 +0,0 @@ -setTimezone($timezone); - } - - if ($locale) { - $dt->locale($locale); - } - - if ($diff_for_humans) { - return $dt->diffForHumans(); - } else { - return $dt->translatedFormat($format); - } - } catch (InvalidFormatException $e) { - abort(404); - } -} - -function replace_characters($text): array|string|null -{ - return preg_replace("/([^\p{Latin}A-Za-z0-9\"', ._@öÖçÇşŞğĞüÜıİА-Яа-яЁё|₺€$\p{Cyrillic}-])/um", '', $text); -} - -function GetPost($request): array|string|null -{ - if ($request != null) { - if (is_array($request)) { - return addslashes(strip_tags($request[0])); - } else { - return addslashes(strip_tags($request)); - } - } - - return null; - -} - -function content($content): string -{ - return addslashes(strip_tags($content, '


  • - - - - - - - - @include('panel.post.comments.modal') -@endsection - -@section('script') - @include('panel.post.comments.js') -@endsection diff --git a/resources/views/panel/post/comments/js.blade.php b/resources/views/panel/post/comments/js.blade.php deleted file mode 100644 index f805c0e9b..000000000 --- a/resources/views/panel/post/comments/js.blade.php +++ /dev/null @@ -1,265 +0,0 @@ - - diff --git a/resources/views/panel/post/comments/modal.blade.php b/resources/views/panel/post/comments/modal.blade.php deleted file mode 100644 index 4e8f6859b..000000000 --- a/resources/views/panel/post/comments/modal.blade.php +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/resources/views/panel/post/history/index.blade.php b/resources/views/panel/post/history/index.blade.php deleted file mode 100644 index b7b1eddea..000000000 --- a/resources/views/panel/post/history/index.blade.php +++ /dev/null @@ -1,147 +0,0 @@ -@extends('panel.base') -@section('title', __('post.history')) - -@section('breadcrumb_link') - -@endsection -@section('content') -
    -
    -

    - @lang('post.history') -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    - - - - - - - - - - - @forelse($posts->history as $post) - - - - - - - @empty - - - - @endforelse - - - - - - - - - - -
    @lang('post.title')@lang('general.created_at')@lang('general.updated_at')@lang('general.actions')
    - - {{stripslashes($post->title)}} - - - {{dateformat($post->created_at, format: 'd M. Y D. H:i:s', timezone: config('app.timezone'), locale: session('language'))}} - - {{dateformat($post->updated_at, format: 'd M. Y D. H:i:s', timezone: config('app.timezone'), locale: session('language'))}} - - - - -
    - @lang('post.no_posts_found') -
    @lang('post.title')@lang('general.created_at')@lang('general.updated_at')@lang('general.actions')
    -
    -
    - -
    -
    -
    -
    -@endsection -@section('script') - -@endsection diff --git a/resources/views/panel/post/history/show.blade.php b/resources/views/panel/post/history/show.blade.php deleted file mode 100644 index 4f22634eb..000000000 --- a/resources/views/panel/post/history/show.blade.php +++ /dev/null @@ -1,207 +0,0 @@ -@extends('panel.base') -@section('title', __('post.history').' - '.$history->created_at) - -@section('breadcrumb_link') - -@endsection -@section('content') -
    -
    -

    - @lang('post.history') -

    -
    -
    -
    -
    -
    -
    -
    - {!! $title !!} -
    - {!! $slug !!} -
    -
    -
    -
    -
    - {!! stripslashesNull($content) !!} -
    -
    -
    - -
    -
    -
    -
    -
    -@endsection -@section('script') - - -@endsection diff --git a/resources/views/panel/post/index.blade.php b/resources/views/panel/post/index.blade.php deleted file mode 100644 index bcd6f718d..000000000 --- a/resources/views/panel/post/index.blade.php +++ /dev/null @@ -1,314 +0,0 @@ -@extends('panel.base') -@if($type == 'blogs') - @section('title', __('post.blogs')) -@else - @section('title', __('post.pages')) -@endif - -@section('breadcrumb_link') - -@endsection -@section('content') -
    -
    -

    - @if($type == 'blogs') - @lang('post.blogs') - @else - @lang('post.pages') - @endif -

    -
    -
    -
    -
    - - -
    -
    - - - - - @if($type == 'blogs') - - - @endif - - - - - - - - - - - - - @if($type == 'blogs') - - - @endif - - - - - - - - -
    @lang('post.title')@lang('post.category')@lang('post.views')@lang('post.media')@lang('user.username')@lang('general.created_at')@lang('general.updated_at')@lang('general.actions')
    @lang('post.title')@lang('post.category')@lang('post.views')@lang('post.media')@lang('user.username')@lang('general.created_at')@lang('general.updated_at')@lang('general.actions')
    -
    -
    - - - - - - - - - - - - @forelse($trashed as $post) - - - - - - - - @empty - - - - @endforelse - - - - - - - - - - -
    @lang('post.title')@lang('post.category')@lang('general.created_at')@lang('general.deleted_at')@lang('general.actions')
    - - {{stripslashes($post->title)}} - - - @foreach($post->categories as $category) - - - {{stripslashes($category->name)}} - - - @endforeach - {{$post->created_at}}{{$post->deleted_at}} - - - - - - -
    @lang('post.no_posts_found')
    @lang('post.title')@lang('post.category')@lang('general.created_at')@lang('general.deleted_at')@lang('general.actions')
    - {{$trashed->withQueryString()->links()}} -
    -
    - -
    -
    -
    -
    -@endsection - -@section('script') - - - - - -@endsection diff --git a/resources/views/panel/post/media.blade.php b/resources/views/panel/post/media.blade.php deleted file mode 100644 index 19bb3e72f..000000000 --- a/resources/views/panel/post/media.blade.php +++ /dev/null @@ -1,210 +0,0 @@ -@extends('panel.base') -@section('title', stripslashes($post->title). ' - Media') -@section('breadcrumb_link') - -@endsection -@section('content') -
    -
    -

    - {{stripslashes($post->title)}} -

    -
    -
    -
    -
    -
      - @foreach($post->getMedia('*') as $media) -
    • -
      - {{$post->title}} - - - - - - - - - -
      -
    • - @endforeach -
    -
    -
    -
    -
    -@endsection -@section('script') - - - - - -@endsection diff --git a/resources/views/panel/post/partials/actions.blade.php b/resources/views/panel/post/partials/actions.blade.php deleted file mode 100644 index 3e487d35b..000000000 --- a/resources/views/panel/post/partials/actions.blade.php +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/resources/views/panel/post/partials/categories.blade.php b/resources/views/panel/post/partials/categories.blade.php deleted file mode 100644 index 4d302a5fd..000000000 --- a/resources/views/panel/post/partials/categories.blade.php +++ /dev/null @@ -1,8 +0,0 @@ -@foreach($post->categories as $category) - - - {{stripslashes($category->name)}} - - -@endforeach diff --git a/resources/views/panel/post/partials/media.blade.php b/resources/views/panel/post/partials/media.blade.php deleted file mode 100644 index 35edd13bf..000000000 --- a/resources/views/panel/post/partials/media.blade.php +++ /dev/null @@ -1,6 +0,0 @@ - - - diff --git a/resources/views/panel/post/partials/title.blade.php b/resources/views/panel/post/partials/title.blade.php deleted file mode 100644 index 02ff7750f..000000000 --- a/resources/views/panel/post/partials/title.blade.php +++ /dev/null @@ -1,4 +0,0 @@ - - {{stripslashes($post->title)}} @if(!$post->is_published) - (@lang('post.draft')) @endif - diff --git a/resources/views/panel/profile/index.blade.php b/resources/views/panel/profile/index.blade.php deleted file mode 100644 index fda7ae365..000000000 --- a/resources/views/panel/profile/index.blade.php +++ /dev/null @@ -1,1220 +0,0 @@ -@extends('panel.base') -@section('title',__('user.profile')) -@section('breadcrumb_link') - -@endsection -@section('content') -
    -
    -

    @lang('user.profile')

    -
    -
    - @if(session('success')) - - @endif - @if(session('error')) - - @endif -
    -
    - - -
    -
    -

    @lang('profile.about-me')

    -
    -
    - - -

    {{$user->name}} {{$user->surname}}

    - -

    {{$user->nickname}}

    - - - @lang('profile.job_title') - -

    - {{$user->job_title}} -

    - - @lang('profile.education') - -

    - {{$user->education}} -

    - -
    - - @lang('profile.location') - -

    {{$user->location}}

    - -
    - - @lang('profile.skills') - -

    - @foreach(explode(',',$user->skills) as $skill) - {{$skill}} - @endforeach -

    - -
    - - - @if(config('settings.fontawesome_pro')) - - @else - - @endif - @lang('profile.about-me') - - -

    {{$user->about}}

    - -
    - -
    - -
    -
    -
    - -
    -
    -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - @if(request()->route()->parameter('user_id')) -
    - - -
    - @endif - @csrf - @if(request()->route()->parameter('user_id')) - - @endif -
    - -
    -
    -
    -
    -
    -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    - -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    -
    -
    - -
    - -
    -
    - - @if(request()->route()->parameter('user_id')) - - @endif - - @csrf -
    - -
    -
    -
    -
    -
    - -
    -
    - @include('panel.profile.partials.password-change-tab') - @include('panel.profile.partials.email-change-tab') - @include('panel.profile.partials.two-factor-authentication-tab') - @include('panel.profile.partials.webauthn-tab') -
    -
    -
    -
    -
    -
    -
    -
    - privacy?->show_name) checked @endif > - -
    -
    -
    -
    - privacy?->show_surname) checked @endif > - -
    -
    -
    -
    - privacy?->show_location) checked @endif > - -
    -
    -
    -
    - privacy?->show_education) checked @endif > - -
    -
    -
    -
    - privacy?->show_job_title) checked @endif > - -
    -
    -
    -
    - privacy?->show_skills) checked @endif > - -
    -
    -
    -
    - privacy?->show_about) checked @endif > - -
    -
    -
    -
    - privacy?->show_social_links) checked @endif > - -
    -
    - - @if(request()->route()->parameter('user_id')) - - @endif - - @csrf -
    -
    -
    - @if(session()->has('success')) - - @endif - @if(session()->has('error')) - - @endif -
    -
    -
    - @csrf - -
    -
    -
    - - - - - - - - - - - - - - @foreach ($sessions as $session) - - - - - - - - - - @endforeach - -
    - @lang('sessions.ip_address') - - @lang('sessions.user_agent') - - @lang('sessions.country') - - @lang('sessions.region_name') - - @lang('sessions.city') - - @lang('sessions.last_activity') - - @lang('general.actions') -
    {{ $session->ip_address }} - {{ $session->browser_name }}
    - {{ $session->operating_system }} -
    - {{$session->country_name}} - {{ $session->country_name }} - {{ $session->region_name }}{{ $session->city_name }}{{ $session->session?->last_activity }} - @if($session->session_id == session()->getId()) - - @else -
    - @csrf - - -
    - @endif -
    -
    - @if($sessions->links()) - - @endif -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - - -@endsection - -@section('script') - - - - - -@endsection diff --git a/resources/views/panel/profile/partials/email-change-tab.blade.php b/resources/views/panel/profile/partials/email-change-tab.blade.php deleted file mode 100644 index 58d17f136..000000000 --- a/resources/views/panel/profile/partials/email-change-tab.blade.php +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    - @csrf -
    - - @php - if($user->id == auth()->id()){ - $email = auth()->user()->email; - } - else{ - $email = $user->email; - } - @endphp - -
    - -
    - -
    -
    -
    diff --git a/resources/views/panel/profile/partials/password-change-tab.blade.php b/resources/views/panel/profile/partials/password-change-tab.blade.php deleted file mode 100644 index 38be75db3..000000000 --- a/resources/views/panel/profile/partials/password-change-tab.blade.php +++ /dev/null @@ -1,34 +0,0 @@ -
    -
    - @if(!request()->route()->parameter('user_id')) -
    - - -
    - @endif -
    - - -
    -
    - - -
    -
    - -
    - @csrf -
    -
    diff --git a/resources/views/panel/profile/partials/two-factor-authentication-tab.blade.php b/resources/views/panel/profile/partials/two-factor-authentication-tab.blade.php deleted file mode 100644 index ec4d23a67..000000000 --- a/resources/views/panel/profile/partials/two-factor-authentication-tab.blade.php +++ /dev/null @@ -1,49 +0,0 @@ -
    - @if(auth()->user()->two_factor_confirmed_at) -
    -
    -
    -

    {{__('Recovery codes')}}

    -
    - @foreach(auth()->user()->recoveryCodes() as $codes) -
    -
    -
    - {{$codes}} -
    -
    -
    - @endforeach -
    -
    -
    - @csrf - @method('delete') - -
    - - @elseif(auth()->user()->two_factor_secret) -
    - @csrf -
    - {!! auth()->user()->twoFactorQrCodeSvg() !!} -
    - {{decrypt(auth()->user()->two_factor_secret)}} -
    -
    -
    - - -
    - -
    - -
    - - @else -
    - @csrf - -
    - @endif -
    diff --git a/resources/views/panel/profile/partials/webauthn-tab.blade.php b/resources/views/panel/profile/partials/webauthn-tab.blade.php deleted file mode 100644 index e8e792195..000000000 --- a/resources/views/panel/profile/partials/webauthn-tab.blade.php +++ /dev/null @@ -1,13 +0,0 @@ -
    -
    -
    - -
    - @if(auth()->id() == $user->id) -
    - @csrf - -
    - @endif -
    -
    diff --git a/resources/views/panel/redirects.blade.php b/resources/views/panel/redirects.blade.php deleted file mode 100644 index 13d36c2cb..000000000 --- a/resources/views/panel/redirects.blade.php +++ /dev/null @@ -1,203 +0,0 @@ -@extends('panel.base') -@section('title', __('redirects.redirects')) -@section('breadcrumb_link') - -@endsection -@section('content') -
    -
    -
    - @lang('redirects.redirects') -
    - -
    -
    -
    -
    -
    - - -
    -
    - - - - - - - - @forelse($routes as $route) - - - - - - - @empty - - - - @endforelse -
    @lang('redirects.old_url')@lang('redirects.new_url')@lang('redirects.redirect_code')@lang('general.actions')
    {{$route->old_url}}{{$route->new_url}}{{$route->redirect_code}} - - - - - - -
    @lang('redirects.no_data')
    -
    - -
    -
    - - - - - -@endsection -@section('script') - -@endsection diff --git a/resources/views/panel/search.blade.php b/resources/views/panel/search.blade.php deleted file mode 100644 index 55d7fb509..000000000 --- a/resources/views/panel/search.blade.php +++ /dev/null @@ -1,297 +0,0 @@ -@extends('panel.base') -@section('title', __('search.searched_words')) - -@section('breadcrumb_link') - -@endsection -@section('content') -
    -
    -

    @lang('search.searched_words')

    -
    -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    - - - - - - - - @foreach($search as $item) - - - - - - - @endforeach -
    - @lang('search.searched_words') - - @lang('search.search_date') - - @lang('search.search_ip_and_browser') - - @lang('general.actions') -
    - @if($item->checked) - {{$item->search}} - @else - {{$item->search}} - @endif - - {{dateformat($item->created_at, 'd.m.Y H:i:s')}} - - {{$browser::platformName($item->user_agent)}} -
    - {{$browser::browserName($item->user_agent)}} -
    - {{$item->ip}} -
    - - @if($item->think) - - @else - - @endif - - - - - -
    -
    -
    -
    - {{$search->withQueryString()->links()}} -
    -
    - @lang('search.total'): {{$search->total()}} -
    -
    -
    - -
    -@endsection -@section('script') - -@endsection diff --git a/resources/views/panel/settings/index.blade.php b/resources/views/panel/settings/index.blade.php deleted file mode 100644 index d5fa25b6d..000000000 --- a/resources/views/panel/settings/index.blade.php +++ /dev/null @@ -1,1297 +0,0 @@ -@extends('panel.base') -@section('title',__('settings.settings')) -@section('breadcrumb_link') - -@endsection -@section('content') -
    -
    -

    @lang('settings.settings')

    -
    -
    -
    - -
    -
    -
    - @if(session('success')) - - @endif - @if(session('error')) - - @endif -
    - @csrf -
    - - @if(app('general_settings')->getFirstMediaUrl('site_logo_light')) - logo - - - - @else - - @endif -
    -
    - - @if(app('general_settings')->getFirstMediaUrl('site_logo_dark')) - logo - - - - @else - - @endif -
    -
    -
    -
    -
    - - @if(app('general_settings')->getFirstMediaUrl('site_favicon')) - site_favicon - - - - @else - - @endif -
    -
    - - @if(app('general_settings')->getFirstMediaUrl('app_icon')) - site_favicon - - - - @else - - @endif -
    -
    - - -
    -
    - - -
    -
    - -
    -
    -
    - -
    -
    - @csrf -
    - -
    -
    -
    - @foreach(app('languages') as $n => $language) - @php($seo = $seo_settings->where('language',$language->code)->first()) -
    -
    -
    - - -
    -
    - - -
    - -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - -
    -
    -
    - @endforeach -
    -
    -
    -
    -
    -

    @lang('settings.robots_txt')

    -
    -
    -
    - @csrf -
    -
    - -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - @csrf -
    - -
    -
    -
    - - - -
    -
    -
    -

    - @lang('social.multiple_select') -

    -
    -
    - - -
    -
    - - -
    - @csrf -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    - -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - -
    -
    -
    - -
    - -
    -
    - -
    - - - @csrf -
    - -
    -
    -
    - -
    - @if(session('success')) -
    - {{session('success')}} -
    - @endif - @if(session('error')) -
    - {{session('error')}} -
    - @endif - - - - - - - @foreach($themes as $theme) - - - - - - @endforeach -
    @lang('themes.theme')@lang('language.default')@lang('general.actions')
    - {{$theme->name}} - - @if($theme->is_default) - @lang('general.yes') - @else - @lang('general.no') - @endif - - @if(!$theme->is_default) - - - - - - - @endif -
    - - @lang('general.new') - -
    - -
    - - - - - - - - - - @foreach($all_languages as $language) - - - - - - - - - @endforeach -
    @lang('language.language')@lang('language.code')@lang('language.icon')@lang('language.status')@lang('language.default')@lang('general.actions')
    - {{$language->name}} - - {{$language->code}} - - {{$language->name}} - - @if($language->is_active) - @lang('general.active') - @else - @lang('general.passive') - @endif - - @if($language->is_default) - @lang('general.yes') - @else - @lang('general.no') - @endif - - - - - - - -
    - @lang('general.new') -
    - -
    - @if(session('success')) -
    - {{session('success')}} -
    - @endif - @if(session('error')) -
    - {{session('error')}} -
    - @endif -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - -
    - @csrf -
    -
    - - @can('cloudflare', 'App\Models\User') -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    - @csrf -
    - -
    -
    -
    - @endcan -
    -
    -
    -
    -
    - - - -@endsection - -@section('script') - -@endsection diff --git a/resources/views/panel/user/create.blade.php b/resources/views/panel/user/create.blade.php deleted file mode 100644 index 315edaad8..000000000 --- a/resources/views/panel/user/create.blade.php +++ /dev/null @@ -1,130 +0,0 @@ -@extends('panel.base') -@section('title', __('user.users')) -@section('breadcrumb_link') - -@endsection -@section('content') -
    -
    -

    - @lang('user.new_user') -

    -
    -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - @csrf -
    - -
    -
    -
    -
    -@endsection -@section('script') - -@endsection diff --git a/resources/views/panel/user/index.blade.php b/resources/views/panel/user/index.blade.php deleted file mode 100644 index e2c5b84e4..000000000 --- a/resources/views/panel/user/index.blade.php +++ /dev/null @@ -1,189 +0,0 @@ -@extends('panel.base') -@section('title', __('user.users')) -@section('breadcrumb_link') - -@endsection -@section('content') -
    -
    -

    - @lang('user.users') -

    - -
    -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    - - - - - - @can('owner', \App\Models\User::class) - - @endcan - - - - - - - - - @forelse($users as $user) - - - - @can('owner', \App\Models\User::class) - - @endcan - - - - - - - @empty - - @php - $colspan = 8; - if (auth()->user()->can('owner', \App\Models\User::class)){ - $colspan = 9; - } - @endphp - - - @endforelse - -
    - @lang('user.profile_image') - - @lang('user.name') - - @lang('user.username') - - @lang('user.email') - - @lang('user.role') - - @lang('general.created_at') - - @lang('general.updated_at') - - @lang('general.actions') -
    - {{$user->name}} - - {{$user->name}} {{$user->surname}} -
    - {{$user->nickname}} -
    - {{$user->username}} - - {{$user->email}} - - {{__('user.role_'.$user->role)}} - - {{$user->created_at}} - - {{$user->updated_at}} - - - - - - - - - - -
    - @lang('user.no_user') -
    -
    -
    -
    - -
    -@endsection -@section('script') - -@endsection diff --git a/resources/views/sitemap/categories.blade.php b/resources/views/sitemap/categories.blade.php deleted file mode 100644 index fa15c8482..000000000 --- a/resources/views/sitemap/categories.blade.php +++ /dev/null @@ -1,12 +0,0 @@ - - @foreach($categories as $category) - - {{route('post.categories', - [ - 'language' => session('language'), - __('routes.categories'), - $category->slug - ])}} - - @endforeach - diff --git a/resources/views/sitemap/index.blade.php b/resources/views/sitemap/index.blade.php deleted file mode 100644 index c64b454e6..000000000 --- a/resources/views/sitemap/index.blade.php +++ /dev/null @@ -1,13 +0,0 @@ - - @foreach($languages as $language) - - {{route('sitemap.categories', ['language' => $language->code])}} - - - {{route('sitemap.posts', ['language' => $language->code])}} - - - {{route('sitemap.users', ['language' => $language->code])}} - - @endforeach - diff --git a/resources/views/sitemap/posts.blade.php b/resources/views/sitemap/posts.blade.php deleted file mode 100644 index 87ae205f9..000000000 --- a/resources/views/sitemap/posts.blade.php +++ /dev/null @@ -1,25 +0,0 @@ - - - {{route('home')}} - - - {{route('home',[ - 'language' => session('language'), - ])}} - - @foreach($posts as $post) - - {{route('page', - [ - 'language' => session('language'), - $post->slug - ])}} - - @endforeach - - {{route('contact.front',[ - 'language' => session('language'), - __('routes.contact') - ])}} - - diff --git a/resources/views/sitemap/rss.blade.php b/resources/views/sitemap/rss.blade.php deleted file mode 100644 index 120c814ab..000000000 --- a/resources/views/sitemap/rss.blade.php +++ /dev/null @@ -1,35 +0,0 @@ - - - - {{$seo_settings->title}} - {{route('home', ['language' => session('language')])}} - - description}} ]]> - - {{session('language')}} - - site_name}} © {{date('Y')}} ]]> - - - - {{$general_settings->getFirstMediaUrl('site_logo_light')}} - {{config('app.url')}} - {{$seo_settings->site_name}} - - - @foreach($posts as $post) - - {{$post->title}} - {{route('page', ['language' => session('language'), $post])}} - {{route('page', ['language' => session('language'), $post])}} - - content), 0, 100)}} ]]> - - {{$post->user->nickname}} - {{dateformat($post->created_at, 'r')}} - {{$post->categories->last()->name}} - - @endforeach - - - diff --git a/resources/views/sitemap/users.blade.php b/resources/views/sitemap/users.blade.php deleted file mode 100644 index 1fd1e4f73..000000000 --- a/resources/views/sitemap/users.blade.php +++ /dev/null @@ -1,12 +0,0 @@ - - @foreach($users as $user) - - {{route('user.posts', - [ - 'language' => session('language'), - __('routes.user'), - $user->nickname - ])}} - - @endforeach - diff --git a/resources/views/under-construction.blade.php b/resources/views/under-construction.blade.php deleted file mode 100644 index f9b02acaf..000000000 --- a/resources/views/under-construction.blade.php +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - Yapım Aşamasında! - - - - - -
    -
    -
    -
    - bg_under_construction -
    -
    -
    - circle_dots -
    -
    - - - - - - - - - -
    -
    -

    Yapım Aşamasında

    -

    Bu web adresine harika bir site geliyor. Yakın zamanda tekrar kontrol edin.

    -
    -
    - clouds_shape -
    -
    -
    - - - diff --git a/resources/views/vendor/mail/html/button.blade.php b/resources/views/vendor/mail/html/button.blade.php deleted file mode 100644 index 4a9bf7d00..000000000 --- a/resources/views/vendor/mail/html/button.blade.php +++ /dev/null @@ -1,24 +0,0 @@ -@props([ - 'url', - 'color' => 'primary', - 'align' => 'center', -]) - - - - - diff --git a/resources/views/vendor/mail/html/footer.blade.php b/resources/views/vendor/mail/html/footer.blade.php deleted file mode 100644 index 3ff41f89c..000000000 --- a/resources/views/vendor/mail/html/footer.blade.php +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/resources/views/vendor/mail/html/header.blade.php b/resources/views/vendor/mail/html/header.blade.php deleted file mode 100644 index a82b3bf85..000000000 --- a/resources/views/vendor/mail/html/header.blade.php +++ /dev/null @@ -1,8 +0,0 @@ -@props(['url']) - - - - - - - diff --git a/resources/views/vendor/mail/html/layout.blade.php b/resources/views/vendor/mail/html/layout.blade.php deleted file mode 100644 index e55f6a6d9..000000000 --- a/resources/views/vendor/mail/html/layout.blade.php +++ /dev/null @@ -1,57 +0,0 @@ - - - -{{ config('app.name') }} - - - - - - - - - - - - - - - diff --git a/resources/views/vendor/mail/html/message.blade.php b/resources/views/vendor/mail/html/message.blade.php deleted file mode 100644 index 1a874fc26..000000000 --- a/resources/views/vendor/mail/html/message.blade.php +++ /dev/null @@ -1,27 +0,0 @@ - -{{-- Header --}} - - -{{ config('app.name') }} - - - -{{-- Body --}} -{{ $slot }} - -{{-- Subcopy --}} -@isset($subcopy) - - -{{ $subcopy }} - - -@endisset - -{{-- Footer --}} - - -© {{ date('Y') }} {{ config('app.name') }}. {{ __('All rights reserved.') }} - - - diff --git a/resources/views/vendor/mail/html/panel.blade.php b/resources/views/vendor/mail/html/panel.blade.php deleted file mode 100644 index 2975a60a0..000000000 --- a/resources/views/vendor/mail/html/panel.blade.php +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - diff --git a/resources/views/vendor/mail/html/subcopy.blade.php b/resources/views/vendor/mail/html/subcopy.blade.php deleted file mode 100644 index 790ce6c24..000000000 --- a/resources/views/vendor/mail/html/subcopy.blade.php +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/resources/views/vendor/mail/html/table.blade.php b/resources/views/vendor/mail/html/table.blade.php deleted file mode 100644 index a5f3348b2..000000000 --- a/resources/views/vendor/mail/html/table.blade.php +++ /dev/null @@ -1,3 +0,0 @@ -
    -{{ Illuminate\Mail\Markdown::parse($slot) }} -
    diff --git a/resources/views/vendor/mail/html/themes/default.css b/resources/views/vendor/mail/html/themes/default.css deleted file mode 100644 index 9029ea457..000000000 --- a/resources/views/vendor/mail/html/themes/default.css +++ /dev/null @@ -1,290 +0,0 @@ -/* Base */ - -body, -body *:not(html):not(style):not(br):not(tr):not(code) { - box-sizing: border-box; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, - 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; - position: relative; -} - -body { - -webkit-text-size-adjust: none; - background-color: #ffffff; - color: #718096; - height: 100%; - line-height: 1.4; - margin: 0; - padding: 0; - width: 100% !important; -} - -p, -ul, -ol, -blockquote { - line-height: 1.4; - text-align: left; -} - -a { - color: #3869d4; -} - -a img { - border: none; -} - -/* Typography */ - -h1 { - color: #3d4852; - font-size: 18px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -h2 { - font-size: 16px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -h3 { - font-size: 14px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -p { - font-size: 16px; - line-height: 1.5em; - margin-top: 0; - text-align: left; -} - -p.sub { - font-size: 12px; -} - -img { - max-width: 100%; -} - -/* Layout */ - -.wrapper { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; - background-color: #edf2f7; - margin: 0; - padding: 0; - width: 100%; -} - -.content { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; - margin: 0; - padding: 0; - width: 100%; -} - -/* Header */ - -.header { - padding: 25px 0; - text-align: center; -} - -.header a { - color: #3d4852; - font-size: 19px; - font-weight: bold; - text-decoration: none; -} - -/* Logo */ - -.logo { - height: 50px; - max-height: 50px; - width: 170px; -} - -/* Body */ - -.body { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; - background-color: #edf2f7; - border-bottom: 1px solid #edf2f7; - border-top: 1px solid #edf2f7; - margin: 0; - padding: 0; - width: 100%; -} - -.inner-body { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 570px; - background-color: #ffffff; - border-color: #e8e5ef; - border-radius: 2px; - border-width: 1px; - box-shadow: 0 2px 0 rgba(0, 0, 150, 0.025), 2px 4px 0 rgba(0, 0, 150, 0.015); - margin: 0 auto; - padding: 0; - width: 570px; -} - -/* Subcopy */ - -.subcopy { - border-top: 1px solid #e8e5ef; - margin-top: 25px; - padding-top: 25px; -} - -.subcopy p { - font-size: 14px; -} - -/* Footer */ - -.footer { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 570px; - margin: 0 auto; - padding: 0; - text-align: center; - width: 570px; -} - -.footer p { - color: #b0adc5; - font-size: 12px; - text-align: center; -} - -.footer a { - color: #b0adc5; - text-decoration: underline; -} - -/* Tables */ - -.table table { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; - margin: 30px auto; - width: 100%; -} - -.table th { - border-bottom: 1px solid #edeff2; - margin: 0; - padding-bottom: 8px; -} - -.table td { - color: #74787e; - font-size: 15px; - line-height: 18px; - margin: 0; - padding: 10px 0; -} - -.content-cell { - max-width: 100vw; - padding: 32px; -} - -/* Buttons */ - -.action { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; - margin: 30px auto; - padding: 0; - text-align: center; - width: 100%; -} - -.button { - -webkit-text-size-adjust: none; - border-radius: 4px; - color: #fff; - display: inline-block; - overflow: hidden; - text-decoration: none; -} - -.button-blue, -.button-primary { - background-color: #2d3748; - border-bottom: 8px solid #2d3748; - border-left: 18px solid #2d3748; - border-right: 18px solid #2d3748; - border-top: 8px solid #2d3748; -} - -.button-green, -.button-success { - background-color: #48bb78; - border-bottom: 8px solid #48bb78; - border-left: 18px solid #48bb78; - border-right: 18px solid #48bb78; - border-top: 8px solid #48bb78; -} - -.button-red, -.button-error { - background-color: #e53e3e; - border-bottom: 8px solid #e53e3e; - border-left: 18px solid #e53e3e; - border-right: 18px solid #e53e3e; - border-top: 8px solid #e53e3e; -} - -/* Panels */ - -.panel { - border-left: #2d3748 solid 4px; - margin: 21px 0; -} - -.panel-content { - background-color: #edf2f7; - color: #718096; - padding: 16px; -} - -.panel-content p { - color: #718096; -} - -.panel-item { - padding: 0; -} - -.panel-item p:last-of-type { - margin-bottom: 0; - padding-bottom: 0; -} - -/* Utilities */ - -.break-all { - word-break: break-all; -} diff --git a/resources/views/vendor/mail/html/themes/default.min.css b/resources/views/vendor/mail/html/themes/default.min.css deleted file mode 100644 index 0ade83292..000000000 --- a/resources/views/vendor/mail/html/themes/default.min.css +++ /dev/null @@ -1 +0,0 @@ -body,body :not(html):not(style):not(br):not(tr):not(code){box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";position:relative}body{-webkit-text-size-adjust:none;background-color:#fff;color:#718096;height:100%;line-height:1.4;margin:0;padding:0;width:100%!important}blockquote,ol,ul{line-height:1.4;text-align:left}a{color:#3869d4}a img{border:0}h1{color:#3d4852;font-size:18px}h2{font-size:16px}.header a,h1,h2,h3{font-weight:700}h1,h2,h3,p{margin-top:0;text-align:left}p{font-size:16px;line-height:1.5em}p.sub{font-size:12px}img{max-width:100%}.wrapper{background-color:#edf2f7}.content,.wrapper{-premailer-cellpadding:0;-premailer-cellspacing:0;-premailer-width:100%;margin:0;padding:0;width:100%}.header{padding:25px 0;text-align:center}.header a{color:#3d4852;font-size:19px;text-decoration:none}.logo{height:50px;max-height:50px;width:170px}.body,.inner-body{-premailer-cellpadding:0;-premailer-cellspacing:0;padding:0}.body{-premailer-width:100%;background-color:#edf2f7;border-bottom:1px solid #edf2f7;border-top:1px solid #edf2f7;margin:0;width:100%}.inner-body{-premailer-width:570px;background-color:#fff;border-color:#e8e5ef;border-radius:2px;border-width:1px;box-shadow:0 2px 0 rgba(0,0,150,.025),2px 4px 0 rgba(0,0,150,.015);margin:0 auto;width:570px}.subcopy{border-top:1px solid #e8e5ef;margin-top:25px;padding-top:25px}.subcopy p,h3{font-size:14px}.footer,.table table{-premailer-cellpadding:0;-premailer-cellspacing:0}.footer{-premailer-width:570px;margin:0 auto;padding:0;text-align:center;width:570px}.footer p{color:#b0adc5;font-size:12px;text-align:center}.footer a{color:#b0adc5;text-decoration:underline}.table table{-premailer-width:100%;margin:30px auto;width:100%}.table th{border-bottom:1px solid #edeff2;margin:0;padding-bottom:8px}.table td{color:#74787e;font-size:15px;line-height:18px;margin:0;padding:10px 0}.content-cell{max-width:100vw;padding:32px}.action{-premailer-cellpadding:0;-premailer-cellspacing:0;-premailer-width:100%;margin:30px auto;padding:0;text-align:center;width:100%}.button{-webkit-text-size-adjust:none;border-radius:4px;color:#fff;display:inline-block;overflow:hidden;text-decoration:none}.button-blue,.button-primary{background-color:#2d3748;border-bottom:8px solid #2d3748;border-left:18px solid #2d3748;border-right:18px solid #2d3748;border-top:8px solid #2d3748}.button-green,.button-success{background-color:#48bb78;border-bottom:8px solid #48bb78;border-left:18px solid #48bb78;border-right:18px solid #48bb78;border-top:8px solid #48bb78}.button-error,.button-red{background-color:#e53e3e;border-bottom:8px solid #e53e3e;border-left:18px solid #e53e3e;border-right:18px solid #e53e3e;border-top:8px solid #e53e3e}.panel{border-left:#2d3748 solid 4px;margin:21px 0}.panel-content{background-color:#edf2f7;color:#718096;padding:16px}.panel-content p{color:#718096}.panel-item{padding:0}.panel-item p:last-of-type{margin-bottom:0;padding-bottom:0}.break-all{word-break:break-all} \ No newline at end of file diff --git a/resources/views/vendor/mail/html/themes/default.min.min.css b/resources/views/vendor/mail/html/themes/default.min.min.css deleted file mode 100644 index 0ade83292..000000000 --- a/resources/views/vendor/mail/html/themes/default.min.min.css +++ /dev/null @@ -1 +0,0 @@ -body,body :not(html):not(style):not(br):not(tr):not(code){box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";position:relative}body{-webkit-text-size-adjust:none;background-color:#fff;color:#718096;height:100%;line-height:1.4;margin:0;padding:0;width:100%!important}blockquote,ol,ul{line-height:1.4;text-align:left}a{color:#3869d4}a img{border:0}h1{color:#3d4852;font-size:18px}h2{font-size:16px}.header a,h1,h2,h3{font-weight:700}h1,h2,h3,p{margin-top:0;text-align:left}p{font-size:16px;line-height:1.5em}p.sub{font-size:12px}img{max-width:100%}.wrapper{background-color:#edf2f7}.content,.wrapper{-premailer-cellpadding:0;-premailer-cellspacing:0;-premailer-width:100%;margin:0;padding:0;width:100%}.header{padding:25px 0;text-align:center}.header a{color:#3d4852;font-size:19px;text-decoration:none}.logo{height:50px;max-height:50px;width:170px}.body,.inner-body{-premailer-cellpadding:0;-premailer-cellspacing:0;padding:0}.body{-premailer-width:100%;background-color:#edf2f7;border-bottom:1px solid #edf2f7;border-top:1px solid #edf2f7;margin:0;width:100%}.inner-body{-premailer-width:570px;background-color:#fff;border-color:#e8e5ef;border-radius:2px;border-width:1px;box-shadow:0 2px 0 rgba(0,0,150,.025),2px 4px 0 rgba(0,0,150,.015);margin:0 auto;width:570px}.subcopy{border-top:1px solid #e8e5ef;margin-top:25px;padding-top:25px}.subcopy p,h3{font-size:14px}.footer,.table table{-premailer-cellpadding:0;-premailer-cellspacing:0}.footer{-premailer-width:570px;margin:0 auto;padding:0;text-align:center;width:570px}.footer p{color:#b0adc5;font-size:12px;text-align:center}.footer a{color:#b0adc5;text-decoration:underline}.table table{-premailer-width:100%;margin:30px auto;width:100%}.table th{border-bottom:1px solid #edeff2;margin:0;padding-bottom:8px}.table td{color:#74787e;font-size:15px;line-height:18px;margin:0;padding:10px 0}.content-cell{max-width:100vw;padding:32px}.action{-premailer-cellpadding:0;-premailer-cellspacing:0;-premailer-width:100%;margin:30px auto;padding:0;text-align:center;width:100%}.button{-webkit-text-size-adjust:none;border-radius:4px;color:#fff;display:inline-block;overflow:hidden;text-decoration:none}.button-blue,.button-primary{background-color:#2d3748;border-bottom:8px solid #2d3748;border-left:18px solid #2d3748;border-right:18px solid #2d3748;border-top:8px solid #2d3748}.button-green,.button-success{background-color:#48bb78;border-bottom:8px solid #48bb78;border-left:18px solid #48bb78;border-right:18px solid #48bb78;border-top:8px solid #48bb78}.button-error,.button-red{background-color:#e53e3e;border-bottom:8px solid #e53e3e;border-left:18px solid #e53e3e;border-right:18px solid #e53e3e;border-top:8px solid #e53e3e}.panel{border-left:#2d3748 solid 4px;margin:21px 0}.panel-content{background-color:#edf2f7;color:#718096;padding:16px}.panel-content p{color:#718096}.panel-item{padding:0}.panel-item p:last-of-type{margin-bottom:0;padding-bottom:0}.break-all{word-break:break-all} \ No newline at end of file diff --git a/resources/views/vendor/mail/text/button.blade.php b/resources/views/vendor/mail/text/button.blade.php deleted file mode 100644 index 97444ebdc..000000000 --- a/resources/views/vendor/mail/text/button.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }}: {{ $url }} diff --git a/resources/views/vendor/mail/text/footer.blade.php b/resources/views/vendor/mail/text/footer.blade.php deleted file mode 100644 index 3338f620e..000000000 --- a/resources/views/vendor/mail/text/footer.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/resources/views/vendor/mail/text/header.blade.php b/resources/views/vendor/mail/text/header.blade.php deleted file mode 100644 index 97444ebdc..000000000 --- a/resources/views/vendor/mail/text/header.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }}: {{ $url }} diff --git a/resources/views/vendor/mail/text/layout.blade.php b/resources/views/vendor/mail/text/layout.blade.php deleted file mode 100644 index ec58e83c9..000000000 --- a/resources/views/vendor/mail/text/layout.blade.php +++ /dev/null @@ -1,9 +0,0 @@ -{!! strip_tags($header ?? '') !!} - -{!! strip_tags($slot) !!} -@isset($subcopy) - -{!! strip_tags($subcopy) !!} -@endisset - -{!! strip_tags($footer ?? '') !!} diff --git a/resources/views/vendor/mail/text/message.blade.php b/resources/views/vendor/mail/text/message.blade.php deleted file mode 100644 index 80bce2112..000000000 --- a/resources/views/vendor/mail/text/message.blade.php +++ /dev/null @@ -1,27 +0,0 @@ - - {{-- Header --}} - - - {{ config('app.name') }} - - - - {{-- Body --}} - {{ $slot }} - - {{-- Subcopy --}} - @isset($subcopy) - - - {{ $subcopy }} - - - @endisset - - {{-- Footer --}} - - - © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') - - - diff --git a/resources/views/vendor/mail/text/panel.blade.php b/resources/views/vendor/mail/text/panel.blade.php deleted file mode 100644 index 3338f620e..000000000 --- a/resources/views/vendor/mail/text/panel.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/resources/views/vendor/mail/text/subcopy.blade.php b/resources/views/vendor/mail/text/subcopy.blade.php deleted file mode 100644 index 3338f620e..000000000 --- a/resources/views/vendor/mail/text/subcopy.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/resources/views/vendor/mail/text/table.blade.php b/resources/views/vendor/mail/text/table.blade.php deleted file mode 100644 index 3338f620e..000000000 --- a/resources/views/vendor/mail/text/table.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/resources/views/vendor/notifications/email.blade.php b/resources/views/vendor/notifications/email.blade.php deleted file mode 100644 index 4e0d8ef50..000000000 --- a/resources/views/vendor/notifications/email.blade.php +++ /dev/null @@ -1,57 +0,0 @@ - -{{-- Greeting --}} -@if (! empty($greeting)) -# {{ $greeting }} -@else -@if ($level === 'error') -# @lang('messages.whoops') -@else -# @lang('messages.hello') -@endif -@endif - -{{-- Intro Lines --}} -@foreach ($introLines as $line) -{{ $line }} - -@endforeach - -{{-- Action Button --}} -@isset($actionText) - $level, - default => 'primary', - }; -?> - -{{ $actionText }} - -@endisset - -{{-- Outro Lines --}} -@foreach ($outroLines as $line) -{{ $line }} - -@endforeach - -{{-- Salutation --}} -@if (! empty($salutation)) -{{ $salutation }} -@else -@lang('messages.regards'),
    -{{ config('app.name') }} -@endif - -{{-- Subcopy --}} -@isset($actionText) - -@lang( - "messages.action_sub_text", - [ - 'actionText' => $actionText, - ] -) [{{ $displayableActionUrl }}]({{ $actionUrl }}) - -@endisset -
    diff --git a/routes/api.php b/routes/api.php deleted file mode 100644 index fd4c03b8a..000000000 --- a/routes/api.php +++ /dev/null @@ -1,25 +0,0 @@ -user(); -})->middleware('auth:sanctum'); - -Route::get('/{language}/categories', [\App\Http\Controllers\Api\Frontend\CategoryController::class, 'index']); -Route::get('/{language}/top-categories', [\App\Http\Controllers\Api\Frontend\CategoryController::class, 'topCategories']); - -Route::get('/{language}/slider-posts', [\App\Http\Controllers\Api\Frontend\PostController::class, 'sliderPosts']); - -Route::get('/{language}/categories/{id}', [\App\Http\Controllers\Api\Frontend\CategoryController::class, 'show']); - -Route::post('/{language}/posts', [\App\Http\Controllers\Api\Frontend\PostController::class, 'index']); - -Route::get('/{language}/posts/{id}', [\App\Http\Controllers\Api\Frontend\PostController::class, 'show']); - -Route::get('/{language}/general-settings', [\App\Http\Controllers\Api\Frontend\SettingController::class, 'generalSettings']); - -Route::get('/{language}/menus', [\App\Http\Controllers\Api\Frontend\MenuController::class, 'menu']); diff --git a/routes/channels.php b/routes/channels.php deleted file mode 100644 index df2ad287e..000000000 --- a/routes/channels.php +++ /dev/null @@ -1,7 +0,0 @@ -id === (int) $id; -}); diff --git a/routes/console.php b/routes/console.php deleted file mode 100644 index 322664431..000000000 --- a/routes/console.php +++ /dev/null @@ -1,19 +0,0 @@ -comment(Inspiring::quote()); -})->purpose('Display an inspiring quote')->hourly(); - -Artisan::command('clear-trash', function () { - \App\Models\Post\Comments::onlyTrashed()->whereDate('deleted_at', '<=', now()->subDays(30))->forceDelete(); - \App\Models\Post\Posts::onlyTrashed()->whereDate('deleted_at', '<=', now()->subDays(30))->forceDelete(); - \App\Models\Search::where('think', false)->whereDate('created_at', '<=', now()->subDays(30))->forceDelete(); - $this->info('Recycle bin emptied successfully'); -})->purpose('Empty recycle bin')->daily(); - -Schedule::command('telescope:prune --hours=72')->daily(); -Schedule::call(fn () => \App\Support\TrustedBots::refresh())->daily(); diff --git a/routes/panel/blogs/categories.php b/routes/panel/blogs/categories.php deleted file mode 100644 index 26237a69c..000000000 --- a/routes/panel/blogs/categories.php +++ /dev/null @@ -1,22 +0,0 @@ -can('category', 'App\Models\Post\Categories') - ->name('admin.categories.delete'); - -Route::post('/delete-image', [App\Http\Controllers\Admin\Post\CategoryController::class, 'deleteImage']) - ->can('category', 'App\Models\Post\Categories') - ->name('admin.categories.image.delete'); - -Route::post('/list', [App\Http\Controllers\Admin\Post\CategoryController::class, 'categoryList']) - ->can('category', 'App\Models\Post\Categories') - ->name('admin.categories.list'); - -Route::get('/{category?}', [App\Http\Controllers\Admin\Post\CategoryController::class, 'index']) - ->can('category', 'App\Models\Post\Categories') - ->name('admin.categories'); - -Route::post('/{category?}', [App\Http\Controllers\Admin\Post\CategoryController::class, 'store']) - ->can('category', 'App\Models\Post\Categories'); diff --git a/routes/panel/blogs/comments.php b/routes/panel/blogs/comments.php deleted file mode 100644 index ae521cc1d..000000000 --- a/routes/panel/blogs/comments.php +++ /dev/null @@ -1,39 +0,0 @@ -can('view', 'App\Models\Post\Comments') - ->name('admin.post.comments'); - -Route::post('/{comment}/delete', [App\Http\Controllers\Admin\Post\CommentController::class, 'delete']) - ->can('delete', 'comment') - ->name('admin.post.comments.delete'); - -Route::post('/{comment}/restore', [App\Http\Controllers\Admin\Post\CommentController::class, 'restore']) - ->can('edit', 'comment') - ->name('admin.post.comments.restore')->withTrashed(); - -Route::post('/{comment}/delete/permanent', [App\Http\Controllers\Admin\Post\CommentController::class, 'forceDelete']) - ->can('delete', 'comment') - ->name('admin.post.comments.force-delete')->withTrashed(); - -Route::post('/{comment}/edit', [App\Http\Controllers\Admin\Post\CommentController::class, 'edit']) - ->can('edit', 'comment') - ->name('admin.post.comments.edit'); - -Route::post('/{comment}/approve', [App\Http\Controllers\Admin\Post\CommentController::class, 'approve']) - ->can('edit', 'comment') - ->name('admin.post.comments.approve'); - -Route::post('/{comment}/disapprove', [App\Http\Controllers\Admin\Post\CommentController::class, 'disapprove']) - ->can('edit', 'comment') - ->name('admin.post.comments.disapprove'); - -Route::post('/save', [App\Http\Controllers\Admin\Post\CommentController::class, 'save']) - ->can('create', 'App\Models\Post\Comments') - ->name('admin.post.comments.create'); - -Route::post('/save/{comment}', [App\Http\Controllers\Admin\Post\CommentController::class, 'save']) - ->can('edit', 'comment') - ->name('admin.post.comments.update'); diff --git a/routes/panel/cloudflare.php b/routes/panel/cloudflare.php deleted file mode 100644 index d68a755bd..000000000 --- a/routes/panel/cloudflare.php +++ /dev/null @@ -1,36 +0,0 @@ - '/'], function () {}); - -Route::get('/', [\App\Http\Controllers\Admin\Cloudflare\CloudflareController::class, 'index']) - ->can('cloudflare', 'App\Models\User') - ->name('cf.dashboard'); - -Route::post('/cache-clear', [\App\Http\Controllers\Admin\Cloudflare\CloudflareController::class, 'CacheClear']) - ->name('admin.cloudflare.cache.clear') - ->can('cloudflare', 'App\Models\User'); - -Route::post('/toggle-development', [\App\Http\Controllers\Admin\Cloudflare\CloudflareController::class, 'ToggleDevelopment']) - ->name('admin.cloudflare.toggle.development') - ->can('cloudflare', 'App\Models\User'); - -Route::group(['prefix' => '/dns'], function () { - Route::get('/', [\App\Http\Controllers\Admin\Cloudflare\DNSController::class, 'index']) - ->can('cloudflare', 'App\Models\User') - ->name('cf.dns'); - Route::post('/', [\App\Http\Controllers\Admin\Cloudflare\DNSController::class, 'dns_json'])->can('owner', 'App\Models\User'); - Route::post('/save', [\App\Http\Controllers\Admin\Cloudflare\DNSController::class, 'create_edit']) - ->can('cloudflare', 'App\Models\User') - ->name('cf.dns.save'); - Route::post('/delete', [\App\Http\Controllers\Admin\Cloudflare\DNSController::class, 'delete']) - ->can('cloudflare', 'App\Models\User') - ->name('cf.dns.delete'); -}); - -Route::group(['prefix' => 'settings'], function () { - Route::post('/cloudflare', [App\Http\Controllers\Admin\Settings\SettingsController::class, 'updateApiSettings']) - ->can('cloudflare', 'App\Models\User') - ->name('cf.update.api.settings'); -}); diff --git a/routes/panel/firewall.php b/routes/panel/firewall.php deleted file mode 100644 index ca2af4874..000000000 --- a/routes/panel/firewall.php +++ /dev/null @@ -1,29 +0,0 @@ -can('admin', 'App\Models\User') - ->name('admin.firewall'); - -Route::post('/', [App\Http\Controllers\Admin\FirewallController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('admin.firewall.save'); - -Route::get('/logs', - [App\Http\Controllers\Admin\FirewallController::class, 'logs']) - ->can('admin', 'App\Models\User') - ->name('admin.firewall.logs'); - -Route::post('/logs/data', [App\Http\Controllers\Admin\FirewallController::class, 'logsData']) - ->can('admin', 'App\Models\User') - ->name('admin.firewall.logs.data'); - -Route::post('/whitelist', [App\Http\Controllers\Admin\FirewallController::class, 'whitelist']) - ->can('admin', 'App\Models\User') - ->name('admin.firewall.whitelist'); - -Route::post('/delete', [App\Http\Controllers\Admin\FirewallController::class, 'delete']) - ->can('admin', 'App\Models\User') - ->name('admin.firewall.delete'); diff --git a/routes/panel/history.php b/routes/panel/history.php deleted file mode 100644 index 95af76d5b..000000000 --- a/routes/panel/history.php +++ /dev/null @@ -1,19 +0,0 @@ -can('view', 'posts') - ->name('admin.post.history'); - -Route::get('/{posts}/{history}', [App\Http\Controllers\Admin\Post\HistoryController::class, 'show']) - ->can('view', 'posts') - ->name('admin.post.history.show'); - -Route::post('/{posts}/{history}/delete', [App\Http\Controllers\Admin\Post\HistoryController::class, 'delete']) - ->can('delete', 'posts') - ->name('admin.post.history.delete'); - -Route::post('/{posts}/{history}/revert', [App\Http\Controllers\Admin\Post\HistoryController::class, 'revert']) - ->can('revert', 'posts') - ->name('admin.post.history.revert'); diff --git a/routes/panel/ip-filter.php b/routes/panel/ip-filter.php deleted file mode 100644 index a50d57d17..000000000 --- a/routes/panel/ip-filter.php +++ /dev/null @@ -1,42 +0,0 @@ -can('admin', 'App\Models\User') - ->name('admin.ip-filter.delete'); - -Route::get('/', - [App\Http\Controllers\Admin\IPFilterController::class, 'index']) - ->can('admin', 'App\Models\User') - ->name('admin.ip-filter'); - -Route::get('/create', - [App\Http\Controllers\Admin\IPFilterController::class, 'show']) - ->can('admin', 'App\Models\User') - ->name('admin.ip-filter.create'); - -Route::post('{ip_filter}/ips/bulk', - [App\Http\Controllers\Admin\IPFilterController::class, 'bulkStoreIps']) - ->can('admin', 'App\Models\User') - ->name('admin.ip-filter.ips.bulk'); - -Route::delete('{ip_filter}/ips/{ip_list}', - [App\Http\Controllers\Admin\IPFilterController::class, 'destroyIp']) - ->can('admin', 'App\Models\User') - ->name('admin.ip-filter.ips.destroy'); - -Route::get('{ip_filter}', - [App\Http\Controllers\Admin\IPFilterController::class, 'show']) - ->can('admin', 'App\Models\User') - ->name('admin.ip-filter.show'); - -Route::post('/save/{ip_filter?}', - [App\Http\Controllers\Admin\IPFilterController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('admin.ip-filter.save'); -Route::post('/toggle/status', - [App\Http\Controllers\Admin\IPFilterController::class, 'toggleStatus']) - ->can('admin', 'App\Models\User') - ->name('admin.ip-filter.toggle-status'); diff --git a/routes/panel/logs.php b/routes/panel/logs.php deleted file mode 100644 index 18c42603f..000000000 --- a/routes/panel/logs.php +++ /dev/null @@ -1,13 +0,0 @@ -can('admin', 'App\Models\User') - ->name('admin.system-logs'); - -Route::post('/', - [App\Http\Controllers\Admin\LogsController::class, 'logsData']) - ->can('admin', 'App\Models\User') - ->name('admin.system-logs.data'); diff --git a/routes/panel/menu.php b/routes/panel/menu.php deleted file mode 100644 index 1c6a02569..000000000 --- a/routes/panel/menu.php +++ /dev/null @@ -1,23 +0,0 @@ -can('admin', 'App\Models\User') - ->name('admin.menu.index'); - -Route::post('/save/{menu?}', [\App\Http\Controllers\Admin\Menu\MenuController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('admin.menu.save'); - -Route::get('/show/{menu}', [\App\Http\Controllers\Admin\Menu\MenuItemsController::class, 'show']) - ->can('admin', 'App\Models\User') - ->name('admin.menu.show'); - -Route::post('/delete', [\App\Http\Controllers\Admin\Menu\MenuController::class, 'delete']) - ->can('admin', 'App\Models\User') - ->name('admin.menu.delete'); - -Route::post('/menu-item/save', [\App\Http\Controllers\Admin\Menu\MenuItemsController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('admin.menu-item.save'); diff --git a/routes/panel/notes.php b/routes/panel/notes.php deleted file mode 100644 index 2b8bc2eb8..000000000 --- a/routes/panel/notes.php +++ /dev/null @@ -1,69 +0,0 @@ -can('create', 'App\Models\PersonalNotes\PersonalNotes') - ->name('admin.notes.editor.image.upload'); - -Route::post('/editor/image/upload/{note}', - [App\Http\Controllers\Admin\PersonalNotesController::class, 'editorImageUpload']) - ->can('own', 'note'); - -Route::post('/{note}/image/delete', [App\Http\Controllers\Admin\PersonalNotesController::class, 'postImageDelete']) - ->can('own', 'note') - ->name('admin.notes.media.delete'); - -Route::get('/', [App\Http\Controllers\Admin\PersonalNotesController::class, 'index']) - ->name('admin.notes'); - -Route::get('/create', [App\Http\Controllers\Admin\PersonalNotesController::class, 'create']) - ->name('admin.notes.create'); - -Route::get('/show/{note}/edit', [App\Http\Controllers\Admin\PersonalNotesController::class, 'create']) - ->can('own', 'note') - ->name('admin.notes.edit'); - -Route::get('/show/{note}', [App\Http\Controllers\Admin\PersonalNotesController::class, 'show']) - ->can('own', 'note') - ->name('admin.notes.show'); - -Route::post('/save', [App\Http\Controllers\Admin\PersonalNotesController::class, 'save']) - ->can('create', 'App\Models\PersonalNotes') - ->name('admin.notes.save'); - -Route::post('/save/{note}', [App\Http\Controllers\Admin\PersonalNotesController::class, 'save']) - ->can('own', 'note') - ->name('admin.notes.edit.save'); - -Route::get('/{note}/media', [App\Http\Controllers\Admin\PersonalNotesController::class, 'media']) - ->can('own', 'note') - ->name('admin.notes.media'); - -Route::post('/delete/{note}', [App\Http\Controllers\Admin\PersonalNotesController::class, 'delete']) - ->can('own', 'note') - ->name('admin.notes.delete'); - -Route::post('/encryption', [App\Http\Controllers\Admin\PersonalNotesController::class, 'encryption']) - ->name('admin.notes.encryption'); - -Route::post('/categories', [App\Http\Controllers\Admin\PersonalNotesController::class, 'categorySave']) - ->can('create', 'App\Models\PersonalNotes\PersonalNoteCategories') - ->name('admin.notes.categories.create'); - -Route::post('/categories/{category}', [App\Http\Controllers\Admin\PersonalNotesController::class, 'categorySave']) - ->can('own', 'category') - ->name('admin.notes.categories.update'); - -Route::get('/categories/{category}', [App\Http\Controllers\Admin\PersonalNotesController::class, 'categories']) - ->can('own', 'category') - ->name('admin.notes.category'); - -Route::post('/categories/delete/{category?}', - [App\Http\Controllers\Admin\PersonalNotesController::class, 'categoryDelete']) - ->can('own', 'category') - ->name('admin.notes.categories.delete'); - -Route::get('/categories', [App\Http\Controllers\Admin\PersonalNotesController::class, 'categories']) - ->name('admin.notes.categories'); diff --git a/routes/panel/notifications.php b/routes/panel/notifications.php deleted file mode 100644 index cbaae0179..000000000 --- a/routes/panel/notifications.php +++ /dev/null @@ -1,11 +0,0 @@ -name('notifications.index'); -Route::get('/mark-as-read/{id}', [NotificationController::class, 'markAsRead'])->name('notifications.markAsRead'); -Route::delete('/delete', [NotificationController::class, 'destroy'])->name('notifications.destroy'); -Route::get('/read-and-redirect/{id}', [NotificationController::class, 'readAndRedirect'])->name('notifications.readAndRedirect'); -Route::get('/mark-all-as-read', [NotificationController::class, 'markAllAsRead'])->name('notifications.markAllAsRead'); -Route::delete('/delete-all', [NotificationController::class, 'deleteAll'])->name('notifications.destroyAll'); diff --git a/routes/panel/page-post.php b/routes/panel/page-post.php deleted file mode 100644 index 58f47292d..000000000 --- a/routes/panel/page-post.php +++ /dev/null @@ -1,68 +0,0 @@ -name('admin.posts'); - -Route::get('/create', [App\Http\Controllers\Admin\Post\PostController::class, 'create']) - ->middleware(CheckPostType::class) - ->name('admin.post.create') - ->can('create', 'App\Models\Post\Posts'); - -Route::post('/save', [App\Http\Controllers\Admin\Post\PostController::class, 'save']) - ->middleware([CheckPostType::class, MergePostTypeToRequest::class]) - ->name('admin.post.save') - ->can('create', 'App\Models\Post\Posts'); - -Route::get('/{post}/media', [App\Http\Controllers\Admin\Post\PostController::class, 'media']) - ->name('admin.post.media'); - -Route::get('/{post?}/edit', [App\Http\Controllers\Admin\Post\PostController::class, 'create']) - ->name('admin.post.edit') - ->middleware(CheckPostType::class) - ->can('edit', 'post'); - -Route::post('/save/{post}', [App\Http\Controllers\Admin\Post\PostController::class, 'save']) - ->name('admin.post.update') - ->middleware([CheckPostType::class, MergePostTypeToRequest::class]) - ->can('edit', 'post'); - -Route::post('/{post}/delete', [App\Http\Controllers\Admin\Post\PostController::class, 'delete']) - ->name('admin.post.delete') - ->can('delete', 'post'); - -Route::post('/{post}/delete/permanent', [App\Http\Controllers\Admin\Post\PostController::class, 'forceDelete']) - ->name('admin.post.delete.permanent') - ->can('admin', 'App\Models\User') - ->withTrashed(); - -Route::post('/{post}/restore', [App\Http\Controllers\Admin\Post\PostController::class, 'restore']) - ->name('admin.post.restore') - ->can('admin', 'App\Models\User') - ->withTrashed(); - -Route::post('/image/delete/{post?}', [App\Http\Controllers\Admin\Post\PostController::class, 'imageDelete']) - ->can('delete', 'post') - ->name('admin.post.image.delete'); - -Route::get('/category/{category}', [App\Http\Controllers\Admin\Post\PostController::class, 'index']) - ->name('admin.post.category'); - -Route::post('/editor/image/upload', - [App\Http\Controllers\Admin\Post\PostController::class, 'editorImageUpload']) - ->middleware([CheckPostType::class, MergePostTypeToRequest::class]) - ->can('createPost', 'App\Models\Post\Posts'); - -Route::post('/editor/image/upload/{post?}', - [App\Http\Controllers\Admin\Post\PostController::class, 'editorImageUpload']) - ->middleware([CheckPostType::class, MergePostTypeToRequest::class]) - ->can('edit', 'post') - ->name('admin.post.editor.image.upload'); - -Route::post('/editor/image/delete/{post}', - [App\Http\Controllers\Admin\Post\PostController::class, 'postImageDelete']) - ->can('delete', 'post') - ->name('admin.post.media.delete'); diff --git a/routes/panel/panel.php b/routes/panel/panel.php deleted file mode 100644 index 261555199..000000000 --- a/routes/panel/panel.php +++ /dev/null @@ -1,49 +0,0 @@ -name('admin.index'); - -Route::post('/logout', [App\Http\Controllers\Auth\LoginController::class, 'logout']) - ->name('admin.logout'); - -Route::get('/lock-screen', [\App\Http\Controllers\Admin\TwoFactorAuthController::class, 'lock'])->name('lockscreen'); - -Route::get('/contact', [App\Http\Controllers\Admin\ContactController::class, 'index']) - ->name('admin.contact_page')->can('admin', 'App\Models\User'); - -Route::post('/contact', [App\Http\Controllers\Admin\ContactController::class, 'save']) - ->can('admin', 'App\Models\User'); - -Route::get('/change-language/{language}', [App\Http\Controllers\Admin\DashboardController::class, 'changeLanguage']) - ->name('admin.change_language'); - -Route::get('/clear-cache', [App\Http\Controllers\Admin\CacheController::class, 'clearCache']) - ->name('admin.clear_cache'); - -Route::get('/ai-chatbot', [App\Http\Controllers\StreamingChatController::class, 'index'])->name('chatbot'); -Route::get('/ai-chatbot/Gemini', [App\Http\Controllers\StreamingChatController::class, 'Gemini'])->name('chatbot.Gemini'); -Route::get('/ai-chatbot/ChatGPT', [App\Http\Controllers\StreamingChatController::class, 'ChatGPT'])->name('chatbot.ChatGPT'); - -Route::get('/monitoring/pulse', [App\Http\Controllers\Admin\MonitoringController::class, 'showPulse']) - ->name('admin.monitoring.pulse')->can('viewPulse'); - -Route::get('/monitoring/telescope', [App\Http\Controllers\Admin\MonitoringController::class, 'showTelescope']) - ->name('admin.monitoring.telescope')->can('viewTelescope'); - -Route::get('/monitoring/horizon', [App\Http\Controllers\Admin\MonitoringController::class, 'showHorizon']) - ->name('admin.monitoring.horizon')->can('viewHorizon'); - -Route::get('/monitoring/logs', [App\Http\Controllers\Admin\MonitoringController::class, 'showLogs']) - ->name('admin.monitoring.logs')->can('viewPulse'); - -Route::get('/analytics', [App\Http\Controllers\Admin\AnalyticsController::class, 'index']) - ->name('admin.analytics')->can('admin', 'App\Models\User'); - -Route::post('/analytics', [App\Http\Controllers\Admin\AnalyticsController::class, 'fetchAnalytics']) - ->name('admin.analytics.fetch')->can('admin', 'App\Models\User'); - -Route::get('/about', [App\Http\Controllers\Admin\AboutController::class, 'index']) - ->name('admin.about')->can('admin', 'App\Models\User'); diff --git a/routes/panel/profile.php b/routes/panel/profile.php deleted file mode 100644 index 0fa7f6c94..000000000 --- a/routes/panel/profile.php +++ /dev/null @@ -1,62 +0,0 @@ -can('own', 'App\Models\User') - ->name('admin.profile.index'); - -Route::post('/save', [App\Http\Controllers\Admin\UserController::class, 'save']) - ->can('own', 'App\Models\WebAuthnCredential') - ->name('admin.profile.save'); - -Route::post('/webauthn', [App\Http\Controllers\WebAuthn\WebAuthnController::class, 'WebAuthnList']) - ->can('own', 'App\Models\WebAuthnCredential') - ->name('user.security.webauthn'); - -Route::post('/webauthn/delete', [App\Http\Controllers\WebAuthn\WebAuthnController::class, 'delete']) - ->can('own', 'App\Models\WebAuthnCredential') - ->name('user.security.webauthn.delete'); - -Route::post('/webauthn/rename', [App\Http\Controllers\WebAuthn\WebAuthnController::class, 'rename']) - ->can('own', 'App\Models\WebAuthnCredential') - ->name('user.security.webauthn.rename'); - -Route::post('/webauthn/register/options', [\App\Http\Controllers\WebAuthn\WebAuthnRegisterController::class, 'options']) - ->withoutMiddleware(VerifyCsrfToken::class) - ->can('own', 'App\Models\WebAuthnCredential') - ->name('webauthn.register.options'); - -Route::post('/webauthn/register', [\App\Http\Controllers\WebAuthn\WebAuthnRegisterController::class, 'register']) - ->withoutMiddleware(VerifyCsrfToken::class) - ->can('own', 'App\Models\WebAuthnCredential') - ->name('webauthn.register'); - -Route::post('/password/change', [App\Http\Controllers\Admin\UserController::class, 'changePassword']) - ->can('own', 'App\Models\User') - ->name('admin.profile.password'); - -Route::post('/social-save', [App\Http\Controllers\Admin\UserController::class, 'socialSave']) - ->can('own', 'App\Models\User') - ->name('admin.profile.social.save'); - -Route::post('/2fa-confirm', [App\Http\Controllers\Admin\TwoFactorAuthController::class, 'confirm']) - ->can('own', 'App\Models\User') - ->name('two-factor.confirm'); - -Route::post('/2fa-enable', [App\Http\Controllers\Admin\TwoFactorAuthController::class, 'store']) - ->can('own', 'App\Models\User') - ->name('two-factor.enable'); - -Route::delete('/2fa-disable', [App\Http\Controllers\Admin\TwoFactorAuthController::class, 'destroy']) - ->can('own', 'App\Models\User') - ->name('two-factor.disable'); - -Route::post('/email-change', [App\Http\Controllers\Admin\UserController::class, 'changeEmail']) - ->can('own', 'App\Models\User') - ->name('admin.profile.email'); - -Route::post('/privacy', [App\Http\Controllers\Admin\UserController::class, 'privacy']) - ->can('own', 'App\Models\User') - ->name('admin.profile.privacy'); diff --git a/routes/panel/routes.php b/routes/panel/routes.php deleted file mode 100644 index aef3cc996..000000000 --- a/routes/panel/routes.php +++ /dev/null @@ -1,19 +0,0 @@ -can('admin', 'App\Models\User') - ->name('adminRoutes'); - -Route::post('/save/{route?}', [App\Http\Controllers\Admin\RouteRedirectsController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('adminRouteSave'); - -Route::post('/delete', [App\Http\Controllers\Admin\RouteRedirectsController::class, 'delete']) - ->can('admin', 'App\Models\User') - ->name('adminRoutesDelete'); - -Route::post('/{route?}', [App\Http\Controllers\Admin\RouteRedirectsController::class, 'show']) - ->can('admin', 'App\Models\User') - ->name('adminRoutesShow'); diff --git a/routes/panel/search.php b/routes/panel/search.php deleted file mode 100644 index 55cec90e1..000000000 --- a/routes/panel/search.php +++ /dev/null @@ -1,29 +0,0 @@ -can('admin', 'App\Models\User') - ->name('admin.search.delete.all'); - -Route::post('/think/delete-not-interested', [App\Http\Controllers\Admin\SearchController::class, 'deleteNotThink']) - ->can('admin', 'App\Models\User') - ->name('admin.search.delete.not-interested'); - -Route::post('/think/delete/{search?}', [App\Http\Controllers\Admin\SearchController::class, 'delete']) - ->can('admin', 'App\Models\User') - ->name('admin.search.delete'); - -Route::post('/think/{search?}', [App\Http\Controllers\Admin\SearchController::class, 'think']) - ->can('admin', 'App\Models\User') - ->name('admin.search.think'); - -Route::get('/', [App\Http\Controllers\Admin\SearchController::class, 'index']) - ->can('admin', 'App\Models\User') - ->name('admin.search.index'); - -Route::post('/', [App\Http\Controllers\Admin\SearchController::class, 'check']) - ->can('admin', 'App\Models\User') - ->name('admin.search.check'); - -Route::post('/general', [App\Http\Controllers\Admin\SearchController::class, 'search'])->name('general.search'); diff --git a/routes/panel/settings/settings.php b/routes/panel/settings/settings.php deleted file mode 100644 index f13ea1730..000000000 --- a/routes/panel/settings/settings.php +++ /dev/null @@ -1,79 +0,0 @@ -can('admin', 'App\Models\User') - ->name('admin.settings'); - -Route::post('/seo/save', [App\Http\Controllers\Admin\Settings\SeoSettingsController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.seo.save'); - -Route::post('/seo/robots/save', [App\Http\Controllers\Admin\Settings\SeoSettingsController::class, 'saveRobots']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.seo.robots.save'); - -Route::post('/general/save', [App\Http\Controllers\Admin\Settings\GeneralSettingsController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.general.save'); - -Route::post('/general/logo/delete/{type}', - [App\Http\Controllers\Admin\Settings\GeneralSettingsController::class, 'deleteLogo']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.general.logo.delete')->where('type', 'light|dark'); - -Route::post('/general/favicon/delete', - [App\Http\Controllers\Admin\Settings\GeneralSettingsController::class, 'deleteFavicon']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.general.favicon.delete'); - -Route::post('/general/app_icon/delete', - [App\Http\Controllers\Admin\Settings\GeneralSettingsController::class, 'deleteAppIcon']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.general.app_icon.delete'); - -Route::post('/social/save', [App\Http\Controllers\Admin\Settings\SocialSettingsController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.social.save'); - -Route::post('/social/header/save', [App\Http\Controllers\Admin\Settings\SocialSettingsController::class, 'saveHeader']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.social.header.save'); - -Route::post('/analytics/save', [App\Http\Controllers\Admin\Settings\AnalyticsSettingsController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.analytics.save'); - -Route::post('/advertise/save', [App\Http\Controllers\Admin\Settings\AdvertiseSettingsController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.advertisement.save'); - -Route::post('/languages/show', [App\Http\Controllers\Admin\LanguagesController::class, 'show']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.languages.show'); - -Route::post('/languages/save/{language?}', [App\Http\Controllers\Admin\LanguagesController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.languages.save'); - -Route::post('/languages/delete', [App\Http\Controllers\Admin\LanguagesController::class, 'delete']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.languages.delete'); - -Route::post('/themes/delete', [App\Http\Controllers\Admin\Settings\ThemesSettingsController::class, 'delete']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.themes.delete'); - -Route::post('/theme/upload', [App\Http\Controllers\Admin\Settings\ThemesSettingsController::class, 'upload']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.themes.upload'); - -Route::get('/theme/activate/{theme}', - [App\Http\Controllers\Admin\Settings\ThemesSettingsController::class, 'makeDefault']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.themes.default'); - -Route::post('/notification/save', [App\Http\Controllers\Admin\Settings\NotificationsController::class, 'save']) - ->can('admin', 'App\Models\User') - ->name('admin.settings.notifications.save'); diff --git a/routes/panel/users.php b/routes/panel/users.php deleted file mode 100644 index 7931461fb..000000000 --- a/routes/panel/users.php +++ /dev/null @@ -1,73 +0,0 @@ -can('admin', 'App\Models\User') - ->name('admin.users'); - -Route::get('/create', [App\Http\Controllers\Admin\UserController::class, 'create']) - ->can('admin', 'App\Models\User') - ->name('admin.user.create'); - -Route::post('/create', [App\Http\Controllers\Admin\UserController::class, 'store']) - ->can('admin', 'App\Models\User'); - -Route::post('/delete', [App\Http\Controllers\Admin\UserController::class, 'userDelete']) - ->can('admin', 'App\Models\User') - ->name('admin.user.delete'); - -Route::get('/secret-logout', [App\Http\Controllers\Admin\UserController::class, 'secretLogout']) - //->can('admin', 'App\Models\User') - ->name('admin.user.secret-logout'); - -Route::post('/user/session/kill', [App\Http\Controllers\Admin\UserController::class, 'killSession']) - ->can('ownAdmin', 'App\Models\User') - ->name('user.session.logout'); - -Route::post('/user/session/kill-all', [App\Http\Controllers\Admin\UserController::class, 'killAllSession']) - ->can('ownAdmin', 'App\Models\User') - ->name('user.session.logout-all'); - -Route::post('/user/profile-image', [App\Http\Controllers\Admin\UserController::class, 'profileImage']) - ->can('ownAdmin', 'App\Models\User') - ->name('admin.user.profile-image'); - -Route::post('/user/delete-profile-image', [App\Http\Controllers\Admin\UserController::class, 'deleteProfilImage']) - ->can('ownAdmin', 'App\Models\User') - ->name('admin.user.profile-image-delete'); - -Route::get('/{user_id}/secret-login', [App\Http\Controllers\Admin\UserController::class, 'userSecretLogin']) - ->can('admin', 'App\Models\User') - ->name('admin.user.secret-login'); - -Route::get('/{user_id}/edit', [App\Http\Controllers\Admin\UserController::class, 'userEdit']) - ->can('admin', 'App\Models\User') - ->name('admin.user.edit'); - -Route::post('/{user_id}/edit', [App\Http\Controllers\Admin\UserController::class, 'userUpdate']) - ->can('admin', 'App\Models\User'); - -Route::post('/{user_id}/social', [App\Http\Controllers\Admin\UserController::class, 'userSocialSave']) - ->can('admin', 'App\Models\User') - ->name('admin.user.social.save'); - -Route::post('/{user_id}/password', [App\Http\Controllers\Admin\UserController::class, 'userPasswordChange']) - ->can('admin', 'App\Models\User') - ->name('admin.user.password'); - -Route::post('/{user_id}/webauthn', [App\Http\Controllers\Admin\UserController::class, 'webauthnList']) - ->can('admin', 'App\Models\WebAuthnCredential') - ->name('admin.user.webauthn'); - -Route::post('/{user_id}/webauthn/delete', [App\Http\Controllers\Admin\UserController::class, 'webauthnDelete']) - ->can('admin', 'App\Models\WebAuthnCredential') - ->name('admin.user.webauthn.delete'); - -Route::post('/{user_id}/webauthn/rename', [App\Http\Controllers\Admin\UserController::class, 'webauthnRename']) - ->can('admin', 'App\Models\WebAuthnCredential') - ->name('admin.user.webauthn.rename'); - -Route::post('/{user_id}/email-change', [App\Http\Controllers\Admin\UserController::class, 'userEmailChange']) - ->can('admin', 'App\Models\User') - ->name('admin.user.email'); diff --git a/routes/web.php b/routes/web.php deleted file mode 100644 index 70cd99eed..000000000 --- a/routes/web.php +++ /dev/null @@ -1,292 +0,0 @@ -group(function () use ($domain) { - Route::get('/image/{path}/{width}/{height}/{type}/{image}', [\App\Http\Controllers\ImageProcessController::class, 'index']) - ->name('image') - ->where([ - 'path' => '[a-zA-Z0-9\/]+', - 'image' => '[a-zA-Z0-9\/\.\-_]+', - 'width' => '[0-9]+', - 'height' => '[0-9]+', - 'type' => '[a-zA-Z0-9\/]+', - ]); - -}); - -Route::domain(config('app.url'))->group(function(){ - Route::any('/'.config('settings.admin_panel_path').'/manifest.json', - [\App\Http\Controllers\ManifestController::class, 'manifestPanel']) - ->name('manifest.panel'); - - Route::get('/email/verify', [EmailVerificationPromptController::class, '__invoke']) - ->middleware('auth') - ->name('verification.notice'); - - Route::get('/email/verify/{id}/{hash}', [VerifyEmailController::class, '__invoke']) - ->middleware(['signed']) - ->name('verification.verify'); - - Route::post('/email/resend', function (Illuminate\Http\Request $request) { - $request->user()->sendEmailVerificationNotification(); - - return back()->with('message', __('auth.verification_sent')); - })->middleware(['auth', 'throttle:6,1'])->name('verification.send'); - - Route::group([ - 'middleware' => [ - \App\Http\Middleware\NewCommentsCount::class, - \App\Http\Middleware\AdminOneSignal::class, - \App\Http\Middleware\SearchedWords::class, - \App\Http\Middleware\VerifyOTP::class, - \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, - ], - ], function () { - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path')) - ->group(base_path('routes/panel/panel.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/notifications') - ->group(base_path('routes/panel/notifications.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/search') - ->group(base_path('routes/panel/search.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/settings') - ->group(base_path('routes/panel/settings/settings.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/cloudflare') - ->group(base_path('routes/panel/cloudflare.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/routes') - ->group(base_path('routes/panel/routes.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/menu') - ->group(base_path('routes/panel/menu.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/ip-filter') - ->group(base_path('routes/panel/ip-filter.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/firewall') - ->group(base_path('routes/panel/firewall.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/system-logs') - ->group(base_path('routes/panel/logs.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/profile') - ->group(base_path('routes/panel/profile.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/users') - ->group(base_path('routes/panel/users.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/notes') - ->group(base_path('routes/panel/notes.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/blogs/comments') - ->group(base_path('routes/panel/blogs/comments.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/blogs/categories') - ->group(base_path('routes/panel/blogs/categories.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/{type}') - ->group(base_path('routes/panel/page-post.php')); - - Route::middleware(['web', 'auth']) - ->prefix(config('settings.admin_panel_path').'/{type}/history') - ->group(base_path('routes/panel/history.php')); - }); - - Route::get('/login', - [\App\Http\Controllers\Admin\UserController::class, 'login']) - ->name('login'); - - Route::post('/login/first', - [\App\Http\Controllers\Auth\LoginController::class, 'loginFirst'])->name('login.first_step')->middleware([ - \Spatie\Honeypot\ProtectAgainstSpam::class, - 'throttle:3,1', - ]); - - Route::post('/login', - [\App\Http\Controllers\Auth\LoginController::class, 'login'])->middleware([ - \Spatie\Honeypot\ProtectAgainstSpam::class, - 'throttle:3,1', - \App\Http\Middleware\CloudflareTurnstile::class, - ]); - - Route::post('/login/2fa-verify', [\App\Http\Controllers\Admin\TwoFactorAuthController::class, 'verify']) - ->middleware([ - \Spatie\Honeypot\ProtectAgainstSpam::class, - ]) - ->name('two-factor.verify'); - - Route::get('/forgot-password', - [\App\Http\Controllers\Auth\ResetPasswordController::class, 'forgotPassword']) - ->name('forgot-password')->middleware('guest'); - - Route::post('/forgot-password', - [\App\Http\Controllers\Auth\ResetPasswordController::class, 'resetPassword']) - ->middleware([ - 'guest', - \Spatie\Honeypot\ProtectAgainstSpam::class, - \App\Http\Middleware\CloudflareTurnstile::class, - ]); - - Route::get('/reset-password/{token}', - [\App\Http\Controllers\Auth\LoginController::class, 'showResetForm']) - ->middleware('guest')->name('password.reset'); - - Route::post('/reset-password', - [\App\Http\Controllers\Auth\LoginController::class, 'reset']) - ->middleware([ - 'guest', - \Spatie\Honeypot\ProtectAgainstSpam::class, - \App\Http\Middleware\CloudflareTurnstile::class, - ])->name('password.update'); - - Route::post('/webauthn/login/options', - [\App\Http\Controllers\WebAuthn\WebAuthnLoginController::class, 'options']) - ->withoutMiddleware([\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class]) - ->name('webauthn.login.options'); - - Route::post('/webauthn/login', - [\App\Http\Controllers\WebAuthn\WebAuthnLoginController::class, 'login']) - ->withoutMiddleware([\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class]) - ->name('webauthn.login'); - - Route::group([ - 'middleware' => [ - \Fahlisaputra\Minify\Middleware\MinifyHtml::class, - \Fahlisaputra\Minify\Middleware\MinifyCss::class, - \Fahlisaputra\Minify\Middleware\MinifyJavascript::class, - ], - ], function () { - try { - $languages = Languages::all(); - } catch (\Exception $e) { - $languages = collect(); - } - - Route::get('/sitemap.xml', [\App\Http\Controllers\SiteMap\SitemapController::class, 'index']); - - Route::get('/sitemap', [\App\Http\Controllers\SiteMap\SitemapController::class, 'index']) - ->name('sitemap'); - - Route::any('/manifest.json', [\App\Http\Controllers\ManifestController::class, 'manifest']) - ->name('manifest'); - - Route::group(['prefix' => '/{language}'], function () use ($languages) { - App::setLocale(session('language')); - - foreach ($languages as $language) { - foreach (Lang::get('routes', locale: $language->code) as $k => $v) { - Route::pattern($k, $v); - } - } - - Route::get('/rss', [\App\Http\Controllers\SiteMap\RssController::class, 'show']) - ->name('rss'); - - Route::get('/sitemap-categories', [\App\Http\Controllers\SiteMap\SitemapController::class, 'categories']) - ->name('sitemap.categories'); - - Route::get('/sitemap-posts', [\App\Http\Controllers\SiteMap\SitemapController::class, 'posts']) - ->name('sitemap.posts'); - - Route::get('/sitemap-users', [\App\Http\Controllers\SiteMap\SitemapController::class, 'users']) - ->name('sitemap.users'); - - Route::post('/comment-save', [\App\Http\Controllers\CommentController::class, 'store']) - ->middleware([ - //\App\Http\Middleware\CloudflareTurnstile::class, - \Spatie\Honeypot\ProtectAgainstSpam::class, - ]) - ->name('comment.save'); - - Route::get('/{tags}/{showTag:tag}', [\App\Http\Controllers\TagController::class, 'show']) - ->name('post.tags') - ->whereIn('tags', Lang::get('route_tags')); - - Route::get('/{categories}/{showCategory:slug}', [\App\Http\Controllers\CategoryController::class, 'show']) - ->name('post.categories') - ->whereIn('categories', Lang::get('route_categories')); - - Route::get('/{user}/{users:nickname}', [\App\Http\Controllers\UserController::class, 'posts']) - ->name('user.posts') - ->whereIn('user', Lang::get('route_user')); - - Route::get('/{archives}/{year}/{month?}/{day?}', [\App\Http\Controllers\ArchiveController::class, 'show']) - ->name('post.archives') - ->whereIn('archives', Lang::get('route_archives')); - - Route::get('/{search_result}/{search_term?}', [\App\Http\Controllers\SearchController::class, 'index']) - ->name('search.result') - ->whereIn('search_result', Lang::get('route_search')); - - Route::get('/{contact}', [\App\Http\Controllers\ContactController::class, 'index']) - ->name('contact.front') - ->whereIn('contact', Lang::get('route_contact')); - - Route::get('/{authors}', [\App\Http\Controllers\AuthorsController::class, 'index']) - ->name('post.authors') - ->whereIn('authors', Lang::get('route_authors')); - - Route::post('/{contact}', [\App\Http\Controllers\ContactController::class, 'send']) - ->name('contact.send') - ->whereIn('contact', Lang::get('route_contact')) - ->middleware([ - \App\Http\Middleware\CloudflareTurnstile::class, - \Spatie\Honeypot\ProtectAgainstSpam::class, - ]); - - Route::post('/{contact}/ajax', [\App\Http\Controllers\ContactController::class, 'send_ajax']) - ->name('contact.send-ajax') - ->whereIn('contact', Lang::get('route_contact')) - ->middleware([ - \App\Http\Middleware\CloudflareTurnstile::class, - \Spatie\Honeypot\ProtectAgainstSpam::class, - ]); - - Route::get('/{showPost:slug}', [\App\Http\Controllers\PostController::class, 'show'])->name('page'); - })->whereIn('language', $languages->pluck('code')->toArray()); - - Route::get('/{language?}', [\App\Http\Controllers\HomeController::class, 'index'])->name('home'); - }); -}); diff --git a/scripts/theme-install.mjs b/scripts/theme-install.mjs deleted file mode 100644 index d147362cc..000000000 --- a/scripts/theme-install.mjs +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env node -import { execSync } from 'node:child_process'; -import { existsSync, readFileSync, statSync } from 'node:fs'; -import path from 'node:path'; - -const FORCE_INSTALL = process.argv.includes('--force'); -const projectRoot = process.cwd(); - -hydrateEnvFromDotEnv(); - -const themeRoot = - resolveThemePackageRoot(process.env.THEME_PACKAGE_DIR) ?? - resolveThemePackageRoot(process.env.THEME_ASSET_DIR) ?? - resolvePackageFromEntry(process.env.THEME_JS_ENTRY) ?? - resolvePackageFromEntry(process.env.THEME_CSS_ENTRY); - -if (!themeRoot) { - process.exit(0); -} - -const packageJsonPath = path.join(themeRoot, 'package.json'); - -if (!existsSync(packageJsonPath)) { - console.warn(`[theme] Skipping dependency install. package.json not found at ${packageJsonPath}`); - process.exit(0); -} - -if (!FORCE_INSTALL && !shouldInstall(themeRoot)) { - process.exit(0); -} - -console.log(`[theme] Installing npm dependencies for theme at ${themeRoot}`); - -try { - execSync('npm install', { - cwd: themeRoot, - stdio: 'inherit', - env: process.env, - }); -} catch (error) { - console.error('[theme] Failed to install theme dependencies.'); - process.exit(error.status ?? 1); -} - -function resolveThemePackageRoot(rawPath) { - if (!rawPath) { - return null; - } - - const resolved = path.resolve(projectRoot, rawPath); - return resolved; -} - -function resolvePackageFromEntry(entryPath) { - if (!entryPath) { - return null; - } - - let dir = path.dirname(path.resolve(projectRoot, entryPath)); - - while (dir && dir !== path.dirname(dir)) { - if (dir === projectRoot) { - return null; - } - - const candidate = path.join(dir, 'package.json'); - if (existsSync(candidate)) { - return dir; - } - - dir = path.dirname(dir); - } - - return null; -} - -function shouldInstall(themeDir) { - const nodeModulesPath = path.join(themeDir, 'node_modules'); - if (!existsSync(nodeModulesPath)) { - return true; - } - - const lockPath = path.join(themeDir, 'package-lock.json'); - if (!existsSync(lockPath)) { - return false; - } - - try { - const lockTime = statSync(lockPath).mtimeMs; - const modulesTime = statSync(nodeModulesPath).mtimeMs; - return lockTime > modulesTime; - } catch (error) { - return true; - } -} - -function hydrateEnvFromDotEnv() { - const envPath = path.join(projectRoot, '.env'); - if (!existsSync(envPath)) { - return; - } - - let raw; - - try { - raw = readFileSync(envPath, 'utf8'); - } catch { - return; - } - - raw.split(/\r?\n/).forEach((line) => { - const trimmed = line.trim(); - if (!trimmed || trimmed.startsWith('#')) { - return; - } - - const exportMatch = trimmed.startsWith('export ') ? trimmed.slice(7).trim() : trimmed; - const equalsIndex = exportMatch.indexOf('='); - if (equalsIndex === -1) { - return; - } - - const key = exportMatch.slice(0, equalsIndex).trim(); - if (!key || key.startsWith('#') || key in process.env) { - return; - } - - let value = exportMatch.slice(equalsIndex + 1).trim(); - const hasQuotes = - (value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'")); - - if (hasQuotes) { - value = value.slice(1, -1); - } else { - const hashIndex = value.indexOf('#'); - if (hashIndex !== -1) { - const before = value.slice(0, hashIndex); - if (!before || /\s$/.test(before)) { - value = before.trim(); - } - } - } - - process.env[key] = value; - }); -} diff --git a/storage/GeoLite2-City.mmdb b/storage/GeoLite2-City.mmdb deleted file mode 100644 index bcc05f59d..000000000 Binary files a/storage/GeoLite2-City.mmdb and /dev/null differ diff --git a/storage/GeoLite2-Country.mmdb b/storage/GeoLite2-Country.mmdb deleted file mode 100644 index a836c0274..000000000 Binary files a/storage/GeoLite2-Country.mmdb and /dev/null differ diff --git a/storage/app/.gitignore b/storage/app/.gitignore deleted file mode 100644 index f7aa16635..000000000 --- a/storage/app/.gitignore +++ /dev/null @@ -1 +0,0 @@ -analytics diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore deleted file mode 100644 index d6b7ef32c..000000000 --- a/storage/app/public/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore deleted file mode 100644 index 05c4471f2..000000000 --- a/storage/framework/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -compiled.php -config.php -down -events.scanned.php -maintenance.php -routes.php -routes.scanned.php -schedule-* -services.json diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore deleted file mode 100644 index 01e4a6cda..000000000 --- a/storage/framework/cache/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!data/ -!.gitignore diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore deleted file mode 100644 index d6b7ef32c..000000000 --- a/storage/framework/sessions/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore deleted file mode 100644 index d6b7ef32c..000000000 --- a/storage/framework/testing/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore deleted file mode 100644 index d6b7ef32c..000000000 --- a/storage/framework/views/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore deleted file mode 100644 index d6b7ef32c..000000000 --- a/storage/logs/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/stubs/nwidart-stubs/action-invoke.stub b/stubs/nwidart-stubs/action-invoke.stub deleted file mode 100644 index d0a85c7af..000000000 --- a/stubs/nwidart-stubs/action-invoke.stub +++ /dev/null @@ -1,11 +0,0 @@ - $attributes - */ - public function get(Model $model, string $key, mixed $value, array $attributes): mixed - { - return $value; - } - - /** - * Prepare the given value for storage. - * - * @param array $attributes - */ - public function set(Model $model, string $key, mixed $value, array $attributes): mixed - { - return $value; - } -} diff --git a/stubs/nwidart-stubs/channel.stub b/stubs/nwidart-stubs/channel.stub deleted file mode 100644 index f68b0b0c8..000000000 --- a/stubs/nwidart-stubs/channel.stub +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/stubs/nwidart-stubs/composer.stub b/stubs/nwidart-stubs/composer.stub deleted file mode 100644 index d2ae16177..000000000 --- a/stubs/nwidart-stubs/composer.stub +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "$VENDOR$/$LOWER_NAME$", - "description": "", - "authors": [ - { - "name": "$AUTHOR_NAME$", - "email": "$AUTHOR_EMAIL$" - } - ], - "extra": { - "laravel": { - "providers": [], - "aliases": { - - } - } - }, - "autoload": { - "psr-4": { - "$MODULE_NAMESPACE$\\$STUDLY_NAME$\\": "$APP_FOLDER_NAME$", - "$MODULE_NAMESPACE$\\$STUDLY_NAME$\\Database\\Factories\\": "database/factories/", - "$MODULE_NAMESPACE$\\$STUDLY_NAME$\\Database\\Seeders\\": "database/seeders/" - } - }, - "autoload-dev": { - "psr-4": { - "$MODULE_NAMESPACE$\\$STUDLY_NAME$\\Tests\\": "tests/" - } - } -} diff --git a/stubs/nwidart-stubs/controller-api.stub b/stubs/nwidart-stubs/controller-api.stub deleted file mode 100644 index 025095da3..000000000 --- a/stubs/nwidart-stubs/controller-api.stub +++ /dev/null @@ -1,59 +0,0 @@ -json([]); - } - - /** - * Store a newly created resource in storage. - */ - public function store(Request $request) - { - // - - return response()->json([]); - } - - /** - * Show the specified resource. - */ - public function show($id) - { - // - - return response()->json([]); - } - - /** - * Update the specified resource in storage. - */ - public function update(Request $request, $id) - { - // - - return response()->json([]); - } - - /** - * Remove the specified resource from storage. - */ - public function destroy($id) - { - // - - return response()->json([]); - } -} diff --git a/stubs/nwidart-stubs/controller-plain.stub b/stubs/nwidart-stubs/controller-plain.stub deleted file mode 100644 index 662b0720a..000000000 --- a/stubs/nwidart-stubs/controller-plain.stub +++ /dev/null @@ -1,9 +0,0 @@ -json([]); - } -} diff --git a/stubs/nwidart-stubs/controller.stub b/stubs/nwidart-stubs/controller.stub deleted file mode 100644 index 610fbd341..000000000 --- a/stubs/nwidart-stubs/controller.stub +++ /dev/null @@ -1,65 +0,0 @@ -> - */ - protected $listen = []; - - /** - * Indicates if events should be discovered. - * - * @var bool - */ - protected static $shouldDiscoverEvents = true; - - /** - * Configure the proper event listeners for email verification. - */ - protected function configureEmailVerification(): void - { - // - } -} diff --git a/stubs/nwidart-stubs/event.stub b/stubs/nwidart-stubs/event.stub deleted file mode 100644 index 9a4f2bd5b..000000000 --- a/stubs/nwidart-stubs/event.stub +++ /dev/null @@ -1,34 +0,0 @@ -view('view.name'); - } -} diff --git a/stubs/nwidart-stubs/middleware.stub b/stubs/nwidart-stubs/middleware.stub deleted file mode 100644 index bdd192dfc..000000000 --- a/stubs/nwidart-stubs/middleware.stub +++ /dev/null @@ -1,17 +0,0 @@ -id(); - $FIELDS$ - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::dropIfExists('$TABLE$'); - } -}; diff --git a/stubs/nwidart-stubs/migration/delete.stub b/stubs/nwidart-stubs/migration/delete.stub deleted file mode 100644 index 788cdee2a..000000000 --- a/stubs/nwidart-stubs/migration/delete.stub +++ /dev/null @@ -1,28 +0,0 @@ -id(); - $FIELDS$ - $table->timestamps(); - }); - } -}; diff --git a/stubs/nwidart-stubs/migration/plain.stub b/stubs/nwidart-stubs/migration/plain.stub deleted file mode 100644 index 88fa2f36b..000000000 --- a/stubs/nwidart-stubs/migration/plain.stub +++ /dev/null @@ -1,24 +0,0 @@ -line('The introduction to the notification.') - ->action('Notification Action', 'https://laravel.com') - ->line('Thank you for using our application!'); - } - - /** - * Get the array representation of the notification. - */ - public function toArray($notifiable): array - { - return []; - } -} diff --git a/stubs/nwidart-stubs/observer.stub b/stubs/nwidart-stubs/observer.stub deleted file mode 100644 index ca498635f..000000000 --- a/stubs/nwidart-stubs/observer.stub +++ /dev/null @@ -1,48 +0,0 @@ -mapApiRoutes(); - $this->mapWebRoutes(); - } - - /** - * Define the "web" routes for the application. - * - * These routes all receive session state, CSRF protection, etc. - */ - protected function mapWebRoutes(): void - { - Route::middleware('web')->group(module_path($this->name, '$WEB_ROUTES_PATH$')); - } - - /** - * Define the "api" routes for the application. - * - * These routes are typically stateless. - */ - protected function mapApiRoutes(): void - { - Route::middleware('api')->prefix('api')->name('api.')->group(module_path($this->name, '$API_ROUTES_PATH$')); - } -} diff --git a/stubs/nwidart-stubs/routes/api.stub b/stubs/nwidart-stubs/routes/api.stub deleted file mode 100644 index c99a9bbbb..000000000 --- a/stubs/nwidart-stubs/routes/api.stub +++ /dev/null @@ -1,19 +0,0 @@ -prefix('v1')->group(function () { - Route::apiResource('$LOWER_NAME$', $STUDLY_NAME$Controller::class)->names('$LOWER_NAME$'); -}); diff --git a/stubs/nwidart-stubs/routes/web.stub b/stubs/nwidart-stubs/routes/web.stub deleted file mode 100644 index c00f766d9..000000000 --- a/stubs/nwidart-stubs/routes/web.stub +++ /dev/null @@ -1,19 +0,0 @@ -names('$LOWER_NAME$'); -}); diff --git a/stubs/nwidart-stubs/rule.implicit.stub b/stubs/nwidart-stubs/rule.implicit.stub deleted file mode 100644 index edc029c29..000000000 --- a/stubs/nwidart-stubs/rule.implicit.stub +++ /dev/null @@ -1,22 +0,0 @@ - '$STUDLY_NAME$', -]; diff --git a/stubs/nwidart-stubs/scaffold/provider.stub b/stubs/nwidart-stubs/scaffold/provider.stub deleted file mode 100644 index c1961db09..000000000 --- a/stubs/nwidart-stubs/scaffold/provider.stub +++ /dev/null @@ -1,118 +0,0 @@ -registerCommands(); - $this->registerCommandSchedules(); - $this->registerTranslations(); - $this->registerConfig(); - $this->registerViews(); - $this->loadMigrationsFrom(module_path($this->name, '$MIGRATIONS_PATH$')); - } - - /** - * Register the service provider. - */ - public function register(): void - { - $this->app->register(EventServiceProvider::class); - $this->app->register(RouteServiceProvider::class); - } - - /** - * Register commands in the format of Command::class - */ - protected function registerCommands(): void - { - // $this->commands([]); - } - - /** - * Register command Schedules. - */ - protected function registerCommandSchedules(): void - { - // $this->app->booted(function () { - // $schedule = $this->app->make(Schedule::class); - // $schedule->command('inspire')->hourly(); - // }); - } - - /** - * Register translations. - */ - public function registerTranslations(): void - { - $langPath = resource_path('lang/modules/'.$this->nameLower); - - if (is_dir($langPath)) { - $this->loadTranslationsFrom($langPath, $this->nameLower); - $this->loadJsonTranslationsFrom($langPath); - } else { - $this->loadTranslationsFrom(module_path($this->name, '$PATH_LANG$'), $this->nameLower); - $this->loadJsonTranslationsFrom(module_path($this->name, '$PATH_LANG$')); - } - } - - /** - * Register config. - */ - protected function registerConfig(): void - { - $this->publishes([module_path($this->name, '$PATH_CONFIG$/config.php') => config_path($this->nameLower.'.php')], 'config'); - $this->mergeConfigFrom(module_path($this->name, '$PATH_CONFIG$/config.php'), $this->nameLower); - } - - /** - * Register views. - */ - public function registerViews(): void - { - $viewPath = resource_path('views/modules/'.$this->nameLower); - $sourcePath = module_path($this->name, '$PATH_VIEWS$'); - - $this->publishes([$sourcePath => $viewPath], ['views', $this->nameLower.'-module-views']); - - $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->nameLower); - - $componentNamespace = $this->module_namespace($this->name, $this->app_path(config('modules.paths.generator.component-class.path'))); - Blade::componentNamespace($componentNamespace, $this->nameLower); - } - - /** - * Get the services provided by the provider. - */ - public function provides(): array - { - return []; - } - - private function getPublishableViewPaths(): array - { - $paths = []; - foreach (config('view.paths') as $path) { - if (is_dir($path.'/modules/'.$this->nameLower)) { - $paths[] = $path.'/modules/'.$this->nameLower; - } - } - - return $paths; - } -} diff --git a/stubs/nwidart-stubs/scope.stub b/stubs/nwidart-stubs/scope.stub deleted file mode 100644 index 0543ad05b..000000000 --- a/stubs/nwidart-stubs/scope.stub +++ /dev/null @@ -1,18 +0,0 @@ -call([]); - } -} diff --git a/stubs/nwidart-stubs/service-invoke.stub b/stubs/nwidart-stubs/service-invoke.stub deleted file mode 100644 index d0a85c7af..000000000 --- a/stubs/nwidart-stubs/service-invoke.stub +++ /dev/null @@ -1,11 +0,0 @@ -get('/'); - - $response->assertStatus(200); - } -} diff --git a/stubs/nwidart-stubs/tests/unit.stub b/stubs/nwidart-stubs/tests/unit.stub deleted file mode 100644 index 938e5da00..000000000 --- a/stubs/nwidart-stubs/tests/unit.stub +++ /dev/null @@ -1,16 +0,0 @@ -assertTrue(true); - } -} diff --git a/stubs/nwidart-stubs/trait.stub b/stubs/nwidart-stubs/trait.stub deleted file mode 100644 index 0a03ae4fb..000000000 --- a/stubs/nwidart-stubs/trait.stub +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/stubs/nwidart-stubs/views/index.stub b/stubs/nwidart-stubs/views/index.stub deleted file mode 100644 index 1a535d44b..000000000 --- a/stubs/nwidart-stubs/views/index.stub +++ /dev/null @@ -1,7 +0,0 @@ -@extends('$LOWER_NAME$::layouts.master') - -@section('content') -

    Hello World

    - -

    Module: {!! config('$LOWER_NAME$.name') !!}

    -@endsection diff --git a/stubs/nwidart-stubs/views/master.stub b/stubs/nwidart-stubs/views/master.stub deleted file mode 100644 index 8fa6ac498..000000000 --- a/stubs/nwidart-stubs/views/master.stub +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - $STUDLY_NAME$ Module - {{ config('app.name', 'Laravel') }} - - - - - - - - - - {{-- Vite CSS --}} - {{-- {{ module_vite('build-$LOWER_NAME$', 'resources/assets/sass/app.scss') }} --}} - - - - @yield('content') - - {{-- Vite JS --}} - {{-- {{ module_vite('build-$LOWER_NAME$', 'resources/assets/js/app.js') }} --}} - diff --git a/stubs/nwidart-stubs/vite.stub b/stubs/nwidart-stubs/vite.stub deleted file mode 100644 index 314ef8101..000000000 --- a/stubs/nwidart-stubs/vite.stub +++ /dev/null @@ -1,26 +0,0 @@ -import { defineConfig } from 'vite'; -import laravel from 'laravel-vite-plugin'; - -export default defineConfig({ - build: { - outDir: '../../public/build-$LOWER_NAME$', - emptyOutDir: true, - manifest: true, - }, - plugins: [ - laravel({ - publicDirectory: '../../public', - buildDirectory: 'build-$LOWER_NAME$', - input: [ - __dirname + '/resources/assets/sass/app.scss', - __dirname + '/resources/assets/js/app.js' - ], - refresh: true, - }), - ], -}); - -//export const paths = [ -// 'Modules/$STUDLY_NAME$/resources/assets/sass/app.scss', -// 'Modules/$STUDLY_NAME$/resources/assets/js/app.js', -//]; \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js deleted file mode 100644 index 9da241b43..000000000 --- a/tailwind.config.js +++ /dev/null @@ -1,167 +0,0 @@ -import typography from '@tailwindcss/typography'; -import tailwindcssAnimate from 'tailwindcss-animate'; -import defaultTheme from 'tailwindcss/defaultTheme.js'; -import { existsSync } from 'node:fs'; -import path from 'node:path'; -import { createRequire } from 'node:module'; - -const baseConfig = { - content: [ - './resources/views/**/*.blade.php', - './resources/js/**/*.vue', - './resources/js/**/*.js', - './resources/js/**/*.ts', - './resources/js/**/*.tsx', - './app/View/Components/**/*.php', - './Modules/**/resources/views/**/*.blade.php', - './Modules/**/resources/js/**/*.vue', - ], - darkMode: 'class', - theme: { - container: { - center: true, - padding: '1.5rem', - screens: { - '2xl': '1280px', - }, - }, - extend: { - colors: { - border: 'hsl(var(--border))', - input: 'hsl(var(--input))', - ring: 'hsl(var(--ring))', - background: 'hsl(var(--background))', - foreground: 'hsl(var(--foreground))', - primary: { - DEFAULT: 'hsl(var(--primary))', - foreground: 'hsl(var(--primary-foreground))', - }, - secondary: { - DEFAULT: 'hsl(var(--secondary))', - foreground: 'hsl(var(--secondary-foreground))', - }, - destructive: { - DEFAULT: 'hsl(var(--destructive))', - foreground: 'hsl(var(--destructive-foreground))', - }, - muted: { - DEFAULT: 'hsl(var(--muted))', - foreground: 'hsl(var(--muted-foreground))', - }, - accent: { - DEFAULT: 'hsl(var(--accent))', - foreground: 'hsl(var(--accent-foreground))', - }, - popover: { - DEFAULT: 'hsl(var(--popover))', - foreground: 'hsl(var(--popover-foreground))', - }, - card: { - DEFAULT: 'hsl(var(--card))', - foreground: 'hsl(var(--card-foreground))', - }, - }, - borderRadius: { - lg: 'var(--radius)', - md: 'calc(var(--radius) - 2px)', - sm: 'calc(var(--radius) - 4px)', - }, - fontFamily: { - sans: ['Inter', ...defaultTheme.fontFamily.sans], - mono: ['JetBrains Mono', ...defaultTheme.fontFamily.mono], - }, - backgroundImage: { - 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', - }, - boxShadow: { - glow: '0 20px 45px -25px rgba(15, 118, 110, 0.35)', - }, - }, - }, - plugins: [typography, tailwindcssAnimate], -}; - -const themeConfig = loadThemeConfig(process.env.THEME_TAILWIND_CONFIG); -const baseClone = cloneConfig(baseConfig); -const finalConfig = themeConfig ? resolveThemeConfig(themeConfig, baseClone) : baseConfig; - -export default finalConfig; - -function loadThemeConfig(configPathValue) { - if (!configPathValue) { - return null; - } - - const resolvedPath = path.isAbsolute(configPathValue) - ? configPathValue - : path.resolve(process.cwd(), configPathValue); - - if (!existsSync(resolvedPath)) { - console.warn(`[theme] Tailwind config "${resolvedPath}" not found. Falling back to default config.`); - return null; - } - - try { - const requireModule = createRequire(import.meta.url); - const loadedModule = requireModule(resolvedPath); - - if (loadedModule && typeof loadedModule === 'object') { - return 'default' in loadedModule ? loadedModule.default : loadedModule; - } - - return loadedModule; - } catch (error) { - if (error?.code === 'ERR_REQUIRE_ESM') { - console.error( - `[theme] "${resolvedPath}" is treated as an ES module. Theme Tailwind overrides must currently be CommonJS (e.g. tailwind.theme.cjs).`, - ); - } else { - console.error(`[theme] Unable to load Tailwind config "${resolvedPath}". Using default config instead.`); - console.error(error); - } - - return null; - } -} - -function resolveThemeConfig(themeConfigValue, baseConfig) { - if (typeof themeConfigValue === 'function') { - return themeConfigValue(baseConfig) ?? baseConfig; - } - - if (isPlainObject(themeConfigValue)) { - return mergeConfig(baseConfig, themeConfigValue); - } - - return baseConfig; -} - -function cloneConfig(source) { - return mergeConfig({}, source); -} - -function mergeConfig(target, source) { - if (!isPlainObject(source)) { - return target; - } - - for (const [key, value] of Object.entries(source)) { - if (Array.isArray(value)) { - target[key] = value.slice(); - continue; - } - - if (isPlainObject(value)) { - target[key] = mergeConfig(isPlainObject(target[key]) ? target[key] : {}, value); - continue; - } - - target[key] = value; - } - - return target; -} - -function isPlainObject(value) { - return typeof value === 'object' && value !== null && Object.getPrototypeOf(value) === Object.prototype; -} diff --git a/test.php b/test.php deleted file mode 100644 index 8738460b5..000000000 --- a/test.php +++ /dev/null @@ -1,2 +0,0 @@ -get('/'); - - $response->assertStatus(200); - } -} diff --git a/tests/TestCase.php b/tests/TestCase.php deleted file mode 100644 index fe1ffc2ff..000000000 --- a/tests/TestCase.php +++ /dev/null @@ -1,10 +0,0 @@ -assertTrue(true); - } -} diff --git a/vite-module-loader.js b/vite-module-loader.js deleted file mode 100644 index ffaa429d0..000000000 --- a/vite-module-loader.js +++ /dev/null @@ -1,47 +0,0 @@ -import fs from 'fs/promises'; -import path from 'path'; - -async function collectModuleAssetsPaths(paths, modulesPath) { - modulesPath = path.join(__dirname, modulesPath); - - const moduleStatusesPath = path.join(__dirname, 'modules_statuses.json'); - - try { - // Read module_statuses.json - const moduleStatusesContent = await fs.readFile(moduleStatusesPath, 'utf-8'); - const moduleStatuses = JSON.parse(moduleStatusesContent); - - // Read module directories - const moduleDirectories = await fs.readdir(modulesPath); - - for (const moduleDir of moduleDirectories) { - if (moduleDir === '.DS_Store') { - // Skip .DS_Store directory - continue; - } - - // Check if the module is enabled (status is true) - if (moduleStatuses[moduleDir] === true) { - const viteConfigPath = path.join(modulesPath, moduleDir, 'vite.config.js'); - - try { - await fs.access(viteConfigPath); - // Import the module-specific Vite configuration - const moduleConfig = await import(viteConfigPath); - - if (moduleConfig.paths && Array.isArray(moduleConfig.paths)) { - paths.push(...moduleConfig.paths); - } - } catch (error) { - // vite.config.js does not exist, skip this module - } - } - } - } catch (error) { - console.error(`Error reading module statuses or module configurations: ${error}`); - } - - return paths; -} - -export default collectModuleAssetsPaths; diff --git a/vite-module-loader.min.js b/vite-module-loader.min.js deleted file mode 100644 index 995ed6223..000000000 --- a/vite-module-loader.min.js +++ /dev/null @@ -1 +0,0 @@ -import fs from"fs/promises";import path from"path";async function collectModuleAssetsPaths(paths,modulesPath){modulesPath=path.join(__dirname,modulesPath);const moduleStatusesPath=path.join(__dirname,"modules_statuses.json");try{const moduleStatusesContent=await fs.readFile(moduleStatusesPath,"utf-8");const moduleStatuses=JSON.parse(moduleStatusesContent);const moduleDirectories=await fs.readdir(modulesPath);for(const moduleDir of moduleDirectories){if(moduleDir===".DS_Store"){continue}if(moduleStatuses[moduleDir]===true){const viteConfigPath=path.join(modulesPath,moduleDir,"vite.config.js");try{await fs.access(viteConfigPath);const moduleConfig=await import(viteConfigPath);if(moduleConfig.paths&&Array.isArray(moduleConfig.paths)){paths.push(...moduleConfig.paths)}}catch(error){}}}}catch(error){console.error(`Error reading module statuses or module configurations: ${error}`)}return paths}export default collectModuleAssetsPaths; \ No newline at end of file diff --git a/vite.config.js b/vite.config.js deleted file mode 100644 index ef6413e97..000000000 --- a/vite.config.js +++ /dev/null @@ -1,39 +0,0 @@ -import { defineConfig, loadEnv } from 'vite'; -import laravel from 'laravel-vite-plugin'; -import vue from '@vitejs/plugin-vue'; -import path from 'path'; - -export default defineConfig(({ mode }) => { - const env = loadEnv(mode, process.cwd(), ''); - Object.assign(process.env, env); - const cssEntry = env.THEME_CSS_ENTRY || 'resources/css/app.css'; - const jsEntry = env.THEME_JS_ENTRY || 'resources/js/app.js'; - - const inputEntries = [cssEntry, jsEntry] - .filter((entry) => typeof entry === 'string' && entry.length > 0); - - return { - plugins: [ - laravel({ - input: Array.from(new Set(inputEntries)), - refresh: true, - }), - vue(), - ], - resolve: { - alias: { - '@': path.resolve(__dirname, 'resources/js'), - // qs ve side-channel aliaslarını KALDIR - }, - }, - server: { - watch: { - ignored: ['**/public/themes/**'], - }, - }, - optimizeDeps: { - // prod build'te kullanılmıyor ama dursun istiyorsan sade tut - include: ['laravel-echo', 'pusher-js'], - }, - }; -}); diff --git a/vite.config.min.js b/vite.config.min.js deleted file mode 100644 index 18e9ded17..000000000 --- a/vite.config.min.js +++ /dev/null @@ -1 +0,0 @@ -import{defineConfig as e,loadEnv as o}from"vite";import laravel from"laravel-vite-plugin";import vue from"@vitejs/plugin-vue";import path from"path";export default e(({mode:t})=>{const r=o(t,process.cwd(),"");Object.assign(process.env,r);const n=r.THEME_CSS_ENTRY||"resources/css/app.css",s=r.THEME_JS_ENTRY||"resources/js/app.js",i=[n,s].filter((a=>"string"==typeof a&&a.length>0));return{plugins:[laravel({input:Array.from(new Set(i)),refresh:!0}),vue()],resolve:{alias:{"@":path.resolve(__dirname,"resources/js")}},optimizeDeps:{include:["laravel-echo","pusher-js"]}}});