Muck Invites¶ ↑
Make it easy to let users invite other users.
Setup¶ ↑
Add the gem to your Gemfile:
gem 'muck-invites'
Initializer¶ ↑
# Create an initializer to configure settings:
MuckInvites.configure do |config| config.use_gravatar_in_photo_list = true # The invite list can include photos from gravatar. config.create_activities_when_invited_joins = true # Add an entry to the inviter's activity when the invited joins. config.email_inviters_when_invited_joins = true # Send out an email to the inviter when the invited person joins. end
Javascript and CSS¶ ↑
Be sure to include muck.js:
<%= javascript_include_tag %w{ muck.js } %>
You can include muck-invites.css or copy and paste the styles and change them as desired:
<%= stylesheet_link_tag 'muck-invites' -%>
Include a link to initialize the invite process. You might want to do this in a lightbox.
The simple version that simply asks for an email and password:
<%= link_to 'Invite Your Friends', new_invite_path, :class => 'invite_box' %>
The better method that uses oauth to talk to email services instead of asking for a password:
<%= link_to 'Invite Friends', compose_invites_path, :class => 'invite_box iframe' %>
The ‘invite_box’ class will result in the invite showing up in a popup. Remove that class if you want to customize the link to do something else. By default the popup will use the ‘popup’ layout from muck-engine.
Oauth¶ ↑
The invite system can use oauth where available to acquire contacts. To enable this functionality install the muck-auth gem:
gem 'muck-auth'
See the muck-auth gem for more information - github.com/tatemae/muck-auth
Inviter model¶ ↑
Add ‘include MuckInvites::Models::MuckInviter’ to the class that you wish to have do the inviting. This is commonly the user model, but might also be another model - for example Event.
class User < ActiveRecord::Base acts_as_authentic do |c| c.crypto_provider = Authlogic::CryptoProviders::BCrypt end include MuckUsers::Models::MuckUser include MuckInvites::Models::MuckInviter end
or
class Event < ActiveRecord::Base include MuckInvites::Models::MuckInviter end
Other models¶ ↑
These models are required for the invite system to function and must be named as specified. Addition functionality can be added to each model as needed.
Create an Invitee model:
class Invitee < ActiveRecord::Base include MuckInvites::Models::MuckInvitee end
Create an Invite model:
class Invite < ActiveRecord::Base include MuckInvites::Models::MuckInvite end
Copyright © 2009-2010 Tatemae.com, released under the MIT license