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.
|
|
# Shortcodes for October CMS
Adds the ability to use shortcodes within October CMS
### Add new shortcodes
Add the shortcode in the `boot` function of a plugin.
Then, use the provided facade to add new shortcodes in your own plugins:
\Shortcode::add('code', function(ShortcodeInterface $s) { $text = "<h2>Shortcode Name: {$s->getName()}</h2>"; $text .= "<p>Shortcode Parameter: {$s->getParameter('param', 'Not Found')}</p>"; $text .= "<p>Shortcode Content: {$s->getContent()}</p>"; return $text; });
The above registration would enable the following shortcode to be used:
[code param="Parameter Value"] Inside Content [/code]
### Use the shortcode within a page or blog post:
The usual shortcode syntax is supported via the [Thunderer\Shortcode](https://github.com/thunderer/Shortcode) project.
[code] [code argument="value"] [code novalue argument=simple other="complex value"] [code]content[/code] [code argument="value"]content[/code]
### Enable shortcodes on all pages
To enable shortcodes on all page rendering, go to **Shortcode Settings** in the admin settings panel and check "Enable Shortcodes on all page rendering".
### Using filters and functions
If you don't want to enable shortcodes on all page rendering, you can use the built-in filter or function.
To use the `shortcode` filter within a blog post or page, add the `shortcode` filter before any `raw` filtering.
<div class="cp-post-content">{{ post.content_html|shortcode|raw }}</div>
To use the `shortcode` function within a layout and against the October CMS `page` tag, change the `page` tag from a token to a function:
{% page %}
Becomes:
{{ shortcode(page()) }}
-- or --
{{ page()|shortcode }}
### Strip Shortcodes
You can strip shortcodes from text using the `Shortcode::strip` function. For example, when using with the `Sensory5\BlogExtension` plugin, you can strip shortcodes from the summary using the following code:
Event::listen('sensory5.blog.summary', function($content) { return Str::limit(Html::strip(\Shortcode::strip($content)), 600); });
|