Laravel-Shortcodes
![Software License][ico-license]
![Coverage Status][ico-scrutinizer]
![Total Downloads][ico-downloads]
, (*1)
WordPress like shortcodes for Laravel 5.x based on webwizo/laravel-shortcodes see:https://github.com/webwizo/laravel-shortcodes, (*2)
[b class="bold"]Bold text.[/b]
[tabs]
[tab]Tab 1[/tab]
[tab]Tab 2[/tab]
[/tabs]
[user id="1" display="name"]
Install
Via Composer, (*3)
``` bash
$ composer require "uzwebline/laravel_shortcodes:1.0.*", (*4)
After updating composer, add the ServiceProvider to the providers array in `config/app.php`
## Usage
```php
Uzwebline\Shortcodes\ShortcodesServiceProvider::class,
You can use the facade for shorter code. Add this to your aliases:, (*5)
'Shortcode' => Uzwebline\Shortcodes\Facades\Shortcode::class,
The class is bound to the ioC as shortcode
, (*6)
$shortcode = app('shortcode');
Usage
withShortcodes()
To enable the view compiling features:, (*7)
return view('view')->withShortcodes();
This will enable shortcode rendering for that view only., (*8)
Enable through class
Shortcode::enable();
Disable through class
Shortcode::disable();
Disabling some views from shortcode compiling
With the config set to true, you can disable the compiling per view., (*9)
return view('view')->withoutShortcodes();
Default compiling
To use default compiling:, (*10)
Shortcode::compile($contents);
Strip shortcodes from rendered view.
return view('view')->withStripShortcodes();
Strip shortcode through class
Shortcode::strip($contents);
Registering new shortcodes
Create a new ServiceProvider where you can register all the shortcodes., (*11)
``` bash
php artisan make:provider ShortcodesServiceProvider, (*12)
After defining shortcodes, add the ServiceProvider to the providers array in `config/app.php`
## Usage
```php
App\Providers\ShortcodesServiceProvider::class,
Callback
Shortcodes can be registered within ShortcodesServiceProvider with a callback:, (*13)
php artisan make:provider ShortcodesServiceProvider
ShortcodesServiceProvider.php Class File, (*14)
<?php namespace App\Providers;
use App\Shortcodes\BoldShortcode;
use Illuminate\Support\ServiceProvider;
use Shortcode;
class ShortcodesServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
Shortcode::register('b', BoldShortcode::class);
Shortcode::register('i', 'App\Shortcodes\ItalicShortcode@custom');
}
}
Default class for BoldShortcode
You can store each shortcode within their class app/Shortcodes/BoldShortcode.php
, (*15)
namespace App\Shortcodes;
class BoldShortcode {
public function register($shortcode, $content, $compiler, $name, $viewData)
{
return sprintf('<strong class="%s">%s</strong>', $shortcode->class, $content);
}
}
Class with custom method
You can store each shortcode within their class app/Shortcodes/ItalicShortcode.php
, (*16)
namespace App\Shortcodes;
class ItalicShortcode {
public function custom($shortcode, $content, $compiler, $name, $viewData)
{
return sprintf('<i class="%s">%s</i>', $shortcode->class, $content);
}
}
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)
, (*17)
class BoldShortcode {
public function register($shortcode, $content, $compiler, $name, $viewData)
{
return '<strong '. $shortcode->get('class', 'default') .'>' . $content . '</strong>';
}
}
Change log
Please see CHANGELOG for more information what has changed recently., (*18)
Contributing
Please see CONTRIBUTING and CONDUCT for details., (*19)
Security
If you discover any security related issues, please email umidjonsmail@gmail.com instead of using the issue tracker., (*20)
Credits
License
The MIT License (MIT). Please see License File for more information., (*21)