CoolCMS API

AdvertListRenderer extends BaseComponent
in package
uses RenderInitTrait, InitTrait

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
$headingTag  : string
$highlightConfig  : AdvertHighlightConfig
$highlightedAdvertIds  : array<int, true>
Adverts with an active "Highlighting" tariff (`AdvertHighlightConfig`, default 2): the card gets the class `highlighted` (background tint, token `--list-item-highlighted-bg`).
$highlights  : array<int, array<string, string>>
$itemsById  : array<int, Advert>
$parameterManager  : ParameterManager
$parameterOptions  : array<string|int, object>
$paymentItemManager  : PaymentItemManager
$types  : array<string|int, object>

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
getHighlights()  : array<string, string>
Returns highlighted snippets of one advert (`name`/`text`). Same path as {@see getItem()}: the item {@see \App\UI\Front\Bazaar\Components\AdvertRendererComponent\AdvertRenderer} fetches them via the parent (multiplier) so they need not go through the multicontrol.
getItem()  : Advert|null
getLanguageContext()  : LanguageContext|null
getLocalizationContext()  : LocalizationContext|null
getParameterOptions()  : array<string|int, object>
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
isHighlighted()  : bool
Whether the advert has an active paid highlighting (read by the item `AdvertRenderer` via the parent).
onCreate()  : void
prepareParameterOptions()  : self
prepareTypes()  : self
render()  : void
renderBox()  : void
renderCards()  : void
renderCarousel()  : void
renderCompact()  : void
renderHorizontalCards()  : void
renderHorizontalCompact()  : void
renderRanked()  : void
renderRow()  : void
renderTable()  : void
setAppContext()  : $this
setComponentParameter()  : void
Sets a component parameter.
setCurrencyContext()  : $this
setHeadingTag()  : self
setLanguageContext()  : $this
setLocalizationContext()  : $this
setSettingContext()  : $this
setThemeContext()  : $this
setup()  : void
setupAppContext()  : void
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
prepareLists()  : void
setTemplateFile()  : void
setTranslator()  : self
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).
intilializeRender()  : void
prepareHighlightedAdvertIds()  : void
Fills {@see \App\UI\Front\Bazaar\Components\AdvertListRendererComponent\AdvertListRenderer::$highlightedAdvertIds}: adverts with an active valid item of the "Highlighting" tariff (`AdvertHighlightConfig`, default 2). One query per render over payment items; the card then gets the class `highlighted` (tint via the token `--list-item-highlighted-bg`).

Properties

$componentParameters

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

component parameters set by setComponentParameter()

$translatorDomain

protected string|null $translatorDomain = 'front.bazaar.components.advertListRenderer'

$headingTag

private string $headingTag = 'div'

$highlightedAdvertIds

Adverts with an active "Highlighting" tariff (`AdvertHighlightConfig`, default 2): the card gets the class `highlighted` (background tint, token `--list-item-highlighted-bg`).

private array<int, true> $highlightedAdvertIds = []

Filled by RenderInitTrait::intilializeRender() from payment items (active + valid validity_datetime).

advertId => true

$highlights

private array<int, array<string, string>> $highlights = []

advertId => field => safe HTML

$parameterOptions

private array<string|int, object> $parameterOptions = []

parameter options by id

$types

private array<string|int, object> $types = []

advert types (options of the type parameter) by id

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

getHighlights()

Returns highlighted snippets of one advert (`name`/`text`). Same path as {@see getItem()}: the item {@see \App\UI\Front\Bazaar\Components\AdvertRendererComponent\AdvertRenderer} fetches them via the parent (multiplier) so they need not go through the multicontrol.

public getHighlights(int $advertId) : array<string, string>

Values are ready safe HTML from the Api side (EsHighlighter); only <em> is allowed. An empty array leaves the list unchanged (no search, manual sort, ES outage).

Parameters
$advertId : int
Return values
array<string, string>

getParameterOptions()

public getParameterOptions() : array<string|int, object>
Return values
array<string|int, object> —

parameter options by id

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

isHighlighted()

Whether the advert has an active paid highlighting (read by the item `AdvertRenderer` via the parent).

public isHighlighted(int $advertId) : bool
Parameters
$advertId : int
Return values
bool

prepareParameterOptions()

public prepareParameterOptions() : self
Return values
self

prepareTypes()

public prepareTypes([array<string|int, object>|null $types = null ]) : self
Parameters
$types : array<string|int, object>|null = null
Return values
self

render()

public render([array<string|int, mixed> $items = [] ][, string $style = 'Style_1' ][, array<int, array<string, string>> $highlights = [] ]) : void
Parameters
$items : array<string|int, mixed> = []
$style : string = 'Style_1'
$highlights : array<int, array<string, string>> = []

advert id => field => HTML snippet. Escaped on the Api side (EsHighlighter); only <em> is allowed. Empty leaves the list unchanged.

renderBox()

public renderBox(array<string|int, mixed> $items[, array<int, array<string, string>> $highlights = [] ]) : void
Parameters
$items : array<string|int, mixed>
$highlights : array<int, array<string, string>> = []

viz render()

renderCards()

public renderCards(array<string|int, mixed> $items) : void
Parameters
$items : array<string|int, mixed>

renderCarousel()

public renderCarousel(array<string|int, mixed> $items) : void
Parameters
$items : array<string|int, mixed>

renderCompact()

public renderCompact(array<string|int, mixed> $items) : void
Parameters
$items : array<string|int, mixed>

renderHorizontalCards()

public renderHorizontalCards(array<string|int, mixed> $items) : void
Parameters
$items : array<string|int, mixed>

renderHorizontalCompact()

public renderHorizontalCompact(array<string|int, mixed> $items) : void
Parameters
$items : array<string|int, mixed>

renderRanked()

public renderRanked(array<string|int, mixed> $items) : void
Parameters
$items : array<string|int, mixed>

renderRow()

public renderRow(array<string|int, mixed> $items[, array<int, array<string, string>> $highlights = [] ]) : void
Parameters
$items : array<string|int, mixed>
$highlights : array<int, array<string, string>> = []

viz render()

renderTable()

public renderTable(array<string|int, mixed> $items[, array<int, array<string, string>> $highlights = [] ]) : void
Parameters
$items : array<string|int, mixed>
$highlights : array<int, array<string, string>> = []

viz render()

setComponentParameter()

Sets a component parameter.

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

setHeadingTag()

public setHeadingTag(string $headingTag) : self
Parameters
$headingTag : 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

prepareLists()

protected prepareLists() : void

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

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

intilializeRender()

private intilializeRender([array<string|int, mixed> $items = [] ]) : void
Parameters
$items : array<string|int, mixed> = []

prepareHighlightedAdvertIds()

Fills {@see \App\UI\Front\Bazaar\Components\AdvertListRendererComponent\AdvertListRenderer::$highlightedAdvertIds}: adverts with an active valid item of the "Highlighting" tariff (`AdvertHighlightConfig`, default 2). One query per render over payment items; the card then gets the class `highlighted` (tint via the token `--list-item-highlighted-bg`).

private prepareHighlightedAdvertIds(array<int, int> $advertIds) : void
Parameters
$advertIds : array<int, int>
On this page

Search results