class FacetedFilter extends Container

Constants

SYSTEM_TEMPLATE_UI_FOLDER

CONTAINER_LINK_MODE_REPLACE

Link modes. Should the ajax respone replace the original content, or should it be appended/prepended

CONTAINER_LINK_MODE_APPEND

CONTAINER_LINK_MODE_PREPEND

AJAX_REQUEST_FACET_PARAMETER_PLACEHOLDER

RENDER_MODE_SIDEBAR

RENDER_MODE_CHIPS

Properties

$xf_link from  UIComponent
$link_id from  UIComponent
array $GPvars from  UIComponent
Controller $mod from  UIComponent
protected array $local_template_marker from  UIComponent
protected bool $_overwrite_param_array from  UIComponent
protected bool|array|ModelCollection $marker_content from  UIComponent
string $mod_object_manager from  UIComponent
protected bool $_orig_marker_content from  UIComponent
protected array $_allowed_params_filter from  UIComponent
string $unique_dom_id from  UIComponent
protected string $uid from  UIComponent
string read-only $_content

When used in template this property will contain the XML/HTML within the XUI Nodes

from  UIComponent
$link from  UIAjaxComponent
protected string $js_class from  UIAjaxComponent
protected array $js_options from  UIAjaxComponent
protected array $css_classes from  UIAjaxComponent
protected array $xui_payload from  UIAjaxComponent
protected array $xuiLinkedContainers from  UIAjaxComponent
protected bool $deferredLoading from  UIAjaxComponent
protected bool $deferredLoadingMessage from  UIAjaxComponent
protected string|callable $content from  Container
protected string $placeholderContent from  Container

Methods

__construct(string $link_id = NULL)

UIComponent constructor.

string
__toString()

No description

void
addActiveValue(string $categoryKey, string $value)

Adds $value to category with $categoryKey. Overwrites existing value.

addCategoryChoiceByItems(I18nTokenHelper $label, array|null $items = null)

Adds Choice category with manually defined items

addCategoryChoiceByModelProperty(I18nTokenHelper $label, string $propertyName, OptionListCollectionInterface|null $labelList = null)

Adds a choice category, with options based on a model property.

addCategoryDate(I18nTokenHelper $label, Closure|string $collectionFilterCallback = null)

Adds date range filter.

addCategoryMultipleChoiceByItems(I18nTokenHelper $label, array|null $items = null)

Adds a MultipleChoice category with manually defined items

addCategoryMultipleChoiceByModelProperty(I18nTokenHelper $label, string $propertyName, OptionListCollectionInterface|null $labelList = null)

Adds a multiple choice category, with options based on a model property.

addCategoryTextSearch(I18nTokenHelper|null $label = null, Closure|null $collectionFilterCallback = null)

Adds search field filter.

addCategoryToggle(I18nTokenHelper $label, FacetedCategoryItem|null $item = null)

Adds toogle category. Either all items are displayed, or only items with given active item condition.

void
addLinkedContainer(UIAjaxComponent $linkedContainer, $linkMode = self::CONTAINER_LINK_MODE_REPLACE)

Link a container that will also be reloaded, if an ajax link has the current container as target.

add_css_class($css_class)

Adds a custom css class to the root element of this component.

add_dependency(string $dep_name, UIAjaxComponent $dep_obj, bool $reloadOnUpdate = false)

Add an UIAjaxComponent object and register it under a certain name.

add_url_parameter(mixed $key, mixed $value)

Adds a parameter to url parameter list.

applyFacetFilters(Collection $collection = null, string|null $excludeCategoryKey = null)

Applies scopes of active facets to $collection. Scope of $excludeCategoryKey will not be applied.

enable_periodical_update(int $interval)

Enables the periodical update via ajax.

mixed
get($var)

Get Variable / Option

array
getActiveValue(string $categoryKey)

Returns the active value(s) for the $categoryKey

ItemInterface|null
getCategory(string $key)

No description

false|mixed
getCurrentAjaxLink(array $params)

No description

array
getCurrentGPVarsFilter()

Returns the current active filters based on the GPVars (e.g.: ['category' => ['1' => true], 'date' => ['start' => $start, 'end' => $end]])

bool
getHasFilter()

Returns if there is an active filter

int
string
mixed
get_dependency($dep_name)

Returns a dependent object in order to interact with it

string
get_unique_dom_id()

Generates a unique dom id, dependent on the provided UID, as well as the current context.

Template|null
get_view(string|bool $section = false)

Return new template view If using within module xui the tpl file should be named [class_name].tpl e.g. xui_core_table.tpl within the module's template folder

init()

put your comment there.

bool
isEmptyCategory(string $categoryKey)

Returns true, if the category has been explicitly set to empty

string
parse_template(string $template_content, array|bool $marker_array = false)

No description

string|null
parse_template_cb_wrapper(mixed $matches)

No description

mixed|string
parse_xtag($xml_source)

No description

false|string
printAjaxLink(array $params)

No description

false|mixed
printCurrentAjaxLink(array $params)

No description

process()

Process all parameters

process_xui()

Optional processing method.

render()

Default render method. wraps the content provided by render_xui_content in a unique div and generates a JS object for the GUI

mixed
render_xtag_element()

No description

string|Template
render_xui()

Render XUI Object

void
reset_marker_content()

restores original content of marker_content

void
set(mixed $var, mixed $value = false) deprecated

Set Variable / Option

setCategories(FacetedCategoryList $categories)

No description

void
setCollection(Collection $collection)

Sets the main collection

void
setDeferredLoading(bool $bool, string $message = '')

Set true to load the content deferred. Displays a placeholder while loading the content. Optional you can pass a message which will replace the default loading message.

setLoadURL(string $url)

No description

void
setMaxFacetElements(int $max)

Sets the maximum amount of facet elements.

setPlaceholderContent(string $placeholderContent)

Setting Placeholder Content will automatically enable deferred loading

setRenderModeChips()

Set Display to horizontal mode (aka "chips")

setRenderModeSidebar()

Set Display to classic mode (aka "sidebar")

void
set_array(mixed $member_array, mixed $vars)

Set Variable / Option for an array

set_content(string|callable $content)

No description

void
set_marker_content(mixed $marker_content = false)

sets marker_content to passed data -> restore original content with reset_marker_content()

set_mod(mixed $mod)

Set link to owning module

set_option(string $key, mixed $val)

Sets options. This options will be used in the JS element of this XUI class.

void
set_render_params(mixed $input_params = array())

Used to inject params. Only allowed params will be used (see $allowed_params_filter)

set_uid($uid)

No description

set_url_parameters(array $parameters)

Sets the url parameter that is used for component loading.

unsetCategory(string $categoryKey)

No description

Details

at line 65
__construct(string $link_id = NULL)

UIComponent constructor.

Parameters

string $link_id

in UIComponent at line 328
string __toString()

No description

Return Value

string

at line 441
void addActiveValue(string $categoryKey, string $value)

Adds $value to category with $categoryKey. Overwrites existing value.

Parameters

string $categoryKey
string $value

Return Value

void

at line 158
FacetedCategoryChoice addCategoryChoiceByItems(I18nTokenHelper $label, array|null $items = null)

Adds Choice category with manually defined items

Parameters

I18nTokenHelper $label
array|null $items

Return Value

FacetedCategoryChoice

at line 180
FacetedCategoryChoice addCategoryChoiceByModelProperty(I18nTokenHelper $label, string $propertyName, OptionListCollectionInterface|null $labelList = null)

Adds a choice category, with options based on a model property.

An OptionList can be provided as label list. Otherwise, the foreign property relation will be resolved to build an OptionList.

Parameters

I18nTokenHelper $label
string $propertyName

The model property

OptionListCollectionInterface|null $labelList

Return Value

FacetedCategoryChoice

at line 288
FacetedCategoryDate addCategoryDate(I18nTokenHelper $label, Closure|string $collectionFilterCallback = null)

Adds date range filter.

If no callback is given, the default filterByDateRange() function will be used on the collection.

Callbacks have to use the default function signature of the Collections' filterByDateRange method: Closures have to use the signature: function(Collection $collection, ?DateTime $start, ?DateTime $end): Collection

Parameters

I18nTokenHelper $label
Closure|string $collectionFilterCallback

Return Value

FacetedCategoryDate

at line 200
FacetedCategoryMultipleChoice addCategoryMultipleChoiceByItems(I18nTokenHelper $label, array|null $items = null)

Adds a MultipleChoice category with manually defined items

Parameters

I18nTokenHelper $label
array|null $items

Return Value

FacetedCategoryMultipleChoice

at line 222
FacetedCategoryMultipleChoice addCategoryMultipleChoiceByModelProperty(I18nTokenHelper $label, string $propertyName, OptionListCollectionInterface|null $labelList = null)

Adds a multiple choice category, with options based on a model property.

An OptionList can be provided as label list. Otherwise, the foreign property relation will be resolved to build an OptionList.

Parameters

I18nTokenHelper $label
string $propertyName

The model property

OptionListCollectionInterface|null $labelList

Return Value

FacetedCategoryMultipleChoice

at line 265
FacetedCategoryTextSearch addCategoryTextSearch(I18nTokenHelper|null $label = null, Closure|null $collectionFilterCallback = null)

Adds search field filter.

If no callback is given, the default filterBySearchQuery() function will be used on the collection. Callbacks have to use the default function signature of the Collections' filterBySearchQuery method. Closures have to use the signature: function(Collection $collection, string $searchQuery): Collection

Parameters

I18nTokenHelper|null $label
Closure|null $collectionFilterCallback

Return Value

FacetedCategoryTextSearch

at line 242
FacetedCategoryToggle addCategoryToggle(I18nTokenHelper $label, FacetedCategoryItem|null $item = null)

Adds toogle category. Either all items are displayed, or only items with given active item condition.

Parameters

I18nTokenHelper $label
FacetedCategoryItem|null $item

Item with Condition that should be applied to collection if active

Return Value

FacetedCategoryToggle

in UIAjaxComponent at line 158
void addLinkedContainer(UIAjaxComponent $linkedContainer, $linkMode = self::CONTAINER_LINK_MODE_REPLACE)

Link a container that will also be reloaded, if an ajax link has the current container as target.

Parameters

UIAjaxComponent $linkedContainer
$linkMode

Return Value

void

in UIAjaxComponent at line 196
add_css_class($css_class)

Adds a custom css class to the root element of this component.

Parameters

$css_class

in UIAjaxComponent at line 134
add_dependency(string $dep_name, UIAjaxComponent $dep_obj, bool $reloadOnUpdate = false)

Add an UIAjaxComponent object and register it under a certain name.

this component will use that name to retrieve the object in order to interact with it.

If reloadOnUpdate is set, the dependent container will be reloaded after the update of the current container. !Beware: The reload url of the dependency container will be the one set in its data attribute and not a possible "new url" used to update the current container. If you want to reload multiple containers at once when the current container is an ajax link target, use $this->addLinkedContainer()

Parameters

string $dep_name
UIAjaxComponent $dep_obj
bool $reloadOnUpdate

Set true to reload dependency if this component is updated.

in UIAjaxComponent at line 94
add_url_parameter(mixed $key, mixed $value)

Adds a parameter to url parameter list.

Parameters

mixed $key
mixed $value

at line 768
Collection applyFacetFilters(Collection $collection = null, string|null $excludeCategoryKey = null)

Applies scopes of active facets to $collection. Scope of $excludeCategoryKey will not be applied.

If $collection is not passed, a clone of the previously set $this->collection will be used

Parameters

Collection $collection
string|null $excludeCategoryKey

Return Value

Collection

in UIAjaxComponent at line 218
enable_periodical_update(int $interval)

Enables the periodical update via ajax.

The ajax calls will be execute after an interval of seconds passed by parameter one.

Parameters

int $interval

in UIComponent at line 187
mixed get($var)

Get Variable / Option

Parameters

$var

Return Value

mixed

at line 451
array getActiveValue(string $categoryKey)

Returns the active value(s) for the $categoryKey

Parameters

string $categoryKey

Return Value

array

at line 120
FacetedCategoryList getCategories()

No description

Return Value

FacetedCategoryList

at line 128
ItemInterface|null getCategory(string $key)

No description

Parameters

string $key

Return Value

ItemInterface|null

at line 84
Collection getCollection()

getter

Return Value

Collection

No description

Parameters

array $params

Return Value

false|mixed

at line 483
array getCurrentGPVarsFilter()

Returns the current active filters based on the GPVars (e.g.: ['category' => ['1' => true], 'date' => ['start' => $start, 'end' => $end]])

Return Value

array

[$categoryKey => [$value => $selected, ...], ...]

at line 538
bool getHasFilter()

Returns if there is an active filter

Return Value

bool

in UIAjaxComponent at line 255
XUILinkHelper getLinkHelper()

No description

Return Value

XUILinkHelper

at line 102
int getMaxFacetElements()

getter

Return Value

int

in Container at line 54
protected string getPlaceholderContent()

Place

Return Value

string

in UIAjaxComponent at line 150
mixed get_dependency($dep_name)

Returns a dependent object in order to interact with it

Parameters

$dep_name

Return Value

mixed

in UIComponent at line 204
string get_unique_dom_id()

Generates a unique dom id, dependent on the provided UID, as well as the current context.

Return Value

string

in UIComponent at line 294
Template|null get_view(string|bool $section = false)

Return new template view If using within module xui the tpl file should be named [class_name].tpl e.g. xui_core_table.tpl within the module's template folder

Parameters

string|bool $section Name

Return Value

Template|null

Exceptions

Exception

in UIComponent at line 72
init()

put your comment there.

..

at line 430
bool isEmptyCategory(string $categoryKey)

Returns true, if the category has been explicitly set to empty

Parameters

string $categoryKey

Return Value

bool

in UIComponent at line 223
string parse_template(string $template_content, array|bool $marker_array = false)

No description

Parameters

string $template_content

HTML Template

array|bool $marker_array

Markers and Values

Return Value

string

Parsed HTML Content

in UIComponent at line 239
string|null parse_template_cb_wrapper(mixed $matches)

No description

Parameters

mixed $matches

Return Value

string|null

in UIComponent at line 265
mixed|string parse_xtag($xml_source)

No description

Parameters

$xml_source

Return Value

mixed|string

Exceptions

ContentException

No description

Parameters

array $params

Return Value

false|string

No description

Parameters

array $params

Return Value

false|mixed

at line 348
process()

Process all parameters

in UIAjaxComponent at line 76
protected process_xui()

Optional processing method.

This method is called when invoke the process method or automatically before the render method is called.

in UIAjaxComponent at line 281
render()

Default render method. wraps the content provided by render_xui_content in a unique div and generates a JS object for the GUI

Exceptions

Exception

in UIComponent at line 273
mixed render_xtag_element()

No description

Return Value

mixed

at line 684
string|Template render_xui()

Render XUI Object

Return Value

string|Template

Exceptions

Exception

in UIComponent at line 175
void reset_marker_content()

restores original content of marker_content

Return Value

void

in UIComponent at line 108
void set(mixed $var, mixed $value = false) deprecated

deprecated - It is preferred to have explicit setters/getters. Please check if you can rewrite usage to use explicit setters with documented options

Set Variable / Option

Parameters

mixed $var

Name of Variable to Set (Alternative: Assoc-Array for multiple variables)

mixed $value

Value of Variable

Return Value

void

at line 136
FacetedFilter setCategories(FacetedCategoryList $categories)

No description

Parameters

FacetedCategoryList $categories

Return Value

FacetedFilter

at line 76
void setCollection(Collection $collection)

Sets the main collection

Parameters

Collection $collection

Return Value

void

in UIAjaxComponent at line 115
void setDeferredLoading(bool $bool, string $message = '')

Set true to load the content deferred. Displays a placeholder while loading the content. Optional you can pass a message which will replace the default loading message.

Parameters

bool $bool
string $message

Return Value

void

in UIAjaxComponent at line 102
UIAjaxComponent setLoadURL(string $url)

No description

Parameters

string $url

Return Value

UIAjaxComponent

at line 94
void setMaxFacetElements(int $max)

Sets the maximum amount of facet elements.

Parameters

int $max

Return Value

void

in Container at line 44
Container setPlaceholderContent(string $placeholderContent)

Setting Placeholder Content will automatically enable deferred loading

Parameters

string $placeholderContent

Return Value

Container

at line 109
setRenderModeChips()

Set Display to horizontal mode (aka "chips")

at line 116
setRenderModeSidebar()

Set Display to classic mode (aka "sidebar")

in UIComponent at line 124
void set_array(mixed $member_array, mixed $vars)

Set Variable / Option for an array

Parameters

mixed $member_array

Name of Variable to Set (Alternative: Assoc-Array for multiple variables)

mixed $vars

Value of Variable

Return Value

void

in Container at line 23
set_content(string|callable $content)

No description

Parameters

string|callable $content

in UIComponent at line 167
void set_marker_content(mixed $marker_content = false)

sets marker_content to passed data -> restore original content with reset_marker_content()

Parameters

mixed $marker_content

Return Value

void

in UIComponent at line 90
set_mod(mixed $mod)

Set link to owning module

Parameters

mixed $mod

in UIAjaxComponent at line 207
set_option(string $key, mixed $val)

Sets options. This options will be used in the JS element of this XUI class.

Parameters

string $key

update_interval (int) | hide_loading (bool)

mixed $val

in UIComponent at line 137
void set_render_params(mixed $input_params = array())

Used to inject params. Only allowed params will be used (see $allowed_params_filter)

Parameters

mixed $input_params

Return Value

void

in UIAjaxComponent at line 177
set_uid($uid)

No description

Parameters

$uid

in UIAjaxComponent at line 83
UIAjaxComponent set_url_parameters(array $parameters)

Sets the url parameter that is used for component loading.

Parameters

array $parameters

Return Value

UIAjaxComponent

at line 795
FacetedFilter unsetCategory(string $categoryKey)

No description

Parameters

string $categoryKey

Return Value

FacetedFilter