Egyéni mezők¶
Az MRBS 1.12.2 felismeri a további adatbázis-oszlopokat, és foglalások, szobák vagy felhasználók mezőiként használhatja őket. Az egyéni mezők tehát a séma bővítései, nem pedig az oszlopokat automatikusan létrehozó beállítások.
Először vissza
Készítsen biztonsági másolatot az adatbázisról, és tesztelje a változást egy nem éles példányon. Az MRBS frissítések nem hoznak létre, nem helyeznek át vagy távolítanak el helyspecifikus oszlopokat.
Ahol az egyéni mezők támogatottak¶
| Adatbázis táblázat | Cél | Fontos szabály |
|---|---|---|
entry |
Extra adatok egyedi foglaláshoz | Adja hozzá az azonos oszlopot a következőhöz: repeat |
repeat |
Ismétlődő foglalás sablonadatai | A név, a típus, a hossz, a NULL-érték engedélyezése és az alapértelmezett érték egyezzen meg az entry oszlopéval |
room |
Extra szoba vagy erőforrás tulajdonságok | Szobaadatokkal megjelenítve és szerkesztve |
users |
Extra felhasználói profil adatok | Csak adatbázis-hitelesítéssel használható |
A entry oszlop azonos repeat oszlop nélkül az ismétlődő foglalási műveletek meghiúsulását okozza. Kezelje a párt egyetlen sémamódosításként.
Az oszlop nevében csak betűket, számokat és aláhúzásjeleket használjon. A PostgreSQL-vel való kompatibilitás érdekében kezdje betűvel vagy aláhúzásjellel. Részesítse előnyben a stabil, kisbetűs neveket, például participant_count vagy catering.
Támogatott adatbázistípusok¶
| SQL típus | MRBS vezérlés |
|---|---|
TEXT |
Többsoros szöveg |
VARCHAR |
Szövegbevitel vagy többsoros szöveg, a maximális hosszától függően |
DATE |
Dátum bevitele |
DECIMAL / NUMERIC |
Számbevitel |
INT |
Egész szám bevitele |
SMALLINT / TINYINT |
Jelölőnégyzet, logikai értékként értelmezve |
Logikai egyéni mezőkhöz PostgreSQL-ben SMALLINT, MySQL-ben TINYINT típust használjon. Az automatikus egyénimező-kezelés más oszloptípusokat nem támogat.
Adjon hozzá egy mezőt a sémához¶
A példák az alapértelmezett mrbs_ táblázat előtagot feltételezik. Cserélje ki, ha a $db_tbl_prefix másik értéke van.
Foglalási mező¶
Ez a példa egy választható étkezési lehetőséget ad hozzá:
ALTER TABLE mrbs_entry
ADD COLUMN catering VARCHAR(32) DEFAULT NULL;
ALTER TABLE mrbs_repeat
ADD COLUMN catering VARCHAR(32) DEFAULT NULL;
Mindkét utasítás működik a következőkkel: MySQL és PostgreSQL. A foglalási űrlap megnyitása előtt ellenőrizze a kapott definíciókat mindkét táblázatban.
Szoba jelölőnégyzet¶
Az MRBS 1.12.2-es verzióban új sor létrehozásakor az adatbázis alapértelmezett értéke kerül felhasználásra. Az alapértelmezett értékeket tudatosan válassza ki, különösen a kötelező mezők és jelölőnégyzetek esetében.
Adjon a mezőnek lefordított címkét¶
Felülírás nélkül az MRBS az oszlopnévből származtatja a címkét. Határozzon meg egy címkét aktív nyelvenként az config.inc.php-ben:
$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 pár esetén csak a entry.catering értéket adja meg; nincs szükség repeat.catering tokenre. A szoba és a felhasználói mezők olyan tokeneket használnak, mint a room.coffee_machine és a users.phone.
Lásd: Szöveg és fordítások a szókincs felülírásaiért, nyelvi fájljaiért és a lefordított súgóoldalakért.
Válassza ki a beviteli viselkedést¶
Rögzített választási lehetőségek¶
A $select_options a szabad bevitelt egy kiválasztási listára cseréli:
$select_options['entry.catering'] = array(
'' => 'Please select',
'c' => 'Coffee',
's' => 'Sandwiches',
'h' => 'Hot lunch',
);
Egy asszociatív tömb esetén az MRBS tárolja a kulcsot (c), és megjeleníti, megkeresi és jelenti az értéket (Coffee). Ez lehetővé teszi a megfogalmazás megváltoztatását a tárolt adatok átírása nélkül.
Kerülje a csak számjegyekből álló kulcsokat: a PHP az egész számokhoz hasonló karakterlánckulcsokat egész számokká alakítja, így az MRBS indexeltként értelmezheti a tömböt. Ha a kötelező kijelölést kijelöletlenül kell kezdeni, adjon meg egy üres lehetőséget.
A $select_options az entry.name, entry.description, egyéni entry és egyéni users mezők esetén támogatott. A konfigurált opciófeliratok az egész webhelyre kiterjedő karakterláncok; maga a mezőcímke a következővel fordítható: $vocab_override.
Javaslatok szabad bemenettel¶
Használja a $datalist_options kódot javaslatokhoz, miközben továbbra is elfogad egy másik értéket:
Ugyanazokat a mezőket támogatja, mint a $select_options. Az asszociatív adatlistáknál a tárolt kulcs meglepő lehet a felhasználók számára, ezért használat előtt tesztelje a viselkedést.
Kötelező, privát és ellenőrzött mezők¶
Tegye kötelezővé a mezőt mindenhol:
Vagy csak az 1-es és 3-as adatbázis-azonosítóval rendelkező területeken:
A területspecifikus kötelező szabályok csak a entry mezőkre vonatkoznak. A beküldés előtt be kell jelölni egy kötelező jelölőnégyzetet.
A privát egyéni mezők támogatottak a entry és a users esetén:
Ez csak akkor védi az értéket, ha a privát foglalások engedélyezve és konfigurálva vannak. Teszteljen minden releváns szerepet; ne használja a felhasználói felület adatvédelmét az érzékeny adatok minimalizálása helyett.
A mintaellenőrzés jelenleg az egyéni users szövegmezőkre korlátozódik:
$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';
A beviteli szövegmezők lefordított helyőrzőket tartalmazhatnak:
A kliensoldali mintaellenőrzés javítja a visszajelzést, de nem teszi a mezőt biztonságos hellyé titkok vagy nem megbízható tartalom számára.
A mezők sorrendjének szabályozása¶
Helyezze el kifejezetten a foglalási mezőket a létrehozási és megtekintési oldalakon:
A listán nem szereplő mezők normál sorrendjükben kerülnek hozzáfűzésre. Egyéni mezők is elhelyezhetők a jelentéskeresési űrlapon:
Teljes példa¶
Miután mindkét foglalási táblához hozzáadta a catering oszlopot:
$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',
);
Ebben a példában az opciók feliratai ugyanazok maradnak minden felhasználói felületen. Ha a lefordított opciófeliratok követelmény, tervezzen és teszteljen egy helyspecifikus bővítményt, ahelyett, hogy azt feltételezné, hogy az $select_options automatikusan lefordítja őket.
Változás, eltávolítás és frissítés¶
Az oszlop lerövidítése vagy típusának megváltoztatása előtt ellenőrizze a meglévő értékeket, és tesztelje a konverziót. Egy mező eltávolítása előtt távolítsa el a konfigurációs hivatkozásait, telepítse a módosítást, ellenőrizze, hogy az alkalmazás működik, és csak ezután engedje el az oszlopot a normál adatbázis-módosítási folyamaton keresztül. A foglalási mezőknél módosítsa a entry és a repeat értéket is.
Rögzítsen minden egyéni oszlopot a webhely működési dokumentációjában, és minden egyes MRBS frissítés után ellenőrizze újra. A szabványos MRBS sémaszkriptek nem birtokolják ezeket az oszlopokat.
Ellenőrző lista¶
- A
entryés arepeatdefiníciók minden foglalási mezőben azonosak. - A foglalás létrehozása, szerkesztése, megtekintése, másolása és törlése működik.
- Egy ismétlődő sorozat és egy előfordulás helyesen szerkeszthető.
- Az adatbázis alapértelmezései az új rekordokra vonatkoznak.
- A kötelező, privát, kiválasztási, adatlistás és érvényesítési viselkedés szerepkör és terület szerint működik.
- A címkék minden beállított nyelven megjelennek.
- A keresés, a jelentések, az e-mailek, a naptárexportálás és az importálás/exportálás biztonságos értékeket mutatnak.
- A helyiség- és felhasználói adminisztráció csak a kívánt mezőket jeleníti meg.
- A biztonsági mentési és visszaállítási eljárások magukban foglalják a kiterjesztett sémát.