File "ThemeDisplay.php"
Full Path: /home/fundopuh/trader.fxex.org/app/Http/Livewire/Admin/ThemeDisplay.php
File size: 3.1 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// this Code is Cracked by dharunMods-YouTube-Channel
namespace App\Http\Livewire\Admin;
use App\Models\Settings;
use App\Models\Theme;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Artisan;
use Livewire\Component;
use Livewire\WithFileUploads;
class ThemeDisplay extends Component
{
use WithFileUploads;
public $theme;
public bool $uploadTheme = false;
public function render()
{
return view('livewire.admin.theme-display');
}
public function setTheme($theme)
{
Settings::where('id', '1')
->update([
'website_theme' => $theme,
]);
}
public function uploadTheme(): void
{
$this->uploadTheme = true;
}
public function cancelUpload(): void
{
$this->uploadTheme = false;
}
protected $rules = [
'theme' => ['max:30000'],
];
public function saveTheme()
{
$settings = Settings::find(1);
$this->validate();
sleep(4);
if ($this->theme->extension() != 'zip') {
session()->flash('error', 'Please upload a zip file');
} else {
// read the content of the zip file
$zip = new \ZipArchive();
$open = $zip->open($this->theme->getRealPath());
//get theme name without the .zip extension
$themeName = substr($this->theme->getClientOriginalName(), 0, -4);
if ($open === TRUE) {
// extract the zip file to the themes folder
$zip->extractTo(base_path("themes/{$themeName}"));
//$zip->extractTo(public_path("themes/{$themeName}"));
$zip->close();
//extract the views file to the resources folder
$zip->open(base_path("themes/{$themeName}/views.zip"));
//$zip->open(public_path("themes/{$themeName}/views.zip"));
$zip->extractTo(resource_path("views"));
$zip->close();
// add the theme to the database
$settings->theme = $themeName;
$settings->save();
// reset the upload form
$this->theme = null;
session()->flash('success', 'Theme uploaded successfully');
} else {
session()->flash('error', 'There was an error uploading the theme, please try again.');
}
}
return redirect()->route('appsettingshow');
}
//chose theme
public function chooseTheme(int $id)
{
//set the active theme, only one theme can be active at a time
Theme::where('active', true)->update(['active' => false]);
Theme::where('id', $id)->update(['active' => 1]);
session()->flash('success', 'Theme activated successfully');
}
//clear cache files and views
public function clearCache()
{
//clear the cache with Artisan command
Artisan::call('cache:clear');
Artisan::call('view:clear');
session()->flash('success', 'Cache cleared successfully');
return redirect()->route('appsettingshow');
}
}