One of the great features of RainLab Static Pages plugin is the Snippets
feature. It allows the developer to hand over management of complex items, such as forms, maps, widgets, etc to the client. For more information on what a Snippet is, please see https://github.com/rainlab/pages-plugin#snippets.
This plugin simply extends the ability to re-use these snippets from any richeditor
by providing an additional dropdown to the Froala Richeditor with a list of available snippets (supports partial and component based snippets). It also provides a twig filter to allow the parsing of implemented snippets. Example usage:
{{ content | parseSnippets }}
For documentation regarding creating snippets, please see https://github.com/rainlab/pages-plugin#snippets-created-from-partials
Features
- Allows Snippets of code to be added from any RichEditor
- Doesn't require any additional configuration
- Provides Twig filter to easily parse Snippets
- PHP and Twig sections work as expected inside Snippets
- Works with component and partial based Snippets
Contributors
- Tough Developer: creator of the original version
- inetis
The button will automatically appear in the Richeditor backend, no further customization is required here. You will only need to apply the Twig filter to the variables you would like to parse (see below).
Example usage on generic variable
{{ content | parseSnippets }}
Example usage for RainLab Pages Syntax Fields
Option 1 (offset to variable)
{variable type="richeditor" tab="Content" name="text" label="Text"}{/variable} {{ text | parseSnippets }}
Option 2 (wrap in filter)
{% filter parseSnippets %} {richeditor tab="Content" name="text" label="Text"}{/richeditor} {% endfilter %}
Example usage for Rainlab Pages Content Blocks
{% filter parseSnippets %} {% content 'company-details.htm' %} {% endfilter %}
Note this method is useful if you are including a third party component that will output richeditors but you don't want to override its partial.
For example if you are using a richeditor with Rainlab.Blog, you may want to include the component as follow in your CMS page:
{% filter parseSnippets %} {% component 'blogPost' %} {% endfilter %}
Example usage in fields.yaml
If you do not set toolbarButtons
you will not need to add snippets
to the list. Please see example below when customization is required.
html_content: type: richeditor toolbarButtons: bold|italic|snippets size: huge
Pass extra parameters
If needed, you can pass extra parameters to your snippets from your theme like this:
{{ text | parseSnippets({context: 'foo'}) }}
{% filter parseSnippets({context: 'foo'}) %} {richeditor name="text" label="Text"}{/richeditor} {% endfilter %}
You will then be able to access context
as if it was a component property using $this->property('context')
.
Contributors
- Tough Developer: creator of the original version
- inetis
- All Contributors
-
Pavlos Sideris
Found the plugin useful on 25 Oct, 2018
Awesome! Wanted the ability to add snippets to blog post content, and this does it perfectly...
To anyone looking for help on how to change the editor on Blog Posts then read this - https://octobercms.inetis.ch/wysiwyg-editor-rainlab-blog
-
Lucas Palomba
Found the plugin useful on 11 Oct, 2018
I have added this plugin to my website cause i had an issue with snippets into my repeater fields for Static pages and it works perfectly
Thanks for this work :)
-
2.1.8 |
Avoid storing an empty array in cache when no snippets are passed Apr 11, 2022 |
---|---|
2.1.7 |
Fix compatibility with OC2 when used in plugins other than RainLab.Pages Jan 10, 2022 |
2.1.6 |
Add composer.json to allow installation on OC2 - Thanks @rubenvanerk for pointing this out Jul 30, 2021 |
2.1.5 |
Fix error "Trying to access array offset on value of type null" that could happen under unknown circumstances Dec 17, 2020 |
2.1.4 |
Fix duplicate stuff on RainLab.Pages (open page twice, add snippet twice, etc.) Sep 08, 2020 |
2.1.3 |
Fix broken error message when a snippet is not found - Thanks to Tobias Kündig May 11, 2020 |
2.1.2 |
Refactor AJAX handlers caching Apr 20, 2020 |
2.1.1 |
Fix AJAX handlers on component-based snippets Mar 23, 2020 |
2.1.0 |
Add support for component-based snippets with AJAX handlers Nov 06, 2018 |
2.0.0 |
Fixes for October >= 420 Jul 18, 2018 |
1.0.3 |
Fixes error 'onInspectableGetOptions not found' on more complex snippets Jul 18, 2018 |
1.0.2 |
Defines Rainlab.Pages as a plugin dependency - Thanks to Alexander Guth Jul 18, 2018 |
1.0.1 |
First version of Richeditor Snippets Jul 18, 2018 |