Skip to content
A resourceful plugin providing lightweight content management functionality to Rails applications
Ruby
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
generators/sandstone
lib
tasks
MIT-LICENSE
README
Rakefile
TODO
init.rb
install.rb
uninstall.rb

README

Sandstone
=========

Introduction goes here.


Dependencies
============
You must be running acts_as_versioned and acts_as_tree to use Sandstone.

The generated tests also require the tester_xtreme plugin, which you can install from http://svn.extendviget.com/lab/trunk/plugins/tester_xtreme.

You do not need to use the RESTful Authentication plugin to use Sandstone, but it will help. At a mininum, you must define the methods +logged_in?+, +current_user+, and +access_denied+ in +ApplicationController+. 

+current_user+ must return an object that can match up with Sandstone's +editor+ object. +access_denied+ should handle redirection and messaging when a non-editor tried to visit an administrative page.


Models
======
Sandstone hooks into your application through a user model. If your users are actually represented by a model named User, you're in luck - all you have to do is add the following line to user.rb:

  has_one :editor
  
It's a little trickier if you've named the model something else (like Member). In that case, add this to your existing model:

  has_one :editor, :foreign_key => :user_id
  
And update editor.rb with the name of your model:

  belongs_to :user, :class_name => "PUT YOUR CLASS NAME HERE"

Whatever user model you use, it should respond to a request for +name+ - that's what the Sandstone admin interface displays for its editors. Note that this means you'll have to add a name method or column to your User model if you're running RESTful Authentication.

Controllers
===========
Add the following line to your ApplicationController:

  include SandstoneSystem
  
If you want to audit editor logins, you should add +Audit.log('login', editor)+ to the action that logs people in.


Routes
======
You must add the following routes (or similar ones) to your config/routes.rb file. Note that +map.sandstone '*path'+ is a catch-all route, so if you're relying on the standard Rails default route (+':controller/:action/:id'+) you may have to do some more work to get Sandstone running.

  map.workspace 'editor/home', :controller => 'editors', :action => 'show'
  map.resources :audits
  map.resources :editors
  map.resources :pages
  map.resources :page_templates
  map.resource  :preview
  map.resource  :sitemap
  map.sandstone '*path', :controller => 'pages', :action => 'show'


Example
=======

Example goes here.


Copyright (c) 2007 Ben Scofield, released under the MIT license
Something went wrong with that request. Please try again.