CategoryChildrenList
extends BaseComponent
in package
uses
BlogListTargetTrait, CategoryChildrenTrait
One category level (children of the current category), unlike the full-tree `CategoryList`.
Table of Contents
Constants
- BLOG_LIST_ARTICLE : mixed = 'article'
- BLOG_LIST_EVENT : mixed = 'event'
- BLOG_LIST_NEWS : mixed = 'news'
- CATEGORY_CHILDREN_STYLES : array<string|int, mixed> = ['Style_1', 'Style_4', 'Style_6']
- Flat list is the shared `Style_1`; the others are contextual rail styles.
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
- $categoryManager : CategoryManager
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
- renderHorizontalCompact() : void
- renderVertical() : void
- 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.
- blogListParams() : array<string, mixed>
- Link parameters for a list with a category and a preserved region (same rule as in Bazaar): with a region selected the category segment is always explicit (`-` means none), otherwise the region in the URL would shift into the category position. Without a region nothing changes.
- blogListTarget() : array{0: string, 1: int}
- blogListTargetForPage() : array{0: string, 1: int}
- Target by the current page (for components without an item): news are pages 52/53, events 54/55, otherwise articles.
- blogRegionLinks() : array<int, string>
- Links to the list of the same type filtered by the item region (`/clanky/-/<region>`).
- categoryChildrenRootHref() : string
- categoryChildrenTemplateDir() : string
- categoryRailHref() : string
- frontPresenter() : BasePresenter|null
- Returns the front presenter the component is attached to (null outside the front end or when detached).
- getTranslator() : ITranslator
- prepareCategoryChildren() : 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).
- listHref() : string
- Stays on the current listing page; a category change always starts at page 1.
- resolveCurrentCategory() : object|null
- The page's category, but only when it belongs to this module — a component placed on another module's page must not adopt that module's category.
Constants
BLOG_LIST_ARTICLE
protected
mixed
BLOG_LIST_ARTICLE
= 'article'
BLOG_LIST_EVENT
protected
mixed
BLOG_LIST_EVENT
= 'event'
BLOG_LIST_NEWS
protected
mixed
BLOG_LIST_NEWS
= 'news'
CATEGORY_CHILDREN_STYLES
Flat list is the shared `Style_1`; the others are contextual rail styles.
private
array<string|int, mixed>
CATEGORY_CHILDREN_STYLES
= ['Style_1', 'Style_4', 'Style_6']
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.blog.components.categoryList'
$categoryManager read-only
private
CategoryManager
$categoryManager
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(CategoryManager $categoryManager) : mixed
Parameters
- $categoryManager : CategoryManager
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|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_1' ]) : void
Parameters
- $style : string = 'Style_1'
renderHorizontalCompact()
public
renderHorizontalCompact() : void
renderVertical()
public
renderVertical() : void
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
TblogListParams()
Link parameters for a list with a category and a preserved region (same rule as in Bazaar): with a region selected the category segment is always explicit (`-` means none), otherwise the region in the URL would shift into the category position. Without a region nothing changes.
protected
blogListParams(int $slug, int|null $categoryId, string|int|null $regionId) : array<string, mixed>
Parameters
- $slug : int
- $categoryId : int|null
- $regionId : string|int|null
Return values
array<string, mixed>blogListTarget()
protected
blogListTarget(string $type) : array{0: string, 1: int}
Parameters
- $type : string
-
BLOG_LIST_* by item type
Return values
array{0: string, 1: int} —[link target, page id (route slug)]
blogListTargetForPage()
Target by the current page (for components without an item): news are pages 52/53, events 54/55, otherwise articles.
protected
blogListTargetForPage(object|null $presenter) : array{0: string, 1: int}
Parameters
- $presenter : object|null
Return values
array{0: string, 1: int} —[link target, page id (route slug)]
blogRegionLinks()
Links to the list of the same type filtered by the item region (`/clanky/-/<region>`).
protected
blogRegionLinks(Presenter|null $presenter, string $type, iterable<string|int, BlogContentInterface> $items[, RouterDispatcher|null $dispatcher = null ]) : array<int, string>
An item without a region (or without the region.translations include) is missing from
the result. Region names in the URL are preloaded from already loaded entities (no query
per region).
Parameters
- $presenter : Presenter|null
- $type : string
- $items : iterable<string|int, BlogContentInterface>
-
articles / news / events
- $dispatcher : RouterDispatcher|null = null
Return values
array<int, string> —[item id => URL]
categoryChildrenRootHref()
protected
categoryChildrenRootHref() : string
Return values
stringcategoryChildrenTemplateDir()
protected
categoryChildrenTemplateDir(string $ownDir, string $style) : string
Parameters
- $ownDir : string
- $style : string
Return values
stringcategoryRailHref()
protected
categoryRailHref(int $categoryId) : string
Parameters
- $categoryId : int
Return values
stringfrontPresenter()
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
ITranslatorprepareCategoryChildren()
protected
prepareCategoryChildren(Manager<BaseEntity, ServiceInterface<string|int, BaseEntity>> $manager, class-string $entityClass, class-string $translatorClass, string $style) : void
Parameters
- $manager : Manager<BaseEntity, ServiceInterface<string|int, BaseEntity>>
- $entityClass : class-string
-
category entity of this module
- $translatorClass : class-string
-
router translator to warm up for the links
- $style : string
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|nulllistHref()
Stays on the current listing page; a category change always starts at page 1.
private
listHref(int|null $categoryId) : string
The selected region is kept on all three listings (articles, news, events);
without a category the - placeholder is explicit (see blogListParams()).
Parameters
- $categoryId : int|null
Return values
stringresolveCurrentCategory()
The page's category, but only when it belongs to this module — a component placed on another module's page must not adopt that module's category.
private
resolveCurrentCategory(class-string $entityClass) : object|null
Parameters
- $entityClass : class-string