class SSViewer_DataPresenter extends SSViewer_Scope (View source)

This extends SSViewer_Scope to mix in data on top of what the item provides. This can be "global" data that is scope-independant (like BaseURL), or type-specific data that is layered on top cross-cut like (like $FirstLast etc).

It's separate from SSViewer_Scope to keep that fairly complex code as clean as possible.

Constants

ITEM

ITEM_ITERATOR

ITEM_ITERATOR_TOTAL

POP_INDEX

UP_INDEX

CURRENT_INDEX

ITEM_OVERLAY

Methods

__construct($item, array $overlay = null, array $underlay = null, SSViewer_Scope $inheritedScope = null)

No description

object
getItem()

Returns the current "active" item

locally()

Called at the start of every lookup chain by SSTemplateParser to indicate a new lookup from local scope

resetLocalScope()

Reset the local scope - restores saved state to the "global" item stack. Typically called after a lookup chain has been completed

mixed
getObj(string $name, array $arguments = [], bool $cache = false, string $cacheName = null)

No description

$this
obj(string $name, array $arguments = [], bool $cache = false, string $cacheName = null)

$Up and $Top need to restore the overlay from the parent and top-level scope respectively.

object
self()

Gets the current object and resets the scope.

pushScope()

Store the current overlay (as it doesn't directly apply to the new scope that's being pushed). We want to store the overlay against the next item "up" in the stack (hence upIndex), rather than the current item, because SSViewer_Scope::obj() has already been called and pushed the new item to the stack by this point

popScope()

Now that we're going to jump up an item in the item stack, we need to restore the overlay that was previously stored against the next item "up" in the stack from the current one

mixed
next()

Fast-forwards the current iterator to the next item

mixed
__call(string $name, array $arguments)

No description

array|null
getInjectedValue(string $property, array $params, bool $cast = true)

Look up injected value - it may be part of an "overlay" (arguments passed to <% include %>), set on the current item, part of an "underlay" ($Layout or $Content), or an iterator/global property

Details

__construct($item, array $overlay = null, array $underlay = null, SSViewer_Scope $inheritedScope = null)

Parameters

$item
array $overlay
array $underlay
SSViewer_Scope $inheritedScope

object getItem()

Returns the current "active" item

Return Value

object

SSViewer_Scope locally()

Called at the start of every lookup chain by SSTemplateParser to indicate a new lookup from local scope

Return Value

SSViewer_Scope

resetLocalScope()

Reset the local scope - restores saved state to the "global" item stack. Typically called after a lookup chain has been completed

mixed getObj(string $name, array $arguments = [], bool $cache = false, string $cacheName = null)

Parameters

string $name
array $arguments
bool $cache
string $cacheName

Return Value

mixed

$this obj(string $name, array $arguments = [], bool $cache = false, string $cacheName = null)

$Up and $Top need to restore the overlay from the parent and top-level scope respectively.

Parameters

string $name
array $arguments
bool $cache
string $cacheName

Return Value

$this

object self()

Gets the current object and resets the scope.

Return Value

object

SSViewer_Scope pushScope()

Store the current overlay (as it doesn't directly apply to the new scope that's being pushed). We want to store the overlay against the next item "up" in the stack (hence upIndex), rather than the current item, because SSViewer_Scope::obj() has already been called and pushed the new item to the stack by this point

Return Value

SSViewer_Scope

SSViewer_Scope popScope()

Now that we're going to jump up an item in the item stack, we need to restore the overlay that was previously stored against the next item "up" in the stack from the current one

Return Value

SSViewer_Scope

mixed next()

Fast-forwards the current iterator to the next item

Return Value

mixed

mixed __call(string $name, array $arguments)

Parameters

string $name
array $arguments

Return Value

mixed

array|null getInjectedValue(string $property, array $params, bool $cast = true)

Look up injected value - it may be part of an "overlay" (arguments passed to <% include %>), set on the current item, part of an "underlay" ($Layout or $Content), or an iterator/global property

Parameters

string $property

Name of property

array $params
bool $cast

If true, an object is always returned even if not an object.

Return Value

array|null