2023-02-01 19:33:36 +00:00
< ? php
use Spatie\LaravelSettings\Migrations\SettingsMigration ;
use Illuminate\Support\Facades\DB ;
class CreateWebsiteSettings extends SettingsMigration
{
public function up () : void
{
2023-02-02 16:36:19 +00:00
$table_exists = DB :: table ( 'settings_old' ) -> exists ();
2023-02-01 19:33:36 +00:00
// Get the user-set configuration values from the old table.
2023-02-02 16:36:19 +00:00
$this -> migrator -> add ( 'website.motd_enabled' , $table_exists ? $this -> getOldValue ( " SETTINGS::SYSTEM:MOTD_ENABLED " ) : true );
$this -> migrator -> add ( 'website.motd_message' , $table_exists ? $this -> getOldValue ( " SETTINGS::SYSTEM:MOTD_MESSAGE " ) :
2023-02-02 15:08:34 +00:00
' < h1 style = " text-align: center; " >< img style = " display: block; margin-left: auto; margin-right: auto; " src = " https://controlpanel.gg/img/controlpanel.png " alt = " " width = " 200 " height = " 200 " >< span style = " font-size: 36pt; " > Controlpanel . gg </ span ></ h1 >
< p >< span style = " font-size: 18pt; " > Thank you for using our Software </ span ></ p >
< p >< span style = " font-size: 18pt; " > If you have any questions , make sure to join our < a href = " https://discord.com/invite/4Y6HjD2uyU " target = " _blank " rel = " noopener " > Discord </ a ></ span ></ p >
< p >< span style = " font-size: 10pt; " > ( you can change this message in the < a href = " admin/settings#system " > Settings </ a > ) </ span ></ p > '
);
2023-02-02 16:36:19 +00:00
$this -> migrator -> add ( 'website.show_imprint' , $table_exists ? $this -> getOldValue ( " SETTINGS::SYSTEM:SHOW_IMPRINT " ) : false );
$this -> migrator -> add ( 'website.show_privacy' , $table_exists ? $this -> getOldValue ( " SETTINGS::SYSTEM:SHOW_PRIVACY " ) : false );
$this -> migrator -> add ( 'website.show_tos' , $table_exists ? $this -> getOldValue ( " SETTINGS::SYSTEM:SHOW_TOS " ) : false );
$this -> migrator -> add ( 'website.useful_links_enabled' , $table_exists ? $this -> getOldValue ( " SETTINGS::SYSTEM:USEFULLINKS_ENABLED " ) : true );
$this -> migrator -> add ( 'website.seo_title' , $table_exists ? $this -> getOldValue ( " SETTINGS::SYSTEM:SEO_TITLE " ) : 'ControlPanel.gg' );
$this -> migrator -> add ( 'website.seo_description' , $table_exists ? $this -> getOldValue ( " SETTINGS::SYSTEM:SEO_DESCRIPTION " ) : 'Billing software for Pterodactyl Panel.' );
2023-02-05 17:20:55 +00:00
$this -> migrator -> add ( 'website.enable_login_logo' , true );
2023-02-01 19:33:36 +00:00
}
public function getOldValue ( string $key )
{
2023-02-02 16:36:19 +00:00
// Always get the first value of the key.
2023-02-04 16:40:42 +00:00
$old_value = DB :: table ( 'settings_old' ) -> where ( 'key' , '=' , $key ) -> get ([ 'value' , 'type' ]) -> first ();
// Handle the old values to return without it being a string in all cases.
if ( $old_value -> type === " string " || $old_value -> type === " text " ) {
2023-02-07 16:16:58 +00:00
if ( is_null ( $old_value -> value )) {
return '' ;
}
// Some values have the type string, but their values are boolean.
if ( $old_value -> value === " false " || $old_value -> value === " true " ) {
return filter_var ( $old_value -> value , FILTER_VALIDATE_BOOL );
}
2023-02-04 16:40:42 +00:00
return $old_value -> value ;
}
if ( $old_value -> type === " boolean " ) {
return filter_var ( $old_value -> value , FILTER_VALIDATE_BOOL );
}
return filter_var ( $old_value -> value , FILTER_VALIDATE_INT );
2023-02-01 19:33:36 +00:00
}
}