Module: BitrixOnRails::IblockElementPropS::InstanceMethods
- Defined in:
- lib/bitrix_on_rails/iblock_element_prop_s.rb
Instance Method Summary collapse
- #m_prop_class ⇒ Object
- #serialize(value, type, user_type = nil) ⇒ Object
-
#unserialize(value, type, user_type = nil) ⇒ Object
Возможные значения для типов свойств: * S - строка * N - число * F - файл * L - список * E - привязка к элементам * G - привязка к группам.
Instance Method Details
#m_prop_class ⇒ Object
91 92 93 |
# File 'lib/bitrix_on_rails/iblock_element_prop_s.rb', line 91 def m_prop_class self.class.m_prop_class end |
#serialize(value, type, user_type = nil) ⇒ Object
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/bitrix_on_rails/iblock_element_prop_s.rb', line 124 def serialize(value, type, user_type = nil) case type when 'S' if user_type == 'HTML' ::PHP.serialize_encoded({'TEXT' => value, 'TYPE' => 'html'}) elsif user_type == 'DateTime' value.strftime('%Y-%m-%d %H:%M:%S') else # Это делается потому, что пользователь может хранить в строках не только # строковые значения. value.to_s end else value end end |
#unserialize(value, type, user_type = nil) ⇒ Object
Возможные значения для типов свойств:
-
S - строка
-
N - число
-
F - файл
-
L - список
-
E - привязка к элементам
-
G - привязка к группам.
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/bitrix_on_rails/iblock_element_prop_s.rb', line 102 def unserialize(value, type, user_type = nil) return nil unless value case type when 'N' value.is_a?(BigDecimal) ? value.to_i : value when 'S' if value.length > 5 && value[0..3] =~ /[a-z]:\d/ v = ::PHP.unserialize_encoded(value) v.is_a?(Hash) && v.include?('TEXT') ? v['TEXT'] : value elsif user_type == 'DateTime' Time.parse(value).in_time_zone else value end when 'L' # id из таблицы b_iblock_property_enum value else value end end |