<?php namespace Sensory5\Shortcode; use App; use Str; use Html; use Event; use System\Classes\PluginBase; use Illuminate\Foundation\AliasLoader; use Thunder\Shortcode\Shortcode\ShortcodeInterface; use Sensory5\Shortcode\Models\Settings; /** * Shortcode Plugin Information File */ class Plugin extends PluginBase { /** * Returns information about this plugin. * * @return array */ public function pluginDetails() { return [ 'name' => 'Shortcode', 'description' => 'Shortcode integration for OctoberCMS.', 'author' => 'Sensory 5', 'icon' => 'icon-code' ]; } /** * Register service provider, Twig extensions, and alias facade. */ public function boot() { // Service provider App::register('\Sensory5\Shortcode\Classes\ShortcodeServiceProvider'); // Register alias $alias = AliasLoader::getInstance(); $alias->alias('Shortcode', '\Sensory5\Shortcode\Classes\ShortcodeFacade'); // Enable shortcodes on all pages if requested if (Settings::get('enable_on_render', false)) { Event::listen('cms.page.render', function($controller, $content) { return \Shortcode::parse($content); }); } } /** * Register twig filters */ public function registerMarkupTags() { return [ 'filters' => [ 'shortcode' => ['\Shortcode', 'parse'] ], 'functions' => ['shortcode' => ['\Shortcode', 'parse'] ] ]; } /** * Register backend settings */ public function registerSettings() { return [ 'settings' => [ 'label' => 'Shortcode Settings', 'description' => 'Manage shortcode settings', 'category' => 'Shortcodes', 'icon' => 'icon-code', 'class' => 'Sensory5\Shortcode\Models\Settings', 'order' => 600, 'keywords' => 'shortcode shortcodes' ] ]; } }