Settings can be changed in three different ways:
From the /hashover/admin/settings
page, where
you can make adjustments to a number of settings visually.
The Admin
column below indicates which settings
are currently available on the admin Settings page.
In the /hashover/config/settings.json
file. Do
not do this if you are not familiar with the
syntax of JSON,
if the file is not properly formatted it will fail to load. The
Name
column below gives each setting's JSON key.
By passing the settings to HashOver in the frontend options.
For more information about this, please view the
Technical
page. The Option
column below indicates which
settings are allowed to be used in this manner.
Example of a valid settings.json
file:
The example below sets the interface language to German, sets the primary comment form position to below the posted comments, and disables the website field.
Note: When settings are loaded from settings.json
or the frontend options their type is checked before being applied,
settings with the wrong type are rejected and a default value will be
used instead. The Type
column below specifies the
expected type for each setting.
Name | Type | Admin | Option | Description |
---|---|---|---|---|
allowed-domains
|
array
|
❌ | ❌ |
There is something called the "same-origin policy" that all modern web browsers follow, along with a security mechanism called "Cross-Origin Resource Sharing" which prevents scripts being delivered by one server from sending requests to another server without having permission to receive a response. This setting is a list of remote domains that are to be allowed to receive responses from HashOver. This allows you to host HashOver on one server while using it on another different server. For example, hosting HashOver on a service that supports PHP, but using it on a host that doesn't support PHP, like GitHub pages. This setting is empty by default, allowing no remote access. |
allows-dislikes
|
boolean
|
✔ | ✔ |
This setting controls whether users may dislike each other's
comments. Setting this to
This setting is |
allows-images
|
boolean
|
✔ | ✔ |
This setting controls whether users can post images in their
comments. Setting this to
This setting is |
allows-likes
|
boolean
|
✔ | ✔ |
This setting controls whether users may like each other's
comments. Setting this to
This setting is |
allows-login
|
boolean
|
✔ | ❌ |
This setting controls whether users are allowed to login. Setting
this to
This setting is |
allows-user-replies
|
boolean
|
✔ | ✔ |
This setting controls whether users are allowed to reply to each
other outside of HashOver over email. Setting this to
This setting is |
appends-css
|
boolean
|
✔ | ✔ |
This setting controls whether the configured theme CSS file is
automatically added to the page. Setting this to
This setting is |
appends-rss
|
boolean
|
✔ | ✔ |
This setting controls whether the comments RSS API is added to
the page. Setting this to
This setting is Note: Web browsers have been removing support for RSS and feed readers have been decreasing in popularity over the last decade. This setting, along with the RSS API, may be removed in the future. |
collapse-limit
|
integer
|
✔ | ✔ |
This setting controls how many comments are shown before they start getting collapsed, when comment collapsing is enabled.
This setting is |
collapses-comments
|
boolean
|
✔ | ✔ |
This setting controls whether the comments get collapsed. Setting
this to
This setting is |
collapses-interface
|
boolean
|
✔ | ✔ |
This setting controls whether the entire HashOver interface gets
collapsed. Setting this to
This setting is |
comments-root
|
string
|
❌ | ❌ | This setting controls the path to the comments directory. The value of this setting is automatically generated, so the default value is unknown. However, this setting exists to allow you to override this automatic default value. This allows you to store the comments outside of your website's root directory for added security. |
cookie-expiration
|
string
|
✔ | ✔ |
This setting controls when cookies set by HashOver expire. This
setting is a relative DateTime format, so cookies expire a
certain number of days or months from the current date. You can
use things like
This setting is |
counts-deletions
|
boolean
|
✔ | ✔ |
This setting controls whether deleted comments get counted.
This setting is |
data-format
|
string
|
✔ | ❌ |
This setting controls how the comments are stored. The available
formats are
This setting is |
date-pattern
|
string
|
✔ | ❌ |
This setting controls how comment post dates are formatted when
the Intl extension is installed. This format is in the
ICU datetime format,
by default the format outputs a date like "January 1, 2020".
The dates are localized automatically based on the locale code
in the
This setting is |
date-format
|
string
|
✔ | ❌ |
This setting controls how comment post dates are formatted. This format is in the PHP DateTime format, by default the format outputs a date like "January 1, 2020".
This setting is |
default-name
|
string
|
✔ | ❌ |
This setting controls what name a user will be given if they don't enter a name when posting their comment. Since a name is not required by default.
This setting is |
default-sorting
|
string
|
✔ | ✔ |
This setting controls the default order comments will appear in. The available options are...
This setting is |
displays-title
|
boolean
|
✔ | ✔ |
This setting controls whether the page title is displayed above
the primary comment form. Setting this to
This setting is |
domain
|
string
|
❌ | ❌ | This setting controls the server domain name. The value of this setting is automatically generated, so the default value is unknown. However, this setting exists to allow you to override this automatic default value. |
email-field
|
string
|
✔ | ✔ |
This setting controls the behavior of the email address field.
Setting this to
This setting is |
enabled-api
|
array
|
❌ | ❌ |
This setting is a list of APIs to enable. The available options
are
This setting is |
form-position
|
string
|
✔ | ✔ |
This setting controls the position of the primary comment form.
Setting this to
This setting is |
gravatar-default
|
string
|
✔ | ✔ |
This setting controls which themed Gravatar default avatars to
use when a user's email address doesn't have a Gravatar avatar
image associated with it. For available options, please see the
Gravatar documentation.
The option
This setting is |
gravatar-force
|
boolean
|
✔ | ✔ |
This setting controls whether the themed Gravatar default avatars are always loaded instead of each user's personal avatar image.
This setting is |
http-backend
|
string
|
❌ | ❌ |
This setting controls the client-side path to the HashOver backend
directory. In a default installation this setting is
/hashover/backend by default, however, the value of
this setting is technically automatically generated, so the default
value is unknown. This setting exists to allow you to override this
automatic default value.
|
http-images
|
string
|
❌ | ❌ |
This setting controls the client-side path to the HashOver images
directory. In a default installation this setting is
/hashover/images by default, however, the value of
this setting is technically automatically generated, so the default
value is unknown. This setting exists to allow you to override this
automatic default value.
|
http-root
|
string
|
❌ | ❌ |
This setting controls the client-side path to the HashOver root
directory. In a default installation this setting is
/hashover by default, however, the value of this
setting is technically automatically generated, so the default
value is unknown. This setting exists to allow you to override this
automatic default value.
|
icon-mode
|
string
|
✔ | ✔ |
This setting controls the type of avatar each comment has. The
available options are
This setting is |
icon-size
|
integer
|
✔ | ✔ |
This setting controls the size of the Gravatar avatar image.
This setting is |
image-format
|
string
|
✔ | ❌ |
This setting controls the type of images used in the interface.
Use
This setting is |
image-types
|
array
|
❌ | ❌ |
This setting is a list of image file extensions that will be
allowed to be posted and displayed in comments using the
This setting is |
language
|
string
|
✔ | ✔ |
This setting controls the language of the HashOver interface, its
locale. A number of languages are currently supported, look in
This setting is |
latest-max
|
integer
|
❌ | ❌ |
This setting controls how many comments will be collected as metadata for the Latest Comments API. Changing this setting does not change the number of comments already collected, so there may be a delay in how many are shown.
This setting is |
local-metadata
|
boolean
|
✔ | ❌ |
This setting controls whether metadata is updated when HashOver
is accessed from within a local network. Setting this to
Metadata about each page using HashOver, such as title and URL, is created or updated every time a request for comments is sent to the HashOver server backend. This is fine for production use, but it might not be desirable in development where each page URL might be different than in production. For example, the domain might be different: example.com vs. 127.0.0.1.
This setting is |
login-method
|
string
|
✔ | ❌ |
This setting controls how user login is handled. Only the original login system, which uses cookies to store the user's information on their system for easy commenting after their first comment, has been implemented currently.
This setting is |
mailer
|
string
|
✔ | ❌ |
This setting controls how email notifications are sent. Setting
this to
Using
This setting is |
mail-type
|
string
|
✔ | ❌ |
This setting controls what format email notifications will be
sent in. Setting this to
This setting is |
minifies-javascript
|
boolean
|
✔ | ✔ |
This setting controls whether the HashOver frontend JavaScript
code will be minified. Minification is a process by which
unnecessary code is removed to reduce the size of the file sent
to the user, which can help save bandwidth. Setting this to
HashOver has a built-in minifier, which reduces the size of the JavaScript by removing code comments and unnecessary lines and other characters. This minifier does not obfuscate the code, and it provides a link to the full original source code as a code comment at the top of the minified output.
This setting is |
minify-level
|
integer
|
✔ | ✔ |
This setting controls the level of minification.
This setting is |
name-field
|
string
|
✔ | ✔ |
This setting controls the behavior of the name field. Setting this
to
This setting is |
password-field
|
string
|
✔ | ✔ |
This setting controls the behavior of the password field. Setting
this to
This setting is |
pends-user-edits
|
boolean
|
✔ | ❌ |
This setting controls whether a comment requires approval when it
is edited by a user. Setting this to
This setting is separate from but complementary to general
comment moderation, the
This setting is |
popularity-limit
|
integer
|
✔ | ✔ |
This setting controls how many comments are allowed to be
considered popular; how many comments will appear in the "Popular
Comments" section. Setting this to
This setting is |
popularity-threshold
|
integer
|
✔ | ✔ |
This setting controls how many net likes are needed for a comment to be considered "popular"; whether they qualify to be shown in the "Popular Comments" section. For this calculation net likes is: number of likes minus number of dislikes.
This setting is |
requires-login
|
boolean
|
❌ | ❌ |
This setting controls whether users must be logged in to comment.
Setting this to
This is a technical setting implemented to allow very restrictive
custom login methods, particularly those designed to integrate
HashOver into a website's own login system to prevent people who
are not logged in to the website itself from posting comments. Do
not set this to
This setting is |
root-directory
|
string
|
❌ | ❌ | This setting controls the path to the HashOver root directory. The value of this setting is automatically generated, so the default value is unknown. This setting exists to allow you to override this automatic default value. |
secure-cookies
|
boolean
|
✔ | ❌ |
This setting controls whether the HashOver cookies will only be
transmitted from the user over a secure HTTPS connection. Setting
this to
This setting is |
sends-notifications
|
string
|
✔ | ✔ |
This setting controls whether HashOver will send notification
emails and to whom. Setting this to
This setting is |
server-timezone
|
string
|
✔ | ✔ |
This setting controls the default timezone used by the server. By
default, the server's timezone will try to be automatically
detected, but if the time is incorrect you will want to set this
manually. This setting expects a timezone location in a common
format, like
This setting is |
sets-cookies
|
boolean
|
✔ | ✔ |
This setting controls whether HashOver will set cookies. Setting
this to
If you are in Europe, you might find it useful to set this to
This setting is |
shows-reply-count
|
boolean
|
✔ | ✔ |
This setting controls whether the number of reply comments are
shown separately from the number of normal comments. Setting this
to
This setting is |
spam-check-modes
|
string
|
✔ | ❌ |
This setting controls which HashOver modes have IP address spam
checking. HashOver has two modes, JavaScript mode and PHP mode,
one or the other or both can have IP address spam checking
enabled. PHP mode is more susceptible to spam attacks, but both
modes can be targeted on popular websites. Setting this to
This setting is |
spam-database
|
string
|
✔ | ❌ |
This setting controls where to find the spam IP address database.
Setting this to
This setting is |
stores-ip-address
|
boolean
|
✔ | ❌ |
This setting controls whether each user's IP address is stored
along with their comment. Setting this to
You should set this
This setting is |
stream-depth
|
integer
|
✔ | ✔ |
This setting controls how many levels of indentation replies have in stream mode.
This setting is |
subscribes-user
|
boolean
|
✔ | ✔ |
This setting controls whether users are subscribed to email
notifications by default. Setting this to
This setting is |
supports-multisites
|
boolean
|
❌ | ❌ |
This setting controls whether comment threads should be separated
by domain names. Setting this to
When using an SQL database, this setting only controls whether
the
This setting is |
theme
|
string
|
✔ | ✔ |
This setting controls the theme, specifically, it controls which theme CSS file to add to the page and which theme directory to load the HTML template from. See the admin Settings page for available themes.
This setting is |
theme-path
|
string
|
❌ | ❌ |
This setting controls the path to the HashOver theme directory. In
a default installation this setting is themes/default
by default, however, the value of this setting is technically
automatically generated, so the default value is unknown. This setting
exists to allow you to override this automatic default value.
|
time-pattern
|
string
|
✔ | ❌ |
This setting controls how comment post times are formatted when the Intl
extension is installed. This format is in the
ICU datetime format,
by default the format outputs a 12-hour time like "12:00 PM". You can use
This setting is |
time-format
|
string
|
✔ | ❌ |
This setting controls how comment post times are formatted.
This format is in the
PHP DateTime format,
by default the format outputs a 12-hour time like "12:00 PM". You can use
This setting is |
unlinks-files
|
boolean
|
❌ | ❌ |
This setting controls whether user deleted comments are actually
deleted from storage. Setting this to
This setting is |
uses-ajax
|
boolean
|
✔ | ✔ |
This setting controls whether most actions in the JavaScript
frontend are performed over asynchronous requests (AJAX). Setting
this to
This setting is |
uses-auto-login
|
boolean
|
✔ | ❌ |
This setting controls whether a user is automatically logged in
when they post their first comment. Setting this to
This setting is |
uses-cancel-buttons
|
boolean
|
✔ | ✔ |
This setting controls whether reply and edit forms have cancel
buttons. Setting this to
This setting is |
uses-labels
|
boolean
|
✔ | ✔ |
This setting controls whether form text inputs have labels.
Setting this to
This setting is |
uses-markdown
|
boolean
|
✔ | ✔ |
This setting controls whether Markdown in comments will be
parsed. Setting this to
This setting is |
uses-moderation
|
boolean
|
✔ | ❌ |
This setting controls whether new comments need to be approved by
the admin user before they will appear to normal users. Setting
this to
This setting is |
uses-short-dates
|
boolean
|
✔ | ✔ |
This setting controls whether the comment post dates use a short
format. Setting this to
This setting is |
uses-user-timezone
|
boolean
|
✔ | ✔ |
This setting controls whether the JavaScript frontend will adjust
the comment post times to the user's timezone. Setting this to
This setting is |
website-field
|
string
|
✔ | ✔ |
This setting controls the behavior of the website field. Setting
this to
This setting is |