Git Product home page Git Product logo

liquid_cms's Introduction

Liquid CMS

A context aware CMS Ruby on Rails engine that uses liquid templates.

If you’re using rails 2, use the 0.2.x series of this gem (tested with ruby 1.8.7). github.com/redlinesoftware/liquid_cms/tree/rails2

If you’re using rails 3, use the 0.3.x series of this gem (tested with ruby 1.9.2). github.com/redlinesoftware/liquid_cms

rubygems page

See the wiki page for additional documentation on usage and customizations… currently a work in progress.

Installation

Add the gem to your Gemfile:

gem 'liquid_cms', '~> 0.3.2'

Install the gem:

bundle install

Run the generator:

rails g liquid_cms:install

The generator adds an additional dependency to your application, so bundler should be run once more:

bundle install

Configuration

Configure the engine in config/initializers/cms/liquid_cms.rb:

If you wish to run the cms under multiple "contexts" (ie. a cms each for a company, business, customer, etc.) then you need to perform the following steps:

  * Set the *context_class* attribute to your apps context class:

    config.context_class = :Company

  * And then set the context object in the Cms::SetupController or any controller up the inheritance chain.

    Cms.set_context @company, self

Add any controller specific tasks and customize the logic in app/controllers/cms/setup_controller.rb

Run the migration:

rake db:migrate

If you later decide to use the engine under a context, you’ll have to re-run the migration.

Usage

Once the engine is configured, you can view the CMS at the /cms path in your browser.

Customization

All CMS templates and the layout can be overridden in the main application. Simply create the partial or template at the same path as the engine and your applications template will take priority.

In order to expose data in your application in the templates, liquid filters, drops, tags and blocks specific to your application can be added to the app/liquid folder. Knowledge of liquid templates and the liquid library is required to do this. Examples of custom filters, drops, tags and blocks can be found in the liquid_cms gem files or in additional documentation on this website or related forums.

A set of filters, drops and tags are provided in addition to the defaults provided by liquid. The documentation link accessible in the CMS provides additional details.

If you’re using paperclip images in any models and exposing them via to_liquid, you can add an addtional column to your table to optimize dimension lookup.

class Customer
  has_attached :photo

  def to_liquid
    photo.to_liquid
  end
end

change_table :customers do |t|
  t.text :cms_photo_dimensions # field name must be named after the paperclip name. ie. :cms_{paperclip name}_dimensions
end

Upgrading

To upgrade the liquid_cms engine once you’ve installed a newer gem, simply re-run the liquid_cms generator. If any differences are found in files, you’ll be prompted to overwrite or compare versions.

If you’re upgrading to the rails 3 version of the gem from the rails 2 version of the gem, it’s recommended that you run the generator with the previous CMS generated files removed from your app and then integrate any customizations back into the application.

Contribution

If you experience any issues with this CMS engine, please open a bug report. Contributions to improve this engine are extremely welcome. A 1.0 release will be made when the engine has a bit more polish on it.

liquid_cms's People

Contributors

akaspick avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.