Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I finally found some time to propose you a more complete version of my shortcode support.
This middleware allows to configure shortcodes using a config file. A shortcode like "[exemple]" will call a function and replace it by a view.
This can be useful to allow users to easily insert advanced functionality when they are creating page on their website for example.
Configuration example :
return [
// This [contact] shortcode will be replaced by a view
'contact' => [
'view' => 'contact'
],
// This one will call Modules\Boats\Entities\Boat::prepareResult and display it's result in the "boat.result-content" view
'boats' => [
'view' => 'boat.result-content',
'callback' => [Modules\Boats\Entities\Boat::class, 'prepareResult']
],
'last-minute' => [
'view' => 'boat.result-content',
'callback' => [Modules\Boats\Entities\Boat::class, 'prepareOffers']
],
// In this example, a rendering function is called, so no view is needed
'sitemap' => [
'callback' => 'generateSitemap'
]
];
To be enabled, "asgard.page.config.php" needs to configured that way :
'middleware' => [ 'shortcode' => \Modules\Core\Http\Middleware\ShortcodeMiddleware::class ]