This document describes the available configuration settings of the `configuration.php` file in more detail. ## Language configuration This is the core language which will be used. A corresponding language file **must exists** within `core/language/`. Currently only `en` and `de` are supported. If you are a translator, please only use the original `en` language file for your translation and open a pull request on GitHub or send your language file via email to `code@nerdmind.de`! * `CORE.LANGUAGE`: [string: `'en'`] ## ETag configuration If `CORE.SEND_304` is set to `TRUE`, the application generates an `ETag` response header on each request which consists of a hash value based on the timestamps of the last created/edited items. The client will cache this information and sends it with the next request (inside the request header `If-None-Match`) back to the application. **Application sends `ETag` header:** ~~~ ETag: "241d9ec9cb7526853698590929f06ae9-gzip" ~~~ **Client sends `If-None-Match` header on next request:** ~~~ If-None-Match: "241d9ec9cb7526853698590929f06ae9-gzip" ~~~ The application now calculates again a hash value of the last created/edited items and compares it to the hash of the `If-None-Match` request header which was sent by the client. If these two hash values are **the same**, then obviously no new items have been created/edited since the last request by the client. Therefore, the application immediately exits and returns the `304 Not Modified` HTTP response status. * `CORE.SEND_304`: [bool: `TRUE`|`FALSE`] ## Blog informations Meta informations about your custom blog installation. Please note that `BLOGMETA.LANG` is not the system language! It is the language in which **your content** is written and is useful for the `lang` attribute on the `` tag within the template. It depends on the template whether this variable is used or not. * `BLOGMETA.NAME`: [string: `'My Techblog'`] * `BLOGMETA.DESC`: [string: `'[a creative description]'`] * `BLOGMETA.HOME`: [string: `'Welcome'`] * `BLOGMETA.MAIL`: [string: `'webmaster@example.org'`] * `BLOGMETA.LANG`: [string: `'en'`] ## Database Database and hostname with login credentials to authenticate to the MariaDB/MySQL server. * `DATABASE.HOSTNAME`: [string: `'localhost'`] * `DATABASE.BASENAME`: [string: `'niceblog'`] * `DATABASE.USERNAME`: [string: `'john_doe'`] * `DATABASE.PASSWORD`: [string: `'#passwd#'`] ## Migrator Enable or disable the Migrator which checks for outstanding database schema migrations. * `MIGRATOR.ENABLED`: [bool: `TRUE`|`FALSE`] ## Backend Settings for the administration area. A corresponding language file **must exists** within the template directory of the template defined by `ADMIN.TEMPLATE`! * `ADMIN.TEMPLATE`: [string: `'admin'`] * `ADMIN.LANGUAGE`: [string: `'en'`] ## Template Template directory and language (from `template/{template_name}/lang/`) to use. * `TEMPLATE.NAME`: [string: `'default'`] * `TEMPLATE.LANG`: [string: `'en'`] ## Paths Protocol, hostname and base directory of your installation. * `PATHINFO.PROT`: [string: `'https'`] * `PATHINFO.HOST`: [string: `'example.org'`] * `PATHINFO.BASE`: [string: `'sub/directory/'`] ## List size Number of items to display per-site on overview sites. * `CATEGORY.LIST_SIZE`: [integer: `10`] * `PAGE.LIST_SIZE`: [integer: `10`] * `POST.LIST_SIZE`: [integer: `10`] * `USER.LIST_SIZE`: [integer: `10`] * `ADMIN.CATEGORY.LIST_SIZE`: [integer: `12`] * `ADMIN.PAGE.LIST_SIZE`: [integer: `12`] * `ADMIN.POST.LIST_SIZE`: [integer: `12`] * `ADMIN.USER.LIST_SIZE`: [integer: `10`] ## Feed size Number of items to display within the RSS feed. * `POST.FEED_SIZE`: [integer: `10`] ## Slug URLs Enable or disable the use of slug URLs for item permalinks. If disabled, the unique primary item ID is used instead. * `CATEGORY.SLUG_URLS`: [bool: `TRUE`|`FALSE`] * `PAGE.SLUG_URLS`: [bool: `TRUE`|`FALSE`] * `POST.SLUG_URLS`: [bool: `TRUE`|`FALSE`] * `USER.SLUG_URLS`: [bool: `TRUE`|`FALSE`] ## Redirect single items Enable or disable the redirection from the overviews to the items primary page if only one item of the specific type exists. For example, if you only have one user and `USER.REDIRECT_SINGLE` is set to `TRUE`, requests to `/user/` will be automatically `302`-redirected to `/user/username/` (or `/user/id/`). * `CATEGORY.REDIRECT_SINGLE`: [bool: `TRUE`|`FALSE`] * `PAGE.REDIRECT_SINGLE`: [bool: `TRUE`|`FALSE`] * `POST.REDIRECT_SINGLE`: [bool: `TRUE`|`FALSE`] * `USER.REDIRECT_SINGLE`: [bool: `TRUE`|`FALSE`] ## Directories Item base directories relative to your base directory where the application is installed. * `CATEGORY.DIRECTORY`: [string: `'category'`] * `PAGE.DIRECTORY`: [string: `'page'`] * `POST.DIRECTORY`: [string: `'post'`] * `USER.DIRECTORY`: [string: `'user'`] ## Emoticon descriptions Enable or disable the wrapping of emoticons found in the content of an item into a `` element which contains a further description of the emoticon within the `title` attribute. * `WRAP_EMOTICONS`: [bool: `TRUE`|`FALSE`] ## `` description Number of characters of the items content to display within the `` description. * `CATEGORY.DESCRIPTION_SIZE`: [integer: `200`] * `PAGE.DESCRIPTION_SIZE`: [integer: `200`] * `POST.DESCRIPTION_SIZE`: [integer: `200`] * `USER.DESCRIPTION_SIZE`: [integer: `200`] ## Item overview sorting The `ORDER BY` clause for item sorting on item overview sites. You can use each column from the database table to sort and you also can combine multiple columns together. See the [MySQL documentation for `ORDER BY`](https://dev.mysql.com/doc/refman/5.6/en/sorting-rows.html) for more instructions. * `CATEGORY.LIST_SORT`: [string: `'name ASC'`] This option is currently used only for the list sorting of child categories in a category! * `PAGE.LIST_SORT`: [string: `'time_insert DESC'`] * `POST.LIST_SORT`: [string: `'time_insert DESC'`] * `USER.LIST_SORT`: [string: `'time_insert DESC'`] * `ADMIN.PAGE.LIST_SORT`: [string: `'time_insert DESC'`] * `ADMIN.POST.LIST_SORT`: [string: `'time_insert DESC'`] * `ADMIN.USER.LIST_SORT`: [string: `'time_insert DESC'`] ## Feed sorting The `ORDER BY` clause for item sorting within the RSS feed. You can use each column from the database table to sort and you also can combine multiple columns together. See the [MySQL documentation for `ORDER BY`](https://dev.mysql.com/doc/refman/5.6/en/sorting-rows.html) for more instructions. **Note:** It depends on the RSS reader how the content is sorted. The settings here are only for the sorting of the content **in the raw XML** source code, but it is nevertheless a good idea to sort them in the order as they shall appear in the RSS reader. * `POST.FEED_SORT`: [string: `'time_insert DESC'`]