Version: current

# Class WebylonWidget

Базовый класс для виджетов

  Object
  ViewableData implements IteratorAggregate
  DataObject implements DataObjectInterface, i18nEntityProvider
  Widget
  WebylonWidget

### Direct known subclasses

`HomepageWidget`, `SidebarWidget`

### Indirect known subclasses

`AdditionalMenuWidget`, `AdvancedSliderHomepageWidget`, `ConsultantWidget`, `ContactsBlockWidget`, `CurrencyWidget`, `EventCalendarWidget`, `FAQHomepageWidget`, `FAQSidebarWidget`, `FavoriteProductsSidebarWidget`, `FeedbackHomepageWidget`, `GuestbookWidget`, `HouseCatalogSearchWidget`, `AuthFormWidget`, `HTMLBlockHomepageWidget`, `HTMLBlockSidebarWidget`, `NewsHomepageWidget`, `NewsSidebarWidget`, `PageMenuWidget`, `PhotoAlbumHomepageWidget`, `PhotoGalleryHomepageWidget`, `PhotoGalleryWidget`, `PollSidebarWidget`, `PriceListWidget`, `BannerWidget`, `PublicationWidget`, `SearchWidget`, `SeparateHomepageWidget`, `SeparateSidebarWidget`, `SliderHomepageWidget`, `SpecialCatalogHomepageWidget`, `SpecialCatalogSidebarWidget`, `SubscribeWidget`, `SubsectionMenuWidget`, `TextAnonsWidget`, `ButtonsBlockHomepageWidget`, `TextBlockHomepageWidget`, `TextBlockSidebarWidget`, `WeatherSidebarWidget`, `YandexMapsHomepageWidget`, `YandexMapsWidget`, `CallBackWidget`, `CarouselHomepageWidget`, `CartWidget`, `CatalogFilterSidebarWidget`, `CatalogRubricsHomepageWidget`

Package: widgets
Author: menedem
Located at widgets/code/WebylonWidget.php

## Methods summary

`public static` | # `set_styles( string $class, array $styles )` Задаем стили для виджетов Задаем стили для виджетов #### Parameters $class string $class - класс виджета $styles array $styles - набор стилей
`public static` | # `get_styles( mixed $class )`
`public static` | # `hide_widget( string $class )` Добавить скрытый виджет Добавить скрытый виджет #### Parameters $class string $class - класс виджета
`public static` | # `set_hidden_widgets( array $classes )` Установить список скрытых виджетов Установить список скрытых виджетов #### Parameters $classes array $classes - массив классов виджета
`public static boolean` | # `is_hidden_widget( string $class )` Является ли виджет скрытым Является ли виджет скрытым #### Parameters $class string $widget - класс виджета #### Returns `boolean` bool
`public static array` | # `get_array_localization( string $class, string $field, array $options )` Возврат локализованных значений массива по классу и полю Возврат локализованных значений массива по классу и полю #### Parameters $class string $class - класс объекта $field string $field - поле объекта $options array $options - набор значений поля объекта #### Returns `array` - набор локализованных значений поля объекта
`public boolean` | # `canCreate( `Member` $area = null )` #### Parameters $area Member $member #### Returns `boolean` boolean #### Overrides `DataObject::canCreate`
`public boolean` | # `canDelete( )` #### Returns `boolean` boolean #### Overrides `DataObject::canDelete`
`public` | # `onBeforeWrite( )` Event handler called before writing to the database. You can overload this to clean up or otherwise process data before writing it to the database. Don't forget to call parent::onBeforeWrite(), though! Event handler called before writing to the database. You can overload this to clean up or otherwise process data before writing it to the database. Don't forget to call parent::onBeforeWrite(), though! This called after $this->validate(), so you can be sure that your data is valid. #### Uses ``DataObjectDecorator::onBeforeWrite()`` #### Overrides `DataObject::onBeforeWrite`
`public` | # `onBeforeDelete( )` Event handler called before deleting from the database. You can overload this to clean up or otherwise process data before delete this record. Don't forget to call parent::onBeforeDelete(), though! Event handler called before deleting from the database. You can overload this to clean up or otherwise process data before delete this record. Don't forget to call parent::onBeforeDelete(), though! #### Uses ``DataObjectDecorator::onBeforeDelete()`` #### Overrides `DataObject::onBeforeDelete`
`public array|string` | # `fieldLabels( boolean $relations = true )` Get any user defined searchable fields labels that exist. Allows overriding of default field names in the form interface actually presented to the user. Get any user defined searchable fields labels that exist. Allows overriding of default field names in the form interface actually presented to the user. The reason for keeping this separate from searchable_fields, which would be a logical place for this functionality, is to avoid bloating and complicating the configuration array. Currently much of this system is based on sensible defaults, and this property would generally only be set in the case of more complex relationships between data object being required in the search interface. Generates labels based on name of the field itself, if no static property `DataObject::$field_labels` exists. #### Parameters $relations boolean $includerelations a boolean value to indicate if the labels returned include relation fields #### Returns `array|string` Array of all element labels if no argument given, otherwise the label of the field #### Uses `mixed` ``FormField::name_to_label()`` #### Overrides `DataObject::fieldLabels`
`public `FieldSet`` | # `getCMSFields( )` Centerpiece of every data administration interface in Silverstripe, which returns a `FieldSet` suitable for a `Form` object. If not overloaded, we're using `DataObject::scaffoldFormFields()` to automatically generate this set. To customize, overload this method in a subclass or decorate onto it by using DataObjectDecorator->updateCMSFields(). Centerpiece of every data administration interface in Silverstripe, which returns a `FieldSet` suitable for a `Form` object. If not overloaded, we're using `DataObject::scaffoldFormFields()` to automatically generate this set. To customize, overload this method in a subclass or decorate onto it by using DataObjectDecorator->updateCMSFields().
    klass MyCustomClass extends DataObject {
            static $db = array('CustomProperty'=>'Boolean');

            public function getCMSFields() {
                    $fields = parent::getCMSFields();
                    $fields->addFieldToTab('Root.Content',new CheckboxField('CustomProperty'));
            return $fields;
    }
    }
#### Returns ``FieldSet`` Returns a TabSet for usage within the CMS - don't use for frontend forms. #### See Good example of complex FormField building: SiteTree::getCMSFields() #### Overrides `Widget::getCMSFields`
`public` | # `getFailCMSFields( )`
`public an` | # `getCMSActions( )` need to be overload by solid dataobject, so that the customised actions of that dataobject, including that dataobject's decorator customised actions could be added to the EditForm. need to be overload by solid dataobject, so that the customised actions of that dataobject, including that dataobject's decorator customised actions could be added to the EditForm. #### Returns `an` Empty FieldSet(); need to be overload by solid subclass #### Overrides `DataObject::getCMSActions`
`public` | # `populateDefaults( )` Load the default values in from the self::$defaults array. Will traverse the defaults of the current class and all its parent classes. Called by the constructor when creating new records. Load the default values in from the self::$defaults array. Will traverse the defaults of the current class and all its parent classes. Called by the constructor when creating new records. #### Uses ``DataObjectDecorator::populateDefaults()`` #### Overrides `DataObject::populateDefaults`
`public` | # `getActive( )`
`public` | # `CMSTitle( )` #### Overrides `Widget::CMSTitle`
`public` | # `Title( )` #### Overrides `Widget::Title`
`public` | # `WidgetType( )`
`public string` | # `WidgetHolder( )` Note: Overloaded in `Widget_Controller`. Note: Overloaded in `Widget_Controller`. #### Returns `string` HTML #### Overrides `Widget::WidgetHolder`
`public` | # `forTemplate( )`
`public` | # `getTemplates( )`
`public <type>` | # `hasContent( )` Проверка наличия в виджете содержания если есть активные элементы для итерации если есть существующий holder (в большинстве виджетов требуется доп.проверка на наличие элементов в holder) есть Text Проверка наличия в виджете содержания если есть активные элементы для итерации если есть существующий holder (в большинстве виджетов требуется доп.проверка на наличие элементов в holder) есть Text #### Returns `<type>` <type>
`public (string)` | # `getMoreLink( )` Ссылка на раздел сайта, свзяанный с виджетом Ссылка на раздел сайта, свзяанный с виджетом #### Returns `(string)` Link
`public` | # `CurrentPage( )` #### See ``Controller::curr()`` #### Overrides `ViewableData::CurrentPage`

### Methods inherited from Widget

`CMSEditor()`, `ClassName()`, `Description()`, `DescriptionSegment()`, `EditableSegment()`, `EnabledTitle()`, `Name()`, `populateFromPostData()`

### Methods inherited from DataObject

`Aggregate()`, `RelationshipAggregate()`, `__construct()`, `baseTable()`, `belongs_to()`, `buildDataObjectSet()`, `buildSQL()`, `can()`, `canEdit()`, `canView()`, `castedUpdate()`, `composite_fields()`, `context_obj()`, `customDatabaseFields()`, `custom_database_fields()`, `data()`, `databaseFields()`, `databaseIndexes()`, `database_extensions()`, `database_fields()`, `db()`, `dbObject()`, `debug()`, `defaultSearchFilters()`, `defineMethods()`, `delete()`, `delete_by_id()`, `destroy()`, `disableCMSFieldsExtensions()`, `disable_subclass_access()`, `duplicate()`, `enableCMSFieldsExtensions()`, `enable_subclass_access()`, `exists()`, `extendedSQL()`, `fieldLabel()`, `flushCache()`, `flush_and_destroy_cache()`, `forceChange()`, `get()`, `getAllFields()`, `getChangedFields()`, `getClassAncestry()`, `getComponent()`, `getComponents()`, `getComponentsQuery()`, `getDefaultSearchContext()`, `getField()`, `getFrontEndFields()`, `getManyManyComponents()`, `getManyManyComponentsQuery()`, `getManyManyFilter()`, `getManyManyJoin()`, `getRemoteJoinField()`, `getReverseAssociation()`, `getTitle()`, `get_by_id()`, `get_one()`, `get_validation_enabled()`, `hasDatabaseField()`, `hasField()`, `hasOwnTableDatabaseField()`, `hasValue()`, `has_many()`, `has_one()`, `has_own_table()`, `i18n_plural_name()`, `i18n_singular_name()`, `inheritedDatabaseFields()`, `instance_get()`, `instance_get_one()`, `isChanged()`, `isEmpty()`, `isInDB()`, `is_composite_field()`, `many_many()`, `many_many_extraFields()`, `merge()`, `newClassInstance()`, `onAfterDelete()`, `onAfterWrite()`, `plural_name()`, `provideI18nEntities()`, `relObject()`, `requireDefaultRecords()`, `requireTable()`, `reset()`, `scaffoldFormFields()`, `scaffoldSearchFields()`, `searchableFields()`, `setCastedField()`, `setClassName()`, `setComponent()`, `setField()`, `set_context_obj()`, `set_validation_enabled()`, `singular_name()`, `summaryFields()`, `toMap()`, `update()`, `validate()`, `write()`, `writeComponents()`, `writeWithoutVersion()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentMember()`, `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()`, `escapeTypeForField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`

### 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()`, `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` | $db | # Database field definitions. This is a map from field names to field type. The field type should be a class that extends . Database field definitions. This is a map from field names to field type. The field type should be a class that extends .
`public static array` | $defaults | # Inserts standard column-values when a DataObject is instanciated. Does not insert default records `DataObject::$default_records`. This is a map from fieldname to default value. Inserts standard column-values when a DataObject is instanciated. Does not insert default records `DataObject::$default_records`. This is a map from fieldname to default value. If you would like to change a default value in a sub-class, just specify it. - If you would like to disable the default value given by a parent class, set the default value to 0,'',or false in your subclass. Setting it to null won't work.
`public static array` | $summary_fields | # Provides a default list of fields to be used by a 'summary' view of this object. Provides a default list of fields to be used by a 'summary' view of this object.
`public static array` | $searchable_fields | # Default list of fields that can be scaffolded by the ModelAdmin search interface. Default list of fields that can be scaffolded by the ModelAdmin search interface. Overriding the default filter, with a custom defined filter:
           static $searchable_fields = array(
              "Name" => "PartialMatchFilter"
    );
Overriding the default form fields, with a custom defined field. The 'filter' parameter will be generated from `DBField::$default_search_filter_class`. The 'title' parameter will be generated from DataObject->fieldLabels().
           static $searchable_fields = array(
              "Name" => array(
                           "field" => "TextField"
                   )
    );
Overriding the default form field, filter and title:
           static $searchable_fields = array(
              "Organisation.ZipCode" => array(
                           "field" => "TextField",
                           "filter" => "PartialMatchFilter",
                           "title" => 'Organisation ZIP'
                   )
    );
`public static integer` | $max_image_width | #
`public static integer` | $max_image_heigth | #

### Properties inherited from Widget

`$belongs_many_many`, `$cmsTitle`, `$default_sort`, `$description`, `$has_many`, `$has_one`, `$many_many`, `$title`

### Properties inherited from DataObject

`$allowed_actions`, `$ancestry`, `$api_access`, `$belongs_to`, `$brokenOnDelete`, `$brokenOnWrite`, `$cache_get_one`, `$cache_has_own_table`, `$cache_has_own_table_field`, `$casting`, `$componentCache`, `$components`, `$create_table_options`, `$default_records`, `$destroyed`, `$field_labels`, `$indexes`, `$many_many_extraFields`, `$original`, `$plural_name`, `$record`, `$singular_name`

### Properties inherited from ViewableData

`$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. -