mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-14 17:10:53 +00:00
Fix the slug generation issue on translations
This commit is contained in:
parent
d7c3eac67b
commit
64b444fe7c
7 changed files with 57 additions and 52 deletions
|
|
@ -11,6 +11,18 @@
|
|||
|
||||
namespace Sylius\Bundle\AddressingBundle\DependencyInjection;
|
||||
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\AddressType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\CountryChoiceType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\CountryType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ProvinceChoiceType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ProvinceType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberCountryType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberProvinceType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberZoneType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneType;
|
||||
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
|
||||
use Sylius\Bundle\ResourceBundle\Form\Type\ResourceChoiceType;
|
||||
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
|
||||
use Sylius\Component\Addressing\Model\Address;
|
||||
use Sylius\Component\Addressing\Model\AddressInterface;
|
||||
|
|
@ -21,24 +33,14 @@ use Sylius\Component\Addressing\Model\ProvinceInterface;
|
|||
use Sylius\Component\Addressing\Model\Zone;
|
||||
use Sylius\Component\Addressing\Model\ZoneInterface;
|
||||
use Sylius\Component\Addressing\Model\ZoneMember;
|
||||
use Sylius\Component\Addressing\Model\ZoneMemberInterface;
|
||||
use Sylius\Component\Addressing\Model\ZoneMemberCountry;
|
||||
use Sylius\Component\Addressing\Model\ZoneMemberInterface;
|
||||
use Sylius\Component\Addressing\Model\ZoneMemberProvince;
|
||||
use Sylius\Component\Addressing\Model\ZoneMemberZone;
|
||||
use Sylius\Component\Resource\Factory\Factory;
|
||||
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
|
||||
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
||||
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||
use Sylius\Component\Resource\Factory\Factory;
|
||||
use Sylius\Bundle\ResourceBundle\Form\Type\ResourceChoiceType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\AddressType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\CountryType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ProvinceType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberCountryType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberProvinceType;
|
||||
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberZoneType;
|
||||
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
|
||||
|
||||
/**
|
||||
* This class contains the configuration information for the bundle.
|
||||
|
|
@ -98,7 +100,6 @@ class Configuration implements ConfigurationInterface
|
|||
->addDefaultsIfNotSet()
|
||||
->children()
|
||||
->scalarNode('default')->defaultValue(AddressType::class)->cannotBeEmpty()->end()
|
||||
->scalarNode('choice')->defaultValue(ResourceChoiceType::class)->cannotBeEmpty()->end()
|
||||
->end()
|
||||
->end()
|
||||
->end()
|
||||
|
|
@ -129,7 +130,7 @@ class Configuration implements ConfigurationInterface
|
|||
->addDefaultsIfNotSet()
|
||||
->children()
|
||||
->scalarNode('default')->defaultValue(CountryType::class)->cannotBeEmpty()->end()
|
||||
->scalarNode('choice')->defaultValue(ResourceChoiceType::class)->cannotBeEmpty()->end()
|
||||
->scalarNode('choice')->defaultValue(CountryChoiceType::class)->cannotBeEmpty()->end()
|
||||
->end()
|
||||
->end()
|
||||
->end()
|
||||
|
|
@ -160,7 +161,7 @@ class Configuration implements ConfigurationInterface
|
|||
->addDefaultsIfNotSet()
|
||||
->children()
|
||||
->scalarNode('default')->defaultValue(ProvinceType::class)->cannotBeEmpty()->end()
|
||||
->scalarNode('choice')->defaultValue(ResourceChoiceType::class)->cannotBeEmpty()->end()
|
||||
->scalarNode('choice')->defaultValue(ProvinceChoiceType::class)->cannotBeEmpty()->end()
|
||||
->end()
|
||||
->end()
|
||||
->end()
|
||||
|
|
@ -309,7 +310,6 @@ class Configuration implements ConfigurationInterface
|
|||
->addDefaultsIfNotSet()
|
||||
->children()
|
||||
->scalarNode('default')->defaultValue(ZoneMemberZoneType::class)->cannotBeEmpty()->end()
|
||||
->scalarNode('choice')->defaultValue(ResourceChoiceType::class)->cannotBeEmpty()->end()
|
||||
->end()
|
||||
->end()
|
||||
->end()
|
||||
|
|
|
|||
|
|
@ -11,12 +11,13 @@
|
|||
|
||||
namespace Sylius\Bundle\ChannelBundle\DependencyInjection;
|
||||
|
||||
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
|
||||
use Sylius\Component\Resource\Factory\Factory;
|
||||
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
|
||||
use Sylius\Bundle\ChannelBundle\Form\Type\ChannelType;
|
||||
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
|
||||
use Sylius\Bundle\ResourceBundle\Form\Type\ResourceChoiceType;
|
||||
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
|
||||
use Sylius\Component\Channel\Model\Channel;
|
||||
use Sylius\Component\Channel\Model\ChannelInterface;
|
||||
use Sylius\Component\Resource\Factory\Factory;
|
||||
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
|
||||
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
||||
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||
|
|
@ -75,6 +76,7 @@ class Configuration implements ConfigurationInterface
|
|||
->addDefaultsIfNotSet()
|
||||
->children()
|
||||
->scalarNode('default')->defaultValue(ChannelType::class)->cannotBeEmpty()->end()
|
||||
->scalarNode('choice')->defaultValue(ResourceChoiceType::class)->cannotBeEmpty()->end()
|
||||
->end()
|
||||
->end()
|
||||
->end()
|
||||
|
|
|
|||
|
|
@ -728,7 +728,7 @@ sylius_rbac:
|
|||
shipping_manager:
|
||||
name: Shipping Manager
|
||||
description: Shipping Department people
|
||||
permissions: [sylius.shipp/ing]
|
||||
permissions: [sylius.shipping]
|
||||
security_roles: [ROLE_ADMINISTRATION_ACCESS]
|
||||
content_editor:
|
||||
name: Content Editor
|
||||
|
|
|
|||
|
|
@ -11,12 +11,12 @@
|
|||
|
||||
namespace Sylius\Bundle\ReportBundle\DependencyInjection;
|
||||
|
||||
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
|
||||
use Sylius\Component\Resource\Factory\Factory;
|
||||
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
|
||||
use Sylius\Bundle\ReportBundle\Controller\ReportController;
|
||||
use Sylius\Bundle\ReportBundle\Form\Type\ReportType;
|
||||
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
|
||||
use Sylius\Component\Report\Model\Report;
|
||||
use Sylius\Component\Report\Model\ReportInterface;
|
||||
use Sylius\Component\Resource\Factory\Factory;
|
||||
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
|
||||
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
||||
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||
|
|
@ -69,7 +69,7 @@ class Configuration implements ConfigurationInterface
|
|||
->children()
|
||||
->scalarNode('model')->defaultValue(Report::class)->cannotBeEmpty()->end()
|
||||
->scalarNode('interface')->defaultValue(ReportInterface::class)->cannotBeEmpty()->end()
|
||||
->scalarNode('controller')->defaultValue(ResourceController::class)->cannotBeEmpty()->end()
|
||||
->scalarNode('controller')->defaultValue(ReportController::class)->cannotBeEmpty()->end()
|
||||
->scalarNode('repository')->cannotBeEmpty()->end()
|
||||
->scalarNode('factory')->defaultValue(Factory::class)->end()
|
||||
->arrayNode('form')
|
||||
|
|
|
|||
|
|
@ -73,8 +73,8 @@ abstract class AbstractDatabaseDriver implements DatabaseDriverInterface
|
|||
$translatableRepositoryInterface = 'Sylius\Component\Translation\Repository\TranslatableResourceRepositoryInterface';
|
||||
|
||||
if (interface_exists($translatableRepositoryInterface) && $reflection->implementsInterface($translatableRepositoryInterface)) {
|
||||
if (isset($parameters['fields'])) {
|
||||
$repositoryDefinition->addMethodCall('setTranslatableFields', array($parameters['fields']));
|
||||
if (isset($parameters['translation']['fields'])) {
|
||||
$repositoryDefinition->addMethodCall('setTranslatableFields', array($parameters['translation']['fields']));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,16 +26,14 @@ class LoadORMMetadataSubscriber implements EventSubscriber
|
|||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $classes;
|
||||
protected $resources;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param array $resources
|
||||
*/
|
||||
public function __construct($resources)
|
||||
{
|
||||
$this->classes = $resources;
|
||||
$this->resources = $resources;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -67,24 +65,29 @@ class LoadORMMetadataSubscriber implements EventSubscriber
|
|||
|
||||
private function process(ClassMetadataInfo $metadata)
|
||||
{
|
||||
foreach ($this->classes as $application => $resources) {
|
||||
foreach ($resources as $resource => $parameters) {
|
||||
foreach ($parameters as $parameter => $classes) {
|
||||
if (isset($classes['model']) && $classes['model'] === $metadata->getName()) {
|
||||
foreach ($this->resources as $application => $resources) {
|
||||
foreach ($resources as $resource => $resourceParameters) {
|
||||
$classes = $resourceParameters['classes'];
|
||||
|
||||
if (isset($classes['model']) && $classes['model'] === $metadata->getName()) {
|
||||
$metadata->isMappedSuperclass = false;
|
||||
|
||||
if (isset($classes['repository'])) {
|
||||
$metadata->setCustomRepositoryClass($classes['repository']);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($resourceParameters['translation'])) {
|
||||
$translationClasses = $resourceParameters['translation']['classes'];
|
||||
|
||||
if (isset($translationClasses['model']) && $translationClasses['model'] === $metadata->getName()) {
|
||||
$metadata->isMappedSuperclass = false;
|
||||
|
||||
if (isset($classes['repository'])) {
|
||||
$metadata->setCustomRepositoryClass($classes['repository']);
|
||||
}
|
||||
} else if (isset($classes['translation']['model'])
|
||||
&& $classes['translation']['model'] === $metadata->getName()
|
||||
) {
|
||||
$metadata->isMappedSuperclass = false;
|
||||
|
||||
if (isset($classes['translation']['repository'])) {
|
||||
$metadata->setCustomRepositoryClass($classes['translation']['repository']);
|
||||
if (isset($translationClasses['repository'])) {
|
||||
$metadata->setCustomRepositoryClass($translationClasses['repository']);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,12 +129,12 @@ class Configuration implements ConfigurationInterface
|
|||
->end()
|
||||
->end()
|
||||
->end()
|
||||
->arrayNode('fields')
|
||||
->prototype('scalar')->end()
|
||||
->defaultValue(array('name'))
|
||||
->end()
|
||||
->end()
|
||||
->end()
|
||||
->arrayNode('fields')
|
||||
->prototype('scalar')->end()
|
||||
->defaultValue(array('name'))
|
||||
->end()
|
||||
->end()
|
||||
->end()
|
||||
->arrayNode('taxon')
|
||||
|
|
@ -193,12 +193,12 @@ class Configuration implements ConfigurationInterface
|
|||
->end()
|
||||
->end()
|
||||
->end()
|
||||
->arrayNode('fields')
|
||||
->prototype('scalar')->end()
|
||||
->defaultValue(array('name', 'slug', 'permalink', 'description'))
|
||||
->end()
|
||||
->end()
|
||||
->end()
|
||||
->arrayNode('fields')
|
||||
->prototype('scalar')->end()
|
||||
->defaultValue(array('name', 'slug', 'permalink', 'description'))
|
||||
->end()
|
||||
->end()
|
||||
->end()
|
||||
->end()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue