diff --git a/app/controllers/public/catalog_controller.rb b/app/controllers/public/catalog_controller.rb index 5cde9e3..dd0929a 100644 --- a/app/controllers/public/catalog_controller.rb +++ b/app/controllers/public/catalog_controller.rb @@ -5,15 +5,14 @@ class CatalogController < PublicController before_filter :check_enterprise_and_environment def index - @category = params[:level] ? ProductCategory.find(params[:level]) : nil - @products = @profile.products.from_category(@category).paginate(:order => 'available desc, highlighted desc, name asc', :per_page => 9, :page => params[:page]) - @categories = ProductCategory.on_level(params[:level]) + extend CatalogHelper + catalog_load_index end protected def check_enterprise_and_environment - unless @profile.kind_of?(Enterprise) && !@profile.environment.enabled?('disable_products_for_enterprises') + unless profile.kind_of?(Enterprise) && !profile.environment.enabled?('disable_products_for_enterprises') redirect_to :controller => 'profile', :profile => profile.identifier, :action => 'index' end end diff --git a/app/helpers/catalog_helper.rb b/app/helpers/catalog_helper.rb index 99ef1b4..895295b 100644 --- a/app/helpers/catalog_helper.rb +++ b/app/helpers/catalog_helper.rb @@ -3,9 +3,18 @@ module CatalogHelper include DisplayHelper include ManageProductsHelper + def catalog_load_index options = {:page => params[:page], :show_categories => true} + if options[:show_categories] + @category = params[:level] ? ProductCategory.find(params[:level]) : nil + @categories = ProductCategory.on_level(params[:level]) + end + + @products = profile.products.from_category(@category).paginate(:order => 'available desc, highlighted desc, name asc', :per_page => 9, :page => options[:page]) + end + def breadcrumb(category) - start = link_to(_('Start'), {:action => 'index'}) - ancestors = category.ancestors.map { |c| link_to(c.name, {:action => 'index', :level => c.id}) }.reverse + start = link_to(_('Start'), {:controller => :catalog, :action => 'index'}) + ancestors = category.ancestors.map { |c| link_to(c.name, {:controller => :catalog, :action => 'index', :level => c.id}) }.reverse current_level = content_tag('strong', category.name) all_items = [start] + ancestors + [current_level] content_tag('div', all_items.join(' → '), :id => 'breadcrumb') @@ -15,7 +24,7 @@ module CatalogHelper count = profile.products.from_category(category).count name = truncate(category.name, :length => 22 - count.to_s.size) link_name = sub ? name : content_tag('strong', name) - link = link_to(link_name, {:action => 'index', :level => category.id}, :title => category.name) + link = link_to(link_name, {:controller => :catalog, :action => 'index', :level => category.id}, :title => category.name) content_tag('li', "#{link} (#{count})") if count > 0 end diff --git a/app/models/enterprise_homepage.rb b/app/models/enterprise_homepage.rb index 004922a..d623f8c 100644 --- a/app/models/enterprise_homepage.rb +++ b/app/models/enterprise_homepage.rb @@ -20,7 +20,8 @@ class EnterpriseHomepage < Article enterprise_homepage = self lambda do extend EnterpriseHomepageHelper - @products = profile.products.paginate(:order => 'id asc', :per_page => 9, :page => 1) + extend CatalogHelper + catalog_load_index :page => 1, :show_categories => false render :partial => 'content_viewer/enterprise_homepage', :object => enterprise_homepage end end diff --git a/app/views/catalog/index.rhtml b/app/views/catalog/index.rhtml index bdfec1c..ec11334 100644 --- a/app/views/catalog/index.rhtml +++ b/app/views/catalog/index.rhtml @@ -3,22 +3,24 @@

<%= _('Products/Services') %>

-<%= breadcrumb(@category) if params[:level] %> - - +<% end %> -