CoolCMS API

SortBox extends BaseComponent
in package
uses OptionsTrait, UrlTrait

Table of Contents

Properties

$container  : Container
$routerDispatcher  : RouterDispatcher
$translator  : ITranslator
$appContext  : AppContext
$componentParameters  : array<string, mixed>
$currencyContext  : CurrencyContext|null
$deviceDetector  : DeviceDetector|null
$languageContext  : LanguageContext|null
$localizationContext  : LocalizationContext|null
$settingContext  : SettingContext
$themeContext  : ThemeContext|null
$translatorDomain  : string|null
$countOptions  : array<int, int|string>
$defaults  : array<string, mixed>
$displayModes  : array<string, string>
$labels  : array<string, string>
$orderOptions  : array<int, string>
$viewOptions  : array<int, array{icon: string, title: string}>

Methods

__call()  : mixed
Dispatches `renderXyz()` to `render('Xyz', ...$args)`.
__construct()  : mixed
createComponent()  : IComponent|null
getAppContext()  : AppContext
getComponentParameter()  : mixed
Returns a component parameter, or null when it is not set.
getContainer()  : Container
getCurrencyContext()  : CurrencyContext|null
getLanguageContext()  : LanguageContext|null
getLocalizationContext()  : LocalizationContext|null
getRouterDispatcher()  : RouterDispatcher
getSettingContext()  : SettingContext
getSettings()  : array<int, array<string, mixed>>
getThemeContext()  : ThemeContext|null
hasServiceByType()  : bool
Returns whether the container has a service of the given type.
initializeAllContexts()  : void
injectDeviceDetector()  : void
onCreate()  : void
render()  : void
setAppContext()  : $this
setComponentParameter()  : void
Sets a component parameter.
setCountOptions()  : self
setCurrencyContext()  : $this
setDefaults()  : self
Default parameters on change (e.g. page => 1).
setDisplayMode()  : self
Sets the display mode for a given parameter.
setLabels()  : self
setLanguageContext()  : $this
setLocalizationContext()  : $this
setOrderOptions()  : self
setSettingContext()  : $this
setThemeContext()  : $this
setup()  : void
setupAppContext()  : void
setViewOptions()  : self
typedComponent()  : T
Returns a subcomponent with a verified type.
frontPresenter()  : BasePresenter|null
Returns the front presenter the component is attached to (null outside the front end or when detached).
getTranslator()  : ITranslator
setTemplateFile()  : void
setTranslator()  : self
buildLinkParams()  : array<string, mixed>
Builds the URL parameters for a link.
createMultiplierComponent()  : Multiplier<string|int, IComponent>
Creates a multiplier for the component.
createNewComponentInstance()  : IComponent|null
Creates a new component instance without adding it to the presenter; used by the multiplier.
createStandardComponent()  : IComponent|null
Creates a standard component (not a multiplier).
getCurrentValue()  : int|null
Returns the current parameter value from the URL.
prepareOptions()  : array<int, array{key: int, label: ?string, icon: ?string, title: ?string, active: bool, url: string}>
Normalizes the options into a uniform format for the template.

Properties

$componentParameters

protected array<string, mixed> $componentParameters = []

component parameters set by setComponentParameter()

$translatorDomain

protected string|null $translatorDomain = 'front.system.components.sortbox'

$countOptions

private array<int, int|string> $countOptions = [0 => 'count.default', 1 => 20, 2 => 50, 3 => 100]

$defaults

private array<string, mixed> $defaults = ['page' => 1]

$displayModes

private array<string, string> $displayModes = ['order' => 'inline', 'view' => 'icons', 'count' => 'select-group']

inline|select|icons|buttons

$labels

private array<string, string> $labels = ['order' => 'order.label', 'count' => 'count.label']

translation keys (relative to $translatorDomain)

$orderOptions

private array<int, string> $orderOptions = [1 => 'order.latest', 2 => 'order.mostRead', 3 => 'order.mostRated']

$viewOptions

private array<int, array{icon: string, title: string}> $viewOptions = [1 => ['icon' => 'fa-solid fa-list', 'title' => 'view.row'], 2 => ['icon' => 'fa-solid fa-grip', 'title' => 'view.box'], 3 => ['icon' => 'fa-solid fa-table-list', 'title' => 'view.table']]

Methods

__call()

Dispatches `renderXyz()` to `render('Xyz', ...$args)`.

public __call(string $name, array<string|int, mixed> $args) : mixed

Called only when the component has no renderXyz() method of its own.

Parameters
$name : string
$args : array<string|int, mixed>

createComponent()

public createComponent(string $name) : IComponent|null
Parameters
$name : string
Return values
IComponent|null

getComponentParameter()

Returns a component parameter, or null when it is not set.

public getComponentParameter(string $name) : mixed
Parameters
$name : string

getContainer()

public getContainer() : Container
Return values
Container

getSettings()

public getSettings() : array<int, array<string, mixed>>
Return values
array<int, array<string, mixed>>

hasServiceByType()

Returns whether the container has a service of the given type.

public hasServiceByType(string $className) : bool

The name is composed dynamically (module plus component), so class_exists() runs first, and a true result guarantees a valid type.

Parameters
$className : string
Tags
phpstan-assert-if-true

class-string $className

Return values
bool

render()

public render([array<int, string>|null $order = null ][, array<int, array{icon: string, title: string}>|null $view = null ][, array<int, int>|null $count = null ][, array<string, mixed>|null $defaults = null ][, int|null $activeOrder = null ]) : void
Parameters
$order : array<int, string>|null = null
$view : array<int, array{icon: string, title: string}>|null = null
$count : array<int, int>|null = null
$defaults : array<string, mixed>|null = null
$activeOrder : int|null = null

override of the active sort choice: null = read from the URL (default), otherwise highlight this value (0 = no choice active, e.g. when the list is ordered by ES relevance and not by any of the offered options)

setComponentParameter()

Sets a component parameter.

public setComponentParameter(string $name, mixed $value) : void
Parameters
$name : string
$value : mixed

setCountOptions()

public setCountOptions(array<int, int> $options) : self
Parameters
$options : array<int, int>
Return values
self

setDefaults()

Default parameters on change (e.g. page => 1).

public setDefaults(array<string, mixed> $defaults) : self
Parameters
$defaults : array<string, mixed>
Return values
self

setDisplayMode()

Sets the display mode for a given parameter.

public setDisplayMode(string $param, string $mode) : self
Parameters
$param : string

order|view|count

$mode : string

inline|select|icons|buttons

Return values
self

setLabels()

public setLabels(array<string, string> $labels) : self
Parameters
$labels : array<string, string>
Return values
self

setOrderOptions()

public setOrderOptions(array<int, string> $options) : self
Parameters
$options : array<int, string>
Return values
self

setViewOptions()

public setViewOptions(array<int, array{icon: string, title: string}> $options) : self
Parameters
$options : array<int, array{icon: string, title: string}>
Return values
self

typedComponent()

Returns a subcomponent with a verified type.

public typedComponent(string $name, T> $type) : T

Use it instead of an inline @var above $this['x'] (which does not narrow the type) and instead of the generic IComponent that $this['x'] returns. See Form::typedComponent().

Parameters
$name : string
$type : T>
Tags
template
Return values
T

frontPresenter()

Returns the front presenter the component is attached to (null outside the front end or when detached).

protected frontPresenter() : BasePresenter|null
Return values
BasePresenter|null

getTranslator()

protected getTranslator() : ITranslator
Return values
ITranslator

setTemplateFile()

protected setTemplateFile(string $dir, string $filename) : void
Parameters
$dir : string
$filename : string

setTranslator()

protected setTranslator(ITranslator $translator) : self
Parameters
$translator : ITranslator
Return values
self

buildLinkParams()

Builds the URL parameters for a link.

private buildLinkParams(string $param, int $value) : array<string, mixed>
Parameters
$param : string
$value : int
Return values
array<string, mixed>

createMultiplierComponent()

Creates a multiplier for the component.

private createMultiplierComponent(string $name) : Multiplier<string|int, IComponent>
Parameters
$name : string
Return values
Multiplier<string|int, IComponent>

createNewComponentInstance()

Creates a new component instance without adding it to the presenter; used by the multiplier.

private createNewComponentInstance(string $baseName[, int|string|null $uniqueKey = null ]) : IComponent|null
Parameters
$baseName : string
$uniqueKey : int|string|null = null
Return values
IComponent|null

createStandardComponent()

Creates a standard component (not a multiplier).

private createStandardComponent(string $name) : IComponent|null
Parameters
$name : string
Return values
IComponent|null

getCurrentValue()

Returns the current parameter value from the URL.

private getCurrentValue(string $param) : int|null
Parameters
$param : string
Return values
int|null

prepareOptions()

Normalizes the options into a uniform format for the template.

private prepareOptions(string $param, array<int, string|int|array{icon: string, title: string}> $options[, int|null $activeValue = null ]) : array<int, array{key: int, label: ?string, icon: ?string, title: ?string, active: bool, url: string}>

Input formats: string: [1 => 'Newest'] -> label int: [1 => 20] -> label (number as text) array: [1 => ['icon' => '...', 'title' => '...']] -> icon + title

Parameters
$param : string
$options : array<int, string|int|array{icon: string, title: string}>
$activeValue : int|null = null

override of the active value: null = read from the URL; a value outside the option keys (e.g. 0) = no choice active

Return values
array<int, array{key: int, label: ?string, icon: ?string, title: ?string, active: bool, url: string}>
On this page

Search results