pages_controller.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:2k
源码类别:

Ajax

开发平台:

Others

  1. require 'base64'
  2. class Admin::PagesController < Admin::BaseController
  3.   layout "administration", :except => 'show'
  4.   cache_sweeper :blog_sweeper
  5.   def index
  6.     @search = params[:search] ? params[:search] : {}
  7.     @pages = Page.search_paginate(@search, :page => params[:page], :per_page => this_blog.admin_display_elements)
  8.   end
  9.   def show
  10.     @page = Page.find(params[:id])
  11.   end
  12.   accents = { ['á','à','â','ä','ã','Ã','Ä','Â','À'] => 'a',
  13.     ['é','è','ê','ë','Ë','É','È','Ê'] => 'e',
  14.     ['í','ì','î','ï','I','Î','Ì'] => 'i',
  15.     ['ó','ò','ô','ö','õ','Õ','Ö','Ô','Ò'] => 'o',
  16.     ['œ'] => 'oe',
  17.     ['ß'] => 'ss',
  18.     ['ú','ù','û','ü','U','Û','Ù'] => 'u',
  19.     ['ç','Ç'] => 'c'
  20.   }
  21.   FROM, TO = accents.inject(['','']) { |o,(k,v)|
  22.     o[0] << k * '';
  23.     o[1] << v * k.size
  24.     o
  25.   }
  26.   def new
  27.     @macros = TextFilter.available_filters.select { |filter| TextFilterPlugin::Macro > filter }
  28.     @page = Page.new(params[:page])
  29.     @page.user_id = current_user.id
  30.     @page.text_filter ||= current_user.text_filter
  31.     if request.post? 
  32.       if @page.name.blank?
  33.         @page.name = @page.title.tr(FROM, TO).gsub(/<[^>]*>/, '').to_url 
  34.       end
  35.       @page.published_at = Time.now
  36.       if @page.save
  37.         flash[:notice] = _('Page was successfully created.')
  38.         redirect_to :action => 'index'
  39.       end
  40.     end
  41.   end
  42.   def edit
  43.     @macros = TextFilter.available_filters.select { |filter| TextFilterPlugin::Macro > filter }
  44.     @page = Page.find(params[:id])
  45.     @page.attributes = params[:page]
  46.     if request.post? and @page.save
  47.       flash[:notice] = _('Page was successfully updated.')
  48.       redirect_to :action => 'index'
  49.     end
  50.   end
  51.   def destroy
  52.     @page = Page.find(params[:id])
  53.     if request.post?
  54.       @page.destroy
  55.       redirect_to :action => 'index'
  56.     end
  57.   end
  58.   
  59.   def insert_editor
  60.     return unless params[:editor].to_s =~ /simple|visual/
  61.     current_user.editor = params[:editor].to_s
  62.     current_user.save!
  63.     
  64.     render :partial => "#{params[:editor].to_s}_editor"
  65.   end
  66.   
  67. end