From 9119906f2a34cf1a47b6ea5f5aa0687e77f6993e Mon Sep 17 00:00:00 2001 From: Peter Ivanov Date: Tue, 27 Aug 2024 14:43:58 +0300 Subject: [PATCH] update --- .../Listeners/DomainIsCreatedListener.php | 84 +++++++++++++------ 1 file changed, 57 insertions(+), 27 deletions(-) diff --git a/web/Modules/Microweber/Listeners/DomainIsCreatedListener.php b/web/Modules/Microweber/Listeners/DomainIsCreatedListener.php index e393133..f869eb6 100644 --- a/web/Modules/Microweber/Listeners/DomainIsCreatedListener.php +++ b/web/Modules/Microweber/Listeners/DomainIsCreatedListener.php @@ -29,19 +29,19 @@ class DomainIsCreatedListener public function handle(DomainIsCreated $event): void { $findDomain = Domain::where('id', $event->model->id)->first(); - if (! $findDomain) { + if (!$findDomain) { return; } $findHostingSubscription = HostingSubscription::where('id', $findDomain->hosting_subscription_id)->first(); - if (! $findHostingSubscription) { + if (!$findHostingSubscription) { return; } $findHostingPlan = HostingPlan::where('id', $findHostingSubscription->hosting_plan_id)->first(); - if (! $findHostingPlan) { + if (!$findHostingPlan) { return; } - if (! in_array('microweber', $findHostingPlan->additional_services)) { + if (!in_array('microweber', $findHostingPlan->additional_services)) { return; } @@ -56,32 +56,57 @@ class DomainIsCreatedListener $createdDatabaseHost = null; $createdDatabasePort = null; - try { + $databseType = 'sqlite'; + $databasesAreCreated = false; + $shouldCreateMysqlDatabase = false; - $databaseUserPassword = Str::password(24); - $databaseName = $databaseUsername = 'mw'.time(); - $hss = new HostingSubscriptionService($findDomain->hosting_subscription_id); - $createDatabase = $hss->createDatabase($databaseName); - if (isset($createDatabase['data']['database_name'])) { - $createdDatabaseName = $createDatabase['data']['database_name']; - } - $createDatabaseUser = $hss->createDatabaseUser($createDatabase['data']['database_id'], $databaseUsername,$databaseUserPassword); - if (isset($createDatabaseUser['data']['database_user'])) { - $createdDatabaseUsername = $createDatabaseUser['data']['database_user']; - $createdDatabaseUserPassword = $createDatabaseUser['data']['database_password']; - $createdDatabaseHost = $createDatabase['data']['database_host']; - $createdDatabasePort = $createDatabase['data']['database_port']; - } + $microweberSettingsFromPanel = setting('microweber'); - $databasesAreCreated = true; - - } catch (\Exception $e) { - $databasesAreCreated = false; + if (isset($microweberSettingsFromPanel['database_driver']) && $microweberSettingsFromPanel['database_driver'] == 'mysql') { + $shouldCreateMysqlDatabase = true; } + if($shouldCreateMysqlDatabase) { + try { + + $databaseUserPassword = Str::password(24); + $databaseName = $databaseUsername = 'mw' . time(); + + $hss = new HostingSubscriptionService($findDomain->hosting_subscription_id); + $createDatabase = $hss->createDatabase($databaseName); + if (isset($createDatabase['data']['database_name'])) { + $createdDatabaseName = $createDatabase['data']['database_name']; + } + $createDatabaseUser = $hss->createDatabaseUser($createDatabase['data']['database_id'], $databaseUsername, $databaseUserPassword); + if (isset($createDatabaseUser['data']['database_user'])) { + $createdDatabaseUsername = $createDatabaseUser['data']['database_user']; + $createdDatabaseUserPassword = $createDatabaseUser['data']['database_password']; + $createdDatabaseHost = $createDatabase['data']['database_host']; + $createdDatabasePort = $createDatabase['data']['database_port']; + } + + $databasesAreCreated = true; + + } catch (\Exception $e) { + $databasesAreCreated = false; + } + } $installationType = 'symlink'; - $installationLanguage = 'bg'; + $installationLanguage = 'en'; + $website_manager_url = 'https://microweber.com'; + + //$installationTemplate = 'default'; + + + if (isset($microweberSettingsFromPanel['default_installation_type']) && $microweberSettingsFromPanel['default_installation_type'] == 'standalone') { + $installationType = 'standalone'; + } + if (isset($microweberSettingsFromPanel['website_manager_url']) && $microweberSettingsFromPanel['website_manager_url']) { + $website_manager_url = $microweberSettingsFromPanel['website_manager_url']; + } + + // dd(setting('microweber')); $install = new \MicroweberPackages\SharedServerScripts\MicroweberInstaller(); $install->setChownUser($findDomain->domain_username); @@ -93,7 +118,12 @@ class DomainIsCreatedListener $install->setLanguage($installationLanguage); //$install->setStandaloneInstallation(); - $install->setSymlinkInstallation(); + if($installationType == 'symlink') { + $install->setSymlinkInstallation(); + } else { + $install->setStandaloneInstallation(); + } + if ($databasesAreCreated) { $install->setDatabaseDriver('mysql'); @@ -114,7 +144,7 @@ class DomainIsCreatedListener if (isset($status['success']) && $status['success']) { $whiteLabelSettings = []; - $whiteLabelSettings['website_manager_url'] = 'https://microweber.com'; + $whiteLabelSettings['website_manager_url'] = $website_manager_url; $whitelabel = new MicroweberWhitelabelSettingsUpdater(); $whitelabel->setPath($findDomain->domain_public); @@ -124,7 +154,7 @@ class DomainIsCreatedListener ->where('domain_id', $findDomain->id) ->first(); - if (! $findInstallation) { + if (!$findInstallation) { $findInstallation = new MicroweberInstallation(); $findInstallation->domain_id = $findDomain->id; $findInstallation->installation_path = $findDomain->domain_public;