EsiWidget
extends Widget
in package
Represents a template widget that is handled by ESI Usage: ```php $this->getComponent('Widget')->registerWidget( new \Cx\Core_Modules\Widget\Model\Entity\EsiWidget( $this->getSystemComponentController(), 'FOO' ) ); ``` The above example replaces Sigma placeholder "FOO" by return value of JsonAdapter method "getWidget" of JsonAdapter named after $this->getName()
Tags
Table of Contents
Constants
- ESI_VAR_ID_AUTOCONF = -1
- This will just make a most-of-the-time-working setup and should not be used on production without checking first.
- ESI_VAR_ID_CHANNEL = 8
- ESI_VAR_ID_COUNTRY = 64
- ESI_VAR_ID_CURRENCY = 32
- ESI_VAR_ID_LOCALE = 2
- ESI_VAR_ID_PAGE = 1
- ESI_VAR_ID_PATH = 128
- ESI_VAR_ID_QUERY = 256
- ESI_VAR_ID_THEME = 4
- ESI_VAR_ID_USER = 16
- ESI_VAR_NAME_CHANNEL = 'channel'
- ESI_VAR_NAME_COUNTRY = 'country'
- ESI_VAR_NAME_CURRENCY = 'currency'
- ESI_VAR_NAME_LOCALE = 'locale'
- ESI_VAR_NAME_PAGE = 'page'
- ESI_VAR_NAME_PATH = 'path'
- ESI_VAR_NAME_QUERY = 'query'
- ESI_VAR_NAME_THEME = 'theme'
- ESI_VAR_NAME_USER = 'user'
- TYPE_BLOCK = 'block'
- TYPE_CALLBACK = 'callback'
- TYPE_PLACEHOLDER = 'placeholder'
Properties
- $component : SystemComponentController
- Component which registered this widget
- $customParseTarget : WidgetParseTarget
- Custom parse target to use for sub-widgets
- $esiVariables : int
- ESI variables configured to be sent for this Widget
- $jsonAdapterName : mixed
- $jsonMethodName : mixed
- $jsonParams : mixed
- $localeCodes : array<string|int, mixed>
- List of locale codes ordered by translation fallback order per Cx instance
- $name : string
- Name of this widget
- $nestingCount : int
- Counts the nesting level of __call()
- $stringRepresentationBlank : bool
- Whether blank string representations are valid
- $stringRepresentationFields : array<string|int, mixed>
- List of fields that should be available in the string representation
- $stringRepresentationFormat : string
- Sprintf format for the string representation
- $triggerEvents : bool
- $type : string
- Whether this widget represents a template block, placeholder or callback
- $validators : array<string|int, mixed>
- Initialize this array as follows: array( 'columName' => Zend_Validate )
- $virtual : bool
- Defines if an entity is virtual and therefore not persistable.
Methods
- __call() : mixed
- Route methods like getName(), getType(), getDirectory(), etc.
- __construct() : mixed
- Instanciates a new widget
- __get() : mixed
- This is an ugly solution to allow $this->cx to be available in all entity classes Since the entity's constructor is not called when an entity is loaded from DB this cannot be assigned there.
- __toString() : string
- Returns this entity's identifying value
- clearCache() : mixed
- Clears all cache files for this Widget (if any)
- getComponentController() : SystemComponent
- Returns the component controller for this component
- getCustomParseTarget() : WidgetParseTarget
- Returns this widget's custom parse target
- getEsiVariables() : int
- Returns the ESI variables configured to be send for this Widget Return value is a combination of othered constants
- getJsonAdapterName() : string
- Returns the name of the JsonAdapter to call
- getJsonMethodName() : string
- Returns the name of the JsonAdapter method to call
- getKeyAsString() : string
- Returns this entity's key
- getName() : string
- Returns the name of this widget
- getRegisteringComponent() : SystemComponentController
- Returns the component which registered this widget
- getTranslatedFieldValue() : mixed
- Returns the value of a translatable field using fallback mechanisms
- getType() : string
- Returns whether this widget represents a template placeholder, block or callback
- hasCustomParseTarget() : bool
- Tells whether this widget has a custom parse target
- initializeValidators() : mixed
- Set $this->validators
- internalParse() : string
- Really parses this widget into $template If this Widget has no content, the replacement can simply be returned as string. Otherwise the replacement must be done in $template.
- isEsiVariableActive() : mixed
- Tells wheter the given ESI variable is configured to be sent for this Widget
- isVirtual() : bool
- Returns the virtuality of the entity
- parse() : mixed
- Parses this widget into $template Depending on the type, the passed params and return value are different: TYPE_CALLBACK: $params are the callback's params $excludeWidgets is always empty return value is the content of this widget TYPE_PLACEHOLDER: $params are always empty $excludedWidgets is the list of Widgets we already recursed through return value is the content of this widget TYPE_BLOCK $params are always empty $excludedWidgets is the list of Widgets we already recursed through return value is empty string (/unused)
- setCustomParseTarget() : mixed
- Sets this widget's parse target
- setEsiVariable() : mixed
- Sets the ESI variable as active
- setEsiVariables() : mixed
- Sets the ESI variables configured to be sent for this widget Simple setter, see getEsiVariables() for format definition
- setVirtual() : mixed
- Set the virtuality of the entity
- unsetEsiVariable() : mixed
- Sets the ESI variable as inactive
- validate() : mixed
- getEsiParams() : array<string|int, mixed>
- Returns the params for the JsonAdapter call If you add an ESI variable core_module Cache needs to be updated as well: - Controller\CacheLib (multiple times) - Model\Entity\ReverseProxyCloudrexx::globDrop()
- getFallbackLocaleCodes() : array<string|int, mixed>
- Returns a list of all locale codes ordered by fallback order
- getStringRepresentationBlank() : bool
- Whether blank string representations are valid
- getStringRepresentationFields() : array<string|int, mixed>
- Returns a list of fields available in the string representation
- getStringRepresentationFormat() : string
- Returns the sprintf() format for the string representation
Constants
ESI_VAR_ID_AUTOCONF
This will just make a most-of-the-time-working setup and should not be used on production without checking first.
public
mixed
ESI_VAR_ID_AUTOCONF
= -1
Tags
ESI_VAR_ID_CHANNEL
public
mixed
ESI_VAR_ID_CHANNEL
= 8
Tags
ESI_VAR_ID_COUNTRY
public
mixed
ESI_VAR_ID_COUNTRY
= 64
Tags
ESI_VAR_ID_CURRENCY
public
mixed
ESI_VAR_ID_CURRENCY
= 32
Tags
ESI_VAR_ID_LOCALE
public
mixed
ESI_VAR_ID_LOCALE
= 2
Tags
ESI_VAR_ID_PAGE
public
mixed
ESI_VAR_ID_PAGE
= 1
Tags
ESI_VAR_ID_PATH
public
mixed
ESI_VAR_ID_PATH
= 128
Tags
ESI_VAR_ID_QUERY
public
mixed
ESI_VAR_ID_QUERY
= 256
Tags
ESI_VAR_ID_THEME
public
mixed
ESI_VAR_ID_THEME
= 4
Tags
ESI_VAR_ID_USER
public
mixed
ESI_VAR_ID_USER
= 16
Tags
ESI_VAR_NAME_CHANNEL
public
mixed
ESI_VAR_NAME_CHANNEL
= 'channel'
Tags
ESI_VAR_NAME_COUNTRY
public
mixed
ESI_VAR_NAME_COUNTRY
= 'country'
Tags
ESI_VAR_NAME_CURRENCY
public
mixed
ESI_VAR_NAME_CURRENCY
= 'currency'
Tags
ESI_VAR_NAME_LOCALE
public
mixed
ESI_VAR_NAME_LOCALE
= 'locale'
Tags
ESI_VAR_NAME_PAGE
public
mixed
ESI_VAR_NAME_PAGE
= 'page'
Tags
ESI_VAR_NAME_PATH
public
mixed
ESI_VAR_NAME_PATH
= 'path'
Tags
ESI_VAR_NAME_QUERY
public
mixed
ESI_VAR_NAME_QUERY
= 'query'
Tags
ESI_VAR_NAME_THEME
public
mixed
ESI_VAR_NAME_THEME
= 'theme'
Tags
ESI_VAR_NAME_USER
public
mixed
ESI_VAR_NAME_USER
= 'user'
Tags
TYPE_BLOCK
public
string
TYPE_BLOCK
= 'block'
Widget is a block that can be parsed
TYPE_CALLBACK
public
string
TYPE_CALLBACK
= 'callback'
Widget is a placeholder that has params and triggers a callback
TYPE_PLACEHOLDER
public
string
TYPE_PLACEHOLDER
= 'placeholder'
Widget is a simple placeholder
Properties
$component
Component which registered this widget
protected
SystemComponentController
$component
$customParseTarget
Custom parse target to use for sub-widgets
protected
WidgetParseTarget
$customParseTarget
= null
$esiVariables
ESI variables configured to be sent for this Widget
protected
int
$esiVariables
= self::ESI_VAR_ID_AUTOCONF
Combination of the constants
$jsonAdapterName
protected
mixed
$jsonAdapterName
$jsonMethodName
protected
mixed
$jsonMethodName
$jsonParams
protected
mixed
$jsonParams
$localeCodes
List of locale codes ordered by translation fallback order per Cx instance
protected
static array<string|int, mixed>
$localeCodes
= array()
Array in the form: array(<instanceId> => array(<localeCode>, ...))
Tags
$name
Name of this widget
protected
string
$name
$nestingCount
Counts the nesting level of __call()
protected
static int
$nestingCount
= 0
$stringRepresentationBlank
Whether blank string representations are valid
protected
bool
$stringRepresentationBlank
= false
Whether blank string representations are valid
Tags
$stringRepresentationFields
List of fields that should be available in the string representation
protected
array<string|int, mixed>
$stringRepresentationFields
= array()
List of field names
Tags
$stringRepresentationFormat
Sprintf format for the string representation
protected
string
$stringRepresentationFormat
= ''
Sprintf format string
Tags
$triggerEvents
protected
bool
$triggerEvents
= true
Whether to trigger events
$type
Whether this widget represents a template block, placeholder or callback
protected
string
$type
$validators
Initialize this array as follows: array( 'columName' => Zend_Validate )
protected
array<string|int, mixed>
$validators
= array()
$virtual
Defines if an entity is virtual and therefore not persistable.
protected
bool
$virtual
= false
Defaults to FALSE - not virtual.
Methods
__call()
Route methods like getName(), getType(), getDirectory(), etc.
public
__call(string $methodName, array<string|int, mixed> $arguments) : mixed
Parameters
- $methodName : string
-
Name of method to call
- $arguments : array<string|int, mixed>
-
List of arguments for the method to call
Tags
Attributes
- #[ReturnTypeWillChange]
Return values
mixed —Return value of the method to call
__construct()
Instanciates a new widget
public
__construct(SystemComponentController $component, string $name[, string $type = self::TYPE_PLACEHOLDER ][, string $jsonAdapterName = '' ][, string $jsonMethodName = '' ][, array<string|int, mixed> $jsonParams = array() ]) : mixed
Parameters
- $component : SystemComponentController
-
Component registering this widget
- $name : string
-
Name of this widget
- $type : string = self::TYPE_PLACEHOLDER
-
(optional) Whether this widget represents a template placeholder, block or callback, default: placeholder
- $jsonAdapterName : string = ''
-
(optional) Name of the JsonAdapter to call. If not specified, $component->getName() is used
- $jsonMethodName : string = ''
-
(optional) Name of the JsonAdapter method to call. If not specified, "getWidget" is used
- $jsonParams : array<string|int, mixed> = array()
-
(optional) Params to pass on JsonAdapter call. If not specified, a default list is used, see getEsiParams()
__get()
This is an ugly solution to allow $this->cx to be available in all entity classes Since the entity's constructor is not called when an entity is loaded from DB this cannot be assigned there.
public
__get(mixed $name) : mixed
Parameters
- $name : mixed
Attributes
- #[ReturnTypeWillChange]
__toString()
Returns this entity's identifying value
public
__toString() : string
By default this returns the same as getKeyAsString(), but this method might get overridden by subclasses.
Return values
string —Identifying value for this entity
clearCache()
Clears all cache files for this Widget (if any)
public
clearCache() : mixed
getComponentController()
Returns the component controller for this component
public
getComponentController() : SystemComponent
Return values
SystemComponentgetCustomParseTarget()
Returns this widget's custom parse target
public
getCustomParseTarget() : WidgetParseTarget
Return values
WidgetParseTarget —Widget parse target
getEsiVariables()
Returns the ESI variables configured to be send for this Widget Return value is a combination of othered constants
public
getEsiVariables() : int
Return values
int —Bitwise-OR-combined values
getJsonAdapterName()
Returns the name of the JsonAdapter to call
public
getJsonAdapterName() : string
Return values
string —JsonAdapter name
getJsonMethodName()
Returns the name of the JsonAdapter method to call
public
getJsonMethodName() : string
Return values
string —JsonAdapter method name
getKeyAsString()
Returns this entity's key
public
final getKeyAsString([string $separator = '/' ]) : string
If this entity has a composite key, the fields are separated by $separator.
Parameters
- $separator : string = '/'
-
(optional) Separator for composite key fields, default "/"
Return values
string —Entity key as string
getName()
Returns the name of this widget
public
getName() : string
Return values
string —Name of this widget
getRegisteringComponent()
Returns the component which registered this widget
public
getRegisteringComponent() : SystemComponentController
Return values
SystemComponentController —Registering component
getTranslatedFieldValue()
Returns the value of a translatable field using fallback mechanisms
public
getTranslatedFieldValue(string $fieldName) : mixed
If the field is not translatable its value is returned anyway. Tries to return the value in the following locales (if non-empty):
- Current locale
- Default locale
- All other locales
Parameters
- $fieldName : string
-
Name of a translatable field
getType()
Returns whether this widget represents a template placeholder, block or callback
public
getType() : string
Return values
string —$type Whether this widget represents a template placeholder, block or callback
hasCustomParseTarget()
Tells whether this widget has a custom parse target
public
hasCustomParseTarget() : bool
Return values
bool —True if this widget has a custom parse target
initializeValidators()
Set $this->validators
public
initializeValidators() : mixed
Validators can be found in lib/FRAMEWORK/Validator.class.php These will be executed if validate() is called
internalParse()
Really parses this widget into $template If this Widget has no content, the replacement can simply be returned as string. Otherwise the replacement must be done in $template.
public
internalParse(mixed $template, mixed $response, mixed $targetComponent, mixed $targetEntity, mixed $targetId[, mixed $params = array() ]) : string
Parameters
- $template : mixed
-
Template to parse this widget into
- $response : mixed
-
Current response object
- $targetComponent : mixed
-
Parse target component name
- $targetEntity : mixed
-
Parse target entity name
- $targetId : mixed
-
Parse target entity ID
- $params : mixed = array()
-
(optional) List of params for widgets of type 'callback'
Return values
string —Replacement for widgets without content, NULL otherwise
isEsiVariableActive()
Tells wheter the given ESI variable is configured to be sent for this Widget
public
isEsiVariableActive(mixed $variableId) : mixed
Parameters
- $variableId : mixed
isVirtual()
Returns the virtuality of the entity
public
isVirtual() : bool
Return values
bool —TRUE if the entity is virtual, otherwise FALSE
parse()
Parses this widget into $template Depending on the type, the passed params and return value are different: TYPE_CALLBACK: $params are the callback's params $excludeWidgets is always empty return value is the content of this widget TYPE_PLACEHOLDER: $params are always empty $excludedWidgets is the list of Widgets we already recursed through return value is the content of this widget TYPE_BLOCK $params are always empty $excludedWidgets is the list of Widgets we already recursed through return value is empty string (/unused)
public
parse(HTML_Template_Sigma $template, Reponse $response, string $targetComponent, string $targetEntity, string $targetId[, mixed $arguments = array() ][, array<string|int, mixed> $excludedWidgets = array() ]) : mixed
Parameters
- $template : HTML_Template_Sigma
-
Template to parse this widget into
- $response : Reponse
-
Current response object
- $targetComponent : string
-
Parse target component name
- $targetEntity : string
-
Parse target entity name
- $targetId : string
-
Parse target entity ID
- $arguments : mixed = array()
- $excludedWidgets : array<string|int, mixed> = array()
-
(optional) List of widget names that shall not be parsed
setCustomParseTarget()
Sets this widget's parse target
public
setCustomParseTarget(WidgetParseTarget $parseTarget) : mixed
Parameters
- $parseTarget : WidgetParseTarget
-
Widget parse target for subwidgets
setEsiVariable()
Sets the ESI variable as active
public
setEsiVariable(mixed $variableId) : mixed
Parameters
- $variableId : mixed
setEsiVariables()
Sets the ESI variables configured to be sent for this widget Simple setter, see getEsiVariables() for format definition
public
setEsiVariables(int $variables) : mixed
Parameters
- $variables : int
-
Bitwise-OR-combined values
setVirtual()
Set the virtuality of the entity
public
setVirtual(bool $virtual) : mixed
Parameters
- $virtual : bool
-
TRUE to set the entity as virtual or otherwise to FALSE
unsetEsiVariable()
Sets the ESI variable as inactive
public
unsetEsiVariable(mixed $variableId) : mixed
Parameters
- $variableId : mixed
validate()
public
validate() : mixed
Tags
getEsiParams()
Returns the params for the JsonAdapter call If you add an ESI variable core_module Cache needs to be updated as well: - Controller\CacheLib (multiple times) - Model\Entity\ReverseProxyCloudrexx::globDrop()
protected
getEsiParams(string $targetComponent, string $targetEntity, string $targetId) : array<string|int, mixed>
Parameters
- $targetComponent : string
-
Parse target component name
- $targetEntity : string
-
Parse target entity name
- $targetId : string
-
Parse target entity ID
Return values
array<string|int, mixed> —List of params
getFallbackLocaleCodes()
Returns a list of all locale codes ordered by fallback order
protected
getFallbackLocaleCodes() : array<string|int, mixed>
- First entry is the current locale
- Second entry is the default locale (if different from current, it's omitted otherwise)
- Then all other locales follow (in no particular order)
Tags
Return values
array<string|int, mixed> —List of locale codes
getStringRepresentationBlank()
Whether blank string representations are valid
protected
getStringRepresentationBlank() : bool
Return values
bool —Whether blank string representations are valid
getStringRepresentationFields()
Returns a list of fields available in the string representation
protected
getStringRepresentationFields() : array<string|int, mixed>
Return values
array<string|int, mixed> —List of field names
getStringRepresentationFormat()
Returns the sprintf() format for the string representation
protected
getStringRepresentationFormat() : string
Return values
string —sprintf() format string