COMMUNITY ENGINE
================
Information at: www.missingmethod.com/community_engine
Requirements:
- RAILS VERSION 2.0.2
- The engines plugin for Rails 2.0: http://svn.rails-engines.org/engines/branches/rb_2.0/
- ImageMagick
- Several gems:
rmagick
hpricot
htmlentities
RedCloth
rake 0.8.1
haml
GETTING COMMUNITY ENGINE RUNNING
==================================================================
1. From the command line:
$ rails site_name (create a rails app if you don't have one already)
2. Install the engines plugin:
$ svn export http://svn.rails-engines.org/engines/branches/rb_2.0/ vendor/plugins/engines
3. Put community engine plugin into plugins directory (use one of the following methods):
# If you're not using git, and just want to add the source files:
# Download a tarball from https://github.com/bborn/communityengine/tarball/master
# and unpack it into /vendor/plugins/community_engine
# Using git, make a shallow clone of the community_engine repository:
$ git clone --depth 1 [email protected]:bborn/communityengine.git vendor/plugins/community_engine
# If you want to keep your community_engine plugin up to date using git, you'll have to add it as a submodule:
# http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#submodules
4. Create your database and modify your config/database.yml appropriately.
5. Delete public/index.html (if you haven't already)
6. Modify your environment.rb as indicated below:
## environment.rb should look something like this:
===============================================================
RAILS_GEM_VERSION = '2.0.2' unless defined? RAILS_GEM_VERSION
require File.join(File.dirname(__FILE__), 'boot')
require File.join(File.dirname(__FILE__), '../vendor/plugins/engines/boot')
Rails::Initializer.run do |config|
#resource_hacks required here to ensure routes like /:login_slug work
config.plugins = [:engines, :community_engine, :white_list, :all]
config.plugin_paths += ["#{RAILS_ROOT}/vendor/plugins/community_engine/engine_plugins"]
... Your stuff here ...
end
# Include your application configuration below
require "#{RAILS_ROOT}/vendor/plugins/community_engine/engine_config/boot.rb"
7. Modify each environment file (development.rb, test.rb, and production.rb) as indicated below:
# development.rb, production.rb, and test.rb should include something like:
===============================================================
APP_URL = "http://localhost:3000" (or whatever your URL will be for that particular environment)
8. Modify your routes.rb as indicated below:
# Add this after any of your own existing routes, but before the default rails routes:
===============================================================
map.from_plugin :community_engine
# Install the default routes as the lowest priority.
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
9. Generate the community engine migrations:
$ script/generate plugin_migration
10. From the command line:
$ rake db:migrate
11. You may need to change these lines in application.rb (if you're not using cookie sessions):
# See ActionController::RequestForgeryProtection for details
# Uncomment the :secret if you're not using the cookie session store
protect_from_forgery # :secret => 'your_secret_string'
12. Run tests (remember, you must run "rake test" before you can run the community_engine tests):
$ rake test
$ rake community_engine:test
13. Start your server and check out your site!
$ mongrel_rails start
or
$ ./script/server
## OPTIONAL CONFIGURATION ##
To override the default configuration, create an application.yml file in RAILS_ROOT/config
===============================================================
The application configuration defined in this file overrides the one defined in /community_engine/engine_config/application.yml
This is where you can change commonly used configuration variables, like AppConfig.community_name, etc.
This YAML file will get converted into an OpenStruct, giving you things like AppConfig.community_name, AppConfig.support_email, etc.
## PHOTO UPLOADING ##
By default CommunityEngine uses the filesystem to store photos.
To use Amazon S3 as the backend for your file uploads, you'll need the aws-s3 gem installed, and you'll need to add a file called amazon_s3.yml to the application's root config directory (examples are in /community_engine/sample_files).
You'll need to change your configuration in your application.yml to tell CommunityEngine to use s3 as the photo backend.
Finally, you'll need an S3 account for S3 photo uploading.
## Create an s3.yml file in RAILS_ROOT/config (OPTIONAL) ##
===============================================================
CommunityEngine includes the s3.rake tasks for backing up your site to S3. If you plan on using these, you'll need to add a file in RAILS_ROOT/config/s3.yml. (Sample in sample_files/s3.yml)
## THEMES ##
To create a theme:
1. Add a 'themes' directory in RAILS_ROOT with the following structure:
/RAILS_ROOT
/themes
/your_theme_name
/views
/images
/stylesheets
/javascripts
2. Add 'theme: your_theme_name' to your application.yml (you'll have to restart your server after doing this)
3. Customize your theme. For example: you can create a /RAILS_ROOT/theme/your_theme_name/views/shared/_scripts_and_styles.html.haml to override the default one, and pull in your theme's styleshees.
To get at the stylesheets (or images, or javascripts) from your theme, just add /theme/ when referencing the resource, for example:
= stylesheet_link_tag 'theme/screen' # this will reference the screen.css stylesheet within the selected theme's stylesheets directory.
## Other notes ##
===============================================================
Any views you create in your app directory will override those in community_engine/app/views.
For example, you could create RAILS_ROOT/app/views/layouts/application.html.haml and have that include your own stylesheets, etc.
You can also override CommunityEngine's controllers by creating identically-named controllers in your applications app/controllers directory.
# Gotchas
1. I get errors running rake! Error: (wrong number of arguments (3 for 1)
- make sure you have the latest version of rake
# Todo
Latest version of Engines plugin doesn't work (unless you're on EdgeRails)
# Bug tracking is via Lighthouse: http://communityengine.lighthouseapp.com/projects/11808/home
#