Skip to content

Charcoal Contrib with reusable code to quickly create editable content using charcoal-attachments

License

Notifications You must be signed in to change notification settings

locomotivemtl/charcoal-contrib-content-builder

Repository files navigation

Charcoal ContentBuilder

License Latest Stable Version Code Quality Coverage Status Build Status

A Charcoal service provider content builder.

Table of Contents

Installation

The preferred (and only supported) method is with Composer:

$ composer require locomotivemtl/charcoal-contrib-content-builder

Dependencies

Required

Configuration

Use the ContentBuilderInterface on a model or an instance of TemplateableInterface. Configure Attachment groups use the usual method. ex :

    {
        "attachables": {
            "exemple/attachments/object/text": {
                "label": {
                    "en": "Text",
                    "fr": "Texte"
                }
            }
        },
        "groups": {
            "content": [
                "exemple/attachments/object/text"
            ]
        },
        "widgets": {
            "content": {
                "title": {
                    "en": "Content",
                    "fr": "Contenu"
                },
                "show_title": true,
                "show_header": true,
                "icon": "edit",
                "template": "charcoal/admin/widget/form-group/attachment",
                "group": "content",
                "attachment_heading": "{{ ident }}",
                "show_attachment_heading": false,
                "show_attachment_preview": true,
                "attachment_options": {
                    "show_preview": true,
                    "show_heading": false
                },
                "priority": 100,
                "attachable_objects": "content"
            }
        }
    }

Usage

Attach any interfaces that are based on this structural model :

    {
        "attachments": {
            "widgets": {
                "content": {
                    "type": "charcoal/admin/widget/form-group/attachment",
                    "preset": "content"
                }
            }
        }
    }

This will dynamically add an attachment group to the model. You can provide the interface to the template controller if the model implements TemplateableInterface. This will dynamically add attachments groups on the model depending of the template context. This can be very useful for section object, for example, to allow different attachments groups easily based on the template.

Development

To install the development environment:

$ composer install

To run the scripts (phplint, phpcs, and phpunit):

$ composer test

API Documentation

Development Dependencies

  • [php-coveralls/php-coveralls][phpcov]
  • [phpunit/phpunit][phpunit]
  • [squizlabs/php_codesniffer][phpcs]

Coding Style

The charcoal-contrib-content-builder module follows the Charcoal coding-style:

Coding style validation / enforcement can be performed with composer phpcs. An auto-fixer is also available with composer phpcbf.

Credits

License

Charcoal is licensed under the MIT license. See LICENSE for details.

About

Charcoal Contrib with reusable code to quickly create editable content using charcoal-attachments

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published