Backup
This commit is contained in:
parent
9aa0056bac
commit
4ff7a22fb6
@ -65,7 +65,7 @@ server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# location /w2p/ {
|
# location /w2p/ {
|
||||||
#j proxy_pass http://tp:8080/w2p/;
|
# proxy_pass http://tp:8080/w2p/;
|
||||||
# proxy_temp_path /tmp/proxy;
|
# proxy_temp_path /tmp/proxy;
|
||||||
#}
|
#}
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,7 @@ class SearchType extends AbstractType
|
|||||||
protected $session;
|
protected $session;
|
||||||
/** @var Shop */
|
/** @var Shop */
|
||||||
protected $shop;
|
protected $shop;
|
||||||
|
|
||||||
public function __construct(RequestStack $requestStack, Shop $shop)
|
public function __construct(RequestStack $requestStack, Shop $shop)
|
||||||
{
|
{
|
||||||
$this->session = $requestStack->getSession();
|
$this->session = $requestStack->getSession();
|
||||||
@ -37,9 +38,7 @@ class SearchType extends AbstractType
|
|||||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
{
|
{
|
||||||
$session = $this->session;
|
$session = $this->session;
|
||||||
$builder
|
$builder->setMethod('POST')->add('term', TextFilterType::class, [
|
||||||
->setMethod('POST')
|
|
||||||
->add('term', TextFilterType::class, array(
|
|
||||||
'data' => $session->get('contact_search_term'),
|
'data' => $session->get('contact_search_term'),
|
||||||
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) use ($session) {
|
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) use ($session) {
|
||||||
$session->set('contact_search_term', $values['value']);
|
$session->set('contact_search_term', $values['value']);
|
||||||
@ -47,29 +46,67 @@ class SearchType extends AbstractType
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$filterQuery->getQueryBuilder()
|
$filterQuery
|
||||||
|
->getQueryBuilder()
|
||||||
->leftJoin('contact.shopContact', 's')
|
->leftJoin('contact.shopContact', 's')
|
||||||
->andWhere("
|
->andWhere('
|
||||||
s.shop = " . $this->shop->getSelectedShop()->getUid() . " AND
|
s.shop = ' .
|
||||||
(contact.uid LIKE '%" . $values['value'] . "%' OR
|
$this->shop->getSelectedShop()->getUid() .
|
||||||
contact.firstname LIKE '%" . $values['value'] . "%' OR
|
" AND
|
||||||
contact.lastname LIKE '%" . $values['value'] . "%' OR
|
(contact.uid LIKE '%" .
|
||||||
contact.zip LIKE '%" . $values['value'] . "%' OR
|
$values['value'] .
|
||||||
contact.city LIKE '%" . $values['value'] . "%' OR
|
"%' OR
|
||||||
contact.houseNumber LIKE '%" . $values['value'] . "%' OR
|
contact.firstname LIKE '%" .
|
||||||
contact.street LIKE '%" . $values['value'] . "%' OR
|
$values['value'] .
|
||||||
contact.destrict LIKE '%" . $values['value'] . "%' OR
|
"%' OR
|
||||||
contact.ustid LIKE '%" . $values['value'] . "%' OR
|
contact.lastname LIKE '%" .
|
||||||
contact.state LIKE '%" . $values['value'] . "%' OR
|
$values['value'] .
|
||||||
contact.function LIKE '%" . $values['value'] . "%' OR
|
"%' OR
|
||||||
contact.abteilung LIKE '%" . $values['value'] . "%' OR
|
contact.zip LIKE '%" .
|
||||||
contact.position LIKE '%" . $values['value'] . "%' OR
|
$values['value'] .
|
||||||
contact.title LIKE '%" . $values['value'] . "%' OR
|
"%' OR
|
||||||
contact.company LIKE '%" . $values['value'] . "%' OR
|
contact.city LIKE '%" .
|
||||||
contact.company2 LIKE '%" . $values['value'] . "%' OR
|
$values['value'] .
|
||||||
contact.username LIKE '%" . $values['value'] . "%')
|
"%' OR
|
||||||
|
contact.houseNumber LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%' OR
|
||||||
|
contact.street LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%' OR
|
||||||
|
contact.district LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%' OR
|
||||||
|
contact.ustid LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%' OR
|
||||||
|
contact.state LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%' OR
|
||||||
|
contact.function LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%' OR
|
||||||
|
contact.abteilung LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%' OR
|
||||||
|
contact.position LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%' OR
|
||||||
|
contact.title LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%' OR
|
||||||
|
contact.company LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%' OR
|
||||||
|
contact.company2 LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%' OR
|
||||||
|
contact.username LIKE '%" .
|
||||||
|
$values['value'] .
|
||||||
|
"%')
|
||||||
");
|
");
|
||||||
}));
|
},
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName()
|
public function getName()
|
||||||
@ -79,8 +116,8 @@ class SearchType extends AbstractType
|
|||||||
|
|
||||||
public function configureOptions(OptionsResolver $resolver)
|
public function configureOptions(OptionsResolver $resolver)
|
||||||
{
|
{
|
||||||
$resolver->setDefaults(array(
|
$resolver->setDefaults([
|
||||||
'csrf_protection' => false
|
'csrf_protection' => false,
|
||||||
));
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ use PSC\Shop\AccountBundle\Model\Account as PSCAccount;
|
|||||||
use PSC\Shop\AccountBundle\Transformer\Account;
|
use PSC\Shop\AccountBundle\Transformer\Account;
|
||||||
use PSC\Shop\ContactBundle\Model\Role;
|
use PSC\Shop\ContactBundle\Model\Role;
|
||||||
use PSC\Shop\ContactBundle\Repository\ContactRepository;
|
use PSC\Shop\ContactBundle\Repository\ContactRepository;
|
||||||
|
use PSC\Shop\EntityBundle\Repository\AccountRepository;
|
||||||
use PSC\Shop\MediaBundle\Model\Media;
|
use PSC\Shop\MediaBundle\Model\Media;
|
||||||
use PSC\Shop\MediaBundle\Service\MediaManager;
|
use PSC\Shop\MediaBundle\Service\MediaManager;
|
||||||
use PSC\Shop\MediaBundle\Transformer\Media as PSCMedia;
|
use PSC\Shop\MediaBundle\Transformer\Media as PSCMedia;
|
||||||
@ -18,6 +19,7 @@ readonly class Contact
|
|||||||
public function __construct(
|
public function __construct(
|
||||||
private MediaManager $mediaManager,
|
private MediaManager $mediaManager,
|
||||||
private ContactRepository $contactRepository,
|
private ContactRepository $contactRepository,
|
||||||
|
private AccountRepository $accountRepository,
|
||||||
private Shop $shopService,
|
private Shop $shopService,
|
||||||
private EntityManagerInterface $entityManager,
|
private EntityManagerInterface $entityManager,
|
||||||
private DocumentManager $documentManager,
|
private DocumentManager $documentManager,
|
||||||
@ -42,6 +44,13 @@ readonly class Contact
|
|||||||
} else {
|
} else {
|
||||||
$contactEntity = new \PSC\Shop\EntityBundle\Entity\Contact();
|
$contactEntity = new \PSC\Shop\EntityBundle\Entity\Contact();
|
||||||
$contactDoc = new \PSC\Shop\EntityBundle\Document\Contact();
|
$contactDoc = new \PSC\Shop\EntityBundle\Document\Contact();
|
||||||
|
|
||||||
|
if ($contact->getAccount()->getUid() != 0) {
|
||||||
|
$accountEntity = $this->accountRepository->findOneBy(['uid' => $contact->getAccount()->getUid()]);
|
||||||
|
if ($accountEntity) {
|
||||||
|
$contactEntity->setAccount($accountEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -205,7 +205,7 @@ class Contact implements UserInterface, PasswordAuthenticatedUserInterface, \Ser
|
|||||||
$this->budget = 0;
|
$this->budget = 0;
|
||||||
$this->collectingOrders = false;
|
$this->collectingOrders = false;
|
||||||
$this->isSek = false;
|
$this->isSek = false;
|
||||||
$this->passwordResetDate = time();
|
$this->passwordResetDate = new \DateTime();
|
||||||
$this->products = new \Doctrine\Common\Collections\ArrayCollection();
|
$this->products = new \Doctrine\Common\Collections\ArrayCollection();
|
||||||
$this->roles = new \Doctrine\Common\Collections\ArrayCollection();
|
$this->roles = new \Doctrine\Common\Collections\ArrayCollection();
|
||||||
}
|
}
|
||||||
@ -635,7 +635,7 @@ class Contact implements UserInterface, PasswordAuthenticatedUserInterface, \Ser
|
|||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
#[ORM\Column(name: 'passwordresetdate', type: 'string', length: 255, nullable: true)]
|
#[ORM\Column(name: 'passwordresetdate', type: 'datetime', nullable: true)]
|
||||||
private $passwordResetDate;
|
private $passwordResetDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,51 +1,34 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
|
||||||
* PrintshopCreator Suite
|
|
||||||
*
|
|
||||||
* PHP Version 5.3
|
|
||||||
*
|
|
||||||
* @author Thomas Peterson <info@thomas-peterson.de>
|
|
||||||
* @copyright 2012-2013 PrintshopCreator GmbH
|
|
||||||
* @license Private
|
|
||||||
* @link http://www.printshopcreator.de
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace PSC\Shop\EntityBundle\Repository;
|
namespace PSC\Shop\EntityBundle\Repository;
|
||||||
|
|
||||||
|
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||||
use Doctrine\ORM\EntityRepository;
|
use Doctrine\ORM\EntityRepository;
|
||||||
|
use Doctrine\Persistence\ManagerRegistry;
|
||||||
|
use PSC\Shop\EntityBundle\Entity\Account;
|
||||||
use PSC\Shop\EntityBundle\Entity\Shop;
|
use PSC\Shop\EntityBundle\Entity\Shop;
|
||||||
|
|
||||||
/**
|
class AccountRepository extends ServiceEntityRepository
|
||||||
* AccountRepository
|
|
||||||
*
|
|
||||||
* This class was generated by the Doctrine ORM. Add your own custom
|
|
||||||
* repository methods below.
|
|
||||||
*
|
|
||||||
* @package PSC\Shop\Entity
|
|
||||||
* @subpackage Repositorys
|
|
||||||
*/
|
|
||||||
class AccountRepository extends EntityRepository
|
|
||||||
{
|
{
|
||||||
/**
|
public function __construct(ManagerRegistry $registry)
|
||||||
* Gibt einen Account per titel zurück
|
|
||||||
*
|
|
||||||
* @param string $title
|
|
||||||
*
|
|
||||||
* @return Account
|
|
||||||
*/
|
|
||||||
public function getAccountByTitle($title)
|
|
||||||
{
|
{
|
||||||
return $this->findOneBy(array('title' => $title, 'locked' => 0));
|
parent::__construct($registry, Account::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getAccountByTitle($title): Account|null
|
||||||
|
{
|
||||||
|
return $this->findOneBy(['title' => $title, 'locked' => 0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getAccountsByShop(Shop $shop)
|
public function getAccountsByShop(Shop $shop)
|
||||||
{
|
{
|
||||||
$query = $this->getEntityManager()
|
$query = $this->getEntityManager()->createQuery('
|
||||||
->createQuery('
|
|
||||||
SELECT s FROM PSCEntityBundle:ShopAccount s
|
SELECT s FROM PSCEntityBundle:ShopAccount s
|
||||||
JOIN s.account a
|
JOIN s.account a
|
||||||
WHERE s.shop = :shop_id')->setParameter('shop_id', $shop->getId());
|
WHERE s.shop = :shop_id')->setParameter(
|
||||||
|
'shop_id',
|
||||||
|
$shop->getId(),
|
||||||
|
);
|
||||||
try {
|
try {
|
||||||
return $query->getResult();
|
return $query->getResult();
|
||||||
} catch (\Doctrine\ORM\NoResultException $e) {
|
} catch (\Doctrine\ORM\NoResultException $e) {
|
||||||
|
|||||||
@ -72,7 +72,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">{% if selectedFolder %}<h3>{{ selectedFolder.title }} <small>{{ selectedFolder.id }}</small></h3>{% endif %}</div>
|
<div class="col-md-12">{% if selectedFolder %}<h5>Ordner: {{ selectedFolder.title }} <small>Id: {{ selectedFolder.id }}</small></h5>{% endif %}</div>
|
||||||
</div>
|
</div>
|
||||||
<br/>
|
<br/>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|||||||
@ -31,27 +31,37 @@ use Twig\Environment;
|
|||||||
|
|
||||||
class Form extends AbstractController
|
class Form extends AbstractController
|
||||||
{
|
{
|
||||||
public function __construct(private EntityManagerInterface $entityManager, private DocumentManager $documentManager, private SerializerInterface $serializer, private Contact $contactTransformer)
|
public function __construct(
|
||||||
{
|
private EntityManagerInterface $entityManager,
|
||||||
}
|
private DocumentManager $documentManager,
|
||||||
|
private SerializerInterface $serializer,
|
||||||
|
private Contact $contactTransformer,
|
||||||
|
) {}
|
||||||
|
|
||||||
#[Route(path: '/form/{uuid}/{contactUuid}', methods: ['PUT'])]
|
#[Route(path: '/form/{uuid}/{contactUuid}', methods: ['PUT'])]
|
||||||
#[ParamConverter('data', class: Input::class, converter: 'psc_rest.request_body')]
|
#[ParamConverter('data', class: Input::class, converter: 'psc_rest.request_body')]
|
||||||
#[Tag('Plugin/Custom/PSC/CollectLayouter')]
|
#[Tag('Plugin/Custom/PSC/CollectLayouter')]
|
||||||
#[RequestBody(description: 'content', content: new JsonContent(ref: Input::class))]
|
#[RequestBody(description: 'content', content: new JsonContent(ref: Input::class))]
|
||||||
#[Response(response: 200, description: 'return customerForm', ref: new Items(ref: new Model(type: Element::class)))]
|
#[Response(response: 200, description: 'return customerForm', ref: new Items(ref: new Model(type: Element::class)))]
|
||||||
public function generateForm(Input $input, string $uuid, string $contactUuid = ""): JsonResponse
|
public function generateForm(Input $input, string $uuid, string $contactUuid = ''): JsonResponse
|
||||||
{
|
{
|
||||||
|
|
||||||
$product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $uuid]);
|
$product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $uuid]);
|
||||||
|
|
||||||
$productDoc = $this->documentManager->getRepository(\PSC\Shop\EntityBundle\Document\Product::class)->findOneBy(['uid' => $product->getUID()]);
|
$productDoc = $this->documentManager
|
||||||
|
->getRepository(\PSC\Shop\EntityBundle\Document\Product::class)
|
||||||
|
->findOneBy(['uid' => $product->getUID()]);
|
||||||
/** @var Setting $settings */
|
/** @var Setting $settings */
|
||||||
$settings = $this->serializer->deserialize($productDoc->getPluginSettingModule('collectlayouter', 'config') ?? '{}', Setting::class, 'json');
|
$settings = $this->serializer->deserialize(
|
||||||
|
$productDoc->getPluginSettingModule('collectlayouter', 'config') ?? '{}',
|
||||||
|
Setting::class,
|
||||||
|
'json',
|
||||||
|
);
|
||||||
$contact = new \PSC\Shop\ContactBundle\Model\Contact();
|
$contact = new \PSC\Shop\ContactBundle\Model\Contact();
|
||||||
$layouterSettings = [];
|
$layouterSettings = [];
|
||||||
if ($contactUuid != "") {
|
if ($contactUuid != '') {
|
||||||
$contactEntity = $this->entityManager->getRepository(\PSC\Shop\EntityBundle\Entity\Contact::class)->findOneBy(['uuid' => $contactUuid]);
|
$contactEntity = $this->entityManager
|
||||||
|
->getRepository(\PSC\Shop\EntityBundle\Entity\Contact::class)
|
||||||
|
->findOneBy(['uuid' => $contactUuid]);
|
||||||
$this->contactTransformer->fromDb($contact, $contactEntity);
|
$this->contactTransformer->fromDb($contact, $contactEntity);
|
||||||
$layouterSettings = $contact->getLayouterData()->getSettingForLayouter('collectlayouter');
|
$layouterSettings = $contact->getLayouterData()->getSettingForLayouter('collectlayouter');
|
||||||
} elseif ($this->getUser()) {
|
} elseif ($this->getUser()) {
|
||||||
@ -62,11 +72,13 @@ class Form extends AbstractController
|
|||||||
$temp = [];
|
$temp = [];
|
||||||
|
|
||||||
foreach ($settings->getCustomerForm() as $setting) {
|
foreach ($settings->getCustomerForm() as $setting) {
|
||||||
|
|
||||||
if ($setting->getBinding()) {
|
if ($setting->getBinding()) {
|
||||||
$value = match ($setting->getBinding()) {
|
$value = match ($setting->getBinding()) {
|
||||||
ElementBinding::none => $setting->getDefaultForType(),
|
ElementBinding::none => $setting->getDefaultForType(),
|
||||||
ElementBinding::UsernameLogin => array_merge([$contact->getEmail()], explode('@', $contact->getEmail())),
|
ElementBinding::UsernameLogin => array_merge(
|
||||||
|
[$contact->getEmail()],
|
||||||
|
explode('@', $contact->getEmail()),
|
||||||
|
),
|
||||||
ElementBinding::UserCountry => $contact->getCountryCode(),
|
ElementBinding::UserCountry => $contact->getCountryCode(),
|
||||||
ElementBinding::Company => $contact->getLayouterData()->getCompany(),
|
ElementBinding::Company => $contact->getLayouterData()->getCompany(),
|
||||||
ElementBinding::Company2 => $contact->getLayouterData()->getCompany2(),
|
ElementBinding::Company2 => $contact->getLayouterData()->getCompany2(),
|
||||||
@ -75,11 +87,32 @@ class Form extends AbstractController
|
|||||||
ElementBinding::Title => $contact->getLayouterData()->getTitle(),
|
ElementBinding::Title => $contact->getLayouterData()->getTitle(),
|
||||||
ElementBinding::Position => $contact->getLayouterData()->getPosition(),
|
ElementBinding::Position => $contact->getLayouterData()->getPosition(),
|
||||||
ElementBinding::Function => $contact->getLayouterData()->getFunction(),
|
ElementBinding::Function => $contact->getLayouterData()->getFunction(),
|
||||||
ElementBinding::StreetHouseNumber => [$contact->getLayouterData()->getStreet(), $contact->getLayouterData()->getHouseNumber()],
|
ElementBinding::StreetHouseNumber => [
|
||||||
ElementBinding::ZipCity => [$contact->getLayouterData()->getZip(), $contact->getLayouterData()->getCity()],
|
$contact->getLayouterData()->getStreet(),
|
||||||
ElementBinding::Fon => [$contact->getLayouterData()->getPhoneAreaCode(), $contact->getLayouterData()->getPhonePrefix(), $contact->getLayouterData()->getPhone(), $contact->getLayouterData()->getPhoneAppendix()],
|
$contact->getLayouterData()->getHouseNumber(),
|
||||||
ElementBinding::Mobile => [$contact->getLayouterData()->getMobileAreaCode(), $contact->getLayouterData()->getMobilePrefix(), $contact->getLayouterData()->getMobile(), $contact->getLayouterData()->getMobileAppendix()],
|
],
|
||||||
ElementBinding::Fax => [$contact->getLayouterData()->getFaxAreaCode(), $contact->getLayouterData()->getFaxPrefix(), $contact->getLayouterData()->getFax(), $contact->getLayouterData()->getFaxAppendix()],
|
ElementBinding::ZipCity => [
|
||||||
|
$contact->getLayouterData()->getZip(),
|
||||||
|
$contact->getLayouterData()->getCity(),
|
||||||
|
],
|
||||||
|
ElementBinding::Fon => [
|
||||||
|
$contact->getLayouterData()->getPhoneAreaCode(),
|
||||||
|
$contact->getLayouterData()->getPhonePrefix(),
|
||||||
|
$contact->getLayouterData()->getPhone(),
|
||||||
|
$contact->getLayouterData()->getPhoneAppendix(),
|
||||||
|
],
|
||||||
|
ElementBinding::Mobile => [
|
||||||
|
$contact->getLayouterData()->getMobileAreaCode(),
|
||||||
|
$contact->getLayouterData()->getMobilePrefix(),
|
||||||
|
$contact->getLayouterData()->getMobile(),
|
||||||
|
$contact->getLayouterData()->getMobileAppendix(),
|
||||||
|
],
|
||||||
|
ElementBinding::Fax => [
|
||||||
|
$contact->getLayouterData()->getFaxAreaCode(),
|
||||||
|
$contact->getLayouterData()->getFaxPrefix(),
|
||||||
|
$contact->getLayouterData()->getFax(),
|
||||||
|
$contact->getLayouterData()->getFaxAppendix(),
|
||||||
|
],
|
||||||
ElementBinding::Abteilung => $contact->getLayouterData()->getAbteilung(),
|
ElementBinding::Abteilung => $contact->getLayouterData()->getAbteilung(),
|
||||||
ElementBinding::Custom1 => $contact->getCustom1(),
|
ElementBinding::Custom1 => $contact->getCustom1(),
|
||||||
ElementBinding::Custom2 => $contact->getCustom2(),
|
ElementBinding::Custom2 => $contact->getCustom2(),
|
||||||
@ -105,7 +138,10 @@ class Form extends AbstractController
|
|||||||
ElementBinding::Custom22 => $contact->getCustom22(),
|
ElementBinding::Custom22 => $contact->getCustom22(),
|
||||||
ElementBinding::Custom23 => $contact->getCustom23(),
|
ElementBinding::Custom23 => $contact->getCustom23(),
|
||||||
ElementBinding::Custom24 => $contact->getCustom24(),
|
ElementBinding::Custom24 => $contact->getCustom24(),
|
||||||
ElementBinding::LayouterMail => array_merge([$contact->getLayouterData()->getEmail()], explode('@', $contact->getLayouterData()->getEmail())),
|
ElementBinding::LayouterMail => array_merge(
|
||||||
|
[$contact->getLayouterData()->getEmail()],
|
||||||
|
explode('@', $contact->getLayouterData()->getEmail()),
|
||||||
|
),
|
||||||
ElementBinding::LayouterCountryName => $contact->getLayouterData()->getCountryName(),
|
ElementBinding::LayouterCountryName => $contact->getLayouterData()->getCountryName(),
|
||||||
ElementBinding::LayouterCountryCode => $contact->getLayouterData()->getCountryCode(),
|
ElementBinding::LayouterCountryCode => $contact->getLayouterData()->getCountryCode(),
|
||||||
ElementBinding::Birthday => $contact->getLayouterData()->getBirthday(),
|
ElementBinding::Birthday => $contact->getLayouterData()->getBirthday(),
|
||||||
@ -117,26 +153,27 @@ class Form extends AbstractController
|
|||||||
ElementBinding::District => $contact->getLayouterData()->getDistrict(),
|
ElementBinding::District => $contact->getLayouterData()->getDistrict(),
|
||||||
ElementBinding::Image1 => $contact->getLayouterData()->getImage1(),
|
ElementBinding::Image1 => $contact->getLayouterData()->getImage1(),
|
||||||
ElementBinding::Image2 => $contact->getLayouterData()->getImage2(),
|
ElementBinding::Image2 => $contact->getLayouterData()->getImage2(),
|
||||||
|
ElementBinding::Account => $contact->getAccount()->getUuid(),
|
||||||
};
|
};
|
||||||
|
|
||||||
$elmEnable = array_values(array_filter($layouterSettings, function ($el) use ($setting) {
|
$elmEnable = array_values(array_filter($layouterSettings, function ($el) use ($setting) {
|
||||||
if ($el['name'] == 'data[' . $setting->getId() . '][enable]') {
|
if ($el['name'] == ('data[' . $setting->getId() . '][enable]')) {
|
||||||
return $el;
|
return $el;
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$elmValue = array_values(array_filter($layouterSettings, function ($el) use ($setting) {
|
$elmValue = array_values(array_filter($layouterSettings, function ($el) use ($setting) {
|
||||||
if ($el['name'] == 'data[' . $setting->getId() . '][value]') {
|
if ($el['name'] == ('data[' . $setting->getId() . '][value]')) {
|
||||||
return $el;
|
return $el;
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
if (count($elmEnable) === 2 && $elmEnable[0]['value'] === "1" && $elmEnable[1]['value'] === "1") {
|
if (count($elmEnable) === 2 && $elmEnable[0]['value'] === '1' && $elmEnable[1]['value'] === '1') {
|
||||||
$setting->setOptionalDefault(true);
|
$setting->setOptionalDefault(true);
|
||||||
}
|
}
|
||||||
if (count($elmEnable) === 1 && $elmEnable[0]['value'] === "1") {
|
if (count($elmEnable) === 1 && $elmEnable[0]['value'] === '1') {
|
||||||
$setting->setOptionalDefault(true);
|
$setting->setOptionalDefault(true);
|
||||||
}
|
}
|
||||||
if (count($elmEnable) === 1 && $elmEnable[0]['value'] === "0") {
|
if (count($elmEnable) === 1 && $elmEnable[0]['value'] === '0') {
|
||||||
$setting->setOptionalDefault(false);
|
$setting->setOptionalDefault(false);
|
||||||
}
|
}
|
||||||
if (count($elmEnable) === 0 && count($elmValue) === 1 && $setting->getOptional()) {
|
if (count($elmEnable) === 0 && count($elmValue) === 1 && $setting->getOptional()) {
|
||||||
@ -144,7 +181,6 @@ class Form extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
$setting->setValue($value);
|
$setting->setValue($value);
|
||||||
|
|
||||||
}
|
}
|
||||||
$temp[] = $setting;
|
$temp[] = $setting;
|
||||||
}
|
}
|
||||||
@ -161,14 +197,19 @@ class Form extends AbstractController
|
|||||||
#[Tag('Plugin/Custom/PSC/CollectLayouter')]
|
#[Tag('Plugin/Custom/PSC/CollectLayouter')]
|
||||||
#[RequestBody(description: 'content', content: new JsonContent(ref: Input::class))]
|
#[RequestBody(description: 'content', content: new JsonContent(ref: Input::class))]
|
||||||
#[Response(response: 200, description: 'return customerForm', ref: new Items(ref: new Model(type: Element::class)))]
|
#[Response(response: 200, description: 'return customerForm', ref: new Items(ref: new Model(type: Element::class)))]
|
||||||
public function generateNewForm(Input $input, string $uuid, string $contactUuid = ""): JsonResponse
|
public function generateNewForm(Input $input, string $uuid, string $contactUuid = ''): JsonResponse
|
||||||
{
|
{
|
||||||
|
|
||||||
$product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $uuid]);
|
$product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $uuid]);
|
||||||
|
|
||||||
$productDoc = $this->documentManager->getRepository(\PSC\Shop\EntityBundle\Document\Product::class)->findOneBy(['uid' => $product->getUID()]);
|
$productDoc = $this->documentManager
|
||||||
|
->getRepository(\PSC\Shop\EntityBundle\Document\Product::class)
|
||||||
|
->findOneBy(['uid' => $product->getUID()]);
|
||||||
/** @var Setting $settings */
|
/** @var Setting $settings */
|
||||||
$settings = $this->serializer->deserialize($productDoc->getPluginSettingModule('collectlayouter', 'config') ?? '{}', Setting::class, 'json');
|
$settings = $this->serializer->deserialize(
|
||||||
|
$productDoc->getPluginSettingModule('collectlayouter', 'config') ?? '{}',
|
||||||
|
Setting::class,
|
||||||
|
'json',
|
||||||
|
);
|
||||||
$contact = new \PSC\Shop\ContactBundle\Model\Contact();
|
$contact = new \PSC\Shop\ContactBundle\Model\Contact();
|
||||||
|
|
||||||
$temp = [];
|
$temp = [];
|
||||||
@ -183,5 +224,4 @@ class Form extends AbstractController
|
|||||||
|
|
||||||
return $this->json($temp);
|
return $this->json($temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,8 +9,6 @@ use OpenApi\Attributes\JsonContent;
|
|||||||
use OpenApi\Attributes\RequestBody;
|
use OpenApi\Attributes\RequestBody;
|
||||||
use OpenApi\Attributes\Response;
|
use OpenApi\Attributes\Response;
|
||||||
use OpenApi\Attributes\Tag;
|
use OpenApi\Attributes\Tag;
|
||||||
use PSC\Shop\MediaBundle\Model\Media;
|
|
||||||
use PSC\Shop\MediaBundle\Service\MediaManager;
|
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Dto\Preview\Input;
|
use Plugin\Custom\PSC\CollectLayouter\Dto\Preview\Input;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Helper\MPDF;
|
use Plugin\Custom\PSC\CollectLayouter\Helper\MPDF;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Model\Element;
|
use Plugin\Custom\PSC\CollectLayouter\Model\Element;
|
||||||
@ -19,6 +17,8 @@ use Plugin\Custom\PSC\CollectLayouter\Model\ElementType;
|
|||||||
use Plugin\Custom\PSC\CollectLayouter\Model\Setting;
|
use Plugin\Custom\PSC\CollectLayouter\Model\Setting;
|
||||||
use PSC\Shop\ContactBundle\Transformer\Model\Contact;
|
use PSC\Shop\ContactBundle\Transformer\Model\Contact;
|
||||||
use PSC\Shop\EntityBundle\Entity\Product;
|
use PSC\Shop\EntityBundle\Entity\Product;
|
||||||
|
use PSC\Shop\MediaBundle\Model\Media;
|
||||||
|
use PSC\Shop\MediaBundle\Service\MediaManager;
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
@ -34,36 +34,45 @@ use Twig\Environment;
|
|||||||
class Preview extends AbstractController
|
class Preview extends AbstractController
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
readonly private MPDF $mpdf,
|
private readonly MPDF $mpdf,
|
||||||
readonly private EntityManagerInterface $entityManager,
|
private readonly EntityManagerInterface $entityManager,
|
||||||
readonly private DocumentManager $documentManager,
|
private readonly DocumentManager $documentManager,
|
||||||
readonly private SerializerInterface $serializer,
|
private readonly SerializerInterface $serializer,
|
||||||
readonly private Contact $contactTransformer,
|
private readonly Contact $contactTransformer,
|
||||||
readonly private RequestStack $requestStack,
|
private readonly RequestStack $requestStack,
|
||||||
readonly private MediaManager $mediaManager
|
private readonly MediaManager $mediaManager,
|
||||||
) {
|
) {}
|
||||||
}
|
|
||||||
|
|
||||||
#[Route(path: '/preview/{uuid}/{type}/{contactUuid}', methods: ['PUT'], defaults: ['contactUuid' => ''])]
|
#[Route(path: '/preview/{uuid}/{type}/{contactUuid}', methods: ['PUT'], defaults: ['contactUuid' => ''])]
|
||||||
#[ParamConverter('data', class: Input::class, converter: 'psc_rest.request_body')]
|
#[ParamConverter('data', class: Input::class, converter: 'psc_rest.request_body')]
|
||||||
#[Tag('Plugin/Custom/PSC/CollectLayouter')]
|
#[Tag('Plugin/Custom/PSC/CollectLayouter')]
|
||||||
#[RequestBody(description: 'content', content: new JsonContent(ref: Input::class))]
|
#[RequestBody(description: 'content', content: new JsonContent(ref: Input::class))]
|
||||||
#[Response(response: 200, description: 'return previews', content: new JsonContent(type: 'bool'))]
|
#[Response(response: 200, description: 'return previews', content: new JsonContent(type: 'bool'))]
|
||||||
public function generatePreview(Input $data, string $uuid, string $contactUuid = "", int $type = 1): JsonResponse
|
public function generatePreview(Input $data, string $uuid, string $contactUuid = '', int $type = 1): JsonResponse
|
||||||
{
|
{
|
||||||
|
|
||||||
$product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $uuid]);
|
$product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $uuid]);
|
||||||
|
|
||||||
$productDoc = $this->documentManager->getRepository(\PSC\Shop\EntityBundle\Document\Product::class)->findOneBy(['uid' => $product->getUID()]);
|
$productDoc = $this->documentManager
|
||||||
$setting = $this->serializer->deserialize($productDoc->getPluginSettingModule('collectlayouter', 'config') ?? '{}', Setting::class, 'json');
|
->getRepository(\PSC\Shop\EntityBundle\Document\Product::class)
|
||||||
|
->findOneBy(['uid' => $product->getUID()]);
|
||||||
|
$setting = $this->serializer->deserialize(
|
||||||
|
$productDoc->getPluginSettingModule('collectlayouter', 'config') ?? '{}',
|
||||||
|
Setting::class,
|
||||||
|
'json',
|
||||||
|
);
|
||||||
|
|
||||||
$contact = new \PSC\Shop\ContactBundle\Model\Contact();
|
$contact = new \PSC\Shop\ContactBundle\Model\Contact();
|
||||||
if ($contactUuid != "") {
|
if ($contactUuid != '') {
|
||||||
$contactEntity = $this->entityManager->getRepository(\PSC\Shop\EntityBundle\Entity\Contact::class)->findOneBy(['uuid' => $contactUuid]);
|
$contactEntity = $this->entityManager
|
||||||
|
->getRepository(\PSC\Shop\EntityBundle\Entity\Contact::class)
|
||||||
|
->findOneBy(['uuid' => $contactUuid]);
|
||||||
$this->contactTransformer->fromDb($contact, $contactEntity, new \PSC\Shop\EntityBundle\Document\Contact());
|
$this->contactTransformer->fromDb($contact, $contactEntity, new \PSC\Shop\EntityBundle\Document\Contact());
|
||||||
} elseif ($this->getUser()) {
|
} elseif ($this->getUser()) {
|
||||||
$this->contactTransformer->fromDb($contact, $this->getUser(), new \PSC\Shop\EntityBundle\Document\Contact());
|
$this->contactTransformer->fromDb(
|
||||||
|
$contact,
|
||||||
|
$this->getUser(),
|
||||||
|
new \PSC\Shop\EntityBundle\Document\Contact(),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
$this->mpdf->setSetting($setting);
|
$this->mpdf->setSetting($setting);
|
||||||
$this->requestStack->getSession()->set('collectLayouterData', $this->serializer->serialize($data, 'json'));
|
$this->requestStack->getSession()->set('collectLayouterData', $this->serializer->serialize($data, 'json'));
|
||||||
@ -75,20 +84,28 @@ class Preview extends AbstractController
|
|||||||
foreach ($setting->getCustomerForm() as $element) {
|
foreach ($setting->getCustomerForm() as $element) {
|
||||||
$value = match ($element->getBinding()) {
|
$value = match ($element->getBinding()) {
|
||||||
ElementBinding::none => $element->getDefaultForTypePreview(),
|
ElementBinding::none => $element->getDefaultForTypePreview(),
|
||||||
ElementBinding::StreetHouseNumber => ['street' => $contact->getLayouterData()->getStreet() ?? $element->getDefault1(), 'houseNumber' => $contact->getLayouterData()->getHouseNumber() ?? $element->getDefault2()],
|
ElementBinding::StreetHouseNumber => [
|
||||||
ElementBinding::ZipCity => ['zip' => $contact->getLayouterData()->getZip() ?? $element->getDefault1(), 'city' => $contact->getLayouterData()->getCity() ?? $element->getDefault2()],
|
'street' => $contact->getLayouterData()->getStreet() ?? $element->getDefault1(),
|
||||||
|
'houseNumber' => $contact->getLayouterData()->getHouseNumber() ?? $element->getDefault2(),
|
||||||
|
],
|
||||||
|
ElementBinding::ZipCity => [
|
||||||
|
'zip' => $contact->getLayouterData()->getZip() ?? $element->getDefault1(),
|
||||||
|
'city' => $contact->getLayouterData()->getCity() ?? $element->getDefault2(),
|
||||||
|
],
|
||||||
ElementBinding::Firstname => $contact->getLayouterData()->getFirstname() ?? $element->getDefault1(),
|
ElementBinding::Firstname => $contact->getLayouterData()->getFirstname() ?? $element->getDefault1(),
|
||||||
ElementBinding::Lastname => $contact->getLayouterData()->getLastname() ?? $element->getDefault1(),
|
ElementBinding::Lastname => $contact->getLayouterData()->getLastname() ?? $element->getDefault1(),
|
||||||
ElementBinding::Mobile => [
|
ElementBinding::Mobile => [
|
||||||
'areacode' => $contact->getLayouterData()->getMobileAreaCode() ?? $element->getDefault1(),
|
'areacode' => $contact->getLayouterData()->getMobileAreaCode() ?? $element->getDefault1(),
|
||||||
'prefix' => $contact->getLayouterData()->getMobilePrefix() ?? $element->getDefault2(),
|
'prefix' => $contact->getLayouterData()->getMobilePrefix() ?? $element->getDefault2(),
|
||||||
'number' => $contact->getLayouterData()->getMobile() ?? $element->getDefault3(),
|
'number' => $contact->getLayouterData()->getMobile() ?? $element->getDefault3(),
|
||||||
'appendix' => $contact->getLayouterData()->getMobileAppendix() ?? $element->getDefault4()],
|
'appendix' => $contact->getLayouterData()->getMobileAppendix() ?? $element->getDefault4(),
|
||||||
|
],
|
||||||
ElementBinding::Fax => [
|
ElementBinding::Fax => [
|
||||||
'areacode' => $contact->getLayouterData()->getFaxAreaCode() ?? $element->getDefault1(),
|
'areacode' => $contact->getLayouterData()->getFaxAreaCode() ?? $element->getDefault1(),
|
||||||
'prefix' => $contact->getLayouterData()->getFaxPrefix() ?? $element->getDefault2(),
|
'prefix' => $contact->getLayouterData()->getFaxPrefix() ?? $element->getDefault2(),
|
||||||
'number' => $contact->getLayouterData()->getFax() ?? $element->getDefault3(),
|
'number' => $contact->getLayouterData()->getFax() ?? $element->getDefault3(),
|
||||||
'appendix' => $contact->getLayouterData()->getFaxAppendix() ?? $element->getDefault4()],
|
'appendix' => $contact->getLayouterData()->getFaxAppendix() ?? $element->getDefault4(),
|
||||||
|
],
|
||||||
ElementBinding::UsernameLogin => $contact->getEmail() ?? $element->getDefault1(),
|
ElementBinding::UsernameLogin => $contact->getEmail() ?? $element->getDefault1(),
|
||||||
ElementBinding::Company => $contact->getLayouterData()->getCompany() ?? $element->getDefault1(),
|
ElementBinding::Company => $contact->getLayouterData()->getCompany() ?? $element->getDefault1(),
|
||||||
ElementBinding::Company2 => $contact->getLayouterData()->getCompany2() ?? $element->getDefault1(),
|
ElementBinding::Company2 => $contact->getLayouterData()->getCompany2() ?? $element->getDefault1(),
|
||||||
@ -100,7 +117,8 @@ class Preview extends AbstractController
|
|||||||
'areacode' => $contact->getLayouterData()->getPhoneAreaCode() ?? $element->getDefault1(),
|
'areacode' => $contact->getLayouterData()->getPhoneAreaCode() ?? $element->getDefault1(),
|
||||||
'prefix' => $contact->getLayouterData()->getPhonePrefix() ?? $element->getDefault2(),
|
'prefix' => $contact->getLayouterData()->getPhonePrefix() ?? $element->getDefault2(),
|
||||||
'number' => $contact->getLayouterData()->getPhone() ?? $element->getDefault3(),
|
'number' => $contact->getLayouterData()->getPhone() ?? $element->getDefault3(),
|
||||||
'appendix' => $contact->getLayouterData()->getPhoneAppendix() ?? $element->getDefault4()],
|
'appendix' => $contact->getLayouterData()->getPhoneAppendix() ?? $element->getDefault4(),
|
||||||
|
],
|
||||||
ElementBinding::Abteilung => $contact->getLayouterData()->getAbteilung() ?? $element->getDefault1(),
|
ElementBinding::Abteilung => $contact->getLayouterData()->getAbteilung() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom1 => $contact->getCustom1() ?? $element->getDefault1(),
|
ElementBinding::Custom1 => $contact->getCustom1() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom2 => $contact->getCustom2() ?? $element->getDefault1(),
|
ElementBinding::Custom2 => $contact->getCustom2() ?? $element->getDefault1(),
|
||||||
@ -127,8 +145,12 @@ class Preview extends AbstractController
|
|||||||
ElementBinding::Custom23 => $contact->getCustom23() ?? $element->getDefault1(),
|
ElementBinding::Custom23 => $contact->getCustom23() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom24 => $contact->getCustom24() ?? $element->getDefault1(),
|
ElementBinding::Custom24 => $contact->getCustom24() ?? $element->getDefault1(),
|
||||||
ElementBinding::LayouterMail => $contact->getLayouterData()->getEmail() ?? $element->getDefault1(),
|
ElementBinding::LayouterMail => $contact->getLayouterData()->getEmail() ?? $element->getDefault1(),
|
||||||
ElementBinding::LayouterCountryName => $contact->getLayouterData()->getCountryName() ?? $element->getDefault1(),
|
ElementBinding::LayouterCountryName => $contact
|
||||||
ElementBinding::LayouterCountryCode => $contact->getLayouterData()->getCountryCode() ?? $element->getDefault1(),
|
->getLayouterData()
|
||||||
|
->getCountryName() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::LayouterCountryCode => $contact
|
||||||
|
->getLayouterData()
|
||||||
|
->getCountryCode() ?? $element->getDefault1(),
|
||||||
ElementBinding::Birthday => $contact->getLayouterData()->getBirthday() ?? $element->getDefault1(),
|
ElementBinding::Birthday => $contact->getLayouterData()->getBirthday() ?? $element->getDefault1(),
|
||||||
ElementBinding::Homepages => $contact->getLayouterData()->getHomepage() ?? $element->getDefault1(),
|
ElementBinding::Homepages => $contact->getLayouterData()->getHomepage() ?? $element->getDefault1(),
|
||||||
ElementBinding::Salutation => $contact->getLayouterData()->getSalutation() ?? $element->getDefault1(),
|
ElementBinding::Salutation => $contact->getLayouterData()->getSalutation() ?? $element->getDefault1(),
|
||||||
@ -138,24 +160,26 @@ class Preview extends AbstractController
|
|||||||
ElementBinding::District => $contact->getLayouterData()->getDistrict() ?? $element->getDefault1(),
|
ElementBinding::District => $contact->getLayouterData()->getDistrict() ?? $element->getDefault1(),
|
||||||
ElementBinding::Image1 => $contact->getLayouterData()->getImage1() ?? $element->getDefault1(),
|
ElementBinding::Image1 => $contact->getLayouterData()->getImage1() ?? $element->getDefault1(),
|
||||||
ElementBinding::Image2 => $contact->getLayouterData()->getImage2() ?? $element->getDefault1(),
|
ElementBinding::Image2 => $contact->getLayouterData()->getImage2() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Account => $contact->getAccount()->getUuid() ?? $element->getDefault1(),
|
||||||
};
|
};
|
||||||
|
|
||||||
if ($elm = $data->getElement($element, $contact)) {
|
if ($elm = $data->getElement($element, $contact)) {
|
||||||
if ($element->getType() == ElementType::Image && $elm['value'] != "") {
|
if ($element->getType() == ElementType::Image && $elm['value'] != '') {
|
||||||
$media = $this->mediaManager->getModelByUuid($elm['value']);
|
$media = $this->mediaManager->getModelByUuid($elm['value']);
|
||||||
$formData[$element->getId()] = ['value' => $media, 'enable' => (bool) $elm['enable']];
|
$formData[$element->getId()] = ['value' => $media, 'enable' => (bool) $elm['enable']];
|
||||||
} else {
|
} else {
|
||||||
$formData[$element->getId()] = ['value' => $elm['value'], 'enable' => (bool) $elm['enable']];
|
$formData[$element->getId()] = ['value' => $elm['value'], 'enable' => (bool) $elm['enable']];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$formData[$element->getId()] = ['value' => $value, 'enable' => $element->getOptional() ? $element->getOptionalDefault() : true];
|
$formData[$element->getId()] = [
|
||||||
|
'value' => $value,
|
||||||
|
'enable' => $element->getOptional() ? $element->getOptionalDefault() : true,
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($element->getType() == ElementType::Image && $formData[$element->getId()]['value'] instanceof Media) {
|
if ($element->getType() == ElementType::Image && $formData[$element->getId()]['value'] instanceof Media) {
|
||||||
$formData[$element->getId()]['value'] = $formData[$element->getId()]['value']->getVariant($element->getImage()->aspectRatio);
|
$formData[$element->getId()]['value'] = $formData[$element->getId()]['value']->getVariant($element->getImage()->aspectRatio);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->mpdf->setData($formData);
|
$this->mpdf->setData($formData);
|
||||||
@ -169,5 +193,4 @@ class Preview extends AbstractController
|
|||||||
|
|
||||||
return $this->json($tmp);
|
return $this->json($tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,16 +8,16 @@ use OpenApi\Attributes\JsonContent;
|
|||||||
use OpenApi\Attributes\RequestBody;
|
use OpenApi\Attributes\RequestBody;
|
||||||
use OpenApi\Attributes\Response;
|
use OpenApi\Attributes\Response;
|
||||||
use OpenApi\Attributes\Tag;
|
use OpenApi\Attributes\Tag;
|
||||||
use PSC\Shop\EntityBundle\Entity\Contact as PSCContact;
|
|
||||||
use PSC\Shop\MediaBundle\Service\MediaManager;
|
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Dto\Save\Input;
|
use Plugin\Custom\PSC\CollectLayouter\Dto\Save\Input;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Model\ElementBinding;
|
use Plugin\Custom\PSC\CollectLayouter\Model\ElementBinding;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Model\ElementType;
|
use Plugin\Custom\PSC\CollectLayouter\Model\ElementType;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Model\Setting;
|
use Plugin\Custom\PSC\CollectLayouter\Model\Setting;
|
||||||
use PSC\Shop\ContactBundle\Transformer\Model\Contact;
|
use PSC\Shop\ContactBundle\Transformer\Model\Contact;
|
||||||
|
use PSC\Shop\EntityBundle\Entity\Contact as PSCContact;
|
||||||
use PSC\Shop\EntityBundle\Entity\Layoutdesigndata;
|
use PSC\Shop\EntityBundle\Entity\Layoutdesigndata;
|
||||||
use PSC\Shop\EntityBundle\Entity\LayouterSession;
|
use PSC\Shop\EntityBundle\Entity\LayouterSession;
|
||||||
use PSC\Shop\EntityBundle\Entity\Product;
|
use PSC\Shop\EntityBundle\Entity\Product;
|
||||||
|
use PSC\Shop\MediaBundle\Service\MediaManager;
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
@ -29,17 +29,16 @@ use Twig\Environment;
|
|||||||
class Save extends AbstractController
|
class Save extends AbstractController
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
readonly private \Plugin\Custom\PSC\CollectLayouter\Helper\SaveFiles $saveFilesHelper,
|
private readonly \Plugin\Custom\PSC\CollectLayouter\Helper\SaveFiles $saveFilesHelper,
|
||||||
readonly private \Plugin\Custom\PSC\CollectLayouter\Helper\SaveContact $saveContactHelper,
|
private readonly \Plugin\Custom\PSC\CollectLayouter\Helper\SaveContact $saveContactHelper,
|
||||||
private EntityManagerInterface $entityManager,
|
private EntityManagerInterface $entityManager,
|
||||||
private DocumentManager $documentManager,
|
private DocumentManager $documentManager,
|
||||||
private SerializerInterface $serializer,
|
private SerializerInterface $serializer,
|
||||||
private Contact $contactTransformer,
|
private Contact $contactTransformer,
|
||||||
private RequestStack $requestStack,
|
private RequestStack $requestStack,
|
||||||
private Environment $twig,
|
private Environment $twig,
|
||||||
private MediaManager $mediaManager
|
private MediaManager $mediaManager,
|
||||||
) {
|
) {}
|
||||||
}
|
|
||||||
|
|
||||||
#[Route(path: '/savecollect/{uuid}/{contactuuid}', methods: ['PUT'])]
|
#[Route(path: '/savecollect/{uuid}/{contactuuid}', methods: ['PUT'])]
|
||||||
#[ParamConverter('data', class: Input::class, converter: 'psc_rest.request_body')]
|
#[ParamConverter('data', class: Input::class, converter: 'psc_rest.request_body')]
|
||||||
@ -48,13 +47,18 @@ class Save extends AbstractController
|
|||||||
#[Response(response: 200, description: 'save config in session', content: new JsonContent(type: 'bool'))]
|
#[Response(response: 200, description: 'save config in session', content: new JsonContent(type: 'bool'))]
|
||||||
public function saveCollect(Input $data, string $uuid, string $contactuuid): JsonResponse
|
public function saveCollect(Input $data, string $uuid, string $contactuuid): JsonResponse
|
||||||
{
|
{
|
||||||
|
$basketField1 = '';
|
||||||
$basketField1 = "";
|
$basketField2 = '';
|
||||||
$basketField2 = "";
|
|
||||||
$product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $uuid]);
|
$product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $uuid]);
|
||||||
|
|
||||||
$productDoc = $this->documentManager->getRepository(\PSC\Shop\EntityBundle\Document\Product::class)->findOneBy(['uid' => $product->getUID()]);
|
$productDoc = $this->documentManager
|
||||||
$setting = $this->serializer->deserialize($productDoc->getPluginSettingModule('collectlayouter', 'config') ?? '{}', Setting::class, 'json');
|
->getRepository(\PSC\Shop\EntityBundle\Document\Product::class)
|
||||||
|
->findOneBy(['uid' => $product->getUID()]);
|
||||||
|
$setting = $this->serializer->deserialize(
|
||||||
|
$productDoc->getPluginSettingModule('collectlayouter', 'config') ?? '{}',
|
||||||
|
Setting::class,
|
||||||
|
'json',
|
||||||
|
);
|
||||||
$contactEntity = $this->entityManager->getRepository(PSCContact::class)->findOneBy(['uuid' => $contactuuid]);
|
$contactEntity = $this->entityManager->getRepository(PSCContact::class)->findOneBy(['uuid' => $contactuuid]);
|
||||||
$contact = new \PSC\Shop\ContactBundle\Model\Contact();
|
$contact = new \PSC\Shop\ContactBundle\Model\Contact();
|
||||||
$this->contactTransformer->fromDb($contact, $contactEntity);
|
$this->contactTransformer->fromDb($contact, $contactEntity);
|
||||||
@ -64,7 +68,7 @@ class Save extends AbstractController
|
|||||||
|
|
||||||
$this->saveFilesHelper->storeFiles();
|
$this->saveFilesHelper->storeFiles();
|
||||||
|
|
||||||
if ($contact->getUuid() != "") {
|
if ($contact->getUuid() != '') {
|
||||||
$this->saveContactHelper->setSetting($setting);
|
$this->saveContactHelper->setSetting($setting);
|
||||||
$this->saveContactHelper->setContact($contact);
|
$this->saveContactHelper->setContact($contact);
|
||||||
$this->saveContactHelper->setData($data);
|
$this->saveContactHelper->setData($data);
|
||||||
@ -79,20 +83,28 @@ class Save extends AbstractController
|
|||||||
foreach ($setting->getCustomerForm() as $element) {
|
foreach ($setting->getCustomerForm() as $element) {
|
||||||
$value = match ($element->getBinding()) {
|
$value = match ($element->getBinding()) {
|
||||||
ElementBinding::none => $element->getDefaultForTypePreview(),
|
ElementBinding::none => $element->getDefaultForTypePreview(),
|
||||||
ElementBinding::StreetHouseNumber => ['street' => $contact->getLayouterData()->getStreet() ?? $element->getDefault1(), 'houseNumber' => $contact->getLayouterData()->getHouseNumber() ?? $element->getDefault2()],
|
ElementBinding::StreetHouseNumber => [
|
||||||
ElementBinding::ZipCity => ['zip' => $contact->getLayouterData()->getZip() ?? $element->getDefault1(), 'city' => $contact->getLayouterData()->getCity() ?? $element->getDefault2()],
|
'street' => $contact->getLayouterData()->getStreet() ?? $element->getDefault1(),
|
||||||
|
'houseNumber' => $contact->getLayouterData()->getHouseNumber() ?? $element->getDefault2(),
|
||||||
|
],
|
||||||
|
ElementBinding::ZipCity => [
|
||||||
|
'zip' => $contact->getLayouterData()->getZip() ?? $element->getDefault1(),
|
||||||
|
'city' => $contact->getLayouterData()->getCity() ?? $element->getDefault2(),
|
||||||
|
],
|
||||||
ElementBinding::Firstname => $contact->getLayouterData()->getFirstname() ?? $element->getDefault1(),
|
ElementBinding::Firstname => $contact->getLayouterData()->getFirstname() ?? $element->getDefault1(),
|
||||||
ElementBinding::Lastname => $contact->getLayouterData()->getLastname() ?? $element->getDefault1(),
|
ElementBinding::Lastname => $contact->getLayouterData()->getLastname() ?? $element->getDefault1(),
|
||||||
ElementBinding::Mobile => [
|
ElementBinding::Mobile => [
|
||||||
'areacode' => $contact->getLayouterData()->getMobileAreaCode() ?? $element->getDefault1(),
|
'areacode' => $contact->getLayouterData()->getMobileAreaCode() ?? $element->getDefault1(),
|
||||||
'prefix' => $contact->getLayouterData()->getMobilePrefix() ?? $element->getDefault2(),
|
'prefix' => $contact->getLayouterData()->getMobilePrefix() ?? $element->getDefault2(),
|
||||||
'number' => $contact->getLayouterData()->getMobile() ?? $element->getDefault3(),
|
'number' => $contact->getLayouterData()->getMobile() ?? $element->getDefault3(),
|
||||||
'appendix' => $contact->getLayouterData()->getMobileAppendix() ?? $element->getDefault4()],
|
'appendix' => $contact->getLayouterData()->getMobileAppendix() ?? $element->getDefault4(),
|
||||||
|
],
|
||||||
ElementBinding::Fax => [
|
ElementBinding::Fax => [
|
||||||
'areacode' => $contact->getLayouterData()->getFaxAreaCode() ?? $element->getDefault1(),
|
'areacode' => $contact->getLayouterData()->getFaxAreaCode() ?? $element->getDefault1(),
|
||||||
'prefix' => $contact->getLayouterData()->getFaxPrefix() ?? $element->getDefault2(),
|
'prefix' => $contact->getLayouterData()->getFaxPrefix() ?? $element->getDefault2(),
|
||||||
'number' => $contact->getLayouterData()->getFax() ?? $element->getDefault3(),
|
'number' => $contact->getLayouterData()->getFax() ?? $element->getDefault3(),
|
||||||
'appendix' => $contact->getLayouterData()->getFaxAppendix() ?? $element->getDefault4()],
|
'appendix' => $contact->getLayouterData()->getFaxAppendix() ?? $element->getDefault4(),
|
||||||
|
],
|
||||||
ElementBinding::UsernameLogin => $contact->getEmail() ?? $element->getDefault1(),
|
ElementBinding::UsernameLogin => $contact->getEmail() ?? $element->getDefault1(),
|
||||||
ElementBinding::Company => $contact->getLayouterData()->getCompany() ?? $element->getDefault1(),
|
ElementBinding::Company => $contact->getLayouterData()->getCompany() ?? $element->getDefault1(),
|
||||||
ElementBinding::Company2 => $contact->getLayouterData()->getCompany2() ?? $element->getDefault1(),
|
ElementBinding::Company2 => $contact->getLayouterData()->getCompany2() ?? $element->getDefault1(),
|
||||||
@ -104,7 +116,8 @@ class Save extends AbstractController
|
|||||||
'areacode' => $contact->getLayouterData()->getPhoneAreaCode() ?? $element->getDefault1(),
|
'areacode' => $contact->getLayouterData()->getPhoneAreaCode() ?? $element->getDefault1(),
|
||||||
'prefix' => $contact->getLayouterData()->getPhonePrefix() ?? $element->getDefault2(),
|
'prefix' => $contact->getLayouterData()->getPhonePrefix() ?? $element->getDefault2(),
|
||||||
'number' => $contact->getLayouterData()->getPhone() ?? $element->getDefault3(),
|
'number' => $contact->getLayouterData()->getPhone() ?? $element->getDefault3(),
|
||||||
'appendix' => $contact->getLayouterData()->getPhoneAppendix() ?? $element->getDefault4()],
|
'appendix' => $contact->getLayouterData()->getPhoneAppendix() ?? $element->getDefault4(),
|
||||||
|
],
|
||||||
ElementBinding::Abteilung => $contact->getLayouterData()->getAbteilung() ?? $element->getDefault1(),
|
ElementBinding::Abteilung => $contact->getLayouterData()->getAbteilung() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom1 => $contact->getCustom1() ?? $element->getDefault1(),
|
ElementBinding::Custom1 => $contact->getCustom1() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom2 => $contact->getCustom2() ?? $element->getDefault1(),
|
ElementBinding::Custom2 => $contact->getCustom2() ?? $element->getDefault1(),
|
||||||
@ -131,8 +144,12 @@ class Save extends AbstractController
|
|||||||
ElementBinding::Custom23 => $contact->getCustom23() ?? $element->getDefault1(),
|
ElementBinding::Custom23 => $contact->getCustom23() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom24 => $contact->getCustom24() ?? $element->getDefault1(),
|
ElementBinding::Custom24 => $contact->getCustom24() ?? $element->getDefault1(),
|
||||||
ElementBinding::LayouterMail => $contact->getLayouterData()->getEmail() ?? $element->getDefault1(),
|
ElementBinding::LayouterMail => $contact->getLayouterData()->getEmail() ?? $element->getDefault1(),
|
||||||
ElementBinding::LayouterCountryName => $contact->getLayouterData()->getCountryName() ?? $element->getDefault1(),
|
ElementBinding::LayouterCountryName => $contact
|
||||||
ElementBinding::LayouterCountryCode => $contact->getLayouterData()->getCountryCode() ?? $element->getDefault1(),
|
->getLayouterData()
|
||||||
|
->getCountryName() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::LayouterCountryCode => $contact
|
||||||
|
->getLayouterData()
|
||||||
|
->getCountryCode() ?? $element->getDefault1(),
|
||||||
ElementBinding::Birthday => $contact->getLayouterData()->getBirthday() ?? $element->getDefault1(),
|
ElementBinding::Birthday => $contact->getLayouterData()->getBirthday() ?? $element->getDefault1(),
|
||||||
ElementBinding::Homepages => $contact->getLayouterData()->getHomepage() ?? $element->getDefault1(),
|
ElementBinding::Homepages => $contact->getLayouterData()->getHomepage() ?? $element->getDefault1(),
|
||||||
ElementBinding::Salutation => $contact->getLayouterData()->getSalutation() ?? $element->getDefault1(),
|
ElementBinding::Salutation => $contact->getLayouterData()->getSalutation() ?? $element->getDefault1(),
|
||||||
@ -142,10 +159,11 @@ class Save extends AbstractController
|
|||||||
ElementBinding::District => $contact->getLayouterData()->getDistrict() ?? $element->getDefault1(),
|
ElementBinding::District => $contact->getLayouterData()->getDistrict() ?? $element->getDefault1(),
|
||||||
ElementBinding::Image1 => $contact->getLayouterData()->getImage1() ?? $element->getDefault1(),
|
ElementBinding::Image1 => $contact->getLayouterData()->getImage1() ?? $element->getDefault1(),
|
||||||
ElementBinding::Image2 => $contact->getLayouterData()->getImage2() ?? $element->getDefault1(),
|
ElementBinding::Image2 => $contact->getLayouterData()->getImage2() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Account => $contact->getAccount()->getUuid() ?? $element->getDefault1(),
|
||||||
};
|
};
|
||||||
|
|
||||||
if ($elm = $data->getElement($element, $contact)) {
|
if ($elm = $data->getElement($element, $contact)) {
|
||||||
if ($element->getType() == ElementType::Image && $elm['value'] != "") {
|
if ($element->getType() == ElementType::Image && $elm['value'] != '') {
|
||||||
$media = $this->mediaManager->getModelByUuid($elm['value']);
|
$media = $this->mediaManager->getModelByUuid($elm['value']);
|
||||||
$elmMedia = $media->getVariant($element->getImage()->aspectRatio);
|
$elmMedia = $media->getVariant($element->getImage()->aspectRatio);
|
||||||
$formData[$element->getId()] = ['value' => $elmMedia, 'enable' => (bool) $elm['enable']];
|
$formData[$element->getId()] = ['value' => $elmMedia, 'enable' => (bool) $elm['enable']];
|
||||||
@ -153,30 +171,38 @@ class Save extends AbstractController
|
|||||||
$formData[$element->getId()] = ['value' => $elm['value'], 'enable' => (bool) $elm['enable']];
|
$formData[$element->getId()] = ['value' => $elm['value'], 'enable' => (bool) $elm['enable']];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$formData[$element->getId()] = ['value' => $value, 'enable' => $element->getOptional() ? $element->getOptionalDefault() : true];
|
$formData[$element->getId()] = [
|
||||||
|
'value' => $value,
|
||||||
|
'enable' => $element->getOptional() ? $element->getOptionalDefault() : true,
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
if ($setting->getBasketField1Format() != '') {
|
||||||
|
|
||||||
if ($setting->getBasketField1Format() != "") {
|
|
||||||
$twigBF1 = $this->twig->createTemplate($setting->getBasketField1Format());
|
$twigBF1 = $this->twig->createTemplate($setting->getBasketField1Format());
|
||||||
$basketField1 = $twigBF1->render(['form' => $formData]);
|
$basketField1 = $twigBF1->render(['form' => $formData]);
|
||||||
}
|
}
|
||||||
if ($setting->getBasketField2Format() != "") {
|
if ($setting->getBasketField2Format() != '') {
|
||||||
$twigBF2 = $this->twig->createTemplate($setting->getBasketField2Format());
|
$twigBF2 = $this->twig->createTemplate($setting->getBasketField2Format());
|
||||||
$basketField2 = $twigBF2->render(['form' => $formData]);
|
$basketField2 = $twigBF2->render(['form' => $formData]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$layoutDesignData = new Layoutdesigndata();
|
$layoutDesignData = new Layoutdesigndata();
|
||||||
$layoutDesignData->setUuid($data->getLayouterUuid());
|
$layoutDesignData->setUuid($data->getLayouterUuid());
|
||||||
$layoutDesignData->setArticleUuid($data->getProductUuid());
|
$layoutDesignData->setArticleUuid($data->getProductUuid());
|
||||||
$layoutDesignData->setDesign(['data' => $data->getData(), 'contactUuid' => $data->getContactUuid(), 'pdf' => $this->saveFilesHelper->getPdfFile(), 'previews' => $this->saveFilesHelper->getImages()]);
|
$layoutDesignData->setDesign([
|
||||||
|
'data' => $data->getData(),
|
||||||
|
'contactUuid' => $data->getContactUuid(),
|
||||||
|
'pdf' => $this->saveFilesHelper->getPdfFile(),
|
||||||
|
'previews' => $this->saveFilesHelper->getImages(),
|
||||||
|
]);
|
||||||
|
|
||||||
$this->entityManager->persist($layoutDesignData);
|
$this->entityManager->persist($layoutDesignData);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
|
|
||||||
$layouterSession = $this->entityManager->getRepository(LayouterSession::class)->findOneBy(['uuid' => $data->getLayouterUuid()]);
|
$layouterSession = $this->entityManager
|
||||||
|
->getRepository(LayouterSession::class)
|
||||||
|
->findOneBy(['uuid' => $data->getLayouterUuid()]);
|
||||||
|
|
||||||
$layouterDesignDataDoc = new \PSC\Shop\EntityBundle\Document\LayouterSession();
|
$layouterDesignDataDoc = new \PSC\Shop\EntityBundle\Document\LayouterSession();
|
||||||
$layouterDesignDataDoc->setUid((string) $layouterSession->getUID());
|
$layouterDesignDataDoc->setUid((string) $layouterSession->getUID());
|
||||||
@ -200,13 +226,18 @@ class Save extends AbstractController
|
|||||||
#[Response(response: 200, description: 'save config in session', content: new JsonContent(type: 'bool'))]
|
#[Response(response: 200, description: 'save config in session', content: new JsonContent(type: 'bool'))]
|
||||||
public function save(Input $data, string $uuid): JsonResponse
|
public function save(Input $data, string $uuid): JsonResponse
|
||||||
{
|
{
|
||||||
|
$basketField1 = '';
|
||||||
$basketField1 = "";
|
$basketField2 = '';
|
||||||
$basketField2 = "";
|
|
||||||
$product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $uuid]);
|
$product = $this->entityManager->getRepository(Product::class)->findOneBy(['uuid' => $uuid]);
|
||||||
|
|
||||||
$productDoc = $this->documentManager->getRepository(\PSC\Shop\EntityBundle\Document\Product::class)->findOneBy(['uid' => $product->getUID()]);
|
$productDoc = $this->documentManager
|
||||||
$setting = $this->serializer->deserialize($productDoc->getPluginSettingModule('collectlayouter', 'config') ?? '{}', Setting::class, 'json');
|
->getRepository(\PSC\Shop\EntityBundle\Document\Product::class)
|
||||||
|
->findOneBy(['uid' => $product->getUID()]);
|
||||||
|
$setting = $this->serializer->deserialize(
|
||||||
|
$productDoc->getPluginSettingModule('collectlayouter', 'config') ?? '{}',
|
||||||
|
Setting::class,
|
||||||
|
'json',
|
||||||
|
);
|
||||||
|
|
||||||
$contact = new \PSC\Shop\ContactBundle\Model\Contact();
|
$contact = new \PSC\Shop\ContactBundle\Model\Contact();
|
||||||
if ($this->getUser()) {
|
if ($this->getUser()) {
|
||||||
@ -218,7 +249,7 @@ class Save extends AbstractController
|
|||||||
|
|
||||||
$this->saveFilesHelper->storeFiles();
|
$this->saveFilesHelper->storeFiles();
|
||||||
|
|
||||||
if ($contact->getUuid() != "") {
|
if ($contact->getUuid() != '') {
|
||||||
$this->saveContactHelper->setSetting($setting);
|
$this->saveContactHelper->setSetting($setting);
|
||||||
$this->saveContactHelper->setContact($contact);
|
$this->saveContactHelper->setContact($contact);
|
||||||
$this->saveContactHelper->setData($data);
|
$this->saveContactHelper->setData($data);
|
||||||
@ -233,20 +264,28 @@ class Save extends AbstractController
|
|||||||
foreach ($setting->getCustomerForm() as $element) {
|
foreach ($setting->getCustomerForm() as $element) {
|
||||||
$value = match ($element->getBinding()) {
|
$value = match ($element->getBinding()) {
|
||||||
ElementBinding::none => $element->getDefaultForTypePreview(),
|
ElementBinding::none => $element->getDefaultForTypePreview(),
|
||||||
ElementBinding::StreetHouseNumber => ['street' => $contact->getLayouterData()->getStreet() ?? $element->getDefault1(), 'houseNumber' => $contact->getLayouterData()->getHouseNumber() ?? $element->getDefault2()],
|
ElementBinding::StreetHouseNumber => [
|
||||||
ElementBinding::ZipCity => ['zip' => $contact->getLayouterData()->getZip() ?? $element->getDefault1(), 'city' => $contact->getLayouterData()->getCity() ?? $element->getDefault2()],
|
'street' => $contact->getLayouterData()->getStreet() ?? $element->getDefault1(),
|
||||||
|
'houseNumber' => $contact->getLayouterData()->getHouseNumber() ?? $element->getDefault2(),
|
||||||
|
],
|
||||||
|
ElementBinding::ZipCity => [
|
||||||
|
'zip' => $contact->getLayouterData()->getZip() ?? $element->getDefault1(),
|
||||||
|
'city' => $contact->getLayouterData()->getCity() ?? $element->getDefault2(),
|
||||||
|
],
|
||||||
ElementBinding::Firstname => $contact->getLayouterData()->getFirstname() ?? $element->getDefault1(),
|
ElementBinding::Firstname => $contact->getLayouterData()->getFirstname() ?? $element->getDefault1(),
|
||||||
ElementBinding::Lastname => $contact->getLayouterData()->getLastname() ?? $element->getDefault1(),
|
ElementBinding::Lastname => $contact->getLayouterData()->getLastname() ?? $element->getDefault1(),
|
||||||
ElementBinding::Mobile => [
|
ElementBinding::Mobile => [
|
||||||
'areacode' => $contact->getLayouterData()->getMobileAreaCode() ?? $element->getDefault1(),
|
'areacode' => $contact->getLayouterData()->getMobileAreaCode() ?? $element->getDefault1(),
|
||||||
'prefix' => $contact->getLayouterData()->getMobilePrefix() ?? $element->getDefault2(),
|
'prefix' => $contact->getLayouterData()->getMobilePrefix() ?? $element->getDefault2(),
|
||||||
'number' => $contact->getLayouterData()->getMobile() ?? $element->getDefault3(),
|
'number' => $contact->getLayouterData()->getMobile() ?? $element->getDefault3(),
|
||||||
'appendix' => $contact->getLayouterData()->getMobileAppendix() ?? $element->getDefault4()],
|
'appendix' => $contact->getLayouterData()->getMobileAppendix() ?? $element->getDefault4(),
|
||||||
|
],
|
||||||
ElementBinding::Fax => [
|
ElementBinding::Fax => [
|
||||||
'areacode' => $contact->getLayouterData()->getFaxAreaCode() ?? $element->getDefault1(),
|
'areacode' => $contact->getLayouterData()->getFaxAreaCode() ?? $element->getDefault1(),
|
||||||
'prefix' => $contact->getLayouterData()->getFaxPrefix() ?? $element->getDefault2(),
|
'prefix' => $contact->getLayouterData()->getFaxPrefix() ?? $element->getDefault2(),
|
||||||
'number' => $contact->getLayouterData()->getFax() ?? $element->getDefault3(),
|
'number' => $contact->getLayouterData()->getFax() ?? $element->getDefault3(),
|
||||||
'appendix' => $contact->getLayouterData()->getFaxAppendix() ?? $element->getDefault4()],
|
'appendix' => $contact->getLayouterData()->getFaxAppendix() ?? $element->getDefault4(),
|
||||||
|
],
|
||||||
ElementBinding::UsernameLogin => $contact->getEmail() ?? $element->getDefault1(),
|
ElementBinding::UsernameLogin => $contact->getEmail() ?? $element->getDefault1(),
|
||||||
ElementBinding::Company => $contact->getLayouterData()->getCompany() ?? $element->getDefault1(),
|
ElementBinding::Company => $contact->getLayouterData()->getCompany() ?? $element->getDefault1(),
|
||||||
ElementBinding::Company2 => $contact->getLayouterData()->getCompany2() ?? $element->getDefault1(),
|
ElementBinding::Company2 => $contact->getLayouterData()->getCompany2() ?? $element->getDefault1(),
|
||||||
@ -258,7 +297,8 @@ class Save extends AbstractController
|
|||||||
'areacode' => $contact->getLayouterData()->getPhoneAreaCode() ?? $element->getDefault1(),
|
'areacode' => $contact->getLayouterData()->getPhoneAreaCode() ?? $element->getDefault1(),
|
||||||
'prefix' => $contact->getLayouterData()->getPhonePrefix() ?? $element->getDefault2(),
|
'prefix' => $contact->getLayouterData()->getPhonePrefix() ?? $element->getDefault2(),
|
||||||
'number' => $contact->getLayouterData()->getPhone() ?? $element->getDefault3(),
|
'number' => $contact->getLayouterData()->getPhone() ?? $element->getDefault3(),
|
||||||
'appendix' => $contact->getLayouterData()->getPhoneAppendix() ?? $element->getDefault4()],
|
'appendix' => $contact->getLayouterData()->getPhoneAppendix() ?? $element->getDefault4(),
|
||||||
|
],
|
||||||
ElementBinding::Abteilung => $contact->getLayouterData()->getAbteilung() ?? $element->getDefault1(),
|
ElementBinding::Abteilung => $contact->getLayouterData()->getAbteilung() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom1 => $contact->getCustom1() ?? $element->getDefault1(),
|
ElementBinding::Custom1 => $contact->getCustom1() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom2 => $contact->getCustom2() ?? $element->getDefault1(),
|
ElementBinding::Custom2 => $contact->getCustom2() ?? $element->getDefault1(),
|
||||||
@ -285,8 +325,12 @@ class Save extends AbstractController
|
|||||||
ElementBinding::Custom23 => $contact->getCustom23() ?? $element->getDefault1(),
|
ElementBinding::Custom23 => $contact->getCustom23() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom24 => $contact->getCustom24() ?? $element->getDefault1(),
|
ElementBinding::Custom24 => $contact->getCustom24() ?? $element->getDefault1(),
|
||||||
ElementBinding::LayouterMail => $contact->getLayouterData()->getEmail() ?? $element->getDefault1(),
|
ElementBinding::LayouterMail => $contact->getLayouterData()->getEmail() ?? $element->getDefault1(),
|
||||||
ElementBinding::LayouterCountryName => $contact->getLayouterData()->getCountryName() ?? $element->getDefault1(),
|
ElementBinding::LayouterCountryName => $contact
|
||||||
ElementBinding::LayouterCountryCode => $contact->getLayouterData()->getCountryCode() ?? $element->getDefault1(),
|
->getLayouterData()
|
||||||
|
->getCountryName() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::LayouterCountryCode => $contact
|
||||||
|
->getLayouterData()
|
||||||
|
->getCountryCode() ?? $element->getDefault1(),
|
||||||
ElementBinding::Birthday => $contact->getLayouterData()->getBirthday() ?? $element->getDefault1(),
|
ElementBinding::Birthday => $contact->getLayouterData()->getBirthday() ?? $element->getDefault1(),
|
||||||
ElementBinding::Homepages => $contact->getLayouterData()->getHomepage() ?? $element->getDefault1(),
|
ElementBinding::Homepages => $contact->getLayouterData()->getHomepage() ?? $element->getDefault1(),
|
||||||
ElementBinding::Salutation => $contact->getLayouterData()->getSalutation() ?? $element->getDefault1(),
|
ElementBinding::Salutation => $contact->getLayouterData()->getSalutation() ?? $element->getDefault1(),
|
||||||
@ -299,7 +343,7 @@ class Save extends AbstractController
|
|||||||
};
|
};
|
||||||
|
|
||||||
if ($elm = $data->getElement($element, $contact)) {
|
if ($elm = $data->getElement($element, $contact)) {
|
||||||
if ($element->getType() == ElementType::Image && $elm['value'] != "") {
|
if ($element->getType() == ElementType::Image && $elm['value'] != '') {
|
||||||
$media = $this->mediaManager->getModelByUuid($elm['value']);
|
$media = $this->mediaManager->getModelByUuid($elm['value']);
|
||||||
$elmMedia = $media->getVariant($element->getImage()->aspectRatio);
|
$elmMedia = $media->getVariant($element->getImage()->aspectRatio);
|
||||||
$formData[$element->getId()] = ['value' => $elmMedia, 'enable' => (bool) $elm['enable']];
|
$formData[$element->getId()] = ['value' => $elmMedia, 'enable' => (bool) $elm['enable']];
|
||||||
@ -307,29 +351,36 @@ class Save extends AbstractController
|
|||||||
$formData[$element->getId()] = ['value' => $elm['value'], 'enable' => (bool) $elm['enable']];
|
$formData[$element->getId()] = ['value' => $elm['value'], 'enable' => (bool) $elm['enable']];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$formData[$element->getId()] = ['value' => $value, 'enable' => $element->getOptional() ? $element->getOptionalDefault() : true];
|
$formData[$element->getId()] = [
|
||||||
|
'value' => $value,
|
||||||
|
'enable' => $element->getOptional() ? $element->getOptionalDefault() : true,
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
if ($setting->getBasketField1Format() != '') {
|
||||||
|
|
||||||
if ($setting->getBasketField1Format() != "") {
|
|
||||||
$twigBF1 = $this->twig->createTemplate($setting->getBasketField1Format());
|
$twigBF1 = $this->twig->createTemplate($setting->getBasketField1Format());
|
||||||
$basketField1 = $twigBF1->render(['form' => $formData]);
|
$basketField1 = $twigBF1->render(['form' => $formData]);
|
||||||
}
|
}
|
||||||
if ($setting->getBasketField2Format() != "") {
|
if ($setting->getBasketField2Format() != '') {
|
||||||
$twigBF2 = $this->twig->createTemplate($setting->getBasketField2Format());
|
$twigBF2 = $this->twig->createTemplate($setting->getBasketField2Format());
|
||||||
$basketField2 = $twigBF2->render(['form' => $formData]);
|
$basketField2 = $twigBF2->render(['form' => $formData]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$layoutDesignData = new Layoutdesigndata();
|
$layoutDesignData = new Layoutdesigndata();
|
||||||
$layoutDesignData->setUuid($data->getLayouterUuid());
|
$layoutDesignData->setUuid($data->getLayouterUuid());
|
||||||
$layoutDesignData->setArticleUuid($data->getProductUuid());
|
$layoutDesignData->setArticleUuid($data->getProductUuid());
|
||||||
$layoutDesignData->setDesign(['data' => $data->getData(), 'contactUuid' => $data->getContactUuid(), 'pdf' => $this->saveFilesHelper->getPdfFile(), 'previews' => $this->saveFilesHelper->getImages()]);
|
$layoutDesignData->setDesign([
|
||||||
|
'data' => $data->getData(),
|
||||||
|
'contactUuid' => $data->getContactUuid(),
|
||||||
|
'pdf' => $this->saveFilesHelper->getPdfFile(),
|
||||||
|
'previews' => $this->saveFilesHelper->getImages(),
|
||||||
|
]);
|
||||||
|
|
||||||
$this->entityManager->persist($layoutDesignData);
|
$this->entityManager->persist($layoutDesignData);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
$layouterSession = $this->entityManager->getRepository(LayouterSession::class)
|
$layouterSession = $this->entityManager
|
||||||
|
->getRepository(LayouterSession::class)
|
||||||
->findOneBy(['uuid' => $data->getLayouterUuid()]);
|
->findOneBy(['uuid' => $data->getLayouterUuid()]);
|
||||||
|
|
||||||
$layouterDesignDataDoc = new \PSC\Shop\EntityBundle\Document\LayouterSession();
|
$layouterDesignDataDoc = new \PSC\Shop\EntityBundle\Document\LayouterSession();
|
||||||
@ -346,5 +397,4 @@ class Save extends AbstractController
|
|||||||
|
|
||||||
return $this->json(['success' => true, 'basketField1' => $basketField1, 'basketField2' => $basketField2]);
|
return $this->json(['success' => true, 'basketField1' => $basketField1, 'basketField2' => $basketField2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,28 +22,37 @@ class Element extends AbstractType
|
|||||||
$builder = new DynamicFormBuilder($builder);
|
$builder = new DynamicFormBuilder($builder);
|
||||||
|
|
||||||
$builder->add('id', TextType::class, [
|
$builder->add('id', TextType::class, [
|
||||||
'label' => 'ID']);
|
'label' => 'ID',
|
||||||
|
]);
|
||||||
$builder->add('label', TextType::class, [
|
$builder->add('label', TextType::class, [
|
||||||
'label' => 'Label']);
|
'label' => 'Label',
|
||||||
|
]);
|
||||||
$builder->add('pos', NumberType::class, [
|
$builder->add('pos', NumberType::class, [
|
||||||
'label' => 'Position']);
|
'label' => 'Position',
|
||||||
|
]);
|
||||||
$builder->add('list', CheckboxType::class, [
|
$builder->add('list', CheckboxType::class, [
|
||||||
'label' => 'Liste']);
|
'label' => 'Liste',
|
||||||
|
]);
|
||||||
$builder->add('type', EnumType::class, [
|
$builder->add('type', EnumType::class, [
|
||||||
'label' => 'Typ',
|
'label' => 'Typ',
|
||||||
'empty_data' => ElementType::Text->value,
|
'empty_data' => ElementType::Text->value,
|
||||||
'class' => ElementType::class]);
|
'class' => ElementType::class,
|
||||||
|
]);
|
||||||
|
|
||||||
$this->buildBinding($builder);
|
$this->buildBinding($builder);
|
||||||
|
|
||||||
$builder->add('optional', CheckboxType::class, [
|
$builder->add('optional', CheckboxType::class, [
|
||||||
'label' => 'Optional']);
|
'label' => 'Optional',
|
||||||
|
]);
|
||||||
$builder->add('optionalDefault', CheckboxType::class, [
|
$builder->add('optionalDefault', CheckboxType::class, [
|
||||||
'label' => 'Optional Default']);
|
'label' => 'Optional Default',
|
||||||
|
]);
|
||||||
$builder->add('required', CheckboxType::class, [
|
$builder->add('required', CheckboxType::class, [
|
||||||
'label' => 'Required']);
|
'label' => 'Required',
|
||||||
|
]);
|
||||||
$builder->add('saveBack', CheckboxType::class, [
|
$builder->add('saveBack', CheckboxType::class, [
|
||||||
'label' => 'save back']);
|
'label' => 'save back',
|
||||||
|
]);
|
||||||
|
|
||||||
$this->buildDefault($builder);
|
$this->buildDefault($builder);
|
||||||
$this->buildPhone($builder);
|
$this->buildPhone($builder);
|
||||||
@ -54,143 +63,148 @@ class Element extends AbstractType
|
|||||||
|
|
||||||
public function buildBinding(FormBuilderInterface $builder): void
|
public function buildBinding(FormBuilderInterface $builder): void
|
||||||
{
|
{
|
||||||
|
$builder->addDependent('binding', ['type'], function (DependentField $field, null|ElementType $type) {
|
||||||
$builder->addDependent('binding', ['type'], function (DependentField $field, ?ElementType $type) {
|
|
||||||
|
|
||||||
if ($type == ElementType::Phone) {
|
if ($type == ElementType::Phone) {
|
||||||
$field->add(ChoiceType::class, [
|
$field->add(ChoiceType::class, [
|
||||||
'label' => 'Binding',
|
'label' => 'Binding',
|
||||||
'choices' => ElementBinding::getForTypePhone()]);
|
'choices' => ElementBinding::getForTypePhone(),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
if ($type == ElementType::Image) {
|
if ($type == ElementType::Image) {
|
||||||
$field->add(ChoiceType::class, [
|
$field->add(ChoiceType::class, [
|
||||||
'label' => 'Binding',
|
'label' => 'Binding',
|
||||||
'choices' => ElementBinding::getForTypeImage()]);
|
'choices' => ElementBinding::getForTypeImage(),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
if($type == ElementType::Text || $type === null) {
|
if ($type == ElementType::Hidden || $type == ElementType::Text || $type === null) {
|
||||||
$field->add(ChoiceType::class, [
|
$field->add(ChoiceType::class, [
|
||||||
'label' => 'Binding',
|
'label' => 'Binding',
|
||||||
'choices' => ElementBinding::getForTypeText()]);
|
'choices' => ElementBinding::getForTypeText(),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
if ($type == ElementType::ZipCity) {
|
if ($type == ElementType::ZipCity) {
|
||||||
$field->add(ChoiceType::class, [
|
$field->add(ChoiceType::class, [
|
||||||
'label' => 'Binding',
|
'label' => 'Binding',
|
||||||
'choices' => ElementBinding::getForTypeZipCity()]);
|
'choices' => ElementBinding::getForTypeZipCity(),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
if ($type == ElementType::StreetHouseNumber) {
|
if ($type == ElementType::StreetHouseNumber) {
|
||||||
$field->add(ChoiceType::class, [
|
$field->add(ChoiceType::class, [
|
||||||
'label' => 'Binding',
|
'label' => 'Binding',
|
||||||
'choices' => ElementBinding::getForTypeStreetHouseNumber()]);
|
'choices' => ElementBinding::getForTypeStreetHouseNumber(),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
if ($type == ElementType::eMail) {
|
if ($type == ElementType::eMail) {
|
||||||
$field->add(ChoiceType::class, [
|
$field->add(ChoiceType::class, [
|
||||||
'label' => 'Binding',
|
'label' => 'Binding',
|
||||||
'choices' => ElementBinding::getForTypeeMail()]);
|
'choices' => ElementBinding::getForTypeeMail(),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
if ($type == ElementType::eMailSplit) {
|
if ($type == ElementType::eMailSplit) {
|
||||||
$field->add(ChoiceType::class, [
|
$field->add(ChoiceType::class, [
|
||||||
'label' => 'Binding',
|
'label' => 'Binding',
|
||||||
'choices' => ElementBinding::getForTypeeMailSplit()]);
|
'choices' => ElementBinding::getForTypeeMailSplit(),
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
public function buildPhone(FormBuilderInterface $builder): void
|
|
||||||
{
|
|
||||||
|
|
||||||
$builder->addDependent('phone', ['type'], function (DependentField $field, ?ElementType $type) {
|
|
||||||
if($type == ElementType::Phone) {
|
|
||||||
$field->add(PhoneType::class, [
|
|
||||||
'label' => 'Phone'
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function buildPhone(FormBuilderInterface $builder): void
|
||||||
|
{
|
||||||
|
$builder->addDependent('phone', ['type'], function (DependentField $field, null|ElementType $type) {
|
||||||
|
if ($type == ElementType::Phone) {
|
||||||
|
$field->add(PhoneType::class, [
|
||||||
|
'label' => 'Phone',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public function buildImage(FormBuilderInterface $builder): void
|
public function buildImage(FormBuilderInterface $builder): void
|
||||||
{
|
{
|
||||||
|
$builder->addDependent('image', ['type'], function (DependentField $field, null|ElementType $type) {
|
||||||
$builder->addDependent('image', ['type'], function (DependentField $field, ?ElementType $type) {
|
|
||||||
if ($type == ElementType::Image) {
|
if ($type == ElementType::Image) {
|
||||||
$field->add(ImageType::class, [
|
$field->add(ImageType::class, [
|
||||||
'label' => 'Image'
|
'label' => 'Image',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function buildDefault(FormBuilderInterface $builder): void
|
public function buildDefault(FormBuilderInterface $builder): void
|
||||||
{
|
{
|
||||||
$builder->addDependent('default1', ['type'], function (DependentField $field, ?ElementType $type) {
|
$builder->addDependent('default1', ['type'], function (DependentField $field, null|ElementType $type) {
|
||||||
if ($type == ElementType::Text) {
|
if ($type == ElementType::Text) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => false
|
'label' => false,
|
||||||
]);
|
]);
|
||||||
} elseif ($type == ElementType::ZipCity) {
|
} elseif ($type == ElementType::ZipCity) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => 'Zip'
|
'label' => 'Zip',
|
||||||
]);
|
]);
|
||||||
} elseif ($type == ElementType::StreetHouseNumber) {
|
} elseif ($type == ElementType::StreetHouseNumber) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => 'Street'
|
'label' => 'Street',
|
||||||
]);
|
]);
|
||||||
} elseif ($type == ElementType::Phone) {
|
} elseif ($type == ElementType::Phone) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => 'AreaCode'
|
'label' => 'AreaCode',
|
||||||
]);
|
]);
|
||||||
} elseif ($type == ElementType::eMail) {
|
} elseif ($type == ElementType::eMail) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => 'Email'
|
'label' => 'Email',
|
||||||
|
]);
|
||||||
|
} elseif ($type == ElementType::Hidden) {
|
||||||
|
$field->add(TextType::class, [
|
||||||
|
'label' => false,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$builder->addDependent('default2', ['type'], function (DependentField $field, ?ElementType $type) {
|
$builder->addDependent('default2', ['type'], function (DependentField $field, null|ElementType $type) {
|
||||||
if ($type == ElementType::ZipCity) {
|
if ($type == ElementType::ZipCity) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => 'City'
|
'label' => 'City',
|
||||||
]);
|
]);
|
||||||
} elseif ($type == ElementType::StreetHouseNumber) {
|
} elseif ($type == ElementType::StreetHouseNumber) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => 'HouseNumber'
|
'label' => 'HouseNumber',
|
||||||
]);
|
]);
|
||||||
} elseif ($type == ElementType::Phone) {
|
} elseif ($type == ElementType::Phone) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => 'Prefix'
|
'label' => 'Prefix',
|
||||||
]);
|
]);
|
||||||
} elseif ($type == ElementType::eMailSplit) {
|
} elseif ($type == ElementType::eMailSplit) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => 'Name'
|
'label' => 'Name',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$builder->addDependent('default3', ['type'], function (DependentField $field, ?ElementType $type) {
|
$builder->addDependent('default3', ['type'], function (DependentField $field, null|ElementType $type) {
|
||||||
if ($type == ElementType::Phone) {
|
if ($type == ElementType::Phone) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => 'Number'
|
'label' => 'Number',
|
||||||
]);
|
]);
|
||||||
} elseif ($type == ElementType::eMailSplit) {
|
} elseif ($type == ElementType::eMailSplit) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => 'Domain'
|
'label' => 'Domain',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$builder->addDependent('default4', ['type'], function (DependentField $field, ?ElementType $type) {
|
$builder->addDependent('default4', ['type'], function (DependentField $field, null|ElementType $type) {
|
||||||
if ($type == ElementType::Phone) {
|
if ($type == ElementType::Phone) {
|
||||||
$field->add(TextType::class, [
|
$field->add(TextType::class, [
|
||||||
'label' => 'Appendix'
|
'label' => 'Appendix',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function configureOptions(OptionsResolver $resolver): void
|
public function configureOptions(OptionsResolver $resolver): void
|
||||||
{
|
{
|
||||||
$resolver->setDefaults(['data_class' => \Plugin\Custom\PSC\CollectLayouter\Model\Element::class, 'allow_extra_fields' => true]);
|
$resolver->setDefaults([
|
||||||
|
'data_class' => \Plugin\Custom\PSC\CollectLayouter\Model\Element::class,
|
||||||
|
'allow_extra_fields' => true,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
namespace Plugin\Custom\PSC\CollectLayouter\Helper;
|
namespace Plugin\Custom\PSC\CollectLayouter\Helper;
|
||||||
|
|
||||||
use PSC\Shop\MediaBundle\Model\Media;
|
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Dto\Save\Input;
|
use Plugin\Custom\PSC\CollectLayouter\Dto\Save\Input;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Model\Element;
|
use Plugin\Custom\PSC\CollectLayouter\Model\Element;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Model\ElementBinding;
|
use Plugin\Custom\PSC\CollectLayouter\Model\ElementBinding;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Model\ElementType;
|
use Plugin\Custom\PSC\CollectLayouter\Model\ElementType;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Model\Setting;
|
use Plugin\Custom\PSC\CollectLayouter\Model\Setting;
|
||||||
use PSC\Shop\ContactBundle\Model\Contact;
|
use PSC\Shop\ContactBundle\Model\Contact;
|
||||||
|
use PSC\Shop\MediaBundle\Model\Media;
|
||||||
|
|
||||||
class SaveContact
|
class SaveContact
|
||||||
{
|
{
|
||||||
@ -16,9 +16,9 @@ class SaveContact
|
|||||||
private Contact $contact;
|
private Contact $contact;
|
||||||
private Input|\Plugin\Custom\PSC\CollectLayouter\Dto\SaveContact\Input $data;
|
private Input|\Plugin\Custom\PSC\CollectLayouter\Dto\SaveContact\Input $data;
|
||||||
|
|
||||||
public function __construct(private \PSC\Shop\ContactBundle\Transformer\Model\Contact $contactTransformer)
|
public function __construct(
|
||||||
{
|
private \PSC\Shop\ContactBundle\Transformer\Model\Contact $contactTransformer,
|
||||||
}
|
) {}
|
||||||
|
|
||||||
public function setData(Input|\Plugin\Custom\PSC\CollectLayouter\Dto\SaveContact\Input $data): void
|
public function setData(Input|\Plugin\Custom\PSC\CollectLayouter\Dto\SaveContact\Input $data): void
|
||||||
{
|
{
|
||||||
@ -38,13 +38,24 @@ class SaveContact
|
|||||||
public function saveData()
|
public function saveData()
|
||||||
{
|
{
|
||||||
foreach ($this->setting->getCustomerForm() as $element) {
|
foreach ($this->setting->getCustomerForm() as $element) {
|
||||||
if ($element->getBinding() != ElementBinding::none && $element->getSaveBack() && $elm = $this->data->getElement($element, $this->contact)) {
|
if (
|
||||||
|
$element->getBinding() != ElementBinding::none &&
|
||||||
|
$element->getSaveBack() &&
|
||||||
|
($elm = $this->data->getElement($element, $this->contact))
|
||||||
|
) {
|
||||||
switch ($element->getBinding()) {
|
switch ($element->getBinding()) {
|
||||||
case ElementBinding::none:
|
case ElementBinding::none:
|
||||||
break;
|
break;
|
||||||
case ElementBinding::UsernameLogin:
|
case ElementBinding::UsernameLogin:
|
||||||
$this->contact->setEmail($elm['value']);
|
$this->contact->setEmail($elm['value']);
|
||||||
break;
|
break;
|
||||||
|
case ElementBinding::Account:
|
||||||
|
$account = $this->contact->getAccount();
|
||||||
|
$account->setUuid($elm['value']);
|
||||||
|
$account->setId($elm['value']);
|
||||||
|
$account->setUid($elm['value']);
|
||||||
|
$this->contact->setAccount($account);
|
||||||
|
break;
|
||||||
case ElementBinding::Company:
|
case ElementBinding::Company:
|
||||||
$this->contact->getLayouterData()->setCompany($elm['value']);
|
$this->contact->getLayouterData()->setCompany($elm['value']);
|
||||||
break;
|
break;
|
||||||
@ -78,22 +89,46 @@ class SaveContact
|
|||||||
$this->contact->setCountryCode($elm['value']);
|
$this->contact->setCountryCode($elm['value']);
|
||||||
break;
|
break;
|
||||||
case ElementBinding::Fon:
|
case ElementBinding::Fon:
|
||||||
$this->contact->getLayouterData()->setPhoneAreaCode((string)($elm['value']['areacode'] ?? $element->getDefault1()));
|
$this->contact
|
||||||
$this->contact->getLayouterData()->setPhonePrefix((string)($elm['value']['prefix'] ?? $element->getDefault2()));
|
->getLayouterData()
|
||||||
$this->contact->getLayouterData()->setPhone((string)($elm['value']['number'] ?? $element->getDefault3()));
|
->setPhoneAreaCode((string) ($elm['value']['areacode'] ?? $element->getDefault1()));
|
||||||
$this->contact->getLayouterData()->setPhoneAppendix((string)($elm['value']['appendix'] ?? $element->getDefault4()));
|
$this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->setPhonePrefix((string) ($elm['value']['prefix'] ?? $element->getDefault2()));
|
||||||
|
$this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->setPhone((string) ($elm['value']['number'] ?? $element->getDefault3()));
|
||||||
|
$this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->setPhoneAppendix((string) ($elm['value']['appendix'] ?? $element->getDefault4()));
|
||||||
break;
|
break;
|
||||||
case ElementBinding::Mobile:
|
case ElementBinding::Mobile:
|
||||||
$this->contact->getLayouterData()->setMobileAreaCode((string)($elm['value']['areacode'] ?? $element->getDefault1()));
|
$this->contact
|
||||||
$this->contact->getLayouterData()->setMobilePrefix((string)($elm['value']['prefix'] ?? $element->getDefault2()));
|
->getLayouterData()
|
||||||
$this->contact->getLayouterData()->setMobile((string)($elm['value']['number'] ?? $element->getDefault3()));
|
->setMobileAreaCode((string) ($elm['value']['areacode'] ?? $element->getDefault1()));
|
||||||
$this->contact->getLayouterData()->setMobileAppendix((string)($elm['value']['appendix'] ?? $element->getDefault4()));
|
$this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->setMobilePrefix((string) ($elm['value']['prefix'] ?? $element->getDefault2()));
|
||||||
|
$this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->setMobile((string) ($elm['value']['number'] ?? $element->getDefault3()));
|
||||||
|
$this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->setMobileAppendix((string) ($elm['value']['appendix'] ?? $element->getDefault4()));
|
||||||
break;
|
break;
|
||||||
case ElementBinding::Fax:
|
case ElementBinding::Fax:
|
||||||
$this->contact->getLayouterData()->setFaxAreaCode((string)($elm['value']['areacode'] ?? $element->getDefault1()));
|
$this->contact
|
||||||
$this->contact->getLayouterData()->setFaxPrefix((string)($elm['value']['prefix'] ?? $element->getDefault2()));
|
->getLayouterData()
|
||||||
$this->contact->getLayouterData()->setFax((string)($elm['value']['number'] ?? $element->getDefault3()));
|
->setFaxAreaCode((string) ($elm['value']['areacode'] ?? $element->getDefault1()));
|
||||||
$this->contact->getLayouterData()->setFaxAppendix((string)($elm['value']['appendix'] ?? $element->getDefault4()));
|
$this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->setFaxPrefix((string) ($elm['value']['prefix'] ?? $element->getDefault2()));
|
||||||
|
$this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->setFax((string) ($elm['value']['number'] ?? $element->getDefault3()));
|
||||||
|
$this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->setFaxAppendix((string) ($elm['value']['appendix'] ?? $element->getDefault4()));
|
||||||
break;
|
break;
|
||||||
case ElementBinding::Abteilung:
|
case ElementBinding::Abteilung:
|
||||||
$this->contact->getLayouterData()->setAbteilung($elm['value']);
|
$this->contact->getLayouterData()->setAbteilung($elm['value']);
|
||||||
@ -217,6 +252,4 @@ class SaveContact
|
|||||||
$this->contact->getLayouterData()->addSettingForLayouter('collectlayouter', $this->data->getData());
|
$this->contact->getLayouterData()->addSettingForLayouter('collectlayouter', $this->data->getData());
|
||||||
$this->contactTransformer->toDb($this->contact);
|
$this->contactTransformer->toDb($this->contact);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace Plugin\Custom\PSC\CollectLayouter\Helper;
|
namespace Plugin\Custom\PSC\CollectLayouter\Helper;
|
||||||
|
|
||||||
use PSC\Shop\MediaBundle\Service\MediaManager;
|
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Dto\Save\Input;
|
use Plugin\Custom\PSC\CollectLayouter\Dto\Save\Input;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Helper\MPDF;
|
use Plugin\Custom\PSC\CollectLayouter\Helper\MPDF;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Model\Element;
|
use Plugin\Custom\PSC\CollectLayouter\Model\Element;
|
||||||
@ -10,6 +9,7 @@ use Plugin\Custom\PSC\CollectLayouter\Model\ElementBinding;
|
|||||||
use Plugin\Custom\PSC\CollectLayouter\Model\ElementType;
|
use Plugin\Custom\PSC\CollectLayouter\Model\ElementType;
|
||||||
use Plugin\Custom\PSC\CollectLayouter\Model\Setting;
|
use Plugin\Custom\PSC\CollectLayouter\Model\Setting;
|
||||||
use PSC\Shop\ContactBundle\Model\Contact;
|
use PSC\Shop\ContactBundle\Model\Contact;
|
||||||
|
use PSC\Shop\MediaBundle\Service\MediaManager;
|
||||||
|
|
||||||
class SaveFiles
|
class SaveFiles
|
||||||
{
|
{
|
||||||
@ -17,12 +17,13 @@ class SaveFiles
|
|||||||
private Contact $contact;
|
private Contact $contact;
|
||||||
private Input $data;
|
private Input $data;
|
||||||
private bool $isRendered = false;
|
private bool $isRendered = false;
|
||||||
private string $pdfFile = "";
|
private string $pdfFile = '';
|
||||||
private array $images = [];
|
private array $images = [];
|
||||||
|
|
||||||
public function __construct(readonly private MPDF $mpdf, readonly private MediaManager $mediaManager)
|
public function __construct(
|
||||||
{
|
private readonly MPDF $mpdf,
|
||||||
}
|
private readonly MediaManager $mediaManager,
|
||||||
|
) {}
|
||||||
|
|
||||||
public function setData(Input $data): void
|
public function setData(Input $data): void
|
||||||
{
|
{
|
||||||
@ -47,15 +48,24 @@ class SaveFiles
|
|||||||
foreach ($this->setting->getCustomerForm() as $element) {
|
foreach ($this->setting->getCustomerForm() as $element) {
|
||||||
$value = match ($element->getBinding()) {
|
$value = match ($element->getBinding()) {
|
||||||
ElementBinding::none => $element->getDefaultForTypePreview(),
|
ElementBinding::none => $element->getDefaultForTypePreview(),
|
||||||
ElementBinding::StreetHouseNumber => ['street' => $this->contact->getLayouterData()->getStreet() ?? $element->getDefault1(), 'houseNumber' => $this->contact->getLayouterData()->getHouseNumber() ?? $element->getDefault2()],
|
ElementBinding::StreetHouseNumber => [
|
||||||
ElementBinding::ZipCity => ['zip' => $this->contact->getLayouterData()->getZip() ?? $element->getDefault1(), 'city' => $this->contact->getLayouterData()->getCity() ?? $element->getDefault2()],
|
'street' => $this->contact->getLayouterData()->getStreet() ?? $element->getDefault1(),
|
||||||
ElementBinding::Firstname => $this->contact->getLayouterData()->getFirstname() ?? $element->getDefault1(),
|
'houseNumber' => $this->contact->getLayouterData()->getHouseNumber() ?? $element->getDefault2(),
|
||||||
|
],
|
||||||
|
ElementBinding::ZipCity => [
|
||||||
|
'zip' => $this->contact->getLayouterData()->getZip() ?? $element->getDefault1(),
|
||||||
|
'city' => $this->contact->getLayouterData()->getCity() ?? $element->getDefault2(),
|
||||||
|
],
|
||||||
|
ElementBinding::Firstname => $this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->getFirstname() ?? $element->getDefault1(),
|
||||||
ElementBinding::Lastname => $this->contact->getLayouterData()->getLastname() ?? $element->getDefault1(),
|
ElementBinding::Lastname => $this->contact->getLayouterData()->getLastname() ?? $element->getDefault1(),
|
||||||
ElementBinding::Mobile => [
|
ElementBinding::Mobile => [
|
||||||
'areacode' => $this->contact->getLayouterData()->getMobileAreaCode() ?? $element->getDefault1(),
|
'areacode' => $this->contact->getLayouterData()->getMobileAreaCode() ?? $element->getDefault1(),
|
||||||
'appendix' => $this->contact->getLayouterData()->getMobileAppendix() ?? $element->getDefault4(),
|
'appendix' => $this->contact->getLayouterData()->getMobileAppendix() ?? $element->getDefault4(),
|
||||||
'number' => $this->contact->getLayouterData()->getMobileAreaCode() ?? $element->getDefault3(),
|
'number' => $this->contact->getLayouterData()->getMobileAreaCode() ?? $element->getDefault3(),
|
||||||
'prefix' => $this->contact->getLayouterData()->getMobilePrefix() ?? $element->getDefault2()],
|
'prefix' => $this->contact->getLayouterData()->getMobilePrefix() ?? $element->getDefault2(),
|
||||||
|
],
|
||||||
ElementBinding::UsernameLogin => $this->contact->getEmail() ?? $element->getDefault1(),
|
ElementBinding::UsernameLogin => $this->contact->getEmail() ?? $element->getDefault1(),
|
||||||
ElementBinding::Company => $this->contact->getLayouterData()->getCompany() ?? $element->getDefault1(),
|
ElementBinding::Company => $this->contact->getLayouterData()->getCompany() ?? $element->getDefault1(),
|
||||||
ElementBinding::Company2 => $this->contact->getLayouterData()->getCompany2() ?? $element->getDefault1(),
|
ElementBinding::Company2 => $this->contact->getLayouterData()->getCompany2() ?? $element->getDefault1(),
|
||||||
@ -67,13 +77,17 @@ class SaveFiles
|
|||||||
'areacode' => $this->contact->getLayouterData()->getPhoneAreaCode() ?? $element->getDefault1(),
|
'areacode' => $this->contact->getLayouterData()->getPhoneAreaCode() ?? $element->getDefault1(),
|
||||||
'appendix' => $this->contact->getLayouterData()->getPhoneAppendix() ?? $element->getDefault4(),
|
'appendix' => $this->contact->getLayouterData()->getPhoneAppendix() ?? $element->getDefault4(),
|
||||||
'number' => $this->contact->getLayouterData()->getPhone() ?? $element->getDefault3(),
|
'number' => $this->contact->getLayouterData()->getPhone() ?? $element->getDefault3(),
|
||||||
'prefix' => $this->contact->getLayouterData()->getPhonePrefix() ?? $element->getDefault2()],
|
'prefix' => $this->contact->getLayouterData()->getPhonePrefix() ?? $element->getDefault2(),
|
||||||
|
],
|
||||||
ElementBinding::Fax => [
|
ElementBinding::Fax => [
|
||||||
'areacode' => $this->contact->getLayouterData()->getFaxAreaCode() ?? $element->getDefault1(),
|
'areacode' => $this->contact->getLayouterData()->getFaxAreaCode() ?? $element->getDefault1(),
|
||||||
'appendix' => $this->contact->getLayouterData()->getFaxAppendix() ?? $element->getDefault4(),
|
'appendix' => $this->contact->getLayouterData()->getFaxAppendix() ?? $element->getDefault4(),
|
||||||
'number' => $this->contact->getLayouterData()->getFax() ?? $element->getDefault3(),
|
'number' => $this->contact->getLayouterData()->getFax() ?? $element->getDefault3(),
|
||||||
'prefix' => $this->contact->getLayouterData()->getFaxPrefix() ?? $element->getDefault2()],
|
'prefix' => $this->contact->getLayouterData()->getFaxPrefix() ?? $element->getDefault2(),
|
||||||
ElementBinding::Abteilung => $this->contact->getLayouterData()->getAbteilung() ?? $element->getDefault1(),
|
],
|
||||||
|
ElementBinding::Abteilung => $this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->getAbteilung() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom1 => $this->contact->getCustom1() ?? $element->getDefault1(),
|
ElementBinding::Custom1 => $this->contact->getCustom1() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom2 => $this->contact->getCustom2() ?? $element->getDefault1(),
|
ElementBinding::Custom2 => $this->contact->getCustom2() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom3 => $this->contact->getCustom3() ?? $element->getDefault1(),
|
ElementBinding::Custom3 => $this->contact->getCustom3() ?? $element->getDefault1(),
|
||||||
@ -98,22 +112,33 @@ class SaveFiles
|
|||||||
ElementBinding::Custom22 => $this->contact->getCustom22() ?? $element->getDefault1(),
|
ElementBinding::Custom22 => $this->contact->getCustom22() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom23 => $this->contact->getCustom23() ?? $element->getDefault1(),
|
ElementBinding::Custom23 => $this->contact->getCustom23() ?? $element->getDefault1(),
|
||||||
ElementBinding::Custom24 => $this->contact->getCustom24() ?? $element->getDefault1(),
|
ElementBinding::Custom24 => $this->contact->getCustom24() ?? $element->getDefault1(),
|
||||||
ElementBinding::LayouterMail => $this->contact->getLayouterData()->getEmail() ?? $element->getDefault1(),
|
ElementBinding::LayouterMail => $this->contact
|
||||||
ElementBinding::LayouterCountryName => $this->contact->getLayouterData()->getCountryName() ?? $element->getDefault1(),
|
->getLayouterData()
|
||||||
ElementBinding::LayouterCountryCode => $this->contact->getLayouterData()->getCountryCode() ?? $element->getDefault1(),
|
->getEmail() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::LayouterCountryName => $this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->getCountryName() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::LayouterCountryCode => $this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->getCountryCode() ?? $element->getDefault1(),
|
||||||
ElementBinding::Birthday => $this->contact->getLayouterData()->getBirthday() ?? $element->getDefault1(),
|
ElementBinding::Birthday => $this->contact->getLayouterData()->getBirthday() ?? $element->getDefault1(),
|
||||||
ElementBinding::Homepages => $this->contact->getLayouterData()->getHomepage() ?? $element->getDefault1(),
|
ElementBinding::Homepages => $this->contact
|
||||||
ElementBinding::Salutation => $this->contact->getLayouterData()->getSalutation() ?? $element->getDefault1(),
|
->getLayouterData()
|
||||||
|
->getHomepage() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Salutation => $this->contact
|
||||||
|
->getLayouterData()
|
||||||
|
->getSalutation() ?? $element->getDefault1(),
|
||||||
ElementBinding::UstId => $this->contact->getLayouterData()->getUstid() ?? $element->getDefault1(),
|
ElementBinding::UstId => $this->contact->getLayouterData()->getUstid() ?? $element->getDefault1(),
|
||||||
ElementBinding::KSt => $this->contact->getLayouterData()->getKst() ?? $element->getDefault1(),
|
ElementBinding::KSt => $this->contact->getLayouterData()->getKst() ?? $element->getDefault1(),
|
||||||
ElementBinding::State => $this->contact->getLayouterData()->getState() ?? $element->getDefault1(),
|
ElementBinding::State => $this->contact->getLayouterData()->getState() ?? $element->getDefault1(),
|
||||||
ElementBinding::District => $this->contact->getLayouterData()->getDistrict() ?? $element->getDefault1(),
|
ElementBinding::District => $this->contact->getLayouterData()->getDistrict() ?? $element->getDefault1(),
|
||||||
ElementBinding::Image1 => $this->contact->getLayouterData()->getImage1() ?? $element->getDefault1(),
|
ElementBinding::Image1 => $this->contact->getLayouterData()->getImage1() ?? $element->getDefault1(),
|
||||||
ElementBinding::Image2 => $this->contact->getLayouterData()->getImage2() ?? $element->getDefault1(),
|
ElementBinding::Image2 => $this->contact->getLayouterData()->getImage2() ?? $element->getDefault1(),
|
||||||
|
ElementBinding::Account => $this->contact->getAccount()->getUuid() ?? $element->getDefault1(),
|
||||||
};
|
};
|
||||||
|
|
||||||
if ($elm = $this->data->getElement($element, $this->contact)) {
|
if ($elm = $this->data->getElement($element, $this->contact)) {
|
||||||
if ($element->getType() == ElementType::Image && $elm['value'] != "") {
|
if ($element->getType() == ElementType::Image && $elm['value'] != '') {
|
||||||
$media = $this->mediaManager->getModelByUuid($elm['value']);
|
$media = $this->mediaManager->getModelByUuid($elm['value']);
|
||||||
$elmMedia = $media->getVariant($element->getImage()->aspectRatio);
|
$elmMedia = $media->getVariant($element->getImage()->aspectRatio);
|
||||||
$formData[$element->getId()] = ['value' => $elmMedia, 'enable' => (bool) $elm['enable']];
|
$formData[$element->getId()] = ['value' => $elmMedia, 'enable' => (bool) $elm['enable']];
|
||||||
@ -121,7 +146,10 @@ class SaveFiles
|
|||||||
$formData[$element->getId()] = ['value' => $elm['value'], 'enable' => $elm['enable']];
|
$formData[$element->getId()] = ['value' => $elm['value'], 'enable' => $elm['enable']];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$formData[$element->getId()] = ['value' => $value, 'enable' => $element->getOptional() ? $element->getOptionalDefault() : true];
|
$formData[$element->getId()] = [
|
||||||
|
'value' => $value,
|
||||||
|
'enable' => $element->getOptional() ? $element->getOptionalDefault() : true,
|
||||||
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,13 +169,26 @@ class SaveFiles
|
|||||||
{
|
{
|
||||||
$contactUUId = $this->contact->getUuid();
|
$contactUUId = $this->contact->getUuid();
|
||||||
|
|
||||||
if ($contactUUId == "") {
|
if ($contactUUId == '') {
|
||||||
$contactUUId = 'guest';
|
$contactUUId = 'guest';
|
||||||
}
|
}
|
||||||
if (!file_exists('/data/www/old/market/collectlayouter/temp/' . $contactUUId . '/' . $this->data->getLayouterUuid())) {
|
if (
|
||||||
mkdir('/data/www/old/market/collectlayouter/temp/' . $contactUUId . '/' . $this->data->getLayouterUuid(), 0777, true);
|
!file_exists('/data/www/old/market/collectlayouter/temp/' .
|
||||||
|
$contactUUId .
|
||||||
|
'/' .
|
||||||
|
$this->data->getLayouterUuid())
|
||||||
|
) {
|
||||||
|
mkdir(
|
||||||
|
'/data/www/old/market/collectlayouter/temp/' . $contactUUId . '/' . $this->data->getLayouterUuid(),
|
||||||
|
0o777,
|
||||||
|
true,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
$this->pdfFile = sprintf('/data/www/old/market/collectlayouter/temp/%s/%s/print.pdf', $contactUUId, $this->data->getLayouterUuid());
|
$this->pdfFile = sprintf(
|
||||||
|
'/data/www/old/market/collectlayouter/temp/%s/%s/print.pdf',
|
||||||
|
$contactUUId,
|
||||||
|
$this->data->getLayouterUuid(),
|
||||||
|
);
|
||||||
|
|
||||||
$this->rendering(true);
|
$this->rendering(true);
|
||||||
|
|
||||||
@ -159,7 +200,12 @@ class SaveFiles
|
|||||||
|
|
||||||
$i = 1;
|
$i = 1;
|
||||||
foreach ($this->mpdf->getPreviewFiles() as $f) {
|
foreach ($this->mpdf->getPreviewFiles() as $f) {
|
||||||
$filename = sprintf('/data/www/old/market/collectlayouter/temp/%s/%s/%s.jpeg', $contactUUId, $this->data->getLayouterUuid(), $i);
|
$filename = sprintf(
|
||||||
|
'/data/www/old/market/collectlayouter/temp/%s/%s/%s.jpeg',
|
||||||
|
$contactUUId,
|
||||||
|
$this->data->getLayouterUuid(),
|
||||||
|
$i,
|
||||||
|
);
|
||||||
copy($f, $filename);
|
copy($f, $filename);
|
||||||
$this->images[] = $filename;
|
$this->images[] = $filename;
|
||||||
$i++;
|
$i++;
|
||||||
@ -177,6 +223,4 @@ class SaveFiles
|
|||||||
{
|
{
|
||||||
return $this->pdfFile;
|
return $this->pdfFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -60,7 +60,7 @@ enum ElementBinding: int
|
|||||||
case District = 49;
|
case District = 49;
|
||||||
case Image1 = 50;
|
case Image1 = 50;
|
||||||
case Image2 = 51;
|
case Image2 = 51;
|
||||||
|
case Account = 52;
|
||||||
|
|
||||||
public static function getForTypePhone(): array
|
public static function getForTypePhone(): array
|
||||||
{
|
{
|
||||||
@ -80,6 +80,7 @@ enum ElementBinding: int
|
|||||||
|
|
||||||
return $tmp;
|
return $tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getForTypeText(): array
|
public static function getForTypeText(): array
|
||||||
{
|
{
|
||||||
$tmp = [
|
$tmp = [
|
||||||
@ -101,6 +102,7 @@ enum ElementBinding: int
|
|||||||
self::KSt->name => self::KSt,
|
self::KSt->name => self::KSt,
|
||||||
self::State->name => self::State,
|
self::State->name => self::State,
|
||||||
self::District->name => self::District,
|
self::District->name => self::District,
|
||||||
|
self::Account->name => self::Account,
|
||||||
];
|
];
|
||||||
|
|
||||||
for ($i = 16; $i <= 39; $i++) {
|
for ($i = 16; $i <= 39; $i++) {
|
||||||
@ -144,20 +146,20 @@ enum ElementBinding: int
|
|||||||
public function getSortField(): string
|
public function getSortField(): string
|
||||||
{
|
{
|
||||||
return match ($this) {
|
return match ($this) {
|
||||||
self::none => "",
|
self::none => '',
|
||||||
self::UsernameLogin => 'username',
|
self::UsernameLogin => 'username',
|
||||||
self::UsernameLogin => 'username',
|
self::UsernameLogin => 'username',
|
||||||
self::Company => 'company',
|
self::Company => 'company',
|
||||||
self::Firstname => 'firstname',
|
self::Firstname => 'firstname',
|
||||||
self::Lastname => 'lastname',
|
self::Lastname => 'lastname',
|
||||||
default => ''
|
default => '',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getField(Contact $contact): string
|
public function getField(Contact $contact): string
|
||||||
{
|
{
|
||||||
return match ($this) {
|
return match ($this) {
|
||||||
self::none => "",
|
self::none => '',
|
||||||
self::UsernameLogin => $contact->getUsername(),
|
self::UsernameLogin => $contact->getUsername(),
|
||||||
self::Company => $contact->getLayouterData()->getCompany(),
|
self::Company => $contact->getLayouterData()->getCompany(),
|
||||||
self::Company2 => $contact->getLayouterData()->getCompany2(),
|
self::Company2 => $contact->getLayouterData()->getCompany2(),
|
||||||
@ -166,12 +168,38 @@ enum ElementBinding: int
|
|||||||
self::Title => $contact->getLayouterData()->getTitle(),
|
self::Title => $contact->getLayouterData()->getTitle(),
|
||||||
self::Position => $contact->getLayouterData()->getPosition(),
|
self::Position => $contact->getLayouterData()->getPosition(),
|
||||||
self::Function => $contact->getLayouterData()->getFunction(),
|
self::Function => $contact->getLayouterData()->getFunction(),
|
||||||
self::StreetHouseNumber => sprintf("%s %s", $contact->getLayouterData()->getStreet(), $contact->getLayouterData()->getHouseNumber()),
|
self::StreetHouseNumber => sprintf(
|
||||||
self::ZipCity => sprintf("%s %s", $contact->getLayouterData()->getZip(), $contact->getLayouterData()->getCity()),
|
'%s %s',
|
||||||
|
$contact->getLayouterData()->getStreet(),
|
||||||
|
$contact->getLayouterData()->getHouseNumber(),
|
||||||
|
),
|
||||||
|
self::ZipCity => sprintf(
|
||||||
|
'%s %s',
|
||||||
|
$contact->getLayouterData()->getZip(),
|
||||||
|
$contact->getLayouterData()->getCity(),
|
||||||
|
),
|
||||||
self::UserCountry => $contact->getCountryCode(),
|
self::UserCountry => $contact->getCountryCode(),
|
||||||
self::Fon => sprintf("%s %s %s %s", $contact->getLayouterData()->getPhoneAreaCode(), $contact->getLayouterData()->getPhonePrefix(), $contact->getLayouterData()->getPhone(), $contact->getLayouterData()->getPhoneAppendix()),
|
self::Fon => sprintf(
|
||||||
self::Mobile => sprintf("%s %s %s %s", $contact->getLayouterData()->getMobileAreaCode(), $contact->getLayouterData()->getMobilePrefix(), $contact->getLayouterData()->getMobile(), $contact->getLayouterData()->getMobileAppendix()),
|
'%s %s %s %s',
|
||||||
self::Fax => sprintf("%s %s %s %s", $contact->getLayouterData()->getFaxAreaCode(), $contact->getLayouterData()->getFaxPrefix(), $contact->getLayouterData()->getFax(), $contact->getLayouterData()->getFaxAppendix()),
|
$contact->getLayouterData()->getPhoneAreaCode(),
|
||||||
|
$contact->getLayouterData()->getPhonePrefix(),
|
||||||
|
$contact->getLayouterData()->getPhone(),
|
||||||
|
$contact->getLayouterData()->getPhoneAppendix(),
|
||||||
|
),
|
||||||
|
self::Mobile => sprintf(
|
||||||
|
'%s %s %s %s',
|
||||||
|
$contact->getLayouterData()->getMobileAreaCode(),
|
||||||
|
$contact->getLayouterData()->getMobilePrefix(),
|
||||||
|
$contact->getLayouterData()->getMobile(),
|
||||||
|
$contact->getLayouterData()->getMobileAppendix(),
|
||||||
|
),
|
||||||
|
self::Fax => sprintf(
|
||||||
|
'%s %s %s %s',
|
||||||
|
$contact->getLayouterData()->getFaxAreaCode(),
|
||||||
|
$contact->getLayouterData()->getFaxPrefix(),
|
||||||
|
$contact->getLayouterData()->getFax(),
|
||||||
|
$contact->getLayouterData()->getFaxAppendix(),
|
||||||
|
),
|
||||||
self::Abteilung => $contact->getLayouterData()->getAbteilung(),
|
self::Abteilung => $contact->getLayouterData()->getAbteilung(),
|
||||||
self::Custom1 => $contact->getCustom1(),
|
self::Custom1 => $contact->getCustom1(),
|
||||||
self::Custom2 => $contact->getCustom2(),
|
self::Custom2 => $contact->getCustom2(),
|
||||||
@ -207,13 +235,17 @@ enum ElementBinding: int
|
|||||||
self::KSt => $contact->getLayouterData()->getKst(),
|
self::KSt => $contact->getLayouterData()->getKst(),
|
||||||
self::State => $contact->getLayouterData()->getState(),
|
self::State => $contact->getLayouterData()->getState(),
|
||||||
self::District => $contact->getLayouterData()->getDistrict(),
|
self::District => $contact->getLayouterData()->getDistrict(),
|
||||||
|
self::Account => $contact->getAccount()->getUuid(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public function trans(TranslatorInterface $translator, string $locale = null): string
|
public function trans(TranslatorInterface $translator, null|string $locale = null): string
|
||||||
{
|
{
|
||||||
return $this->name;
|
return $this->name;
|
||||||
return $translator->trans('elementBinding.' . $this->name, locale: $locale, domain: 'PluginCustomPSCCollectLayouter');
|
return $translator->trans(
|
||||||
|
'elementBinding.' . $this->name,
|
||||||
|
locale: $locale,
|
||||||
|
domain: 'PluginCustomPSCCollectLayouter',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,8 @@ namespace Plugin\Custom\PSC\CollectLayouter\Model;
|
|||||||
use Symfony\Contracts\Translation\TranslatableInterface;
|
use Symfony\Contracts\Translation\TranslatableInterface;
|
||||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
|
|
||||||
enum ElementType: int {
|
enum ElementType: int
|
||||||
|
{
|
||||||
case eMail = 1;
|
case eMail = 1;
|
||||||
case Text = 2;
|
case Text = 2;
|
||||||
case Phone = 3;
|
case Phone = 3;
|
||||||
@ -13,9 +14,15 @@ enum ElementType: int {
|
|||||||
case StreetHouseNumber = 5;
|
case StreetHouseNumber = 5;
|
||||||
case ZipCity = 6;
|
case ZipCity = 6;
|
||||||
case eMailSplit = 7;
|
case eMailSplit = 7;
|
||||||
|
case Hidden = 8;
|
||||||
|
|
||||||
public function trans(TranslatorInterface $translator, string $locale = null): string
|
public function trans(TranslatorInterface $translator, null|string $locale = null): string
|
||||||
{
|
{
|
||||||
return $translator->trans('elementtype.' . $this->name, locale: $locale, domain: 'PluginCustomPSCCollectLayouter');
|
return $translator->trans(
|
||||||
|
'elementtype.' . $this->name,
|
||||||
|
locale: $locale,
|
||||||
|
domain: 'PluginCustomPSCCollectLayouter',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -609,7 +609,6 @@
|
|||||||
class: 'form-control form-control-sm upload',
|
class: 'form-control form-control-sm upload',
|
||||||
required: element.required,
|
required: element.required,
|
||||||
}).data('folder', element.mediaFolder).data('element', element.id).attr('data-element', element.id);
|
}).data('folder', element.mediaFolder).data('element', element.id).attr('data-element', element.id);
|
||||||
;
|
|
||||||
|
|
||||||
var $uploadButton = $('<button>', {
|
var $uploadButton = $('<button>', {
|
||||||
class: 'btn btn-sm btn-outline-primary upload',
|
class: 'btn btn-sm btn-outline-primary upload',
|
||||||
@ -694,6 +693,17 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(element.type == 8) {
|
||||||
|
var $obj = $('<input>', {
|
||||||
|
type: 'hidden',
|
||||||
|
class: 'form-control form-control-sm',
|
||||||
|
value: element.default1,
|
||||||
|
id: element.id,
|
||||||
|
name: 'data[' + element.id + '][value]'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(element.optional) {
|
if(element.optional) {
|
||||||
var $col = $('<div class="col-10"></div>');
|
var $col = $('<div class="col-10"></div>');
|
||||||
if(element.type == 4) {
|
if(element.type == 4) {
|
||||||
|
|||||||
@ -560,6 +560,19 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(element.type == 8) {
|
||||||
|
var $obj = $('<div/>', { class: 'flex flex-row'});
|
||||||
|
var $elm = $('<input>', {
|
||||||
|
type: 'hidden',
|
||||||
|
class: 'bg-gray-100 p-1 border w-full',
|
||||||
|
value: element.default1,
|
||||||
|
id: element.id,
|
||||||
|
name: 'data[' + element.id + '][value]'
|
||||||
|
});
|
||||||
|
|
||||||
|
$obj.append($elm);
|
||||||
|
}
|
||||||
|
|
||||||
var $col = $('<div class="md:basis-2/3"></div>');
|
var $col = $('<div class="md:basis-2/3"></div>');
|
||||||
if(element.type == 4) {
|
if(element.type == 4) {
|
||||||
var $group = $('<div class=""></div>');
|
var $group = $('<div class=""></div>');
|
||||||
|
|||||||
@ -1,15 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
|
||||||
* PrintshopCreator Suite
|
namespace Plugin\Custom\PSC\CreativeLayouter\Controller\Backend;
|
||||||
*
|
|
||||||
* PHP Version 5.3
|
|
||||||
*
|
|
||||||
* @author Thomas Peterson <info@thomas-peterson.de>
|
|
||||||
* @copyright 2012-2013 PrintshopCreator GmbH
|
|
||||||
* @license Private
|
|
||||||
* @link http://www.printshopcreator.de
|
|
||||||
*/
|
|
||||||
namespace Plugin\System\PSC\CreativeLayouter\Controller\Backend;
|
|
||||||
|
|
||||||
use Doctrine\ODM\MongoDB\DocumentManager;
|
use Doctrine\ODM\MongoDB\DocumentManager;
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
@ -18,18 +9,17 @@ use PSC\Shop\EntityBundle\Document\Shop;
|
|||||||
use PSC\Shop\EntityBundle\Entity\Account;
|
use PSC\Shop\EntityBundle\Entity\Account;
|
||||||
use PSC\Shop\EntityBundle\Entity\Product;
|
use PSC\Shop\EntityBundle\Entity\Product;
|
||||||
use PSC\Shop\EntityBundle\Entity\Stockbooking;
|
use PSC\Shop\EntityBundle\Entity\Stockbooking;
|
||||||
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
||||||
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\File\UploadedFile;
|
use Symfony\Component\HttpFoundation\File\UploadedFile;
|
||||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
use Symfony\Component\Security\Core\SecurityContext;
|
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
|
|
||||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
|
use Symfony\Component\Security\Core\SecurityContext;
|
||||||
|
|
||||||
class XmlController extends AbstractController
|
class XmlController extends AbstractController
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* creative
|
* creative
|
||||||
*
|
*
|
||||||
@ -44,25 +34,33 @@ class XmlController extends AbstractController
|
|||||||
* @throws \Doctrine\ORM\ORMException
|
* @throws \Doctrine\ORM\ORMException
|
||||||
*/
|
*/
|
||||||
#[Route(path: '/xml/edit/{uuid}', name: 'psc_plugin_creativelayouter_backend_xml_edit')]
|
#[Route(path: '/xml/edit/{uuid}', name: 'psc_plugin_creativelayouter_backend_xml_edit')]
|
||||||
public function editAction(Request $request, \PSC\System\SettingsBundle\Service\Shop $shopService, EntityManagerInterface $entityManager, DocumentManager $documentManager, $uuid)
|
public function editAction(
|
||||||
{
|
Request $request,
|
||||||
|
\PSC\System\SettingsBundle\Service\Shop $shopService,
|
||||||
|
EntityManagerInterface $entityManager,
|
||||||
|
DocumentManager $documentManager,
|
||||||
|
$uuid,
|
||||||
|
) {
|
||||||
$selectedShop = $shopService->getSelectedShop();
|
$selectedShop = $shopService->getSelectedShop();
|
||||||
|
|
||||||
|
|
||||||
$product = $entityManager
|
$product = $entityManager
|
||||||
->getRepository('PSC\Shop\EntityBundle\Entity\Product')->findOneBy(array('uuid' => $uuid, 'shop' => $selectedShop));
|
->getRepository('PSC\Shop\EntityBundle\Entity\Product')
|
||||||
|
->findOneBy(['uuid' => $uuid, 'shop' => $selectedShop]);
|
||||||
|
|
||||||
/** @var \PSC\Shop\EntityBundle\Document\Product $productDoc */
|
/** @var \PSC\Shop\EntityBundle\Document\Product $productDoc */
|
||||||
$productDoc = $documentManager
|
$productDoc = $documentManager
|
||||||
->getRepository('PSC\Shop\EntityBundle\Document\Product')
|
->getRepository('PSC\Shop\EntityBundle\Document\Product')
|
||||||
->findOneBy(array('uid' => (string) $product->getUid()));
|
->findOneBy(['uid' => (string) $product->getUid()]);
|
||||||
|
|
||||||
if (!$productDoc) {
|
if (!$productDoc) {
|
||||||
$productDoc = new \PSC\Shop\EntityBundle\Document\Product();
|
$productDoc = new \PSC\Shop\EntityBundle\Document\Product();
|
||||||
$productDoc->setUid((string) $product->getUid());
|
$productDoc->setUid((string) $product->getUid());
|
||||||
}
|
}
|
||||||
|
|
||||||
$form = $this->createForm(EditType::class, ['steplayouterXml' => $product->getSteplayouterXml(), 'colorDb' => $productDoc->getPluginSettingModule('creativeLayouter', 'colorDb')]);
|
$form = $this->createForm(EditType::class, [
|
||||||
|
'steplayouterXml' => $product->getSteplayouterXml(),
|
||||||
|
'colorDb' => $productDoc->getPluginSettingModule('creativeLayouter', 'colorDb'),
|
||||||
|
]);
|
||||||
|
|
||||||
$form->handleRequest($request);
|
$form->handleRequest($request);
|
||||||
|
|
||||||
@ -75,9 +73,10 @@ class XmlController extends AbstractController
|
|||||||
$entityManager->persist($product);
|
$entityManager->persist($product);
|
||||||
$entityManager->flush();
|
$entityManager->flush();
|
||||||
}
|
}
|
||||||
return array(
|
return [
|
||||||
'form' => $form->createView(),
|
'form' => $form->createView(),
|
||||||
'product' => $product
|
'product' => $product,
|
||||||
);
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Plugin\System\PSC\CreativeLayouter\Form;
|
namespace Plugin\Custom\PSC\CreativeLayouter\Form;
|
||||||
|
|
||||||
use PSC\Shop\EntityBundle\Entity\Product;
|
use PSC\Shop\EntityBundle\Entity\Product;
|
||||||
use PSC\System\PluginBundle\Form\Interfaces\Field;
|
use PSC\System\PluginBundle\Form\Interfaces\Field;
|
||||||
@ -29,7 +29,7 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Fiel
|
|||||||
|
|
||||||
public function getTemplate()
|
public function getTemplate()
|
||||||
{
|
{
|
||||||
return '@PluginSystemPSCCreativeLayouter/form/field/backend.html.twig';
|
return '@PluginCustomPSCCreativeLayouter/form/field/backend.html.twig';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getModule()
|
public function getModule()
|
||||||
@ -42,7 +42,6 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Fiel
|
|||||||
*/
|
*/
|
||||||
public function formPreSubmit(FormEvent $event)
|
public function formPreSubmit(FormEvent $event)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
@ -50,12 +49,15 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Fiel
|
|||||||
/** @var Product $product */
|
/** @var Product $product */
|
||||||
$product = $options['product'];
|
$product = $options['product'];
|
||||||
|
|
||||||
$builder->add('uploadSteplayouter2', CheckboxType::class, ['required' => false, 'label' => 'Aktivieren'])
|
$builder->add('uploadSteplayouter2', CheckboxType::class, ['required' => false, 'label' => 'Aktivieren'])->add(
|
||||||
->add("uploadSteplayouter2InitalStatus", ChoiceType::class, array(
|
'uploadSteplayouter2InitalStatus',
|
||||||
|
ChoiceType::class,
|
||||||
|
[
|
||||||
'label' => 'Initalstatus',
|
'label' => 'Initalstatus',
|
||||||
'choices' => $this->statusService->getPositionStatusAsArray(),
|
'choices' => $this->statusService->getPositionStatusAsArray(),
|
||||||
'translation_domain' => 'posstatus'
|
'translation_domain' => 'posstatus',
|
||||||
));
|
],
|
||||||
|
);
|
||||||
|
|
||||||
if ($product) {
|
if ($product) {
|
||||||
$builder->get('uploadSteplayouter2')->setData($product->isUploadSteplayouter2());
|
$builder->get('uploadSteplayouter2')->setData($product->isUploadSteplayouter2());
|
||||||
@ -67,24 +69,26 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Fiel
|
|||||||
|
|
||||||
public function getGroup()
|
public function getGroup()
|
||||||
{
|
{
|
||||||
return "creativelayouter";
|
return 'creativelayouter';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function formPostSetData(FormEvent $event)
|
public function formPostSetData(FormEvent $event)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function formPostSubmit(FormEvent $event)
|
public function formPostSubmit(FormEvent $event)
|
||||||
{
|
{
|
||||||
/** @var Product $product */
|
/** @var Product $product */
|
||||||
$product = $event->getData();
|
$product = $event->getData();
|
||||||
$product->setUploadSteplayouter2InitalStatus($event->getForm()->get('creativelayouter')->get('uploadSteplayouter2InitalStatus')->getData());
|
$product->setUploadSteplayouter2InitalStatus(
|
||||||
$product->setUploadSteplayouter2($event->getForm()->get('creativelayouter')->get('uploadSteplayouter2')->getData());
|
$event->getForm()->get('creativelayouter')->get('uploadSteplayouter2InitalStatus')->getData(),
|
||||||
|
);
|
||||||
|
$product->setUploadSteplayouter2(
|
||||||
|
$event->getForm()->get('creativelayouter')->get('uploadSteplayouter2')->getData(),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function formPreSetData(FormEvent $event)
|
public function formPreSetData(FormEvent $event)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Plugin\Custom\PSC\CreativeLayouter\Form\XML;
|
||||||
|
|
||||||
|
use PSC\Libraries\AceEditorBundle\Form\Extension\AceEditorType;
|
||||||
|
use Symfony\Component\Form\AbstractType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||||
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
|
|
||||||
|
class EditType extends AbstractType
|
||||||
|
{
|
||||||
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
|
{
|
||||||
|
$builder->add('steplayouterXml', AceEditorType::class, [
|
||||||
|
'wrapper_attr' => [], // aceeditor wrapper html attributes.
|
||||||
|
'width' => '100%',
|
||||||
|
'height' => '500',
|
||||||
|
'font_size' => 14,
|
||||||
|
'mode' => 'ace/mode/xml', // every single default mode must have ace/mode/* prefix
|
||||||
|
'theme' => 'ace/theme/monokai', // every single default theme must have ace/theme/* prefix
|
||||||
|
'tab_size' => null,
|
||||||
|
'read_only' => null,
|
||||||
|
'use_soft_tabs' => null,
|
||||||
|
'use_wrap_mode' => null,
|
||||||
|
'show_print_margin' => null,
|
||||||
|
'required' => false,
|
||||||
|
'highlight_active_line' => null,
|
||||||
|
])->add('colorDb', AceEditorType::class, [
|
||||||
|
'wrapper_attr' => [], // aceeditor wrapper html attributes.
|
||||||
|
'width' => '100%',
|
||||||
|
'height' => '500',
|
||||||
|
'font_size' => 14,
|
||||||
|
'mode' => 'ace/mode/xml', // every single default mode must have ace/mode/* prefix
|
||||||
|
'theme' => 'ace/theme/monokai', // every single default theme must have ace/theme/* prefix
|
||||||
|
'tab_size' => null,
|
||||||
|
'read_only' => null,
|
||||||
|
'use_soft_tabs' => null,
|
||||||
|
'use_wrap_mode' => null,
|
||||||
|
'show_print_margin' => null,
|
||||||
|
'required' => false,
|
||||||
|
'highlight_active_line' => null,
|
||||||
|
])->add('save', SubmitType::class, ['label' => 'Speichern']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName()
|
||||||
|
{
|
||||||
|
return 'product';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
8
src/new/var/plugins/System/PSC/CreativeLayouter/Plugin.php → src/new/var/plugins/Custom/PSC/CreativeLayouter/Plugin.php
Executable file → Normal file
8
src/new/var/plugins/System/PSC/CreativeLayouter/Plugin.php → src/new/var/plugins/Custom/PSC/CreativeLayouter/Plugin.php
Executable file → Normal file
@ -1,11 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Plugin\System\PSC\CreativeLayouter;
|
|
||||||
|
namespace Plugin\Custom\PSC\CreativeLayouter;
|
||||||
|
|
||||||
use PSC\System\PluginBundle\Plugin\Base;
|
use PSC\System\PluginBundle\Plugin\Base;
|
||||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
|
||||||
class Plugin extends Base implements \PSC\System\PluginBundle\Interfaces\Plugin {
|
class Plugin extends Base implements \PSC\System\PluginBundle\Interfaces\Plugin
|
||||||
|
{
|
||||||
protected $name = 'Creative Layouter';
|
protected $name = 'Creative Layouter';
|
||||||
|
|
||||||
public function getType()
|
public function getType()
|
||||||
@ -22,5 +23,4 @@ class Plugin extends Base implements \PSC\System\PluginBundle\Interfaces\Plugin
|
|||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
psc_plugin_system_creativelayouter_backend:
|
psc_plugin_custom_creativelayouter_backend:
|
||||||
resource: "@PluginSystemPSCCreativeLayouter/Controller/Backend"
|
resource: "@PluginSystemPSCCreativeLayouter/Controller/Backend"
|
||||||
type: annotation
|
type: annotation
|
||||||
prefix: /backend/plugin/creativelayouter
|
prefix: /backend/plugin/creativelayouter
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
services:
|
||||||
|
_defaults:
|
||||||
|
autowire: true
|
||||||
|
autoconfigure: true
|
||||||
|
|
||||||
|
Plugin\Custom\PSC\CreativeLayouter\:
|
||||||
|
resource: '../../*/*'
|
||||||
|
|
||||||
|
Plugin\Custom\PSC\CreativeLayouter\Form\BackendFields:
|
||||||
|
tags:
|
||||||
|
- { name: psc.backend.custom.fields }
|
||||||
@ -5,7 +5,6 @@ import { useItemStore } from '../../../stores/Items'
|
|||||||
import RenderElements from './RenderElements.vue'
|
import RenderElements from './RenderElements.vue'
|
||||||
import PriceDisplay from './PriceDisplay.vue'
|
import PriceDisplay from './PriceDisplay.vue'
|
||||||
import type { PreviewResponse } from '../../../model/preview/types'
|
import type { PreviewResponse } from '../../../model/preview/types'
|
||||||
import { debounce } from "@std/async/debounce"
|
|
||||||
|
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
const itemStore = useItemStore()
|
const itemStore = useItemStore()
|
||||||
@ -21,7 +20,7 @@ let previewValues: Record<string, any> = {}
|
|||||||
|
|
||||||
const handleUpdate = (payload: { elementId: string, newValue: any }) => {
|
const handleUpdate = (payload: { elementId: string, newValue: any }) => {
|
||||||
previewValues[payload.elementId] = payload.newValue;
|
previewValues[payload.elementId] = payload.newValue;
|
||||||
debounce(() => globalStore.loadPreview(itemStore.loadJSON(), previewValues), 500);
|
globalStore.loadPreview(itemStore.loadJSON(), previewValues)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,7 @@ export default defineConfig({
|
|||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
configure: (proxy) => {
|
configure: (proxy) => {
|
||||||
proxy.on('proxyReq', (proxyReq) => {
|
proxy.on('proxyReq', (proxyReq) => {
|
||||||
proxyReq.setHeader('Authorization', 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE3NTY5OTYyODUsImV4cCI6MTc1Njk5OTg4NSwicm9sZXMiOlsiUk9MRV9BRE1JTiIsIlJPTEVfU0hPUF9PUEVSQVRPUiIsIlJPTEVfVVNFUiIsIlJPTEVfVVNFUiIsIlJPTEVfUFNDX0NvbGxlY3RfQ29udGFjdF9FZGl0IiwiUk9MRV9QU0NfQ29sbGVjdF9Db250YWN0X0FkZCIsIlJPTEVfUFNDX0NvbGxlY3RfQ29udGFjdF9EZWxldGUiLCJST0xFX1BTQ19Db2xsZWN0X0NvbnRhY3RfTG9jayIsIlJPTEVfUFNDX1IyX1NlbmRjbG91ZF9TaG93Il0sInVpZCI6MX0.GscgpB_vAN_oq4LHqzQ4K8vU0j4U9S4xLh0hCgRaAGTQuYpdHRzO21fCXob4-maN8njEtsHLq7Jpez4k0u47QhRknYrtDT_vw0EKilLpnTYFtxErAY7XqGgitam_C4BtjXKGybGkLrwfSFmlZh1yR_dJA2-hPcOlBjfpjLgOPGmpqClgLH3uv2kBn5E39kveNL5AtEOz18l--At6-UgGQDOXoKPxNNYokUK9_yaWEOezf7LThfBqgeKwOFzKlcbBNGkPWyQjbOaexWfv4DwVUtFuSJrJRYYAMbjPbx0sOThBI-AgpzooiXpLbEZFYOjkCXgyPBVBwp9JI-d0DbpGvA');
|
proxyReq.setHeader('Authorization', 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE3NTcwNjI0NDQsImV4cCI6MTc1NzA2NjA0NCwicm9sZXMiOlsiUk9MRV9BRE1JTiIsIlJPTEVfU0hPUF9PUEVSQVRPUiIsIlJPTEVfVVNFUiIsIlJPTEVfVVNFUiIsIlJPTEVfUFNDX0NvbGxlY3RfQ29udGFjdF9FZGl0IiwiUk9MRV9QU0NfQ29sbGVjdF9Db250YWN0X0FkZCIsIlJPTEVfUFNDX0NvbGxlY3RfQ29udGFjdF9EZWxldGUiLCJST0xFX1BTQ19Db2xsZWN0X0NvbnRhY3RfTG9jayIsIlJPTEVfUFNDX1IyX1NlbmRjbG91ZF9TaG93Il0sInVpZCI6MX0.DATOKyuWwVpzyhINLPImV3j_PQvEHj8w_ds7NHxfeVcYvksJc0YOV7jmpaJScZZOKFLaLz99AndeHGcHZQs1XUmvOfcoP3_IgqoqTconR6Y9O-fGTt0kbUPfikARxyFRw7VoROJd3l4A7S9Xj2XFItwmwGzt43P0rMzJmEu6TZSTFSgtsMj_Iu6xsc0V9YNqEQJu3JfVJkwNNVEOAdW99IKGEaNAqXkOuDsJ4uWX-G5G-Y18j6VKgYEmpL1eIgT8RWSG0nFILxoJzqfKBdKHBlb6l7javXgqpWaEpWtd_G8gWtMNrNHYo1ifqvjiIvkqV4wJRQSRxP6kE0Wudf3WBQ');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Plugin\System\PSC\FormLayouter\Controller;
|
|
||||||
|
namespace Plugin\Custom\PSC\FormLayouter\Controller;
|
||||||
|
|
||||||
use Doctrine\ODM\MongoDB\DocumentManager;
|
use Doctrine\ODM\MongoDB\DocumentManager;
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
@ -18,33 +19,42 @@ use Twig\Loader\FilesystemLoader;
|
|||||||
#[Route('/designer')]
|
#[Route('/designer')]
|
||||||
class DesignerController extends AbstractController
|
class DesignerController extends AbstractController
|
||||||
{
|
{
|
||||||
|
|
||||||
#[Route('/load/{productId}/{layouterId}', name: 'psc_plugin_formlayouter_load')]
|
#[Route('/load/{productId}/{layouterId}', name: 'psc_plugin_formlayouter_load')]
|
||||||
public function loadAction(Request $request, EntityManagerInterface $entityManager, $productId, $layouterId = "")
|
public function loadAction(Request $request, EntityManagerInterface $entityManager, $productId, $layouterId = '')
|
||||||
{
|
{
|
||||||
$session = new FormLayouter();
|
$session = new FormLayouter();
|
||||||
if ($request->getSession()->has('formlayouter')) {
|
if ($request->getSession()->has('formlayouter')) {
|
||||||
$session = $request->getSession()->get('formlayouter');
|
$session = $request->getSession()->get('formlayouter');
|
||||||
}
|
}
|
||||||
|
|
||||||
if($layouterId != "") {
|
if ($layouterId != '') {
|
||||||
/** @var Layoutdesigndata $layoutDesignData */
|
/** @var Layoutdesigndata $layoutDesignData */
|
||||||
$layoutDesignData = $entityManager
|
$layoutDesignData = $entityManager
|
||||||
->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')->findOneBy(array('uuid' => $layouterId));
|
->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')
|
||||||
|
->findOneBy(['uuid' => $layouterId]);
|
||||||
|
|
||||||
$session->setOptions($productId, $layoutDesignData->getDesign());
|
$session->setOptions($productId, $layoutDesignData->getDesign());
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->redirectToRoute("psc_plugin_formlayouter_start", ['productId' => $productId, 'layouterId' => $layouterId]);
|
return $this->redirectToRoute('psc_plugin_formlayouter_start', [
|
||||||
|
'productId' => $productId,
|
||||||
|
'layouterId' => $layouterId,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[Route('/start/{productId}/{layouterId}', name: 'psc_plugin_formlayouter_start')]
|
#[Route('/start/{productId}/{layouterId}', name: 'psc_plugin_formlayouter_start')]
|
||||||
public function startAction(Request $request, EntityManagerInterface $entityManager, DocumentManager $documentManager, Layouter $formLayouter, $productId, $layouterId = "")
|
public function startAction(
|
||||||
{
|
Request $request,
|
||||||
|
EntityManagerInterface $entityManager,
|
||||||
|
DocumentManager $documentManager,
|
||||||
|
Layouter $formLayouter,
|
||||||
|
$productId,
|
||||||
|
$layouterId = '',
|
||||||
|
) {
|
||||||
/** @var Product $product */
|
/** @var Product $product */
|
||||||
$product = $entityManager
|
$product = $entityManager
|
||||||
->getRepository('PSC\Shop\EntityBundle\Entity\Product')
|
->getRepository('PSC\Shop\EntityBundle\Entity\Product')
|
||||||
->findOneBy(array('uuid' => $productId));
|
->findOneBy(['uuid' => $productId]);
|
||||||
|
|
||||||
/** @var \PSC\Shop\EntityBundle\Entity\Shop $shop */
|
/** @var \PSC\Shop\EntityBundle\Entity\Shop $shop */
|
||||||
$shop = $product->getShop();
|
$shop = $product->getShop();
|
||||||
@ -53,9 +63,7 @@ $shop = $product->getShop();
|
|||||||
/** @var \PSC\Shop\EntityBundle\Document\Product $productDoc */
|
/** @var \PSC\Shop\EntityBundle\Document\Product $productDoc */
|
||||||
$productDoc = $documentManager
|
$productDoc = $documentManager
|
||||||
->getRepository('PSC\Shop\EntityBundle\Document\Product')
|
->getRepository('PSC\Shop\EntityBundle\Document\Product')
|
||||||
->findOneBy(array('uid' => (string)$product->getUid()));
|
->findOneBy(['uid' => (string) $product->getUid()]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$session = new FormLayouter();
|
$session = new FormLayouter();
|
||||||
if ($request->getSession()->has('formlayouter')) {
|
if ($request->getSession()->has('formlayouter')) {
|
||||||
@ -75,11 +83,17 @@ $shop = $product->getShop();
|
|||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
|
|
||||||
$form = $this->createForm(FormDesigner::class, $data, ['step' => $actStep, 'session' => $session, 'productId' => $productId]);
|
$form = $this->createForm(FormDesigner::class, $data, [
|
||||||
|
'step' => $actStep,
|
||||||
|
'session' => $session,
|
||||||
|
'productId' => $productId,
|
||||||
|
]);
|
||||||
|
|
||||||
$request->getSession()->set('formlayouter', $session);
|
$request->getSession()->set('formlayouter', $session);
|
||||||
|
|
||||||
$loader = new FilesystemLoader('/data/www/old/application/design/vorlagen/' . $shop->getLayout() . '/step_layouter/');
|
$loader = new FilesystemLoader('/data/www/old/application/design/vorlagen/' .
|
||||||
|
$shop->getLayout() .
|
||||||
|
'/step_layouter/');
|
||||||
$twig = new Environment($loader);
|
$twig = new Environment($loader);
|
||||||
//\var_dump($twig);
|
//\var_dump($twig);
|
||||||
|
|
||||||
@ -89,20 +103,18 @@ $footer = $twig->render('footer.html.twig');
|
|||||||
'step' => $actStep,
|
'step' => $actStep,
|
||||||
'form' => $form->createView(),
|
'form' => $form->createView(),
|
||||||
'product' => $product,
|
'product' => $product,
|
||||||
'firstStart' => $layouterId!=""? 1: 0,
|
'firstStart' => $layouterId != '' ? 1 : 0,
|
||||||
'layouterId' => $layouterId,
|
'layouterId' => $layouterId,
|
||||||
'config' => $config,
|
'config' => $config,
|
||||||
'layout' => $shop->getLayout(),
|
'layout' => $shop->getLayout(),
|
||||||
'header' => $header,
|
'header' => $header,
|
||||||
'footer' => $footer,
|
'footer' => $footer,
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[Route('/update/{productId}', name: 'psc_plugin_formlayouter_update')]
|
#[Route('/update/{productId}', name: 'psc_plugin_formlayouter_update')]
|
||||||
public function updateAction(Request $request, $productId)
|
public function updateAction(Request $request, $productId)
|
||||||
{
|
{
|
||||||
|
|
||||||
$data = json_decode($request->getContent(), true);
|
$data = json_decode($request->getContent(), true);
|
||||||
|
|
||||||
$session = new FormLayouter();
|
$session = new FormLayouter();
|
||||||
@ -115,6 +127,6 @@ $footer = $twig->render('footer.html.twig');
|
|||||||
$request->getSession()->set('formlayouter', $session);
|
$request->getSession()->set('formlayouter', $session);
|
||||||
|
|
||||||
return new JsonResponse(['success' => true]);
|
return new JsonResponse(['success' => true]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0
src/new/var/plugins/System/PSC/FormLayouter/Document/Image.php → src/new/var/plugins/Custom/PSC/FormLayouter/Document/Image.php
Executable file → Normal file
0
src/new/var/plugins/System/PSC/FormLayouter/Document/Image.php → src/new/var/plugins/Custom/PSC/FormLayouter/Document/Image.php
Executable file → Normal file
0
src/new/var/plugins/System/PSC/FormLayouter/Model/Config.php → src/new/var/plugins/Custom/PSC/FormLayouter/Model/Config.php
Executable file → Normal file
0
src/new/var/plugins/System/PSC/FormLayouter/Model/Config.php → src/new/var/plugins/Custom/PSC/FormLayouter/Model/Config.php
Executable file → Normal file
0
src/new/var/plugins/System/PSC/FormLayouter/Model/Pdf/Site.php → src/new/var/plugins/Custom/PSC/FormLayouter/Model/Pdf/Site.php
Executable file → Normal file
0
src/new/var/plugins/System/PSC/FormLayouter/Model/Pdf/Site.php → src/new/var/plugins/Custom/PSC/FormLayouter/Model/Pdf/Site.php
Executable file → Normal file
0
src/new/var/plugins/System/PSC/FormLayouter/Parser/Parser.php → src/new/var/plugins/Custom/PSC/FormLayouter/Parser/Parser.php
Executable file → Normal file
0
src/new/var/plugins/System/PSC/FormLayouter/Parser/Parser.php → src/new/var/plugins/Custom/PSC/FormLayouter/Parser/Parser.php
Executable file → Normal file
12
src/new/var/plugins/System/PSC/FormLayouter/Plugin.php → src/new/var/plugins/Custom/PSC/FormLayouter/Plugin.php
Executable file → Normal file
12
src/new/var/plugins/System/PSC/FormLayouter/Plugin.php → src/new/var/plugins/Custom/PSC/FormLayouter/Plugin.php
Executable file → Normal file
@ -1,12 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Plugin\System\PSC\FormLayouter;
|
|
||||||
|
namespace Plugin\Custom\PSC\FormLayouter;
|
||||||
|
|
||||||
use PSC\System\PluginBundle\Plugin\Base;
|
use PSC\System\PluginBundle\Plugin\Base;
|
||||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
|
||||||
class Plugin extends Base implements \PSC\System\PluginBundle\Interfaces\Plugin {
|
class Plugin extends Base implements \PSC\System\PluginBundle\Interfaces\Plugin
|
||||||
|
{
|
||||||
protected $name = 'Step Layouter';
|
protected $name = 'FormLayouter';
|
||||||
|
|
||||||
public function getType()
|
public function getType()
|
||||||
{
|
{
|
||||||
@ -15,12 +16,11 @@ class Plugin extends Base implements \PSC\System\PluginBundle\Interfaces\Plugin
|
|||||||
|
|
||||||
public function getDescription()
|
public function getDescription()
|
||||||
{
|
{
|
||||||
return 'Step Layouter';
|
return 'FormLayouter';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getVersion()
|
public function getVersion()
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
239
src/new/var/plugins/Custom/PSC/FormLayouter/Renderer/Pdf.php
Normal file
239
src/new/var/plugins/Custom/PSC/FormLayouter/Renderer/Pdf.php
Normal file
@ -0,0 +1,239 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PrintshopCreator Suite
|
||||||
|
*
|
||||||
|
* PHP Version 5.3
|
||||||
|
*
|
||||||
|
* @author Thomas Peterson <info@thomas-peterson.de>
|
||||||
|
* @copyright 2012-2013 PrintshopCreator GmbH
|
||||||
|
* @license Private
|
||||||
|
* @link http://www.printshopcreator.de
|
||||||
|
*/
|
||||||
|
namespace Plugin\Custom\PSC\FormLayouter\Renderer;
|
||||||
|
|
||||||
|
use Doctrine\ODM\MongoDB\DocumentManager;
|
||||||
|
use MongoDB\BSON\ObjectId;
|
||||||
|
use Plugin\Custom\PSC\FormLayouter\Model\Config;
|
||||||
|
use Plugin\Custom\PSC\FormLayouter\Model\Pdf\Site;
|
||||||
|
use PSC\Shop\MediaBundle\Document\Media;
|
||||||
|
|
||||||
|
class Pdf
|
||||||
|
{
|
||||||
|
/** @var Site */
|
||||||
|
private $site;
|
||||||
|
|
||||||
|
/** @var Config */
|
||||||
|
private $config;
|
||||||
|
|
||||||
|
private $pdflibLic;
|
||||||
|
|
||||||
|
private $options;
|
||||||
|
|
||||||
|
function __construct(DocumentManager $mongoDb, $pdflib_lic)
|
||||||
|
{
|
||||||
|
$this->mongoDb = $mongoDb;
|
||||||
|
$this->pdflibLic = $pdflib_lic;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setSite($site)
|
||||||
|
{
|
||||||
|
$this->site = $site;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function renderStep($filename)
|
||||||
|
{
|
||||||
|
$p = new \PDFlib();
|
||||||
|
$p->set_option('errorpolicy=return');
|
||||||
|
$p->set_option('stringformat=utf8');
|
||||||
|
$p->set_parameter('license', $this->pdflibLic);
|
||||||
|
if ($p->begin_document($filename, '') == 0) {
|
||||||
|
die('Error: ' . $p->get_errmsg());
|
||||||
|
}
|
||||||
|
|
||||||
|
$p->set_option('topdown=true');
|
||||||
|
$p->set_option('usercoordinates=true');
|
||||||
|
|
||||||
|
$scale = 1;
|
||||||
|
if (strtolower($this->config->getPdf()->getUnit()) == 'mm') {
|
||||||
|
$scale = 2.83465;
|
||||||
|
} elseif (strtolower($this->config->getPdf()->getUnit()) == 'cm') {
|
||||||
|
$scale = 28.3465;
|
||||||
|
}
|
||||||
|
|
||||||
|
$p->begin_page_ext(
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'width=' .
|
||||||
|
(($this->site->getWidth() + $this->site->getTrimLeft() + $this->site->getTrimRight()) * $scale) .
|
||||||
|
' height=' .
|
||||||
|
(($this->site->getHeight() + $this->site->getTrimTop() + $this->site->getTrimBottom()) * $scale) .
|
||||||
|
' trimbox={' .
|
||||||
|
($this->site->getTrimLeft() * $scale) .
|
||||||
|
' ' .
|
||||||
|
($this->site->getTrimTop() * $scale) .
|
||||||
|
' ' .
|
||||||
|
(($this->site->getWidth() + $this->site->getTrimLeft()) * $scale) .
|
||||||
|
' ' .
|
||||||
|
(($this->site->getHeight() + $this->site->getTrimTop()) * $scale) .
|
||||||
|
'}',
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($this->site->getElements() as $element) {
|
||||||
|
$element->setScale($scale);
|
||||||
|
$element->setOptions($this->options);
|
||||||
|
$element->setMongoDb($this->mongoDb);
|
||||||
|
$element->setSite($this->site);
|
||||||
|
$element->renderPdf($p);
|
||||||
|
}
|
||||||
|
|
||||||
|
$p->end_page_ext('');
|
||||||
|
|
||||||
|
$p->end_document('');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function renderPreviewPdf($sites, $filename)
|
||||||
|
{
|
||||||
|
$p = new \PDFlib();
|
||||||
|
$p->set_option('errorpolicy=return');
|
||||||
|
$p->set_option('stringformat=utf8');
|
||||||
|
$p->set_parameter('license', $this->pdflibLic);
|
||||||
|
if ($p->begin_document($filename, '') == 0) {
|
||||||
|
die('Error: ' . $p->get_errmsg());
|
||||||
|
}
|
||||||
|
|
||||||
|
$p->set_option('topdown=true');
|
||||||
|
$p->set_option('usercoordinates=true');
|
||||||
|
|
||||||
|
$scale = 1;
|
||||||
|
if (strtolower($this->config->getPdf()->getUnit()) == 'mm') {
|
||||||
|
$scale = 2.83465;
|
||||||
|
} elseif (strtolower($this->config->getPdf()->getUnit()) == 'cm') {
|
||||||
|
$scale = 28.3465;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($sites as $site) {
|
||||||
|
$p->begin_page_ext(
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'width=' .
|
||||||
|
(($site->getWidth() + $site->getTrimLeft() + $site->getTrimRight()) * $scale) .
|
||||||
|
' height=' .
|
||||||
|
(($site->getHeight() + $site->getTrimTop() + $site->getTrimBottom()) * $scale) .
|
||||||
|
' trimbox={' .
|
||||||
|
($site->getTrimLeft() * $scale) .
|
||||||
|
' ' .
|
||||||
|
($site->getTrimTop() * $scale) .
|
||||||
|
' ' .
|
||||||
|
(($site->getWidth() + $site->getTrimLeft()) * $scale) .
|
||||||
|
' ' .
|
||||||
|
(($site->getHeight() + $site->getTrimTop()) * $scale) .
|
||||||
|
'}',
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($site->getElements() as $element) {
|
||||||
|
if (!$element->isPreview())
|
||||||
|
continue;
|
||||||
|
$element->setScale($scale);
|
||||||
|
$element->setOptions($this->options);
|
||||||
|
$element->setMongoDb($this->mongoDb);
|
||||||
|
$element->setSite($site);
|
||||||
|
$element->renderPdf($p);
|
||||||
|
}
|
||||||
|
|
||||||
|
$p->end_page_ext('');
|
||||||
|
}
|
||||||
|
|
||||||
|
$p->end_document('');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function renderPrintPdf($sites, $filename)
|
||||||
|
{
|
||||||
|
$p = new \PDFlib();
|
||||||
|
$p->set_option('errorpolicy=return');
|
||||||
|
$p->set_option('stringformat=utf8');
|
||||||
|
$p->set_parameter('license', $this->pdflibLic);
|
||||||
|
$p->set_info('Creator', 'PSC');
|
||||||
|
$p->set_info('Title', 'PDFX4');
|
||||||
|
|
||||||
|
if ($this->config->getPdf()->isPdfx4()) {
|
||||||
|
if ($p->begin_document($filename, 'pdfx=PDF/X-4') == 0) {
|
||||||
|
die('Error: ' . $p->get_errmsg());
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @var Media $media */
|
||||||
|
$media = $this->mongoDb
|
||||||
|
->getRepository('PSC\Shop\MediaBundle\Document\Media')
|
||||||
|
->findOneBy(['_id' => new ObjectId($this->config->getPdf()->getIccProfile())]);
|
||||||
|
|
||||||
|
if ($p->load_iccprofile('/data/www/new/web' . $media->getUrl(), 'usage=outputintent') == 0) {
|
||||||
|
print 'Error: ' . $p->get_errmsg() . "\n";
|
||||||
|
print "See www.pdflib.com for output intent ICC profiles.\n";
|
||||||
|
$p->delete();
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ($p->begin_document($filename, '') == 0) {
|
||||||
|
die('Error: ' . $p->get_errmsg());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$p->set_option('topdown=true');
|
||||||
|
$p->set_option('usercoordinates=true');
|
||||||
|
|
||||||
|
$scale = 1;
|
||||||
|
if (strtolower($this->config->getPdf()->getUnit()) == 'mm') {
|
||||||
|
$scale = 2.83465;
|
||||||
|
} elseif (strtolower($this->config->getPdf()->getUnit()) == 'cm') {
|
||||||
|
$scale = 28.3465;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($sites as $site) {
|
||||||
|
$p->begin_page_ext(
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
'width=' .
|
||||||
|
(($site->getWidth() + $site->getTrimLeft() + $site->getTrimRight()) * $scale) .
|
||||||
|
' height=' .
|
||||||
|
(($site->getHeight() + $site->getTrimTop() + $site->getTrimBottom()) * $scale) .
|
||||||
|
' trimbox={' .
|
||||||
|
($site->getTrimLeft() * $scale) .
|
||||||
|
' ' .
|
||||||
|
($site->getTrimTop() * $scale) .
|
||||||
|
' ' .
|
||||||
|
(($site->getWidth() + $site->getTrimLeft()) * $scale) .
|
||||||
|
' ' .
|
||||||
|
(($site->getHeight() + $site->getTrimTop()) * $scale) .
|
||||||
|
'}',
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($site->getElements() as $element) {
|
||||||
|
if (!$element->isPrint())
|
||||||
|
continue;
|
||||||
|
$element->setScale($scale);
|
||||||
|
$element->setOptions($this->options);
|
||||||
|
$element->setMongoDb($this->mongoDb);
|
||||||
|
$element->setSite($site);
|
||||||
|
$element->renderPdf($p);
|
||||||
|
}
|
||||||
|
|
||||||
|
$p->end_page_ext('');
|
||||||
|
}
|
||||||
|
|
||||||
|
$p->end_document('');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Config $config
|
||||||
|
*/
|
||||||
|
public function setConfig($config)
|
||||||
|
{
|
||||||
|
$this->config = $config;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setOptions(array $options)
|
||||||
|
{
|
||||||
|
$this->options = $options;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
psc_shop_plugin_custom_formlayouter_frontend:
|
||||||
|
resource: "@PluginCutomPSCFormLayouter/Controller"
|
||||||
|
type: annotation
|
||||||
|
prefix: /plugin/formlayouter/api
|
||||||
|
|
||||||
|
psc_shop_plugin_custom_formlayouter_backend:
|
||||||
|
resource: "@PluginCustomPSCFormLayouter/Controller/Backend"
|
||||||
|
type: annotation
|
||||||
|
prefix: /backend/plugin/formlayouter
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -5,27 +5,27 @@ services:
|
|||||||
bind:
|
bind:
|
||||||
$pdflib_lic: 'L900202-010091-135115-PPD3D2-EHE432'
|
$pdflib_lic: 'L900202-010091-135115-PPD3D2-EHE432'
|
||||||
|
|
||||||
Plugin\System\PSC\FormLayouter\:
|
Plugin\Custom\PSC\FormLayouter\:
|
||||||
resource: '../../*/*'
|
resource: '../../*/*'
|
||||||
|
|
||||||
Plugin\System\PSC\FormLayouter\Form\Group\FormLayouter:
|
Plugin\Custom\PSC\FormLayouter\Form\Group\FormLayouter:
|
||||||
tags:
|
tags:
|
||||||
- { name: psc.backend.custom.groups }
|
- { name: psc.backend.custom.groups }
|
||||||
|
|
||||||
psc.plugin.system.psc.theme.formlayouter.group.FormLayouterEditor:
|
psc.plugin.system.psc.theme.formlayouter.group.FormLayouterEditor:
|
||||||
class: Plugin\System\PSC\FormLayouter\Form\Group\FormLayouterEditor
|
class: Plugin\Custom\PSC\FormLayouter\Form\Group\FormLayouterEditor
|
||||||
tags:
|
tags:
|
||||||
- { name: psc.backend.custom.groups, themeType: "bootstrap3" }
|
- { name: psc.backend.custom.groups, themeType: "bootstrap3" }
|
||||||
|
|
||||||
Plugin\System\PSC\FormLayouter\Form\Field\BackendFields:
|
Plugin\Custom\PSC\FormLayouter\Form\Field\BackendFields:
|
||||||
tags:
|
tags:
|
||||||
- { name: psc.backend.custom.fields }
|
- { name: psc.backend.custom.fields }
|
||||||
|
|
||||||
Plugin\System\PSC\FormLayouter\Form\FormDesigner:
|
Plugin\Custom\PSC\FormLayouter\Form\FormDesigner:
|
||||||
tags:
|
tags:
|
||||||
- { name: form.type }
|
- { name: form.type }
|
||||||
|
|
||||||
psc.plugin.system.psc.theme.formlayouter.field.enable_checkbox:
|
psc.plugin.system.psc.theme.formlayouter.field.enable_checkbox:
|
||||||
class: Plugin\System\PSC\FormLayouter\Form\Field\EnableEditor
|
class: Plugin\Custom\PSC\FormLayouter\Form\Field\EnableEditor
|
||||||
tags:
|
tags:
|
||||||
- { name: psc.backend.custom.fields, themeType: "bootstrap3" }
|
- { name: psc.backend.custom.fields, themeType: "bootstrap3" }
|
||||||
21
src/new/var/plugins/System/PSC/FormLayouter/Service/Layouter.php → src/new/var/plugins/Custom/PSC/FormLayouter/Service/Layouter.php
Executable file → Normal file
21
src/new/var/plugins/System/PSC/FormLayouter/Service/Layouter.php → src/new/var/plugins/Custom/PSC/FormLayouter/Service/Layouter.php
Executable file → Normal file
@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PrintshopCreator Suite
|
* PrintshopCreator Suite
|
||||||
*
|
*
|
||||||
@ -9,15 +10,15 @@
|
|||||||
* @license Private
|
* @license Private
|
||||||
* @link http://www.printshopcreator.de
|
* @link http://www.printshopcreator.de
|
||||||
*/
|
*/
|
||||||
namespace Plugin\System\PSC\FormLayouter\Service;
|
namespace Plugin\Custom\PSC\FormLayouter\Service;
|
||||||
|
|
||||||
use Plugin\System\PSC\FormLayouter\Model\Config;
|
use Plugin\Custom\PSC\FormLayouter\Model\Config;
|
||||||
use Plugin\System\PSC\FormLayouter\Model\Pdf\Site;
|
use Plugin\Custom\PSC\FormLayouter\Model\Pdf\Site;
|
||||||
use Plugin\System\PSC\FormLayouter\Model\Steps\Step;
|
use Plugin\Custom\PSC\FormLayouter\Model\Steps\Step;
|
||||||
use Plugin\System\PSC\FormLayouter\Parser\Parser;
|
use Plugin\Custom\PSC\FormLayouter\Parser\Parser;
|
||||||
|
|
||||||
class Layouter {
|
|
||||||
|
|
||||||
|
class Layouter
|
||||||
|
{
|
||||||
/** @var Step[] */
|
/** @var Step[] */
|
||||||
private $steps = [];
|
private $steps = [];
|
||||||
|
|
||||||
@ -29,20 +30,19 @@ class Layouter {
|
|||||||
|
|
||||||
public function setXml($xml)
|
public function setXml($xml)
|
||||||
{
|
{
|
||||||
|
|
||||||
$parser = new Parser();
|
$parser = new Parser();
|
||||||
$parser->loadXml($xml);
|
$parser->loadXml($xml);
|
||||||
|
|
||||||
$this->steps = $parser->parseStep();
|
$this->steps = $parser->parseStep();
|
||||||
$this->sites = $parser->parseSites();
|
$this->sites = $parser->parseSites();
|
||||||
$this->config = $parser->parseConfig();
|
$this->config = $parser->parseConfig();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getStep($stepNum = 0)
|
public function getStep($stepNum = 0)
|
||||||
{
|
{
|
||||||
foreach ($this->steps as $step) {
|
foreach ($this->steps as $step) {
|
||||||
if($stepNum == $step->getId()) return $step;
|
if ($stepNum == $step->getId())
|
||||||
|
return $step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,3 +67,4 @@ class Layouter {
|
|||||||
return $this->sites;
|
return $this->sites;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PrintshopCreator Suite
|
* PrintshopCreator Suite
|
||||||
*
|
*
|
||||||
@ -9,12 +10,11 @@
|
|||||||
* @license Private
|
* @license Private
|
||||||
* @link http://www.printshopcreator.de
|
* @link http://www.printshopcreator.de
|
||||||
*/
|
*/
|
||||||
namespace Plugin\System\PSC\FormLayouter\Session;
|
namespace Plugin\Custom\PSC\FormLayouter\Session;
|
||||||
|
|
||||||
class FormLayouter implements \Serializable
|
class FormLayouter implements \Serializable
|
||||||
{
|
{
|
||||||
|
protected $options = [];
|
||||||
protected $options = array();
|
|
||||||
|
|
||||||
protected $actualStep = 0;
|
protected $actualStep = 0;
|
||||||
|
|
||||||
@ -24,14 +24,13 @@ class FormLayouter implements \Serializable
|
|||||||
* @return string the string representation of the object or null
|
* @return string the string representation of the object or null
|
||||||
* @since 5.1.0
|
* @since 5.1.0
|
||||||
*/
|
*/
|
||||||
|
#[\Override]
|
||||||
public function serialize()
|
public function serialize()
|
||||||
{
|
{
|
||||||
return serialize(
|
return serialize([
|
||||||
[
|
|
||||||
$this->options,
|
$this->options,
|
||||||
$this->actualStep
|
$this->actualStep,
|
||||||
]
|
]);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -43,12 +42,13 @@ class FormLayouter implements \Serializable
|
|||||||
* @return void
|
* @return void
|
||||||
* @since 5.1.0
|
* @since 5.1.0
|
||||||
*/
|
*/
|
||||||
|
#[\Override]
|
||||||
public function unserialize($serialized)
|
public function unserialize($serialized)
|
||||||
{
|
{
|
||||||
$data = unserialize($serialized);
|
$data = unserialize($serialized);
|
||||||
list(
|
list(
|
||||||
$this->options,
|
$this->options,
|
||||||
$this->actualStep
|
$this->actualStep,
|
||||||
) = $data;
|
) = $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ class FormLayouter implements \Serializable
|
|||||||
public function getOptions($articleUUID)
|
public function getOptions($articleUUID)
|
||||||
{
|
{
|
||||||
if (!isset($this->options[$articleUUID])) {
|
if (!isset($this->options[$articleUUID])) {
|
||||||
return array();
|
return [];
|
||||||
}
|
}
|
||||||
return $this->options[$articleUUID];
|
return $this->options[$articleUUID];
|
||||||
}
|
}
|
||||||
@ -106,7 +106,7 @@ class FormLayouter implements \Serializable
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
$this->options,
|
$this->options,
|
||||||
$this->actualStep
|
$this->actualStep,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,3 +116,4 @@ class FormLayouter implements \Serializable
|
|||||||
$this->actualStep = $data[1];
|
$this->actualStep = $data[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1,17 +1,18 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Plugin\System\PSC\HPLayouter\Controller;
|
|
||||||
|
namespace Plugin\Custom\PSC\HPLayouter\Controller;
|
||||||
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
|
|
||||||
#[Route("/authorize")]
|
#[Route('/authorize')]
|
||||||
class AuthorizeController extends AbstractController
|
class AuthorizeController extends AbstractController
|
||||||
{
|
{
|
||||||
|
#[Route('/', name: 'psc_plugin_hplayouter_authorize')]
|
||||||
#[Route("/", name: 'psc_plugin_hplayouter_authorize')]
|
|
||||||
public function indexAction(Request $request)
|
public function indexAction(Request $request)
|
||||||
{
|
{
|
||||||
die("TEST");
|
die('TEST');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1,17 +1,18 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Plugin\System\PSC\HPLayouter\Controller;
|
|
||||||
|
namespace Plugin\Custom\PSC\HPLayouter\Controller;
|
||||||
|
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
use Symfony\Component\HttpFoundation\Session\SessionInterface;
|
||||||
|
|
||||||
#[Route("/service")]
|
#[Route('/service')]
|
||||||
class ServiceController extends AbstractController
|
class ServiceController extends AbstractController
|
||||||
{
|
{
|
||||||
protected static $key = "p489r7nwpefsnfp0";
|
protected static $key = 'p489r7nwpefsnfp0';
|
||||||
|
|
||||||
#[Route("/user_info", name: 'psc_plugin_hplayouter_service_userinfo')]
|
#[Route('/user_info', name: 'psc_plugin_hplayouter_service_userinfo')]
|
||||||
public function userInfoAction(Request $request, EntityManagerInterface $entityManager): string
|
public function userInfoAction(Request $request, EntityManagerInterface $entityManager): string
|
||||||
{
|
{
|
||||||
$settings = $this->getSettings();
|
$settings = $this->getSettings();
|
||||||
@ -21,33 +22,34 @@ class ServiceController extends AbstractController
|
|||||||
if (isset($settings['USERID'])) {
|
if (isset($settings['USERID'])) {
|
||||||
/** @var Contact $contact */
|
/** @var Contact $contact */
|
||||||
$contact = $entityManager
|
$contact = $entityManager
|
||||||
->getRepository('PSC\Shop\EntityBundle\Entity\Contact')->findOneBy(['uid' => $settings['USERID']]);
|
->getRepository('PSC\Shop\EntityBundle\Entity\Contact')
|
||||||
|
->findOneBy(['uid' => $settings['USERID']]);
|
||||||
|
|
||||||
$user_info = array('id' => $contact->getId(), 'name' => $contact->getEmail());
|
$user_info = ['id' => $contact->getId(), 'name' => $contact->getEmail()];
|
||||||
} else {
|
} else {
|
||||||
$user_info = array('id' => 0, 'name' => "anonymous");
|
$user_info = ['id' => 0, 'name' => 'anonymous'];
|
||||||
}
|
}
|
||||||
|
|
||||||
echo json_encode($user_info);
|
echo json_encode($user_info);
|
||||||
|
|
||||||
exit;
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[Route("/projects", name: 'psc_plugin_hplayouter_service_projects')]
|
#[Route('/projects', name: 'psc_plugin_hplayouter_service_projects')]
|
||||||
public function projectsAction(Request $request, EntityManagerInterface $entityManager): string
|
public function projectsAction(Request $request, EntityManagerInterface $entityManager): string
|
||||||
{
|
{
|
||||||
$h = fopen('services.txt', 'a');
|
$h = fopen('services.txt', 'a');
|
||||||
|
|
||||||
fwrite($h, "\n\n\n\r**************************************************************************************\n");
|
fwrite($h, "\n\n\n\r**************************************************************************************\n");
|
||||||
fwrite($h, "\r****** Date time: ".(date('Y-m-d H:i:s'))." ******\n");
|
fwrite($h, "\r****** Date time: " . date('Y-m-d H:i:s') . " ******\n");
|
||||||
fwrite($h, "\r****** METHOD GET ***** REQUEST /projects ***** FILE services.php ******\n");
|
fwrite($h, "\r****** METHOD GET ***** REQUEST /projects ***** FILE services.php ******\n");
|
||||||
fwrite($h, "****** IP: ".$_SERVER['REMOTE_ADDR']." ******\n");
|
fwrite($h, '****** IP: ' . $_SERVER['REMOTE_ADDR'] . " ******\n");
|
||||||
fwrite($h, "****** HEADERS: ******\n\n");
|
fwrite($h, "****** HEADERS: ******\n\n");
|
||||||
fwrite($h, "****** METHOD: ******".$request->getMethod()."\n\n");
|
fwrite($h, '****** METHOD: ******' . $request->getMethod() . "\n\n");
|
||||||
|
|
||||||
$settings = $this->getSettings();
|
$settings = $this->getSettings();
|
||||||
|
|
||||||
fwrite($h, "****** SETTINGS: ******".json_encode($settings)."\n\n");
|
fwrite($h, '****** SETTINGS: ******' . json_encode($settings) . "\n\n");
|
||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
|
|
||||||
@ -58,17 +60,13 @@ class ServiceController extends AbstractController
|
|||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
|
|
||||||
if(isset($settings['ARTID']) && isset($settings['USERID'])) {
|
if (isset($settings['ARTID'], $settings['USERID'])) {
|
||||||
$qb->andWhere($qb->expr()->orX(
|
$qb->andWhere($qb->expr()->orX($qb->expr()->eq('l.uuid', '?1'), $qb->expr()->eq('l.datatable', '?2')));
|
||||||
$qb->expr()->eq('l.uuid', '?1'),
|
|
||||||
$qb->expr()->eq('l.datatable', '?2')
|
|
||||||
));
|
|
||||||
$qb->setParameter('1', $settings['ARTID']);
|
$qb->setParameter('1', $settings['ARTID']);
|
||||||
$qb->setParameter('2', $settings['USERID']);
|
$qb->setParameter('2', $settings['USERID']);
|
||||||
|
|
||||||
$query = $qb->getQuery();
|
$query = $qb->getQuery();
|
||||||
$data = $query->execute();
|
$data = $query->execute();
|
||||||
|
|
||||||
} elseif (isset($settings['USERID'])) {
|
} elseif (isset($settings['USERID'])) {
|
||||||
$qb->andWhere($qb->expr()->eq('l.datatable', '?1'));
|
$qb->andWhere($qb->expr()->eq('l.datatable', '?1'));
|
||||||
$qb->setParameter('1', $settings['USERID']);
|
$qb->setParameter('1', $settings['USERID']);
|
||||||
@ -92,22 +90,17 @@ class ServiceController extends AbstractController
|
|||||||
$temp[] = $t;
|
$temp[] = $t;
|
||||||
}
|
}
|
||||||
|
|
||||||
fwrite($h, "****** New: ******".json_encode($temp)."\n\n");
|
fwrite($h, '****** New: ******' . json_encode($temp) . "\n\n");
|
||||||
echo json_encode($temp);
|
echo json_encode($temp);
|
||||||
|
|
||||||
|
|
||||||
} elseif ($request->isMethod('POST')) {
|
} elseif ($request->isMethod('POST')) {
|
||||||
|
fwrite($h, '****** Name: ******' . $request->get('name') . "\n\n");
|
||||||
|
|
||||||
fwrite($h, "****** Name: ******".$request->get('name')."\n\n");
|
|
||||||
|
|
||||||
|
|
||||||
$temp = [
|
$temp = [
|
||||||
'name' => $request->get('name'),
|
'name' => $request->get('name'),
|
||||||
'articleId' => $settings['UUID'],
|
'articleId' => $settings['UUID'],
|
||||||
'path' => $request->get('path'),
|
'path' => $request->get('path'),
|
||||||
'content_context_token' => $request->get('content_context_token'),
|
'content_context_token' => $request->get('content_context_token'),
|
||||||
'state' => 'EDITING'
|
'state' => 'EDITING',
|
||||||
];
|
];
|
||||||
|
|
||||||
fwrite($h, "****** New: ******\n\n");
|
fwrite($h, "****** New: ******\n\n");
|
||||||
@ -132,55 +125,56 @@ class ServiceController extends AbstractController
|
|||||||
|
|
||||||
$temp['id'] = $layoutDesignData->getUID();
|
$temp['id'] = $layoutDesignData->getUID();
|
||||||
|
|
||||||
fwrite($h, "****** New: ******".json_encode($temp)."\n\n");
|
fwrite($h, '****** New: ******' . json_encode($temp) . "\n\n");
|
||||||
|
|
||||||
|
|
||||||
echo json_encode($temp);
|
echo json_encode($temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
exit;
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[Route("/projects/{id}", name: 'psc_plugin_hplayouter_service_projects_id')]
|
#[Route('/projects/{id}', name: 'psc_plugin_hplayouter_service_projects_id')]
|
||||||
public function projectSaveAction(Request $request, EntityManagerInterface $entityManager, SessionInterface $session, $id): string
|
public function projectSaveAction(
|
||||||
{
|
Request $request,
|
||||||
|
EntityManagerInterface $entityManager,
|
||||||
|
SessionInterface $session,
|
||||||
|
$id,
|
||||||
|
): string {
|
||||||
$h = fopen('services.txt', 'a');
|
$h = fopen('services.txt', 'a');
|
||||||
|
|
||||||
fwrite($h, "\n\n\n\r**************************************************************************************\n");
|
fwrite($h, "\n\n\n\r**************************************************************************************\n");
|
||||||
fwrite($h, "\r****** Date time: ".(date('Y-m-d H:i:s'))." ******\n");
|
fwrite($h, "\r****** Date time: " . date('Y-m-d H:i:s') . " ******\n");
|
||||||
fwrite($h, "\r****** METHOD GET ***** REQUEST /projectsave ***** FILE services.php ******\n");
|
fwrite($h, "\r****** METHOD GET ***** REQUEST /projectsave ***** FILE services.php ******\n");
|
||||||
fwrite($h, "****** IP: ".$_SERVER['REMOTE_ADDR']." ******\n");
|
fwrite($h, '****** IP: ' . $_SERVER['REMOTE_ADDR'] . " ******\n");
|
||||||
fwrite($h, "****** HEADERS: ******\n\n");
|
fwrite($h, "****** HEADERS: ******\n\n");
|
||||||
fwrite($h, "****** METHOD: ******".$request->getMethod()."\n\n");
|
fwrite($h, '****** METHOD: ******' . $request->getMethod() . "\n\n");
|
||||||
|
|
||||||
$settings = $this->getSettings();
|
$settings = $this->getSettings();
|
||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
|
|
||||||
if ($request->isMethod('GET')) {
|
if ($request->isMethod('GET')) {
|
||||||
|
|
||||||
/** @var Layoutdesigndata $layoutDesignData */
|
/** @var Layoutdesigndata $layoutDesignData */
|
||||||
$layoutDesignData = $entityManager
|
$layoutDesignData = $entityManager
|
||||||
->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')->findOneBy(array('uid' => $id));
|
->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')
|
||||||
|
->findOneBy(['uid' => $id]);
|
||||||
|
|
||||||
if ($layoutDesignData) {
|
if ($layoutDesignData) {
|
||||||
echo json_encode($layoutDesignData->getDesign());
|
echo json_encode($layoutDesignData->getDesign());
|
||||||
} else {
|
} else {
|
||||||
echo json_encode(array());
|
echo json_encode([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
} elseif ($request->isMethod('PUT')) {
|
} elseif ($request->isMethod('PUT')) {
|
||||||
|
|
||||||
/** @var Layoutdesigndata $layoutDesignData */
|
/** @var Layoutdesigndata $layoutDesignData */
|
||||||
$layoutDesignData = $entityManager
|
$layoutDesignData = $entityManager
|
||||||
->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')->findOneBy(array('uid' => $id));
|
->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')
|
||||||
|
->findOneBy(['uid' => $id]);
|
||||||
|
|
||||||
$temp = [
|
$temp = [
|
||||||
'id' => $id,
|
'id' => $id,
|
||||||
'name' => $request->get('name'),
|
'name' => $request->get('name'),
|
||||||
'path' => $request->get('path'),
|
'path' => $request->get('path'),
|
||||||
'content_context_token' => $request->get('content_context_token')
|
'content_context_token' => $request->get('content_context_token'),
|
||||||
];
|
];
|
||||||
|
|
||||||
if (isset($settings['ARTID'])) {
|
if (isset($settings['ARTID'])) {
|
||||||
@ -199,30 +193,30 @@ class ServiceController extends AbstractController
|
|||||||
echo json_encode($temp);
|
echo json_encode($temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
exit;
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[Route("/projects/{id}/add_to_cart", name: 'psc_plugin_hplayouter_service_project_addcard')]
|
#[Route('/projects/{id}/add_to_cart', name: 'psc_plugin_hplayouter_service_project_addcard')]
|
||||||
public function addCardAction(Request $request, EntityManagerInterface $entityManager, string $id): void
|
public function addCardAction(Request $request, EntityManagerInterface $entityManager, string $id): void
|
||||||
{
|
{
|
||||||
$h = fopen('services.txt', 'a');
|
$h = fopen('services.txt', 'a');
|
||||||
|
|
||||||
fwrite($h, "\n\n\n\r**************************************************************************************\n");
|
fwrite($h, "\n\n\n\r**************************************************************************************\n");
|
||||||
fwrite($h, "\r****** Date time: ".(date('Y-m-d H:i:s'))." ******\n");
|
fwrite($h, "\r****** Date time: " . date('Y-m-d H:i:s') . " ******\n");
|
||||||
fwrite($h, "\r****** METHOD GET ***** REQUEST /addcard ***** FILE services.php ******\n");
|
fwrite($h, "\r****** METHOD GET ***** REQUEST /addcard ***** FILE services.php ******\n");
|
||||||
fwrite($h, "****** IP: ".$_SERVER['REMOTE_ADDR']." ******\n");
|
fwrite($h, '****** IP: ' . $_SERVER['REMOTE_ADDR'] . " ******\n");
|
||||||
fwrite($h, "****** HEADERS: ******\n\n");
|
fwrite($h, "****** HEADERS: ******\n\n");
|
||||||
fwrite($h, "****** METHOD: ******".$request->getMethod()."\n\n");
|
fwrite($h, '****** METHOD: ******' . $request->getMethod() . "\n\n");
|
||||||
|
|
||||||
/** @var Layoutdesigndata $layoutDesignData */
|
/** @var Layoutdesigndata $layoutDesignData */
|
||||||
$layoutDesignData = $entityManager
|
$layoutDesignData = $entityManager
|
||||||
->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')->findOneBy(array('uid' => $id));
|
->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')
|
||||||
|
->findOneBy(['uid' => $id]);
|
||||||
|
|
||||||
$json = file_get_contents('https://store.hpwallart.com/huelswitt/projects/' . $id);
|
$json = file_get_contents('https://store.hpwallart.com/huelswitt/projects/' . $id);
|
||||||
fwrite($h, "****** JSON: ******".$json."\n\n");
|
fwrite($h, '****** JSON: ******' . $json . "\n\n");
|
||||||
$decode = json_decode($json, true);
|
$decode = json_decode($json, true);
|
||||||
fwrite($h, "****** METHOD: ******".print_r($decode,true)."\n\n");
|
fwrite($h, '****** METHOD: ******' . print_r($decode, true) . "\n\n");
|
||||||
|
|
||||||
$price = 0;
|
$price = 0;
|
||||||
if (isset($decode['price']['base']['price'])) {
|
if (isset($decode['price']['base']['price'])) {
|
||||||
@ -235,21 +229,26 @@ class ServiceController extends AbstractController
|
|||||||
$price = $price + $decode['price']['pattern_design']['price'];
|
$price = $price + $decode['price']['pattern_design']['price'];
|
||||||
}
|
}
|
||||||
|
|
||||||
header('location: /service/steplayouter/savenewlayouter/format/json?modus=8&uuid='.$layoutDesignData->getArticleUuid().'&project_id='.$id.'&hplayouter_price='.$price);
|
header('location: /service/steplayouter/savenewlayouter/format/json?modus=8&uuid=' .
|
||||||
|
$layoutDesignData->getArticleUuid() .
|
||||||
|
'&project_id=' .
|
||||||
|
$id .
|
||||||
|
'&hplayouter_price=' .
|
||||||
|
$price);
|
||||||
|
|
||||||
exit;
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function getSettings(): array
|
||||||
protected function getSettings(): array {
|
{
|
||||||
$headers = $this->getAllHeadersJorge();
|
$headers = $this->getAllHeadersJorge();
|
||||||
|
|
||||||
return $this->decrypt($headers['X-Auth-Token']);
|
return $this->decrypt($headers['X-Auth-Token']);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function decrypt( $enc ): array {
|
protected function decrypt($enc): array
|
||||||
|
{
|
||||||
$str = base64_decode(str_replace("PLUS", "+", $enc));
|
$str = base64_decode(str_replace('PLUS', '+', $enc));
|
||||||
|
|
||||||
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
|
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
|
||||||
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
|
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
|
||||||
@ -260,18 +259,14 @@ class ServiceController extends AbstractController
|
|||||||
|
|
||||||
protected function getAllHeadersJorge(): array
|
protected function getAllHeadersJorge(): array
|
||||||
{
|
{
|
||||||
$returnArr = array();
|
$returnArr = [];
|
||||||
|
|
||||||
//JORGE
|
//JORGE
|
||||||
foreach ($_SERVER AS $key => $value) {
|
foreach ($_SERVER as $key => $value) {
|
||||||
$key = preg_replace('/^HTTP_/i', '', $key);
|
$key = preg_replace('/^HTTP_/i', '', $key);
|
||||||
$key = str_replace('REDIRECT_', '', $key);
|
$key = str_replace('REDIRECT_', '', $key);
|
||||||
$key = str_replace('Redirect-', '', $key);
|
$key = str_replace('Redirect-', '', $key);
|
||||||
$key = str_replace(
|
$key = str_replace(' ', '-', ucwords(strtolower(str_replace(['-', '_'], ' ', $key))));
|
||||||
" ",
|
|
||||||
"-",
|
|
||||||
ucwords(strtolower(str_replace(array("-", "_"), " ", $key)))
|
|
||||||
);
|
|
||||||
$returnArr[$key] = $value;
|
$returnArr[$key] = $value;
|
||||||
}
|
}
|
||||||
ksort($returnArr);
|
ksort($returnArr);
|
||||||
@ -279,3 +274,4 @@ class ServiceController extends AbstractController
|
|||||||
return $returnArr;
|
return $returnArr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
5
src/new/var/plugins/System/PSC/HPLayouter/Document/Render.php → src/new/var/plugins/Custom/PSC/HPLayouter/Document/Render.php
Executable file → Normal file
5
src/new/var/plugins/System/PSC/HPLayouter/Document/Render.php → src/new/var/plugins/Custom/PSC/HPLayouter/Document/Render.php
Executable file → Normal file
@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Plugin\System\PSC\HPLayouter\Document;
|
|
||||||
|
namespace Plugin\Custom\PSC\HPLayouter\Document;
|
||||||
|
|
||||||
use Doctrine\ODM\MongoDB\Mapping\Annotations\EmbeddedDocument;
|
use Doctrine\ODM\MongoDB\Mapping\Annotations\EmbeddedDocument;
|
||||||
use Doctrine\ODM\MongoDB\Mapping\Annotations\Field;
|
use Doctrine\ODM\MongoDB\Mapping\Annotations\Field;
|
||||||
@ -28,5 +29,5 @@ class Render
|
|||||||
{
|
{
|
||||||
$this->urlIdentifier = $urlIdentifier;
|
$this->urlIdentifier = $urlIdentifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Plugin\System\PSC\HPLayouter\Form\Field;
|
namespace Plugin\Custom\PSC\HPLayouter\Form\Field;
|
||||||
|
|
||||||
use Plugin\System\PSC\HPLayouter\Form\Group\HPLayouter;
|
use Plugin\System\PSC\HPLayouter\Form\Group\HPLayouter;
|
||||||
use PSC\Shop\EntityBundle\Entity\Cms;
|
use PSC\Shop\EntityBundle\Entity\Cms;
|
||||||
@ -14,7 +14,6 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
|
|||||||
|
|
||||||
class EnableCheckbox implements Field
|
class EnableCheckbox implements Field
|
||||||
{
|
{
|
||||||
|
|
||||||
public function getTemplate()
|
public function getTemplate()
|
||||||
{
|
{
|
||||||
return '@PluginSystemPSCHPLayouter/form/field/enable_checkbox.html.twig';
|
return '@PluginSystemPSCHPLayouter/form/field/enable_checkbox.html.twig';
|
||||||
@ -30,16 +29,14 @@ class EnableCheckbox implements Field
|
|||||||
*/
|
*/
|
||||||
public function formPreSubmit(FormEvent $event)
|
public function formPreSubmit(FormEvent $event)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
{
|
{
|
||||||
$builder->add('hplayouter', CheckboxType::class, array(
|
$builder->add('hplayouter', CheckboxType::class, [
|
||||||
'label' => 'HP Layouter aktivieren',
|
'label' => 'HP Layouter aktivieren',
|
||||||
'required' => false
|
'required' => false,
|
||||||
));
|
]);
|
||||||
|
|
||||||
return $builder;
|
return $builder;
|
||||||
}
|
}
|
||||||
@ -64,3 +61,4 @@ class EnableCheckbox implements Field
|
|||||||
// TODO: Implement formPreSetData() method.
|
// TODO: Implement formPreSetData() method.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Plugin\System\PSC\HPLayouter\Form\Group;
|
namespace Plugin\Custom\PSC\HPLayouter\Form\Group;
|
||||||
|
|
||||||
use PSC\Shop\EntityBundle\Entity\Cms;
|
use PSC\Shop\EntityBundle\Entity\Cms;
|
||||||
use PSC\System\PluginBundle\Form\Group;
|
use PSC\System\PluginBundle\Form\Group;
|
||||||
@ -29,3 +29,4 @@ class HPLayouter extends Group
|
|||||||
return self::GROUP_ID;
|
return self::GROUP_ID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
10
src/new/var/plugins/System/PSC/HPLayouter/Plugin.php → src/new/var/plugins/Custom/PSC/HPLayouter/Plugin.php
Executable file → Normal file
10
src/new/var/plugins/System/PSC/HPLayouter/Plugin.php → src/new/var/plugins/Custom/PSC/HPLayouter/Plugin.php
Executable file → Normal file
@ -1,11 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Plugin\System\PSC\HPLayouter;
|
|
||||||
|
namespace Plugin\Custom\PSC\HPLayouter;
|
||||||
|
|
||||||
use PSC\System\PluginBundle\Plugin\Base;
|
use PSC\System\PluginBundle\Plugin\Base;
|
||||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
|
|
||||||
class Plugin extends Base implements \PSC\System\PluginBundle\Interfaces\Plugin {
|
class Plugin extends Base implements \PSC\System\PluginBundle\Interfaces\Plugin
|
||||||
|
{
|
||||||
protected $name = 'HP Layouter Module';
|
protected $name = 'HP Layouter Module';
|
||||||
|
|
||||||
public function getType()
|
public function getType()
|
||||||
@ -22,6 +23,5 @@ class Plugin extends Base implements \PSC\System\PluginBundle\Interfaces\Plugin
|
|||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
50
src/new/var/plugins/System/PSC/HPLayouter/Queue/Render.php → src/new/var/plugins/Custom/PSC/HPLayouter/Queue/Render.php
Executable file → Normal file
50
src/new/var/plugins/System/PSC/HPLayouter/Queue/Render.php → src/new/var/plugins/Custom/PSC/HPLayouter/Queue/Render.php
Executable file → Normal file
@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Plugin\System\PSC\HPLayouter\Queue;
|
|
||||||
|
namespace Plugin\Custom\PSC\HPLayouter\Queue;
|
||||||
|
|
||||||
use Doctrine\Bundle\MongoDBBundle\ManagerRegistry;
|
use Doctrine\Bundle\MongoDBBundle\ManagerRegistry;
|
||||||
use Doctrine\ODM\MongoDB\DocumentManager;
|
use Doctrine\ODM\MongoDB\DocumentManager;
|
||||||
@ -30,8 +31,11 @@ class Render implements QueueInterface, ConfigurableElementInterface
|
|||||||
private $_doctrine_mongodb = null;
|
private $_doctrine_mongodb = null;
|
||||||
private $_error = null;
|
private $_error = null;
|
||||||
|
|
||||||
function __construct(FormFactoryInterface $formFactory, EntityManagerInterface $entityManager, DocumentManager $doctrine_mongodb)
|
function __construct(
|
||||||
{
|
FormFactoryInterface $formFactory,
|
||||||
|
EntityManagerInterface $entityManager,
|
||||||
|
DocumentManager $doctrine_mongodb,
|
||||||
|
) {
|
||||||
$this->_formFactory = $formFactory;
|
$this->_formFactory = $formFactory;
|
||||||
$this->_entityManager = $entityManager;
|
$this->_entityManager = $entityManager;
|
||||||
$this->_doctrine_mongodb = $doctrine_mongodb;
|
$this->_doctrine_mongodb = $doctrine_mongodb;
|
||||||
@ -62,7 +66,10 @@ class Render implements QueueInterface, ConfigurableElementInterface
|
|||||||
|
|
||||||
public function getForm(FormBuilderInterface $builder, $form_options, EventInterface $event)
|
public function getForm(FormBuilderInterface $builder, $form_options, EventInterface $event)
|
||||||
{
|
{
|
||||||
$builder->add("urlIdentifier", TextType::class, array('label' => 'Url Identifier', 'attr' => array('class' => 'form-element')));
|
$builder->add('urlIdentifier', TextType::class, [
|
||||||
|
'label' => 'Url Identifier',
|
||||||
|
'attr' => ['class' => 'form-element'],
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function injectDocument(Form $form, EventInterface $event, Queue $objQueue)
|
public function injectDocument(Form $form, EventInterface $event, Queue $objQueue)
|
||||||
@ -88,51 +95,49 @@ class Render implements QueueInterface, ConfigurableElementInterface
|
|||||||
* @return bool
|
* @return bool
|
||||||
* @internal param Queue $doc
|
* @internal param Queue $doc
|
||||||
*/
|
*/
|
||||||
public function execute(EventInterface $event, Queue $queue) {
|
public function execute(EventInterface $event, Queue $queue)
|
||||||
|
{
|
||||||
/** @var \Plugin\System\PSC\HPLayouter\Document\Render $render */
|
/** @var \Plugin\System\PSC\HPLayouter\Document\Render $render */
|
||||||
$render = $queue->getQueueDocument();
|
$render = $queue->getQueueDocument();
|
||||||
$eventDoc = $queue->getEventDocument();
|
$eventDoc = $queue->getEventDocument();
|
||||||
|
|
||||||
$orderRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Order');
|
$orderRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Order');
|
||||||
/** @var \PSC\Shop\EntityBundle\Entity\Order $order */
|
/** @var \PSC\Shop\EntityBundle\Entity\Order $order */
|
||||||
$order = $orderRepo->findOneBy(array('uuid' => $event->getOrder()));
|
$order = $orderRepo->findOneBy(['uuid' => $event->getOrder()]);
|
||||||
|
|
||||||
/** @var Orderpos $position */
|
/** @var Orderpos $position */
|
||||||
foreach ($order->getPositions() as $position) {
|
foreach ($order->getPositions() as $position) {
|
||||||
|
|
||||||
if ($position->getLayouterMode() == 8) {
|
if ($position->getLayouterMode() == 8) {
|
||||||
/** @var Position $objDoc */
|
/** @var Position $objDoc */
|
||||||
$objDoc = $this->_doctrine_mongodb
|
$objDoc = $this->_doctrine_mongodb
|
||||||
->getRepository('PSCEntityBundle:Position')
|
->getRepository('PSCEntityBundle:Position')
|
||||||
->findOneByUid((string) $position->getId());
|
->findOneByUid((string) $position->getId());
|
||||||
|
|
||||||
|
$body = json_encode([
|
||||||
$body = json_encode(array(
|
'job_id' => $position->getUuid(),
|
||||||
"job_id" => $position->getUuid(),
|
'barcode_text' => 'test',
|
||||||
"barcode_text" => "test",
|
'callback_url' => '',
|
||||||
"callback_url" => ""
|
]);
|
||||||
));
|
$url =
|
||||||
$url = "https://store.hpwallart.com/".$render->getUrlIdentifier()."/projects/".$objDoc->getTemplatePrintId()."/trigger_rendering";
|
'https://store.hpwallart.com/' .
|
||||||
|
$render->getUrlIdentifier() .
|
||||||
|
'/projects/' .
|
||||||
|
$objDoc->getTemplatePrintId() .
|
||||||
|
'/trigger_rendering';
|
||||||
|
|
||||||
$client = new Client([
|
$client = new Client([
|
||||||
'headers' => [ 'Content-Type' => 'application/json' ]
|
'headers' => ['Content-Type' => 'application/json'],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$response = $client->post($url,
|
$response = $client->post($url, ['body' => $body]);
|
||||||
['body' => $body]
|
|
||||||
);
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$this->_error = $e->getMessage();
|
$this->_error = $e->getMessage();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,3 +146,4 @@ class Render implements QueueInterface, ConfigurableElementInterface
|
|||||||
return $this->_error;
|
return $this->_error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
psc_shop_plugin_hplayouter:
|
||||||
|
resource: "@PluginCustomPSCHPLayouter/Controller"
|
||||||
|
type: annotation
|
||||||
|
prefix: /plugin/custom/psc/hplayouter
|
||||||
|
|
||||||
|
|
||||||
@ -3,17 +3,17 @@ services:
|
|||||||
autowire: true
|
autowire: true
|
||||||
autoconfigure: true
|
autoconfigure: true
|
||||||
|
|
||||||
Plugin\System\PSC\HPLayouter\:
|
Plugin\Custom\PSC\HPLayouter\:
|
||||||
resource: '../../*/*'
|
resource: '../../*/*'
|
||||||
|
|
||||||
Plugin\System\PSC\HPLayouter\Form\Group\HPLayouter:
|
Plugin\Custom\PSC\HPLayouter\Form\Group\HPLayouter:
|
||||||
tags:
|
tags:
|
||||||
- { name: psc.backend.custom.groups }
|
- { name: psc.backend.custom.groups }
|
||||||
|
|
||||||
Plugin\System\PSC\HPLayouter\Form\Field\EnableCheckbox:
|
Plugin\Custom\PSC\HPLayouter\Form\Field\EnableCheckbox:
|
||||||
tags:
|
tags:
|
||||||
- { name: psc.backend.custom.fields }
|
- { name: psc.backend.custom.fields }
|
||||||
|
|
||||||
Plugin\System\PSC\HPLayouter\Queue\Render:
|
Plugin\Custom\PSC\HPLayouter\Queue\Render:
|
||||||
tags:
|
tags:
|
||||||
- { name: queues }
|
- { name: queues }
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Plugin\System\PSC\SecuPay\Api;
|
namespace Plugin\Custom\PSC\SecuPay\Api;
|
||||||
|
|
||||||
use PSC\System\SettingsBundle\Service\Shop;
|
use PSC\System\SettingsBundle\Service\Shop;
|
||||||
use Symfony\Component\Mime\Part\Multipart\FormDataPart;
|
use Symfony\Component\Mime\Part\Multipart\FormDataPart;
|
||||||
@ -19,9 +19,9 @@ class Base
|
|||||||
protected HttpClientInterface $client;
|
protected HttpClientInterface $client;
|
||||||
|
|
||||||
public $isProduction = false;
|
public $isProduction = false;
|
||||||
public $client_id = "";
|
public $client_id = '';
|
||||||
public $client_secret = "";
|
public $client_secret = '';
|
||||||
public $contract_id = "";
|
public $contract_id = '';
|
||||||
|
|
||||||
public function __construct(HttpClientInterface $client)
|
public function __construct(HttpClientInterface $client)
|
||||||
{
|
{
|
||||||
@ -39,11 +39,10 @@ class Base
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'Accept' => 'application/json',
|
'Accept' => 'application/json',
|
||||||
'Authorization' => 'Bearer ' . $token
|
'Authorization' => 'Bearer ' . $token,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected function generateToken(): array
|
protected function generateToken(): array
|
||||||
{
|
{
|
||||||
$baseUrl = $this->baseUrlTest;
|
$baseUrl = $this->baseUrlTest;
|
||||||
@ -52,13 +51,11 @@ class Base
|
|||||||
}
|
}
|
||||||
|
|
||||||
$response = $this->client->request('POST', $baseUrl . 'oauth/token', [
|
$response = $this->client->request('POST', $baseUrl . 'oauth/token', [
|
||||||
'headers' =>
|
'headers' => $this->buildHeaders(),
|
||||||
$this->buildHeaders()
|
|
||||||
,
|
|
||||||
'json' => [
|
'json' => [
|
||||||
'grant_type' => 'client_credentials',
|
'grant_type' => 'client_credentials',
|
||||||
'client_id' => $this->client_id,
|
'client_id' => $this->client_id,
|
||||||
'client_secret' => $this->client_secret
|
'client_secret' => $this->client_secret,
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user