Since LMS 1.5.3 you're able to configure all UI-related options directly via LMS-UI, instead of editing lms.ini. Those options are stored in database and you first need to import them from your config file (even if you haven't edited anything yet, default values will be imported). This can be done by clicking on the link presented on empty list.
Options setup with LMS-UI have higher priority than those in configuration file. With options setup in UI, the configuration will be still imported from file but values will be then overwritten by those found in DB.
Daemon read some options other than its configuration from database only, so it's preferred to store configuration in database.
In order to manually add new option click 'Add option' on the bottom of the list. To edit option value, click on its record. You'll be given with edit form, where you are also able to remove this option. Changing option status allows you to turn it on and off instantly. When an option is off, default value will be used (if it posses any).
Here we've got the list of UI configuration options. Those options should be placed in [phpui] section. The rest of options is described in appropriate chapters.
List of networks or IP addresses, which have access to LMS. If empty, every IP address is permitted. You can write here list of addresses or address pools and LMS will dismiss every unwanted user with HTTP 403 error.
Example: allow_from = 192.168.0.0/16, 188.8.131.52/27, 184.108.40.206
User interface language code (ISO). IF not set, language will be based on HTML browser settings. Default: en
Example: lang = pl
Timeout for WWW session. User will be log out if he won't perform any action in such number of seconds. Default: 600
Example: timeout = 900
It's not possible to not to have any timeout. If you set this value to zero, you won't be able to use LMS at all!
Start-up module (filename from /modules without .php). Default: welcome.
Example: default_module = copyrights
Limit of records that can be displayed on one page of customers list. Default: 100
Example: customerlist_pagelimit = 10
Limit of records that can be displayed on one page of nodes list. Default: 100
Example: nodelist_pagelimit = 10
Limit of records that can be displayed on one page of customer balance. Default: 100.
Example: balancelist_pagelimit = 50
Limit of records that can be displayed on one page of invoices list. Default: 100
Example: invoicelist_pagelimit = 50
Limit of records that can be displayed on one page of ticket (requests) list. Default: 100
Example: ticketlist_pagelimit = 50
Limit of records that can be displayed on one page of nodes with network information. Default: 256
Example: networkhosts_pagelimit = 1024
Limit of records that can be displayed on one page of customer accounts. Default: 100
Example: accountlist_pagelimit = 50
Limit of records that can be displayed on one page of system domains. Default: 100
Example: domainlist_pagelimit = 50
Limit of records that can be displayed on one page of user aliases. Default: 100
Example: aliaslist_pagelimit = 50
Limit of records that can be displayed on one page of UI configuration list. Default: 100
Example: configlist_pagelimit = 50
Limit of records that can be displayed on one page of tax rates list. Default: 100
Example: taxratelist_pagelimit = 50
Limit of records that can be displayed on one page of numbering plans list. Default: 100
Example: numberplanlist_pagelimit = 50
Limit of records that can be displayed on one page of divisions list. Default: 100
Example: divisionlist_pagelimit = 50
Limit of records that can be displayed on one page of documents list. Default: 100
Example: documentlist_pagelimit = 50
Reload type. Allowed values:
exec - execute some command (usually with sudo, script or something else, configurable below)
sql - doing SQL writes (can be also set to custom query)
Example: reload_type = exec
Command to run during reload, if reload_type is set to 'exec'. By default /bin/true. This string is send to system() command, so make sure that you know what you're doing. :) Besides, semicolons should be parsed by bash, but LMS splits that string and execute commands separately. In commands you can use '%host' variable, which is replaced by defined host name (Configuration -> Hosts).
Example: reload_execcmd = "sudo /usr/bin/reload_lms.sh %host"
SQL query executed while reload, if reload_type = sql. By default, query sets reload order for daemon lmsd. You can use '%TIME%' template in your query which will be substituted with current UNIX timestamp and '%host' for host name. WARNING! Semicolon is handled as query separator, which means that you can enter couple of SQL queries separated by semicolon sign.
Example: reload_sqlquery = "INSERT INTO reload VALUES ('1','%TIME%')"
Enforce SSL for all connections. Setting this option to 1 will turn LMS into enforcing SSL connections by applying redirect to 'https://'.$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI] at every access without SSL. Default: 0 (off).
Example: force_ssl = 1
Allows for node addition even if its MAC address is not unique (not checking that some computer have that MAC yet). Default: 0 (off)
Example: allow_mac_sharing = 1
Enable Smarty debug console. Useful for tracking values passed from PHP to Smarty. Default: 0 (off).
Example: smarty_debug = 1
default_zip, default_city, default_address
Default zip code, city and street used on "new user" form. Useful when we have many users on the same street.
Example: default_zip = 39-300
Forces to use current day of month as a payment day. Default: 0 (off).
Example: use_current_payday = 1
Forces to use given day of month as a payment day. Default: 0 (undefined).
Example: default_monthly_payday = 1
Makes option "with invoice" checked by default. Default: false.
Example: use_invoices = true
Specify time (in seconds), after which node will be marked offline. It should match frequency of execution for script responsible for checking nodes activity (i.e. lms-fping). Default: 600.
Example: lastonline_limit = 300
Specify number of days (including current day) visible on timetable. Default: 7.
Example: timetable_days_forward = 2
List of arpd servers for reading MAC addresses from remote networks. That list should include IP[:port] items separated with spaces. Default: empty.
Example: arpd_servers = 192.168.1.1 192.168.2.1
When enabled, all messages in helpdesk system (except those sent to ticket reporter) will be sent to mail server to the appropriate queue address. Mail server should run lms-rtparser script, which will write messages to database. Default: disabled.
Example: helpdesk_backend_mode = On
Name of message sender or predefined values: 'queue' - ticket's queue name, 'user' - name of logged user (sender). Default: empty.
Example: helpdesk_sender_name = Helpdesk
If enabled, after new ticket addition system will send notification emails to all users with rights to the queue. Default: disabled.
Example: newticket_notify = On
Adds requests causes stats on ticket view and print pages. Default: enabled.
Example: helpdesk_stats = true
Adds customer basic information on ticket view and in notifications. Default: enabled.
Example: helpdesk_customerinfo = false
Default status filter setting on tickets list. For allowed values see html source code. Default: not set.
Example: ticketlist_status = -1
Helpdesk ticket printout template file. Default: rtticketprint.html.
Example: ticket_template_file = ../mytemplates/ticket.html
Specify format of verbal amounts representation (on invoices). For value "1" verbal expand of 123,15 will be "one two thr 15/100". Default: 0.
Example: to_words_short_version = 1
Length of (auto-generated) node password. Max.32. Default: 16.
Example: nodepassword_length = 8
Charset of data that GD library expects (useful if GD need ISO-8859-2 instead of UTF-8 to feed imagetext() function. Default: ISO-8859-2.
Example: gd_translate_to =
How often to check for LMS updates (in seconds). Default: 86400.
Example: check_for_updates_period = 604800
Specify value (not label) of tax rate which will be selected on drop-down lists by default. Default: 22.
Example: default_taxrate = 22.0
Support for big ISPs e.g. hidding long selection dropdowns. Default: false.
Example: big_networks = true
Enables page scroller designed for lists with very big number of pages. Default: false.
Example: short_pagescroller = true
Support for EtherWerX devices. Default: false.
Example: ewx_support = true
Default period value for assignment. Possible values: disposable - 0 daily - 1 weekly - 2 monthly - 3 quarterly - 4 yearly - 5 Default: 0
Example: default_assignment_period = 3
Before you have to begin with financial system you will need to define tax rates which you will use. On the list are place all rates data. It's possible to edit tax rate, but system will not allow to change value of rate that was used in the past. Also isn't possible to delete that rate.
Link 'Add tax rate' moves you to the form, where you can define a new rate. Tax rate label is displayed on select lists and invoice printout. Value of tax rate is a number from 0 to 100 with two decimal places precision. Taxing status is used for tax-free rate, that means the rest of defined tax rates should have taxing enabled.
Tax rate which will be selected by default on lists is defined by default_taxrate option in section [phpui].
This feature allows you to add unique numbering plan (numbering sequence) for each type of documents created in LMS. It's also possible to define different sequences within one type of documents. For each document type you might define default sequence (important, ie. when you're issuing invoices automatically, as perl scripts or daemon will use this default scheme when creating new document).
For each sequence you should also define time span, that is period in which sequence numbers will be unique. When time span selected will reach its end, sequence will be zeroed. You are able to set period to one of: daily, weekly (Monday to Sunday), monthly, quarterly or annually.
Numbering plans list consist of all its identifying information included, followed by example number generated using this plan plus number of documents created with this plan. You might select 'Add plan' to enter new sequence. Editing is possible by clicking the field that you want to change. Deletion of plan is only possible when no documents has been created with that yet.
Sequence template might be any string, which consist some of symbols (specifiers) known from PHP strftime function. Detailed information and list of all symbols can be find in PHP Manual. The most important and the only required symbol in sequence template is '%N', which will be substituted with incremented document number. All other symbols will expand to document's date of issue. Below you can find most popular ones:
%N - integer number, uniquely identifying document
%[1-9]N - as above, but with leading zeroes, ie. '%4N' will return '0012' for 12
%I - additional part of number (works with cash documents only)
%Y - year as a 4 digit number
%y - year as a 2 digit number
%m - month number with leading zero (01 to 12)
%b - short month name (according to system locales)
If you have no numbering plans defined, each document will take default number as of '%N/LMS/%Y' with annual time span.
Divisions/Companies are used for customers grouping. You should create at least one division. You can define division's short and long names, address bank account (or mass-payments account prefix) and other data for invoices. Locked division cannot be assigned to customer.
This section defines host names of those machines (routers, servers) that read its configuration from LMS database and where scripts or lmsd daemon will be setup.
Each host name should be unique and it's recommended to be machine's real name, which could be obtained by running hostname command on each of them (assuming they're all u*ix hosts).
When you create hosts list, you will be able to configure daemon lmsd. Daemon configuration is described in appropriate chapter.
It's possible to import customer payments from many sources (banks). Here you can define its names/description. Then you will able to select source from the list to add/import payments or some create payments reports.