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
$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.bazaar.components.lastAdvertList'
$advertListRendererFactory read-only
private
AdvertListRendererFactory
$advertListRendererFactory
$advertManager read-only
private
AdvertManager
$advertManager
$parameterManager read-only
private
ParameterManager
$parameterManager
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(AdvertManager $advertManager, AdvertListRendererFactory $advertListRendererFactory, ParameterManager $parameterManager) : mixed
Parameters
- $advertManager : AdvertManager
- $advertListRendererFactory : AdvertListRendererFactory
- $parameterManager : ParameterManager
createComponent()
public
createComponent(string $name) : IComponent|null
Parameters
- $name : string
Return values
IComponent|nullcreateComponentAdvertListRenderer()
public
createComponentAdvertListRenderer() : AdvertListRenderer
Return values
AdvertListRenderergetAppContext()
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|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
onCreate()
public
onCreate() : void
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
typeparameter (not the parameter id).nullmeans 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
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
$thissetLanguageContext()
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
ITranslatorsetTemplateFile()
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|nullfindTypeParameterId()
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|nullinitializeRender()
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