Kaynağa Gözat

Merge branch 'develop' of https://forge.laclic.fr/Laclic/SovBundle into develop

feature/symfony6.1
Charly 3 yıl önce
ebeveyn
işleme
7da81829ff
7 değiştirilmiş dosya ile 50 ekleme ve 11 silme
  1. +24
    -6
      Component/EntityComponent.php
  2. +2
    -2
      Controller/AbstractAdminController.php
  3. +2
    -2
      Controller/User/UserAdminController.php
  4. +1
    -0
      Repository/AbstractRepositoryQuery.php
  5. +1
    -0
      Resources/views/admin/setting/form.html.twig
  6. +14
    -1
      Twig/StoreTwigExtension.php
  7. +6
    -0
      Twig/TwigExtension.php

+ 24
- 6
Component/EntityComponent.php Dosyayı Görüntüle

namespace Lc\SovBundle\Component; namespace Lc\SovBundle\Component;


use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Lc\SovBundle\Doctrine\Extension\BlameableInterface;
use Lc\SovBundle\Doctrine\Extension\DevAliasInterface;
use Lc\SovBundle\Doctrine\Extension\SeoInterface;
use Lc\SovBundle\Doctrine\Extension\SortableInterface;
use Lc\SovBundle\Doctrine\Extension\TimestampableInterface;
use Lc\SovBundle\Event\EntityComponentEvent; use Lc\SovBundle\Event\EntityComponentEvent;
use Lc\SovBundle\Model\File\FileInterface; use Lc\SovBundle\Model\File\FileInterface;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
$newEntity = clone $entity; $newEntity = clone $entity;
$classMetadata = $this->entityManager->getClassMetadata(get_class($newEntity)); $classMetadata = $this->entityManager->getClassMetadata(get_class($newEntity));


//Dupplication de l'image ou du fichier lier
foreach ($classMetadata->getAssociationMappings() as $associationMapping){ foreach ($classMetadata->getAssociationMappings() as $associationMapping){
if(in_array(FileInterface::class, class_implements($associationMapping['targetEntity']))){ if(in_array(FileInterface::class, class_implements($associationMapping['targetEntity']))){
$methodGet = 'get'.ucfirst($associationMapping['fieldName']); $methodGet = 'get'.ucfirst($associationMapping['fieldName']);
} }
} }
} }
}


if($newEntity instanceof DevAliasInterface){
$newEntity->setDevAlias(null);
}


if($newEntity instanceof SeoInterface) {
$newEntity->setOldUrls(array());
} }


//TODO dispatch event duplicate
/* if ($newEntity instanceof ProductFamilyInterface) {
// @TODO : à adapter
//$newEntity = $this->productFamilyUtils->processBeforePersistProductFamily($newEntity, false, true);
if($newEntity instanceof BlameableInterface) {
$newEntity->setUpdatedBy(null);
$newEntity->setCreatedBy(null);
} }
*/
$this->entityManager->create($newEntity);

if($newEntity instanceof TimestampableInterface) {
$newEntity->setUpdatedAt(new \DateTime());
$newEntity->setCreatedAt(new \DateTime());
}

$this->entityManager->create($newEntity);
$this->eventDispatcher->dispatch(new EntityComponentEvent($newEntity), EntityComponentEvent::DUPLICATE_EVENT); $this->eventDispatcher->dispatch(new EntityComponentEvent($newEntity), EntityComponentEvent::DUPLICATE_EVENT);


return $newEntity; return $newEntity;

+ 2
- 2
Controller/AbstractAdminController.php Dosyayı Görüntüle

$this->overrideGlobalActions($responseParameters->get('global_actions')); $this->overrideGlobalActions($responseParameters->get('global_actions'));
} }
if ($responseParameters->get('entities')) { if ($responseParameters->get('entities')) {
$this->overrideEntitiesActions($responseParameters->get('entities'));
$this->overrideEntitiesActions($responseParameters->get('entities'), $responseParameters->get('pageName'));
} }
if (Crud::PAGE_INDEX === $responseParameters->get('pageName')) { if (Crud::PAGE_INDEX === $responseParameters->get('pageName')) {
$responseParameters->set('fields', $this->configureFields('index')); $responseParameters->set('fields', $this->configureFields('index'));
return $this->getEntityFqcn(); return $this->getEntityFqcn();
} }


public function overrideEntitiesActions(?EntityCollection $entities): void
public function overrideEntitiesActions(?EntityCollection $entities, string $pageName): void
{ {
} }



+ 2
- 2
Controller/User/UserAdminController.php Dosyayı Görüntüle

return $switchAction; return $switchAction;
} }


public function overrideEntitiesActions(?EntityCollection $entities): void
public function overrideEntitiesActions(?EntityCollection $entities, string $pageName): void
{ {
parent::overrideEntitiesActions($entities); // TODO: Change the autogenerated stub
parent::overrideEntitiesActions($entities, $pageName); // TODO: Change the autogenerated stub
foreach ($entities as $entity) { foreach ($entities as $entity) {
foreach ($entity->getActions() as $action) { foreach ($entity->getActions() as $action) {
if ($action->getName() == ActionDefinition::SWITCH_USER) { if ($action->getName() == ActionDefinition::SWITCH_USER) {

+ 1
- 0
Repository/AbstractRepositoryQuery.php Dosyayı Görüntüle

return $this; return $this;
}*/ }*/


// @TODO : créer un addOrderBy et un orderBy
public function orderBy(string $field, string $sort = 'ASC'): self public function orderBy(string $field, string $sort = 'ASC'): self
{ {
if (strpos($field, '.')!==false) { if (strpos($field, '.')!==false) {

+ 1
- 0
Resources/views/admin/setting/form.html.twig Dosyayı Görüntüle

{% do form.settings.setRendered %} {% do form.settings.setRendered %}


{{ form_end(form) }} {{ form_end(form) }}

{% endblock %} {% endblock %}
{% endembed %} {% endembed %}

+ 14
- 1
Twig/StoreTwigExtension.php Dosyayı Görüntüle

namespace Lc\SovBundle\Twig; namespace Lc\SovBundle\Twig;


use EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext; use EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext;
use Lc\CaracoleBundle\Model\Section\SectionInterface;
use Lc\SovBundle\Model\Site\SiteInterface;
use Lc\SovBundle\Repository\Reminder\ReminderStoreInterface; use Lc\SovBundle\Repository\Reminder\ReminderStoreInterface;
use Lc\SovBundle\Solver\Setting\SettingSolver;
use Symfony\Component\Security\Core\Security; use Symfony\Component\Security\Core\Security;
use Twig\Extension\AbstractExtension; use Twig\Extension\AbstractExtension;
use Twig\TwigFunction; use Twig\TwigFunction;
{ {
protected Security $security; protected Security $security;
protected ReminderStoreInterface $reminderStore; protected ReminderStoreInterface $reminderStore;
protected SettingSolver $settingSolver;


public function __construct( public function __construct(
Security $security, Security $security,
ReminderStoreInterface $reminderStore
ReminderStoreInterface $reminderStore,
SettingSolver $settingSolver
) { ) {
$this->security = $security; $this->security = $security;
$this->reminderStore = $reminderStore; $this->reminderStore = $reminderStore;
$this->settingSolver = $settingSolver;
} }


public function getFunctions() public function getFunctions()
{ {
return [ return [
new TwigFunction('sov_reminders', [$this, 'getReminders']), new TwigFunction('sov_reminders', [$this, 'getReminders']),
new TwigFunction('site_setting', [$this, 'getSiteSetting']),

]; ];
} }


return []; return [];
} }


public function getSiteSetting(SiteInterface $site, string $settingName): ?string
{
return $this->settingSolver->getSettingValue($site, $settingName);
}

public function getReminders($params) public function getReminders($params)
{ {
// @TODO : à faire // @TODO : à faire

+ 6
- 0
Twig/TwigExtension.php Dosyayı Görüntüle

new TwigFilter('sov_cache', [$this, 'sovCache']), new TwigFilter('sov_cache', [$this, 'sovCache']),
new TwigFilter('slugify', [$this, 'slugify']), new TwigFilter('slugify', [$this, 'slugify']),
new TwigFilter('md5', [$this, 'md5']), new TwigFilter('md5', [$this, 'md5']),
new TwigFilter('rot13', [$this, 'rot13']),
]; ];
} }


public function rot13(string $string): string
{
return str_rot13($string);
}

public function isInstanceOf(EntityInterface $entity, string $interfaceName) public function isInstanceOf(EntityInterface $entity, string $interfaceName)
{ {
$reflection = new \ReflectionClass($entity); $reflection = new \ReflectionClass($entity);

Yükleniyor…
İptal
Kaydet