class ProductsController < ApplicationController skip_before_filter :verify_authenticity_token, :only => [:generate_license, :download] before_filter :verify_api_token, :only => :generate_license before_filter(:only => [:show]){ |c| c.find_product("product_url", UrlDestination['product-detail']) } before_filter :init_objects, :only => [:show] caches_page :index, :show, :if => Proc.new { |c| c.params[:detail] != Settings.releases_code } def index @categories = ProductCategory.all_but_featured @all_categories = ProductCategory.find :all @testimonials = Testimonial.for_products_page end def show @special_menu_hl = true if @product.code == Settings.featured_product @release = @product.current_release @screenshots = @product.screenshots.featured # future? pro ajaxove taby #if params[:ajax] # render :text => @detail.html #end end def download params[:filename] = featured_product.setup_file.original_filename.split(".").first if params[:filename] == "swifttodolist7-beta12" @product = Product.find_by_file(params[:filename]) if @product DownloadLog.log(@product, request) if Rails.env.preproduction? || Rails.env.production? redirect_to "http://#{Settings.download_host}/#{@product.setup_file.path}" else send_file @product.setup_file.path, :type => 'application/binary' end else render_404 end end def detail render :text => @detail.html end def generate_license @license_key = BmtLicenseKey.new @license_key.generate! respond_to do |format| format.xml { render :xml => @license_key } end end private def verify_generate_license_token if !params[:t] || params[:t] != Settings.generate_license_token render :nothing => true end end def init_objects if params[:detail] case params[:detail] when "features" redirect_to(@product, :status => 301) when "thumbnails" redirect_to(Product['better-thumbnail-browser'], :status => 301) when Settings.documentation_code #redirect_to(product_page_url(@product, @product.product_pages.find_by_code("resources"))) redirect_to("/documentation/#{@product.code}/index.html") when Settings.class_reference_code redirect_to("/class-reference/#{@product.code}/index.html") when Settings.quick_start_guide_code redirect_to("/documentation/#{@product.code}/data/chapter-quickstart.html") when Settings.releases_code @since_release = @product.releases.find_by_version(params[:since]) if params[:since].present? @since_release = @product.current_release unless @since_release @releases = @product.releases.find_since(@since_release.version) else @detail = @product.product_pages.find_by_code(params[:detail]) render_404 unless @detail end else @detail = @product.default_page end @support_request = SupportRequest.new @support_request.support_request_origin = SupportRequestOrigin['product'] @support_request.product = @product end end