brouwers / shortcodes
Wordpress like shortcodes for Laravel 4.2
Installs: 12 656
Dependents: 2
Suggesters: 0
Security: 0
Stars: 20
Watchers: 1
Forks: 4
Open Issues: 1
Requires
- php: >=5.4.0
Requires (Dev)
- mockery/mockery: ~0.9
- orchestra/testbench: ~2.2.0@dev
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-11-19 03:27:02 UTC
README
Wordpress like shortcodes for Laravel 4.2.
[b class="bold"]Bold text[/b] [tabs] [tab]Tab 1[/tab] [tab]Tab 2[/tab] [/tabs] [user id="1" display="name"]
If you are looking for BBcodes, see: https://github.com/patrickbrouwers/Laravel-BBcodes
#Installation
Require this package in your composer.json
and update composer.
"brouwers/shortcodes": "1.*"
After updating composer, add the ServiceProvider to the providers array in app/config/app.php
'Brouwers\Shortcodes\ShortcodesServiceProvider',
You can use the facade for shorter code. Add this to your aliases:
'Shortcode' => 'Brouwers\Shortcodes\Facades\Shortcode',
The class is bound to the ioC as shortcode
$shortcode = App::make('shortcode');
Usage
View compiling
By default shortcode compiling is set to false inside the config.
withShortcodes()
To enable the view compiling features:
return View::make('view')->withShortcodes();
This will enable shortcode rendering for that view only.
Config
Enabeling the shortcodes through config shortcodes::enabled
will enable shortcoding rendering for all views.
Enable through class
Shortcode::enable();
Disable through class
Shortcode::disable();
Disabeling some views from shortcode compiling
With the config set to true, you can disable the compiling per view.
return View::make('view')->withoutShortcodes();
Default compiling
To use default compiling:
Shortcode::compile($contents);
Registering new shortcodes
Inside a file or service provider you can register the shortcodes. (E.g. app/start/shortcodes.php
or App/Services/ShortcodeServiceProvider.php
)
Callback
Shortcodes can be registered like Laravel macro's with a callback:
Shortcode::register('b', function($shortcode, $content, $compiler, $name) { return '<strong class="'. $shortcode->class .'">' . $content . '</strong>'; });
Default class
class BoldShortcode { public function register($shortcode, $content, $compiler, $name) { return '<strong class="'. $shortcode->class .'">' . $content . '</strong>'; } } Shortcode::register('b', 'BoldShortcode');
Class with custom method
class BoldShortcode { public function custom($shortcode, $content, $compiler, $name) { return '<strong class="'. $shortcode->class .'">' . $content . '</strong>'; } } Shortcode::register('b', 'BoldShortcode@custom');
Register helpers
If you only want to show the html attribute when the attribute is provided in the shortcode, you can use $shortcode->get($attributeKey, $fallbackValue = null)
class BoldShortcode { public function register($shortcode, $content, $compiler, $name) { return '<strong '. $shortcode->get('class', 'default') .'>' . $content . '</strong>'; } }