Skip to content
On this page

Including Tailor content

Using components

Including Tailor content in Boxes is very easy. Just add either the collection or section component to your yaml config:

yaml
# tailor-example.yaml
name: Tailor example
handle: tailor-example

components:
    projects:
        component: collection
        properties:
            handle: "YourContent\\Projects"

Then you can access the Tailor content in your partial directly:

twig
{# tailor-example.htm #}

{% for project in projects %}
    ...
{% endfor %}

Using a record finder

If you want to provide a method to select the Tailor Entry that is related to your Box, a recordfinder component can be used. In this example, a blog_post is related to the Box:

yaml
# recordfinder-example.yaml
name: Record finder
handle: recordfinder-example
eagerLoad:
- blog_post # Don't forget to eager load the relation.
form:
    fields:
        blog_post: # Relation has to be added, see below!
            type: recordfinder
            nameFrom: title
            label: Blog Post

For this to work, you need to add the appropriate relation to your Box model in the app/Provider.php:

php
<?php
    // app/Provider.php
    public function boot()
    {
        parent::boot();

        \OFFLINE\Boxes\Models\Box::extend(function ($box) {
            // Add the "blog_post" relation to the Box model.
            // Make sure to use the correct Tailor Blueprint UUID.
            $box->belongsTo = [
                'blog_post' => [
                    \Tailor\Models\EntryRecord::class,
                    'blueprint' => 'your-tailor-blueprint-uuid',
                    'replicate' => false
                ]
            ];
            // Make sure the Tailor blueprints are properly loaded
            // for the new relation.
            $box->initializeBlueprintRelationModel();
        });
    }