Kaynağa Gözat

Add the label translator strategies services

Thomas Rabaix 13 yıl önce
ebeveyn
işleme
83d9e18c87
2 değiştirilmiş dosya ile 34 ekleme ve 4 silme
  1. 22 0
      Admin/Admin.php
  2. 12 4
      Resources/config/core.xml

+ 22 - 0
Admin/Admin.php

@@ -27,6 +27,7 @@ use Sonata\AdminBundle\Show\ShowMapper;
 use Sonata\AdminBundle\Admin\Pool;
 use Sonata\AdminBundle\Validator\ErrorElement;
 
+use Sonata\Adminbundle\Translator\LabelTranslatorStrategyInterface;
 use Sonata\AdminBundle\Builder\FormContractorInterface;
 use Sonata\AdminBundle\Builder\ListBuilderInterface;
 use Sonata\AdminBundle\Builder\DatagridBuilderInterface;
@@ -358,6 +359,8 @@ abstract class Admin implements AdminInterface, DomainObjectInterface
 
     protected $extensions = array();
 
+    protected $labelTranslatorStrategy;
+
     /**
      * This method can be overwritten to tweak the form construction, by default the form
      * is built by reading the FieldDescription
@@ -2012,6 +2015,9 @@ abstract class Admin implements AdminInterface, DomainObjectInterface
         return $this->modelManager;
     }
 
+    /**
+     * @param \Sonata\AdminBundle\Model\ModelManagerInterface $modelManager
+     */
     public function setModelManager(ModelManagerInterface $modelManager)
     {
         $this->modelManager = $modelManager;
@@ -2203,4 +2209,20 @@ abstract class Admin implements AdminInterface, DomainObjectInterface
 
         return '';
     }
+
+    /**
+     * @param \Sonata\Adminbundle\Translator\LabelTranslatorStrategyInterface $labelTranslatorStrategy
+     */
+    public function setLabelTranslatorStrategy(LabelTranslatorStrategyInterface $labelTranslatorStrategy)
+    {
+        $this->labelTranslatorStrategy = $labelTranslatorStrategy;
+    }
+
+    /**
+     * @return \Sonata\AdminBundle\Translator\LabelTranslatorStrategyInterface
+     */
+    public function getLabelTranslatorStrategy()
+    {
+        return $this->labelTranslatorStrategy;
+    }
 }

+ 12 - 4
Resources/config/core.xml

@@ -25,6 +25,12 @@
             <argument type="service" id="sonata.admin.pool" />
         </service>
 
+        <service id="sonata.admin.builder.filter.factory" class="Sonata\AdminBundle\Filter\FilterFactory">
+            <argument type="service" id="service_container" />
+            <argument />
+        </service>
+
+        <!-- Some security services -->
         <service id="sonata.admin.security.handler.noop" class="Sonata\AdminBundle\Security\Handler\NoopSecurityHandler" />
 
         <service id="sonata.admin.security.handler.acl" class="Sonata\AdminBundle\Security\Handler\AclSecurityHandler">
@@ -34,10 +40,12 @@
             </argument>
         </service>
 
-        <service id="sonata.admin.builder.filter.factory" class="Sonata\AdminBundle\Filter\FilterFactory">
-            <argument type="service" id="service_container" />
-            <argument />
-        </service>
+        <!-- Services used to format the label, default is sonata.admin.label.strategy.noop -->
+        <service id="sonata.admin.label.strategy.native" class="Sonata\AdminBundle\Translator\NativeLabelTranslatorStrategy" />
+        <service id="sonata.admin.label.strategy.noop" class="Sonata\AdminBundle\Translator\NoopLabelTranslatorStrategy" />
+        <service id="sonata.admin.label.strategy.underscore" class="Sonata\AdminBundle\Translator\UnderscoreLabelTranslatorStrategy" />
+        <service id="sonata.admin.label.strategy.form_component" class="Sonata\AdminBundle\Translator\UnderscoreLabelTranslatorStrategy" />
+
     </services>
 </container>