class BlogPostFilter extends Extension (View source)

This is responsible for filtering only published posts to users who do not have permission to view non-published posts.

Properties

protected T $owner

The object this extension is applied to.

from  Extension

Methods

public
__construct()

No description

public static 
add_to_class(string $class, string $extensionClass, mixed $args = null)

Called when this extension is added to a particular class

public
setOwner(object $owner)

Set the owner of this extension.

public
mixed
withOwner(mixed $owner, callable $callback, array $args = [])

Temporarily modify the owner. The original owner is ensured to be restored

public
clearOwner()

Clear the current owner, and restore extension to the state prior to the last setOwner()

public
T
getOwner()

Returns the owner of this extension.

public static 
string
get_classname_without_arguments(string $extensionStr)

Helper method to strip eval'ed arguments from a string that's passed to DataObject::$extensions or Object::add_extension().

public
mixed
invokeExtension(object $owner, string $method, array ...$arguments)

Invoke extension point. This will prefer explicit extend prefixed methods.

protected
augmentSQL(SQLSelect $query, DataQuery|null $dataQuery = null)

Augment queries so that we don't fetch unpublished articles.

protected
augmentLoadLazyFields(SQLSelect $query, DataQuery|null $dataQuery, DataObject $dataObject)

{@inheritDoc}

Details

__construct()

No description

static add_to_class(string $class, string $extensionClass, mixed $args = null)

Called when this extension is added to a particular class

Parameters

string $class
string $extensionClass
mixed $args

setOwner(object $owner)

Set the owner of this extension.

Parameters

object $owner

The owner object

mixed withOwner(mixed $owner, callable $callback, array $args = [])

Temporarily modify the owner. The original owner is ensured to be restored

Parameters

mixed $owner

Owner to set

callable $callback

Callback to invoke

array $args

Args to pass to callback

Return Value

mixed

clearOwner()

Clear the current owner, and restore extension to the state prior to the last setOwner()

T getOwner()

Returns the owner of this extension.

Return Value

T

static string get_classname_without_arguments(string $extensionStr)

Helper method to strip eval'ed arguments from a string that's passed to DataObject::$extensions or Object::add_extension().

Parameters

string $extensionStr

E.g. "Versioned('Stage','Live')"

Return Value

string

Extension classname, e.g. "Versioned"

mixed invokeExtension(object $owner, string $method, array ...$arguments)

Invoke extension point. This will prefer explicit extend prefixed methods.

Parameters

object $owner
string $method
array ...$arguments

Return Value

mixed

protected augmentSQL(SQLSelect $query, DataQuery|null $dataQuery = null)

Augment queries so that we don't fetch unpublished articles.

Parameters

SQLSelect $query
DataQuery|null $dataQuery

protected augmentLoadLazyFields(SQLSelect $query, DataQuery|null $dataQuery, DataObject $dataObject)

{@inheritDoc}

This is a fix so that when we try to fetch subclasses of BlogPost, lazy loading includes the BlogPost table in its query. Leaving this table out means the default sort order column PublishDate causes an error.

Parameters

SQLSelect $query
DataQuery|null $dataQuery
DataObject $dataObject

See also

https://github.com/silverstripe/silverstripe-framework/issues/1682