CoolCMS API

LastAdvertList extends BaseComponent
in package
uses InitRenderTrait, AdvertListTrait

Lists the newest adverts.

Sibling of TopAdvertList: that one selects adverts by paid tariffs (topping), this one simply sorts by insert date. Rendering is done by the same AdvertListRenderer, so styles are shared and nothing is copied.

Usage in a template:

{control frontBazaarLastAdvertList:box, 6}
{control frontBazaarLastAdvertList:row, 10}
{control frontBazaarLastAdvertList:table, 10}

Optional filter by advert type (parameter with the key type, options are its children in the tree, see InitRenderTrait): {control frontBazaarLastAdvertList:row, 3, 6}. The option id is data (a row in the parameter table), not a code constant; it differs per installation, so check it in admin (Parameters, type).

The component name resolves to the class automatically (ComponentTrait::createStandardComponent()), nothing is registered in DI by hand.

Table of Contents

Constants

TYPE_PARAMETER_KEY  : mixed = 'type'
Key of the parameter that carries the advert type. Options are its children in the tree.

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
$advertListRendererFactory  : AdvertListRendererFactory
$advertManager  : AdvertManager
$parameterManager  : ParameterManager

Methods

__call()  : mixed
Dispatches `renderXyz()` to `render('Xyz', ...$args)`.
__construct()  : mixed
createComponent()  : IComponent|null
createComponentAdvertListRenderer()  : AdvertListRenderer
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
renderBox()  : void
Box list: `.list.list--box` (`AdvertListRenderer` Style_2).
renderRow()  : void
Row list: `.list.list--rows` (Style_1).
renderTable()  : void
Table list: `.list.list--table` (Style_3).
setAppContext()  : $this
setComponentParameter()  : void
Sets a component parameter.
setCurrencyContext()  : $this
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
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).
findTypeParameterId()  : int|null
Id of the `type` parameter (not an option id). The parameter may be missing in the data; then the type filter is silently not added and the list does not fail.
initializeRender()  : void
prepareAdvertFilters()  : array<int, BaseFilter>
Visibility conditions of the list.

Constants

TYPE_PARAMETER_KEY

Key of the parameter that carries the advert type. Options are its children in the tree.

private mixed TYPE_PARAMETER_KEY = 'type'

Properties

$componentParameters

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

component parameters set by setComponentParameter()

$translatorDomain

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

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([string $style = 'Style_2' ][, int $maxNumber = 6 ][, int|null $typeOptionId = null ]) : void
Parameters
$style : string = 'Style_2'
$maxNumber : int = 6
$typeOptionId : int|null = null

optional filter by advert type: the id of the option of the type parameter (not the parameter id). null means unchanged, all types are listed.

renderBox()

Box list: `.list.list--box` (`AdvertListRenderer` Style_2).

public renderBox([int $maxNumber = 6 ][, int|null $typeOptionId = null ]) : void
Parameters
$maxNumber : int = 6
$typeOptionId : int|null = null

renderRow()

Row list: `.list.list--rows` (Style_1).

public renderRow([int $maxNumber = 10 ][, int|null $typeOptionId = null ]) : void
Parameters
$maxNumber : int = 10
$typeOptionId : int|null = null

renderTable()

Table list: `.list.list--table` (Style_3).

public renderTable([int $maxNumber = 10 ][, int|null $typeOptionId = null ]) : void
Parameters
$maxNumber : int = 10
$typeOptionId : int|null = null

setComponentParameter()

Sets a component parameter.

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

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

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

findTypeParameterId()

Id of the `type` parameter (not an option id). The parameter may be missing in the data; then the type filter is silently not added and the list does not fail.

private findTypeParameterId() : int|null
Return values
int|null

initializeRender()

private initializeRender([int $maxNumber = 6 ][, int|null $typeOptionId = null ]) : void
Parameters
$maxNumber : int = 6
$typeOptionId : int|null = null

prepareAdvertFilters()

Visibility conditions of the list.

private prepareAdvertFilters([int|null $typeOptionId = null ]) : array<int, BaseFilter>

Same logic as TopAdvertList: when the presenter has prepareFilters(), it rules (respects category, region and rights). Otherwise a safe default set applies, intentionally fail-closed, so no deleted, banned, unpaid or sold advert reaches the main page.

Parameters
$typeOptionId : int|null = null
Return values
array<int, BaseFilter>
On this page

Search results