Download the PHP package wrux/blocky without Composer
On this page you can find all versions of the php package wrux/blocky. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package blocky
Short Description Map a matrix field into an array of blocks to render in twig.
License MIT
Informations about the package blocky
Blocky Plugin for Craft CMS 3.x
Utility plugin for Craft CMS to map Matrix fields.
Blocky handles the logic of parsing your Matrix blocks so you can create cleaner Twig templates.
Requirements
This plugin requires Craft CMS 3.0.0 or later.
Installation
To install the plugin, follow these instructions.
-
Open your terminal and go to your Craft project:
-
Then tell Composer to load the plugin:
- In the Control Panel, go to Settings → Plugins and click the “Install” button for Blocky.
Configuring the Block Parser
-
Create
config/blocks.php
inside your Craft project: -
Somewhere in your project, create block classes for each Matrix block which extends
wrux\blocky\Block
Here's an example block:
Templating
Blocky is available at craft.blocky
in the template or you can also use the
{% blocks ... %}
Twig tag.
Twig Tag
The {% blocks %}
tag works similarly to a Twig for loop. It expects a Matrix
field and it will handle the parsing and iteration.
Example:
Example with skipping empty blocks:
You can use skip empty
in the opening tag. This will skip blocks that return
an empty context.
Variables
The following variables are available inside the {% blocks %}
tag.
Variable | Value |
---|---|
block | The block object |
template | The data returned from the getTemplate() method |
type | The value returned from the getType() method |
context | The context returned from the getContext() method |
loop.index | The current iteration of the loop. (1 indexed) |
loop.index0 | The current iteration of the loop. (0 indexed) |
loop.revindex | The number of iterations from the end of the loop (1 indexed) |
loop.revindex0 | The number of iterations from the end of the loop (0 indexed) |
loop.first | True if first iteration |
loop.last | True if last iteration |
loop.length | The number of items in the sequence |
Manually Parsing Blocks
If you don't want to use the Twig tag, blocks can be parsed manually using
craft.blocky
service. Internally this consumes the same
Blocky::$plugin->parseBlocks()
method. This method allows you to check
blocks.hasBlocks
before the for loop.
Example:
Block Parser Roadmap
Some things to do, and ideas for potential features:
- Testing 🔥
- Nested blocks with the release of CraftCMS 4.0.
Brought to you by Callum Bonnyman