You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

37 lines
929 B

class SiteController < ApplicationController
before_action :set_locale
def index
@node = Node.roots.viewable.first
not_found and return unless @node
render(template: "site/#{@node.template}")
end
def page
@node = Node.find_by!("url->>'#{I18n.locale}' = ?", url_from_param)
not_found and return unless (@node and @node.viewable?)
# Redirect to first child if index?
redirect_to @node.children.viewable.ordered.first.url and return if @node.index? and @node.children.viewable.any?
# Link or render
# @node.href.present? ? redirect_to(@node.href) :
# render(template: "site/#{@node.template}")
render(template: "site/#{@node.template}")
end
private
def url_from_param
return '' unless params[:url]
# return File.join('', params[:url]) if I18n.default_locale == I18n.locale
File.join('', I18n.locale.to_s, params[:url])
end
end