Version: current

# Class FileDataObjectManager

Provides a tabuar list in your form with view, edit and add links to edit records with a "has-one"-relationship. Detail-views are shown in a greybox-iframe. Features pagination in the overview as well as the detail-views.

CAUTION: You need to make sure that the original form-call to the main controller (e.g. EditForm()) returns a form which includes this field even if no data is loaded, to provide a "starting point" for action_callfieldmethod and ReferencedField.

All URL data sent to and from ComplexTableField is encapsulated in $_REQUEST['ctf'] to avoid side-effects with the main controller.

Example-URL for a "DetailForm"-call explained: "/admin/family/?executeForm=EditForm&action_callfieldmethod&fieldName=Individual&childID=7&methodName=edit" - executeForm Name of the form on the main rendering page (e.g. "FamilyAdmin") - action_callfieldmethod Trigger to call a method of a single field in "EditForm" instead of rendering the whole thing - fieldName Name of the targeted formField - methodName Method on the formfield (e.g. "ComplexTableField") - childID Identifier of the database-record (the targeted table is determined by the $sourceClass parameter)

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  FormField
  TableListField
  ComplexTableField
  DataObjectManager
  FileDataObjectManager

### Direct known subclasses

`AssetManager`, `DocumentPageFiles_Manager`, `HasManyFileDataObjectManager`, `ImageDataObjectManager`, `Mediaweb3DPageFiles_Manager`, `MediawebPageFiles_Manager`, `VideoManager`

### Indirect known subclasses

`HasOneFileDataObjectManager`, `ImageAssetManager`, `ManyManyFileDataObjectManager`, `MediawebPagePhoto_Manager`, `MediawebPageTexture_Manager`, `PhotoAlbumManager`

Package: forms\fields-relational
Located at dataobject_manager/code/FileDataObjectManager.php

## Methods summary

`public` | # `__construct( `ContentController` $controller, string $name = null, string $sourceClass = null, array $fileFieldName = null, `FieldSet` $fieldList = null, string $detailFormFields = null, string $sourceFilter = "", string $sourceSort = "", mixed $sourceJoin = "" )` See class comments See class comments #### Parameters $controller ContentController $controller $name string $name $sourceClass string $sourceClass $fileFieldName array $fieldList $fieldList FieldSet $detailFormFields $detailFormFields string $sourceFilter $sourceFilter string $sourceSort $sourceSort string $sourceJoin $sourceJoin #### Overrides `DataObjectManager::__construct`
`public` | # `getQueryString( mixed $params = array() )` #### Overrides `DataObjectManager::getQueryString`
`public` | # `setGridLabelField( mixed $fieldName )`
`public` | # `GridLink( )`
`public` | # `ListLink( )`
`public` | # `GridView( )`
`public` | # `ListView( )`
`public` | # `ListStyle( )`
`public` | # `ImportDropdown( )`
`protected` | # `importLinkFor( mixed $file )`
`protected` | # `getImportFolderHierarchy( mixed $parentID, mixed $level = 0 )`
`protected` | # `getUploadFolderHierarchy( mixed $parentID, mixed $level = 0 )`
`public` | # `setAllowedFileTypes( mixed $types = array() )`
`public` | # `getAllowedFileTypes( )`
`public` | # `setUploadLimit( mixed $num )`
`public` | # `getUploadLimit( )`
`public` | # `setBrowseButtonText( mixed $text )`
`public` | # `getBrowseButtonText( )`
`public` | # `ButtonAddTitle( )`
`public` | # `allowUploadFolderSelection( )`
`public` | # `enableUploadDebugging( )`
`public` | # `setDefaultView( mixed $type )`
`public` | # `upload( )`
`public` | # `UploadLink( )`
`protected` | # `getUploadFields( )`
`public` | # `UploadForm( )`
`public` | # `saveUploadForm( )`
`protected` | # `getChildDataObj( )`
`public` | # `setPreviewFieldFor( mixed $fields )`
`public` | # `getPreviewFieldFor( mixed $fileObject, mixed $size = 150 )`
`protected` | # `closePopup( )`
`public` | # `EditUploadedForm( )`
`public` | # `saveEditUploadedForm( mixed $data, mixed $form )`
`public` | # `handleImport( mixed $request )`
`protected` | # `getImportFields( )`
`protected` | # `ImportForm( mixed $folder_id = null )`
`public` | # `saveImportForm( mixed $data, mixed $form )`
`public` | # `setUploadFolder( mixed $override )`
`public` | # `getUploadFolder( )`
`public` | # `getCleanUploadFolder( )`
`public` | # `handleItem( mixed $request )` #### Overrides `DataObjectManager::handleItem`

### Methods inherited from DataObjectManager

`AddForm()`, `AddLink()`, `AddTitle()`, `BaseLink()`, `ConfirmDelete()`, `CurrentLink()`, `FieldHolder()`, `FilterDropdown()`, `FirstLink()`, `HasFilter()`, `Headings()`, `LastLink()`, `Link()`, `NestedType()`, `NextLink()`, `Paginated()`, `PaginatedLink()`, `PerPageDropdown()`, `PluralTitle()`, `PopupWidth()`, `PrevLink()`, `RelativeLink()`, `SearchValue()`, `ShowAll()`, `ShowAllLink()`, `SingleTitle()`, `Sortable()`, `addPermission()`, `allow_assets_override()`, `allow_css_override()`, `getColumnWidths()`, `getCustomFieldsFor()`, `getRawDetailFields()`, `getSetting()`, `handleDuplicate()`, `loadSort()`, `loadSourceFilter()`, `removePermission()`, `saveComplexTableField()`, `setAddTitle()`, `setColumnWidths()`, `setConfirmDelete()`, `setFilter()`, `setFilterEmptyString()`, `setPerPageMap()`, `setPluralTitle()`, `setPopupWidth()`, `setSingleTitle()`, `setSourceFilter()`, `setUseViewAll()`, `setWideMode()`, `set_confirm_delete()`, `set_popup_width()`, `sourceID()`

### Methods inherited from ComplexTableField

`IsAddMode()`, `ItemCount()`, `Items()`, `PopupHeight()`, `Title()`, `add()`, `createFieldSet()`, `getFieldsFor()`, `getParentClass()`, `getParentIdName()`, `getParentIdNameRelation()`, `getParentRecord()`, `getValidatorFor()`, `getViewer()`, `isComposite()`, `setController()`, `setDetailFormValidator()`, `setParentClass()`, `setParentIdName()`, `setPopupCaption()`, `setPopupSize()`, `setRelationAutoSetting()`, `setTemplatePopup()`, `sourceClass()`, `sourceFilter()`

### Methods inherited from TableListField

`Actions()`, `Can()`, `ExportLink()`, `FieldList()`, `FirstItem()`, `GroupedItems()`, `HasGroupedItems()`, `HasSummary()`, `LastItem()`, `ListStart()`, `Name()`, `NamePlural()`, `NameSingular()`, `PageSize()`, `PrintLink()`, `ShowPagination()`, `SummaryFields()`, `SummaryTitle()`, `TotalCount()`, `Utility()`, `addSummary()`, `ajax_refresh()`, `colFunction_avg()`, `colFunction_sum()`, `delete()`, `disableSorting()`, `export()`, `filterString()`, `generateExportFileData()`, `getCastedValue()`, `getCsvQuery()`, `getCsvSeparator()`, `getExtraLinkParams()`, `getPermissions()`, `getQuery()`, `index()`, `isFieldSortable()`, `performReadonlyTransformation()`, `permissions_for_object()`, `printall()`, `removeCsvHeader()`, `removeSummary()`, `setCSVFieldFormatting()`, `setClick_AjaxLoad()`, `setClick_PopupLoad()`, `setCsvSeparator()`, `setCustomCsvQuery()`, `setCustomQuery()`, `setCustomSourceItems()`, `setExtraLinkParams()`, `setFieldCasting()`, `setFieldFormatting()`, `setFieldList()`, `setFieldListCsv()`, `setHighlightConditions()`, `setPageSize()`, `setPermissions()`, `setShowPagination()`, `setTemplate()`, `sourceItems()`

### Methods inherited from FormField

`Field()`, `LeftTitle()`, `Message()`, `MessageType()`, `Required()`, `RightTitle()`, `SmallFieldHolder()`, `Type()`, `Value()`, `addExtraAttribute()`, `addExtraClass()`, `allowHTML5()`, `allow_html5()`, `attrName()`, `attrTitle()`, `attrValue()`, `createTag()`, `dataValue()`, `debug()`, `describe()`, `extraClass()`, `fieldHolderTemplates()`, `fieldTemplates()`, `forTemplate()`, `getCustomValidationMessage()`, `getExtraClasses()`, `getForm()`, `getHTML5Attribute()`, `getTabIndex()`, `getTabIndexHTML()`, `hasClass()`, `hasData()`, `id()`, `isDisabled()`, `isReadonly()`, `jsValidation()`, `name_to_label()`, `performDisabledTransformation()`, `removeExtraAttribute()`, `removeExtraClass()`, `rootFieldSet()`, `saveInto()`, `securityTokenEnabled()`, `setAutocomplete()`, `setContainerFieldSet()`, `setCustomValidationMessage()`, `setDisabled()`, `setError()`, `setFieldHolderTemplate()`, `setForm()`, `setHTML5Attribute()`, `setLeftTitle()`, `setName()`, `setReadonly()`, `setRightTitle()`, `setSmallFieldHolderTemplate()`, `setTabIndex()`, `setTitle()`, `setValue()`, `smallFieldHolderTemplates()`, `transform()`, `useHTML5()`, `use_html5()`, `validate()`

### Methods inherited from RequestHandler

`allowedActions()`, `checkAccessAction()`, `getRequest()`, `handleRequest()`, `hasAction()`, `httpError()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentMember()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `XML_val()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `defineMethods()`, `escapeTypeForField()`, `getField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `hasField()`, `hasValue()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`, `setField()`

### Methods inherited from Object

`__call()`, `__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `create()`, `createMethod()`, `create_from_string()`, `exists()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `hasMethod()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

`public static array` | $url_handlers | # The default URL handling rules. This specifies that the next component of the URL corresponds to a method to be called on this RequestHandlingData object. The default URL handling rules. This specifies that the next component of the URL corresponds to a method to be called on this RequestHandlingData object. The keys of this array are parse rules. See `SS_HTTPRequest::match()` for a description of the rules available. The values of the array are the method to be called if the rule matches. If this value starts with a '$', then the named parameter of the parsed URL wil be used to determine the method name.
`public static boolean` | $upgrade_audio | #
`public static boolean` | $upgrade_video | #
`public static boolean` | $upgrade_image | #
`public mixed` | $view | #
`public string` | $default_view | #
`protected mixed` | $allowedFileTypes | #
`protected mixed` | $limitFileTypes | #
`protected string` | $uploadLimit | #
`protected integer` | $uploadMaxSize | #
`protected boolean` | $allowUploadFolderSelection | #
`protected boolean` | $enableUploadDebugging | #
`protected boolean` | $customPreviewField | #
`public boolean` | $hasDataObject | #
`public string` | $importClass | #
`protected array` | $permissions | # Influence output without having to subclass the template. Influence output without having to subclass the template.
`public string` | $popupClass | # Classname for the popup form Classname for the popup form
`public string` | $itemClass | # Classname for each row/item Classname for each row/item
`public string` | $template | # Template for main rendering Template for main rendering
`public string` | $templatePopup | # Template for popup (form rendering) Template for popup (form rendering)
`public mixed` | $gridLabelField | #
`public mixed` | $pluralTitle | #
`public string` | $browseButtonText | #
`public string` | $uploadFolder | #

### Properties inherited from DataObjectManager

`$actions`, `$addTitle`, `$allow_assets_override`, `$allow_css_override`, `$column_widths`, `$confirmDelete`, `$confirm_delete`, `$filter`, `$filter_empty_string`, `$filter_label`, `$filter_map`, `$filtered_field`, `$hasNested`, `$isNested`, `$per_page`, `$per_page_map`, `$popupWidth`, `$popup_width`, `$search`, `$showAll`, `$singleTitle`, `$sort`, `$sort_dir`, `$start`, `$use_view_all`

### Properties inherited from ComplexTableField

`$controller`, `$defaultAction`, `$detailFormFields`, `$detailFormValidator`, `$parentClass`, `$parentIdName`, `$popupCaption`, `$popupHeight`, `$relationAutoSetting`, `$requirementsForPopupCallback`, `$showPagination`, `$sourceItems`, `$sourceJoin`, `$viewAction`

### Properties inherited from TableListField

`$IsReadOnly`, `$Markable`, `$MarkableTitle`, `$__cachedQuery`, `$cachedSourceItems`, `$clickAction`, `$csvFieldEscape`, `$csvFieldFormatting`, `$csvHasHeader`, `$csvSeparator`, `$customCsvQuery`, `$customQuery`, `$customSourceItems`, `$disableSorting`, `$exportButtonLabel`, `$extraLinkParams`, `$fieldCasting`, `$fieldFormatting`, `$fieldList`, `$fieldListCsv`, `$groupByField`, `$highlightConditions`, `$methodName`, `$pageSize`, `$paginationBaseLink`, `$readOnly`, `$sourceClass`, `$sourceFilter`, `$sourceSort`, `$summaryFieldList`, `$summaryTitle`, `$totalCount`

### Properties inherited from FormField

`$autocomplete`, `$containerFieldSet`, `$customValidationMessage`, `$description`, `$disabled`, `$dontEscape`, `$extraAttributes`, `$extraClass`, `$extraClasses`, `$fieldHTML5`, `$fieldHolderTemplate`, `$form`, `$html5Attributes`, `$leftTitle`, `$message`, `$messageType`, `$name`, `$possible_autocomplete_values`, `$readonly`, `$rightTitle`, `$smallFieldHolderTemplate`, `$tabIndex`, `$title`, `$use_html5`, `$value`

### Properties inherited from RequestHandler

`$allowed_actions`, `$brokenOnConstruct`, `$request`

### Properties inherited from ViewableData

`$casting`, `$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -