x

Pääluvut

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Pikaopas - LimeSurvey 3.0+
  3. Asennus - LimeSurvey CE
  4. Miten suunnitella hyvä kysely (opas)
  5. Aloitus
  6. LimeSurveyn hallinnointi
  7. Kyselyt - johdanto
  8. Kyselyn asetukset
  9. Kyselyn valikko
  10. Kyselyn rakenne
  11. Kysymykset - johdanto
  12. Kysymysryhmät - johdanto
  13. Kyselyt - hallinta
  14. Kyselyn työkalupalkin asetukset
  15. Monikielinen kysely
  16. ExpressionScript-moottori - Pikaopas
  17. Luokittelemattomat ja edistyneet ominaisuudet
  18. Yleiset usein kysytyt kysymykset
  19. Vianmääritys
  20. Kiertotavat
  21. Lisenssi
  22. Version muutoslogi
  23. Lisäosat
 Actions

LimeSurvey 7 -kenttänimien uudistus

From LimeSurvey Manual

Tämä sivu on saatettu kääntää konekäännöksenä, ja se voi sisältää virheitä. Näytä englanninkielinen alkuperäinen · Paranna tätä käännöstä
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Kenttänimien ja vastaustaulukoiden uudistus - LimeSurvey 7

LimeSurvey 7 tuo mukanaan mittavan siivouksen siihen, miten vastaustaulukot ja kenttänimet muodostetaan. Päivitys uudistaa pitkään käytössä olleita sisäisiä nimeämiskäytäntöjä ja luo ennustettavamman ja kestävämmän perustan lisäosille, integraatioille ja tulevalle kehitykselle.

Tällä sivulla keskitytään vastaustaulukoiden ja kenttänimien uudistukseen.

Koska kyseessä on rakenteellinen muutos, vanhoihin nimiin tukeutuvat omat toteutukset voivat vaatia päivityksiä. Tällä sivulla kerrotaan, mikä muuttuu, miten voit testata turvallisesti ja miten valmistaudut päivitykseen.

1. Mikä muuttuu

1.1 Uudet taulukoiden nimet

LimeSurvey käyttää nyt yhdenmukaista nimeämistapaa vastauksiin liittyville taulukoille.

Vanha taulukon nimi Uusi taulukon nimi
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>

Kaikki näihin taulukoihin viittaavat SQL-kyselyt, integraatiot tai lisäosat voivat vaatia muutoksia.

1.2 Uusi kenttänimien rakenne

Kenttänimet noudattavat nyt ennustettavaa ja yhdenmukaista muotoa. Esimerkkejä:

  • Q<questionId> - päätason kysymys
  • Q<questionId>_S<subquestionId> - alikysymykset
  • Q<questionId>_C<suffix> - kommentti- tai muut kentät
  • sijoituskentät: Q<questionId>_S<subquestionId> - sijoituskohteet ovat nyt alikysymyksiä (katso 1.3)
  • aikakentät: kysymystason tai ryhmätason kenttiä tilanteesta riippuen

Tämä korvaa vanhan sidXgidXqid-pohjaisen nimeämisen.

1.3 Sijoituskysymykset

Sijoituskysymykset toimivat nyt kuten muut alikysymyksiin perustuvat kysymystyypit:

  • Kohteet ovat alikysymyksiä. Sijoitettavat kohteet tallennetaan alikysymyksinä (tyyppi R), ei vastausvaihtoehtoina.
  • Kenttänimet noudattavat alikysymysten vakiomuotoa Q<questionId>_S<subquestionId> (yksi kutakin sijoitettua kohdetta kohden).
  • Vastaukset tallennetaan yhteen JSON-sarakkeeseen Q<questionId> järjestettynä taulukkona kohteiden koodeista, jossa sijainti = sijoitus. Esimerkki: ["3", "1", "2"]

2. Miksi tällä on merkitystä

Tämä siivous koskee nimeämiskäytäntöjä, jotka määriteltiin virallisesti ja olivat käytössä monta vuotta, ja tuo ne yhdenmukaiseen ja kestävään rakenteeseen, jonka varaan voimme rakentaa tulevaisuudessa.

Tällaiset rakenteelliset muutokset ovat harvoin yksinkertaisia. Ne koskettavat järjestelmän osia, joihin monet lisäosat ja integraatiot tukeutuvat, minkä vuoksi ne jäävät usein toteuttamatta monimutkaisuutensa takia. Johdonmukaisuus ja ennustettavuus ovat kuitenkin tärkeitä pitkän aikavälin vakauden kannalta.

Kun tartumme asiaan nyt, LimeSurvey on siistimpi ja helpompi laajentaa, vaikka muutos onkin pinnalta katsoen enimmäkseen näkymätön.

3. Uusien kenttänimien esikatselu

Näet, miten mikä tahansa olemassa oleva kenttänimi vastaa uutta LS7-rakennetta, seuraavasti:

  1. Tee tietokannasta varmuuskopio, sillä muutokset eivät ole peruttavissa, ja jos jokin menee pieleen, on hyödyllistä palauttaa tietokanta ennen muutosta olleeseen tilaan.
  2. Siirry develop-major-haaraan:
    git checkout develop-major
    tai kloonaa/lataa projekti suoraan tästä haarasta osoitteesta https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Lataa jokin ylläpitosivu käynnistääksesi muutoskomentosarjan.
  4. Ilmoita mahdolliset virheet, joita muutoskomentosarjan suorituksen aikana ilmenee.
  5. Tutustu uusiin taulukoiden ja kenttien nimiin.
  6. Testaa lisäosasi ja teemasi ja korjaa taulukoiden ja/tai kenttien nimiin liittyvät virheet.

Vanhojen kenttänimien muuntamiseen uusiksi kenttänimiksi käytetään seuraavaa funktiota:

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

Parametrit

  • $tableName - alkuperäinen taulukon nimi
  • $fieldName - alkuperäinen kenttänimi
  • $questions - päätason kysymys ja sen alikysymykset
  • $sid - Kysely ID
  • $gid - Ryhmän tunniste
  • $cd - sovelletaanko Ehtojen suunnittelu -logiikkaa

Tulos

Funktio palauttaa kyseisen vastauskentän uuden LS7-kenttänimen.

4. Muutosten turvallinen testaaminen

LS7:ää on erittäin suositeltavaa testata erillisessä ympäristössä ennen tuotantojärjestelmien päivittämistä.

4.1 Asenna LS7 erilliseen ympäristöön

Lataa uusin LS7 osoitteesta:

https://community.limesurvey.org

Asenna se erillään nykyisestä asennuksestasi.

4.2 Tuo olemassa olevat aineistosi

Testaa seuraavilla:

  • kyselyt
  • Kyselyn teemat
  • Ylläpitoteemat
  • Kysymyksen teemat
  • lisäosat
  • mukautettu JavaScript
  • kaikki itse rakentamasi mukautetut integraatiot

Tarkista, toimiiko kaikki odotetusti uusilla taulukoiden ja kenttien nimillä. Päivitä kaikki koodi, joka perustuu vanhoihin nimiin.

4.3 Miten migraatio käynnistetään?

Jos haluat esikatsella migraatiologiikkaa testiasennuksessasi:

  1. Varmuuskopioi tietokantasi.
  2. Asenna LS7-versio.
  3. Lataa mikä tahansa hallintasivu suorittaaksesi migraatioskriptin.
  4. Tarkista taulukoiden ja kenttien nimien muutokset.
  5. Testaa sovellus.
  6. Päivitä mukautettu koodi tarvittaessa.

4.4 Ilmoita ongelmista

Kiitos, että testaat tätä jo varhaisessa vaiheessa. Jos huomaat ytimessä jotain outoa, ilmoita siitä, jotta voimme korjata asian mahdollisimman pian.

https://bugs.limesurvey.org

5. Mitkä asiat voivat vaatia päivityksiä

Seuraaviin voi tarvita muutoksia:

  • lisäosat, jotka viittaavat vanhoihin kenttien nimiin tai taulukoiden nimiin
  • kaikki itse rakentamasi mukautetut integraatiot
  • JavaScript, joka käyttää kenttien nimiin perustuvia valitsimia
  • mukautetut teemat, jotka käyttävät vastauksiin liittyviä tunnisteita
  • integraatiot, jotka riippuvat aiemmasta nimeämistavasta
  • vanhojen vientitiedostojen, kuten kyselyiden, teemojen, kysymysteemojen jne., tuonti

Tämä on odotettua ja kuuluu päivitysprosessiin.

6. Yhteenveto

  • LS7 uudistaa vastaustaulukoiden ja kenttien nimeämisen kokonaan
  • Tämä on LS7:n tärkein rakenteellinen taustajärjestelmän muutos
  • Testaaminen erillisessä ympäristössä on erittäin suositeltavaa
  • getFieldName() auttaa esikatselemaan tulevaa nimeämistä
  • Päivitä mukautettu koodi tarvittaessa
  • Ilmoita ongelmista ajoissa, jotta lopullinen julkaisu saadaan vakaaksi