Module: C80Catoffers::Inner::CssHelper

Defined in:
app/helpers/c80_catoffers/inner/css_helper.rb

Instance Method Summary collapse

Instance Method Details

#_calc_css_for_list_iconed(thumb_size) ⇒ Object

Спец-метод узкого назначения - формирует css стиль, фиксирует габариты ссылки-конейнера, в которую помещена картинка. Также, предполагает, что СЛЕВА/СПРАВА от картинки располагается блок типа title, и для таких блоков фиксируется ВЫСОТА (подгоняется под ВЫСОТУ картинки)



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'app/helpers/c80_catoffers/inner/css_helper.rb', line 70

def _calc_css_for_list_iconed(thumb_size)

  # свойства модуля
  p = Prop.first

  # css_for_a: ,
  # css_for_title:

  # чтобы вёрстка не прыгала - зафиксируем размер картинки
  w = p.send("#{thumb_size}_width") #.thumb_sm_width
  h = p.send("#{thumb_size}_height") #.thumb_sm_height

  res = {
      :a_lazy_wrapper => "width:#{w}px;height:#{h}px",
      :title => "height:#{h}px;line-height:#{h}px"
  }

  # Rails.logger.debug "[TRACE] <_calc_css_for_list_iconed> #{res}"
  res

end

#_calc_css_for_list_widget(thumb_size) ⇒ Object

Спец-метод узкого назначения - формирует css стиль, фиксирует габариты ссылки-конейнера, в которую помещена картинка и ШИРИНУ соседних элементов списка.



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'app/helpers/c80_catoffers/inner/css_helper.rb', line 96

def _calc_css_for_list_widget(thumb_size)

  # свойства модуля
  p = Prop.first

  # css_for_a: ,
  # css_for_title:

  # чтобы вёрстка не прыгала - зафиксируем размер картинки
  w = p.send("#{thumb_size}_width") #.thumb_sm_width
  h = p.send("#{thumb_size}_height") #.thumb_sm_height

  res = {
      :a_lazy_wrapper => "width:#{w}px;height:#{h}px",
      :title => "width:#{w}px"
  }

  # Rails.logger.debug "[TRACE] <_calc_css_for_list_iconed> #{res}"
  res

end

#_get_widgeted_offers_with_slotsObject

Помогает методам этого хелпер-модуля: выдаёт слотованный список предложений, которые необходимо вывести в виджете.



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
62
# File 'app/helpers/c80_catoffers/inner/css_helper.rb', line 34

def _get_widgeted_offers_with_slots

  # свойства модуля
  p = Prop.first

  # результат соберём тут список категорий, которые надо вывести в виджете
  list = Offer.all_widgeted.def_order

  # сколько должно быть позиций?
  positions_count = p.positions_count
  # Rails.logger.debug "[TRACE] positions_count: #{positions_count}; list.count: #{list.count}"

  # если всего в списке меньше, чем надо - добьём список слотами
  if list.count < positions_count
    delta = positions_count - list.count
    delta.times do |i|
      # Rails.logger.debug "[TRACE] Offer.new"
      list << Offer.new({
                            title: "Свободное место №#{i}",
                            price: 'Цену уточняйте в админке',
                            short_desc: 'Описание не указано'
                        }
      )
    end
  end

  list

end

#_proccess_list_of_props(list_of_props, offer) ⇒ Object

Помогает методу render_offers_widget тем, что содержит код, перебирающий имена свойств из list_of_props, находит значения в элементе offer, и возвращает релевантный список значений



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/helpers/c80_catoffers/inner/css_helper.rb', line 11

def _proccess_list_of_props(list_of_props, offer)

  # результат соберём тут
  list_of_values = []

  # переберём имена свойств, подберём для каждого значение
  list_of_props.each_with_index do |prop_name, index|
    prop_value = offer.try(prop_name)
    unless prop_value.present?
      prop_value = 'Значение не определено'
    end
    list_of_values << prop_value
  end

  list_of_values

end