Mukautetut kentät¶
MRBS 1.12.2 tunnistaa tietokantatauluihin lisätyt sarakkeet ja voi käyttää niitä varausten, huoneiden ja käyttäjien kenttinä. Mukautetut kentät ovat siis tietokantaskeeman laajennuksia, eivät asetuksia, jotka loisivat sarakkeet automaattisesti.
Varmuuskopioi ensin
Varmuuskopioi tietokanta ja testaa muutos muussa kuin tuotantoympäristössä. MRBS-päivitykset eivät luo, siirrä tai poista sivustokohtaisia sarakkeita.
Missä mukautettuja kenttiä tuetaan¶
| Tietokantataulukko | Tarkoitus | Tärkeä sääntö |
|---|---|---|
entry |
Yksittäisen varauksen lisätiedot | Lisää samanlainen sarake myös repeat-tauluun |
repeat |
Toistuvan varauksen mallin tiedot | Pidä nimi, tyyppi, pituus, NULL-arvon salliminen ja oletusarvo samoina kuin entry-taulussa |
room |
Ylimääräiset huone- tai resurssiominaisuudet | Näytetään ja muokataan huonetietojen kanssa |
users |
Ylimääräiset käyttäjäprofiilitiedot | Käytetään vain tietokannan todennuksen kanssa |
Jos entry-taulun sarakkeelle ei ole samanlaista saraketta repeat-taulussa, toistuvien varausten käsittely epäonnistuu. Käsittele sarakeparia yhtenä skeemamuutoksena.
Käytä sarakkeen nimessä vain kirjaimia, numeroita ja alaviivoja. PostgreSQL-yhteensopivuuden vuoksi nimen tulee alkaa kirjaimella tai alaviivalla. Valitse pysyvä, pienillä kirjaimilla kirjoitettu nimi, kuten participant_count tai catering.
Tuetut tietokantatyypit¶
| SQL-tyyppi | MRBS:n syöttöelementti |
|---|---|
TEXT |
Monirivinen teksti |
VARCHAR |
Tekstinsyöttö tai monirivinen teksti sen enimmäispituudesta riippuen |
DATE |
Päivämäärän syöttö |
DECIMAL / NUMERIC |
Numeron syöttö |
INT |
Kokonaisluvun syöttö |
SMALLINT / TINYINT |
Valintaruutu, jonka arvo tulkitaan totuusarvoksi |
Käytä mukautetuille totuusarvokentille PostgreSQL:ssä SMALLINT-tyyppiä ja MySQL:ssä TINYINT-tyyppiä. Mukautettujen kenttien automaattinen käsittely ei tue muita saraketyyppejä.
Lisää kenttä skeemaan¶
Esimerkeissä oletuksena on taulukon oletusetuliite mrbs_. Vaihda se, jos $db_tbl_prefix on muu arvo.
Varauskenttä¶
Tämä esimerkki lisää valinnaisen ateriavaihtoehdon:
ALTER TABLE mrbs_entry
ADD COLUMN catering VARCHAR(32) DEFAULT NULL;
ALTER TABLE mrbs_repeat
ADD COLUMN catering VARCHAR(32) DEFAULT NULL;
Molemmat lauseet toimivat MySQL:ssä ja PostgreSQL:ssä. Tarkista kummankin taulun uusi rakenne ennen varauslomakkeen avaamista.
Huoneen valintaruutu¶
MRBS 1.12.2:ssa tietokannan oletusarvoa käytetään, kun uusi rivi luodaan. Valitse oletusarvot tarkoituksella, erityisesti pakollisille kentille ja valintaruuduille.
Anna kentälle käännetty otsikko¶
Ilman ohitusta MRBS johtaa tunnisteen sarakkeen nimestä. Määritä yksi tunniste kutakin aktiivista kieltä kohden 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';
Määritä entry/repeat-parille vain entry.catering; tunnusta repeat.catering ei tarvita. Huone- ja käyttäjäkenttien tunnuksia ovat esimerkiksi room.coffee_machine ja users.phone.
Katso kohdasta Teksti ja käännökset sanaston ohituksia, kielitiedostoja ja käännettyjä ohjesivuja.
Valitse syöttötapa¶
Kiinteät valinnat¶
$select_options korvaa vapaamuotoisen syötteen valintaluettelolla:
$select_options['entry.catering'] = array(
'' => 'Please select',
'c' => 'Coffee',
's' => 'Sandwiches',
'h' => 'Hot lunch',
);
Assosiatiivista taulukkoa käytettäessä MRBS tallentaa avaimen (c) mutta näyttää, hakee ja raportoi tekstin (Coffee). Näyttötekstiä voi siten muuttaa kirjoittamatta tallennettuja tietoja uudelleen.
Vältä avaimia, jotka koostuvat vain numeroista: PHP muuntaa kokonaislukumaiset merkkijonoavaimet kokonaisluvuiksi, joten MRBS saattaa tulkita taulukon indeksoiduksi. Sisällytä tyhjä valinta, kun pakollinen valinta on aloitettava valitsemattomana.
$select_options tukee kenttiä entry.name ja entry.description sekä mukautettuja entry- ja users-kenttiä. Vaihtoehtojen tekstit ovat samat koko sivustossa; itse kentän nimen voi kääntää $vocab_override-asetuksella.
Ehdotuksia vapaalla syötteellä¶
Käytä $datalist_options-asetusta, kun haluat ehdottaa arvoja mutta hyväksyä myös muita arvoja:
Se tukee samoja kenttiä kuin $select_options. Assosiatiivisessa datalistassa tallennettava avain voi yllättää käyttäjän, joten testaa toiminta ennen käyttöönottoa.
Pakolliset, yksityiset ja vahvistetut kentät¶
Tee kentästä pakollinen kaikkialla:
Tai vain alueilla, joilla on tietokantatunnukset 1 ja 3:
Aluekohtaiset pakolliset säännöt koskevat vain entry-kenttiä. Pakollinen valintaruutu on valittava ennen lähettämistä.
Yksityisiä mukautettuja kenttiä tuetaan entry- ja users-tauluissa:
Arvo suojataan vain, kun yksityiset varaukset ovat käytössä ja asianmukaisesti määritetty. Testaa kaikki asiaankuuluvat käyttäjäroolit. Käyttöliittymän yksityisyysasetukset eivät korvaa arkaluontoisten tietojen määrän rajoittamista.
Säännölliseen lausekkeeseen perustuva tarkistus on tällä hetkellä rajattu mukautettuihin users-tekstikenttiin:
$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';
Tekstikentissä voi olla käännettyjä esimerkkitekstejä:
Selaimessa tehtävä muodon tarkistus parantaa käyttäjäpalautetta, mutta ei tee kentästä turvallista paikkaa salaisuuksille tai epäluotettavalle sisällölle.
Hallitse kenttäjärjestystä¶
Sijoita varauskentät nimenomaisesti luonti- ja katselusivuille:
Luettelosta puuttuvat kentät lisätään tavallisessa järjestyksessä. Mukautetut kentät voi sijoittaa myös raportin hakulomakkeeseen:
Täydellinen esimerkki¶
Kun olet lisännyt catering-sarakkeen kumpaankin varaustauluun:
$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',
);
Tämän esimerkin vaihtoehtotekstit pysyvät samoina kaikilla käyttöliittymän kielillä. Jos vaihtoehdot on käännettävä, suunnittele ja testaa sivustokohtainen laajennus; $select_options ei käännä niitä automaattisesti.
Muuta, poista ja päivitä¶
Ennen kuin lyhennät saraketta tai muutat sen tyyppiä, tarkista olemassa olevat arvot ja testaa muunnos. Kun poistat kentän, poista ensin sen asetusviittaukset, ota muutos käyttöön ja varmista sovelluksen toiminta. Poista sarake vasta sen jälkeen tavanomaisella tietokannan muutosmenettelyllä. Muuta varauskenttien osalta sekä entry- että repeat-taulua.
Dokumentoi jokainen mukautettu sarake sivuston ylläpito-ohjeissa ja tarkista se jokaisen MRBS-päivityksen jälkeen. MRBS:n vakioskeeman komentosarjat eivät hallitse näitä sarakkeita.
Vahvistuksen tarkistuslista¶
entry- jarepeat-määritelmät ovat samat jokaiselle mukautetulle varauskentälle.- Varauksen luominen, muokkaaminen, katseleminen, kopioiminen ja poistaminen toimii.
- Toistuva sarja ja yksi esiintymä voidaan muokata oikein.
- Tietokannan oletusasetuksia sovelletaan uusiin tietueisiin.
- Pakollisuus, yksityisyys, valintaluettelo, datalista ja tarkistus toimivat oikein käyttäjäroolin ja alueen mukaan.
- Kenttien nimet näkyvät kaikilla määritetyillä kielillä.
- Haku, raportit, sähköposti, kalenterin vienti ja tuonti/vienti näyttävät turvalliset arvot.
- Huone- ja käyttäjähallinta näyttää vain aiotut kentät.
- Varmuuskopiointi- ja palautusmenettelyt sisältävät laajennetun skeeman.