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 Нова структура на имената на полетата

Именthough на полетата вече следват предвидим и последователен формат. Примери:

  • 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 - ID на групата
  • $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() помага да се прегледа бъдещото именуване
  • Актуализирайте персонализирания код, където е необходимо
  • Подавайте сигнали за проблеми рано, за да помогнете за стабилизирането на финалната версия