Робота з додатковими властивостями

Реалізовано єдине сховище списку властивостей для інформаційних систем, інтернет-магазину, структури сайту і користувачів сайту з поділом зберігання значень в декількох таблицях. Всі властивості зберігаються в таблиці properties. розділи додаткових властивостей в таблиці property_dirs.

Значення додаткових властивостей зберігаються в 6 різних таблицях в залежності від типу властивості: property_value_datetimes, property_value_files, property_value_floats, property_value_ints, property_value_strings, property_value_texts.

linkedObjects

Для доступу до списку додаткових властивостей використовуються спеціальні моделі (ми називаємо їх linkedObject) з налаштованими зв'язками для таблиць властивостей, успадкованих від відповідних моделей. Наприклад, Shop_Item_Property_List_Model успадковано від Shop_Model.

linkedObjects властивостей груп інформаційної системи

linkedObjects властивостей елементів інформаційної системи

linkedObjects властивостей груп магазину

linkedObjects властивостей товарів магазину

linkedObjects замовлень магазину

linkedObjects структури сайту

linkedObjects користувачів сайту

Отримання списку додаткових властивостей через linkedObject

Отримання списку додаткових властивостей товарів. доступних групі магазину

Отримання списку розділів додаткових властивостей

Отримання об'єкта додаткового властивості

Отримання об'єкта додаткового властивості за його ідентифікатором (див. ORM)

Отримання значень додаткових властивостей

Так як кожне додаткове властивість може мати кілька значень, то в масиві значень може бути нуль, один або кілька значень.

Отримання масиву значень додаткового властивості за значенням властивості.

Залежно від типу додаткового властивості об'єкт значення може мати атрибути:

  • id - первинний ключ;
  • property_id - ідентифікатор властивості;
  • entity_id - ідентифікатор об'єкта, для якого вказано значення;
  • value - значення.

для властивостей типу файл:

  • id - первинний ключ;
  • property_id - ідентифікатор властивості;
  • entity_id - ідентифікатор об'єкта, для якого вказано значення;
  • file - ім'я файлу в файлової системі;
  • file_name - оригінальне ім'я файлу;
  • file_description - опис файлу;
  • file_small - ім'я файлу малого зображення в файлової системі;
  • file_small_name - оригінальне ім'я файлу малого зображення;
  • file_small_description - опис файлу малого зображення.

Отримання всіх значень властивостей об'єкта через getPropertyValues ​​()

Додатково моделі груп і елементів інформаційних систем, груп та товарів магазину, структури сайту і користувачів сайту мають метод getPropertyValues ​​(). повертає всі значення додаткових властивостей цього об'єкта.

Створення значення додаткового властивості

З використанням методу createNewValue () отримаємо об'єкт нового значення додаткового властивості, який залежить від типу додаткового властивості. Аргументом передається ідентифікатор об'єкта, для якого створюється значення.

Зміна або установка значення додаткового властивості, якщо значення не було

Вказівка ​​директорії розміщення для файлових властивостей

Додаткове властивість не знає про місце розміщення файлів, що вимагає вказівку таких директорій для значення властивості.

Приклад вказівки для структури сайту

для інформаційної групи

для інформаційного елемента

для групи магазину

Дозвіл властивості товару для групи магазину

В інтернет-магазині для кожної групи товарів вказуються властивості товарів, доступні товарів цієї групи. Включення властивості товарів $ oProperty для групи магазину $ oShop_Group:

Перенесення значень властивостей з однієї таблиці в іншу при зміні типу властивості

Значення властивостей зберігаються в таблицях, що залежать від виду властивості. У разі зміни типу властивості може знадобитися перенести значення з однієї таблиці в іншу. Розглянемо приклад зміни типу властивості з рядка (property_value_strings) на велике поле для (property_value_texts) для властивості номер 17. Змінивши тип властивості перенесемо значення властивості з таблиці рядків в таблицю текстів:

Перевіряємо наявність значень з новим типом, якщо все нормально перенеслося, то видаляємо значення в таблиці попереднього типу:

Чи не знайшли відповідь на своє питання в документації? Направте звернення в або онлайн чат.

Схожі статті