Silverstripe DataObject - Я хочу добавить привязку перетаскивания к текущему классу, который расширяет объект данных, как то, что существует для страниц. Поэтому при отбрасывании он обновляет поле OrderBy для всех объектов данных в этом представлении. Я создал класс и могу свободно редактировать один элемент за раз, но простое упорядочивание перетаскивания сделает его намного проще, но я не вижу таких расширений в настоящее время в Dataobjects только на страницах.Silverstripe DataObject - упорядочение перетаскивания
ответ
В SilverStripe 3.1 есть несколько отличных модулей, которые предоставляют вам такую функциональность. Два из этих модулей: SortableGridField и GridFieldExtensions.
Чтобы получить эту работу, вам необходимо установить один из этих модулей, добавить поле сортировки в свой собственный класс DataObject
и добавить компонент объекта сортировки модуля в GridFieldConfig
.
SortableGridField
Модуль SortableGridField
специально, чтобы обеспечить функциональные возможности для сортировки объектов на GridField
.
Чтобы получить эту работу, вам необходимо добавить поле сортировки в свой собственный класс DataObject
и добавить GridFieldSortableRows()
в качестве компонента для вашего GridField
.
В следующих примерах я буду использовать HomePage
как страницу с отношением has_many к объекту DataObject Slide
.
Slide
class Slide extends DataObject
{
private static $db = array (
'Title' => 'HTMLText',
'SortOrder' => 'Int'
);
private static $has_one = array (
'HomePage' => 'HomePage'
);
private static $summary_fields = array(
'Title' => 'Title'
);
private static $default_sort = 'SortOrder ASC';
private static $singular_name = 'Slide';
private static $plural_name = 'Slides';
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->removeByName('SortOrder');
return $fields;
}
}
HomePage
class HomePage extends Page {
private static $has_many = array (
'Slides' => 'Slide'
);
public function getCMSFields()
{
$fields = parent::getCMSFields();
$slidesFieldConfig = GridFieldConfig_RecordEditor::create();
$slidesFieldConfig->addComponent(new GridFieldSortableRows('SortOrder'));
$slidesField = GridField::create(
'Slides',
'Slide',
$this->Slides(),
$slidesFieldConfig
);
$fields->addFieldToTab('Root.Slides', $slidesField);
return $fields;
}
}
GridFieldExtensions
Модуль GridFieldExtensions
содержит GridFieldOrderableRows
контролировать порядок сортировки на GridField, так же, как SortableGridField
модуль. Он также имеет другие полезные инструменты GridField
.
Чтобы получить эту работу, вам необходимо добавить поле сортировки в свой собственный класс DataObject
и добавить GridFieldOrderableRows()
в качестве компонента для вашего GridField
.
Ваш код будет так же, как выше примере, за исключением компонента, который вы добавляете в GridFieldConfig
является GridFieldOrderableRows
:
public function getCMSFields()
{
$fields = parent::getCMSFields();
$slidesFieldConfig = GridFieldConfig_RecordEditor::create();
$slidesFieldConfig->addComponent(new GridFieldOrderableRows('SortOrder'));
...
}
- 1. Расширение объекта DataObject в SilverStripe
- 2. SilverStripe Изображение не DataObject доступны после создания
- 3. Silverstripe 3 - Отношение изображения на SiteConfig DataObject
- 4. Silverstripe пользовательский поиск по элементам dataobject
- 5. SilverStripe: DataObject на выходе Siteconfig в шаблоне
- 6. Silverstripe - фильтр DataObject список по многим отношениям
- 7. Silverstripe Advancedwrokflow с DataObject не отображается кнопка
- 8. SilverStripe UserForms - заселить варианты от DataObject
- 9. Silverstripe 3.1 страница has_one принадлежит_many dataobject
- 10. Шаблоны SilverStripe: отображение DataObject :: Count без повторения
- 11. SilverStripe - DataObject, чтобы добавить вкладку и сохранить данные на странице
- 12. SilverStripe извлекает MetaTags (param) в DataObject как страница
- 13. SilverStripe - населяют поля в зависимости от выбранного DataObject
- 14. SilverStripe 3: Получить идентификатор Родитель DataObject в onAfterWrite ребенка()
- 15. silverstripe static publisher - страницы, на которые повлияли изменения DataObject
- 16. Как определить составной первичный ключ в SilverStripe ОРМ/DataObject
- 17. Как отложить «рендеринг» моего объекта DataObject во время перетаскивания перетаскивания Winforms
- 18. Каталог создания и задач Dev и DataObject?
- 19. Silver Stripe dataObject и многостраничная форма
- 20. SilverStripe convertDataObjectSet не работает
- 21. Напишите пользовательский SQL-запрос в DataObject :: get()
- 22. Использование подкласса DataObject в качестве буфера обмена DataObject
- 23. Silverstripe 3.4 gridfieldextensions GridFieldEditableColumns
- 24. SilverStripe MultiSelectField выбранный массив
- 25. Переопределить Silverstripe LastEdited
- 26. SilverStripe 3: removeByName не работает
- 27. Netezza external table dataobject
- 28. SilverStripe 3: Как отобразить информацию о сегменте URL/странице объекта DataObject
- 29. SilverStripe CMS: как сделать соединение в форме (выберите список) в другой DataObject/Page in has_one fashion
- 30. Silverstripe: конвертировать строку JSON в Dataobject в цикл, хотя в шаблоне
вы бьете меня это 3dgoo! Сортируемый модуль GridField - это то, что вам нужно после: – Cam