
Security News
Scaling Socket from Zero to 10,000+ Organizations
Socket CEO Feross Aboukhadijeh shares lessons from scaling a developer security startup to 10,000+ organizations in this founder interview.
lwe-page_title_helper
Advanced tools
= Page title helper
Ever wondered if there was an easier and DRY-way to set your page titles (and/or headings). Backed by Rails (only tested on 2.3.x) and it's new I18n-class the solution is a simple helper method.
In your layout add this to your -section:
...
<title><%=h page_title %></title>
...
That's it. Now just add your translations, to the locales, in e.g. config/locales/en.yml:
en:
contacts:
index:
title: "Contacts"
When contacs/index.html.erb is rendered, the key :en, :contacts, :index, :title is looked up and printed, together with the applications basename, like: My cool app - Contacts. The format etc. is of course configurable, just head down to the options.
== Customize titles
Need a custom title, or need to fill in some placeholders? Just provide a block, in e.g. contacts/show.html.erb the requirement is to display the contacts name in the -tag as well as in the heading?
<h1><%=h page_title { @contact.name } %></h1>
A call to page_title will now return the contacts name, neat :) if for example the h1 does not match the +title+, then well, just do something like:
<% page_title { @contact.name + " (" + @contact.company.name + ")" } %>
<h1><%=h @contact.name %></h1>
Guess, that's it. Of course it's also possible to use +translate+ within the +page_title+ block, so to translate customzied titles, like:
# in config/locales/en.yml:
en:
dashboard:
index:
title: "Welcome back, {{name}}"
# in app/views/dashboard/index.html.erb:
<h1><%=h page_title { t '.title', :name => @user.first_name } %></h1>
Btw - a helpful rule-of-thumb: if +page_title+ is used with a +block+ a title is defined, if it's used without the current title is rendered.
== More fun with :format
The :format option is used to specify how a title is formatted, i.e. if the app name is prependor appended, or if it contains the account name etc. It uses a similar approach as paperclips path interpolations:
page_title :format => ':title / :app' # => "Contacts / My cool app"
Adding custom interpolations is as easy as defining a block, for example to access the current controller:
PageTitleHelper.interpolates :controller do |env|
env.controller.controller_name.humanize
end
page_title :format => ':title / :controller / :app' # => "Welcome back / Dashboard / My cool app"
To access just the title, without any magic app stuff interpolated or appended, use:
page_title { "untitled" }
page_title :format => false # => "untitled"
== All options - explained
If an option should be set globally it's possible to change the default options hash as follows:
PageTitleHelper.options[:format] = ':title / :app'
Note, currently it only makes sense to set :format and/or :default globally.
== Some (maybe useful) interpolations
The internationalized controller name, with fallback to just display the humanized name:
PageTitleHelper.interpolates :controller do |env|
I18n.t env.controller.controller_path.tr('/','.') + '.controller', :default => env.controller.controller_name.humanize
end
Note: Where should I put these, as well as the default options? I'd put them in a new file at config/initializers/page_title.rb or someting like that.
== Licence and copyright Copyright (c) 2009 Lukas Westermann (Zurich, Switzerland), released under the MIT license
FAQs
Unknown package
We found that lwe-page_title_helper demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh shares lessons from scaling a developer security startup to 10,000+ organizations in this founder interview.

Research
Socket Threat Research maps a rare inside look at OtterCookie’s npm-Vercel-GitHub chain, adding 197 malicious packages and evidence of North Korean operators.

Research
Socket researchers identified a malicious Chrome extension that manipulates Raydium swaps to inject an undisclosed SOL transfer, quietly routing fees to an attacker wallet.