diff --git a/app/controllers/application.rb b/app/controllers/application.rb index a4133850..9306b9c3 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -2,7 +2,7 @@ # Likewise will all the methods added be available for all controllers. class ApplicationController < ActionController::Base - before_filter :connect_to_model, :setup_url_generator, :set_content_type_header + before_filter :connect_to_model, :setup_url_generator, :set_content_type_header, :set_robots_metatag after_filter :remember_location, :teardown_url_generator observer :page_observer @@ -152,6 +152,14 @@ class ApplicationController < ActionController::Base end end + def set_robots_metatag + if controller_name == 'wiki' and %w(show published).include? action_name + @robots_metatag_value = 'index,follow' + else + @robots_metatag_value = 'noindex,nofollow' + end + end + def setup_url_generator PageRenderer.setup_url_generator(UrlGenerator.new(self)) end diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index cbb0fb3c..d2bec178 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -195,12 +195,13 @@ class WikiController < ApplicationController end def published - if @web.published? - page = wiki.read_page(@web_name, @page_name || 'HomePage') - @renderer = PageRenderer.new(page.revisions.last) - else - redirect_home - end + render_text("Published version of web '#{@web_name}' is not available", 404) and return if not @web.published? + + page_name = @page_name || 'HomePage' + page = wiki.read_page(@web_name, page_name) + render_text("Page '#{page_name}' not found", 404) and return unless page + + @renderer = PageRenderer.new(page.revisions.last) end def revision diff --git a/app/views/layouts/default.rhtml b/app/views/layouts/default.rhtml index eb1472aa..fb5e550e 100644 --- a/app/views/layouts/default.rhtml +++ b/app/views/layouts/default.rhtml @@ -14,7 +14,8 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - + +