INSTALL (mrbs-1.9.4) | : | INSTALL (mrbs-1.10.0) | ||
---|---|---|---|---|
MRBS Installation Instructions | MRBS Installation Instructions | |||
REQUIREMENTS | REQUIREMENTS | |||
--------------------------------------------------------------------------- | --------------------------------------------------------------------------- | |||
MRBS works with both MySQL (Version 5.5.3 and above) and PostgreSQL | MRBS works with both MySQL (Version 5.5.3 and above) and PostgreSQL | |||
(Version 8.2 and above) systems. You must have at least PHP 5.5.0, with support | (Version 8.2 and above) systems. You must have at least PHP 7.2, with support | |||
for your chosen database system installed and working for this application. | for your chosen database system installed and working for this application. | |||
See the PHP (www.php.net), MySQL (www.mysql.com), and PostgreSQL | See the PHP (www.php.net), MySQL (www.mysql.com), and PostgreSQL | |||
(www.postgresql.org) sites for more info on setting these up. You need | (www.postgresql.org) sites for more info on setting these up. You need | |||
to know how to install, secure, run, maintain, and back up your chosen database system. | to know how to install, secure, run, maintain, and back up your chosen database system. | |||
MRBS also requires that 'iconv' PHP extension, to provide | MRBS also requires that 'iconv' PHP extension, to provide | |||
internationalisation. | internationalisation. | |||
You can run PHP either as a CGI or with a direct module interface (also called | You can run PHP either as a CGI or with a direct module interface (also called | |||
SAPI). These servers include Apache, Microsoft Internet Information Server, | SAPI). These servers include Apache, Microsoft Internet Information Server, | |||
skipping to change at line 165 | skipping to change at line 165 | |||
identical field to the repeat table. If you do not MRBS will fail with | identical field to the repeat table. If you do not MRBS will fail with | |||
a fatal error when you try and run it. | a fatal error when you try and run it. | |||
(2) names must consist of letters, numbers or underscores. If you are | (2) names must consist of letters, numbers or underscores. If you are | |||
using PostgreSQL then the name must begin with a letter or an underscore. | using PostgreSQL then the name must begin with a letter or an underscore. | |||
If you are using MySQL then there is no restriction on the first character | If you are using MySQL then there is no restriction on the first character | |||
as long as it is in the permitted set, ie a letter, number or underscore. | as long as it is in the permitted set, ie a letter, number or underscore. | |||
(Although MySQL will allow other characters in column names, MRBS imposes | (Although MySQL will allow other characters in column names, MRBS imposes | |||
restrictions on the characters allowed in order to simplify the code. For | restrictions on the characters allowed in order to simplify the code. For | |||
a technical explanation see below). | a technical explanation see below). | |||
At the moment only text, varchar, decimal/numeric, int, smallint and tinyint | At the moment only text, varchar, date (user table only), decimal/numeric, | |||
columns are supported, displayed as textarea, text, number or checkbox fields | int, smallint and tinyint columns are supported, displayed as textarea, text, | |||
as appropriate. Whether a varchar is displayed as a text or textarea input | date, number or checkbox fields as appropriate. Whether a varchar is displayed | |||
depends on its maximum length, with the breakpoint determined by a configuration | as a text or textarea input depends on its maximum length, with the breakpoint | |||
variable. Ints are treated as integer types, as you would expect. However | determined by a configuration variable. Ints are treated as integer types, as | |||
smallints and tinyints are assumed to be booleans and are displayed as checkboxe | you would expect. However smallints and tinyints are assumed to be booleans | |||
s. | and are displayed as checkboxes. | |||
[Note: smallints are assumed to be booleans because the boolean type in | [Note: smallints are assumed to be booleans because the boolean type in | |||
PostgreSQL presents some problems in PHP when trying to process the results | PostgreSQL presents some problems in PHP when trying to process the results | |||
of a query in a database independent way, so it is more convenient to use a | of a query in a database independent way, so it is more convenient to use a | |||
smallint instead of a boolean in PostgreSQL.] | smallint instead of a boolean in PostgreSQL.] | |||
Text descriptions are set in the config file using the $vocab_override variable | Text descriptions are set in the config file using the $vocab_override variable | |||
using the appropriate language(s) and with the tag room.column_name, | using the appropriate language(s) and with the tag room.column_name, | |||
eg room.coffee_machine, or users.phone enabling translations to be provided. | eg room.coffee_machine, or users.phone enabling translations to be provided. | |||
If not present, the column name will be used for labels etc. If you are adding | If not present, the column name will be used for labels etc. If you are adding | |||
columns to the entry and repeat tables then you only need to add the | columns to the entry and repeat tables then you only need to add the | |||
entry.column_name tags: you don't need to add a repeat.column_name tag. | entry.column_name tags: you don't need to add a repeat.column_name tag. | |||
As an example, to add a field to the room table recording whether or not | As an example, to add a field to the room table recording whether or not | |||
there is a coffee machine you would, in MySQL, add the column | there is a coffee machine you would, in MySQL, add the column | |||
coffee_machine tinyint(1) | coffee_machine tinyint | |||
to the room table and add the line | to the room table and add the line | |||
$vocab_override['en']['room.coffee_machine'] = "Coffee machine"; | $vocab_override['en']['room.coffee_machine'] = "Coffee machine"; | |||
to the config file and similarly for other languages as required. MRBS | to the config file and similarly for other languages as required. MRBS | |||
should then do the rest and display your coffee machine field on the room | should then do the rest and display your coffee machine field on the room | |||
pages. | pages. | |||
Extra options for custom fields: | Extra options for custom fields: | |||
skipping to change at line 248 | skipping to change at line 249 | |||
checkbox to be ticked before the form can be submitted. This can be | checkbox to be ticked before the form can be submitted. This can be | |||
useful for example for requiring users to accept terms of service or | useful for example for requiring users to accept terms of service or | |||
terms and conditions. | terms and conditions. | |||
3) | 3) | |||
You can also specify that a field is private, ensuring that the contents | You can also specify that a field is private, ensuring that the contents | |||
are only visible to yourself and the administrators. For example: | are only visible to yourself and the administrators. For example: | |||
$is_private_field['entry.refreshments'] = true; | $is_private_field['entry.refreshments'] = true; | |||
$is_private_field['users.tel'] = true; | ||||
would prevent the details of your refreshments being visible to other | would prevent the details of your refreshments being visible to other | |||
users - provided that private bookings are enabled. See the section | users - provided that private bookings are enabled. See the section | |||
on private bookings in systemdefaults.inc.php for more information. | on private bookings in systemdefaults.inc.php for more information. | |||
Note that private fields are only supported in the entry and users tables. | ||||
4) | ||||
You can also enter regular expressions for validating text field input using | ||||
the pattern attribute. At the moment this is limited to custom fields in the | ||||
users table. For example the following could be used to ensure a valid US ZIP | ||||
code (you might want to have a better regex - this is just for illustration): | ||||
$pattern['users.zip_code'] = "^[0-9]{5}(?:-[0-9]{4})?$"; | ||||
You would probably also want to enter a custom error message by using | ||||
$vocab_override, with the tag consisting of "table.field.oninvalid" eg | ||||
$vocab_override['users.zip_code.oninvalid']['en'] = "Please enter a valid " . | ||||
"ZIP code, eg '12345' or '12345-6789'"; | ||||
Technical explanation of the restriction on column names for custom fields | Technical explanation of the restriction on column names for custom fields | |||
-------------------------------------------------------------------------- | -------------------------------------------------------------------------- | |||
// Column names for custom fields are used by MRBS in a number of ways: | // Column names for custom fields are used by MRBS in a number of ways: | |||
// - as the column name in the database | // - as the column name in the database | |||
// - as part of an HTML name attribute for a form input | // - as part of an HTML name attribute for a form input | |||
// - as part of a PHP variable name | // - as part of a PHP variable name | |||
// | // | |||
// MySQL, PostgreSQL, HTML and PHP all have different rules for these tokens: | // MySQL, PostgreSQL, HTML and PHP all have different rules for these tokens: | |||
// - MySQL: almost anything is allowed except that: | // - MySQL: almost anything is allowed except that: | |||
End of changes. 5 change blocks. | ||||
9 lines changed or deleted | 26 lines changed or added |