ソースを参照

SettingEventSubscriber : prise en compte des valeurs par défaut par section

packProduct
Guillaume 3年前
コミット
38bb7d320a
3個のファイルの変更20行の追加9行の削除
  1. +12
    -7
      EventSubscriber/SettingEventSubscriber.php
  2. +1
    -0
      Factory/Section/SectionFactory.php
  3. +7
    -2
      Factory/Setting/SectionSettingFactory.php

+ 12
- 7
EventSubscriber/SettingEventSubscriber.php ファイルの表示

@@ -94,14 +94,14 @@ class SettingEventSubscriber implements EventSubscriberInterface
$date = null;
$file = null;

$fieldValue = isset($setting['default']) ? $setting['default'] : null;
$valueDefault = isset($setting['default']) ? $this->settingSolver->getDefaultValue($entity, $setting['default']) : null;

if ($setting['field'] == 'text') {
$text = $fieldValue;
$text = $valueDefault;
} elseif ($setting['field'] == 'date') {
$date = $fieldValue;
$date = $valueDefault;
} elseif ($setting['field'] == 'file') {
$file = $fieldValue;
$file = $valueDefault;
}

$entitySetting = $factory->create($entity, $setting['name'], $text, $date, $file);
@@ -112,9 +112,14 @@ class SettingEventSubscriber implements EventSubscriberInterface
if ($this->settingSolver->getValue($entitySetting) === null
&& isset($setting['default'])
&& $setting['default'] !== null) {
$methodSetValue = 'set' . ucfirst($setting['field']);
$entitySetting->$methodSetValue($setting['default']);
$this->entityManager->update($entitySetting);

$valueDefault = $this->settingSolver->getDefaultValue($entity, $setting['default']);

if($valueDefault) {
$methodSetValue = 'set' . ucfirst($setting['field']);
$entitySetting->$methodSetValue($valueDefault);
$this->entityManager->update($entitySetting);
}
}
}
}

+ 1
- 0
Factory/Section/SectionFactory.php ファイルの表示

@@ -16,6 +16,7 @@ class SectionFactory extends AbstractFactory
$section = new Section();

$section->setMerchant($merchant);
$section->setStatus(1);

return $section;
}

+ 7
- 2
Factory/Setting/SectionSettingFactory.php ファイルの表示

@@ -11,8 +11,13 @@ use Lc\SovBundle\Model\File\FileInterface;
class SectionSettingFactory extends AbstractFactory
{

public function create(SectionInterface $section, string $name, string $text = null, \DateTime $date = null, FileInterface $file = null)
{
public function create(
SectionInterface $section,
string $name,
string $text = null,
\DateTime $date = null,
FileInterface $file = null
) {
$merchantSetting = new SectionSetting();

$merchantSetting->setSection($section);

読み込み中…
キャンセル
保存