Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor deprecations in MauticEmailMarketing bundle (M3 migration) #8139

Merged
merged 12 commits into from
Nov 26, 2019
9 changes: 3 additions & 6 deletions plugins/MauticEmailMarketingBundle/Config/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,15 @@
'forms' => [
'mautic.form.type.emailmarketing.mailchimp' => [
'class' => 'MauticPlugin\MauticEmailMarketingBundle\Form\Type\MailchimpType',
'arguments' => ['mautic.factory', 'session', 'mautic.helper.core_parameters'],
'alias' => 'emailmarketing_mailchimp',
'arguments' => ['mautic.helper.integration', 'mautic.plugin.model.plugin', 'session', 'mautic.helper.core_parameters'],
],
'mautic.form.type.emailmarketing.constantcontact' => [
'class' => 'MauticPlugin\MauticEmailMarketingBundle\Form\Type\ConstantContactType',
'arguments' => ['mautic.factory', 'session', 'mautic.helper.core_parameters'],
'alias' => 'emailmarketing_constantcontact',
'arguments' => ['mautic.helper.integration', 'mautic.plugin.model.plugin', 'session', 'mautic.helper.core_parameters'],
],
'mautic.form.type.emailmarketing.icontact' => [
'class' => 'MauticPlugin\MauticEmailMarketingBundle\Form\Type\IcontactType',
'arguments' => ['mautic.factory', 'session', 'mautic.helper.core_parameters'],
'alias' => 'emailmarketing_icontact',
'arguments' => ['mautic.helper.integration', 'mautic.plugin.model.plugin', 'session', 'mautic.helper.core_parameters'],
],
],
'integrations' => [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,31 @@

namespace MauticPlugin\MauticEmailMarketingBundle\Form\Type;

use Mautic\CoreBundle\Factory\MauticFactory;
use Mautic\CoreBundle\Helper\CoreParametersHelper;
use Mautic\PluginBundle\Helper\IntegrationHelper;
use Mautic\PluginBundle\Model\PluginModel;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormError;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

/**
* Class ConstantContactType.
*/
class ConstantContactType extends AbstractType
{
/**
* @var MauticFactory
* @var IntegrationHelper
*/
private $factory;
private $integrationHelper;

/** @var PluginModel */
private $pluginModel;

/**
* @var Session
*/
Expand All @@ -40,9 +46,10 @@ class ConstantContactType extends AbstractType
*/
protected $coreParametersHelper;

public function __construct(MauticFactory $factory, Session $session, CoreParametersHelper $coreParametersHelper)
public function __construct(IntegrationHelper $integrationHelper, PluginModel $pluginModel, Session $session, CoreParametersHelper $coreParametersHelper)
{
$this->factory = $factory;
$this->integrationHelper = $integrationHelper;
$this->pluginModel = $pluginModel;
$this->session = $session;
$this->coreParametersHelper = $coreParametersHelper;
}
Expand All @@ -53,11 +60,8 @@ public function __construct(MauticFactory $factory, Session $session, CoreParame
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
/** @var \Mautic\PluginBundle\Helper\IntegrationHelper $helper */
$helper = $this->factory->getHelper('integration');

/** @var \MauticPlugin\MauticEmailMarketingBundle\Integration\ConstantContactIntegration $object */
$object = $helper->getIntegrationObject('ConstantContact');
$object = $this->integrationHelper->getIntegrationObject('ConstantContact');
$integrationName = $object->getName();
$session = $this->session;
$limit = $session->get(
Expand All @@ -84,11 +88,12 @@ public function buildForm(FormBuilderInterface $builder, array $options)
$page = 1;
}

$builder->add('list', 'choice', [
'choices' => $choices,
'label' => 'mautic.emailmarketing.list',
'required' => false,
'attr' => [
$builder->add('list', ChoiceType::class, [
'choices' => array_flip($choices), // Choice type expects labels as keys
'choices_as_values' => true,
'label' => 'mautic.emailmarketing.list',
'required' => false,
'attr' => [
'tooltip' => 'mautic.emailmarketing.list.tooltip',
],
]);
Expand All @@ -109,7 +114,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
}

if (isset($options['form_area']) && $options['form_area'] == 'integration') {
$leadFields = $this->factory->getModel('plugin')->getLeadFields();
$leadFields = $this->pluginModel->getLeadFields();

$fields = $object->getFormLeadFields();

Expand All @@ -134,15 +139,15 @@ public function buildForm(FormBuilderInterface $builder, array $options)
/**
* {@inheritdoc}
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setOptional(['form_area']);
$resolver->setDefined(['form_area']);
}

/**
* @return string
*/
public function getName()
public function getBlockPrefix()
{
return 'emailmarketing_constantcontact';
}
Expand Down
42 changes: 23 additions & 19 deletions plugins/MauticEmailMarketingBundle/Form/Type/IcontactType.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,30 @@

namespace MauticPlugin\MauticEmailMarketingBundle\Form\Type;

use Mautic\CoreBundle\Factory\MauticFactory;
use Mautic\CoreBundle\Helper\CoreParametersHelper;
use Mautic\PluginBundle\Helper\IntegrationHelper;
use Mautic\PluginBundle\Model\PluginModel;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormError;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

/**
* Class ConstantContactType.
*/
class IcontactType extends AbstractType
{
/**
* @var MauticFactory
* @var IntegrationHelper
*/
private $factory;
private $integrationHelper;

/** @var PluginModel */
private $pluginModel;

/**
* @var Session
Expand All @@ -41,9 +46,10 @@ class IcontactType extends AbstractType
*/
protected $coreParametersHelper;

public function __construct(MauticFactory $factory, Session $session, CoreParametersHelper $coreParametersHelper)
public function __construct(IntegrationHelper $integrationHelper, PluginModel $pluginModel, Session $session, CoreParametersHelper $coreParametersHelper)
{
$this->factory = $factory;
$this->integrationHelper = $integrationHelper;
$this->pluginModel = $pluginModel;
$this->session = $session;
$this->coreParametersHelper = $coreParametersHelper;
}
Expand All @@ -54,11 +60,8 @@ public function __construct(MauticFactory $factory, Session $session, CoreParame
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
/** @var \Mautic\PluginBundle\Helper\IntegrationHelper $helper */
$helper = $this->factory->getHelper('integration');

/** @var \MauticPlugin\MauticEmailMarketingBundle\Integration\IcontactIntegration $object */
$object = $helper->getIntegrationObject('Icontact');
$object = $this->integrationHelper->getIntegrationObject('Icontact');
$integrationName = $object->getName();
$session = $this->session;
$limit = $session->get(
Expand All @@ -85,11 +88,12 @@ public function buildForm(FormBuilderInterface $builder, array $options)
$page = 1;
}

$builder->add('list', 'choice', [
'choices' => $choices,
'label' => 'mautic.emailmarketing.list',
'required' => false,
'attr' => [
$builder->add('list', ChoiceType::class, [
'choices' => array_flip($choices), // Choice type expects labels as keys
'choices_as_values' => true,
'label' => 'mautic.emailmarketing.list',
'required' => false,
'attr' => [
'tooltip' => 'mautic.emailmarketing.list.tooltip',
],
]);
Expand All @@ -105,7 +109,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
}

if (isset($options['form_area']) && $options['form_area'] == 'integration') {
$leadFields = $this->factory->getModel('plugin')->getLeadFields();
$leadFields = $this->pluginModel->getLeadFields();

$fields = $object->getFormLeadFields();

Expand All @@ -130,15 +134,15 @@ public function buildForm(FormBuilderInterface $builder, array $options)
/**
* {@inheritdoc}
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setOptional(['form_area']);
$resolver->setDefined(['form_area']);
}

/**
* @return string
*/
public function getName()
public function getBlockPrefix()
{
return 'emailmarketing_icontact';
}
Expand Down
43 changes: 24 additions & 19 deletions plugins/MauticEmailMarketingBundle/Form/Type/MailchimpType.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,32 @@

namespace MauticPlugin\MauticEmailMarketingBundle\Form\Type;

use Mautic\CoreBundle\Factory\MauticFactory;
use Mautic\CoreBundle\Helper\CoreParametersHelper;
use Mautic\PluginBundle\Helper\IntegrationHelper;
use Mautic\PluginBundle\Model\PluginModel;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormError;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

/**
* Class MailchimpType.
*/
class MailchimpType extends AbstractType
{
/**
* @var MauticFactory
* @var IntegrationHelper
*/
private $factory;
private $integrationHelper;

/** @var PluginModel */
private $pluginModel;

/**
* @var Session
*/
Expand All @@ -41,9 +47,10 @@ class MailchimpType extends AbstractType
*/
protected $coreParametersHelper;

public function __construct(MauticFactory $factory, Session $session, CoreParametersHelper $coreParametersHelper)
public function __construct(IntegrationHelper $integrationHelper, PluginModel $pluginModel, Session $session, CoreParametersHelper $coreParametersHelper)
{
$this->factory = $factory;
$this->integrationHelper = $integrationHelper;
$this->pluginModel = $pluginModel;
$this->session = $session;
$this->coreParametersHelper = $coreParametersHelper;
}
Expand All @@ -54,11 +61,8 @@ public function __construct(MauticFactory $factory, Session $session, CoreParame
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
/** @var \Mautic\PluginBundle\Helper\IntegrationHelper $helper */
$helper = $this->factory->getHelper('integration');

/** @var \MauticPlugin\MauticEmailMarketingBundle\Integration\MailchimpIntegration $mailchimp */
$mailchimp = $helper->getIntegrationObject('Mailchimp');
$mailchimp = $this->integrationHelper->getIntegrationObject('Mailchimp');

$api = $mailchimp->getApiHelper();
try {
Expand All @@ -78,11 +82,12 @@ public function buildForm(FormBuilderInterface $builder, array $options)
$error = $e->getMessage();
}

$builder->add('list', 'choice', [
'choices' => $choices,
'label' => 'mautic.emailmarketing.list',
'required' => false,
'attr' => [
$builder->add('list', ChoiceType::class, [
'choices' => array_flip($choices), // Choice type expects labels as keys
'choices_as_values' => true,
'label' => 'mautic.emailmarketing.list',
'required' => false,
'attr' => [
'tooltip' => 'mautic.emailmarketing.list.tooltip',
'onchange' => 'Mautic.getIntegrationLeadFields(\'Mailchimp\', this, {"list": this.value});',
],
Expand All @@ -109,7 +114,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
}

if (isset($options['form_area']) && $options['form_area'] == 'integration') {
$leadFields = $this->factory->getModel('plugin')->getLeadFields();
$leadFields = $this->pluginModel->getLeadFields();

$formModifier = function (FormInterface $form, $data) use ($mailchimp, $leadFields) {
$integrationName = $mailchimp->getName();
Expand Down Expand Up @@ -185,15 +190,15 @@ function (FormEvent $event) use ($formModifier) {
/**
* {@inheritdoc}
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setOptional(['form_area']);
$resolver->setDefined(['form_area']);
}

/**
* @return string
*/
public function getName()
public function getBlockPrefix()
{
return 'emailmarketing_mailchimp';
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

namespace MauticPlugin\MauticEmailMarketingBundle\Integration;

use MauticPlugin\MauticEmailMarketingBundle\Form\Type\ConstantContactType;

/**
* Class ConstantContactIntegration.
*/
Expand Down Expand Up @@ -189,4 +191,14 @@ public function pushLead($lead, $config = [])

return false;
}

/**
* {@inheritdoc}
*
* @return string|null
*/
public function getFormType()
{
return ConstantContactType::class;
}
}