66 lines
1.3 KiB
Ruby
66 lines
1.3 KiB
Ruby
class PagesController < ApplicationController
|
|
|
|
before_filter :find_page, :except => [:new, :show, :create]
|
|
before_filter :find_body, :only => [:edit]
|
|
|
|
def new
|
|
@page = Page.new
|
|
@page.name=params[:name]
|
|
end
|
|
|
|
def edit
|
|
end
|
|
|
|
def show
|
|
if params[:id].to_i >0
|
|
@page = Page.find(params[:id] || Page.welcome)
|
|
else
|
|
id=Page.find_id(params[:id])
|
|
if id.nil?
|
|
redirect_to url_for(:path_only=>true,:controller=>"pages",:action=>"new", :name=>params[:id])
|
|
else
|
|
@page =Page.find(Page.find_id(params[:id]))
|
|
end
|
|
end
|
|
end
|
|
|
|
def create
|
|
@page = Page.new(params[:page])
|
|
if @page.save
|
|
flash[:notice] = "Successfully created page."
|
|
redirect_to @page
|
|
else
|
|
render :action => 'new'
|
|
end
|
|
end
|
|
|
|
def update
|
|
if @page.update_attributes(params[:page])
|
|
flash[:notice] = "Successfully updated page."
|
|
redirect_to @page
|
|
else
|
|
render :action => 'edit'
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
@page.destroy
|
|
flash[:notice] = "Successfully destroyed page."
|
|
end
|
|
|
|
def preview
|
|
render :text => @page.preview(params[:data])
|
|
end
|
|
|
|
private
|
|
|
|
def find_page
|
|
@page = Page.find(params[:id])
|
|
end
|
|
|
|
def find_body
|
|
@page.body = params[:page][:body] rescue @page.raw_content
|
|
end
|
|
|
|
end
|