Add usage documentation. Closes #3.

This commit is contained in:
ajshort 2013-02-09 16:01:26 +11:00
parent b26b2b3165
commit 90ada9871e
2 changed files with 78 additions and 0 deletions

View File

@ -8,3 +8,5 @@ This module provides a number of useful grid field components:
* `GridFieldAddNewMultiClass` - lets the user select from a list of classes to create a new record from.
* `GridFieldEditableColumns` - allows inline editing of records.
* `GridFieldOrderableRows` - drag and drop re-ordering of rows.
See [docs/en/index.md](docs/en/index.md) for documentation and examples.

76
docs/en/index.md Normal file
View File

@ -0,0 +1,76 @@
Grid Field Extensions
=====================
Add Existing Search
-------------------
The `GridFieldAddExistingSearchButton` component provides a more complete solution for adding
existing records than a basic autocomplete. It uses the search context constructed by the model
class to provide the search form.
```php
$grid->getConfig()->addComponent(new GridFieldAddExistingSearchButton()));
```
Inline Editing
--------------
This example replaces the default data columns component with an inline editable one, and the
default add new button with one that adds new records inline.
```php
$grid = new GridField(
'ExampleGrid',
'Example Grid',
$this->Items(),
GridFieldConfig_RecordEditor::create()
->removeComponentsByType('GridFieldAddNewButton')
->removeComponentsByType('GridFieldDataColumns')
->addComponent(new GridFieldEditableColumns(), 'GridFieldEditButton')
->addComponent(new GridFieldAddNewInlineButton())
);
```
You can customise the form fields that are used in the grid by calling `setDisplayFields` on the
inline editing component. By default field scaffolding will be used.
```php
$grid->getConfig()->getComponentsByType('GridFieldEditableColumns')->setDisplayFields(array(
'FirstField' => function($record, $column, $grid) {
return new TextField($column);
},
'SecondField' => array(
'title' => 'Custom Title',
'field' => 'ReadonlyField'
)
));
```
Multi Class Adding
------------------
The `GridFieldAddNewMultiClass` allows the user to select the record type to create when creating
a new record. By default it allows them to select the model class for the grid field, or any
subclasses. You can control the createable classes using the `setClasses` method.
```php
$grid->getConfig()
->removeComponentsByType('GridFieldAddNewButton')
->addComponent(new GridFieldAddNewMultiClass());
```
Orderable Rows
--------------
The `GridFieldOrderableRows` component allows drag-and-drop reordering of any list type. The field
used to store the sort is set by passing a constructor parameter to the component, or calling
`setSortField`. For `many_many` relationships, the sort field should normally be an extra field on
the relationship.
```php
// Basic usage, defaults to "Sort" for the sort field.
$grid->getConfig()->addComponent(new GridFieldOrderableRows());
// Specifying the sort field.
$grid->getConfig()->addComponent(new GridFieldOrderableRows('SortField'));
```