Add root menu snippet
This commit is contained in:
1 parent
32fdf99833
commit
62602940ed
6 files changed
+23
-9
No files matched your search
@@ -26,6 +26,19 @@ class Admin::SnippetsController < ApplicationController
|
||||
def new
|
||||
@snippet = Snippet.new
|
||||
|
||||
if params[:menu]
|
||||
@snippet.name = "#{params[:menu]}_nav"
|
||||
lis = Page.find(:all, :conditions => { :parent_page_id => params[:menu], :is_published => true }, :order => "position" ).map do |page|
|
||||
if page.external_link.blank?
|
||||
"<li><a href='/#{page.name}'>#{page.name}</a></li>\n"
|
||||
else
|
||||
"<li><a href='#{page.external_link}'>#{page.name}</a></li>\n"
|
||||
end
|
||||
end
|
||||
|
||||
@snippet.content = "<ul>\n#{lis}</ul>"
|
||||
end
|
||||
|
||||
respond_to do |format|
|
||||
format.html # new.html.erb
|
||||
format.xml { render :xml => @snippets }
|
||||
|
||||
@@ -3,15 +3,15 @@ class PagesController < ApplicationController
|
||||
Liquid::Template.register_filter(SnippetFilter)
|
||||
|
||||
def show
|
||||
@page = Page.find_by_name(params[:page_name])
|
||||
@layout = @page.layout
|
||||
@page = Page.find(:first, :conditions => { :name => params[:page_name], :is_published => true })
|
||||
|
||||
if @page && @page.external_link
|
||||
redirect_to @page.external_link
|
||||
elsif @page
|
||||
@page_content = Liquid::Template.parse(@page.content).render
|
||||
@layout_content = (@page.layout)? @layout.content : "{{page_content}}"
|
||||
render :text => Liquid::Template.parse(@layout_content).render( 'page_content' => @page_content )
|
||||
@layout = @page.layout
|
||||
@page_content = Liquid::Template.parse(@page.content).render
|
||||
@layout_content = (@page.layout)? @layout.content : "{{page_content}}"
|
||||
render :text => Liquid::Template.parse(@layout_content).render( 'page_content' => @page_content )
|
||||
else
|
||||
render :text => '404 not found'
|
||||
end
|
||||
|
||||
Reference in new issue
Block a user