atd / station
- Source
- Commits
- Network (4)
- Issues (1)
- Downloads (8)
- Wiki (1)
- Graphs
-
Tag:
0.1-cmsplugin-last
| name | age | message | |
|---|---|---|---|
| |
LGPL-LICENSE | Mon Jan 28 08:46:44 -0800 2008 | |
| |
README.rdoc | ||
| |
Rakefile | ||
| |
app/ | ||
| |
db/ | ||
| |
doc/ | Mon Feb 02 03:19:42 -0800 2009 | |
| |
generators/ | ||
| |
init.rb | ||
| |
install.rb | ||
| |
lib/ | ||
| |
locales/ | ||
| |
public/ | ||
| |
routes.rb | ||
| |
tasks/ | ||
| |
test/ | Mon Jan 28 08:46:44 -0800 2008 | |
| |
uninstall.rb | Mon Jan 28 08:46:44 -0800 2008 |
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

