Class: SiteController

Inherits:
ApplicationController show all
Includes:
TrustyCms::Pagination::Controller
Defined in:
app/controllers/site_controller.rb

Instance Attribute Summary

Attributes inherited from ApplicationController

#cache, #pagination_parameters, #trusty_config

Class Method Summary collapse

Instance Method Summary collapse

Methods included from TrustyCms::Pagination::Controller

#configure_pagination, included, #pagination_parameters

Methods inherited from ApplicationController

#after_sign_in_path_for, #initialize, #template_name

Methods included from LoginSystem

included

Constructor Details

This class inherits a constructor from ApplicationController

Class Method Details

.cache_timeoutObject



12
13
14
# File 'app/controllers/site_controller.rb', line 12

def self.cache_timeout
  TrustyCms::PageResponseCacheDirector.cache_timeout
end

.cache_timeout=(val) ⇒ Object



8
9
10
# File 'app/controllers/site_controller.rb', line 8

def self.cache_timeout=(val)
  TrustyCms::PageResponseCacheDirector.cache_timeout = val
end

Instance Method Details

#cacheable_request?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'app/controllers/site_controller.rb', line 42

def cacheable_request?
  (request.head? || request.get?) && live?
end

#set_etag(val) ⇒ Object

hide_action :set_expiry



52
53
54
# File 'app/controllers/site_controller.rb', line 52

def set_etag(val)
  headers['ETag'] = val
end

#set_expiry(time, options = {}) ⇒ Object

hide_action :cacheable_request?



47
48
49
# File 'app/controllers/site_controller.rb', line 47

def set_expiry(time, options = {})
  expires_in time, options
end

#show_pageObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/controllers/site_controller.rb', line 16

def show_page
  url = params[:url]
  url = if Array === url
          url.join('/')
        else
          url.to_s
        end
  if @page = find_page(url)
    batch_page_status_refresh if url == '/' || url == ''
    # This is a bit of a hack to get Vanity URL pages working in another extension
    # In Rails 2, redirect_to halted execution, so process_page could be aliased and
    # a redirect could be used. This no longer works. There's a better fix for this,
    # but for now, anything that aliases process_page can return false if it's rendering
    # or redirecting on its own.
    return unless process_page(@page)

    set_cache_control
    @performed_render ||= true
    render layout: false
  else
    render template: 'site/not_found', status: 404, layout: false
  end
rescue Page::MissingRootPageError
  redirect_to welcome_path
end