Kihagyás

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

ALTER TABLE mrbs_room
  ADD COLUMN coffee_machine TINYINT NOT NULL DEFAULT 0;
ALTER TABLE mrbs_room
  ADD COLUMN coffee_machine SMALLINT NOT NULL DEFAULT 0;

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:

$datalist_options['entry.catering'] = array(
    'Coffee',
    'Sandwiches',
    'Hot lunch',
);

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:

$is_mandatory_field['entry.catering'] = true;

Vagy csak az 1-es és 3-as adatbázis-azonosítóval rendelkező területeken:

$is_mandatory_field['entry.catering'] = array(1, 3);

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:

$is_private_field['entry.internal_notes'] = true;
$is_private_field['users.phone'] = true;

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:

$vocab_override['en']['entry.catering.placeholder'] =
    'State allergies or special requirements';

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:

$edit_entry_field_order = array(
    'name',
    'catering',
    'description',
);

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:

$report_search_field_order = array(
    'report_start',
    'report_end',
    'catering',
    'roommatch',
);

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 a repeat definí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.