Skip to content

locomotivemtl/charcoal-contrib-embed

Repository files navigation

Charcoal Embed

License Latest Stable Version Code Quality Coverage Status Build Status

A Charcoal service provider embed property.

Table of Contents

Installation

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

$ composer require locomotivemtl/charcoal-contrib-embed

Dependencies

Required

Service Provider

The following services are provided with the use of locomotivemtl/charcoal-contrib-embed

Services

  • embed/repository instance of Embed\EmbedRepository
    • Charcoal\Embed\Mixin\EmbedRepositoryTrait provided for ease of use.

Configuration

Include the embed module in the projects's config file. This will provide everything needed for locomotivemtl/charcoal-contrib-embed to work properly. No need for metadata/views/action/routes path etc.

{
    "modules": {
       "charcoal/embed/embed": {}
    }
}

You can provide additional configurations in the project's config file like so :

{
    "embed_config": {
        "ttl": 3600,
        "format": "array",
        "table": "embed_cache"
    }
}

This is the actual default config.

Usage

The Embed Contrib provides a custom Property type : "embed". When using it, the property will fetch embed data from media providers and store them in a third table.

{
    "video": {
        "type": "embed",
        "l10n": true,
        "label": {
            "en": "Video",
            "fr": "Video"
        },
        "notes": "Full video url. ex.: https://www.youtube.com/watch?v=_VIDEO_ID"
    }
}

To load the embed data from database, use EmbedRepository service method

$this->embedRepository()
     ->embedData('https://youtube.com/someid');

Dependency injection :

use EmbedRepositoryTrait;

/**
 * Inject dependencies from a DI Container.
 *
 * @param  Container $container A dependencies container instance.
 * @return void
 */
protected function setDependencies(Container $container)
{
    parent::setDependencies($container);
    $this->setEmbedRepository($container['embed/repository']);
}

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-embed 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

Provides an embed property for charcoal

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages