LimeSurvey 7 Alan Adı Yeniden Yapılandırması
From LimeSurvey Manual
Alan Adı ve Yanıt Tablosu Yeniden Yapılandırması - LimeSurvey 7
LimeSurvey 7, yanıt tablolarının ve alan adlarının oluşturulma biçiminde kapsamlı bir temizlik getirir. Bu güncelleme, uzun süredir kullanılan dahili adlandırma kurallarını modernleştirir ve eklentiler, entegrasyonlar ve gelecekteki geliştirmeler için daha öngörülebilir ve sağlam bir temel oluşturur.
Bu sayfa, yanıt tablosu ve alan adı yeniden yapılandırmasına odaklanır.
Bu yapısal bir değişiklik olduğundan, eski adlandırmaya dayanan tüm özel çalışmaların güncellenmesi gerekebilir. Bu sayfada nelerin değiştiği, değişikliklerin güvenli şekilde nasıl test edileceği ve yükseltmeye nasıl hazırlanılacağı açıklanmaktadır.
1. Neler değişiyor
1.1 Yeni tablo adları
LimeSurvey artık yanıtlarla ilgili tablolar için tutarlı bir adlandırma düzeni kullanmaktadır.
| Eski tablo adı | Yeni tablo adı |
|---|---|
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>
|
Bu tablolara başvuran tüm SQL sorgularının, entegrasyonların veya eklentilerin düzenlenmesi gerekebilir.
1.2 Yeni alan adı yapısı
Alan adları artık öngörülebilir ve tutarlı bir biçim izlemektedir. Örnekler:
Q<questionId>- kök soruQ<questionId>_S<subquestionId>- alt sorularQ<questionId>_C<suffix>- yorum veya diğer alanlar- sıralama alanları:
Q<questionId>_S<subquestionId>- sıralama ögeleri artık alt sorulardır (bkz. 1.3) - zamanlama alanları: bağlama göre soru düzeyinde veya grup düzeyinde
Bu, eski sidXgidXqid tabanlı adlandırmanın yerini alır.
1.3 Sıralama soruları
Sıralama soruları artık alt soru tabanlı diğer soru türleri gibi çalışmaktadır:
- Ögeler alt sorulardır. Sıralanabilir ögeler, yanıt seçenekleri olarak değil, alt sorular (tür
R) olarak saklanır. - Alan adları, standart alt soru biçimini
Q<questionId>_S<subquestionId>kullanır (sıralanan her öge için bir tane). - Yanıtlar, konumun sıralamayı belirttiği, öge kodlarından oluşan sıralı bir dizi olarak tek bir JSON sütununda (
Q<questionId>) saklanır. Örnek:["3", "1", "2"]
2. Bu neden önemli
Bu temizlik, uzun yıllar boyunca resmi olarak tanımlanıp kullanılan adlandırma kalıplarını ele alır ve bunları gelecekte üzerine inşa edebileceğimiz tutarlı ve sağlam bir yapıya dönüştürür.
Bunun gibi yapısal değişiklikler nadiren basittir. Birçok eklentinin ve entegrasyonun dayandığı sistem parçalarına dokunurlar; bu nedenle karmaşıklıkları yüzünden sıklıkla ertelenirler. Ancak her şeyin tutarlı ve öngörülebilir olması uzun vadeli kararlılık için önemlidir.
Bunu şimdi ele alarak, değişiklik yüzeyde çoğunlukla görünmez olsa bile LimeSurvey'i daha temiz ve genişletilmesi daha kolay hale getiriyoruz.
3. Yeni alan adları nasıl ön izlenir
Mevcut herhangi bir alan adının yeni LS7 yapısına nasıl eşleneceğini görmek için aşağıdaki adımları uygulayabilirsiniz:
- Veritabanını yedekleyin; değişiklikler geri alınamaz ve bir şeyler ters giderse değişiklikten önceki veritabanına sahip olmak kurtarma için yararlı olacaktır.
- develop-major dalına geçin:
git checkout develop-major
veya projeyi doğrudan bu dalda https://github.com/LimeSurvey/LimeSurvey/tree/develop-major adresinden klonlayın/indirin. - Değişiklik betiğini tetiklemek için bir yönetim sayfası yükleyin.
- Değişiklik betiğinin çalışması sırasında karşılaştığınız hataları bildirin.
- Yeni tablo adlarını ve alan adlarını inceleyin.
- Eklentilerinizi/temalarınızı test edin ve tablo adları ve/veya alan adlarıyla ilgili hataları düzeltin.
Eski alan adlarını yeni alan adlarına dönüştürmek için kullanılan işlev şudur:
getFieldName($tableName, $fieldName, $questions, $sid, $gid, $cd)
Parametreler
- $tableName - özgün tablo adı
- $fieldName - özgün alan adı
- $questions - kök soru ve alt soruları
- $sid - anket kimliği
- $gid - grup kimliği
- $cd - koşul tasarlayıcı mantığının uygulanıp uygulanmayacağı
Sonuç
İşlev, ilgili yanıt alanı için yeni LS7 alan adını döndürür.
4. Değişiklikler güvenli şekilde nasıl test edilir
Üretim sistemlerini yükseltmeden önce LS7'yi ayrı bir ortamda test etmeniz önemle tavsiye edilir.
4.1 LS7'yi ayrı bir ortama kurun
En son LS7 sürümünü şuradan indirin:
https://community.limesurvey.org
Bunu geçerli kurulumunuzdan ayrı olarak kurun.
4.2 Mevcut varlıklarınızı içe aktarın
Şunları kullanarak test edin:
- anketler
- anket temaları
- yönetim temaları
- soru temaları
- eklentiler
- özel JavaScript
- geliştirdiğiniz tüm özel entegrasyonlar
Yeni tablo ve alan adı adlandırmasıyla her şeyin beklendiği gibi çalışıp çalışmadığını kontrol edin. Eski adlandırmaya dayanan tüm kodları güncelleyin.
4.3 Geçiş nasıl tetiklenir?
Geçiş mantığının ön izlemesini test kurulumunuzda görmek istiyorsanız:
- Veritabanınızı yedekleyin.
- LS7 sürümünü kurun.
- Geçiş betiğini çalıştırmak için herhangi bir yönetici sayfasını yükleyin.
- Tablo ve alan adı değişikliklerini inceleyin.
- Uygulamayı test edin.
- Gerekirse özel kodları güncelleyin.
4.4 Sorunları bildirin
Bu erken aşamada test ettiğiniz için teşekkür ederiz. Çekirdekte yanlış görünen bir şey fark ederseniz, mümkün olan en kısa sürede düzeltebilmemiz için lütfen bildirin.
5. Hangi öğeler güncelleme gerektirebilir
Aşağıdaki öğelerde düzenleme yapılması gerekebilir:
- eski alan adlarına veya tablo adlarına başvuran eklentiler
- geliştirdiğiniz tüm özel entegrasyonlar
- alan adı tabanlı seçiciler kullanan JavaScript
- yanıtla ilgili tanımlayıcılarla etkileşime giren özel temalar
- önceki adlandırma şemasına bağımlı entegrasyonlar
- anket, temalar, Soru temaları vb. eski dışa aktarımların içe aktarılması
Bu beklenen bir durumdur ve yükseltme sürecinin bir parçasıdır.
6. Özet
- LS7, yanıt tablosu ve alan adı adlandırmasında kapsamlı bir temizlik getirir
- Bu, LS7 için ana yapısal arka uç değişikliğidir
- Ayrı bir ortamda test yapılması önemle tavsiye edilir
getFieldName()gelecekteki adlandırmanın ön izlemesine yardımcı olur- Gerektiğinde özel kodları güncelleyin
- Nihai sürümün kararlı hale gelmesine yardımcı olmak için sorunları erken bildirin