ScannableBlockable
extends AbstractBlockable
in package
Describe a blockable item.
Table of Contents
Constants
- DEFAULT_GROUP = '__default__'
- Every rule is within this group.
Properties
- $currentlyAddingRules : mixed
- $extended : mixed
- $headlessContentBlocker : mixed
- $identifier : mixed
- $originalExpressions : array<string|int, string>
- Original rules from string rules.
- $regexp : mixed
- $ruleGroups : array<string|int, RuleGroup>
- Each rule group gets an own instance of `RuleGroup`.
- $rules : array<string|int, Rule>
- Each expression gets an own instance of `Rule`.
- $selectorSyntaxFinder : array<string|int, SelectorSyntaxFinder>
- See `SelectorSyntaxFinder`.
- $variables : array<string|int, string>
- Variables can be passed as rule in format `:$myVar=...` and can be reused in selector syntax function arguments.
Methods
- __construct() : mixed
- C'tor.
- addRules() : mixed
- Allows to add rules and rule groups dynamically.
- appendFromStringArray() : mixed
- Generate the custom element blockers and regular expressions and append it to this blockable instance.
- checkExpressionsMatchesGroups() : mixed
- Check if a set of expressions matches at least one in our configured groups.
- findSelectorSyntaxFinderForMatch() : mixed
- Find a `SyntaxSelectorFinder` for a given `AbstractMatch`.
- getBlockerId() : int|string|null
- Get the blocker ID. This is added as a custom HTML attribute to the blocked element so your frontend can e.g. add a visual content blocker.
- getContainsRegularExpressions() : array<string|int, string>
- Getter.
- getCriteria() : string
- The criteria type. This is added as a custom HTML attribute to the blocked element so your frontend can determine the origin for the `getRequiredIds`.
- getExtended() : mixed
- Getter.
- getGroupsWithExpressionsMap() : mixed
- Get a map of `Record<string (group), string[] (expressions)>`.
- getIdentifier() : mixed
- Getter.
- getOriginalExpressions() : array<string|int, string>
- Getter.
- getRegularExpressions() : array<string|int, string>
- Getter.
- getRequiredIds() : array<string|int, int|string>
- Get required IDs. This is added as a custom HTML attribute to the blocked element so your frontend can determine which items by ID are needed so the item can be unblocked.
- getRuleGroups() : mixed
- Getter.
- getRules() : mixed
- Getter.
- getRulesByExpression() : array<string|int, Rule>
- Getter.
- getSelectorSyntaxFinder() : mixed
- Getter.
- getVariable() : mixed
- getVariables() : mixed
- hasBlockerId() : mixed
- Determine if this blockable should be blocked.
Constants
DEFAULT_GROUP
Every rule is within this group.
public
mixed
DEFAULT_GROUP
= '__default__'
Properties
$currentlyAddingRules
private
mixed
$currentlyAddingRules
= false
$extended
private
mixed
$extended
$headlessContentBlocker
private
mixed
$headlessContentBlocker
$identifier
private
mixed
$identifier
$originalExpressions
Original rules from string rules.
private
array<string|int, string>
$originalExpressions
= []
$regexp
private
mixed
$regexp
= ['wildcard' => [], 'contains' => []]
$ruleGroups
Each rule group gets an own instance of `RuleGroup`.
private
array<string|int, RuleGroup>
$ruleGroups
= []
$rules
Each expression gets an own instance of `Rule`.
private
array<string|int, Rule>
$rules
= []
$selectorSyntaxFinder
See `SelectorSyntaxFinder`.
private
array<string|int, SelectorSyntaxFinder>
$selectorSyntaxFinder
= []
$variables
Variables can be passed as rule in format `:$myVar=...` and can be reused in selector syntax function arguments.
private
array<string|int, string>
$variables
= []
Methods
__construct()
C'tor.
public
__construct(HeadlessContentBlocker $headlessContentBlocker, string $identifier[, string $extended = null ][, array<string|int, Rule>|array<string|int, array<string|int, mixed>> $rules = [] ][, array<string|int, RuleGroup>|array<string|int, array<string|int, mixed>> $ruleGroups = [] ]) : mixed
Example array for $rules
:
[
[
'expression' => "*google.com/recaptcha*",
'assignedToGroups' => 'script', // can be string[]
'queryArgs' => [
[
'queryArg' => 'id',
'isOptional' => true,
'regExp' => '/^UA-/'
]
],
'needsRequiredSiblingRule' => false
]
]
Parameters
- $headlessContentBlocker : HeadlessContentBlocker
- $identifier : string
- $extended : string = null
-
The parent extended template identifier
- $rules : array<string|int, Rule>|array<string|int, array<string|int, mixed>> = []
-
A list of expressions which hold different scan options; you can also pass an array which gets automatically converted to
Rule
. - $ruleGroups : array<string|int, RuleGroup>|array<string|int, array<string|int, mixed>> = []
-
You can also pass an array which gets automatically converted to
RuleGroup
.
addRules()
Allows to add rules and rule groups dynamically.
public
addRules(array<string|int, Rule>|array<string|int, array<string|int, mixed>>|array<string|int, string> $rules[, array<string|int, RuleGroup>|array<string|int, array<string|int, mixed>> $ruleGroups = [] ][, bool $appendFromStringArray = true ]) : mixed
Parameters
- $rules : array<string|int, Rule>|array<string|int, array<string|int, mixed>>|array<string|int, string>
-
A list of expressions which hold different scan options; you can also pass an array which gets automatically converted to
Rule
. - $ruleGroups : array<string|int, RuleGroup>|array<string|int, array<string|int, mixed>> = []
-
You can also pass an array which gets automatically converted to
RuleGroup
. - $appendFromStringArray : bool = true
-
Run
$this->appendFromStringArray()
for the added rules
appendFromStringArray()
Generate the custom element blockers and regular expressions and append it to this blockable instance.
public
appendFromStringArray(mixed $blockers) : mixed
Parameters
- $blockers : mixed
checkExpressionsMatchesGroups()
Check if a set of expressions matches at least one in our configured groups.
public
checkExpressionsMatchesGroups(array<string|int, array<string|int, string>> $expressionsMap) : mixed
It returns only true
when all configured groups got resolved.
Parameters
- $expressionsMap : array<string|int, array<string|int, string>>
findSelectorSyntaxFinderForMatch()
Find a `SyntaxSelectorFinder` for a given `AbstractMatch`.
public
findSelectorSyntaxFinderForMatch(AbstractMatch $match) : mixed
Parameters
- $match : AbstractMatch
getBlockerId()
Get the blocker ID. This is added as a custom HTML attribute to the blocked element so your frontend can e.g. add a visual content blocker.
public
getBlockerId() : int|string|null
Return values
int|string|nullgetContainsRegularExpressions()
Getter.
public
getContainsRegularExpressions() : array<string|int, string>
Return values
array<string|int, string>getCriteria()
The criteria type. This is added as a custom HTML attribute to the blocked element so your frontend can determine the origin for the `getRequiredIds`.
public
getCriteria() : string
E.g. differ between TCF vendors and another custom criteria.
Return values
stringgetExtended()
Getter.
public
getExtended() : mixed
getGroupsWithExpressionsMap()
Get a map of `Record<string (group), string[] (expressions)>`.
public
getGroupsWithExpressionsMap() : mixed
getIdentifier()
Getter.
public
getIdentifier() : mixed
getOriginalExpressions()
Getter.
public
getOriginalExpressions() : array<string|int, string>
Return values
array<string|int, string>getRegularExpressions()
Getter.
public
getRegularExpressions() : array<string|int, string>
Return values
array<string|int, string>getRequiredIds()
Get required IDs. This is added as a custom HTML attribute to the blocked element so your frontend can determine which items by ID are needed so the item can be unblocked.
public
getRequiredIds() : array<string|int, int|string>
Return values
array<string|int, int|string>getRuleGroups()
Getter.
public
getRuleGroups() : mixed
Tags
getRules()
Getter.
public
getRules() : mixed
Tags
getRulesByExpression()
Getter.
public
getRulesByExpression(string $expression) : array<string|int, Rule>
Parameters
- $expression : string
Return values
array<string|int, Rule>getSelectorSyntaxFinder()
Getter.
public
getSelectorSyntaxFinder() : mixed
Tags
getVariable()
public
getVariable(mixed $variableName[, mixed $default = '' ]) : mixed
Parameters
- $variableName : mixed
- $default : mixed = ''
getVariables()
public
getVariables() : mixed
hasBlockerId()
Determine if this blockable should be blocked.
public
hasBlockerId() : mixed