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>
- Profiles with an active "Highlighting" tariff (`AdvertHighlightConfig`, default 2): the card gets the class `highlighted` (background, token `--list-item-highlighted-bg`).
- $highlights : array<int, array<string, string>>
- $itemsById : array<int, Advert>
- $parameterManager : ParameterManager
- $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>
- Highlighted snippets of one profile (`name`/`text`). Same path as {@see getItem()}: the item `AdvertRenderer` picks them up through the parent (multiplier). Values are ready safe HTML from the Api side (only `<em>` is allowed).
- getItem() : Advert|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
- isHighlighted() : bool
- Has the profile an active paid highlighting? (Read by the item `AdvertRenderer` through the parent.)
- onCreate() : void
- 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\Comcat\Components\AdvertListRendererComponent\AdvertListRenderer::$highlightedAdvertIds} with profiles that have an active valid "Highlighting" tariff item (`AdvertHighlightConfig`, default 2). One query per render over payment items (as in Bazaar/Discussion); the card then gets the class `highlighted` (background by the token `--list-item-highlighted-bg`).
Properties
$container
public
Container
$container
Attributes
- #[Inject]
$routerDispatcher
public
RouterDispatcher
$routerDispatcher
$translator
public
ITranslator
$translator
Tags
$appContext
protected
AppContext
$appContext
$componentParameters
protected
array<string, mixed>
$componentParameters
= []
component parameters set by setComponentParameter()
$currencyContext
protected
CurrencyContext|null
$currencyContext
= NULL
$deviceDetector
protected
DeviceDetector|null
$deviceDetector
= NULL
$languageContext
protected
LanguageContext|null
$languageContext
= NULL
$localizationContext
protected
LocalizationContext|null
$localizationContext
= NULL
$settingContext
protected
SettingContext
$settingContext
$themeContext
protected
ThemeContext|null
$themeContext
= NULL
$translatorDomain
protected
string|null
$translatorDomain
= 'front.comcat.components.advertListRenderer'
$headingTag
private
string
$headingTag
= 'div'
$highlightConfig read-only
private
AdvertHighlightConfig
$highlightConfig
$highlightedAdvertIds
Profiles with an active "Highlighting" tariff (`AdvertHighlightConfig`, default 2): the card gets the class `highlighted` (background, token `--list-item-highlighted-bg`).
private
array<int, true>
$highlightedAdvertIds
= []
Filled by RenderInitTrait::intilializeRender() from payment items, as in Bazaar/Discussion.
advertId => true
$highlights
private
array<int, array<string, string>>
$highlights
= []
highlighted snippets: advertId => field => safe HTML
$itemsById
private
array<int, Advert>
$itemsById
= []
Adverts loaded for this render, key = advertId
$parameterManager read-only
private
ParameterManager
$parameterManager
$paymentItemManager read-only
private
PaymentItemManager
$paymentItemManager
$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>
__construct()
public
__construct(ParameterManager $parameterManager, PaymentItemManager $paymentItemManager, AdvertHighlightConfig $highlightConfig) : mixed
Parameters
- $parameterManager : ParameterManager
- $paymentItemManager : PaymentItemManager
- $highlightConfig : AdvertHighlightConfig
createComponent()
public
createComponent(string $name) : IComponent|null
Parameters
- $name : string
Return values
IComponent|nullgetAppContext()
public
getAppContext() : AppContext
Return values
AppContextgetComponentParameter()
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
ContainergetCurrencyContext()
public
getCurrencyContext() : CurrencyContext|null
Return values
CurrencyContext|nullgetHighlights()
Highlighted snippets of one profile (`name`/`text`). Same path as {@see getItem()}: the item `AdvertRenderer` picks them up through the parent (multiplier). Values are ready safe HTML from the Api side (only `<em>` is allowed).
public
getHighlights(int $advertId) : array<string, string>
Parameters
- $advertId : int
Return values
array<string, string>getItem()
public
getItem(int $advertId) : Advert|null
Parameters
- $advertId : int
Return values
Advert|nullgetLanguageContext()
public
getLanguageContext() : LanguageContext|null
Return values
LanguageContext|nullgetLocalizationContext()
public
getLocalizationContext() : LocalizationContext|null
Return values
LocalizationContext|nullgetRouterDispatcher()
public
getRouterDispatcher() : RouterDispatcher
Return values
RouterDispatchergetSettingContext()
public
getSettingContext() : SettingContext
Return values
SettingContextgetSettings()
public
getSettings() : array<int, array<string, mixed>>
Return values
array<int, array<string, mixed>>getThemeContext()
public
getThemeContext() : ThemeContext|null
Return values
ThemeContext|nullhasServiceByType()
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
Return values
boolinitializeAllContexts()
public
initializeAllContexts() : void
injectDeviceDetector()
public
injectDeviceDetector(DeviceDetector $detector) : void
Parameters
- $detector : DeviceDetector
isHighlighted()
Has the profile an active paid highlighting? (Read by the item `AdvertRenderer` through the parent.)
public
isHighlighted(int $advertId) : bool
Parameters
- $advertId : int
Return values
boolonCreate()
public
onCreate() : void
prepareTypes()
public
prepareTypes([array<string|int, object>|null $types = null ]) : self
Parameters
- $types : array<string|int, object>|null = null
Return values
selfrender()
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>> = []
-
profile id => field => HTML snippet, escaped on the Api side; only<em>is allowed. Empty means 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()
setAppContext()
public
setAppContext(AppContext $appContext) : $this
Parameters
- $appContext : AppContext
Return values
$thissetComponentParameter()
Sets a component parameter.
public
setComponentParameter(string $name, mixed $value) : void
Parameters
- $name : string
- $value : mixed
setCurrencyContext()
public
setCurrencyContext(CurrencyContext|null $currencyContext) : $this
Parameters
- $currencyContext : CurrencyContext|null
Return values
$thissetHeadingTag()
public
setHeadingTag(string $headingTag) : self
Parameters
- $headingTag : string
Return values
selfsetLanguageContext()
public
setLanguageContext(LanguageContext|null $languageContext) : $this
Parameters
- $languageContext : LanguageContext|null
Return values
$thissetLocalizationContext()
public
setLocalizationContext(LocalizationContext|null $localizationContext) : $this
Parameters
- $localizationContext : LocalizationContext|null
Return values
$thissetSettingContext()
public
setSettingContext(SettingContext $settingContext) : $this
Parameters
- $settingContext : SettingContext
Return values
$thissetThemeContext()
public
setThemeContext(ThemeContext|null $themeContext) : $this
Parameters
- $themeContext : ThemeContext|null
Return values
$thissetup()
public
setup(BasePresenter|BasePresenter $presenter) : void
Parameters
- $presenter : BasePresenter|BasePresenter
setupAppContext()
public
setupAppContext(AppContext $appContext) : void
Parameters
- $appContext : AppContext
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
Return values
TfrontPresenter()
Returns the front presenter the component is attached to (null outside the front end or when detached).
protected
frontPresenter() : BasePresenter|null
Return values
BasePresenter|nullgetTranslator()
protected
getTranslator() : ITranslator
Return values
ITranslatorprepareLists()
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
selfcreateMultiplierComponent()
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|nullcreateStandardComponent()
Creates a standard component (not a multiplier).
private
createStandardComponent(string $name) : IComponent|null
Parameters
- $name : string
Return values
IComponent|nullintilializeRender()
private
intilializeRender([array<string|int, mixed> $items = [] ]) : void
Parameters
- $items : array<string|int, mixed> = []
prepareHighlightedAdvertIds()
Fills {@see \App\UI\Front\Comcat\Components\AdvertListRendererComponent\AdvertListRenderer::$highlightedAdvertIds} with profiles that have an active valid "Highlighting" tariff item (`AdvertHighlightConfig`, default 2). One query per render over payment items (as in Bazaar/Discussion); the card then gets the class `highlighted` (background by the token `--list-item-highlighted-bg`).
private
prepareHighlightedAdvertIds(array<int, int> $advertIds) : void
Parameters
- $advertIds : array<int, int>