Skip to content

Proposal: silverstripe-stride #10

@zanderwar

Description

@zanderwar

silverleague/silverstripe-stride

Why?

Occasionally you may be required to provide a client with a safe way to modify CSS, Javascript and/or .SS template files, but don't want to provide FTP access for example, this module would add a LeftAndMain interface which would scan the /themes/ directory and index the files within which can be then edited directly through the CMS.

The module would be fully permissive, that is if you only wanted to allow the end user to edit CSS, Javascript, and/or Templates etc you could do so via CMS permissions or even a YAML configuration.

Whats the name mean?

Stride is just a play on words and really is just Stripe and IDE conjoined

Details

This module will provide an interface for end-users to modify their theme-related files directly within the CMS

Functionality

  • Ace Editor Implementation into a CMS LeftAndMain subclass.
  • Permissions to Edit, View existing files and to Create new files
  • Create CSS files
  • Create Javascript files
  • Create SS template files
  • Indexing for template functionality. E.g. $ThemeEditorJS and $ThemeEditorCSS to pull in all requirements(?). New templates can just be added using the <% include File %> template tag that already exists, or maybe a custom Requirements backend that does this on-the-go
  • Create new CSS, JS and Template Files (.SS)
  • Ability to have multiple files open at once (some rather straight forward JS to accomplish this)
  • Capture Cmd + S / Ctrl + S and save
  • Warning for leaving the page with unsaved files
  • Flush on file save
  • Flush on "create template"
  • Blame History
  • Rollback Functionality

Suggestions

  • "Create New" from a predefined template (ie navigation menu etc)
    • We can populate this from a public repo using any number of means
    • Subclass detection of Page and offer where appropriate
  • Custom Ace Editor syntax highlighting for SS template files
  • Support for an existing community module that provides a Requirements backend for a PHP CSS pre-processor

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions