Spaces:
No application file
No application file
File size: 2,061 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 |
<?php
declare(strict_types=1);
namespace Mautic\InstallBundle\InstallFixtures\ORM;
use Doctrine\Bundle\FixturesBundle\FixtureGroupInterface;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Persistence\ObjectManager;
use Mautic\PluginBundle\Entity\Integration;
use Mautic\PluginBundle\Entity\Plugin;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class GrapesJsData extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface, FixtureGroupInterface
{
private ?ContainerInterface $container = null;
public static function getGroups(): array
{
return ['group_install', 'group_mautic_install_data'];
}
public function setContainer(ContainerInterface $container = null): void
{
$this->container = $container;
}
public function load(ObjectManager $manager): void
{
$applicationDir = $this->container->get('kernel')->getApplicationDir();
$grapeJsBuilderConfigPath = $applicationDir.'/plugins/GrapesJsBuilderBundle/Config/config.php';
if (!file_exists($grapeJsBuilderConfigPath)) {
return;
}
$parameters = include $grapeJsBuilderConfigPath;
if (!is_array($parameters)) {
return;
}
$plugin = new Plugin();
$plugin->setName($parameters['name']);
$plugin->setDescription($parameters['description']);
$plugin->setVersion($parameters['version']);
$plugin->setAuthor($parameters['author']);
$plugin->setBundle('GrapesJsBuilderBundle');
$manager->persist($plugin);
$integration = new Integration();
$integration->setIsPublished(true);
$integration->setName('GrapesJsBuilder');
$integration->setPlugin($plugin);
$manager->persist($integration);
$manager->flush();
}
public function getOrder(): int
{
return 1;
}
}
|