Spaces:
No application file
No application file
File size: 3,547 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
<?php
namespace MauticPlugin\MauticFullContactBundle\Integration;
use Mautic\CoreBundle\Form\Type\YesNoButtonGroupType;
use Mautic\PluginBundle\Integration\AbstractIntegration;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Form;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
class FullContactIntegration extends AbstractIntegration
{
public function getName(): string
{
return 'FullContact';
}
/**
* Return's authentication method such as oauth2, oauth1a, key, etc.
*/
public function getAuthenticationType(): string
{
return 'none';
}
/**
* Return array of key => label elements that will be converted to inputs to
* obtain from the user.
*
* @return array<string, string>
*/
public function getRequiredKeyFields(): array
{
// Do not rename field. fullcontact.js depends on it
return [
'apikey' => 'mautic.integration.fullcontact.apikey',
];
}
/**
* @param FormBuilder|Form $builder
* @param array $data
* @param string $formArea
*/
public function appendToForm(&$builder, $data, $formArea): void
{
if ('keys' === $formArea) {
$builder->add(
'test_api',
ButtonType::class,
[
'label' => 'mautic.plugin.fullcontact.test_api',
'attr' => [
'class' => 'btn btn-primary',
'style' => 'margin-bottom: 10px',
'onclick' => 'Mautic.testFullContactApi(this)',
],
]
);
$builder->add(
'stats',
TextareaType::class,
[
'label_attr' => ['class' => 'control-label'],
'label' => 'mautic.plugin.fullcontact.stats',
'required' => false,
'attr' => [
'class' => 'form-control',
'rows' => '6',
'readonly' => 'readonly',
],
]
);
$builder->add(
'auto_update',
YesNoButtonGroupType::class,
[
'label' => 'mautic.plugin.fullcontact.auto_update',
'data' => isset($data['auto_update']) && (bool) $data['auto_update'],
'attr' => [
'tooltip' => 'mautic.plugin.fullcontact.auto_update.tooltip',
],
]
);
}
}
public function shouldAutoUpdate(): bool
{
$featureSettings = $this->getKeys();
return isset($featureSettings['auto_update']) && (bool) $featureSettings['auto_update'];
}
/**
* @return string|array
*/
public function getFormNotes($section)
{
if ('custom' === $section) {
return [
'template' => '@MauticFullContact/Integration/form.html.twig',
'parameters' => [
'mauticUrl' => $this->router->generate('mautic_plugin_fullcontact_index', [], UrlGeneratorInterface::ABSOLUTE_URL),
],
];
}
return parent::getFormNotes($section);
}
}
|