Spaces:
No application file
No application file
namespace Mautic\NotificationBundle\Integration; | |
use Mautic\PluginBundle\Integration\AbstractIntegration; | |
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; | |
use Symfony\Component\Form\Extension\Core\Type\TextType; | |
use Symfony\Component\Form\FormBuilder; | |
class OneSignalIntegration extends AbstractIntegration | |
{ | |
protected bool $coreIntegration = true; | |
public function getName(): string | |
{ | |
return 'OneSignal'; | |
} | |
public function getIcon(): string | |
{ | |
return 'app/bundles/NotificationBundle/Assets/img/OneSignal.png'; | |
} | |
public function getSupportedFeatures(): array | |
{ | |
return [ | |
'mobile', | |
'landing_page_enabled', | |
'welcome_notification_enabled', | |
'tracking_page_enabled', | |
]; | |
} | |
public function getSupportedFeatureTooltips(): array | |
{ | |
return [ | |
'landing_page_enabled' => 'mautic.integration.form.features.landing_page_enabled.tooltip', | |
'tracking_page_enabled' => 'mautic.integration.form.features.tracking_page_enabled.tooltip', | |
]; | |
} | |
/** | |
* @return array<string, string> | |
*/ | |
public function getRequiredKeyFields(): array | |
{ | |
return [ | |
'app_id' => 'mautic.notification.config.form.notification.app_id', | |
'safari_web_id' => 'mautic.notification.config.form.notification.safari_web_id', | |
'rest_api_key' => 'mautic.notification.config.form.notification.rest_api_key', | |
'gcm_sender_id' => 'mautic.notification.config.form.notification.gcm_sender_id', | |
]; | |
} | |
public function getAuthenticationType(): string | |
{ | |
return 'none'; | |
} | |
/** | |
* @param \Mautic\PluginBundle\Integration\Form|FormBuilder $builder | |
* @param array $data | |
* @param string $formArea | |
*/ | |
public function appendToForm(&$builder, $data, $formArea): void | |
{ | |
if ('features' == $formArea) { | |
/* @var FormBuilder $builder */ | |
$builder->add( | |
'subdomain_name', | |
TextType::class, | |
[ | |
'label' => 'mautic.notification.form.subdomain_name.label', | |
'required' => false, | |
'attr' => [ | |
'class' => 'form-control', | |
], | |
] | |
); | |
$builder->add( | |
'platforms', | |
ChoiceType::class, | |
[ | |
'choices' => [ | |
'mautic.integration.form.platforms.ios' => 'ios', | |
'mautic.integration.form.platforms.android' => 'android', | |
], | |
'attr' => [ | |
'tooltip' => 'mautic.integration.form.platforms.tooltip', | |
'data-show-on' => '{"integration_details_supportedFeatures_0":"checked"}', | |
], | |
'expanded' => true, | |
'multiple' => true, | |
'label' => 'mautic.integration.form.platforms', | |
'placeholder' => false, | |
'required' => false, | |
] | |
); | |
} | |
} | |
} | |