LinkStack/resources/views/components/finishing.blade.php

277 lines
13 KiB
PHP

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Migrations\Migrator;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Database\Seeders\ButtonSeeder;
use App\Models\Page;
//run before finishing:
if(EnvEditor::keyExists('JOIN_BETA')){ /* Do nothing if key already exists */
} else { EnvEditor::addKey('JOIN_BETA', 'false');} // Adds key to .env file
if(EnvEditor::keyExists('SKIP_UPDATE_BACKUP')){ /* Do nothing if key already exists */
} else { EnvEditor::addKey('SKIP_UPDATE_BACKUP', 'false');} // Adds key to .env file
if(EnvEditor::keyExists('CUSTOM_META_TAGS')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('CUSTOM_META_TAGS', 'false');}
if(EnvEditor::keyExists('MAINTENANCE_MODE')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('MAINTENANCE_MODE', 'false');}
if(EnvEditor::keyExists('ALLOW_CUSTOM_CODE_IN_THEMES')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('ALLOW_CUSTOM_CODE_IN_THEMES', 'true');}
if(EnvEditor::keyExists('ENABLE_THEME_UPDATER')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('ENABLE_THEME_UPDATER', 'true');}
if(EnvEditor::keyExists('ENABLE_SOCIAL_LOGIN')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('ENABLE_SOCIAL_LOGIN', 'false');}
if(EnvEditor::keyExists('USE_THEME_PREVIEW_IFRAME')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('USE_THEME_PREVIEW_IFRAME', 'true');}
if(EnvEditor::keyExists('FORCE_ROUTE_HTTPS')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('FORCE_ROUTE_HTTPS', 'false');}
if(EnvEditor::keyExists('HIDE_VERIFICATION_CHECKMARK')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('HIDE_VERIFICATION_CHECKMARK', 'false');}
if(EnvEditor::keyExists('ALLOW_CUSTOM_BACKGROUNDS')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('ALLOW_CUSTOM_BACKGROUNDS', 'true');}
if(EnvEditor::keyExists('ALLOW_USER_IMPORT')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('ALLOW_USER_IMPORT', 'true');}
if(EnvEditor::keyExists('ALLOW_USER_EXPORT')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('ALLOW_USER_EXPORT', 'true');}
if(EnvEditor::keyExists('SUPPORTED_DOMAINS')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('SUPPORTED_DOMAINS', '');}
if(EnvEditor::keyExists('MANUAL_USER_VERIFICATION')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('MANUAL_USER_VERIFICATION', 'false');}
if(EnvEditor::keyExists('DISPLAY_CREDIT_FOOTER')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('DISPLAY_CREDIT_FOOTER', 'true');}
if(EnvEditor::keyExists('LOCALE')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('LOCALE', 'en');}
if(EnvEditor::keyExists('ENABLE_REPORT_ICON')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('ENABLE_REPORT_ICON', 'false');}
if(EnvEditor::keyExists('ENABLE_ADMIN_BAR')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('ENABLE_ADMIN_BAR', 'true');}
if(EnvEditor::keyExists('ENABLE_ADMIN_BAR_USERS')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('ENABLE_ADMIN_BAR_USERS', 'false');}
if(EnvEditor::keyExists('ADMIN_EMAIL')){} else
{if(Auth::user()->id == 1){EnvEditor::addKey('ADMIN_EMAIL', App\Models\User::find(1)->email);}
else{EnvEditor::addKey('ADMIN_EMAIL', '');}}
if(env('APP_NAME') == 'LittleLink Custom' or env('APP_NAME') == 'LittleLink') {
EnvEditor::editKey('APP_NAME', 'LinkStack');
}
if (EnvEditor::keyExists('ALLOW_REGISTRATION')) { /* Do nothing if key already exists */
} else {
$pagedb = DB::table('pages')->select('register')->first();
if ($pagedb->register) {
EnvEditor::addKey('ALLOW_REGISTRATION', 'true');
} else {
EnvEditor::addKey('ALLOW_REGISTRATION', 'false');
}
try {
DB::table('pages')->update(['register' => null]);
} catch (Exception $e) {}
}
try {
$file = base_path('storage/RSTAC');
if (file_exists($file)) {
copy(base_path('storage/templates/advanced-config.php'), base_path('config/advanced-config.php'));
unlink($file);
}
} catch (Exception $e) {}
try {
$vendorLangPath = resource_path('lang/vendor');
if (File::exists($vendorLangPath)) {
File::deleteDirectory($vendorLangPath);
}
} catch (Exception $e) {}
// Footer page customization
if(EnvEditor::keyExists('DISPLAY_FOOTER_HOME')){} else {EnvEditor::addKey('DISPLAY_FOOTER_HOME', 'true');}
if(EnvEditor::keyExists('DISPLAY_FOOTER_TERMS')){} else {EnvEditor::addKey('DISPLAY_FOOTER_TERMS', 'true');}
if(EnvEditor::keyExists('DISPLAY_FOOTER_PRIVACY')){} else {EnvEditor::addKey('DISPLAY_FOOTER_PRIVACY', 'true');}
if(EnvEditor::keyExists('DISPLAY_FOOTER_CONTACT')){} else {EnvEditor::addKey('DISPLAY_FOOTER_CONTACT', 'true');}
if(EnvEditor::keyExists('TITLE_FOOTER_HOME')){} else {EnvEditor::addKey('TITLE_FOOTER_HOME', 'Home');}
if(EnvEditor::keyExists('TITLE_FOOTER_TERMS')){} else {EnvEditor::addKey('TITLE_FOOTER_TERMS', 'Terms');}
if(EnvEditor::keyExists('TITLE_FOOTER_PRIVACY')){} else {EnvEditor::addKey('TITLE_FOOTER_PRIVACY', 'Privacy');}
if(EnvEditor::keyExists('TITLE_FOOTER_CONTACT')){} else {EnvEditor::addKey('TITLE_FOOTER_CONTACT', 'Contact');}
if(EnvEditor::keyExists('HOME_FOOTER_LINK')){} else {EnvEditor::addKey('HOME_FOOTER_LINK', '');}
if(EnvEditor::keyExists('FORCE_HTTPS')){ /* Do nothing if key already exists */
} else {EnvEditor::addKey('FORCE_HTTPS', 'false');}
$data['page'] = Page::select('contact')->first();
if (strpos($data['page']->contact, 'info@littlelink-custom.com') !== false or strpos($data['page']->contact, 'LittleLink Custom') !== false) {
$contact = '
<p><strong><a href="https://linkstack.org/">LinkStack</a></strong> is a free, open source&nbsp;link&nbsp;sharing platform. We depend on community feedback to steadily improve this project.</p>
<p><strong>Feel free to send us your feedback!</strong></p>
<ul>
<li>Join our <a href="https://discord.linkstack.org/">community Discord</a></li>
<li>Join the <a href="https://github.com/linkstackorg/linkstack/discussions">discussion forum</a></li>
<li>Request a feature and add it to the <a href="https://github.com/linkstackorg/linkstack/discussions/49">to-do list</a></li>
<li>Write us an <a href="mailto:info@linkstack.org?subject=Inquiry%20about%20LinkStack">email</a></li>
</ul>
<p>If you&#39;re having any trouble or encountered a bug, feel free to <a href="https://github.com/linkstackorg/linkstack/issues">open an issue on GitHub</a>.</p>
<p>&nbsp;</p>
';
Page::first()->update(['contact' => $contact]);
}
$data['page'] = Page::select('home_message')->first();
if (strpos($data['page']->home_message, 'LittleLink Custom') !== false) {
$home_message = '
<p>Take control of your online presence with&nbsp;<a href="https://linkstack.org/"><strong>LinkStack</strong></a> the privacy-focused, open-source <strong>link management platform</strong>. Create a customizable profile page to manage <strong>all your important links in one convenient location</strong> and give your audience a seamless browsing experience.</p>
';
Page::first()->update(['home_message' => $home_message]);
}
/* Updates button database entries */
Schema::disableForeignKeyConstraints();
try {
$migrator = app('migrator');
$migrator->run(database_path('migrations'), ['--force' => true]);
} catch (exception $e) {}
try {DB::table('buttons')->delete();} catch (exception $e) {}
try {DB::table('buttons')->truncate();} catch (exception $e) {}
try {
$seeder = new ButtonSeeder();
$seeder->run();
} catch (exception $e) {}
Schema::enableForeignKeyConstraints();
// Adds new column to the users table
if (!Schema::hasColumn('users', 'auth_as')) {
Schema::table('users', function (Blueprint $table) {
$table->unsignedInteger('auth_as')->nullable();
});
}
try {
DB::table('link_types')->updateOrInsert([
'typename' => 'text',
'title' => 'Text',
'icon' => 'bi bi-fonts',
'description' => 'Add static text to your page that is not clickable.',
'params' => '[{
"tag": "textarea",
"id": "static-text",
"for": "static_text",
"label": "Text",
"name": "static_text",
"class": "form-control"
}
]'
]);
DB::table('link_types')->updateOrInsert([
'typename' => 'email',
'title' => 'E-Mail address',
'icon' => 'bi bi-envelope-fill',
'description' => 'Add an email that opens a system dialog to compose a new email.'
]);
DB::table('link_types')->updateOrInsert([
'typename' => 'telephone',
'title' => 'Telephone number',
'icon' => 'bi bi-telephone-fill',
'description' => 'Add a telephone number that opens a system dialog to initiate a phone call.'
]);
DB::table('link_types')->updateOrInsert([
'typename' => 'vcard',
'title' => 'Vcard',
'icon' => 'bi bi-person-square',
'description' => 'Create or upload an electronic business card.'
]);
} catch (exception $e) {}
// Moves all previous images to the new path
try{if (is_dir(base_path('assets/img'))) {
$files = File::files(base_path('img'));
foreach ($files as $file) {
$filename = $file->getFilename();
$destination = base_path('assets/img/' . $filename);
if (!File::exists($destination)) {
if (!$file->isDir()) {
File::move($file, $destination);}}}}
}catch(exception $e) {}
try{if (is_dir(base_path('assets/img/background-img'))) {
$files = File::files(base_path('img/background-img'));
foreach ($files as $file) {
$filename = $file->getFilename();
$destination = base_path('assets/img/background-img/' . $filename);
if (!File::exists($destination)) {
if (!$file->isDir()) {
File::move($file, $destination);}}}}
}catch(exception $e) {}
try{if (is_dir(base_path('littlelink/images'))) {
$files = File::files(base_path('littlelink/images'));
foreach ($files as $file) {
$filename = $file->getFilename();
$destination = base_path('assets/linkstack/images/' . $filename);
if (!File::exists($destination)) {
if (!$file->isDir()) {
File::move($file, $destination);}}}}
}catch(exception $e) {}
try{if (is_dir(base_path('littlelink/images'))) {
$files = File::files(base_path('littlelink/images'));
foreach ($files as $file) {
$filename = $file->getFilename();
$destination = base_path('assets/linkstack/images/' . $filename);
if (!File::exists($destination)) {
if (!$file->isDir()) {
File::move($file, $destination);}}}}
}catch(exception $e) {}
try{if (is_dir(base_path('studio/favicon/icons'))) {
$files = File::files(base_path('studio/favicon/icons'));
foreach ($files as $file) {
$filename = $file->getFilename();
$destination = base_path('assets/favicon/icons/' . $filename);
if (!File::exists($destination)) {
if (!$file->isDir()) {
File::move($file, $destination);}}}}
}catch(exception $e) {}
// Changes saved profile images from littlelink_name to IDs.
// This runs every time the updater runs.
// Not sure if this will cause any issues.
// If it works, I won't touch it.
try {
$users = DB::table('users')->get();
foreach ($users as $user) {
$oldName = $user->littlelink_name . '.png';
$newName = $user->id . '.png';
$oldPath = base_path('assets/img/' . $oldName);
$newPath = base_path('assets/img/' . $newName);
if (File::exists($oldPath)) {
File::move($oldPath, $newPath);
}}} catch (exception $e) {}
?>