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:
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 %>
# Gemfile
gem 'refinerycms-copywriting'
bundle
rails generate refinery:copywriting
rake db:migrate
Yes.
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 ... }