Skip to content
DEPRECATED, do not use it.
Ruby CSS
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
app
db/migrate
doc/template
generators
lib
locales
public
tasks
test
LGPL-LICENSE
README.rdoc
Rakefile
init.rb
install.rb
routes.rb
uninstall.rb

README.rdoc

Content Management System plugin

CMSplugin is to Rails in Content Management like Rails is to Ruby in Web Development.

Rails     = Ruby  + Web Development
CMSplugin = Rails + Content Management

CMSplugin provides your Rails application with a “CMS framework”. That means authentication, authorization, roles, permissions, categories, tags, etc… but from a very flexible scope.

CMSplugin follows the SIOC ontology model, sioc-project.org/ontology

Project page: rubyforge.org/projects/cmsplugin

Documentation: cmsplugin.rubyforge.org/

Architecture

You can add this functionality to any of your ActiveRecord models:

Basic

ActiveRecord::Resource

a model that have, at least, CRUD operations and can be imported/exported in different formats.

ActiveRecord::Content

a Resource that belongs to a Container.

ActiveRecord::Container

a model that have many Contents.

ActiveRecord::Agent

a model with authentication, authorization and potencial to perform actions over Resources.

ActiveRecord::Stage

a model that defines an Authorization framework for Agents.

Complements

ActiveRecord::CategoriesDomain

a model which instances define Ontology domains

ActiveRecord::Categorizable

a model that can be classified in any Category

ActiveRecord::Taggable

a model that can be tagged

ActiveRecord::Logoable

a model with Logo

ActiveRecord::Sortable

a model with a sortable list

Features

  • Authentication: Login/Password, OpenID, Central Authentication Service (CAS), CookieToken

  • Authorization: Roles and Permissions

  • Activation: Email validation, Password reset

  • Atom feeds, RFC 4287

  • AtomPub protocol, RFC 5023

  • Taxonomies: Categories, Categories Domains

  • Folksonomies: Tags, Taggable models

  • Logos for models

  • Sortable lists for models

  • Integration with exception_notification plugin

Requirements

  • Rails 2.2.2

  • RubyGems:

    • ruby-openid

    • atom-tools

    • hpricot

    • mislav-will_paginate

    • atd-calendar_date_select

  • Rails Plugins:

    • engines

    • attachment_fu

Installation

Plugins

You need Rails Engines first:

script/plugin install git://github.com/atd/engines.git

see vendor/plugins/engines/README to finish the instalation (don't forget to modify config/environment.rb)

To install CMSplugin, run:

script/plugin install git://github.com/atd/cmsplugin.git

Install exception_notification plugin if you want to receive debug emails

script/plugin install git://github.com/rails/exception_notification.git

Gems

Run rake gems:install to install the required gems

CMS

Generate the CMS infraestructure:

script/generate cms

And generate and run the migration:

script/generate plugin_migration

Now you can generate Agents and Contents.

Generators

Agents

An Agent has the capability to post Contents to Containers. An User is the example of Agent

script/generate agent Model

Contents

A Content is a piece of information suitable to be posted to some Container by some Agent

script/generate content Model attributes

Example

Blog

Create personal blogs with a pair of commands:

script/generate agent User
script/generate content Article body:text

Users now can entry their own Articles

You can add AtomPub support for Articles creation. You must implement atom_parser method in Article model:

def self.atom_parser(data)
  entry = Atom::Entry.new(data)

  { :body => entry.content.xml.to_s }
end

TODO

  • Agents authentication support: OAuth

  • Microformats

  • RDF: FOAF + SIOC

Copyright © 2008-2009 Antonio Tapiador, released under the LGPL license

Something went wrong with that request. Please try again.