= Ckeditor CKEditor is a ready-for-use HTML text editor designed to simplify web content creation. It's a WYSIWYG editor that brings common word processor features directly to your web pages. Enhance your website experience with our community maintained editor. http://ckeditor.com/ == Features * Ckeditor version 4.0.1 (full) * Rails 3.2 integration * Files browser * HTML5 files uploader * Hooks for formtastic and simple_form forms generators == Installation For basic usage just include ckeditor gem: gem "ckeditor" For files uploading support you need generage models for file storage. Currently supported next backends: * ActiveRecord (paperclip, carrierwave, dragonfly) * Mongoid (paperclip, carrierwave, dragonfly) === How generate models for store uploading files ==== ActiveRecord + paperclip For active_record orm is used paperclip gem (it's by default). gem "paperclip" rails generate ckeditor:install --orm=active_record --backend=paperclip ==== ActiveRecord + carrierwave gem "carrierwave" gem "mini_magick" rails generate ckeditor:install --orm=active_record --backend=carrierwave ==== Mongoid + paperclip gem 'mongoid-paperclip', :require => 'mongoid_paperclip' rails generate ckeditor:install --orm=mongoid --backend=paperclip ==== Mongoid + carrierwave gem "carrierwave-mongoid", :require => 'carrierwave/mongoid' gem "mini_magick" rails generate ckeditor:install --orm=mongoid --backend=carrierwave All ckeditor models will be generated into app/models/ckeditor folder. Autoload ckeditor models folder (application.rb): config.autoload_paths += %W(#{config.root}/app/models/ckeditor) Mount engine in your routes (config/routes.rb): mount Ckeditor::Engine => "/ckeditor" == Usage Include ckeditor javascripts rails 3.2 (application.js): //= require ckeditor/init Form helpers: <%= form_for @page do |form| -%> ... <%= form.cktext_area :notes, :class => "someclass", :ckeditor => {:language => "uk"} %> ... <%= form.cktext_area :content, :value => "Default value", :id => "sometext" %> ... <%= cktext_area :page, :info, :ckeditor => {:uiColor => "#AADC6E", :toolbar => "mini"} %> ... <% end -%> All ckeditor 4.0 options here http://docs.ckeditor.com/#!/api/CKEDITOR.config In order to configure the ckeditor default options, create files: app/assets/javascripts/ckeditor/config.js app/assets/javascripts/ckeditor/contents.css === AJAX jQuery sample: === Formtastic integration <%= form.input :content, :as => :ckeditor %> <%= form.input :content, :as => :ckeditor, :input_html => { :ckeditor => { :height => 400 } } %> === SimpleForm integration <%= form.input :content, :as => :ckeditor, :input_html => { :ckeditor => {:toolbar => 'Full'} } %> === CanCan integration To use cancan with Ckeditor, add this to an initializer. # in config/initializers/ckeditor.rb Ckeditor.setup do |config| config.authorize_with :cancan end At this point, all authorization will fail and no one will be able to access the filebrowser pages. To grant access, add this to Ability#initialize # Always performed can :access, :ckeditor # needed to access Ckeditor filebrowser # Performed checks for actions: can [:read, :create, :destroy], Ckeditor::Picture can [:read, :create, :destroy], Ckeditor::AttachmentFile == I18n en: ckeditor: page_title: "CKEditor Files Manager" confirm_delete: "Delete file?" buttons: cancel: "Cancel" upload: "Upload" delete: "Delete" == Tests rake test rake test CKEDITOR_ORM=mongoid rake test CKEDITOR_BACKEND=carrierwave rake test:controllers rake test:generators rake test:integration rake test:models This project rocks and uses MIT-LICENSE.