Laravel 11, Vuexy Admin 10.3, by admin@koneko.mx
This commit is contained in:
100
modules/Admin/App/Livewire/WebsiteSettings/SocialSettings.php
Normal file
100
modules/Admin/App/Livewire/WebsiteSettings/SocialSettings.php
Normal file
@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Admin\App\Livewire\WebsiteSettings;
|
||||
|
||||
use Livewire\Component;
|
||||
use App\Services\WebsiteTemplateService;
|
||||
use Modules\Admin\App\Services\WebsiteSettingsService;
|
||||
|
||||
class SocialSettings extends Component
|
||||
{
|
||||
private $targetNotify = "#website-social-settings-card .notification-container";
|
||||
|
||||
public $social_whatsapp,
|
||||
$social_whatsapp_message,
|
||||
$social_facebook,
|
||||
$social_instagram,
|
||||
$social_linkedin,
|
||||
$social_tiktok,
|
||||
$social_x_twitter,
|
||||
$social_google,
|
||||
$social_pinterest,
|
||||
$social_youtube,
|
||||
$social_vimeo;
|
||||
|
||||
protected $listeners = ['saveSocialSettings' => 'save'];
|
||||
|
||||
|
||||
public function mount()
|
||||
{
|
||||
$this->loadSettings();
|
||||
}
|
||||
|
||||
public function loadSettings()
|
||||
{
|
||||
$websiteTemplateService = app(WebsiteTemplateService::class);
|
||||
|
||||
// Obtener los valores de las configuraciones de la base de datos
|
||||
$settings = $websiteTemplateService->getSocialVars();
|
||||
|
||||
$this->social_whatsapp = $settings['whatsapp'];
|
||||
$this->social_whatsapp_message = $settings['whatsapp_message'];
|
||||
$this->social_facebook = $settings['facebook'];
|
||||
$this->social_instagram = $settings['instagram'];
|
||||
$this->social_linkedin = $settings['linkedin'];
|
||||
$this->social_tiktok = $settings['tiktok'];
|
||||
$this->social_x_twitter = $settings['x_twitter'];
|
||||
$this->social_google = $settings['google'];
|
||||
$this->social_pinterest = $settings['pinterest'];
|
||||
$this->social_youtube = $settings['youtube'];
|
||||
$this->social_vimeo = $settings['vimeo'];
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
$this->validate([
|
||||
'social_whatsapp' => 'string|max:20',
|
||||
'social_whatsapp_message' => 'string|max:255',
|
||||
'social_facebook' => 'url',
|
||||
'social_instagram' => 'url',
|
||||
'social_linkedin' => 'url',
|
||||
'social_tiktok' => 'url',
|
||||
'social_x_twitter' => 'url',
|
||||
'social_google' => 'url',
|
||||
'social_pinterest' => 'url',
|
||||
'social_youtube' => 'url',
|
||||
'social_vimeo' => 'url',
|
||||
]);
|
||||
|
||||
$websiteSettingsService = app(websiteSettingsService::class);
|
||||
|
||||
// Guardar título del App en configuraciones
|
||||
$websiteSettingsService->updateSetting('social_whatsapp', preg_replace('/\D/', '', $this->social_whatsapp));
|
||||
$websiteSettingsService->updateSetting('social_whatsapp_message', $this->social_whatsapp_message);
|
||||
$websiteSettingsService->updateSetting('social_facebook', $this->social_facebook);
|
||||
$websiteSettingsService->updateSetting('social_instagram', $this->social_instagram);
|
||||
$websiteSettingsService->updateSetting('social_linkedin', $this->social_linkedin);
|
||||
$websiteSettingsService->updateSetting('social_tiktok', $this->social_tiktok);
|
||||
$websiteSettingsService->updateSetting('social_x_twitter', $this->social_x_twitter);
|
||||
$websiteSettingsService->updateSetting('social_google', $this->social_google);
|
||||
$websiteSettingsService->updateSetting('social_pinterest', $this->social_pinterest);
|
||||
$websiteSettingsService->updateSetting('social_youtube', $this->social_youtube);
|
||||
$websiteSettingsService->updateSetting('social_vimeo', $this->social_vimeo);
|
||||
|
||||
app(WebsiteTemplateService::class)->clearWebsiteVarsCache();
|
||||
|
||||
$this->loadSettings();
|
||||
|
||||
$this->dispatch(
|
||||
'notification',
|
||||
target: $this->targetNotify,
|
||||
type: 'success',
|
||||
message: 'Se han guardado los cambios en las configuraciones.'
|
||||
);
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
return view('admin::livewire.website-settings.social-settings');
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user