mirror of
https://github.com/chevereto/chevereto.git
synced 2026-05-07 00:57:40 +02:00
Automatic push 4.3.4
This commit is contained in:
@@ -1,7 +0,0 @@
|
||||
Chevereto 4.3.3 (2025-05-22)
|
||||
|
||||
- Added configurable cache stampede protection
|
||||
- Added open_basedir section to /dashboard
|
||||
- Fixed bug affecting binary conflicts with open_basedir restrictions
|
||||
- Fixed bug affecting close button on modal boxes
|
||||
- Improved binary detection display at /dashboard
|
||||
5
.package/4.3.4.txt
Normal file
5
.package/4.3.4.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
Chevereto 4.3.4 (2025-05-26)
|
||||
|
||||
- Added disable_functions detection at /dashboard
|
||||
- Fixed layout issue on user profile pages when viewed on large screens
|
||||
- Fixed incorrect alignment of the "powered by" footer on large screens
|
||||
@@ -25,8 +25,8 @@ class CustomTinkerwellDriver extends TinkerwellDriver
|
||||
define('REPL', true);
|
||||
require $projectPath . '/app/legacy/load/loader.php';
|
||||
include loaderHandler(
|
||||
_cookie: [],
|
||||
_env: getCheveretoEnv(),
|
||||
_cookie: [],
|
||||
_files: [],
|
||||
_get: [],
|
||||
_post: [],
|
||||
|
||||
@@ -16,8 +16,8 @@ define('ACCESS', 'web');
|
||||
define('REPL', true);
|
||||
require __DIR__ . '/legacy/load/loader.php';
|
||||
include loaderHandler(
|
||||
_cookie: [],
|
||||
_env: getCheveretoEnv(),
|
||||
_cookie: [],
|
||||
_files: [],
|
||||
_get: [],
|
||||
_post: [],
|
||||
|
||||
28
app/composer.lock
generated
28
app/composer.lock
generated
@@ -5200,16 +5200,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
"version": "v3.5.1",
|
||||
"version": "v3.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||
"reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
|
||||
"reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
|
||||
"reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
|
||||
"reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5222,7 +5222,7 @@
|
||||
"name": "symfony/contracts"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "3.5-dev"
|
||||
"dev-main": "3.6-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -5247,7 +5247,7 @@
|
||||
"description": "A generic function and convention to trigger deprecation notices",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5263,7 +5263,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-25T14:20:29+00:00"
|
||||
"time": "2024-09-25T14:21:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@@ -5803,16 +5803,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
"version": "v3.5.1",
|
||||
"version": "v3.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/service-contracts.git",
|
||||
"reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
|
||||
"reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
|
||||
"reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
|
||||
"reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5830,7 +5830,7 @@
|
||||
"name": "symfony/contracts"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "3.5-dev"
|
||||
"dev-main": "3.6-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -5866,7 +5866,7 @@
|
||||
"standards"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
|
||||
"source": "https://github.com/symfony/service-contracts/tree/v3.6.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5882,7 +5882,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-25T14:20:29+00:00"
|
||||
"time": "2025-04-25T09:37:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
|
||||
@@ -54,8 +54,8 @@ require_once __DIR__ . '/../load/php-boot.php';
|
||||
set_error_handler(ThrowableHandler::ERROR_AS_EXCEPTION);
|
||||
set_exception_handler(ThrowableHandler::CONSOLE);
|
||||
require_once loaderHandler(
|
||||
$_COOKIE,
|
||||
getCheveretoEnv(),
|
||||
$_COOKIE,
|
||||
$_FILES,
|
||||
$_GET,
|
||||
$_POST,
|
||||
|
||||
@@ -35,8 +35,8 @@ if (in_array($urlPath, ['/upgrading', '/upgrading/'], true)
|
||||
exit;
|
||||
}
|
||||
require_once loaderHandler(
|
||||
$_COOKIE,
|
||||
getCheveretoEnv(),
|
||||
$_COOKIE,
|
||||
$_FILES,
|
||||
$_GET,
|
||||
$_POST,
|
||||
|
||||
@@ -651,6 +651,7 @@ $settings_updates = [
|
||||
'4.3.1' => null,
|
||||
'4.3.2' => null,
|
||||
'4.3.3' => null,
|
||||
'4.3.4' => null,
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@@ -9,5 +9,5 @@
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
const APP_VERSION = '4.3.3';
|
||||
const APP_VERSION = '4.3.4';
|
||||
const APP_VERSION_AKA = 'entrador';
|
||||
|
||||
@@ -555,19 +555,6 @@ return function (Handler $handler) {
|
||||
}
|
||||
|
||||
try {
|
||||
$missing = [
|
||||
'proc_open' => ! function_exists('proc_open'),
|
||||
'proc_close' => ! function_exists('proc_close'),
|
||||
];
|
||||
$missing = array_filter($missing);
|
||||
if ($missing) {
|
||||
throw new Exception(
|
||||
_s(
|
||||
'PHP function [%s] not available in this PHP installation',
|
||||
implode(', ', array_keys($missing))
|
||||
)
|
||||
);
|
||||
}
|
||||
if (! $isFFmpegError) {
|
||||
$ffmpegErrors = [];
|
||||
|
||||
@@ -600,7 +587,7 @@ return function (Handler $handler) {
|
||||
}
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
$ffmpegContent .= '<span class="color-fail"><br><br>'
|
||||
$ffmpegContent .= '<br><span class="color-fail"><i class="fas fa-warning"></i> '
|
||||
. get_ffmpeg_error($e)
|
||||
. '</span>';
|
||||
}
|
||||
@@ -626,7 +613,7 @@ return function (Handler $handler) {
|
||||
try {
|
||||
$exifTool = new ExifTool(env()['CHEVERETO_BINARY_EXIFTOOL']);
|
||||
$exifToolContent .= '<br>version ' . $exifTool->version();
|
||||
} catch (RuntimeException $e) {
|
||||
} catch (Throwable $e) {
|
||||
$exifToolContent .= '<br><span class="color-fail"><i class="fas fa-warning"></i> ' . $e->getMessage() . '</span>';
|
||||
}
|
||||
} else {
|
||||
@@ -755,6 +742,19 @@ return function (Handler $handler) {
|
||||
. '</span> <a href="https://www.php.net/manual/en/ini.core.php#ini.open-basedir" target="_blank">open_basedir</a>',
|
||||
];
|
||||
}
|
||||
$missingFunctions = [
|
||||
'proc_open' => ! function_exists('proc_open'),
|
||||
'proc_close' => ! function_exists('proc_close'),
|
||||
];
|
||||
$missingFunctions = array_filter($missingFunctions);
|
||||
if ($missingFunctions) {
|
||||
$system_values_more['disable_functions'] = [
|
||||
'label' => 'disable_functions',
|
||||
'content' => '<span class="color-fail"><i class="fas fa-warning"></i> '
|
||||
. implode(', ', array_keys($missingFunctions))
|
||||
. '</span> <a href="https://www.php.net/manual/en/ini.core.php#ini.disable-functions" target="_blank">disable_functions</a>',
|
||||
];
|
||||
}
|
||||
$pos = array_search('upload_max_filesize', array_keys($system_values), true);
|
||||
array_splice($system_values, $pos, 0, $system_values_more);
|
||||
}
|
||||
|
||||
@@ -1040,36 +1040,18 @@ function isShowEmbedContent(): bool
|
||||
|
||||
function getCheveretoEnv(): array
|
||||
{
|
||||
$env = getenv();
|
||||
|
||||
return array_filter($env, function ($key) {
|
||||
return array_filter(getenv(), function ($key) {
|
||||
return strpos($key, 'CHEVERETO_') === 0;
|
||||
}, ARRAY_FILTER_USE_KEY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Process the server context and returns the handler file to load.
|
||||
* Preload the application environment.
|
||||
*
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
function loaderHandler(
|
||||
array $_cookie,
|
||||
array $_env,
|
||||
array $_files,
|
||||
array $_get,
|
||||
array $_post,
|
||||
array $_request,
|
||||
array $_server,
|
||||
array $_session,
|
||||
): string {
|
||||
$isHttps = strtolower($_server['HTTPS'] ?? '') === 'on'
|
||||
|| ($_server['HTTP_X_FORWARDED_PROTO'] ?? '') === 'https'
|
||||
|| preg_match('#https#i', $_server['HTTP_CF_VISITOR'] ?? '');
|
||||
$imageLibrary = '';
|
||||
if (extension_loaded('gd') && function_exists('gd_info')) {
|
||||
$imageLibrary = 'gd';
|
||||
}
|
||||
if (extension_loaded('imagick')) {
|
||||
$imageLibrary = 'imagick';
|
||||
}
|
||||
function preload(): void
|
||||
{
|
||||
setlocale(LC_ALL, 'en_US.UTF8');
|
||||
define('APP_NAME', 'Chevereto');
|
||||
define('PATH_PUBLIC', dirname(__DIR__, 3) . '/');
|
||||
@@ -1091,22 +1073,49 @@ function loaderHandler(
|
||||
define('PATH_PUBLIC_CONTENT_PAGES', PATH_PUBLIC_CONTENT . 'pages/');
|
||||
define('PATH_PUBLIC_CONTENT_LEGACY_THEMES_PEAFOWL_LIB', PATH_PUBLIC_CONTENT . 'legacy/themes/Peafowl/lib/');
|
||||
define('PATH_PUBLIC_CONTENT_LEGACY_THEMES', PATH_PUBLIC_CONTENT . 'legacy/themes/');
|
||||
/** @var array $envDefault */
|
||||
$envDefault = require PATH_APP . 'env-default.php';
|
||||
$envDefault = array_merge($envDefault, [
|
||||
'CHEVERETO_HOSTNAME' => $_server['SERVER_NAME'] ?? gethostname(),
|
||||
'CHEVERETO_HTTPS' => (string) (int) $isHttps,
|
||||
'CHEVERETO_IMAGE_LIBRARY' => $imageLibrary,
|
||||
]);
|
||||
define('ENV_DEFAULT', require PATH_APP . 'env-default.php');
|
||||
$env = [];
|
||||
$envFile = filePhpForPath(PATH_APP . 'env.php');
|
||||
if ($envFile->file()->exists()) {
|
||||
$filePhpReturn = new FilePhpReturn($envFile);
|
||||
$env = $filePhpReturn->cast()->array();
|
||||
}
|
||||
$envVar = array_merge($envDefault, $env, $_env);
|
||||
define('ENV', $env);
|
||||
$imageLibrary = '';
|
||||
if (extension_loaded('gd') && function_exists('gd_info')) {
|
||||
$imageLibrary = 'gd';
|
||||
}
|
||||
if (extension_loaded('imagick')) {
|
||||
$imageLibrary = 'imagick';
|
||||
}
|
||||
define('IMAGE_LIBRARY', $imageLibrary);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string The file to require.
|
||||
*/
|
||||
function loaderHandler(
|
||||
array $_env,
|
||||
array $_cookie,
|
||||
array $_files,
|
||||
array $_get,
|
||||
array $_post,
|
||||
array $_request,
|
||||
array $_server,
|
||||
array $_session,
|
||||
): string {
|
||||
preload();
|
||||
$isHttps = strtolower($_server['HTTPS'] ?? '') === 'on'
|
||||
|| ($_server['HTTP_X_FORWARDED_PROTO'] ?? '') === 'https'
|
||||
|| preg_match('#https#i', $_server['HTTP_CF_VISITOR'] ?? '');
|
||||
$envDefault = array_merge(ENV_DEFAULT, [
|
||||
'CHEVERETO_HOSTNAME' => $_server['SERVER_NAME'] ?? gethostname(),
|
||||
'CHEVERETO_HTTPS' => (string) (int) $isHttps,
|
||||
'CHEVERETO_IMAGE_LIBRARY' => IMAGE_LIBRARY,
|
||||
]);
|
||||
$envVar = array_merge($envDefault, ENV, $_env);
|
||||
$envVar['CHEVERETO_ID'] = $_env['CHEVERETO_ID']
|
||||
?? $env['CHEVERETO_ID']
|
||||
?? ENV['CHEVERETO_ID']
|
||||
?? $_server['CHEVERETO_ID']
|
||||
?? '';
|
||||
$envVar['CHEVERETO_ID_HANDLE'] = '';
|
||||
@@ -1150,23 +1159,14 @@ function loaderHandler(
|
||||
));
|
||||
$iniToChevereto = [
|
||||
'error_log' => 'CHEVERETO_ERROR_LOG',
|
||||
'max_execution_time' => 'CHEVERETO_MAX_EXECUTION_TIME_SECONDS',
|
||||
'memory_limit' => 'CHEVERETO_MAX_MEMORY_SIZE',
|
||||
'post_max_size' => 'CHEVERETO_MAX_POST_SIZE',
|
||||
'session.save_handler' => 'CHEVERETO_SESSION_SAVE_HANDLER',
|
||||
'session.save_path' => 'CHEVERETO_SESSION_SAVE_PATH',
|
||||
// 'max_execution_time' => 'CHEVERETO_MAX_EXECUTION_TIME_SECONDS',
|
||||
// 'session.save_handler' => 'CHEVERETO_SESSION_SAVE_HANDLER',
|
||||
// 'session.save_path' => 'CHEVERETO_SESSION_SAVE_PATH',
|
||||
// 'upload_max_filesize' => 'CHEVERETO_MAX_UPLOAD_FILE_SIZE', // INI_PERDIR
|
||||
];
|
||||
$isCLI = PHP_SAPI === 'cli';
|
||||
$iniToSkip = [
|
||||
'max_execution_time' => $isCLI,
|
||||
'session.save_handler' => $isCLI,
|
||||
'session.save_path' => $isCLI,
|
||||
];
|
||||
foreach ($iniToChevereto as $iniOption => $envName) {
|
||||
if (($iniToSkip[$iniOption] ?? false) === true) {
|
||||
continue;
|
||||
}
|
||||
if (! function_exists('ini_get')
|
||||
|| ! function_exists('ini_set')
|
||||
) {
|
||||
@@ -1225,7 +1225,7 @@ function loaderHandler(
|
||||
}
|
||||
}
|
||||
new EnvVar($envVar);
|
||||
new ServerVar(array_merge($envDefault, $env, $_server));
|
||||
new ServerVar(array_merge($envDefault, ENV, $_server));
|
||||
new CookieVar($_cookie);
|
||||
new RequestVar($_request);
|
||||
new PostVar($_post);
|
||||
|
||||
@@ -4490,14 +4490,16 @@ a.top-user-avatar {
|
||||
}
|
||||
|
||||
.phone .top-user,
|
||||
.laptop .top-user:not(.no-background),
|
||||
.desktop .top-user:not(.no-background),
|
||||
.laptop .top-user:not(.no-background) {
|
||||
.largescreen .top-user:not(.no-background) {
|
||||
-webkit-padding-start: 0;
|
||||
padding-inline-start: 0;
|
||||
}
|
||||
|
||||
.desktop .top-user:not(.no-background) .top-user-avatar,
|
||||
.laptop .top-user:not(.no-background) .top-user-avatar {
|
||||
.laptop .top-user:not(.no-background) .top-user-avatar,
|
||||
.largescreen .top-user:not(.no-background) .top-user-avatar {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
-webkit-margin-start: calc(-0.5em - 10px);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1587,7 +1587,8 @@ body#maintenance, body#consent-screen {
|
||||
|
||||
.tablet .footer,
|
||||
.laptop .footer,
|
||||
.desktop .footer {
|
||||
.desktop .footer,
|
||||
.largescreen .footer {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
2
content/legacy/themes/Peafowl/style.min.css
vendored
2
content/legacy/themes/Peafowl/style.min.css
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user