2013-10-17 68 views
4

任何人都可以告訴我如何擴展和覆蓋所有Sonata Media Bundle功能? 我正在使用Symfony2.3.​​3和Sonata Master Bundle。Sonata Media Bundle Override

我看到這個文檔http://sonata-project.org/bundles/media/master/doc/index.html和 我知道像基本的東西:如何編寫自定義提供商,翻譯和etc..basic東西安裝後在工作,但我不知道。

我正在尋找重寫BaseMediaBundle來自定義例如函數「configureListFields」。

我已經覆蓋了這個包的控制器,但不是BaseMediaAdmin。

此代碼的問題是實體「媒體」我的儀表板disapear!

//在我的services.xml:https://groups.google.com/forum/#!topic/sonata-users/l3D_Vrd0Hm4

<service id="sonata.media.admin.media" class="Application\Sonata\MediaBundle\Admin\MediaAdmin"> 
    <tag name="sonata.media.admin" manager_type="orm" group="Gestion des médias" 
     label="Média" /> 
    <argument /> 
    <argument>Application\Sonata\MediaBundle\Entity\Media</argument> 
    <argument>Application\SonataMediaBundle:MediaAdmin</argument> 
    <call method="setTranslationDomain"> 
     <argument>SonataMediaBundle</argument> 
    </call> 
</service> 

//我的應用程序\索納塔\ MediaBundle \管理\ MediaAdmin

namespace Application\Sonata\MediaBundle\Admin; 

use Sonata\AdminBundle\Admin\Admin; 
use Sonata\AdminBundle\Form\FormMapper; 
use Sonata\AdminBundle\Datagrid\DatagridMapper; 
use Sonata\AdminBundle\Datagrid\ListMapper; 
use Sonata\AdminBundle\Show\ShowMapper; 
use Sonata\AdminBundle\Route\RouteCollection; 
use Sonata\MediaBundle\Provider\Pool; 
use Sonata\MediaBundle\Form\DataTransformer\ProviderDataTransformer; 

use Knp\Menu\ItemInterface as MenuItemInterface; 

use Sonata\MediaBundle\Admin\BaseMediaAdmin as BaseMediaAdmin; 


class MediaAdmin extends BaseMediaAdmin 
{ 

/** 
* {@inheritdoc} 
*/ 
protected function configureListFields(ListMapper $listMapper) 
{ 
    $listMapper 
     ->add('custom', 'string', array('template' => 'SonataMediaBundle:MediaAdmin:list_custom.html.twig')) 
     ->add('enabled', 'boolean', array('editable' => true)) 
     ->add('_action', 'actions', array(
      'actions' => array(
       'view' => array(), 
       'edit' => array(), 
       'delete' => array(), 
      ) 
     )) 
    ; 
} 

} 

同樣的問題被一些一個問

我谷歌它但沒有發現。任何人都知道?

謝謝!

+0

嗨Kunwar,你是否設法解決這個問題? – jribeiro

+0

@jribeiro是的,我解決了它。 – Sid

+2

你還沒有告訴任何你如何解決問題 - 沒有幫助其他人。 – geekuality

回答

7

必須覆蓋%sonata.media.admin.media.class%

YourSite/MediaBundle/Ressource/config/services.yml

`

parameters: 
    sonata.media.admin.media.class: YourSite\MediaBundle\Admin\MediaAdmin 

services: 
    custom_name.admin.media: 
     class: %sonata.media.admin.media.class% 
     arguments: 
      - ~ 
      - YourSite\MediaBundle\Entity\Media 
      - YourSiteMediaBundle:MediaAdmin 
      - @sonata.media.pool 
     tags: 
      - {name: sonata.admin, manager_type: orm, group: admin, label: Médias} 

`

,並在您app/config/config.yml

imports: 
/** ... **/ 
- { resource: @YourSiteMediaBundle/Resources/config/services.yml } 


sonata_admin: 
/** ... **/ 
dashboard: 
    groups: 
     /** ... **/ 
     Médias: 
      items: 
       - custom_name.admin.media 
#    - sonata.media.admin.media 
相關問題