You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.3 KiB
94 lines
2.3 KiB
<?php namespace Sensory5\Shortcode;
|
|
|
|
use App;
|
|
use Str;
|
|
use Html;
|
|
use Event;
|
|
use System\Classes\PluginBase;
|
|
use Illuminate\Foundation\AliasLoader;
|
|
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\ServiceProvider');
|
|
|
|
// Register alias
|
|
$alias = AliasLoader::getInstance();
|
|
$alias->alias('Shortcode', '\Sensory5\Shortcode\Classes\Facade');
|
|
|
|
// Enable shortcodes on all pages if requested
|
|
if (Settings::get('enable_on_render', false))
|
|
{
|
|
Event::listen('cms.page.postprocess', function($controller, $url, $page, $dataHolder) {
|
|
|
|
// Only parse strings, so that we don't interrupt
|
|
// ajax responses that are in object or array form
|
|
if (is_string($dataHolder->content))
|
|
{
|
|
$dataHolder->content = \Shortcode::parse($dataHolder->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'
|
|
]
|
|
];
|
|
|
|
}
|
|
|
|
}
|