120

Product support

Visit this product's website for support.

Categories

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

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

  • 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

  • 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.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