Module: Spree::NavigationHelper
- Defined in:
- app/helpers/spree/navigation_helper.rb
Instance Method Summary collapse
- #main_nav_image(image_path, title = '') ⇒ Object
- #should_render_internationalization_dropdown? ⇒ Boolean
- #spree_localized_link(item) ⇒ Object
- #spree_menu(location = 'header') ⇒ Object
- #spree_menu_cache_key(section = 'header') ⇒ Object
- #spree_nav_cache_key(section = 'header') ⇒ Object
- #spree_nav_link_tag(item, opts = {}, &block) ⇒ Object
- #spree_navigation_data ⇒ Object
Instance Method Details
#main_nav_image(image_path, title = '') ⇒ Object
44 45 46 47 48 49 50 51 52 53 |
# File 'app/helpers/spree/navigation_helper.rb', line 44 def main_nav_image(image_path, title = '') image_url = asset_path(asset_exists?(image_path) ? image_path : 'noimage/large.png') lazy_image( src: image_url, alt: title, width: 350, height: 234 ) end |
#should_render_internationalization_dropdown? ⇒ Boolean
79 80 81 82 |
# File 'app/helpers/spree/navigation_helper.rb', line 79 def should_render_internationalization_dropdown? (defined?(should_render_locale_dropdown?) && should_render_locale_dropdown?) || (defined?(should_render_currency_dropdown?) && should_render_currency_dropdown?) end |
#spree_localized_link(item) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'app/helpers/spree/navigation_helper.rb', line 63 def spree_localized_link(item) return if item.link.nil? output_locale = if locale_param "/#{I18n.locale}" end if ['Spree::Product', 'Spree::Taxon', 'Spree::CmsPage'].include?(item.linked_resource_type) output_locale.to_s + item.link elsif item.linked_resource_type == 'Home Page' "/#{locale_param}" else item.link end end |
#spree_menu(location = 'header') ⇒ Object
55 56 57 58 59 60 61 |
# File 'app/helpers/spree/navigation_helper.rb', line 55 def (location = 'header') method_name = "for_#{location}" if .respond_to?(method_name) && Spree::Menu::MENU_LOCATIONS_PARAMETERIZED.include?(location) .send(method_name, I18n.locale) || current_store.(location) end end |
#spree_menu_cache_key(section = 'header') ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'app/helpers/spree/navigation_helper.rb', line 34 def (section = 'header') keys = base_cache_key + [ current_store.cache_key_with_version, (section)&.cache_key_with_version, stores&.maximum(:updated_at), section ] Digest::MD5.hexdigest(keys.join('-')) end |
#spree_nav_cache_key(section = 'header') ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/helpers/spree/navigation_helper.rb', line 22 def spree_nav_cache_key(section = 'header') Spree::Deprecation.warn(" NavigationHelper#spree_nav_cache_key is deprecated and will be removed in Spree 5.0.\n Please migrate to the new navigation cms system.\n DEPRECATION\n\n @spree_nav_cache_key = begin\n keys = base_cache_key + [current_store, spree_navigation_data_cache_key, stores&.cache_key_with_version, section]\n Digest::MD5.hexdigest(keys.join('-'))\n end\nend\n", caller) |
#spree_nav_link_tag(item, opts = {}, &block) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'app/helpers/spree/navigation_helper.rb', line 84 def spree_nav_link_tag(item, opts = {}, &block) if item.new_window target = opts[:target] || '_blank' rel = opts[:rel] || 'noopener noreferrer' end active_class = if request && current_page?(spree_localized_link(item)) "active #{opts[:class]}" else opts[:class] end link_opts = { target: target, rel: rel, class: active_class, id: opts[:id], data: opts[:data], aria: opts[:aria] } if block_given? link_to spree_localized_link(item), link_opts, &block else link_to item.name, spree_localized_link(item), link_opts end end |
#spree_navigation_data ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/helpers/spree/navigation_helper.rb', line 5 def Spree::Deprecation.warn(" NavigationHelper#spree_navigation_data is deprecated and will be removed in Spree 5.0.\n Please migrate to the new navigation cms system.\n DEPRECATION\n\n @spree_navigation_data ||= SpreeStorefrontConfig.dig(I18n.locale,\n :navigation) || SpreeStorefrontConfig.dig(current_store.code,\n :navigation) || SpreeStorefrontConfig.dig(\n :default, :navigation\n ) || []\n# safeguard for older Spree installs that don't have spree_navigation initializer\n# or spree.yml file present\nrescue StandardError\n []\nend\n", caller) |