Refinery CMS engine to manage copywriting, application wide or per pages with i18n.
Ruby HTML CSS
Failed to load latest commit information.
app Fix stylesheet in admin phrases index view Feb 23, 2016
bin Add bin envs Oct 20, 2015
config Add locale FR [ci skip] Mar 9, 2015
db use short index name for all adapters Dec 7, 2013
lib Update engine for refinerycms 3.0.0 Jun 30, 2015
spec Fix typo in spec Oct 20, 2015
.gitignore add dummy app folder to gitignore Apr 20, 2012
.travis.yml Update travis config Feb 23, 2016
Gemfile Update Gemfile Feb 23, 2016
Rakefile
TODO.md
readme.md Removed extraneous closing brace in readme. Jan 28, 2013
refinerycms-copywriting.gemspec Update engine for refinerycms 3.0.0 Jun 30, 2015

readme.md

Copywriting engine for Refinery CMS

Build Status

How do you manage your string in RefineryCMS?

Extended copywriting management: extract all your strings and leave no human word behind + i18n.

Do like this

<%= copywriting('phone number', { :scope => 'header', :default => '1-800-888-5555' }) %>

Or using block

<%= copywriting('slogan', { :scope => 'header' }) do %>
  Insert a slogan here
<% end %>

Just give it a name anyway

<%= copywriting('note1') %>

When it get more complex, avoid redundant options hash with options block

<% copywriting_options({ :scope => 'header', :phrase_type => 'wysiwyg' }) do %>
  ...
  <%= copywriting('contact information').html_safe do %>
    ...
  <% end %>
  ...
  <%= copywriting('phone number', { :phrase_type => 'string', :default => '1-800-888-5555' }) %>
  ...
<% end %>

Then edit the copywriting from the backend:

screenshot

Okay, but now, what if you want to have a string that change on every page, like a slogan?

Pass the @page object in the options hash:

<%= copywriting('slogan', { :scope => 'header', :page => @page }) do %>
  Insert a slogan here
<% end %>

screenshot

Install

# Gemfile
gem 'refinerycms-copywriting'
bundle
rails generate refinery:copywriting
rake db:migrate

Pull request?

Yes.

Helper method

copywriting('name', options) { ... optional block ... }

{
  :default => 'string...',        # if no block is given
  :page => @page,                 # the string will be scoped to the page, if no page_id option is provided
  :page_id => 1                   # using integer instead of page object
  :phrase_type => "wysiwyg"       # default is "text". Sets the type of field this is when editing. "string" gives you a single line text field. "text" gives you a multiline textarea. "wysiwyg" gives you the default Refinery visual editor.
}

copywriting_options(options) { ... use copywriting helper with default options hash ... }