-
Notifications
You must be signed in to change notification settings - Fork 5
Kublog
Kublog is a mountable Engine that assumes you use the following tools for development:
- Rails 3.1
- ActiveRecord
Generate migrations and all the code you'll likely want to customize.
rails generate kublog:install
Run the migrations
rake db:migrate
Mount the engine on your routes
mount Kublog::Engine => "/blog(.:format)"
Include the author module under the model that will have access to create posts on the blog:
class User < ActiveRecord::Base
include Kublog::Author
end
Configure your blog's basic information on initializers/kublog.rb
Kublog.setup do |config|
config.blog_name = 'Example blog'
config.blog_description = 'Best blog ever'
config.default_url_options = {:host => 'www.exampleblog.com'}
end
Kublog uses I18n, the install generator will create the file locales/kublog/en.yml, make sure to add its content to your own en.yml file or add the following line on your application.rb also include the folders under locales:
config.i18n.load_path += Dir[File.join(Rails.root, 'config', 'locales', '**', '*.{rb,yml}')]
To get the most of Kublog you'll want to Integrate your Users, Add E-mail Notifications and Configure your Social Networks.
The install generator will create the file controllers/kublog/application_controller.
On this file you will see the definitions of two empty methods current_user and is_admin?. Since Kublog is an isolated mountable Engine, you will need to define this methods, even if you have them on your apps application_controller.
After you finish, it might will look something like this:
def current_user
@current_user ||= User.find(session[:user_id])
end
def is_admin?
@current_user.admin?
end
It's important to know that if you're using Devise, you won't need a current_user method. If the model you're using is named something other than user, you can call the controller access method inside of current_user.
I recommend you define a to_s method for your Author such as:
def to_s
"#{self.name} #{self.last_name}"
end
To add E-mail notifications, include the Kublog::Notifiable module into the user class that will be notified.
class User < ActiveRecord::Base
include Kublog::Notifiable
end
The E-mail from which they will receive the notification is configured in your kublog.rb initializer:
config.author_email "Kublog Test <[email protected]>"
You may also configure a block to specify that the user receives the notification from the author's E-mail:
config.author_email do |post|
post.user.email
end
Configuring Twitter is pretty easy, you might want to create a twitter app on https://dev.twitter.com/
You will need to feed Kublog:
- Consumer Key
- Consumer Secret
- Oauth Token
- Oauth Secret
config.twitter do |twitter|
twitter.consumer_key = 'your-consumer-key'
twitter.consumer_secret = 'your-consumer-secret'
twitter.oauth_token = 'your-oauth-token'
twitter.oauth_token_secret = 'your-consumer-secret'
end
Configuring Facebook Fan page posts is a little trickier, you will only need the access token for your Fan Page.
Find out how to get it here: https://github.com/innku/authorizefb
config.facebook_page_token = 'your-page-token'