Özel alanlar¶
MRBS 1.12.2 ek veritabanı sütunlarını algılayabilir ve bunları rezervasyon, oda ve kullanıcı alanları olarak kullanabilir. Bu nedenle özel alanlar, sütunları otomatik oluşturan ayarlar değil, veritabanı şemasının uzantılarıdır.
Önce yedekle
Veritabanını yedekleyin ve değişikliği üretim dışı bir örnekte test edin. MRBS yükseltmeler siteye özel sütunlar oluşturmaz, taşımaz veya kaldırmaz.
Özel alanların desteklendiği yerler¶
| Veritabanı tablosu | Amaç | Önemli kural |
|---|---|---|
entry |
Bireysel rezervasyon için ekstra veriler | Aynı sütunu repeat'ye ekleyin |
repeat |
Yinelenen bir rezervasyon için şablon verileri | Adı, türü, uzunluğu, geçersiz kılınabilirliği ve varsayılan değeri entry ile aynı tutun |
room |
Ekstra oda veya kaynak özellikleri | Oda verileriyle görüntülendi ve düzenlendi |
users |
Ekstra kullanıcı profili verileri | Yalnızca veritabanı kimlik doğrulamasıyla kullanılır |
Aynı repeat sütunu olmayan bir entry sütunu, yinelenen rezervasyon işlemlerinin başarısız olmasına neden olur. Çifti tek bir şema değişikliği olarak ele alın.
Sütun adında yalnızca harf, sayı ve alt çizgi kullanın. PostgreSQL ile uyumluluk için bir harf veya alt çizgi ile başlayın. participant_count veya catering gibi sabit, küçük harfli adları tercih edin.
Desteklenen veritabanı türleri¶
| SQL türü | MRBS kontrol |
|---|---|
TEXT |
Çok satırlı metin |
VARCHAR |
Maksimum uzunluğuna bağlı olarak metin girişi veya çok satırlı metin |
DATE |
Tarih girişi |
DECIMAL / NUMERIC |
Sayı girişi |
INT |
Tamsayı girişi |
SMALLINT / TINYINT |
Boole değeri olarak yorumlanan onay kutusu |
PostgreSQL üzerindeki Boolean özel alanları için SMALLINT ve MySQL üzerindeki TINYINT kullanın. Diğer sütun türleri, otomatik özel alan işleme tarafından desteklenmez.
Şemaya alan ekleme¶
Örnekler varsayılan mrbs_ tablo önekini varsayar. $db_tbl_prefix'nin başka bir değeri varsa değiştirin.
Rezervasyon alanı¶
Bu örnek isteğe bağlı bir ikram seçeneği ekler:
ALTER TABLE mrbs_entry
ADD COLUMN catering VARCHAR(32) DEFAULT NULL;
ALTER TABLE mrbs_repeat
ADD COLUMN catering VARCHAR(32) DEFAULT NULL;
Her iki ifade de MySQL ve PostgreSQL ile çalışır. Rezervasyon formunu açmadan önce her iki tabloda ortaya çıkan tanımları doğrulayın.
Oda onay kutusu¶
MRBS 1.12.2'de, yeni bir satır oluşturulduğunda veritabanı varsayılanı kullanılır. Özellikle zorunlu alanlar ve onay kutuları için varsayılanları bilinçli olarak seçin.
Alana çevrilmiş bir etiket verin¶
Geçersiz kılma olmadan, MRBS etiketi sütun adından türetir. config.inc.php'de aktif dil başına bir etiket tanımlayın:
$vocab_override['en']['entry.catering'] = 'Catering';
$vocab_override['de']['entry.catering'] = 'Verpflegung';
$vocab_override['fr']['entry.catering'] = 'Restauration';
$vocab_override['es']['entry.catering'] = 'Catering';
entry/repeat çifti için yalnızca entry.catering'yi tanımlayın; hayır repeat.catering belirteci gerekli. Oda ve kullanıcı alanları room.coffee_machine ve users.phone gibi belirteçler kullanır.
Kelime geçersiz kılmaları, dil dosyaları ve çevrilmiş Yardım sayfaları için Metin ve çeviriler adresine bakın.
Giriş davranışını seçin¶
Sabit seçimler¶
$select_options ücretsiz girişi bir seçim listesiyle değiştirir:
$select_options['entry.catering'] = array(
'' => 'Please select',
'c' => 'Coffee',
's' => 'Sandwiches',
'h' => 'Hot lunch',
);
İlişkisel bir dizi için MRBS anahtarı (c) saklar ve değeri (Coffee) görüntüler, arar ve bildirir. Bu, depolanan verileri yeniden yazmaya gerek kalmadan ifadelerin değişmesine olanak tanır.
Yalnızca rakamlardan oluşan anahtarlardan kaçının: PHP tam sayı benzeri dize anahtarlarını tam sayılara dönüştürür, böylece MRBS diziyi indekslenmiş olarak yorumlayabilir. Zorunlu bir seçimin seçilmeden başlaması gerektiğinde boş bir seçim ekleyin.
$select_options, entry.name, entry.description, özel entry alanları ve özel users alanları için desteklenir. Yapılandırılmış seçenek başlıkları site genelindeki dizelerdir; alan etiketinin kendisi $vocab_override ile çevrilebilir.
Ücretsiz girişli öneriler¶
Başka bir değeri kabul ederken öneriler için $datalist_options kullanın:
$select_options ile aynı alanları destekler. İlişkisel veri listelerinde, saklanan anahtar kullanıcılar için şaşırtıcı olabilir; bu nedenle, kullanımdan önce davranışı test edin.
Zorunlu, özel ve doğrulanmış alanlar¶
Her yerde bir alanı zorunlu hale getirin:
Veya yalnızca veritabanı kimlikleri 1 ve 3 olan alanlarda:
Alana özgü zorunlu kurallar yalnızca entry alanlar için geçerlidir. Gönderimden önce zorunlu bir onay kutusu işaretlenmelidir.
Özel özel alanlar entry ve users için desteklenir:
Bu, değeri yalnızca özel ayırmalar etkinleştirildiğinde ve yapılandırıldığında korur. İlgili her rolü test edin; Hassas verileri en aza indirmek yerine kullanıcı arayüzü gizliliğini kullanmayın.
Desen doğrulama şu anda özel users metin alanlarıyla sınırlıdır:
$pattern['users.zip_code'] = '^[0-9]{5}(?:-[0-9]{4})?$';
$vocab_override['en']['users.zip_code.oninvalid'] =
'Enter a ZIP code such as 12345 or 12345-6789';
Giriş metni alanlarında çevrilmiş yer tutucular bulunabilir:
İstemci tarafı kalıpları geri bildirimi iyileştirir ancak alanı sırlar veya güvenilmeyen işaretlemeler için güvenli bir yere dönüştürmez.
Kontrol alanı sırası¶
Rezervasyon alanlarını açıkça oluşturma ve görüntüleme sayfalarına yerleştirin:
Listelenmeyen alanlar normal sırasına göre eklenir. Rapor arama formuna özel alanlar da yerleştirilebilir:
Tam örnek¶
Her iki rezervasyon tablosuna catering ekledikten sonra:
$vocab_override['en']['entry.catering'] = 'Catering';
$vocab_override['de']['entry.catering'] = 'Verpflegung';
$vocab_override['fr']['entry.catering'] = 'Restauration';
$vocab_override['es']['entry.catering'] = 'Catering';
$select_options['entry.catering'] = array(
'' => '—',
'c' => 'Coffee',
's' => 'Sandwiches',
'h' => 'Hot lunch',
);
$is_mandatory_field['entry.catering'] = array(1, 3);
$edit_entry_field_order = array('name', 'catering', 'description');
$report_search_field_order = array(
'report_start',
'report_end',
'catering',
);
Bu örnekteki seçenek başlıkları her kullanıcı arayüzü dilinde aynı kalır. Çevrilmiş seçenek altyazıları bir gereklilikse, $select_options'nin bunları otomatik olarak çevireceğini varsaymak yerine siteye özgü bir uzantı tasarlayın ve test edin.
Değiştirme, kaldırma ve yükseltme¶
Bir sütunu kısaltmadan veya türünü değiştirmeden önce mevcut değerleri inceleyin ve dönüşümü test edin. Bir alanı kaldırmadan önce, yapılandırma referanslarını kaldırın, bu değişikliği dağıtın, uygulamanın çalıştığını onaylayın ve ancak bundan sonra sütunu normal veritabanı değişiklik sürecine bırakın. Rezervasyon alanları için hem entry hem de repeat değerini değiştirin.
Her özel sütunu sitenin operasyon belgelerine kaydedin ve her MRBS yükseltmeden sonra yeniden kontrol edin. Standart MRBS şema komut dosyaları bu sütunlara sahip değildir.
Doğrulama kontrol listesi¶
entryverepeattanımları her rezervasyon alanı için aynıdır.- Rezervasyon oluşturma, düzenleme, görüntüleme, kopyalama ve silme işlemleri çalışır.
- Yinelenen bir seri ve bir oluşum doğru şekilde düzenlenebilir.
- Veritabanı varsayılanları yeni kayıtlara uygulanır.
- Gerekli, özel, seçme, veri listesi ve doğrulama davranışı, role ve alana göre çalışır.
- Etiketler yapılandırılmış her dilde görünür.
- Arama, raporlar, e-posta, takvim dışa aktarma ve içe/dışa aktarma güvenli değerleri gösterir.
- Oda ve kullanıcı yönetimi yalnızca amaçlanan alanları görüntüler.
- Yedekleme ve geri yükleme prosedürleri genişletilmiş şemayı içerir.