LimeSurvey 7 mezőnév-átalakítás
From LimeSurvey Manual
A mezőnevek és a kitöltések táblázatainak átalakítása - LimeSurvey 7
A LimeSurvey 7 jelentősen megtisztítja a kitöltések táblázatainak és a mezőneveknek a létrehozási módját. A frissítés korszerűsíti a régóta használt belső elnevezési szabályokat, és kiszámíthatóbb, stabilabb alapot teremt a bővítmények, az integrációk és a további fejlesztések számára.
Ez az oldal a kitöltések táblázatainak és a mezőneveknek az átalakításával foglalkozik.
Mivel ez szerkezeti változás, a réginevekre épülő egyedi megoldásokat esetleg frissíteni kell. Az oldal bemutatja, mi változik, hogyan lehet biztonságosan tesztelni, és hogyan készülhet fel a frissítésre.
1. Mi változik
1.1 Új táblanevek
A LimeSurvey mostantól egységes elnevezési rendszert használ a kitöltésekhez kapcsolódó táblákhoz.
| Régi táblanév | Új táblanév |
|---|---|
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>
|
Az ezekre a táblákra hivatkozó SQL-lekérdezéseket, integrációkat vagy bővítményeket esetleg módosítani kell.
1.2 Új mezőnév-szerkezet
A mezőnevek mostantól kiszámítható és egységes formátumot követnek. Példák:
Q<questionId>- gyökérkérdésQ<questionId>_S<subquestionId>- alkérdésekQ<questionId>_C<suffix>- megjegyzés vagy egyéb mezők- rangsorolási mezők:
Q<questionId>_S<subquestionId>- a rangsorolandó elemek mostantól alkérdések (lásd 1.3) - időtöltés mezők: kérdés- vagy csoportszintűek, a környezettől függően
Ez leváltja a régi, sidXgidXqid alapú elnevezést.
1.3 Rangsorolós kérdések
A rangsorolós kérdések mostantól a többi alkérdés-alapú kérdéstípushoz hasonlóan működnek:
- Az elemek alkérdések. A rangsorolható elemek alkérdésként (
Rtípus) tárolódnak, nem pedig válaszlehetőségként. - A mezőnevek a szokásos alkérdésformátumot használják:
Q<questionId>_S<subquestionId>(rangsorolt elemenként egy). - A kitöltések egyetlen JSON oszlopban tárolódnak:
Q<questionId>, az elemkódok rendezett tömbjeként, ahol a pozíció = a rangsorban elfoglalt hely. Példa:["3", "1", "2"]
2. Miért fontos ez
Ez a tisztítás olyan elnevezési mintákat érint, amelyeket évekig formálisan meghatározva használtak, és egységes, stabil szerkezetbe rendezi őket, amelyre a jövőben építeni lehet.
Az ilyen szerkezeti változások ritkán egyszerűek. A rendszernek olyan részeit érintik, amelyekre sok bővítmény és integráció támaszkodik, ezért bonyolultságuk miatt gyakran halogatják őket. Az egységesség és a kiszámíthatóság azonban fontos a hosszú távú stabilitáshoz.
Ha ezt most megoldjuk, a LimeSurvey letisztultabb és könnyebben bővíthető lesz, még ha a változás a felszínen többnyire láthatatlan is.
3. Az új mezőnevek előnézete
Ha meg szeretné nézni, hogy egy meglévő mezőnév hogyan képződik le az új LS7 szerkezetre, kövesse az alábbi lépéseket:
- Készítsen biztonsági mentést az adatbázisról, mert a változások nem visszafordíthatók, és ha valami félresikerül, hasznos lesz a módosítás előtti adatbázis a helyreállításhoz
- Váltson a develop-major ágra:
git checkout develop-major
vagy klónozza/töltse le a projektet közvetlenül erről az ágról: https://github.com/LimeSurvey/LimeSurvey/tree/develop-major - Töltsön be egy adminisztrációs oldalt a változtatási szkript elindításához
- Jelezze az esetleges hibákat, amelyeket a változtatási szkript futtatása közben tapasztal
- Tanulmányozza az új táblaneveket és mezőneveket
- Tesztelje a bővítményeit/sablonjait, és javítsa a táblanevekkel és/vagy mezőnevekkel kapcsolatos hibákat
A régi mezőnevek újakká alakítására a következő függvény szolgál:
getFieldName($tableName, $fieldName, $questions, $sid, $gid, $cd)
Paraméterek
- $tableName - az eredeti táblanév
- $fieldName - az eredeti mezőnév
- $questions - a gyökérkérdés és annak alkérdései
- $sid - kérdőív-azonosító
- $gid - csoportazonosító
- $cd - él-e a Feltételtervező logikája
Eredmény
A függvény az adott kitöltésmező új LS7 mezőnevét adja vissza.
4. A változások biztonságos tesztelése
Határozottan ajánlott az LS7-et külön erre a célra kialakított környezetben tesztelni, mielőtt az éles rendszereket frissíti.
4.1 Az LS7 telepítése külön környezetbe
Töltse le a legfrissebb LS7-et innen:
https://community.limesurvey.org
Telepítse a jelenlegi környezetétől függetlenül.
4.2 Meglévő elemek importálása
Tesztelje a következőkkel:
- kérdőívek
- Kérdőív-témák
- Üzemeltetői témák
- Kérdéstémák
- bővítmények
- egyéni JavaScript
- az Ön által készített egyéni integrációk
Ellenőrizze, hogy minden a várt módon működik-e az új tábla- és mezőnevekkel. Frissítse a régi elnevezésekre támaszkodó kódot.
4.3 Hogyan indítható el a migráció?
Ha ki szeretné próbálni a migrációs logikát a teszttelepítésén:
- Készítsen biztonsági mentést az adatbázisról.
- Telepítse az LS7 verziót.
- Töltsön be egy tetszőleges adminisztrációs oldalt a migrációs szkript futtatásához.
- Tekintse át a tábla- és mezőnév-változásokat.
- Tesztelje az alkalmazást.
- Szükség esetén frissítse az egyéni kódot.
4.4 Hibák jelentése
Köszönjük, hogy már most tesztel! Ha a központi rendszerben bármi szokatlant észlel, kérjük, jelezze, hogy minél előbb javíthassuk.
5. Mit kell esetleg frissíteni
A következők módosítást igényelhetnek:
- a régi mezőneveket vagy táblaneveket használó bővítmények
- az Ön által készített egyéni integrációk
- mezőnév alapú kijelölőket használó JavaScript
- a kitöltésekhez kapcsolódó azonosítókat használó egyéni témák
- a korábbi elnevezési sémától függő integrációk
- régi exportok importálása, például kérdőívek, témák, Kérdéstémák stb.
Ez várható, és a frissítési folyamat része.
6. Összegzés
- Az LS7 teljes körűen rendezi a kitöltések táblázata és a mezőnevek elnevezését
- Ez az LS7 elsődleges szerkezeti háttérváltozása
- Határozottan javasolt külön környezetben tesztelni
- A
getFieldName()segít az új elnevezés előnézetében - Szükség esetén frissítse az egyéni kódot
- Jelezze a hibákat minél korábban, hogy segítsen stabilizálni a végleges kiadást