x

Capitoli principali

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Guida rapida - LimeSurvey 3.0+
  3. Installazione - LimeSurvey CE
  4. Come progettare un buon sondaggio (guida)
  5. Iniziare
  6. Amministrazione di LimeSurvey
  7. Sondaggi - introduzione
  8. Impostazioni del sondaggio
  9. Menù sondaggio
  10. Struttura del sondaggio
  11. Domande - introduzione
  12. Gruppi di domande - introduzione
  13. Sondaggi - gestione
  14. Opzioni della barra degli strumenti del sondaggio
  15. Sondaggio multilingue
  16. ExpressionScript Engine - Guida Rapida
  17. Funzionalità non categorizzate e avanzate
  18. Domande frequenti generali
  19. Risoluzione dei problemi
  20. Soluzioni alternative
  21. Licenza
  22. Registro delle modifiche alla versione
  23. Plugin - avanzati
 Actions

Refactoring dei nomi dei campi di LimeSurvey 7

From LimeSurvey Manual

Questa pagina potrebbe essere stata tradotta automaticamente e contenere errori. Mostra l'originale in inglese · Migliora questa traduzione
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refactoring dei nomi dei campi e delle tabelle delle risposte - LimeSurvey 7

LimeSurvey 7 introduce una importante revisione del modo in cui vengono generati le tabelle delle risposte e i nomi dei campi. Questo aggiornamento modernizza convenzioni di denominazione interne in uso da molto tempo e crea una base più prevedibile e solida per plugin, integrazioni e sviluppi futuri.

Questa pagina è dedicata al refactoring della tabella delle risposte e dei nomi dei campi.

Trattandosi di una modifica strutturale, qualsiasi personalizzazione che si basi sulla vecchia denominazione potrebbe richiedere aggiornamenti. Questa pagina spiega cosa cambia, come eseguire i test in sicurezza e come prepararsi all'aggiornamento.

1. Cosa cambia

1.1 Nuovi nomi delle tabelle

LimeSurvey ora utilizza uno schema di denominazione coerente per le tabelle relative alle risposte.

Vecchio nome della tabella Nuovo nome della tabella
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>

Qualsiasi query SQL, integrazione o plugin che faccia riferimento a queste tabelle potrebbe richiedere modifiche.

1.2 Nuova struttura dei nomi dei campi

I nomi dei campi ora seguono un formato prevedibile e coerente. Esempi:

  • Q<questionId> - domanda principale
  • Q<questionId>_S<subquestionId> - sottodomande
  • Q<questionId>_C<suffix> - commento o altri campi
  • campi della classifica: Q<questionId>_S<subquestionId> - gli elementi della classifica ora sono sottodomande (vedere 1.3)
  • campi dei tempi: a livello di domanda o di gruppo a seconda del contesto

Questo sostituisce la vecchia denominazione basata su sidXgidXqid.

1.3 Domande di tipo classifica

Le domande di tipo classifica ora funzionano come gli altri tipi di domanda basati su sottodomande:

  • Gli elementi sono sottodomande. Gli elementi da ordinare sono memorizzati come sottodomande (tipo R), non come opzioni di risposta.
  • I nomi dei campi utilizzano il formato standard delle sottodomande Q<questionId>_S<subquestionId> (uno per ogni elemento ordinato).
  • Le risposte sono memorizzate in un'unica colonna JSON Q<questionId>, sotto forma di array ordinato di codici degli elementi in cui la posizione corrisponde alla posizione in classifica. Esempio: ["3", "1", "2"]

2. Perché è importante

Questa revisione riguarda schemi di denominazione definiti formalmente e utilizzati per molti anni, e li porta in una struttura coerente e solida su cui poter costruire in futuro.

Modifiche strutturali come questa raramente sono semplici. Toccano parti del sistema su cui si basano molti plugin e integrazioni, ed è per questo che spesso vengono rimandate a causa della loro complessità. Ma mantenere coerenza e prevedibilità è importante per la stabilità a lungo termine.

Affrontando il problema ora, rendiamo LimeSurvey più pulito e più facile da estendere, anche se la modifica è per lo più invisibile in superficie.

3. Come visualizzare in anteprima i nuovi nomi dei campi

Per vedere come un nome di campo esistente verrà mappato nella nuova struttura di LS7, è possibile eseguire i seguenti passaggi:

  1. Eseguire il backup del database, poiché le modifiche non sono reversibili e, in caso di problemi, sarà utile disporre del database precedente alla modifica per il ripristino
  2. Eseguire il checkout del branch develop-major:
    git checkout develop-major
    oppure clonare/scaricare direttamente il progetto da questo branch all'indirizzo https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Caricare una pagina di amministrazione per avviare lo script di modifica
  4. Segnalare qualsiasi errore riscontrato durante l'esecuzione dello script di modifica
  5. Esaminare i nuovi nomi delle tabelle e dei campi
  6. Testare i propri plugin/temi e correggere gli errori relativi ai nomi delle tabelle e/o dei campi

La funzione utilizzata per convertire i vecchi nomi dei campi in nuovi nomi dei campi è la seguente:

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

Parametri

  • $tableName - nome originale della tabella
  • $fieldName - nome originale del campo
  • $questions - domanda principale e relative sottodomande
  • $sid - ID dell'Indagine
  • $gid - ID del Gruppo
  • $cd - indica se si applica la logica del Pannello delle condizioni

Risultato

La funzione restituisce il nuovo nome del campo LS7 per quel campo della risposta.

4. Come testare le modifiche in sicurezza

Si consiglia vivamente di testare LS7 in un ambiente dedicato prima di aggiornare i sistemi di produzione.

4.1 Installare LS7 in un ambiente separato

Scaricare l'ultima versione di LS7 da:

https://community.limesurvey.org

Installarla separatamente dalla propria configurazione attuale.

4.2 Importare le risorse esistenti

Eseguite i test utilizzando:

  • indagini
  • Temi dell'indagine
  • Temi di amministrazione
  • Temi di domanda
  • plugin
  • JavaScript personalizzato
  • qualsiasi integrazione personalizzata che avete sviluppato

Verificate che tutto funzioni come previsto con la nuova denominazione di tabelle e nomi di campo. Aggiornate il codice che si basa sulla vecchia denominazione.

4.3 Come avviare la migrazione?

Se desiderate visualizzare in anteprima la logica di migrazione nella vostra installazione di test:

  1. Eseguite il backup del database.
  2. Installate la versione LS7.
  3. Caricate una qualsiasi pagina di amministrazione per eseguire lo script di migrazione.
  4. Controllate le modifiche a tabelle e nomi di campo.
  5. Testate l'applicazione.
  6. Aggiornate il codice personalizzato, se necessario.

4.4 Segnalare i problemi

Grazie per aver effettuato i test in anticipo. Se notate qualcosa che nel core non sembra corretto, segnalatelo in modo che possiamo risolverlo il prima possibile.

https://bugs.limesurvey.org

5. Cosa potrebbe richiedere aggiornamenti

Potrebbero richiedere modifiche i seguenti elementi:

  • plugin che fanno riferimento ai vecchi nomi di campo o di tabella
  • qualsiasi integrazione personalizzata che avete sviluppato
  • JavaScript che utilizza selettori basati sui nomi di campo
  • temi personalizzati che interagiscono con identificatori relativi alle risposte
  • integrazioni che dipendono dal precedente schema di denominazione
  • importazione di vecchie esportazioni, come indagini, temi, Temi di domanda ecc.

Questo è previsto e fa parte del processo di aggiornamento.

  • LS7 introduce una pulizia completa della denominazione delle tabelle delle risposte e dei nomi di campo
  • Questa è la principale modifica strutturale del backend per LS7
  • Si raccomanda vivamente di eseguire i test in un ambiente separato
  • getFieldName() aiuta a visualizzare in anteprima la futura denominazione
  • Aggiornate il codice personalizzato dove necessario
  • Segnalate i problemi tempestivamente per contribuire a stabilizzare la versione finale