Download the PHP package restruct/silverstripe-shortcodable without Composer
On this page you can find all versions of the php package restruct/silverstripe-shortcodable. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download restruct/silverstripe-shortcodable
More information about restruct/silverstripe-shortcodable
Files in restruct/silverstripe-shortcodable
Package silverstripe-shortcodable
Short Description Provides a simple button to insert Shortcodes into the HTMLEditorField + an API for developers to define shortcodes
License BSD-3-Clause
Informations about the package silverstripe-shortcodable
Silverstripe shortcode module
Adds a button to HTMLEditorField for CMS users to insert Shortcodes in page content.
Shortcodes can optionally be represented in TinyMCE with a placeholder image.
This module is a partial-to-largely rewrite of sheadawson/silverstripe-shortcodable.
It depends on Silverstripe Simpler for some non-react UI functionalities (mainly the modal dialog).
Version Compatibility
| Branch | Module Version | Silverstripe | PHP |
|---|---|---|---|
main |
5.x |
^6.0 | ^8.2 |
ss4-5 |
4.x |
^4.0 || ^5.0 | ^7.4 || ^8.0 |
Note: composer.json is the source of truth for exact version constraints.
Configuration
Register DataObjects or classes as shortcodable via Yaml config:
Required methods on shortcodable objects/classes
Implement these methods on your shortcodable classes (may also be added via an Extension):
(Required) shortcode parser callback:
public static function parse_shortcode(...)
OR:
public function MyCustomParser(...) combined with:
private static $shortcode_callback = 'MyCustomParser'
Parser method arguments: (see shortcode documentation)
($attrs, $content=null, $parser=null, $shortcode, $info)
NOTE: the parser method gets called on a singleton object instance.
(So there's no $this->ID or $this->owner->ID etc.)
Optional:
private static $shortcode(optional, else short ClassName will be used as [ClassName])getShortcodeLabel()(optional nice description for in dropdown,singular_name()or elseClassName.Shortnamewill be used as fallback)getShortcodeFields()(optional, attribute-formfields for popup)getShortcodableRecords()(optional, if applied to DataObject)getShortcodePlaceholder($attributes)(optional)
Wrapping (optional):
In this module, $shortcodable_is_block and $disable_wrapper have been replaced with $shortcode_close_parent:
private static $shortcode_is_block(optional, set to true if your shortcode output is a block-type html element)
If you set $shortcode_close_parent to true, the parent node will be closed before your shortcode output and reopened after.
Eg <p>Some [shortcode] content</p> would become <p>Some </p>[shortcode]<p> content</p>;
Shortcode placeholder images
To display a nice image instead of the raw shortcode in the CMS editor, implement a getShortcodePlaceHolder method on your shortcodable object:
Status
- [x] TinyMCE button/plugin
- [x] Shortcode form in popup dialog
- [x] Custom/configurable shortcode independent of class name
- [x] Custom/configurable shortcode parser callback methods
- [x] Inserting new & editing existing shortcode (+undo)
- [x] Re-implement DataObjects as shortcodable (incl. getShortcodableRecords etc)
- [x] Re-implement placeholders
- [x] Check/re-implement(?) BOM fix and in ShortcodeController
- [x] Check/re-implement(?) P/DIV wrapper fix
- [ ] Check/restore functionality for Uploadfields to load existing value
- [ ] Check/implement(?) wrapping shortcodes
Refs:
All versions of silverstripe-shortcodable with dependencies
silverstripe/framework Version ~6
restruct/silverstripe-simpler Version ~1.0