summaryrefslogtreecommitdiffstats
path: root/Configuration.md
blob: b0190413cbd8c0b952ccd90893b3a985b35ca91c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
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 `<html>` 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 `<span>` element which contains a further description of the emoticon within the `title` attribute.

* `WRAP_EMOTICONS`: [bool: `TRUE`|`FALSE`]

## `<meta>` description
Number of characters of the items content to display within the `<meta>` 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'`]