carbon / condition
This package provides some fusion helper for making writing conditions (`@if`) easier.
                                    Fund package maintenance!
                                                                            
                                                                                                                                        jonnitto
                                                                                    
                                                                            
                                                                                                                                        www.paypal.me/Jonnitto/20eur
                                                                                    
                                                                
Installs: 57 490
Dependents: 5
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
Type:neos-carbon
pkg:composer/carbon/condition
Requires
- neos/neos: ~9.0
 
README
Carbon.Condition Package for Neos CMS
This package provides some fusion helper for making writing conditions (@if) easier.
You can look at a real world example here
Installation
Carbon.Condition is available via packagist. Add "carbon/condition" : "^2.0"
to the require section of your composer.json or run composer require carbon/condition.
Carbon.Condition:Case
Link to the fusion file
Return true if a content element or a node type definition is on a document.
Example usage:
value = 'FooBar' value.@if.render = Carbon.Condition:Case { content { nodeType = 'Foo.Bar:NodeType' propertyFilter = '[row != "one"]' } }
In the example above the value FooBar gets only rendered if a content node type
Foo.Bar:NodeType with the property row set not to one is on the current document.
value = 'FooBar' value.@if.render = Carbon.Condition:Case { document.nodeType = 'Foo.Bar:MixinNodeType' }
In the example above the value FooBar gets only rendered if the document has
the mixin Foo.Bar:MixinNodeType.
You can also mix the conditions:
value = 'FooBar' value.@if.render = Carbon.Condition:Case { content { nodeType = 'Foo.Bar:MixinLightbox' propertyFilter = '[lightbox=true]' } document { nodeType = 'Foo.Bar:MixinLightbox' propertyFilter = '[lightbox=true]' } }
In the example above the value FooBar gets only rendered if the document or a
content element has the mixin Foo.Bar:MixinLightbox and the property lightbox
set to true.
Default values
node = ${documentNode} enabled = true content { collection = '[instanceof Neos.Neos:ContentCollection]' nodeType = null propertyFilter = '' filter = ${this.nodeType ? ('[instanceof ' + this.nodeType + ']' + this.propertyFilter) : null} } document { nodeType = null propertyFilter = '' filter = ${this.nodeType ? ('[instanceof ' + this.nodeType + ']' + this.propertyFilter) : null} } context { backend = true live = false }
Overview of properties:
| Property | Description | 
|---|---|
node | 
The node as starting point for the query | 
enabled | 
If set to false, it return always false | 
content.nodeType | 
Set the node type | 
content.propertyFilter | 
This string gets appended to the content.filter. Example usage see above | 
content.collection | 
The filter string for the content collection. Normally you don't need to change this property. | 
content.filter | 
The filter string for the content element. Normally you don't need to change this property. | 
document.nodeType | 
Set the node type | 
document.propertyFilter | 
This string gets appended to the document.filter. Example usage see above | 
document.filter | 
The filter string for the document element. Normally you don't need to change this property. | 
context.backend | 
If set to true, the value is always return true in backend context | 
context.live | 
If set to true, the value is always return true in live context | 
Carbon.Condition:Properties
Link to the fusion file
Helper for checking if the element should get rendered or not. Example usage:
@if.render = Carbon.Condition:Properties { properties = 'title,image' }
In the example above the condition is only get true if the node
has title and image set.
Default values
node = ${node} properties = null operator = 'AND' context { backend = true live = false }
Overview of properties:
| Property | Default value | Description | 
|---|---|---|
node | 
${node} | 
The node as starting point for the query | 
properties | 
false | 
Set the needed properties as comma seperated string. You can mix string and object based properties. | 
operator | 
'AND' | 
If set to 'AND' or '&&', all properties have to be set. If it set to 'OR' or '||' only one property is needed | 
context.backend | 
true | 
If set to true, the value is always return true in backend context | 
context.live | 
false | 
If set to true, the value is always return true in live context |