module BitrixOnRails::IblockElementPropS::InstanceMethods
Public Instance Methods
m_prop_class()
click to toggle source
# File lib/bitrix_on_rails/iblock_element_prop_s.rb, line 90 def m_prop_class self.class.m_prop_class end
serialize(value, type, user_type = nil)
click to toggle source
# File lib/bitrix_on_rails/iblock_element_prop_s.rb, line 123 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)
click to toggle source
Возможные значения для типов свойств:
-
S - строка
-
N - число
-
F - файл
-
L - список
-
E - привязка к элементам
-
G - привязка к группам.
# File lib/bitrix_on_rails/iblock_element_prop_s.rb, line 101 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