diff --git a/.github/workflows/recipe.yaml b/.github/workflows/recipe.yaml index 602a445..d23f2db 100644 --- a/.github/workflows/recipe.yaml +++ b/.github/workflows/recipe.yaml @@ -2,7 +2,7 @@ name: Flex Recipe on: push: - branches: [ master ] + branches: [ $default-branch ] pull_request: jobs: @@ -14,8 +14,8 @@ jobs: strategy: fail-fast: false matrix: - php: ['8.1', '8.2', '8.3'] - sylius: ["~1.13.0", "1.14.0"] + php: [ '8.2', '8.3' ] + sylius: [ '~2.0.0', '~2.0.1' ] steps: - name: Setup PHP @@ -61,13 +61,14 @@ jobs: - name: Make sure to install the required version of Sylius working-directory: ./sylius run: | - composer require --no-install --no-scripts --no-progress sylius/sylius="${{ matrix.sylius }}" + composer require --no-install --no-scripts --no-progress --no-update sylius/sylius="${{ matrix.sylius }}" - name: Setup some requirements working-directory: ./sylius run: | composer config --no-plugins allow-plugins true composer config --no-plugins extra.symfony.allow-contrib true + composer config --no-plugins extra.symfony.require "7.2.*" composer config --no-plugins secure-http false composer config --no-plugins --unset platform.php composer config --no-plugins extra.symfony.docker false diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml index df6525a..e93dfe1 100644 --- a/.github/workflows/security.yaml +++ b/.github/workflows/security.yaml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - php: ['8.1', '8.2', '8.3'] + php: ['8.2', '8.3'] steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 35e1014..a87082e 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -2,7 +2,7 @@ name: Tests on: push: - branches: [ master ] + branches: [ $default-branch ] pull_request: jobs: @@ -14,7 +14,8 @@ jobs: strategy: fail-fast: false matrix: - php: ['8.1', '8.2', '8.3'] + php: [ '8.2', '8.3' ] + node: [ '20' ] env: SYMFONY_ARGS: --no-tls @@ -25,7 +26,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: - node-version: '14' + node-version: ${{ matrix.node }} - name: Setup PHP uses: shivammathur/setup-php@v2 with: diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 4b4e4e9..bbf4e6c 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -11,6 +11,8 @@ declare(strict_types=1); +use PhpCsFixer\UnsupportedPhpVersionAllowedConfigInterface; + $header = <<<'HEADER' This file is part of Monsieur Biz' Contact Request plugin for Sylius. @@ -267,4 +269,8 @@ ->setFinder($finder) ; +if ($config instanceof UnsupportedPhpVersionAllowedConfigInterface) { + $config->setUnsupportedPhpVersionAllowed(true); +} + return $config; diff --git a/Makefile b/Makefile index 7e4591f..b230cc9 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ .DEFAULT_GOAL := help SHELL=/bin/bash APP_DIR=tests/Application -SYLIUS_VERSION=1.14.0 +SYLIUS_VERSION=2.1.0 SYMFONY=cd ${APP_DIR} && symfony COMPOSER=symfony composer CONSOLE=${SYMFONY} console @@ -70,10 +70,11 @@ setup_application: rm -f ${APP_DIR}/yarn.lock (cd ${APP_DIR} && ${COMPOSER} config repositories.plugin '{"type": "path", "url": "../../"}') (cd ${APP_DIR} && ${COMPOSER} config extra.symfony.allow-contrib true) + (cd ${APP_DIR} && ${COMPOSER} config extra.symfony.require "7.2.*") (cd ${APP_DIR} && ${COMPOSER} config minimum-stability dev) (cd ${APP_DIR} && ${COMPOSER} config --no-plugins allow-plugins true) (cd ${APP_DIR} && ${COMPOSER} config --no-plugins --json extra.symfony.endpoint '["https://api.github.com/repos/monsieurbiz/symfony-recipes/contents/index.json?ref=flex/master","flex://defaults"]') - (cd ${APP_DIR} && ${COMPOSER} require --no-install --no-scripts --no-progress sylius/sylius="~${SYLIUS_VERSION}") # Make sure to install the required version of sylius because the sylius-standard has a soft constraint + (cd ${APP_DIR} && ${COMPOSER} require --no-install --no-scripts --no-progress --no-update sylius/sylius="~${SYLIUS_VERSION}") # Make sure to install the required version of sylius because the sylius-standard has a soft constraint $(MAKE) ${APP_DIR}/.php-version $(MAKE) ${APP_DIR}/php.ini (cd ${APP_DIR} && ${COMPOSER} install --no-interaction) diff --git a/README.md b/README.md index 3441297..c3b5120 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,12 @@ This plugin allows you to customize the contact page on the front-end of your Sy ## Compatibility -| Sylius Version | PHP Version | -|----------------|-----------------| -| 1.13 | 8.1 - 8.2 - 8.3 | -| 1.14 | 8.1 - 8.2 - 8.3 | +| Sylius Version | PHP Version | +|----------------|-------------| +| 2.0, 2.1 | 8.2 - 8.3 | + + +ℹ️ For Sylius 1.x, see our [1.x branch](https://github.com/monsieurbiz/SyliusContactRequestPlugin/tree/1.x) and all 1.x releases. ## Installation @@ -79,14 +81,22 @@ sylius_shop_contact_request: _locale: ^[A-Za-z]{2,4}(_([A-Za-z]{4}|[0-9]{3}))?(_([A-Za-z]{2}|[0-9]{3}))?$ methods: [GET, POST] defaults: - _controller: sylius.controller.shop.contact::requestAction + _controller: sylius_shop.controller.contact::requestAction _sylius: redirect: sylius_shop_homepage - template: '@MonsieurBizSyliusContactRequestPlugin/Shop/ContactRequest/request.html.twig' + template: '@MonsieurBizSyliusContactRequestPlugin/shop/contact/contact_request.html.twig' ``` This is the same as Sylius route configuration instead of the template key which is overridden to use the plugin template. +Copy the override template in your template directory to display name, company and phone number in the contact email: + +```bash +cp -Rv vendor/monsieurbiz/sylius-contact-request-plugin/src/Resources/templates/* templates/ +``` + +Then you can customize the template as you want. + ## Contributing You can find a way to run the plugin without effort in the file [DEVELOPMENT.md](./DEVELOPMENT.md). diff --git a/UPGRADE-2.0.md b/UPGRADE-2.0.md new file mode 100644 index 0000000..e5817c4 --- /dev/null +++ b/UPGRADE-2.0.md @@ -0,0 +1,6 @@ +# UPGRADE FROM `1.2` TO `2.0` + +- Service controller has changed from `sylius.controller.shop.contact` to `sylius_shop.controller.contact`, particularly in the `sylius_shop_contact_request` route in `config/routes/sylius_shop_contact_request_override.yaml`. +- Template path has changed from `@MonsieurBizSyliusContactRequestPlugin/Shop/ContactRequest/request.html.twig` to `@MonsieurBizSyliusContactRequestPlugin/shop/contact/contact_request.html.twig`, particularly in the `sylius_shop_contact_request` route in `config/routes/sylius_shop_contact_request_override.yaml`. +- Replace translation prefix from `monsieurbiz.contact_request.` to `monsieurbiz_contact_request.` for the context "messages". +- Replace translation prefix from `monsieurbiz.contact_request.` to `monsieurbiz_contact_request.contact.` for the context "validators". diff --git a/composer.json b/composer.json index 44f45d1..ee3dd11 100644 --- a/composer.json +++ b/composer.json @@ -5,10 +5,10 @@ "description": "Add a contact request plugin to your Sylius.", "license": "MIT", "require": { - "php": "^8.1", - "sylius/sylius": ">=1.13 <2.0", - "monsieurbiz/sylius-settings-plugin": "^1.2.0", - "monsieurbiz/sylius-rich-editor-plugin": "^2.8.0" + "php": "^8.2", + "sylius/sylius": "~2.0", + "monsieurbiz/sylius-settings-plugin": "^2.0.1", + "monsieurbiz/sylius-rich-editor-plugin": "^3.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.16", @@ -30,7 +30,7 @@ "cache:clear": "symfony-cmd", "assets:install %PUBLIC_DIR%": "symfony-cmd" }, - "phpcs": "PHP_CS_FIXER_IGNORE_ENV=1 php-cs-fixer fix --using-cache=no", + "phpcs": "php-cs-fixer fix --using-cache=no", "phpstan": "phpstan analyse -c phpstan.neon src/", "phpmd": "phpmd --exclude Migrations/* src/ ansi phpmd.xml", "phpunit": "phpunit", @@ -38,7 +38,7 @@ }, "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" }, "symfony": { "docker": false, diff --git a/dist/src/Context/Channel/RequestBased/HostnameAndPortBasedRequestResolver.php b/dist/src/Context/Channel/RequestBased/HostnameAndPortBasedRequestResolver.php new file mode 100644 index 0000000..d134150 --- /dev/null +++ b/dist/src/Context/Channel/RequestBased/HostnameAndPortBasedRequestResolver.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace App\Context\Channel\RequestBased; + +use Sylius\Component\Channel\Context\RequestBased\RequestResolverInterface; +use Sylius\Component\Channel\Model\ChannelInterface; +use Sylius\Component\Channel\Repository\ChannelRepositoryInterface; +use Symfony\Component\DependencyInjection\Attribute\AutoconfigureTag; +use Symfony\Component\HttpFoundation\Request; + +#[AutoconfigureTag('sylius.context.channel.request_based.resolver')] +final class HostnameAndPortBasedRequestResolver implements RequestResolverInterface +{ + public function __construct(private ChannelRepositoryInterface $channelRepository) + { + } + + public function findChannel(Request $request): ?ChannelInterface + { + return $this->channelRepository->findOneEnabledByHostname($request->getHost() . ':' . $request->getPort()); + } +} diff --git a/docs/images/admin-list.png b/docs/images/admin-list.png index 596c0b6..c32b152 100644 Binary files a/docs/images/admin-list.png and b/docs/images/admin-list.png differ diff --git a/docs/images/demo-shop.jpg b/docs/images/demo-shop.jpg index ce82ec2..7e26fef 100644 Binary files a/docs/images/demo-shop.jpg and b/docs/images/demo-shop.jpg differ diff --git a/docs/images/settings.jpg b/docs/images/settings.jpg index 161f174..b4f96c2 100644 Binary files a/docs/images/settings.jpg and b/docs/images/settings.jpg differ diff --git a/src/EmailManager/DecorateContactEmailManager.php b/src/EmailManager/DecorateContactEmailManager.php index 8d5c7bc..a89d837 100644 --- a/src/EmailManager/DecorateContactEmailManager.php +++ b/src/EmailManager/DecorateContactEmailManager.php @@ -17,29 +17,19 @@ use MonsieurBiz\SyliusContactRequestPlugin\Factory\ContactRequestFactoryInterface; use MonsieurBiz\SyliusSettingsPlugin\Provider\SettingsProviderInterface; use Sylius\Bundle\CoreBundle\Mailer\ContactEmailManagerInterface; -use Sylius\Bundle\ShopBundle\EmailManager\ContactEmailManagerInterface as OldContactEmailManagerInterface; use Sylius\Component\Core\Model\ChannelInterface; final class DecorateContactEmailManager implements ContactEmailManagerInterface { public function __construct( - private OldContactEmailManagerInterface|ContactEmailManagerInterface $decoratedContactEmailManager, + private ContactEmailManagerInterface $decoratedContactEmailManager, private ContactRequestFactoryInterface $contactRequestFactory, private EntityManagerInterface $contactRequestManager, private SettingsProviderInterface $settingProvider, ) { - if ($this->decoratedContactEmailManager instanceof OldContactEmailManagerInterface) { - trigger_deprecation( - 'sylius/shop-bundle', - '1.13', - 'The "%s" interface is deprecated, use "%s" instead.', - OldContactEmailManagerInterface::class, - ContactEmailManagerInterface::class, - ); - } } - public function sendContactRequest(array $data, array $recipients, ChannelInterface $channel = null, string $localeCode = null): void + public function sendContactRequest(array $data, array $recipients, ChannelInterface $channel, string $localeCode): void { $settingRecipients = $this->getContactRequestEmailRecipients(); if (!empty($settingRecipients)) { @@ -48,10 +38,6 @@ public function sendContactRequest(array $data, array $recipients, ChannelInterf $this->decoratedContactEmailManager->sendContactRequest($data, $recipients, $channel, $localeCode); - if (null === $channel) { - return; - } - $contactRequest = $this->contactRequestFactory->createNewFromChannelAndData($channel, $data); $this->contactRequestManager->persist($contactRequest); $this->contactRequestManager->flush(); diff --git a/src/Form/Extension/ContactTypeExtension.php b/src/Form/Extension/ContactTypeExtension.php index fd5b1bf..4fa2ab2 100644 --- a/src/Form/Extension/ContactTypeExtension.php +++ b/src/Form/Extension/ContactTypeExtension.php @@ -46,34 +46,34 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $builder ->add('name', TextType::class, [ - 'label' => 'monsieurbiz.contact_request.form.name', + 'label' => 'monsieurbiz_contact_request.form.name', 'required' => $isNameRequired, - 'constraints' => $this->getConstraints($isNameRequired, 'monsieurbiz.contact_request.name.not_blank'), + 'constraints' => $this->getConstraints($isNameRequired, 'monsieurbiz_contact_request.contact.name.not_blank'), ]) ->add('company', TextType::class, [ - 'label' => 'monsieurbiz.contact_request.form.company', + 'label' => 'monsieurbiz_contact_request.form.company', 'required' => $isCompanyRequired, - 'constraints' => $this->getConstraints($isCompanyRequired, 'monsieurbiz.contact_request.company.not_blank'), + 'constraints' => $this->getConstraints($isCompanyRequired, 'monsieurbiz_contact_request.contact.company.not_blank'), ]) ->add('phoneNumber', TelType::class, [ - 'label' => 'monsieurbiz.contact_request.form.phone_number', - 'invalid_message' => 'monsieurbiz.contact_request.phone_number.invalid', + 'label' => 'monsieurbiz_contact_request.form.phone_number', + 'invalid_message' => 'monsieurbiz_contact_request.contact.phone_number.invalid', 'required' => $isPhoneNumberRequired, - 'constraints' => $this->getConstraints($isPhoneNumberRequired, 'monsieurbiz.contact_request.phone_number.not_blank'), + 'constraints' => $this->getConstraints($isPhoneNumberRequired, 'monsieurbiz_contact_request.contact.phone_number.not_blank'), ]) ; $isConfirmationFieldDisplayed = (bool) $this->settingProvider->getSettingValue('monsieurbiz_contact_request.contact', 'field_confirmation_displayed'); if ($isConfirmationFieldDisplayed) { $confirmationFieldLabel = (string) $this->settingProvider->getSettingValue('monsieurbiz_contact_request.contact', 'field_confirmation_label'); - $confirmationFieldLabel = empty($confirmationFieldLabel) ? 'monsieurbiz.contact_request.form.confirmation_default_label' : $confirmationFieldLabel; + $confirmationFieldLabel = empty($confirmationFieldLabel) ? 'monsieurbiz_contact_request.form.confirmation_default_label' : $confirmationFieldLabel; $builder->add('confirmation', CheckboxType::class, [ 'label' => $confirmationFieldLabel, 'label_html' => true, 'required' => true, 'constraints' => [ new Assert\NotBlank([ - 'message' => 'monsieurbiz.contact_request.confirmation_error', + 'message' => 'monsieurbiz_contact_request.contact.confirmation_error', ]), ], ]); diff --git a/src/Form/Type/ContactSettingsType.php b/src/Form/Type/ContactSettingsType.php index 8d8637a..97ab24d 100644 --- a/src/Form/Type/ContactSettingsType.php +++ b/src/Form/Type/ContactSettingsType.php @@ -34,7 +34,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'content_before_form', RichEditorType::class, [ - 'label' => 'monsieurbiz.contact_request.ui.content_before_form', + 'label' => 'monsieurbiz_contact_request.ui.content_before_form', 'required' => false, ] ); @@ -43,7 +43,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'content_after_form', RichEditorType::class, [ - 'label' => 'monsieurbiz.contact_request.ui.content_after_form', + 'label' => 'monsieurbiz_contact_request.ui.content_after_form', 'required' => false, ] ); @@ -52,8 +52,8 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'email_recipients', TextType::class, [ - 'label' => 'monsieurbiz.contact_request.ui.email_recipients', - 'help' => 'monsieurbiz.contact_request.ui.email_recipients_help', + 'label' => 'monsieurbiz_contact_request.ui.email_recipients', + 'help' => 'monsieurbiz_contact_request.ui.email_recipients_help', 'required' => false, ] ); @@ -62,8 +62,8 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'phone_number', TextType::class, [ - 'label' => 'monsieurbiz.contact_request.ui.phone_number', - 'help' => 'monsieurbiz.contact_request.ui.phone_number_help', + 'label' => 'monsieurbiz_contact_request.ui.phone_number', + 'help' => 'monsieurbiz_contact_request.ui.phone_number_help', 'required' => false, ] ); @@ -72,7 +72,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'field_name_displayed', CheckboxType::class, [ - 'label' => 'monsieurbiz.contact_request.settings.field_name_displayed', + 'label' => 'monsieurbiz_contact_request.settings.field_name_displayed', 'required' => false, ] ); @@ -81,7 +81,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'field_name_required', CheckboxType::class, [ - 'label' => 'monsieurbiz.contact_request.settings.field_name_required', + 'label' => 'monsieurbiz_contact_request.settings.field_name_required', 'required' => false, ] ); @@ -90,7 +90,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'field_company_displayed', CheckboxType::class, [ - 'label' => 'monsieurbiz.contact_request.settings.field_company_displayed', + 'label' => 'monsieurbiz_contact_request.settings.field_company_displayed', 'required' => false, ] ); @@ -99,7 +99,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'field_company_required', CheckboxType::class, [ - 'label' => 'monsieurbiz.contact_request.settings.field_company_required', + 'label' => 'monsieurbiz_contact_request.settings.field_company_required', 'required' => false, ] ); @@ -108,7 +108,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'field_phone_number_displayed', CheckboxType::class, [ - 'label' => 'monsieurbiz.contact_request.settings.field_phone_number_displayed', + 'label' => 'monsieurbiz_contact_request.settings.field_phone_number_displayed', 'required' => false, ] ); @@ -117,7 +117,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'field_phone_number_required', CheckboxType::class, [ - 'label' => 'monsieurbiz.contact_request.settings.field_phone_number_required', + 'label' => 'monsieurbiz_contact_request.settings.field_phone_number_required', 'required' => false, ] ); @@ -126,7 +126,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'field_confirmation_displayed', CheckboxType::class, [ - 'label' => 'monsieurbiz.contact_request.settings.field_confirmation_displayed', + 'label' => 'monsieurbiz_contact_request.settings.field_confirmation_displayed', 'required' => false, ] ); @@ -135,7 +135,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'field_confirmation_label', TextareaType::class, [ - 'label' => 'monsieurbiz.contact_request.settings.field_confirmation_label', + 'label' => 'monsieurbiz_contact_request.settings.field_confirmation_label', 'required' => false, ] ); @@ -144,7 +144,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'breadcrumbs_title', TextType::class, [ - 'label' => 'monsieurbiz.contact_request.ui.breadcrumbs_title', + 'label' => 'monsieurbiz_contact_request.ui.breadcrumbs_title', 'required' => false, ] ); @@ -153,7 +153,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'meta_title', TextType::class, [ - 'label' => 'monsieurbiz.contact_request.ui.meta_title', + 'label' => 'monsieurbiz_contact_request.ui.meta_title', 'required' => false, ] ); @@ -162,7 +162,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'meta_description', TextType::class, [ - 'label' => 'monsieurbiz.contact_request.ui.meta_description', + 'label' => 'monsieurbiz_contact_request.ui.meta_description', 'required' => false, ] ); @@ -171,7 +171,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'meta_keywords', TextType::class, [ - 'label' => 'monsieurbiz.contact_request.ui.meta_keywords', + 'label' => 'monsieurbiz_contact_request.ui.meta_keywords', 'required' => false, ] ); @@ -180,7 +180,7 @@ public function buildForm(FormBuilderInterface $builder, array $options): void 'hide_sylius_default_content', CheckboxType::class, [ - 'label' => 'monsieurbiz.contact_request.ui.hide_sylius_default_content', + 'label' => 'monsieurbiz_contact_request.ui.hide_sylius_default_content', 'required' => false, ] ); diff --git a/src/Menu/AdminMenuListener.php b/src/Menu/AdminMenuListener.php index a12cf77..d90e13e 100644 --- a/src/Menu/AdminMenuListener.php +++ b/src/Menu/AdminMenuListener.php @@ -24,7 +24,7 @@ public function __invoke(MenuBuilderEvent $event): void $customerMenu = $menu->getChild('customers'); $customerMenu?->addChild('monsieurbiz-contact-request', ['route' => 'monsieurbiz_contact_request_admin_contact_request_index']) - ->setLabel('monsieurbiz.contact_request.ui.contact_requests') + ->setLabel('monsieurbiz_contact_request.ui.contact_requests') ->setLabelAttribute('icon', 'phone') ; } diff --git a/src/Menu/ContactUrlProvider.php b/src/Menu/ContactUrlProvider.php index 2fb6611..0cf9383 100644 --- a/src/Menu/ContactUrlProvider.php +++ b/src/Menu/ContactUrlProvider.php @@ -41,7 +41,7 @@ protected function getResults(string $locale, string $search = ''): iterable { return [ (object) [ - 'title' => $this->translator->trans('monsieurbiz.contact_request.ui.contact_page', [], 'messages', $locale), + 'title' => $this->translator->trans('monsieurbiz_contact_request.ui.contact_page', [], 'messages', $locale), ], ]; } diff --git a/src/Resources/config/config.yaml b/src/Resources/config/config.yaml index 32b2b73..bb7f8f4 100644 --- a/src/Resources/config/config.yaml +++ b/src/Resources/config/config.yaml @@ -2,3 +2,4 @@ imports: - { resource: 'resources.yaml' } - { resource: 'grids/*' } - { resource: 'monsieurbiz/*.yaml' } + - { resource: 'twig_hooks/**/*.yaml' } diff --git a/src/Resources/config/grids/contact_request.yaml b/src/Resources/config/grids/contact_request.yaml index 756a4b1..58d1931 100644 --- a/src/Resources/config/grids/contact_request.yaml +++ b/src/Resources/config/grids/contact_request.yaml @@ -31,7 +31,7 @@ sylius_grid: type: twig label: sylius.ui.channel options: - template: "@SyliusAdmin/Channel/Grid/Field/name.html.twig" + template: "@SyliusAdmin/shared/grid/field/channel.html.twig" createdAt: label: sylius.ui.created_at type: datetime diff --git a/src/Resources/config/monsieurbiz/settings.yaml b/src/Resources/config/monsieurbiz/settings.yaml index 2bb9f62..5dffe98 100644 --- a/src/Resources/config/monsieurbiz/settings.yaml +++ b/src/Resources/config/monsieurbiz/settings.yaml @@ -2,9 +2,9 @@ monsieurbiz_sylius_settings: plugins: monsieurbiz_contact_request.contact: vendor_name: Monsieur Biz - plugin_name: monsieurbiz.contact_request.settings.plugin_name - description: monsieurbiz.contact_request.settings.description - icon: envelope outline + plugin_name: monsieurbiz_contact_request.settings.plugin_name + description: monsieurbiz_contact_request.settings.description + icon: tabler:mail use_locales: true classes: form: MonsieurBiz\SyliusContactRequestPlugin\Form\Type\ContactSettingsType diff --git a/src/Resources/config/routes/admin.yaml b/src/Resources/config/routes/admin.yaml index 4be4ba4..b6f8e8e 100644 --- a/src/Resources/config/routes/admin.yaml +++ b/src/Resources/config/routes/admin.yaml @@ -2,23 +2,8 @@ monsieurbiz_contact_request_admin_contact_request: resource: | alias: monsieurbiz_contact_request.contact_request section: admin - templates: "@SyliusAdmin/Crud" + templates: "@SyliusAdmin\\shared\\crud" redirect: index - except: ['update', 'create', 'show'] + except: ['update', 'create'] grid: monsieurbiz_contact_request - vars: - index: - icon: 'phone' - header: 'monsieurbiz.contact_request.ui.contact_requests' - breadcrumb: 'monsieurbiz.contact_request.ui.contact_requests' type: sylius.resource - -monsieurbiz_contact_request_admin_contact_request_show: - path: /contact-requests/{id} - methods: [ GET ] - defaults: - _controller: monsieurbiz_contact_request.controller.contact_request::showAction - _sylius: - section: admin - template: "@MonsieurBizSyliusContactRequestPlugin/Admin/ContactRequest/Crud/show.html.twig" - permission: true diff --git a/src/Resources/config/services.yaml b/src/Resources/config/services.yaml index c98c919..d96677d 100644 --- a/src/Resources/config/services.yaml +++ b/src/Resources/config/services.yaml @@ -10,7 +10,7 @@ services: # Save contact request entity MonsieurBiz\SyliusContactRequestPlugin\EmailManager\DecorateContactEmailManager: - decorates: 'sylius.mailer.contact_email_manager.shop' + decorates: 'sylius_shop.mailer.contact_email_manager' arguments: [ '@.inner' ] # Add admin menu diff --git a/src/Resources/config/twig_hooks/admin.yaml b/src/Resources/config/twig_hooks/admin.yaml new file mode 100644 index 0000000..f8a8940 --- /dev/null +++ b/src/Resources/config/twig_hooks/admin.yaml @@ -0,0 +1,28 @@ +sylius_twig_hooks: + hooks: + 'sylius_admin.contact_request.show.content': + page_body: + template: '@MonsieurBizSyliusContactRequestPlugin/admin/contact_request/show/content/page_body.html.twig' + priority: 0 + + 'sylius_admin.contact_request.show.content.page_body': + general: + template: '@MonsieurBizSyliusContactRequestPlugin/admin/contact_request/show/content/page_body/general.html.twig' + priority: 0 + + 'sylius_admin.contact_request.show.content.page_body.general': + email: + template: '@MonsieurBizSyliusContactRequestPlugin/admin/contact_request/show/content/page_body/general/email.html.twig' + priority: 100 + name: + template: '@MonsieurBizSyliusContactRequestPlugin/admin/contact_request/show/content/page_body/general/name.html.twig' + priority: 90 + company: + template: '@MonsieurBizSyliusContactRequestPlugin/admin/contact_request/show/content/page_body/general/company.html.twig' + priority: 80 + phone_number: + template: '@MonsieurBizSyliusContactRequestPlugin/admin/contact_request/show/content/page_body/general/phone_number.html.twig' + priority: 70 + message: + template: '@MonsieurBizSyliusContactRequestPlugin/admin/contact_request/show/content/page_body/general/message.html.twig' + priority: 60 diff --git a/src/Resources/config/twig_hooks/shop.yaml b/src/Resources/config/twig_hooks/shop.yaml new file mode 100644 index 0000000..92e4878 --- /dev/null +++ b/src/Resources/config/twig_hooks/shop.yaml @@ -0,0 +1,41 @@ +sylius_twig_hooks: + hooks: + 'monsieurbiz.contact.contact_request#metatags': + contact_request: + template: '@MonsieurBizSyliusContactRequestPlugin/shop/contact/contact_request/metatags.html.twig' + priority: 0 + + 'sylius_shop.contact.contact_request': + breadcrumb: + template: '@MonsieurBizSyliusContactRequestPlugin/shop/contact/contact_request/breadcrumb.html.twig' + priority: 200 + + 'sylius_shop.contact.contact_request.content': + header: + template: '@MonsieurBizSyliusContactRequestPlugin/shop/contact/contact_request/content/header.html.twig' + priority: 100 + before_form: + template: '@MonsieurBizSyliusContactRequestPlugin/shop/contact/contact_request/content/before_form.html.twig' + priority: 50 + after_form: + template: '@MonsieurBizSyliusContactRequestPlugin/shop/contact/contact_request/content/after_form.html.twig' + priority: -50 + + 'sylius_shop.contact.contact_request.content.default_header': + header: + template: '@SyliusShop/contact/contact_request/content/header.html.twig' + priority: 100 + + 'sylius_shop.contact.contact_request.content.form': + name: + template: '@MonsieurBizSyliusContactRequestPlugin/shop/contact/contact_request/content/form/name.html.twig' + priority: 150 + company: + template: '@MonsieurBizSyliusContactRequestPlugin/shop/contact/contact_request/content/form/company.html.twig' + priority: 140 + phone_number: + template: '@MonsieurBizSyliusContactRequestPlugin/shop/contact/contact_request/content/form/phone_number.html.twig' + priority: 130 + confirmation: + template: '@MonsieurBizSyliusContactRequestPlugin/shop/contact/contact_request/content/form/confirmation.html.twig' + priority: 50 diff --git a/src/Resources/templates/bundles/SyliusCoreBundle/Email/Blocks/ContactRequest/_content.html.twig b/src/Resources/templates/bundles/SyliusCoreBundle/Email/Blocks/ContactRequest/_content.html.twig index d5a4bd2..065c85b 100644 --- a/src/Resources/templates/bundles/SyliusCoreBundle/Email/Blocks/ContactRequest/_content.html.twig +++ b/src/Resources/templates/bundles/SyliusCoreBundle/Email/Blocks/ContactRequest/_content.html.twig @@ -6,7 +6,7 @@ {% if data.name|default('') is not empty %}
- {{ 'monsieurbiz.contact_request.form.name'|trans({}, null, localeCode) }}: + {{ 'monsieurbiz_contact_request.form.name'|trans({}, null, localeCode) }}:
{{ data.name|default('') }}
@@ -14,14 +14,14 @@ {% if data.company|default('') is not empty %}
- {{ 'monsieurbiz.contact_request.form.company'|trans({}, null, localeCode) }}: + {{ 'monsieurbiz_contact_request.form.company'|trans({}, null, localeCode) }}:
{{ data.company|default('') }}
{% endif %} {% if data.phoneNumber|default('') is not empty %}
- {{ 'monsieurbiz.contact_request.form.phone_number'|trans({}, null, localeCode) }}: + {{ 'monsieurbiz_contact_request.form.phone_number'|trans({}, null, localeCode) }}:
{{ data.phoneNumber|default('') }}
{% endif %} diff --git a/src/Resources/translations/messages.en.yaml b/src/Resources/translations/messages.en.yaml index 497bdc2..35332d4 100644 --- a/src/Resources/translations/messages.en.yaml +++ b/src/Resources/translations/messages.en.yaml @@ -1,39 +1,37 @@ -monsieurbiz: - contact_request: - ui: - contact_requests: 'Contact requests' - contact_request: 'Contact request' - email: 'Email' - message: 'Message' - content_before_form: 'Content before the contact form' - content_after_form: 'Content after the contact form' - meta_title: "Meta Title" - meta_description: "Meta Description" - meta_keywords: "Meta Keyword" - hide_sylius_default_content: "Hide Sylius default content" - contact_page: 'Contact page' - email_recipients: 'Contact request emails recipients' - email_recipients_help: 'Separated by comma' - phone_number: 'Phone number' - phone_number_help: 'Phone number to display on website' - breadcrumbs_title: 'Title for breadcrumbs' - form: - name: 'Name' - company: 'Company' - phone_number: 'Phone number' - confirmation_default_label: 'By using this form, you consent to our collection, use and disclosure of your personal information for purposes related to your request.' - settings: - plugin_name: 'Contact page' - description: 'Configure the contact page' - field_name_displayed: 'Display the name field' - field_name_required: 'The name field is required' - field_company_displayed: 'Display the company field' - field_company_required: 'The company field is required' - field_phone_number_displayed: 'Display the phone field' - field_phone_number_required: 'The phone field is required' - field_confirmation_displayed: 'Display the confirmation field' - field_confirmation_label : 'Confirmation field label' - +monsieurbiz_contact_request: + ui: + contact_requests: 'Contact requests' + contact_request: 'Contact request' + email: 'Email' + message: 'Message' + content_before_form: 'Content before the contact form' + content_after_form: 'Content after the contact form' + meta_title: "Meta Title" + meta_description: "Meta Description" + meta_keywords: "Meta Keyword" + hide_sylius_default_content: "Hide Sylius default content" + contact_page: 'Contact page' + email_recipients: 'Contact request emails recipients' + email_recipients_help: 'Separated by comma' + phone_number: 'Phone number' + phone_number_help: 'Phone number to display on website' + breadcrumbs_title: 'Title for breadcrumbs' + form: + name: 'Name' + company: 'Company' + phone_number: 'Phone number' + confirmation_default_label: 'By using this form, you consent to our collection, use and disclosure of your personal information for purposes related to your request.' + settings: + plugin_name: 'Contact page' + description: 'Configure the contact page' + field_name_displayed: 'Display the name field' + field_name_required: 'The name field is required' + field_company_displayed: 'Display the company field' + field_company_required: 'The company field is required' + field_phone_number_displayed: 'Display the phone field' + field_phone_number_required: 'The phone field is required' + field_confirmation_displayed: 'Display the confirmation field' + field_confirmation_label : 'Confirmation field label' monsieurbiz_menu: provider: contact: 'Contact page' diff --git a/src/Resources/translations/messages.fr.yaml b/src/Resources/translations/messages.fr.yaml index 67f162d..030f27f 100644 --- a/src/Resources/translations/messages.fr.yaml +++ b/src/Resources/translations/messages.fr.yaml @@ -1,38 +1,37 @@ -monsieurbiz: - contact_request: - ui: - contact_requests: 'Demandes de contact' - contact_request: 'Demande de contact' - email: 'Email' - message: 'Message' - content_before_form: 'Contenu avant le formulaire de contact' - content_after_form: 'Contenu après le formulaire de contact' - meta_title: "Meta Title" - meta_description: "Meta Description" - meta_keywords: "Meta Keyword" - hide_sylius_default_content: "Masquer le contenu par défaut de Sylius" - contact_page: 'Page de contact' - email_recipients: 'Destinataires des demandes de contact' - email_recipients_help: 'Séparés par une virgule' - phone_number: 'Numéro de téléphone' - phone_number_help: 'Numéro de téléphone à afficher sur le site' - breadcrumbs_title: 'Titre pour le fil d''ariane' - form: - name: 'Nom' - company: 'Entreprise' - phone_number: 'Numéro de téléphone' - confirmation_default_label: 'En utilisant ce formulaire, vous acceptez à ce que nous recueillions, utilisions et divulguions vos renseignements personnels à des fins liées à votre demande.' - settings: - plugin_name: 'Page de contact' - description: 'Configurer la page de contact' - field_name_displayed: 'Afficher le champ nom' - field_name_required: 'Le champ nom est requis' - field_company_displayed: 'Afficher le champ entreprise' - field_company_required: 'Le champ entreprise est requis' - field_phone_number_displayed: 'Afficher le champ téléphone' - field_phone_number_required: 'Le champ téléphone est requis' - field_confirmation_displayed: 'Afficher le champ de confirmation de l''envoi' - field_confirmation_label : 'Libellé du champ de confirmation de l''envoi' +monsieurbiz_contact_request: + ui: + contact_requests: 'Demandes de contact' + contact_request: 'Demande de contact' + email: 'Email' + message: 'Message' + content_before_form: 'Contenu avant le formulaire de contact' + content_after_form: 'Contenu après le formulaire de contact' + meta_title: "Meta Title" + meta_description: "Meta Description" + meta_keywords: "Meta Keyword" + hide_sylius_default_content: "Masquer le contenu par défaut de Sylius" + contact_page: 'Page de contact' + email_recipients: 'Destinataires des demandes de contact' + email_recipients_help: 'Séparés par une virgule' + phone_number: 'Numéro de téléphone' + phone_number_help: 'Numéro de téléphone à afficher sur le site' + breadcrumbs_title: 'Titre pour le fil d''ariane' + form: + name: 'Nom' + company: 'Entreprise' + phone_number: 'Numéro de téléphone' + confirmation_default_label: 'En utilisant ce formulaire, vous acceptez à ce que nous recueillions, utilisions et divulguions vos renseignements personnels à des fins liées à votre demande.' + settings: + plugin_name: 'Page de contact' + description: 'Configurer la page de contact' + field_name_displayed: 'Afficher le champ nom' + field_name_required: 'Le champ nom est requis' + field_company_displayed: 'Afficher le champ entreprise' + field_company_required: 'Le champ entreprise est requis' + field_phone_number_displayed: 'Afficher le champ téléphone' + field_phone_number_required: 'Le champ téléphone est requis' + field_confirmation_displayed: 'Afficher le champ de confirmation de l''envoi' + field_confirmation_label : 'Libellé du champ de confirmation de l''envoi' monsieurbiz_menu: provider: contact: 'Page de contact' diff --git a/src/Resources/translations/validators.en.yaml b/src/Resources/translations/validators.en.yaml index 2490ad3..d032a75 100644 --- a/src/Resources/translations/validators.en.yaml +++ b/src/Resources/translations/validators.en.yaml @@ -1,5 +1,5 @@ -monsieurbiz: - contact_request: +monsieurbiz_contact_request: + contact: confirmation_error: 'You need to approve this field' name: not_blank: Please enter your name diff --git a/src/Resources/translations/validators.fr.yaml b/src/Resources/translations/validators.fr.yaml index 9d5737a..c38586f 100644 --- a/src/Resources/translations/validators.fr.yaml +++ b/src/Resources/translations/validators.fr.yaml @@ -1,5 +1,5 @@ -monsieurbiz: - contact_request: +monsieurbiz_contact_request: + contact: confirmation_error: 'Vous devez approuver ce champ' name: not_blank: Veuillez entrer votre nom diff --git a/src/Resources/views/Admin/ContactRequest/Crud/show.html.twig b/src/Resources/views/Admin/ContactRequest/Crud/show.html.twig deleted file mode 100644 index 4b33fd2..0000000 --- a/src/Resources/views/Admin/ContactRequest/Crud/show.html.twig +++ /dev/null @@ -1,65 +0,0 @@ -{% extends '@SyliusAdmin/layout.html.twig' %} -{% import '@SyliusAdmin/Macro/breadcrumb.html.twig' as breadcrumb %} - -{% block title %}{{ 'monsieurbiz.contact_request.ui.contact_requests'|trans }} {{ parent() }}{% endblock %} - -{% block content %} - - {% set breadcrumbs = [ - { label: 'sylius.ui.administration'|trans, url: path('sylius_admin_dashboard') }, - { label: 'monsieurbiz.contact_request.ui.contact_requests'|trans, url: path('monsieurbiz_contact_request_admin_contact_request_index') }, - { label: resource.id } - ] %} - -
-
-

- -
- {{ 'monsieurbiz.contact_request.ui.contact_request'|trans }} -
-

-
-
- - {{ breadcrumb.crumble(breadcrumbs) }} - -
- -
-
- {{ sylius_template_event('monsieurbiz_contact.admin.contact_request.before_content', {'resource': resource}) }} -

{{ 'monsieurbiz.contact_request.ui.email'|trans }}

-

- {{ resource.email|default('') }} -

- - {% if resource.name|default('') is not empty %} -

{{ 'monsieurbiz.contact_request.form.name'|trans }}

-

- {{ resource.name|default('') }} -

- {% endif %} - - {% if resource.company|default('') is not empty %} -

{{ 'monsieurbiz.contact_request.form.company'|trans }}

-

- {{ resource.company|default('') }} -

- {% endif %} - - {% if resource.phoneNumber|default('') is not empty %} -

{{ 'monsieurbiz.contact_request.form.phone_number'|trans }}

-

- {{ resource.phoneNumber|default('') }} -

- {% endif %} - -

{{ 'monsieurbiz.contact_request.ui.message'|trans }}

-
- {{ resource.message|nl2br|default('')|raw }} -
- {{ sylius_template_event('monsieurbiz_contact.admin.contact_request.after_content', {'resource': resource}) }} -
-
-{% endblock %} diff --git a/src/Resources/views/Shop/ContactRequest/request.html.twig b/src/Resources/views/Shop/ContactRequest/request.html.twig deleted file mode 100644 index 668c351..0000000 --- a/src/Resources/views/Shop/ContactRequest/request.html.twig +++ /dev/null @@ -1,80 +0,0 @@ -{% extends '@SyliusShop/layout.html.twig' %} - -{% form_theme form '@SyliusShop/Form/theme.html.twig' %} - -{% set metaTitle = setting('monsieurbiz_contact_request.contact', 'meta_title')|default('') %} -{% set metaDescription = setting('monsieurbiz_contact_request.contact', 'meta_description')|default('') %} -{% set metaKeywords = setting('monsieurbiz_contact_request.contact', 'meta_keywords')|default('') %} - -{% block title %}{{ metaTitle is not empty ? metaTitle : (('sylius.ui.contact_us'|trans) ~ ' | ' ~ parent()) }}{% endblock %} - -{% block metatags %} - {{ parent() }} - - {% if metaTitle is not empty %} - - {% endif %} - {% if metaDescription is not empty %} - - {% endif %} - {% if metaKeywords is not empty %} - - {% endif %} -{% endblock %} - -{% block content %} - -
-
- {% set hideSyliusDefaultContent = setting('monsieurbiz_contact_request.contact', 'hide_sylius_default_content')|default(false) %} - {% if not hideSyliusDefaultContent %} -

- -
- {{ 'sylius.ui.contact_us'|trans }} -
{{ 'sylius.ui.use_the_contact_form_below_to_send_us_a_message'|trans }}
- - {{ sylius_template_event('sylius.shop.contact.request.after_content_header') }} -
-

- {% endif %} - - {% set contentBeforeForm = setting('monsieurbiz_contact_request.contact', 'content_before_form')|default('') %} - {% if contentBeforeForm is not empty %} - {{ contentBeforeForm|monsieurbiz_richeditor_render_field }} - {% endif %} - -
- {{ form_start(form, {'action': path('sylius_shop_contact_request'), 'attr': {'class': 'ui large loadable form', 'novalidate': 'novalidate'}}) }} - {{ form_row(form.email, sylius_test_form_attribute('contact-email')) }} - - {% if setting('monsieurbiz_contact_request.contact', 'field_name_displayed')|default(false) %} - {{ form_row(form.name) }} - {% endif %} - {% if setting('monsieurbiz_contact_request.contact', 'field_company_displayed')|default(false) %} - {{ form_row(form.company) }} - {% endif %} - {% if setting('monsieurbiz_contact_request.contact', 'field_phone_number_displayed')|default(false) %} - {{ form_row(form.phoneNumber) }} - {% endif %} - - {{ form_row(form.message, sylius_test_form_attribute('contact-message')) }} - - {% if setting('monsieurbiz_contact_request.contact', 'field_confirmation_displayed')|default(false) %} - {{ form_row(form.confirmation) }} - {% endif %} - - {{ sylius_template_event('sylius.shop.contact.request.form', {'form': form}) }} - - {{ form_row(form._token) }} - - {{ form_end(form, {'render_rest': false}) }} -
- - {% set contentAfterForm = setting('monsieurbiz_contact_request.contact', 'content_after_form')|default('') %} - {% if contentAfterForm is not empty %} - {{ contentAfterForm|monsieurbiz_richeditor_render_field }} - {% endif %} -
-
-{% endblock %} diff --git a/src/Resources/views/admin/contact_request/show/content/page_body.html.twig b/src/Resources/views/admin/contact_request/show/content/page_body.html.twig new file mode 100644 index 0000000..760bb97 --- /dev/null +++ b/src/Resources/views/admin/contact_request/show/content/page_body.html.twig @@ -0,0 +1,5 @@ +
+
+ {% hook 'page_body' %} +
+
diff --git a/src/Resources/views/admin/contact_request/show/content/page_body/general.html.twig b/src/Resources/views/admin/contact_request/show/content/page_body/general.html.twig new file mode 100644 index 0000000..a088431 --- /dev/null +++ b/src/Resources/views/admin/contact_request/show/content/page_body/general.html.twig @@ -0,0 +1,10 @@ +
+
+
{{ 'sylius.ui.content'|trans }}
+
+
+
+ {% hook 'general' %} +
+
+
diff --git a/src/Resources/views/admin/contact_request/show/content/page_body/general/company.html.twig b/src/Resources/views/admin/contact_request/show/content/page_body/general/company.html.twig new file mode 100644 index 0000000..a6e99b7 --- /dev/null +++ b/src/Resources/views/admin/contact_request/show/content/page_body/general/company.html.twig @@ -0,0 +1,7 @@ +{% set resource = hookable_metadata.context.resource %} +
+
{{ 'monsieurbiz_contact_request.form.company'|trans }}
+
+ {{ resource.company|default('') }} +
+
diff --git a/src/Resources/views/admin/contact_request/show/content/page_body/general/email.html.twig b/src/Resources/views/admin/contact_request/show/content/page_body/general/email.html.twig new file mode 100644 index 0000000..6251843 --- /dev/null +++ b/src/Resources/views/admin/contact_request/show/content/page_body/general/email.html.twig @@ -0,0 +1,7 @@ +{% set resource = hookable_metadata.context.resource %} +
+
{{ 'monsieurbiz_contact_request.ui.email'|trans }}
+
+ {{ resource.email|default('') }} +
+
diff --git a/src/Resources/views/admin/contact_request/show/content/page_body/general/message.html.twig b/src/Resources/views/admin/contact_request/show/content/page_body/general/message.html.twig new file mode 100644 index 0000000..11eb561 --- /dev/null +++ b/src/Resources/views/admin/contact_request/show/content/page_body/general/message.html.twig @@ -0,0 +1,7 @@ +{% set resource = hookable_metadata.context.resource %} +
+
{{ 'monsieurbiz_contact_request.ui.message'|trans }}
+
+ {{ resource.message|default('')|nl2br }} +
+
diff --git a/src/Resources/views/admin/contact_request/show/content/page_body/general/name.html.twig b/src/Resources/views/admin/contact_request/show/content/page_body/general/name.html.twig new file mode 100644 index 0000000..893cae5 --- /dev/null +++ b/src/Resources/views/admin/contact_request/show/content/page_body/general/name.html.twig @@ -0,0 +1,7 @@ +{% set resource = hookable_metadata.context.resource %} +
+
{{ 'monsieurbiz_contact_request.form.name'|trans }}
+
+ {{ resource.name|default('') }} +
+
diff --git a/src/Resources/views/admin/contact_request/show/content/page_body/general/phone_number.html.twig b/src/Resources/views/admin/contact_request/show/content/page_body/general/phone_number.html.twig new file mode 100644 index 0000000..894b186 --- /dev/null +++ b/src/Resources/views/admin/contact_request/show/content/page_body/general/phone_number.html.twig @@ -0,0 +1,7 @@ +{% set resource = hookable_metadata.context.resource %} +
+
{{ 'monsieurbiz_contact_request.form.phone_number'|trans }}
+
+ {{ resource.phoneNumber|default('') }} +
+
diff --git a/src/Resources/views/shop/contact/contact_request.html.twig b/src/Resources/views/shop/contact/contact_request.html.twig new file mode 100644 index 0000000..5224801 --- /dev/null +++ b/src/Resources/views/shop/contact/contact_request.html.twig @@ -0,0 +1,7 @@ +{% extends '@SyliusShop/contact/contact_request.html.twig' %} + +{% set prefixes = ['monsieurbiz.contact.contact_request'] %} + +{% set metaTitle = setting('monsieurbiz_contact_request.contact', 'meta_title')|default('') %} + +{% block title %}{{ metaTitle is not empty ? metaTitle : (('sylius.ui.contact_us'|trans) ~ ' | ' ~ parent()) }}{% endblock %} diff --git a/src/Resources/views/shop/contact/contact_request/breadcrumb.html.twig b/src/Resources/views/shop/contact/contact_request/breadcrumb.html.twig new file mode 100644 index 0000000..b0008d7 --- /dev/null +++ b/src/Resources/views/shop/contact/contact_request/breadcrumb.html.twig @@ -0,0 +1,14 @@ +{% from '@SyliusShop/shared/breadcrumbs.html.twig' import breadcrumbs as breadcrumbs %} + +{% set breadcrumbsTitle = setting('monsieurbiz_contact_request.contact', 'breadcrumbs_title')|default('') %} + +{% if breadcrumbsTitle is not empty %} +
+
+ {{ breadcrumbs([ + { label: 'sylius.ui.home'|trans, path: path('sylius_shop_homepage')}, + { label: breadcrumbsTitle, active: true} + ]) }} +
+
+{% endif %} diff --git a/src/Resources/views/shop/contact/contact_request/content/after_form.html.twig b/src/Resources/views/shop/contact/contact_request/content/after_form.html.twig new file mode 100644 index 0000000..3ff7f1c --- /dev/null +++ b/src/Resources/views/shop/contact/contact_request/content/after_form.html.twig @@ -0,0 +1,6 @@ +{% set contentAfterForm = setting('monsieurbiz_contact_request.contact', 'content_after_form')|default('') %} +{% if contentAfterForm is not empty %} +
+ {{ contentAfterForm|monsieurbiz_richeditor_render_field }} +
+{% endif %} diff --git a/src/Resources/views/shop/contact/contact_request/content/before_form.html.twig b/src/Resources/views/shop/contact/contact_request/content/before_form.html.twig new file mode 100644 index 0000000..27aedb3 --- /dev/null +++ b/src/Resources/views/shop/contact/contact_request/content/before_form.html.twig @@ -0,0 +1,6 @@ +{% set contentBeforeForm = setting('monsieurbiz_contact_request.contact', 'content_before_form')|default('') %} +{% if contentBeforeForm is not empty %} +
+ {{ contentBeforeForm|monsieurbiz_richeditor_render_field }} +
+{% endif %} diff --git a/src/Resources/views/shop/contact/contact_request/content/form/company.html.twig b/src/Resources/views/shop/contact/contact_request/content/form/company.html.twig new file mode 100644 index 0000000..5910021 --- /dev/null +++ b/src/Resources/views/shop/contact/contact_request/content/form/company.html.twig @@ -0,0 +1,5 @@ +{% set form = hookable_metadata.context.form %} + +{% if setting('monsieurbiz_contact_request.contact', 'field_company_displayed')|default(false) %} + {{ form_row(form.company, sylius_test_form_attribute('contact-company')) }} +{% endif %} diff --git a/src/Resources/views/shop/contact/contact_request/content/form/confirmation.html.twig b/src/Resources/views/shop/contact/contact_request/content/form/confirmation.html.twig new file mode 100644 index 0000000..a286932 --- /dev/null +++ b/src/Resources/views/shop/contact/contact_request/content/form/confirmation.html.twig @@ -0,0 +1,7 @@ +{% set form = hookable_metadata.context.form %} + +{% if setting('monsieurbiz_contact_request.contact', 'field_confirmation_displayed')|default(false) %} +
+ {{ form_row(form.confirmation, sylius_test_form_attribute('contact-confirmation')) }} +
+{% endif %} diff --git a/src/Resources/views/shop/contact/contact_request/content/form/name.html.twig b/src/Resources/views/shop/contact/contact_request/content/form/name.html.twig new file mode 100644 index 0000000..92ab951 --- /dev/null +++ b/src/Resources/views/shop/contact/contact_request/content/form/name.html.twig @@ -0,0 +1,5 @@ +{% set form = hookable_metadata.context.form %} + +{% if setting('monsieurbiz_contact_request.contact', 'field_name_displayed')|default(false) %} + {{ form_row(form.name, sylius_test_form_attribute('contact-name')) }} +{% endif %} diff --git a/src/Resources/views/shop/contact/contact_request/content/form/phone_number.html.twig b/src/Resources/views/shop/contact/contact_request/content/form/phone_number.html.twig new file mode 100644 index 0000000..cd1fe2c --- /dev/null +++ b/src/Resources/views/shop/contact/contact_request/content/form/phone_number.html.twig @@ -0,0 +1,5 @@ +{% set form = hookable_metadata.context.form %} + +{% if setting('monsieurbiz_contact_request.contact', 'field_phone_number_displayed')|default(false) %} + {{ form_row(form.phoneNumber, sylius_test_form_attribute('contact-phone-number')) }} +{% endif %} diff --git a/src/Resources/views/shop/contact/contact_request/content/header.html.twig b/src/Resources/views/shop/contact/contact_request/content/header.html.twig new file mode 100644 index 0000000..3652a6e --- /dev/null +++ b/src/Resources/views/shop/contact/contact_request/content/header.html.twig @@ -0,0 +1,5 @@ +{% set hideSyliusDefaultContent = setting('monsieurbiz_contact_request.contact', 'hide_sylius_default_content')|default(false) %} + +{% if not hideSyliusDefaultContent %} + {% hook 'default_header' %} +{% endif %} diff --git a/src/Resources/views/shop/contact/contact_request/metatags.html.twig b/src/Resources/views/shop/contact/contact_request/metatags.html.twig new file mode 100644 index 0000000..91d1070 --- /dev/null +++ b/src/Resources/views/shop/contact/contact_request/metatags.html.twig @@ -0,0 +1,14 @@ +{% set metaTitle = setting('monsieurbiz_contact_request.contact', 'meta_title')|default('') %} +{% set metaDescription = setting('monsieurbiz_contact_request.contact', 'meta_description')|default('') %} +{% set metaKeywords = setting('monsieurbiz_contact_request.contact', 'meta_keywords')|default('') %} + + +{% if metaTitle is not empty %} + +{% endif %} +{% if metaDescription is not empty %} + +{% endif %} +{% if metaKeywords is not empty %} + +{% endif %}