REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 8.61 KB
Close
/home/byroehnu/cnggold.com.ng/app/Http/Controllers/InstallController.php
Text
Base64
<?php namespace App\Http\Controllers; use App\Models\CaseStudy; use App\Models\Page; use App\Models\Portfolio; use App\Models\Service; use App\Models\Setting; use App\Models\Team; use App\Models\User; use App\Repositories\SettingRepository; use Illuminate\Http\Request; use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\URL; class InstallController extends Controller { public function step0() { return view('installation.step0'); } public function step1() { $permission['curl_enabled'] = function_exists('curl_version'); $permission['symlink_enabled'] = function_exists('symlink'); $permission['db_file_write_perm'] = is_writable(base_path('.env')); return view('installation.step1', compact('permission')); } public function step2() { // write app url to env $this->writeEnvironmentFile('APP_URL', URL::to('/')); // create symlink Artisan::call('storage:link'); return view('installation.step2'); } public function step3() { if (!self::core()){ return redirect()->route('step2'); } return view('installation.step3'); } public function step4() { if (!self::core()){ return redirect()->route('step2'); } return view('installation.step4'); } public function step5() { if (!self::core()){ return redirect()->route('step2'); } return view('installation.step5'); } public function database_installation(Request $request) { try { self::check_database_connection($request->DB_HOST, $request->DB_DATABASE, $request->DB_USERNAME, $request->DB_PASSWORD); $path = base_path('.env'); if (file_exists($path)) { foreach ($request->types as $type) { $this->writeEnvironmentFile($type, $request[$type]); } return redirect('step4'); } else { return redirect('step3'); } } catch (\Exception $exception) { return redirect()->route('step3')->with('error', $exception->getMessage()); } } public function import_sql() { $sql_path = base_path('bione.sql'); DB::unprepared(file_get_contents($sql_path)); $this->updatePageLink(); return redirect('step5'); } private function check_database_connection($db_host = '', $db_name = '', $db_user = '', $db_pass = '') { try { $connection = @mysqli_connect($db_host, $db_user, $db_pass, $db_name); $connection->close(); } catch (\mysqli_sql_exception $exception) { throw new \Exception($exception->getMessage()); } } public function system_settings(Request $request) { $this->writeEnvironmentFile('APP_NAME', $request->system_name); User::create([ 'id' => 1, 'name' => $request->admin_name, 'email' => $request->admin_email, 'password' => Hash::make($request->admin_password), 'email_verified_at' => date('Y-m-d H:m:s'), ])->assignRole('admin'); $this->writeEnvironmentFile('IS_INSTALLED', true); //sleep(5); return view('installation.step6'); // return redirect('step6'); } private function writeEnvironmentFile($type, $val) { $path = base_path('.env'); if (file_exists($path)) { $val = trim($val); if (is_numeric(strpos(file_get_contents($path), $type)) && strpos(file_get_contents($path), $type) >= 0) { file_put_contents($path, str_replace( $type.'='.env($type), $type.'='.$val, file_get_contents($path) )); } } } public function verify_purchase(Request $request) { try { $this->verify($request->purchase_code, $request->username, $request->email); return redirect('step3'); } catch (\Exception $exception) { return back()->with('error', $exception->getMessage())->withInput(); } } private function updatePageLink() { $newDomain = request()->getHost(); // update page Page::with('contents')->each(function ($page) { $page->contents->each(function ($content) { $contentData = $content->toArray(); $newDomain = request()->getHost(); $contentData['sections_data'] = $this->replaceDomainPaths($contentData['sections_data'], "bione-laravel.laralink.com", $newDomain); $content->update($contentData); }); }); // update portfolio Portfolio::with('contents')->each(function ($portfolio) { $portfolio->contents->each(function ($content) { $contentData = $content->toArray(); $newDomain = request()->getHost(); $contentData['sections_data'] = $this->replaceDomainPaths($contentData['sections_data'], "bione-laravel.laralink.com", $newDomain); $content->update($contentData); }); }); // service update Service::with('contents')->each(function ($service) { $service->contents->each(function ($content) { $contentData = $content->toArray(); $newDomain = request()->getHost(); $contentData['sections_data'] = $this->replaceDomainPaths($contentData['sections_data'], "bione-laravel.laralink.com", $newDomain); $content->update($contentData); }); }); // case study update CaseStudy::with('contents')->each(function ($caseStudy) { $caseStudy->contents->each(function ($content) { $contentData = $content->toArray(); $newDomain = request()->getHost(); $contentData['sections_data'] = $this->replaceDomainPaths($contentData['sections_data'], "bione-laravel.laralink.com", $newDomain); $content->update($contentData); }); }); // Team update Team::with('contents')->each(function ($team) { $team->contents->each(function ($content) { $contentData = $content->toArray(); $newDomain = request()->getHost(); $contentData['sections_data'] = $this->replaceDomainPaths($contentData['sections_data'], "bione-laravel.laralink.com", $newDomain); $content->update($contentData); }); }); $settingRepository = app(SettingRepository::class); $main_menu = Setting::pull('main_menu'); $service_menu = Setting::pull('services_menu'); $footer_menu = Setting::pull('footer_menu'); $resources_menu = Setting::pull('resources_menu'); $useful_links = Setting::pull('useful_links'); $main_menu = $this->replaceDomainPaths(json_decode($main_menu, true), "bione-laravel.laralink.com", $newDomain); $service_menu = $this->replaceDomainPaths(json_decode($service_menu, true), "bione-laravel.laralink.com", $newDomain); $footer_menu = $this->replaceDomainPaths(json_decode($footer_menu, true), "bione-laravel.laralink.com", $newDomain); $resources_menu = $this->replaceDomainPaths(json_decode($resources_menu, true), "bione-laravel.laralink.com", $newDomain); $useful_links = $this->replaceDomainPaths(json_decode($useful_links, true), "bione-laravel.laralink.com", $newDomain); $settingRepository->updateSettingByGroup('menu_settings', [ 'main_menu' => $main_menu, 'services_menu' => $service_menu, 'footer_menu' => $footer_menu, 'resources_menu' => $resources_menu, 'useful_links' => $useful_links, ]); } /** * Recursively replace all URLs with a specific domain. * * @param mixed $data * @param string $oldDomain * @param string $newDomain * @return mixed */ private function replaceDomainPaths($data, string $oldDomain, string $newDomain) { $scheme = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://'; if (is_array($data)) { foreach ($data as $key => $value) { $data[$key] = $this->replaceDomainPaths($value, $oldDomain, $newDomain); } } elseif (is_string($data) && str_contains($data, $oldDomain)) { $data = str_replace("https://{$oldDomain}", "{$scheme}{$newDomain}", $data); } return $data; } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 4 × Files: 6
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
Admin
DIR
-
drwxr-xr-x
2025-07-19 07:29:54
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Auth
DIR
-
drwxr-xr-x
2025-05-08 11:48:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Debug
DIR
-
drwxr-xr-x
2025-04-08 04:12:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Frontend
DIR
-
drwxr-xr-x
2025-07-19 07:29:54
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Controller.php
336 B
lrw-r--r--
2025-04-19 04:22:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
DebugController.php
3.48 KB
lrw-r--r--
2025-07-19 11:19:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
InstallController.php
8.61 KB
lrw-r--r--
2025-07-19 11:26:12
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
LoginLinkController.php
3.66 KB
lrw-r--r--
2025-05-04 10:26:05
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ProfileController.php
1.48 KB
lrw-r--r--
2025-04-08 04:12:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
UpdateController.php
3.97 KB
lrw-r--r--
2025-07-19 12:08:07
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).