FacetedFilter
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
| Link | $xf_link | from UIComponent | |
| string | $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 |
| XUILinkHelper | $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
UIComponent constructor.
Adds $value to category with $categoryKey. Overwrites existing value.
Adds Choice category with manually defined items
Adds a choice category, with options based on a model property.
Adds date range filter.
Adds a MultipleChoice category with manually defined items
Adds a multiple choice category, with options based on a model property.
Adds search field filter.
Adds toogle category. Either all items are displayed, or only items with given active item condition.
Link a container that will also be reloaded, if an ajax link has the current container as target.
Adds a custom css class to the root element of this component.
Add an UIAjaxComponent object and register it under a certain name.
Adds a parameter to url parameter list.
Applies scopes of active facets to $collection. Scope of $excludeCategoryKey will not be applied.
Enables the periodical update via ajax.
Returns the active value(s) for the $categoryKey
No description
No description
getter
Returns the current active filters based on the GPVars (e.g.: ['category' => ['1' => true], 'date' => ['start' => $start, 'end' => $end]])
Returns if there is an active filter
getter
Returns a dependent object in order to interact with it
Generates a unique dom id, dependent on the provided UID, as well as the current context.
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
Returns true, if the category has been explicitly set to empty
No description
Process all parameters
Default render method. wraps the content provided by render_xui_content in a unique div and generates a JS object for the GUI
Render XUI Object
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.
Sets the maximum amount of facet elements.
Setting Placeholder Content will automatically enable deferred loading
Set Display to horizontal mode (aka "chips")
Set Display to classic mode (aka "sidebar")
Set Variable / Option for an array
sets marker_content to passed data -> restore original content with reset_marker_content()
Sets options. This options will be used in the JS element of this XUI class.
Used to inject params. Only allowed params will be used (see $allowed_params_filter)
Sets the url parameter that is used for component loading.
No description
Details
at line 65
__construct(string $link_id = NULL)
UIComponent constructor.
in
UIComponent at line 328
string
__toString()
No description
at line 441
void
addActiveValue(string $categoryKey, string $value)
Adds $value to category with $categoryKey. Overwrites existing value.
at line 158
FacetedCategoryChoice
addCategoryChoiceByItems(I18nTokenHelper $label, array|null $items = null)
Adds Choice category with manually defined items
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.
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
at line 200
FacetedCategoryMultipleChoice
addCategoryMultipleChoiceByItems(I18nTokenHelper $label, array|null $items = null)
Adds a MultipleChoice category with manually defined items
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.
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
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.
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.
in
UIAjaxComponent at line 196
add_css_class($css_class)
Adds a custom css class to the root element of this component.
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()
in
UIAjaxComponent at line 94
add_url_parameter(mixed $key, mixed $value)
Adds a parameter to url parameter list.
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
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.
in
UIComponent at line 187
mixed
get($var)
Get Variable / Option
at line 451
array
getActiveValue(string $categoryKey)
Returns the active value(s) for the $categoryKey
at line 120
FacetedCategoryList
getCategories()
No description
at line 128
ItemInterface|null
getCategory(string $key)
No description
at line 84
Collection
getCollection()
getter
in
UIAjaxComponent at line 456
false|mixed
getCurrentAjaxLink(array $params)
No description
at line 483
array
getCurrentGPVarsFilter()
Returns the current active filters based on the GPVars (e.g.: ['category' => ['1' => true], 'date' => ['start' => $start, 'end' => $end]])
at line 538
bool
getHasFilter()
Returns if there is an active filter
in
UIAjaxComponent at line 255
XUILinkHelper
getLinkHelper()
No description
at line 102
int
getMaxFacetElements()
getter
in
Container at line 54
protected string
getPlaceholderContent()
Place
in
UIAjaxComponent at line 150
mixed
get_dependency($dep_name)
Returns a dependent object in order to interact with it
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.
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
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
in
UIComponent at line 223
string
parse_template(string $template_content, array|bool $marker_array = false)
No description
in
UIComponent at line 239
string|null
parse_template_cb_wrapper(mixed $matches)
No description
in
UIComponent at line 265
mixed|string
parse_xtag($xml_source)
No description
in
UIAjaxComponent at line 430
false|string
printAjaxLink(array $params)
No description
in
UIAjaxComponent at line 443
false|mixed
printCurrentAjaxLink(array $params)
No description
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
in
UIComponent at line 273
mixed
render_xtag_element()
No description
at line 684
string|Template
render_xui()
Render XUI Object
in
UIComponent at line 175
void
reset_marker_content()
restores original content of marker_content
in
UIComponent at line 108
void
set(mixed $var, mixed $value = false)
deprecated
deprecated
Set Variable / Option
at line 136
FacetedFilter
setCategories(FacetedCategoryList $categories)
No description
at line 76
void
setCollection(Collection $collection)
Sets the main collection
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.
in
UIAjaxComponent at line 102
UIAjaxComponent
setLoadURL(string $url)
No description
at line 94
void
setMaxFacetElements(int $max)
Sets the maximum amount of facet elements.
in
Container at line 44
Container
setPlaceholderContent(string $placeholderContent)
Setting Placeholder Content will automatically enable deferred loading
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
in
Container at line 23
set_content(string|callable $content)
No description
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()
in
UIComponent at line 90
set_mod(mixed $mod)
Set link to owning module
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.
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)
in
UIAjaxComponent at line 177
set_uid($uid)
No description
in
UIAjaxComponent at line 83
UIAjaxComponent
set_url_parameters(array $parameters)
Sets the url parameter that is used for component loading.
at line 795
FacetedFilter
unsetCategory(string $categoryKey)
No description