Merge pull request #12221 from MrPetovan/bug/warnings

Fix various PHP 8 deprecations
This commit is contained in:
Tobias Diekershoff 2022-11-20 08:21:06 +01:00 committed by GitHub
commit eec48057dc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 127 additions and 162 deletions

View file

@ -115,76 +115,40 @@ class Page implements ArrayAccess
} }
} }
// ArrayAccess interface
/** /**
* Whether a offset exists * @inheritDoc
*
* @link https://php.net/manual/en/arrayaccess.offsetexists.php
*
* @param mixed $offset <p>
* An offset to check for.
* </p>
*
* @return boolean true on success or false on failure.
* </p>
* <p>
* The return value will be casted to boolean if non-boolean was returned.
* @since 5.0.0
*/ */
#[\ReturnTypeWillChange]
public function offsetExists($offset): bool public function offsetExists($offset): bool
{ {
return isset($this->page[$offset]); return isset($this->page[$offset]);
} }
/** /**
* Offset to retrieve * @inheritDoc
*
* @link https://php.net/manual/en/arrayaccess.offsetget.php
*
* @param mixed $offset <p>
* The offset to retrieve.
* </p>
*
* @return mixed Can return all value types.
* @since 5.0.0
*/ */
#[\ReturnTypeWillChange]
public function offsetGet($offset) public function offsetGet($offset)
{ {
return $this->page[$offset] ?? null; return $this->page[$offset] ?? null;
} }
/** /**
* Offset to set * @inheritDoc
*
* @link https://php.net/manual/en/arrayaccess.offsetset.php
*
* @param mixed $offset <p>
* The offset to assign the value to.
* </p>
* @param mixed $value <p>
* The value to set.
* </p>
*
* @return void
* @since 5.0.0
*/ */
public function offsetSet($offset, $value) #[\ReturnTypeWillChange]
public function offsetSet($offset, $value): void
{ {
$this->page[$offset] = $value; $this->page[$offset] = $value;
} }
/** /**
* Offset to unset * @inheritDoc
*
* @link https://php.net/manual/en/arrayaccess.offsetunset.php
*
* @param mixed $offset <p>
* The offset to unset.
* </p>
*
* @return void
* @since 5.0.0
*/ */
public function offsetUnset($offset) #[\ReturnTypeWillChange]
public function offsetUnset($offset): void
{ {
if (isset($this->page[$offset])) { if (isset($this->page[$offset])) {
unset($this->page[$offset]); unset($this->page[$offset]);

View file

@ -244,12 +244,8 @@ class Nav
} }
$gdirpath = 'directory'; $gdirpath = 'directory';
if (DI::config()->get('system', 'singleuser') && DI::config()->get('system', 'directory')) {
if (strlen(DI::config()->get('system', 'singleuser'))) { $gdirpath = Profile::zrl(DI::config()->get('system', 'directory'), true);
$gdir = DI::config()->get('system', 'directory');
if (strlen($gdir)) {
$gdirpath = Profile::zrl($gdir, true);
}
} }
if ((DI::userSession()->getLocalUserId() || DI::config()->get('system', 'community_page_style') != Community::DISABLED_VISITOR) && if ((DI::userSession()->getLocalUserId() || DI::config()->get('system', 'community_page_style') != Community::DISABLED_VISITOR) &&

View file

@ -43,12 +43,12 @@ use Psr\Log\NullLogger;
*/ */
class Database class Database
{ {
const PDO = 'pdo'; const PDO = 'pdo';
const MYSQLI = 'mysqli'; const MYSQLI = 'mysqli';
const INSERT_DEFAULT = 0; const INSERT_DEFAULT = 0;
const INSERT_UPDATE = 1; const INSERT_UPDATE = 1;
const INSERT_IGNORE = 2; const INSERT_IGNORE = 2;
protected $connected = false; protected $connected = false;
@ -64,18 +64,18 @@ class Database
* @var LoggerInterface * @var LoggerInterface
*/ */
protected $logger; protected $logger;
protected $server_info = ''; protected $server_info = '';
/** @var PDO|mysqli */ /** @var PDO|mysqli */
protected $connection; protected $connection;
protected $driver = ''; protected $driver = '';
protected $pdo_emulate_prepares = false; protected $pdo_emulate_prepares = false;
private $error = ''; private $error = '';
private $errorno = 0; private $errorno = 0;
private $affected_rows = 0; private $affected_rows = 0;
protected $in_transaction = false; protected $in_transaction = false;
protected $in_retrial = false; protected $in_retrial = false;
protected $testmode = false; protected $testmode = false;
private $relation = []; private $relation = [];
/** @var DbaDefinition */ /** @var DbaDefinition */
protected $dbaDefinition; protected $dbaDefinition;
/** @var ViewDefinition */ /** @var ViewDefinition */
@ -112,23 +112,22 @@ class Database
$port = 0; $port = 0;
$serveraddr = trim($this->configCache->get('database', 'hostname')); $serveraddr = trim($this->configCache->get('database', 'hostname'));
$serverdata = explode(':', $serveraddr); $serverdata = explode(':', $serveraddr);
$server = $serverdata[0]; $host = trim($serverdata[0]);
if (count($serverdata) > 1) { if (count($serverdata) > 1) {
$port = trim($serverdata[1]); $port = trim($serverdata[1]);
} }
if (!empty(trim($this->configCache->get('database', 'port')))) { if (trim($this->configCache->get('database', 'port') ?? 0)) {
$port = trim($this->configCache->get('database', 'port')); $port = trim($this->configCache->get('database', 'port') ?? 0);
} }
$server = trim($server); $user = trim($this->configCache->get('database', 'username'));
$user = trim($this->configCache->get('database', 'username')); $pass = trim($this->configCache->get('database', 'password'));
$pass = trim($this->configCache->get('database', 'password')); $database = trim($this->configCache->get('database', 'database'));
$db = trim($this->configCache->get('database', 'database')); $charset = trim($this->configCache->get('database', 'charset'));
$charset = trim($this->configCache->get('database', 'charset')); $socket = trim($this->configCache->get('database', 'socket'));
$socket = trim($this->configCache->get('database', 'socket'));
if (!(strlen($server) && strlen($user))) { if (!$host && !$socket || !$user) {
return false; return false;
} }
@ -138,19 +137,20 @@ class Database
if (!$this->configCache->get('database', 'disable_pdo') && class_exists('\PDO') && in_array('mysql', PDO::getAvailableDrivers())) { if (!$this->configCache->get('database', 'disable_pdo') && class_exists('\PDO') && in_array('mysql', PDO::getAvailableDrivers())) {
$this->driver = self::PDO; $this->driver = self::PDO;
$connect = "mysql:host=" . $server . ";dbname=" . $db; if ($socket) {
$connect = 'mysql:unix_socket=' . $socket;
if ($port > 0) { } else {
$connect .= ";port=" . $port; $connect = 'mysql:host=' . $host;
if ($port > 0) {
$connect .= ';port=' . $port;
}
} }
if ($charset) { if ($charset) {
$connect .= ";charset=" . $charset; $connect .= ';charset=' . $charset;
} }
if ($socket) { $connect .= ';dbname=' . $database;
$connect .= ";$unix_socket=" . $socket;
}
try { try {
$this->connection = @new PDO($connect, $user, $pass, [PDO::ATTR_PERSISTENT => $persistent]); $this->connection = @new PDO($connect, $user, $pass, [PDO::ATTR_PERSISTENT => $persistent]);
@ -165,10 +165,12 @@ class Database
if (!$this->connected && class_exists('\mysqli')) { if (!$this->connected && class_exists('\mysqli')) {
$this->driver = self::MYSQLI; $this->driver = self::MYSQLI;
if ($port > 0) { if ($socket) {
$this->connection = @new mysqli($server, $user, $pass, $db, $port); $this->connection = @new mysqli(null, $user, $pass, $database, null, $socket);
} elseif ($port > 0) {
$this->connection = @new mysqli($host, $user, $pass, $database, $port);
} else { } else {
$this->connection = @new mysqli($server, $user, $pass, $db); $this->connection = @new mysqli($host, $user, $pass, $database);
} }
if (!mysqli_connect_errno()) { if (!mysqli_connect_errno()) {
@ -177,11 +179,6 @@ class Database
if ($charset) { if ($charset) {
$this->connection->set_charset($charset); $this->connection->set_charset($charset);
} }
if ($socket) {
$this->connection->set_socket($socket);
}
} }
} }
@ -198,6 +195,7 @@ class Database
{ {
$this->testmode = $test; $this->testmode = $test;
} }
/** /**
* Sets the logger for DBA * Sets the logger for DBA
* *
@ -222,6 +220,7 @@ class Database
{ {
$this->profiler = $profiler; $this->profiler = $profiler;
} }
/** /**
* Disconnects the current database connection * Disconnects the current database connection
*/ */
@ -338,12 +337,12 @@ class Database
} }
$watchlist = explode(',', $this->configCache->get('system', 'db_log_index_watch')); $watchlist = explode(',', $this->configCache->get('system', 'db_log_index_watch'));
$denylist = explode(',', $this->configCache->get('system', 'db_log_index_denylist')); $denylist = explode(',', $this->configCache->get('system', 'db_log_index_denylist'));
while ($row = $this->fetch($r)) { while ($row = $this->fetch($r)) {
if ((intval($this->configCache->get('system', 'db_loglimit_index')) > 0)) { if ((intval($this->configCache->get('system', 'db_loglimit_index')) > 0)) {
$log = (in_array($row['key'], $watchlist) && $log = (in_array($row['key'], $watchlist) &&
($row['rows'] >= intval($this->configCache->get('system', 'db_loglimit_index')))); ($row['rows'] >= intval($this->configCache->get('system', 'db_loglimit_index'))));
} else { } else {
$log = false; $log = false;
} }
@ -358,11 +357,15 @@ class Database
if ($log) { if ($log) {
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
@file_put_contents($this->configCache->get('system', 'db_log_index'), DateTimeFormat::utcNow() . "\t" . @file_put_contents(
$row['key'] . "\t" . $row['rows'] . "\t" . $row['Extra'] . "\t" . $this->configCache->get('system', 'db_log_index'),
basename($backtrace[1]["file"]) . "\t" . DateTimeFormat::utcNow() . "\t" .
$backtrace[1]["line"] . "\t" . $backtrace[2]["function"] . "\t" . $row['key'] . "\t" . $row['rows'] . "\t" . $row['Extra'] . "\t" .
substr($query, 0, 4000) . "\n", FILE_APPEND); basename($backtrace[1]["file"]) . "\t" .
$backtrace[1]["line"] . "\t" . $backtrace[2]["function"] . "\t" .
substr($query, 0, 4000) . "\n",
FILE_APPEND
);
} }
} }
} }
@ -449,7 +452,7 @@ class Database
{ {
$server_info = $this->serverInfo(); $server_info = $this->serverInfo();
if (version_compare($server_info, '5.7.5', '<') || if (version_compare($server_info, '5.7.5', '<') ||
(stripos($server_info, 'MariaDB') !== false)) { (stripos($server_info, 'MariaDB') !== false)) {
$sql = str_ireplace('ANY_VALUE(', 'MIN(', $sql); $sql = str_ireplace('ANY_VALUE(', 'MIN(', $sql);
} }
return $sql; return $sql;
@ -647,7 +650,7 @@ class Database
} elseif (is_string($args[$param])) { } elseif (is_string($args[$param])) {
$param_types .= 's'; $param_types .= 's';
} elseif (is_object($args[$param]) && method_exists($args[$param], '__toString')) { } elseif (is_object($args[$param]) && method_exists($args[$param], '__toString')) {
$param_types .= 's'; $param_types .= 's';
$args[$param] = (string)$args[$param]; $args[$param] = (string)$args[$param];
} else { } else {
$param_types .= 'b'; $param_types .= 'b';
@ -743,10 +746,14 @@ class Database
$duration = round($duration, 3); $duration = round($duration, 3);
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
@file_put_contents($this->configCache->get('system', 'db_log'), DateTimeFormat::utcNow() . "\t" . $duration . "\t" . @file_put_contents(
basename($backtrace[1]["file"]) . "\t" . $this->configCache->get('system', 'db_log'),
$backtrace[1]["line"] . "\t" . $backtrace[2]["function"] . "\t" . DateTimeFormat::utcNow() . "\t" . $duration . "\t" .
substr($this->replaceParameters($sql, $args), 0, 4000) . "\n", FILE_APPEND); basename($backtrace[1]["file"]) . "\t" .
$backtrace[1]["line"] . "\t" . $backtrace[2]["function"] . "\t" .
substr($this->replaceParameters($sql, $args), 0, 4000) . "\n",
FILE_APPEND
);
} }
} }
return $retval; return $retval;
@ -1365,7 +1372,7 @@ class Database
. $condition_string; . $condition_string;
// Combines the updated fields parameter values with the condition parameter values // Combines the updated fields parameter values with the condition parameter values
$params = array_merge(array_values($fields), $condition); $params = array_merge(array_values($fields), $condition);
return $this->e($sql, $params); return $this->e($sql, $params);
} }
@ -1438,8 +1445,7 @@ class Database
} }
} }
array_walk($fields, function(&$value, $key) use ($options) array_walk($fields, function (&$value, $key) use ($options) {
{
$field = $value; $field = $value;
$value = DBA::quoteIdentifier($field); $value = DBA::quoteIdentifier($field);
@ -1487,7 +1493,7 @@ class Database
} }
if (count($fields) > 0) { if (count($fields) > 0) {
$fields = $this->escapeFields($fields, $params); $fields = $this->escapeFields($fields, $params);
$select_string = implode(', ', $fields); $select_string = implode(', ', $fields);
} else { } else {
$select_string = '*'; $select_string = '*';
@ -1827,16 +1833,16 @@ class Database
/** /**
* Replaces a string in the provided fields of the provided table * Replaces a string in the provided fields of the provided table
* *
* @param string $table Table name * @param string $table Table name
* @param array $fields List of field names in the provided table * @param array $fields List of field names in the provided table
* @param string $search String to search for * @param string $search String to search for
* @param string $replace String to replace with * @param string $replace String to replace with
* @return void * @return void
* @throws \Exception * @throws \Exception
*/ */
public function replaceInTableFields(string $table, array $fields, string $search, string $replace) public function replaceInTableFields(string $table, array $fields, string $search, string $replace)
{ {
$search = $this->escape($search); $search = $this->escape($search);
$replace = $this->escape($replace); $replace = $this->escape($replace);
$upd = []; $upd = [];

View file

@ -383,7 +383,7 @@ class APContact
// kroeg:blocks, updated // kroeg:blocks, updated
// When the photo is too large, try to shorten it by removing parts // When the photo is too large, try to shorten it by removing parts
if (strlen($apcontact['photo']) > 255) { if (strlen($apcontact['photo'] ?? '') > 255) {
$parts = parse_url($apcontact['photo']); $parts = parse_url($apcontact['photo']);
unset($parts['fragment']); unset($parts['fragment']);
$apcontact['photo'] = (string)Uri::fromParts($parts); $apcontact['photo'] = (string)Uri::fromParts($parts);

View file

@ -337,7 +337,7 @@ class Item
* generate a resource-id and therefore aren't intimately linked to the item. * generate a resource-id and therefore aren't intimately linked to the item.
*/ */
/// @TODO: this should first check if photo is used elsewhere /// @TODO: this should first check if photo is used elsewhere
if (strlen($item['resource-id'])) { if ($item['resource-id']) {
Photo::delete(['resource-id' => $item['resource-id'], 'uid' => $item['uid']]); Photo::delete(['resource-id' => $item['resource-id'], 'uid' => $item['uid']]);
} }

View file

@ -160,7 +160,7 @@ class ParsedLogIterator implements \Iterator
* @see Iterator::next() * @see Iterator::next()
* @return void * @return void
*/ */
public function next() public function next(): void
{ {
$parsed = $this->read(); $parsed = $this->read();
@ -177,7 +177,7 @@ class ParsedLogIterator implements \Iterator
* @see Iterator::rewind() * @see Iterator::rewind()
* @return void * @return void
*/ */
public function rewind() public function rewind(): void
{ {
$this->value = null; $this->value = null;
$this->reader->rewind(); $this->reader->rewind();
@ -200,9 +200,9 @@ class ParsedLogIterator implements \Iterator
* Return current iterator value * Return current iterator value
* *
* @see Iterator::current() * @see Iterator::current()
* @return ?ParsedLogLing * @return ?ParsedLogLine
*/ */
public function current() public function current(): ?ParsedLogLine
{ {
return $this->value; return $this->value;
} }

View file

@ -687,7 +687,7 @@ class Media
$previews[] = $medium['preview']; $previews[] = $medium['preview'];
} }
$type = explode('/', current(explode(';', $medium['mimetype']))); $type = explode('/', explode(';', $medium['mimetype'])[0]);
if (count($type) < 2) { if (count($type) < 2) {
Logger::info('Unknown MimeType', ['type' => $type, 'media' => $medium]); Logger::info('Unknown MimeType', ['type' => $type, 'media' => $medium]);
$filetype = 'unkn'; $filetype = 'unkn';

View file

@ -46,7 +46,7 @@ class Home extends BaseModule
DI::baseUrl()->redirect('network'); DI::baseUrl()->redirect('network');
} }
if (strlen($config->get('system', 'singleuser'))) { if ($config->get('system', 'singleuser')) {
DI::baseUrl()->redirect('/profile/' . $config->get('system', 'singleuser')); DI::baseUrl()->redirect('/profile/' . $config->get('system', 'singleuser'));
} }

View file

@ -254,7 +254,7 @@ class HttpClient implements ICanSendHttpRequests
$urlResult = $this->resolver->resolveURL($url); $urlResult = $this->resolver->resolveURL($url);
if ($urlResult->didErrorOccur()) { if ($urlResult->didErrorOccur()) {
throw new TransferException($urlResult->getErrorMessageString(), $urlResult->getHTTPStatusCode()); throw new TransferException($urlResult->getErrorMessageString(), $urlResult->getHTTPStatusCode() ?? 0);
} }
return $urlResult->getURL(); return $urlResult->getURL();

View file

@ -80,7 +80,7 @@ interface IEmail extends JsonSerializable
* *
* @return string * @return string
*/ */
function getMessage(bool $plain = false); function getMessage(bool $plain = false): string;
/** /**
* Gets the additional mail header array * Gets the additional mail header array

View file

@ -110,12 +110,12 @@ class Email implements IEmail
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function getMessage(bool $plain = false) public function getMessage(bool $plain = false): string
{ {
if ($plain) { if ($plain) {
return $this->msgText; return $this->msgText;
} else { } else {
return $this->msgHtml; return $this->msgHtml ?? '';
} }
} }

View file

@ -3638,7 +3638,7 @@ class Diaspora
Logger::info('Got relayable data ' . $type . ' for item ' . $item['guid'] . ' (' . $item['id'] . ')'); Logger::info('Got relayable data ' . $type . ' for item ' . $item['guid'] . ' (' . $item['id'] . ')');
$msg = json_decode($item['signed_text'], true); $msg = json_decode($item['signed_text'] ?? '', true);
$message = []; $message = [];
if (is_array($msg)) { if (is_array($msg)) {

View file

@ -81,7 +81,7 @@ final class FriendicaSmartyEngine extends TemplateEngine
// "middleware": inject variables into templates // "middleware": inject variables into templates
$arr = [ $arr = [
'template' => basename($this->smarty->filename), 'template' => basename($this->smarty->filename ?? ''),
'vars' => $vars 'vars' => $vars
]; ];
Hook::callAll('template_vars', $arr); Hook::callAll('template_vars', $arr);

View file

@ -336,7 +336,7 @@ class Notifier
foreach ($items as $item) { foreach ($items as $item) {
$recipients[] = $item['contact-id']; $recipients[] = $item['contact-id'];
// pull out additional tagged people to notify (if public message) // pull out additional tagged people to notify (if public message)
if ($public_message && strlen($item['inform'])) { if ($public_message && $item['inform']) {
$people = explode(',',$item['inform']); $people = explode(',',$item['inform']);
foreach ($people as $person) { foreach ($people as $person) {
if (substr($person,0,4) === 'cid:') { if (substr($person,0,4) === 'cid:') {

View file

@ -38,12 +38,12 @@ return [
'port' => null, 'port' => null,
// socket (String) // socket (String)
// Socket of the database server. // Socket of the database server.
// Can be used instead of adding a socket location to the hostname // Can be used instead of adding a socket location to the hostname
'socket' => '', 'socket' => '',
// user (String) // user (String)
// Database user name. Please don't use "root". // Database username. Please don't use "root".
'username' => '', 'username' => '',
// pass (String) // pass (String)
@ -64,7 +64,7 @@ return [
'pdo_emulate_prepares' => true, 'pdo_emulate_prepares' => true,
// disable_pdo (Boolean) // disable_pdo (Boolean)
// PDO is used by default (if available). Otherwise MySQLi will be used. // PDO is used by default (if available). Otherwise, MySQLi will be used.
'disable_pdo' => false, 'disable_pdo' => false,
// persistent (Boolean) // persistent (Boolean)
@ -145,7 +145,7 @@ return [
'block_local_dir' => false, 'block_local_dir' => false,
// blocked_tags (String) // blocked_tags (String)
// Comma separated list of hash tags that shouldn't be displayed in the trending tags // Comma separated list of hashtags that shouldn't be displayed in the trending tags
'blocked_tags' => '', 'blocked_tags' => '',
// community_no_sharer (Boolean) // community_no_sharer (Boolean)
@ -153,7 +153,7 @@ return [
'community_no_sharer' => false, 'community_no_sharer' => false,
// contact_update_limit (Integer) // contact_update_limit (Integer)
// How much contacts should be checked at a time? // How many contacts should be checked at a time?
'contact_update_limit' => 100, 'contact_update_limit' => 100,
// cron_interval (Integer) // cron_interval (Integer)
@ -259,7 +259,7 @@ return [
'disable_implicit_mentions' => false, 'disable_implicit_mentions' => false,
// disable_url_validation (Boolean) // disable_url_validation (Boolean)
// Disables the DNS lookup of an URL. // Disables the DNS lookup of a URL.
'disable_url_validation' => false, 'disable_url_validation' => false,
// disable_password_exposed (Boolean) // disable_password_exposed (Boolean)
@ -300,11 +300,11 @@ return [
// groupedit_image_limit (Integer) // groupedit_image_limit (Integer)
// Number of contacts at which the group editor should switch from display the profile pictures of the contacts to only display the names. // Number of contacts at which the group editor should switch from display the profile pictures of the contacts to only display the names.
// This can alternatively be set on a per account basis in the pconfig table. // This can alternatively be set on a per-account basis in the pconfig table.
'groupedit_image_limit' => 400, 'groupedit_image_limit' => 400,
// gserver_update_limit (Integer) // gserver_update_limit (Integer)
// How much servers should be checked at a time? // How many servers should be checked at a time?
'gserver_update_limit' => 100, 'gserver_update_limit' => 100,
// hsts (Boolean) // hsts (Boolean)
@ -330,7 +330,7 @@ return [
'ipv4_resolve' => false, 'ipv4_resolve' => false,
// invitation_only (Boolean) // invitation_only (Boolean)
// If set true registration is only possible after a current member of the node has send an invitation. // If set true registration is only possible after a current member of the node has sent an invitation.
'invitation_only' => false, 'invitation_only' => false,
// itemspage_network (Integer) // itemspage_network (Integer)
@ -415,13 +415,13 @@ return [
// max_image_length (Integer) // max_image_length (Integer)
// An alternate way of limiting picture upload sizes. // An alternate way of limiting picture upload sizes.
// Specify the maximum pixel length that pictures are allowed to be (for non-square pictures, it will apply to the longest side). // Specify the maximum pixel length that pictures are allowed to be (for non-square pictures, it will apply to the longest side).
// Pictures longer than this length will be resized to be this length (on the longest side, the other side will be scaled appropriately). // Pictures longer than this length will be resized to be this length (on the longest side, the other side will be scaled appropriately).
// If you don't want to set a maximum length, set to -1. // If you don't want to set a maximum length, set to -1.
'max_image_length' => -1, 'max_image_length' => -1,
// max_likers (Integer) // max_likers (Integer)
// Maximum number of "people who like (or don't like) this" that we will list by name // Maximum number of "people who like (or don't like) this" that we will list by name
'max_likers' => 75, 'max_likers' => 75,
// max_processes_backend (Integer) // max_processes_backend (Integer)
@ -483,7 +483,7 @@ return [
'paranoia' => false, 'paranoia' => false,
// permit_crawling (Boolean) // permit_crawling (Boolean)
// Restricts the search for not logged in users to one search per minute. // Restricts the search for not logged-in users to one search per minute.
'permit_crawling' => false, 'permit_crawling' => false,
// pidfile (Path) // pidfile (Path)
@ -491,7 +491,7 @@ return [
'pidfile' => '', 'pidfile' => '',
// png_quality (Integer) // png_quality (Integer)
// Sets the ImageMagick compression level for PNG images. Values ranges from 0 (uncompressed) to 9 (most compressed). // Sets the ImageMagick compression level for PNG images. Values range from 0 (uncompressed) to 9 (most compressed).
'png_quality' => 8, 'png_quality' => 8,
// profiler (Boolean) // profiler (Boolean)
@ -568,11 +568,11 @@ return [
'set_creation_date' => false, 'set_creation_date' => false,
// show_global_community_hint (Boolean) // show_global_community_hint (Boolean)
// When the global community page is enabled, use this option to display a hint above the stream, that this is a collection of all public top-level postings that arrive on your node. // When the global community page is enabled, use this option to display a hint above the stream, that this is a collection of all public top-level postings that arrive at your node.
'show_global_community_hint' => false, 'show_global_community_hint' => false,
// show_received (Boolean) // show_received (Boolean)
// Show the receive data along with the post creation date // Show the received date along with the post creation date
'show_received' => true, 'show_received' => true,
// show_received_seconds (Integer) // show_received_seconds (Integer)
@ -609,13 +609,13 @@ return [
// username_min_length (Integer) // username_min_length (Integer)
// The minimum character length a username can be. // The minimum character length a username can be.
// This length is check once the username has been trimmed and multiple spaces have been collapsed into one. // This length is checked once the username has been trimmed and multiple spaces have been collapsed into one.
// Minimum for this config value is 1. Maximum is 64 as the resulting profile URL mustn't be longer than 255 chars. // Minimum for this config value is 1. Maximum is 64 as the resulting profile URL mustn't be longer than 255 chars.
'username_min_length' => 3, 'username_min_length' => 3,
// username_max_length (Integer) // username_max_length (Integer)
// The maximum character length a username can be. // The maximum character length a username can be.
// This length is check once the username has been trimmed and multiple spaces have been collapsed into one. // This length is checked once the username has been trimmed and multiple spaces have been collapsed into one.
// Minimum for this config value is 1. Maximum is 64 as the resulting profile URL mustn't be longer than 255 chars. // Minimum for this config value is 1. Maximum is 64 as the resulting profile URL mustn't be longer than 255 chars.
'username_max_length' => 48, 'username_max_length' => 48,
@ -738,8 +738,7 @@ return [
'config_dir' => 'view/smarty3', 'config_dir' => 'view/smarty3',
// use_sub_dirs (Boolean) // use_sub_dirs (Boolean)
// By default the template cache is stored in several sub directories. // By default the template cache is stored in several subdirectories.
//
'use_sub_dirs' => true, 'use_sub_dirs' => true,
], ],
]; ];

View file

@ -132,16 +132,16 @@ class Color {
$var_1 = 2 * $L - $var_2; $var_1 = 2 * $L - $var_2;
$r = round(255 * self::_huetorgb( $var_1, $var_2, $H + (1/3) )); $r = 255 * self::_huetorgb( $var_1, $var_2, $H + (1/3) );
$g = round(255 * self::_huetorgb( $var_1, $var_2, $H )); $g = 255 * self::_huetorgb( $var_1, $var_2, $H );
$b = round(255 * self::_huetorgb( $var_1, $var_2, $H - (1/3) )); $b = 255 * self::_huetorgb( $var_1, $var_2, $H - (1/3) );
} }
// Convert to hex // Convert to hex
$r = dechex($r); $r = dechex(round($r));
$g = dechex($g); $g = dechex(round($g));
$b = dechex($b); $b = dechex(round($b));
// Make sure we get 2 digits for decimals // Make sure we get 2 digits for decimals
$r = (strlen("".$r)===1) ? "0".$r:$r; $r = (strlen("".$r)===1) ? "0".$r:$r;