CoolCMS API

CategoryChildrenList extends BaseComponent
in package
uses BlogListTargetTrait, CategoryChildrenTrait

FinalYes

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

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

$componentParameters

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

component parameters set by setComponentParameter()

$translatorDomain

protected string|null $translatorDomain = 'front.blog.components.categoryList'

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_1' ]) : void
Parameters
$style : string = 'Style_1'

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

blogListParams()

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)]

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
string

categoryChildrenTemplateDir()

protected categoryChildrenTemplateDir(string $ownDir, string $style) : string
Parameters
$ownDir : string
$style : string
Return values
string

categoryRailHref()

protected categoryRailHref(int $categoryId) : string
Parameters
$categoryId : int
Return values
string

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

listHref()

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
string

resolveCurrentCategory()

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
Return values
object|null
On this page

Search results