Vlastné polia¶
MRBS 1.12.2 dokáže rozpoznať ďalšie databázové stĺpce a použiť ich ako polia rezervácií, miestností a používateľov. Vlastné polia sú preto rozšírením schémy, nie nastavením, ktoré automaticky vytvorí stĺpce.
Najprv zálohujte
Zálohujte databázu a otestujte zmenu na neprodukčnej inštancii. Inovácie MRBS nevytvárajú, nemigrujú ani neodstraňujú stĺpce špecifické pre lokalitu.
Kde sú podporované vlastné polia¶
| Databázová tabuľka | Účel | Dôležité pravidlo |
|---|---|---|
entry |
Extra údaje pre individuálnu rezerváciu | Pridajte rovnaký stĺpec do repeat |
repeat |
Údaje šablóny pre opakovanú rezerváciu | Ponechajte názov, typ, dĺžku, možnosť nulovania a predvolené hodnoty identické s entry |
room |
Ďalšie vlastnosti miestnosti alebo zdrojov | Zobrazuje sa a upravuje s údajmi o miestnosti |
users |
Extra údaje o používateľskom profile | Používa sa iba s autentifikáciou databázy |
Stĺpec entry bez identického stĺpca repeat spôsobuje zlyhanie opakujúcich sa operácií rezervácie. Považujte pár za jednu zmenu schémy.
V názve stĺpca používajte iba písmená, čísla a podčiarkovníky. Pre kompatibilitu s PostgreSQL ho začnite písmenom alebo podčiarkovníkom. Uprednostňujte stabilné názvy s malými písmenami, ako napríklad participant_count alebo catering.
Podporované typy databáz¶
| Typ SQL | MRBS ovládanie |
|---|---|
TEXT |
Viacriadkový text |
VARCHAR |
Zadávanie textu alebo viacriadkový text v závislosti od jeho maximálnej dĺžky |
DATE |
Zadanie dátumu |
DECIMAL / NUMERIC |
Zadanie čísla |
INT |
Vstup celého čísla |
SMALLINT / TINYINT |
Začiarkavacie políčko interpretované ako boolovská hodnota |
Použite SMALLINT pre vlastné boolovské polia na PostgreSQL a TINYINT na MySQL. Iné typy stĺpcov nie sú podporované automatickým spracovaním vlastných polí.
Pridajte pole do schémy¶
Príklady predpokladajú predvolenú predponu tabuľky mrbs_. Nahraďte ho, ak má $db_tbl_prefix inú hodnotu.
Rezervačné pole¶
Tento príklad pridáva voliteľný výber stravovania:
ALTER TABLE mrbs_entry
ADD COLUMN catering VARCHAR(32) DEFAULT NULL;
ALTER TABLE mrbs_repeat
ADD COLUMN catering VARCHAR(32) DEFAULT NULL;
Oba príkazy fungujú s MySQL a PostgreSQL. Pred otvorením rezervačného formulára overte výsledné definície v oboch tabuľkách.
Začiarkavacie políčko miestnosti¶
V MRBS 1.12.2 sa pri vytváraní nového riadku použije predvolená hodnota databázy. Zámerne vyberte predvolené hodnoty, najmä pre povinné polia a začiarkavacie políčka.
Dajte poliu preložený štítok¶
Bez prepísania odvodí MRBS označenie z názvu stĺpca. Definujte jeden štítok na aktívny jazyk v config.inc.php:
$vocab_override['en']['entry.catering'] = 'Catering';
$vocab_override['de']['entry.catering'] = 'Verpflegung';
$vocab_override['fr']['entry.catering'] = 'Restauration';
$vocab_override['es']['entry.catering'] = 'Catering';
Pre pár entry/repeat definujte iba entry.catering; nie je potrebný žiadny token repeat.catering. Miestnosť a používateľské polia používajú tokeny ako room.coffee_machine a users.phone.
Prepisy slovnej zásoby, jazykové súbory a preložené stránky pomocníka nájdete na Text a preklady.
Vyberte správanie vstupu¶
Pevné voľby¶
$select_options nahradí voľný vstup výberovým zoznamom:
$select_options['entry.catering'] = array(
'' => 'Please select',
'c' => 'Coffee',
's' => 'Sandwiches',
'h' => 'Hot lunch',
);
Pre asociatívne pole MRBS ukladá kľúč (c) a zobrazuje, vyhľadáva a oznamuje hodnotu (Coffee). To umožňuje zmenu znenia bez prepisovania uložených údajov.
Vyhnite sa kľúčom, ktoré pozostávajú iba z číslic: PHP konvertuje reťazcové kľúče podobné celému číslu na celé čísla, takže MRBS môže interpretovať pole ako indexované. Zahrňte prázdnu voľbu, keď povinný výber musí začať nevybraný.
$select_options je podporované pre entry.name, entry.description, vlastné polia entry a vlastné polia users. Konfigurované titulky možností sú reťazce pre celú lokalitu; samotný štítok poľa možno preložiť pomocou $vocab_override.
Návrhy s bezplatným vstupom¶
Použite $datalist_options na návrhy a zároveň akceptujte inú hodnotu:
Podporuje rovnaké polia ako $select_options. S asociatívnymi zoznamami údajov môže byť uložený kľúč pre používateľov prekvapivý, preto pred použitím otestujte správanie.
Povinné, súkromné a overené polia¶
Všade nastavte povinné pole:
Alebo len v oblastiach s ID databázy 1 a 3:
Povinné pravidlá špecifické pre danú oblasť sa vzťahujú iba na polia entry. Pred odoslaním musí byť začiarknuté povinné políčko.
Súkromné vlastné polia sú podporované pre entry a users:
Toto chráni hodnotu iba vtedy, keď sú povolené a nakonfigurované súkromné rezervácie. Otestujte každú relevantnú rolu; nepoužívajte súkromie používateľského rozhrania ako náhradu za minimalizáciu citlivých údajov.
Overenie vzoru je v súčasnosti obmedzené na vlastné textové polia users:
$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';
Vstupné textové polia môžu mať preložené zástupné symboly:
Vzory na strane klienta zlepšujú spätnú väzbu, ale nemenia pole na bezpečné miesto pre tajomstvá alebo nedôveryhodné značky.
Riadenie poradia polí¶
Umiestnite rezervačné polia explicitne na stránky vytvorenia a zobrazenia:
Polia, ktoré nie sú uvedené, sú pripojené v normálnom poradí. Vlastné polia možno umiestniť aj do vyhľadávacieho formulára zostavy:
Úplný príklad¶
Po pridaní catering do oboch rezervačných tabuliek:
$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',
);
Popisy možností v tomto príklade zostávajú rovnaké v každom jazyku používateľského rozhrania. Ak sú preložené titulky možností požiadavkou, navrhnite a otestujte rozšírenie špecifické pre lokalitu namiesto toho, aby ste predpokladali, že $select_options ich preloží automaticky.
Zmeňte, odstráňte a inovujte¶
Pred skrátením stĺpca alebo zmenou jeho typu skontrolujte existujúce hodnoty a otestujte prevod. Pred odstránením poľa odstráňte jeho konfiguračné odkazy, nasaďte túto zmenu, potvrďte, že aplikácia funguje, a až potom stĺpec vypustite cez normálny proces zmeny databázy. Pre rezervačné polia zmeňte entry aj repeat.
Zaznamenajte si každý vlastný stĺpec v prevádzkovej dokumentácii lokality a po každej aktualizácii MRBS ho znova skontrolujte. Štandardné skripty schémy MRBS tieto stĺpce nevlastnia.
Kontrolný zoznam overenia¶
- Definície
entryarepeatsú rovnaké pre každé rezervačné pole. - Vytváranie, úprava, prezeranie, kopírovanie a odstraňovanie rezervácie funguje.
- Opakujúci sa rad a jeden výskyt je možné správne upraviť.
- Na nové záznamy sa použijú predvolené hodnoty databázy.
- Povinné, súkromné, výberové, dátové a overovacie správanie funguje podľa roly a oblasti.
- Štítky sa zobrazujú v každom nakonfigurovanom jazyku.
- Vyhľadávanie, prehľady, e-mail, export kalendára a import/export zobrazujú bezpečné hodnoty.
- Správa miestností a používateľov zobrazuje iba zamýšľané polia.
- Procedúry zálohovania a obnovy zahŕňajú rozšírenú schému.