x

Основні розділи

  1. LimeSurvey Cloud проти LimeSurvey CE
  2. Короткий посібник із початку роботи - LimeSurvey 3.0+
  3. Встановлення - LimeSurvey CE
  4. Як створити хороше опитування (посібник)
  5. Початок роботи
  6. Адміністрування LimeSurvey
  7. Опитування - вступ
  8. Налаштування опитування
  9. Меню опитування
  10. Структура опитування
  11. Питання - вступ
  12. Групи питань - вступ
  13. Опитування - керування
  14. Параметри панелі інструментів опитування
  15. Багатомовне опитування
  16. ExpressionScript Engine - Короткий посібник
  17. Некатегоризовані та розширені функції
  18. Загальні поширені запитання
  19. Усунення несправностей
  20. Обхідні рішення
  21. Ліцензія
  22. Журнал змін версій
  23. Плагіни
 Actions

Рефакторинг назв полів у LimeSurvey 7

From LimeSurvey Manual

Ця сторінка, можливо, перекладена машинним способом і може містити помилки. Показати англійський оригінал · Покращити цей переклад
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Рефакторинг назв полів і таблиць відповідей - LimeSurvey 7

LimeSurvey 7 впроваджує масштабне впорядкування способу створення таблиць відповідей і назв полів. Це оновлення осучаснює давні внутрішні угоди про іменування та створює передбачуваніший і надійніший фундамент для плагінів, інтеграцій і подальшої розробки.

Ця сторінка присвячена рефакторингу таблиць відповідей і назв полів.

Оскільки це структурна зміна, будь-які користувацькі розробки, що спираються на старі назви, можуть потребувати оновлення. Ця сторінка пояснює, що змінюється, як безпечно тестувати та як підготуватися до оновлення.

1. Що змінюється

1.1 Нові назви таблиць

Тепер LimeSurvey використовує єдину схему іменування таблиць, пов’язаних із відповідями.

Стара назва таблиці Нова назва таблиці
old_survey_<sid>_<timestamp> old_responses_<sid>_<timestamp>
old_survey_<sid>_timings_<timestamp> old_timings_<sid>_<timestamp>
survey_<sid> responses_<sid>
survey_<sid>_timings timings_<sid>

Усі SQL-запити, інтеграції або плагіни, що посилаються на ці таблиці, можуть потребувати змін.

1.2 Нова структура назв полів

Назви полів тепер мають передбачуваний і єдиний формат. Приклади:

  • Q<questionId> - кореневе питання
  • Q<questionId>_S<subquestionId> - підпитання
  • Q<questionId>_C<suffix> - коментар або інші поля
  • поля рейтингу: Q<questionId>_S<subquestionId> - елементи рейтингу тепер є підпитаннями (див. 1.3)
  • поля часу: на рівні питання або групи залежно від контексту

Це замінює застаріле іменування на основі sidXgidXqid.

1.3 Питання рейтингу

Питання рейтингу тепер працюють як інші типи питань на основі підпитань:

  • Елементи є підпитаннями. Елементи, які можна ранжувати, зберігаються як підпитання (тип R), а не як варіанти відповідей.
  • Назви полів використовують стандартний формат підпитання Q<questionId>_S<subquestionId> (одне поле на кожен ранжований елемент).
  • Відповіді зберігаються в одному JSON-стовпці Q<questionId> як впорядкований масив кодів елементів, де позиція = місце в рейтингу. Приклад: ["3", "1", "2"]

2. Чому це важливо

Це впорядкування стосується шаблонів іменування, які були формально визначені та використовувалися багато років, і приводить їх до єдиної та надійної структури, на якій можна будувати майбутнє.

Такі структурні зміни рідко бувають простими. Вони зачіпають частини системи, на які спираються численні плагіни та інтеграції, тому їх часто відкладають через складність. Проте узгодженість і передбачуваність важливі для довгострокової стабільності.

Займаючись цим зараз, ми робимо LimeSurvey чистішим і зручнішим для розширення, навіть якщо ця зміна здебільшого непомітна на поверхні.

3. Як переглянути нові назви полів

Щоб побачити, як будь-яка наявна назва поля відобразиться на нову структуру LS7, виконайте такі кроки:

  1. Створіть резервну копію бази даних, оскільки зміни незворотні, і якщо щось піде не так, знадобиться база даних до змін для відновлення
  2. Перейдіть на гілку develop-major:
    git checkout develop-major
    або клонуйте/завантажте проєкт одразу з цієї гілки за адресою https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Відкрийте сторінку адміністратора, щоб запустити скрипт змін
  4. Повідомте про будь-які помилки, що виникли під час виконання скрипту змін
  5. Вивчіть нові назви таблиць і полів
  6. Протестуйте свої плагіни/теми та виправте помилки, пов’язані з назвами таблиць і/або полів

Для перетворення старих назв полів на нові використовується така функція:

getFieldName($tableName, $fieldName, $questions, $sid, $gid, $cd)

Параметри

  • $tableName - початкова назва таблиці
  • $fieldName - початкова назва поля
  • $questions - кореневе питання та його підпитання
  • $sid - ID опитування
  • $gid - Ідентифікатор групи
  • $cd - чи застосовується логіка Дизайнера умов

Результат

Функція повертає нову назву поля LS7 для цього поля відповіді.

4. Як безпечно протестувати зміни

Наполегливо рекомендуємо протестувати LS7 у окремому середовищі, перш ніж оновлювати робочі системи.

4.1 Встановіть LS7 в окремому середовищі

Завантажте останню версію LS7 тут:

https://community.limesurvey.org

Встановіть її окремо від вашої поточної системи.

4.2 Імпортуйте наявні ресурси

Протестуйте з використанням:

  • опитувань
  • Теми опитування
  • Теми адміністратора
  • Теми питань
  • плагінів
  • користувацького JavaScript
  • будь-яких створених вами користувацьких інтеграцій

Перевірте, чи все працює належним чином з новими назвами таблиць і полів. Оновіть увесь код, який покладається на старі назви.

4.3 Як запустити міграцію?

Якщо ви хочете переглянути логіку міграції у своїй тестовій інсталяції:

  1. Створіть резервну копію бази даних.
  2. Встановіть версію LS7.
  3. Завантажте будь-яку сторінку адміністрування, щоб запустити скрипт міграції.
  4. Перегляньте зміни в назвах таблиць і полів.
  5. Протестуйте застосунок.
  6. За потреби оновіть власний код.

4.4 Повідомлення про проблеми

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

https://bugs.limesurvey.org

5. Що може потребувати оновлення

Можуть потребувати змін такі елементи:

  • плагіни, що посилаються на старі назви полів або таблиць
  • будь-які створені вами власні інтеграції
  • JavaScript, що використовує селектори на основі назв полів
  • власні теми, що взаємодіють з ідентифікаторами, пов’язаними з відповідями
  • інтеграції, що залежать від попередньої схеми іменування
  • імпорт старих експортованих файлів, таких як опитування, теми, теми питань тощо.

Це очікувано і є частиною процесу оновлення.

6. Підсумок

  • LS7 запроваджує повне впорядкування назв таблиць відповідей і полів
  • Це основна структурна зміна серверної частини в LS7
  • Наполегливо рекомендується тестування в окремому середовищі
  • getFieldName() допомагає здійснити попередній перегляд майбутніх назв
  • За потреби оновіть власний код
  • Повідомляйте про проблеми якомога раніше, щоб допомогти стабілізувати фінальний реліз