Version: current

# Class Catalog_Controller

The most common kind of controller; effectively a controller linked to a `DataObject`.

ContentControllers are most useful in the content-focused areas of a site. This is generally the bulk of a site; however, they may be less appropriate in, for example, the user management section of an application.

On its own, content controller does very little. Its constructor is passed a `DataObject` which is stored in $this->dataRecord. Any unrecognised method calls, for example, Title() and Content(), will be passed along to the data record,

Subclasses of ContentController are generally instantiated by ModelAsController; this will create a controller based on the URLSegment action variable, by looking in the SiteTree table.

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  Controller
  ContentController
  Page_Controller
  Catalog_Controller

### Direct known subclasses

`MonumentForm_Controller`, `Socle_Controller`, `SpecialCatalog_Controller`, `StartCatalog_Controller`

### Indirect known subclasses

`MonumentCatalog_Controller`

Package: sapphire\control
Located at catalog/code/Catalog.php

## Methods summary

`public boolean` | # `setupCatalogtVar( string $name, mixed $newVal = null )` Устанавливает значение параметра отображения Устанавливает значение параметра отображения #### Parameters $name string $name - имя параметра $newVal mixed $newVal - новое значение (например из get параметров) TODO возможно вытаскивать автоматически #### Returns `boolean` была ли смена сохраненного значения
`public` | # `isEmptyContent( )` #### Overrides `Page_Controller::isEmptyContent`
`public `FormField`` | # `setupFilterClasses( `FormField` $field, `CatalogFilter` $filter )` Настраивает css классы для поля формы фильтров Настраивает css классы для поля формы фильтров #### Parameters $field FormField $field $filter CatalogFilter $filter #### Returns ``FormField`` FormField
`public `FormField`` | # `getTextFilter( `ProductParam` $filter )` Получение поля фильтра для текстового фильтра Получение поля фильтра для текстового фильтра #### Parameters $filter ProductParam #### Returns ``FormField`` FormField
`public `FormField`` | # `getBoolFilter( `ProductParam` $filter )` Получение поля фильтра для Флагов Получение поля фильтра для Флагов #### Parameters $filter ProductParam #### Returns ``FormField`` FormField
`public `FormField`` | # `getMultiSelectFilter( `ProductParam` $filter, mixed $productsSQL )` Получение поля фильтра для Флагов Получение поля фильтра для Флагов #### Parameters $filter ProductParam $productsSQL #### Returns ``FormField`` FormField
`public `FormField`` | # `getListFilter( `ProductParam` $filter, mixed $productsSQL )` Получение поля фильтра для Списка Получение поля фильтра для Списка #### Parameters $filter ProductParam $productsSQL #### Returns ``FormField`` FormField
`public `FormField`` | # `getSliderFilter( `ProductParam` $filter, mixed $productsSQL )` Получение поля фильтра для Слайдера Получение поля фильтра для Слайдера #### Parameters $filter ProductParam $productsSQL #### Returns ``FormField`` FormField
`public `FormField`` | # `getGroupFilter( `ProductParam` $key, mixed $filters, mixed & $paramFields )` Получение поля фильтра для Группы параметров Получение поля фильтра для Группы параметров #### Parameters $key ProductParam $filters $paramFields #### Returns ``FormField`` FormField
`public array` | # `cleanParams( array $values = false, mixed $keepPage = false )` Возвращает параметры для формирования списка товаров Возвращает параметры для формирования списка товаров #### Parameters $values array $values - массив кандидатов на параметры $keepPage #### Returns `array` array
`public string` | # `linkWithParams( array $params = array() )` Возвращает правильную ссылку на каталог с учетом фильтров и других параметров Возвращает правильную ссылку на каталог с учетом фильтров и других параметров #### Parameters $params array $params - параметры для формирования ссылки #### Returns `string` string
`public` | # `Sorts( mixed $default = false )` Получение возможных вариантов сортировок Получение возможных вариантов сортировок
`public` | # `Views( mixed $default = false )` Получение возможных вариантов отображений Получение возможных вариантов отображений
`public` | # `PageSizes( mixed $default = false )` Получение возможных вариантов отображений Получение возможных вариантов отображений
`public string` | # `FilteredProductsCountLink( )` Возвращает ссылку на подсчет кол-ва товаров по заданным фильтрам Возвращает ссылку на подсчет кол-ва товаров по заданным фильтрам #### Returns `string` string
`public `Form`` | # `Filters( )` Получение формы фильтра товаров Получение формы фильтра товаров #### Returns ``Form`` Form
`public` | # `calculateSuitableProducts( mixed $fields, mixed $filters )`
`public array` | # `setFiltersDefaultValue( array $filterData )` выставляем значения фильтров по умолчанию, если они до этого не выставлены выставляем значения фильтров по умолчанию, если они до этого не выставлены #### Parameters $filterData array $filterData #### Returns `array` array
`public boolean` | # `IsFilterActive( )` Активен ли фильтр по товарам в текущем каталоге Активен ли фильтр по товарам в текущем каталоге #### Returns `boolean` bool
`public integer` | # `TotalProductsCount( boolean $withFilters = true, mixed $additionalFilters = false )` Возвращает число товаров в каталоге Возвращает число товаров в каталоге #### Parameters $withFilters bool $withFilters - с учетом фильтров или без $additionalFilters #### Returns `integer` int
`public string` | # `TotalProductsCountTitle( )` Правильное именование числительного для товаров в рубрике Правильное именование числительного для товаров в рубрике #### Returns `string` string
`public` | # `init( )` Initialisation function that is run before any action on the controller is called. Initialisation function that is run before any action on the controller is called. #### Uses ``BasicAuth::requireLogin()`` #### Overrides `Page_Controller::init`
`public` | # `index( )`
`public` | # `filtered_products_count( )`
`public `HTTP`` | # `filterclear( array $data, `Form` $form )` Обработчик формы - сбрасывает фильтр Обработчик формы - сбрасывает фильтр #### Parameters $data array $data - Данные формы $form Form $form - форма #### Returns ``HTTP`` редирект на страницу каталога
`public` | # `filter( mixed $data, mixed $form = null )`

### Methods inherited from Page_Controller

`BaseURL()`, `DocPath()`, `FavIcon()`, `HomePage()`, `ImageGalleryRandomImage()`, `PageByClass()`, `PageByID()`, `Random()`, `RedirectToFirstChild()`, `ShowWidget()`, `Siblings()`, `SitePoll()`, `combine_files()`, `setSEOVars()`

### Methods inherited from ContentController

`ChildrenOf()`, `ContentLocale()`, `LangAttributes()`, `Link()`, `LoginForm()`, `Menu()`, `Page()`, `PageComments()`, `SilverStripeNavigator()`, `SiteConfig()`, `__construct()`, `data()`, `deleteinstallfiles()`, `getMenu()`, `handleRequest()`, `handleWidget()`, `httpError()`, `project()`, `successfullyinstalled()`

### Methods inherited from Controller

`CurrentMember()`, `Now()`, `PastMember()`, `PastVisitor()`, `can()`, `curr()`, `defaultAction()`, `disableBasicAuth()`, `getAction()`, `getFormOwner()`, `getRequest()`, `getResponse()`, `getSession()`, `getURLParams()`, `getViewer()`, `handleAction()`, `hasAction()`, `hasActionTemplate()`, `has_curr()`, `isAjax()`, `join_links()`, `popCurrent()`, `pushCurrent()`, `redirect()`, `redirectBack()`, `redirectedTo()`, `render()`, `setSession()`, `setURLParams()`

### Methods inherited from RequestHandler

`allowedActions()`, `checkAccessAction()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `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 mixed` | $CurrentSort | #
`public mixed` | $CurrentView | #
`public mixed` | $CurrentPageSize | #
`public mixed` | $FilterActive | #
`public boolean` | $UseShowMore | #
`public boolean` | $UseChangeView | #

### Properties inherited from ContentController

`$allowed_actions`, `$dataRecord`, `$url_handlers`

### Properties inherited from Controller

`$action`, `$baseInitCalled`, `$basicAuthEnabled`, `$controller_stack`, `$request`, `$requestParams`, `$response`, `$session`, `$urlParams`

### Properties inherited from RequestHandler

`$brokenOnConstruct`

### 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. -