Ideas for Extensions (and other feature requests)
I'd like to see this turn into a compendium of information about Radiant "features". Including those features that have been implemented, those that have been partially implemented and those that are just ideas.
Extension Authors: Rather than simply listing your extension here try to think of the broader "feature" that your extension provides. (Perhaps it's multiple features.) For each feature your extension implements, create a wiki page or add a link to information about your extension. There may be multiple extensions that implement a single feature, and we'd like to be able to browse-by-feature.
New to Radiant: Think Radiant should be able to do something but you don't know how to make it do that something? Look at the list for features that you think might help you implement your something. Add your 2 cents about how you would use (or even implement) a particular feature.
The goals of this page are:
- To provide a list of ideas for extensions for Extension developers
- To provide links to pages that discuss a particular feature in greater detail and offer links to existing implementations of that feature
- To provide a set of ideas for the Core Team to consider (both in supporting them directly via changes to the core, and in supporting Extension authors with appropriate hooks and API) To help decide whether something should be part of the core or should be provided as an extension.
Page Types
- FileNotFound?
- ...
Page Editors
- TinyMce?
- FckEditor?
- Textile
- Maruku
- ...
Per-Page Extensions
- PageAttachments? -- Ability to "attach" images on a per-page basis
- PageAttributes -- Page attributes are attributes you attach to a given page to define additional data
- CommentablePage? -- If a certain page were "commentable" public website users could add comment to it. (like to a blog post). What might the admin interface to this look like? How would you like to be able to define which pages are commentable?
- PageEditConflicts? -- How to resolve conflicts when 2 people edit the same page at the same time.
- Calendar Page -- a simple admin interface for adding calendar events and then a set of radius tags to be able to allow a page to display a calendar
- FlickrTags -- a set of radius tags to display all of the photosets for a specific user and a set of radius tags for the pictures of each photoset.
- ...
User Extensions
- UserRoles? (content editor, publisher)
- UserWorkflow?
- ...
Application Extensions
- AssetManager?
- PageVersioning? (history and diffs)
- AutomatedPublishing -- By adding effective and expiration date fields to pages it would be easy to automate the release and expiration of content. Pages falling outside of the publication window would not be displayed. This differs from How To Write Time-sensitive or Expiring Content in some significant ways.
- SiteEditioning? -- Beyond simply versioning page edits, the idea of Editions is that when you want to start adding a new content to your site, you mark the entire site as "current edition", and then create a new edition (with some desciptive title). Then all the work you do in creating and editing new pages applies to this new edition. (which can you preview at some URL, but isn't live yet) You should always be able to go back and make edits to the currently live edition while a new edition is under construction. When you are ready, you make this new edition the 'live' edition, and the current edition remains available (to the admin only) for historical purposes.
- SmartStatusTab? -- Tab in the admin area, which let's you display a list of pages based on their status (published, draft, reviewed, hidden) and has check boxes to quickly switch their status. Could have a drop down box on the top stating: Display pages with status: <drop-down-box>.
- PartialCaching? -- There a benefit to caching. Unfortunately, I have created a dynamic site that combines blocks of static content and embedded dynamic bits (via <r:ruby></r:ruby> or other custom tags). Presently, to display these dynamic bits caching has to be turned off. It would be useful if Radius tags (or at least the snippet tag) would accept a cache attribute so that flagged tags (<r:snippet name='dynamic_bit' cache='no' />) would be left on the cached page for delayed rendering. This would result in a hybrid of dynamic and static markup, giving us the best of both worlds.
- Podcasting -- Create different podcasts and upload different episodes to each podcasts which can then be served as a feed.
- ...
API
- ViewModularization? -- Ability when writing an extension to override only part of a particular piece of the admin interface, instead of having to override (and duplicate the code of) a whole view. (also known as the Facet branch) -- http://dev.radiantcms.org/radiant/browser/branches/facets/radiant/lib/radiant/admin_ui.rb
- PageEditors? -- Ability to design an extension following the model of a "Page Editor". Where your extension provides an alternative and/or enhanced page editing interface.
- PageEditorTabs? -- As an extension author, I'd like to be able to define my per-page extension in a single view, and then tell Radiant to include the contents of that view for all pages edits as an extra tab (next to the page parts tabs).
