В моем проекте есть страницы и связанные с ними элементы. Элемент может быть связан только с одной страницей.
У меня есть специальная форма для выбора маски поля и множества полей. Я хотел бы иметь список элементов, связанных со страницей, вместо встроенных форм. Можно ли открыть модальное диалоговое окно, в котором будет находиться форма редактирования, например, при добавлении элемента?
Является ли sonata_type_collection наиболее подходящим для этого?
PageAdmin
/**
* @param FormMapper $formMapper
*/
protected function configureFormFields(FormMapper $formMapper) {
$availableApiRoutes = [];
foreach ($this->getConfigurationPool()->getContainer()->get('router')->getRouteCollection()->all() as $name => $route) {
$route = $route->compile();
if (( strstr($name, "api_") === FALSE ) &&
( strstr($name, "admin") === FALSE ) &&
( strstr($name, "ajax") === FALSE ) &&
( strstr($name, "fos") === FALSE ) &&
( strstr($name, "sonata") === FALSE ) &&
( strstr($name, "add") === FALSE ) &&
( strstr($name, "edit") === FALSE ) &&
( strstr($name, "payment") === FALSE ) &&
( strstr($name, "suppr") === FALSE ) &&
( substr($name, 0, 1) !== "_" )) {
$availableApiRoutes[$name] = $name;
}
}
$formMapper
->add('route', FormType\ChoiceType::class , array(
'choices' => $availableApiRoutes,
))
->add('element', 'sonata_type_collection', array(), array('edit' => 'inline', 'inline'=>'table'))
;
}
И форма элемента:
ElementAdmin
/**
* @param FormMapper $formMapper
*/
protected function configureFormFields(FormMapper $formMapper) {
$formMapper
->add('page', 'sonata_type_model_hidden')
->add('id')
->add('title')
->add('type', 'sonata_type_choice_field_mask', array(
'choices' => array(
'texte' => 'texte',
'image' => 'image',
'gallery' => 'gallerie'
),
'map' => array(
'texte' => array('texte'),
'image' => array('image'),
'gallery' => array('gallery'),
),
'empty_value' => 'Choose an option',
'required' => true
))
->add('texte', CKEditorType::class, array(
'config' => array(
'uiColor' => '#ffffff'
)
))
->add('image', 'sonata_type_model_list', array(), array('link_parameters' => array('context' => 'cms')))
->add('gallery', 'sonata_type_model_list', array(), array(
'edit' => 'inline',
'inline' => 'table',
'link_parameters' => array(
'context' => 'cms',
'provider' => 'sonata.media.provider.image'
)
))
;
}
Подробнее здесь: https://stackoverflow.com/questions/396 ... t-in-modal
Sonata_type_collection редактировать в модальном режиме ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1730325537
Anonymous
В моем проекте есть страницы и связанные с ними элементы. Элемент может быть связан только с одной страницей.
У меня есть специальная форма для выбора маски поля и множества полей. Я хотел бы иметь список элементов, связанных со страницей, вместо встроенных форм. Можно ли открыть модальное диалоговое окно, в котором будет находиться форма редактирования, например, при добавлении элемента?
Является ли sonata_type_collection наиболее подходящим для этого?
PageAdmin
/**
* @param FormMapper $formMapper
*/
protected function configureFormFields(FormMapper $formMapper) {
$availableApiRoutes = [];
foreach ($this->getConfigurationPool()->getContainer()->get('router')->getRouteCollection()->all() as $name => $route) {
$route = $route->compile();
if (( strstr($name, "api_") === FALSE ) &&
( strstr($name, "admin") === FALSE ) &&
( strstr($name, "ajax") === FALSE ) &&
( strstr($name, "fos") === FALSE ) &&
( strstr($name, "sonata") === FALSE ) &&
( strstr($name, "add") === FALSE ) &&
( strstr($name, "edit") === FALSE ) &&
( strstr($name, "payment") === FALSE ) &&
( strstr($name, "suppr") === FALSE ) &&
( substr($name, 0, 1) !== "_" )) {
$availableApiRoutes[$name] = $name;
}
}
$formMapper
->add('route', FormType\ChoiceType::class , array(
'choices' => $availableApiRoutes,
))
->add('element', 'sonata_type_collection', array(), array('edit' => 'inline', 'inline'=>'table'))
;
}
И форма элемента:
ElementAdmin
/**
* @param FormMapper $formMapper
*/
protected function configureFormFields(FormMapper $formMapper) {
$formMapper
->add('page', 'sonata_type_model_hidden')
->add('id')
->add('title')
->add('type', 'sonata_type_choice_field_mask', array(
'choices' => array(
'texte' => 'texte',
'image' => 'image',
'gallery' => 'gallerie'
),
'map' => array(
'texte' => array('texte'),
'image' => array('image'),
'gallery' => array('gallery'),
),
'empty_value' => 'Choose an option',
'required' => true
))
->add('texte', CKEditorType::class, array(
'config' => array(
'uiColor' => '#ffffff'
)
))
->add('image', 'sonata_type_model_list', array(), array('link_parameters' => array('context' => 'cms')))
->add('gallery', 'sonata_type_model_list', array(), array(
'edit' => 'inline',
'inline' => 'table',
'link_parameters' => array(
'context' => 'cms',
'provider' => 'sonata.media.provider.image'
)
))
;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/39691049/sonata-type-collection-edit-in-modal[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия