shopping_cart_plugin.rb
1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class ShoppingCartPlugin < Noosfero::Plugin
def self.plugin_name
"Shopping Basket"
end
def self.plugin_description
_("A shopping basket feature for enterprises")
end
def stylesheet?
true
end
def js_files
'cart.js'
end
def body_beginning
lambda do
extend ShoppingCartPlugin::CartHelper
render 'public/cart' unless cart_minimized
end
end
def control_panel_buttons
buttons = []
if context.profile.enterprise?
buttons << { :title => _('Shopping basket'), :icon => 'shopping-cart-icon', :url => {:controller => 'shopping_cart_plugin_myprofile', :action => 'edit'} }
end
buttons
end
def add_to_cart_button item, options = {}
profile = item.profile
return unless profile.shopping_cart_enabled and item.available
lambda do
extend ShoppingCartPlugin::CartHelper
add_to_cart_button item, options
end
end
alias :product_info_extras :add_to_cart_button
alias :catalog_item_extras :add_to_cart_button
alias :asset_product_extras :add_to_cart_button
# We now think that it's not a good idea to have the basket in the same time.
#def catalog_autocomplete_item_extras product
# add_to_cart_button product, with_text: false
#end
def catalog_search_extras_begin
return unless profile.shopping_cart_enabled
lambda do
extend ShoppingCartPlugin::CartHelper
content_tag 'li', render('public/cart'), :class => 'catalog-cart'
end
end
end