silverstripe-australia/frontend-editing

A module that allows HTML fields to be edited via a frontend, in-place wysiwyg interface.

Installs: 404

Dependents: 0

Suggesters: 0

Stars: 21

Watchers: 4

Forks: 4

Open Issues: 6

Language:JavaScript

Type:silverstripe-module

1.0.0 2015-01-19 01:40 UTC

README

Maintainer Contact

Marcus Nyeholt

<marcus (at) silverstripe (dot) com (dot) au>

Requirements

SilverStripe 3.0

Documentation

SilverStripe 2.4 version still available in the ss24 branch

The frontend editing module adds the ability to edit HTML based content on the frontend of your website. Developers specify in their templates the fields they want to be able to edit, add an include for buttons to help with switching between edit and standard views, and that's all there is to it.

Add the following to your project's configuration.yml file

---
Name: frontend_config
---
SiteTree:
  extensions:
    - FrontendEditableExtension

```

In the templates for the page types you would like editable, add the 
following in place of raw output fields - for example, instead of `$Content`, 
use

$EditableField(Content)


As well as single fields of the current page, you can use it on 
other objects contained in a control block (so long as those
objects have the EditableExtension)

  • <% control Items %>
  • $EditableControl(Title) <% end_control %>
````

Also in your template, add the following at the top. It includes some controls for initiating the editor (if you want them). You can provide your own mechanism for launching the editor, but this is simpler :)

<% include FrontendEditingControls %>

NOTE after adding the above, when navigating to a page in 'Live' mode, if you have edit access to the page, hovering your mouse over the bottom right corner of the screen will display controls for launching the edit mode. In "Stage" view, these controls should appear immediately.

API

Defining new plugins for the editor

@TODO - for now, see nicedit-image-selector.js or nicedit-url-selector.js as examples.

Troubleshooting

  • Appending ?stage=Stage&startEditing=true to the current URL will open the editor immediately; if this does not happen, check your JS error console!