Webylon 3.1 API Docs
  • Package
  • Class
  • Tree
  • Deprecated
  • Download
Version: current
  • 3.2
  • 3.1

Packages

  • auth
  • Booking
  • cart
    • shipping
    • steppedcheckout
  • Catalog
  • cms
    • assets
    • batchaction
    • batchactions
    • bulkloading
    • comments
    • content
    • core
    • export
    • newsletter
    • publishers
    • reports
    • security
    • tasks
  • Dashboard
  • DataObjectManager
  • event
  • faq
  • forms
    • actions
    • core
    • fields-basic
    • fields-dataless
    • fields-datetime
    • fields-files
    • fields-formatted
    • fields-formattedinput
    • fields-relational
    • fields-structural
    • transformations
    • validators
  • googlesitemaps
  • guestbook
  • installer
  • newsletter
  • None
  • photo
    • gallery
  • PHP
  • polls
  • recaptcha
  • sapphire
    • api
    • bulkloading
    • control
    • core
    • cron
    • dev
    • email
    • fields-formattedinput
    • filesystem
    • formatters
    • forms
    • i18n
    • integration
    • misc
    • model
    • parsers
    • search
    • security
    • tasks
    • testing
    • tools
    • validation
    • view
    • widgets
  • seo
    • open
      • graph
  • sfDateTimePlugin
  • spamprotection
  • stealth
    • captha
  • subsites
  • userform
    • pagetypes
  • userforms
  • webylon
  • widgets

Classes

  • AssetManager
  • CartTableListField_Item
  • ComplexTableField
  • ComplexTableField_Item
  • ComplexTableField_ItemRequest
  • ComplexTableField_Popup
  • CountryDropdownField
  • DataObjectManager
  • DataObjectManager_Item
  • DataObjectManager_ItemRequest
  • DocumentPageFiles_Manager
  • FileDataObjectManager
  • FileDataObjectManager_Item
  • FileDataObjectManager_ItemRequest
  • HasManyComplexTableField
  • HasManyComplexTableField_Item
  • HasManyDataObjectManager
  • HasManyDataObjectManager_Item
  • HasManyFileDataObjectManager
  • HasManyFileDataObjectManager_Item
  • HasOneComplexTableField
  • HasOneComplexTableField_Item
  • HasOneDataObjectManager
  • HasOneDataObjectManager_Item
  • HasOneFileDataObjectManager
  • HasOneFileDataObjectManager_Item
  • ImageAssetManager
  • ImageDataObjectManager
  • ImageDataObjectManager_Item
  • ImageDataObjectManager_ItemRequest
  • LanguageDropdownField
  • ManyManyComplexTableField
  • ManyManyComplexTableField_Item
  • ManyManyDataObjectManager
  • ManyManyDataObjectManager_Item
  • ManyManyFileDataObjectManager
  • ManyManyFileDataObjectManager_Item
  • Mediaweb3DPageFiles_Manager
  • MediawebPageFiles_Manager
  • MediawebPagePhoto_Manager
  • MediawebPageTexture_Manager
  • PhotoAlbumManager
  • ScaffoldingComplexTableField_Popup
  • SubpageListField_Item
  • SubPageListField_ItemRequest
  • SubsiteAgnosticTableListField
  • TableField
  • TableField_Item
  • TableListField
  • TableListField_Item
  • TableListField_ItemRequest
  • TreeDropdownField
  • TreeDropdownField_Readonly
  • TreeMultiselectField
  • TreeMultiselectField_Readonly
  • TreeSelectorField

Class ComplexTableField

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
Extended by ViewableData implements IteratorAggregate
Extended by RequestHandler
Extended by FormField
Extended by TableListField
Extended by ComplexTableField

Direct known subclasses

AssetTableField, CommentTableField, DataObjectManager, HasManyComplexTableField, MemberTableField

Indirect known subclasses

AssetManager, DocumentPageFiles_Manager, ImageDataObjectManager, ManyManyComplexTableField, ManyManyDataObjectManager, ManyManyFileDataObjectManager, Mediaweb3DPageFiles_Manager, MediawebPageFiles_Manager, MediawebPagePhoto_Manager, MediawebPageTexture_Manager, PhotoAlbumManager, VideoManager, FileComplexTableField, FileDataObjectManager, HasManyDataObjectManager, HasManyFileDataObjectManager, HasOneComplexTableField, HasOneDataObjectManager, HasOneFileDataObjectManager, ImageAssetManager

Package: forms\fields-relational
Located at sapphire/forms/ComplexTableField.php

Methods summary

public
# handleItem( mixed $request )

Overrides

TableListField::handleItem
public
# getViewer( )
public
# setPopupSize( mixed $width, mixed $height )
public
# PopupWidth( )
public
# PopupHeight( )
public
# __construct( ContentController $controller, string $name, string $sourceClass, array $fieldList = null, FieldSet $detailFormFields = null, string $sourceFilter = "", string $sourceSort = "", string $sourceJoin = "" )

See class comments

See class comments

Parameters

$controller
ContentController $controller
$name
string $name
$sourceClass
string $sourceClass
$fieldList
array $fieldList
$detailFormFields
FieldSet $detailFormFields
$sourceFilter
string $sourceFilter
$sourceSort
string $sourceSort
$sourceJoin
string $sourceJoin

Overrides

TableListField::__construct
public
# sourceFilter( )

Return the record filter for this table. It will automatically add a relation filter if relationAutoSetting is true, and it can determine an appropriate filter.

Return the record filter for this table. It will automatically add a relation filter if relationAutoSetting is true, and it can determine an appropriate filter.

Overrides

TableListField::sourceFilter
public
# isComposite( )

Returns true if this field is a composite field. To create composite field types, you should subclass CompositeField.

Returns true if this field is a composite field. To create composite field types, you should subclass CompositeField.

Overrides

FormField::isComposite
public String
# FieldHolder( )

Returns

String
String

Overrides

TableListField::FieldHolder
public
# sourceClass( )

Overrides

TableListField::sourceClass
public DataObjectSet
# Items( )

Returns

DataObjectSet
DataObjectSet

Overrides

TableListField::Items
public
# setPopupCaption( mixed $caption )

Sets the popup-title by javascript. Make sure to use FormResponse in ajax-requests, otherwise the title-change will only take effect on items existing during page-load.

Sets the popup-title by javascript. Make sure to use FormResponse in ajax-requests, otherwise the title-change will only take effect on items existing during page-load.

Parameters

$caption
$caption String
public
# setDetailFormValidator( Validator $validator )

Parameters

$validator
$validator Validator
public
# setAddTitle( mixed $addTitle )
public
# Title( )

Returns the field label - used by templates.

Returns the field label - used by templates.

Overrides

TableListField::Title
public Int
# ItemCount( )

Calculates the number of columns needed for colspans used in template

Calculates the number of columns needed for colspans used in template

Returns

Int
Int
public Boolean
# IsAddMode( )

Used to toggle paging (makes no sense when adding a record)

Used to toggle paging (makes no sense when adding a record)

Returns

Boolean
Boolean
public Int
# sourceID( )

Returns

Int
Int

Overrides

TableListField::sourceID
public
# AddLink( )
public FieldSet
# createFieldSet( )

Returns

FieldSet
FieldSet
public
# setController( mixed $controller )
public String
# getParentClass( )

Determines on which relation-class the DetailForm is saved by looking at the surrounding form-record.

Determines on which relation-class the DetailForm is saved by looking at the surrounding form-record.

Returns

String
String
public
# getParentRecord( )

Return the record in which the CTF resides, if it exists.

Return the record in which the CTF resides, if it exists.

public
# setParentClass( mixed $className )

(Optional) Setter for a correct parent-relation-class. Defaults to the record loaded into the surrounding form as a fallback. Caution: Please use the classname, not the actual column-name in the database.

(Optional) Setter for a correct parent-relation-class. Defaults to the record loaded into the surrounding form as a fallback. Caution: Please use the classname, not the actual column-name in the database.

Parameters

$className
$className string
public
# getParentIdName( mixed $parentClass, mixed $childClass )

Returns the db-fieldname of the currently used has_one-relationship.

Returns the db-fieldname of the currently used has_one-relationship.

public
# setParentIdName( String $str )

Manually overwrites the parent-ID relations.

Manually overwrites the parent-ID relations.

Parameters

$str
String $str Example: FamilyID (when one Individual has_one Family)

See

ComplexTableField::setParentClass()
public
# getParentIdNameRelation( mixed $parentClass, mixed $childClass, mixed $relation )

Returns the db-fieldname of the currently used relationship. Note: constructed resolve ambiguous cases in the same manner as DataObject::getComponentJoinField()

Returns the db-fieldname of the currently used relationship. Note: constructed resolve ambiguous cases in the same manner as DataObject::getComponentJoinField()

public
# setTemplatePopup( mixed $template )
public
# getCustomFieldsFor( mixed $childData )

Return the object-specific fields for the given record, to be shown in the detail pop-up

Return the object-specific fields for the given record, to be shown in the detail pop-up

This won't include all the CTF-specific 'plumbing; this method is called by self::getFieldsFor() and the result is then processed further to get the actual FieldSet for the form.

The default implementation of this processes the value of $this->detailFormFields; consequently, if you want to set the value of the fields to something that $this->detailFormFields doesn't allow, you can do so by overloading this method.

public
# getFieldsFor( mixed $childData )
public
# getValidatorFor( mixed $childData )
public
# add( )
public
# AddForm( mixed $childID = null )
public
# setRelationAutoSetting( boolean $value )

By default, a ComplexTableField will assume that the field name is the name of a has-many relation on the object being edited. It will identify the foreign key in the object being listed, and filter on that column, as well as auto-setting that column for newly created records.

By default, a ComplexTableField will assume that the field name is the name of a has-many relation on the object being edited. It will identify the foreign key in the object being listed, and filter on that column, as well as auto-setting that column for newly created records.

Calling $this->setRelationAutoSetting(false) will disable this functionality.

Parameters

$value
boolean $value Should the relation auto-setting functionality be enabled?
public
# saveComplexTableField( mixed $data, mixed $form, mixed $params )

Use the URL-Parameter "action_saveComplexTableField" to provide a clue to the main controller if the main form has to be rendered, even if there is no action relevant for the main controller (to provide the instance of ComplexTableField which in turn saves the record.

Use the URL-Parameter "action_saveComplexTableField" to provide a clue to the main controller if the main form has to be rendered, even if there is no action relevant for the main controller (to provide the instance of ComplexTableField which in turn saves the record.

This is for adding new item records. ComplexTableField_ItemRequest::saveComplexTableField()

See

Form::ReferencedField

Methods inherited from TableListField

Actions(), BaseLink(), Can(), CurrentLink(), ExportLink(), FieldList(), FirstItem(), FirstLink(), GroupedItems(), HasGroupedItems(), HasSummary(), Headings(), LastItem(), LastLink(), ListStart(), Name(), NamePlural(), NameSingular(), NextLink(), PageSize(), PrevLink(), 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(), Link(), Message(), MessageType(), Required(), RightTitle(), SmallFieldHolder(), Type(), Value(), addExtraAttribute(), addExtraClass(), allowHTML5(), allow_html5(), attrName(), attrTitle(), attrValue(), createTag(), dataValue(), debug(), describe(), extraClass(), forTemplate(), getCustomValidationMessage(), getForm(), getTabIndex(), getTabIndexHTML(), hasClass(), hasData(), id(), isDisabled(), isReadonly(), jsValidation(), name_to_label(), performDisabledTransformation(), removeExtraAttribute(), removeExtraClass(), rootFieldSet(), saveInto(), securityTokenEnabled(), setAutocomplete(), setContainerFieldSet(), setCustomValidationMessage(), setDisabled(), setError(), setForm(), setHTML5Attribute(), setLeftTitle(), setName(), setReadonly(), setRightTitle(), setTabIndex(), setTitle(), setValue(), 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

protected mixed $addTitle
#

Determines the fields of the detail pop-up form. It can take many forms:
- A FieldSet object: Use that field set directly.
- A method name, eg, 'getCMSFields': Call that method on the child object to get the fields.

Determines the fields of the detail pop-up form. It can take many forms: - A FieldSet object: Use that field set directly. - A method name, eg, 'getCMSFields': Call that method on the child object to get the fields.

protected mixed $detailFormFields
#
protected mixed $viewAction
#
protected mixed $sourceJoin
#
protected mixed $sourceItems
#
protected Controller $controller
#
public string $parentClass
#

Classname of the parent-relation to correctly link new records.

Classname of the parent-relation to correctly link new records.

protected string $parentIdName
#

Database column name for the used relation (e.g. FamilyID if one Family has_many Individuals).

Database column name for the used relation (e.g. FamilyID if one Family has_many Individuals).

protected array $permissions
#

Influence output without having to subclass the template.

Influence output without having to subclass the template.

protected string $template
#

Template for main rendering

Template for main rendering

public string $templatePopup
#

Template for popup (form rendering)

Template for popup (form rendering)

public string $itemClass
#

Classname for each row/item

Classname for each row/item

public string $popupClass
#

Classname for the popup form

Classname for the popup form

protected boolean $showPagination
#

Trigger pagination (defaults to true for ComplexTableField)

Trigger pagination (defaults to true for ComplexTableField)

protected string $popupCaption
#

Caption the popup will show (defaults to the selected action). This is set by javascript and used by greybox.

Caption the popup will show (defaults to the selected action). This is set by javascript and used by greybox.

public callable $requirementsForPopupCallback
#

A function callback invoked after initializing the popup and its base calls to the Requirements class.

A function callback invoked after initializing the popup and its base calls to the Requirements class.

protected mixed $detailFormValidator
#

Validator

Validator

protected boolean $relationAutoSetting
#

Automatically detect a has-one relationship in the popup (=child-class) and save the relation ID.

Automatically detect a has-one relationship in the popup (=child-class) and save the relation ID.

protected integer $popupWidth
#

Default size for the popup box

Default size for the popup box

protected integer $popupHeight
#
public string $defaultAction
#

String Action being executed when clicking on table-row (defaults to "show"). Mostly needed in ComplexTableField-subclass.

String Action being executed when clicking on table-row (defaults to "show"). Mostly needed in ComplexTableField-subclass.

public array $actions
#

array Action that can be performed on a single row-entry. Has to correspond to a method in a TableListField-class (or subclass). Actions can be disabled through $permissions. Format (key is used for the methodname and CSS-class): array(
'delete' => array(
'label' => 'Delete',
'icon' => 'cms/images/delete.gif',
'icon_disabled' => 'cms/images/delete_disabled.gif',
'class' => 'deletelink',
) )

array Action that can be performed on a single row-entry. Has to correspond to a method in a TableListField-class (or subclass). Actions can be disabled through $permissions. Format (key is used for the methodname and CSS-class): array( 'delete' => array( 'label' => 'Delete', 'icon' => 'cms/images/delete.gif', 'icon_disabled' => 'cms/images/delete_disabled.gif', 'class' => 'deletelink', ) )

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.

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, $form, $html5Attributes, $leftTitle, $message, $messageType, $name, $possible_autocomplete_values, $readonly, $rightTitle, $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. -
Webylon 3.1 API Docs API documentation generated by ApiGen 2.8.0