2017-01-31 15 views
1

Я следую за этот учебник, чтобы добавить превью моего файла изображения в моей сонаты администратора (symfony3)Какой файл я должен переопределить, чтобы изменить шаблон формы формы в Sonata Admin?

http://symfony.com/doc/current/bundles/SonataAdminBundle/cookbook/recipe_image_previews.html

Но я не в состоянии добавить CSS одностороннем порядке. Изображение слишком велико.

Должен ли я переопределить один из шаблонов сонаты? Если да, какой файл я меняю и как это сделать? [Я довольно новичок в сонате/symfony3]

Если нет, как добавить файл css в проект?

Мой реальный код в точности как учебник:

class ImageAdmin extends Admin 
{ 
    protected function configureFormFields(FormMapper $formMapper) 
    { 
     // get the current Image instance 
     $image = $this->getSubject(); 

     // use $fileFieldOptions so we can add other options to the field 
     $fileFieldOptions = array('required' => false); 
     if ($image && ($webPath = $image->getWebPath())) { 
      // get the container so the full path to the image can be set 
      $container = $this->getConfigurationPool()->getContainer(); 
      $fullPath = $container->get('request')->getBasePath().'/'.$webPath; 

      // add a 'help' option containing the preview's img tag 
      $fileFieldOptions['help'] = '<img src="'.$fullPath.'" class="admin-preview" />'; 
     } 

     $formMapper 
      // ... other fields ... 
      ->add('file', 'file', $fileFieldOptions) 
     ; 
    } 
    // ... 
} 

ответ

0

Вам нужно добавить код, чтобы включить файл CSS в проекте Symfony. Что-то похожее на

{% stylesheets 'bundles/app/css/*' filter='cssrewrite' %} 
    <link rel="stylesheet" href="{{ asset_url }}" /> 
{% endstylesheets %} 

Затем вы поместите следующий CSS из учебника в этот файл.

img.admin-preview { 
    max-height: 200px; 
    max-width: 200px; 
} 

Вы можете узнать больше о включении CSS файлы с Symfony here.

0

Прежде всего, необходимо сделать шаблон, который проходит SonataAdminBundle:CRUD:base_edit.html.twig, вот пример:

{# BlastBaseEntitiesBundle:CRUD:edit.html.twig #} 

    {% extends 'SonataAdminBundle:CRUD:base_edit.html.twig' %} 

    {# ... #} 

Затем создайте файл CSS в разделе Ресурсы/Public/CSS.

Выполните команду bin/console assets:install, чтобы опубликовать свою таблицу стилей в каталоге web/bundles.

{# blastcore/css corresponds to BlastCoreBundle/Resources/Public/css and web/bundles/blastcore/js #} 
    <link rel="stylesheet" href="{{ asset(blastcore/css/style.css) }}" /> 

http://symfony.com/doc/current/assetic/asset_management.html

Теперь вы должны сказать сонату использовать шаблон для вашего администратора. вы можете сделать это в определении сервиса:

admin.yml
blast_base_entities.admin.search_index_entity: 
     class: Blast\BaseEntitiesBundle\Admin\SearchIndexEntityAdmin 
     arguments: [~, Blast\BaseEntitiesBundle\Entity\SearchIndexEntity, BlastCoreBundle:CRUD] 
     tags: 
      - name: sonata.admin 
       manager_type: orm 
       group: admin 
       label: SearchIndexEntity 
     calls: 
     - [ setTemplate, [edit, BlastBaseEntitiesBundle:CRUD:edit.html.twig]] 

https://sonata-project.org/bundles/admin/master/doc/reference/templates.html#crudcontroller-actions-templates

 Смежные вопросы

  • Нет связанных вопросов^_^