Automatic push 4.2.2

This commit is contained in:
chevereto
2024-11-07 18:49:03 +00:00
parent 55a98d0286
commit 6fbd5e2d84
15 changed files with 151 additions and 109 deletions

View File

@@ -1,14 +0,0 @@
Chevereto 4.2.1 (2024-11-04)
- 🐬 Added MySQL compatibility for Tags
- 🏷️ Tag input added to uploader form
- 🕷️ Increased Project Arachnid Shield timeout
- 📱 Mobile listing now displays checkbox
- ✅ API now supports use_file_date parameter
- 🐞 Fixed bug in API route
- 🐞 Fixed bug in API URL upload
- 🐞 Fixed bug in homepage as Explore
- 🐞 Fixed bug in Pages (free edition)
- 🐞 Fixed bug with non-functioning analytics and comment code
- 🐞 Fixed bug with non-functioning Banners
- 🐞 Fixed TypeError in Image class

13
.package/4.2.2.txt Normal file
View File

@@ -0,0 +1,13 @@
Chevereto 4.2.2 (2024-11-07)
- 💅 Added flag icon to NSFW uploader
- ✅ Added fault-tolerant env variables
- ✅ Added session_start fail-safe for false positives
- 🐬 Fixed MySQL 5 index compatibility
- 🐞 Fixed bug affecting Disqus integration
- 🐞 Fixed bug affecting manual update query generation
- 🐞 Fixed bug affecting NSFW flagging
- 🐞 Fixed bug when using user_profile_view=album
- 🐞 Fixed bug with not working Open Graph for video
- 🐞 Fixed bug with outdated google/apiclient dependency
- 🐞 Fixed bug with unresponsive /dashboard

84
app/composer.lock generated
View File

@@ -1190,16 +1190,16 @@
},
{
"name": "chevere/throwable-handler",
"version": "1.0.2",
"version": "1.0.3",
"source": {
"type": "git",
"url": "https://github.com/chevere/throwable-handler.git",
"reference": "4b476df67ddb4fa5d49aca75a91787b4dc2c0b82"
"reference": "5c4373b6b1d511340694ff9efe83a3c70f1a0fe7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/chevere/throwable-handler/zipball/4b476df67ddb4fa5d49aca75a91787b4dc2c0b82",
"reference": "4b476df67ddb4fa5d49aca75a91787b4dc2c0b82",
"url": "https://api.github.com/repos/chevere/throwable-handler/zipball/5c4373b6b1d511340694ff9efe83a3c70f1a0fe7",
"reference": "5c4373b6b1d511340694ff9efe83a3c70f1a0fe7",
"shasum": ""
},
"require": {
@@ -1237,9 +1237,9 @@
"homepage": "https://chevere.org",
"support": {
"issues": "https://github.com/chevere/throwable-handler/issues",
"source": "https://github.com/chevere/throwable-handler/tree/1.0.2"
"source": "https://github.com/chevere/throwable-handler/tree/1.0.3"
},
"time": "2024-06-21T15:41:35+00:00"
"time": "2024-11-06T20:01:15+00:00"
},
{
"name": "chevere/trace",
@@ -5031,16 +5031,16 @@
},
{
"name": "symfony/cache",
"version": "v5.4.45",
"version": "v5.4.46",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
"reference": "12b03e3cc5c6fd495e56b2b9e7aca777f8608721"
"reference": "0fe08ee32cec2748fbfea10c52d3ee02049e0f6b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/12b03e3cc5c6fd495e56b2b9e7aca777f8608721",
"reference": "12b03e3cc5c6fd495e56b2b9e7aca777f8608721",
"url": "https://api.github.com/repos/symfony/cache/zipball/0fe08ee32cec2748fbfea10c52d3ee02049e0f6b",
"reference": "0fe08ee32cec2748fbfea10c52d3ee02049e0f6b",
"shasum": ""
},
"require": {
@@ -5108,7 +5108,7 @@
"psr6"
],
"support": {
"source": "https://github.com/symfony/cache/tree/v5.4.45"
"source": "https://github.com/symfony/cache/tree/v5.4.46"
},
"funding": [
{
@@ -5124,7 +5124,7 @@
"type": "tidelift"
}
],
"time": "2024-10-25T15:37:00+00:00"
"time": "2024-11-04T11:43:55+00:00"
},
{
"name": "symfony/cache-contracts",
@@ -5207,16 +5207,16 @@
},
{
"name": "symfony/console",
"version": "v6.4.13",
"version": "v6.4.14",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79"
"reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/f793dd5a7d9ae9923e35d0503d08ba734cec1d79",
"reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79",
"url": "https://api.github.com/repos/symfony/console/zipball/897c2441ed4eec8a8a2c37b943427d24dba3f26b",
"reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b",
"shasum": ""
},
"require": {
@@ -5281,7 +5281,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v6.4.13"
"source": "https://github.com/symfony/console/tree/v6.4.14"
},
"funding": [
{
@@ -5297,7 +5297,7 @@
"type": "tidelift"
}
],
"time": "2024-10-09T08:40:40+00:00"
"time": "2024-11-05T15:34:40+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -5842,16 +5842,16 @@
},
{
"name": "symfony/process",
"version": "v6.4.13",
"version": "v6.4.14",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "1f9f59b46880201629df3bd950fc5ae8c55b960f"
"reference": "25214adbb0996d18112548de20c281be9f27279f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/1f9f59b46880201629df3bd950fc5ae8c55b960f",
"reference": "1f9f59b46880201629df3bd950fc5ae8c55b960f",
"url": "https://api.github.com/repos/symfony/process/zipball/25214adbb0996d18112548de20c281be9f27279f",
"reference": "25214adbb0996d18112548de20c281be9f27279f",
"shasum": ""
},
"require": {
@@ -5883,7 +5883,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v6.4.13"
"source": "https://github.com/symfony/process/tree/v6.4.14"
},
"funding": [
{
@@ -5899,7 +5899,7 @@
"type": "tidelift"
}
],
"time": "2024-09-25T14:18:03+00:00"
"time": "2024-11-06T09:25:01+00:00"
},
{
"name": "symfony/service-contracts",
@@ -6072,16 +6072,16 @@
},
{
"name": "symfony/var-dumper",
"version": "v6.4.13",
"version": "v6.4.14",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41"
"reference": "93c09246038178717a9c14b809ea8151ffcf7091"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41",
"reference": "2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/93c09246038178717a9c14b809ea8151ffcf7091",
"reference": "93c09246038178717a9c14b809ea8151ffcf7091",
"shasum": ""
},
"require": {
@@ -6137,7 +6137,7 @@
"dump"
],
"support": {
"source": "https://github.com/symfony/var-dumper/tree/v6.4.13"
"source": "https://github.com/symfony/var-dumper/tree/v6.4.14"
},
"funding": [
{
@@ -6153,7 +6153,7 @@
"type": "tidelift"
}
],
"time": "2024-09-25T14:18:03+00:00"
"time": "2024-11-05T15:34:40+00:00"
},
{
"name": "symfony/var-exporter",
@@ -6445,16 +6445,16 @@
},
{
"name": "xrdebug/php",
"version": "2.0.2",
"version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/xrdebug/php.git",
"reference": "19e6a81dc40164fda6a80febe1417c01673c3b80"
"reference": "0ef77144e845c384c5866f689a57eb2e12033f70"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/xrdebug/php/zipball/19e6a81dc40164fda6a80febe1417c01673c3b80",
"reference": "19e6a81dc40164fda6a80febe1417c01673c3b80",
"url": "https://api.github.com/repos/xrdebug/php/zipball/0ef77144e845c384c5866f689a57eb2e12033f70",
"reference": "0ef77144e845c384c5866f689a57eb2e12033f70",
"shasum": ""
},
"require": {
@@ -6463,7 +6463,7 @@
"chevere/standard": "^1.0.1",
"chevere/throwable-handler": "^1.0.2",
"chevere/trace": "^2.0.0",
"chevere/var-dump": "^2.0.0",
"chevere/var-dump": "^2.0.1",
"ext-curl": "*",
"ext-json": "*",
"php": "^8.1",
@@ -6506,9 +6506,9 @@
],
"support": {
"issues": "https://github.com/xrdebug/php/issues",
"source": "https://github.com/xrdebug/php/tree/2.0.2"
"source": "https://github.com/xrdebug/php/tree/2.0.4"
},
"time": "2024-06-23T14:05:32+00:00"
"time": "2024-11-06T20:05:28+00:00"
},
{
"name": "xrdebug/xrdebug",
@@ -6830,16 +6830,16 @@
},
{
"name": "phpstan/phpstan",
"version": "1.12.7",
"version": "1.12.8",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0"
"reference": "f6a60a4d66142b8156c9da923f1972657bc4748c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/dc2b9976bd8b0f84ec9b0e50cc35378551de7af0",
"reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/f6a60a4d66142b8156c9da923f1972657bc4748c",
"reference": "f6a60a4d66142b8156c9da923f1972657bc4748c",
"shasum": ""
},
"require": {
@@ -6884,7 +6884,7 @@
"type": "github"
}
],
"time": "2024-10-18T11:12:07+00:00"
"time": "2024-11-06T19:06:49+00:00"
},
{
"name": "phpunit/php-code-coverage",

View File

@@ -86,6 +86,7 @@ $db_array = [
];
$error = false;
$db_conn_error = "Can't connect to the target database. The server replied with this:<br>%s<br><br>Please fix your MySQL info.";
$installed_version = cheveretoVersionInstalled();
$settings_updates = [
'3.0.0' => [
'analytics_code' => '',
@@ -632,7 +633,9 @@ $settings_updates = [
'arachnid_api_password' => '',
],
'4.2.1' => null,
'4.2.2' => null,
];
/**
* The following settings are for enabling backwards compatibility
* It is recommended to use a proper storage device when possible!
@@ -640,21 +643,23 @@ $settings_updates = [
* You can configure both asset/external storage from the admin dashboard.
*/
if ((bool) env()['CHEVERETO_ENABLE_LOCAL_STORAGE']) {
// Legacy application stores assets relative to root
// target -> /content/images/...
// Reflect a path under /images/ which is the default persistent storage mounted path for zero config
// target -> /images/_assets/content/images...
$asset_storage_default = [
'asset_storage_api_id' => '8',
'asset_storage_bucket' => PATH_PUBLIC,
'asset_storage_url' => URL_APP_PUBLIC_STATIC,
'asset_storage_bucket' => PATH_PUBLIC . 'images/_assets/',
'asset_storage_url' => env()['CHEVERETO_HOSTNAME_PATH'] . 'images/_assets/',
];
if (env()['CHEVERETO_SERVICING'] === 'docker') {
// Reflect a path under /images/ which is the default persistent storage mounted path for zero config
// target -> /images/_assets/content/images...
$asset_storage_default = [
'asset_storage_api_id' => '8',
'asset_storage_bucket' => PATH_PUBLIC . 'images/_assets/',
'asset_storage_url' => URL_APP_PUBLIC_STATIC . 'images/_assets/',
];
if ($installed_version !== '') {
// Legacy application stores assets relative to root
// target -> /content/images/...
if (env()['CHEVERETO_SERVICING'] === 'server') {
$asset_storage_default = [
'asset_storage_api_id' => '8',
'asset_storage_bucket' => PATH_PUBLIC,
'asset_storage_url' => env()['CHEVERETO_HOSTNAME_PATH'],
];
}
}
$settings_updates['4.2.0'] = array_merge($settings_updates['4.2.0'], $asset_storage_default);
}
@@ -780,7 +785,6 @@ if (hasEnvDbInfo()) {
$doing = 'ready';
}
$fulltext_engine = 'InnoDB';
$installed_version = cheveretoVersionInstalled();
$maintenance = getSetting('maintenance');
if (isset($cheveretoFreeMap[$installed_version])) {
$installed_version = $cheveretoFreeMap[$installed_version];
@@ -1034,7 +1038,7 @@ if ($installed_version !== '' && empty($paramsCheck)) {
],
'login_secret' => [
'op' => 'MODIFY',
'type' => $isUtf8mb4 ? 'mediumtext' : 'text', //3.13.0
'type' => 'text',
'prop' => "DEFAULT NULL COMMENT 'The secret part'",
],
],
@@ -1048,12 +1052,12 @@ if ($installed_version !== '' && empty($paramsCheck)) {
'settings' => [
'setting_value' => [
'op' => 'MODIFY',
'type' => $isUtf8mb4 ? 'mediumtext' : 'text', //3.13.0
'type' => 'text', //3.13.0
'prop' => null,
],
'setting_default' => [
'op' => 'MODIFY',
'type' => $isUtf8mb4 ? 'mediumtext' : 'text', //3.13.0
'type' => 'text', //3.13.0
'prop' => null,
],
],
@@ -1088,7 +1092,7 @@ if ($installed_version !== '' && empty($paramsCheck)) {
'images' => [
'image_original_exifdata' => [
'op' => 'MODIFY',
'type' => 'longtext',
'type' => 'text',
'prop' => null,
],
'image_storage' => [
@@ -1256,12 +1260,12 @@ if ($installed_version !== '' && empty($paramsCheck)) {
'storages' => [
'storage_key' => [
'op' => 'MODIFY',
'type' => $isUtf8mb4 ? 'mediumtext' : 'text', //3.13.0
'type' => 'text', //3.13.0
'prop' => null,
],
'storage_secret' => [
'op' => 'MODIFY',
'type' => $isUtf8mb4 ? 'mediumtext' : 'text', //3.13.0
'type' => 'text', //3.13.0
'prop' => null,
],
],
@@ -1829,7 +1833,7 @@ if ($installed_version !== '' && empty($paramsCheck)) {
'pages' => [
'page_code' => [
'op' => 'MODIFY',
'type' => 'mediumtext',
'type' => 'text',
'prop' => null,
],
],
@@ -2406,7 +2410,7 @@ EOT;
ADD `image_source_md5` varchar(32) DEFAULT NULL,
ADD `image_storage_mode` enum('datefolder','direct','old') NOT NULL DEFAULT 'datefolder',
ADD `image_original_filename` text NOT NULL,
ADD `image_original_exifdata` longtext,
ADD `image_original_exifdata` text,
ADD `image_views` bigint(32) NOT NULL DEFAULT '0',
ADD `image_category_id` bigint(32) DEFAULT NULL,
ADD `image_chain` tinyint(128) NOT NULL,

View File

@@ -9,5 +9,5 @@
* file that was distributed with this source code.
*/
const APP_VERSION = '4.2.1';
const APP_VERSION = '4.2.2';
const APP_VERSION_AKA = 'regio';

View File

@@ -993,7 +993,7 @@ return function (Handler $handler) {
throw new Exception('Invalid request', 403);
}
$query_field = 'nsfw';
$prop = $editing['nsfw'] ?? 0;
$prop = (int) ($editing['nsfw'] ?? 0);
$prop = intval($prop === 1);
$message = 'Content flag changed';

View File

@@ -239,8 +239,7 @@ return function (Handler $handler) {
}
$handler::setCond('show_follow_button', $show_follow_button);
$base_user_url = $user['url'];
$type = $userHome;
$current_view = $type;
$current_view = $userHome;
$tools = false;
foreach ($user_views as $k => $v) {
$handler::setCond('user_' . $k, (bool) $v['current']);
@@ -251,6 +250,10 @@ return function (Handler $handler) {
}
}
}
$type = match ($current_view) {
'files' => 'images',
default => $current_view
};
$currentKey = 0;
$safe_html_user = safe_html($user);
$sub_tabs = [];
@@ -468,7 +471,9 @@ return function (Handler $handler) {
$output_tpl = 'user/' . $tpl;
if ($user_views['search']['current']) {
$type = $user['search']['type'];
$where = $user['search']['type'] === 'images' ? 'WHERE image_user_id=:user_id AND MATCH(image_name, image_title, image_description, image_original_filename) AGAINST (:q)' : 'WHERE album_user_id=:user_id AND MATCH(album_name, album_description) AGAINST (:q)';
$where = $user['search']['type'] === 'images'
? 'WHERE image_user_id=:user_id AND MATCH(image_name, image_title, image_description, image_original_filename) AGAINST (:q)'
: 'WHERE album_user_id=:user_id AND MATCH(album_name, album_description) AGAINST (:q)';
}
$show_user_items_editor = Login::isLoggedUser();
if ($type === 'albums') {

View File

@@ -11,7 +11,7 @@ CREATE TABLE `%table_prefix%tags` (
UNIQUE KEY `tag_name` (`tag_name`) USING BTREE,
KEY `tag_user_id` (`tag_user_id`),
KEY `tag_date_gmt` (`tag_date_gmt`),
KEY `tag_files` (`tag_files`),˝
KEY `tag_files` (`tag_files`),
KEY `tag_views` (`tag_views`),
KEY `tag_user_id_date_gmt` (`tag_user_id`,`tag_date_gmt`),
KEY `tag_user_id_files` (`tag_user_id`,`tag_files`),

View File

@@ -19,6 +19,7 @@ use function Chevereto\Encryption\decryptValues;
use function Chevereto\Encryption\encryptValues;
use function Chevereto\Encryption\hasEncryption;
use function Chevereto\Legacy\assertMaxCount;
use function Chevereto\Legacy\cheveretoVersionInstalled;
use function Chevereto\Legacy\G\add_ending_slash;
use function Chevereto\Legacy\G\array_filter_array;
use function Chevereto\Legacy\G\check_value;
@@ -60,8 +61,12 @@ class Storage
public static function get(array $values = [], array $sort = [], int $limit = null): array
{
if (! isset($values['deleted_at'])) {
$values['deleted_at'] = null;
$valueOperators = [
'type_chain' => '&',
];
if (version_compare(cheveretoVersionInstalled(), '4.2.0', '>=')) {
$values['deleted_at'] = $values['deleted_at'] ?? null;
$valueOperators['deleted_at'] = 'IS';
}
$get = DB::get(
[
@@ -75,10 +80,7 @@ class Storage
$sort,
$limit,
PDO::FETCH_ASSOC,
[
'type_chain' => '&',
'deleted_at' => 'IS',
]
$valueOperators
);
if (isset($get[0]) && is_array($get[0])) {
foreach ($get as $k => $v) {

View File

@@ -19,6 +19,27 @@ use function Chevereto\Legacy\headersNoCache;
* ---------------------------------------------------------------------
*/
/**
* @deprecate
*/
function include_theme_file($filename, $args = [])
{
$file = PATH_PUBLIC_LEGACY_THEME . $filename;
$override = PATH_PUBLIC_LEGACY_THEME . 'overrides/' . $filename;
if (! file_exists($file)) {
$file .= '.php';
$override .= '.php';
}
if (file_exists($override)) {
$file = $override;
}
if (file_exists($file)) {
$GLOBALS['theme_include_args'] = $args;
require $file;
unset($GLOBALS['theme_include_args']);
}
}
function get_theme_php_file(string $filename): string
{
$filename = str_replace_last('.php', '', $filename) . '.php';

View File

@@ -1102,6 +1102,9 @@ function getComments(): string
var disqus_config = function() {
this.page.url = "%page_url";
this.page.identifier = "%page_id";
this.language = "%language_code";
this.page.remote_auth_s3 = "%auth";
this.page.api_key = "%api_key";
};
(function() {
var d = document, s = d.createElement("script");
@@ -1109,14 +1112,9 @@ var disqus_config = function() {
s.setAttribute("data-timestamp", +new Date());
(d.head || d.body).appendChild(s);
})();
var disqus_config = function () {
this.language = "%language_code";
this.page.remote_auth_s3 = "%auth";
this.page.api_key = "%api_key";
};
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>', [
'%page_url' => get_current_url(),
'%page_url' => Handler::var('canonical') ?? get_current_url(removeQs: ['lang'], public: true),
'%page_id' => str_replace_first(get_route_path(), get_route_name(), get_route_path(true)), // image.ID
'%shortname' => getSetting('disqus_shortname'),
'%language_code' => get_language_used()['base'],

View File

@@ -264,11 +264,15 @@ function get_chv_default_setting(string $value = '', bool $safe = false): mixed
function getStorages(): array|bool
{
$where = [];
if (version_compare(cheveretoVersionInstalled(), '4.2.0', '>=')) {
$where = [
'deleted_at' => null,
];
}
$storages = DB::get(
table: 'storages',
where: [
'deleted_at' => null,
],
where: $where,
);
if ($storages) {
foreach ($storages as $k => $v) {
@@ -1164,6 +1168,7 @@ function loaderHandler(
$envVar['CHEVERETO_XRDEBUG_HOST'] = 'host.docker.internal';
}
}
$envVar = array_map('strval', $envVar);
new EnvVar($envVar);
new ServerVar(array_merge($envDefault, $env, $_server));
new CookieVar($_cookie);

View File

@@ -80,7 +80,7 @@ foreach ($links as $rel => $href) {
}
$open_graph = [
'type' => 'website',
'url' => get_current_url(true, ['lang']),
'url' => $links['canonical'] ?? get_current_url(safe: true, removeQs: ['lang'], public: true),
'title' => getSetting('website_doctitle', true),
'image' => getSetting('homepage_cover_images')[0]['url'] ?? '',
'site_name' => Handler::var('safe_html_website_name'),
@@ -91,17 +91,26 @@ foreach ($links as $rel => $href) {
}
switch (true) {
case Handler::var('image') !== null and is_route('image'):
$open_graph_key = match(Handler::var('image')['type']) {
'video' => 'video',
default => 'image',
};
$open_graph_type = match($open_graph_key) {
'video' => 'video.other',
default => 'article',
};
$open_graph_extend = [
'type' => 'article',
'type' => $open_graph_type,
'title' => Handler::var('pre_doctitle'),
// 'description' => _var('image')['description'],
'image' => Handler::var('image')['url'],
'image:width' => Handler::var('image')['width'],
'image:height' => Handler::var('image')['height'],
'image' => Handler::var('image')['display_url'],
$open_graph_key => Handler::var('image')['url'],
$open_graph_key . ':width' => Handler::var('image')['width'],
$open_graph_key . ':height' => Handler::var('image')['height'],
$open_graph_key . ':type' => Handler::var('image')['mime'],
];
if (Handler::var('image')['is_animated']
&& Handler::var('image')['size'] < get_bytes('8 MB')
) {
) {
$open_graph_extend['type'] = 'video.other';
$open_graph_extend['url'] = Handler::var('image')['url'];
}
@@ -134,7 +143,6 @@ foreach ($links as $rel => $href) {
case Handler::var('album') !== null and is_route('album'):
$open_graph_extend = [
'title' => Handler::var('album')['name'],
// 'description' => _var('album')['description'],
];
break;

View File

@@ -228,7 +228,7 @@ if (Login::isLoggedUser()) {
<?php
if (getSetting('theme_nsfw_upload_checkbox') && !getSetting('enable_consent_screen')) {
?>
<div class="margin-20"><span rel="tooltip" data-tiptip="top" title="<?php _se('Mark this if the upload is not family safe'); ?>"><input type="checkbox" name="upload-nsfw" id="upload-nsfw" class="margin-right-5" value="1"><label for="upload-nsfw"><?php _se('Not family safe upload'); ?></label></span></div>
<div class="margin-20"><span rel="tooltip" data-tiptip="top" title="<?php _se('Mark this if the upload is not family safe'); ?>"><input type="checkbox" name="upload-nsfw" id="upload-nsfw" class="margin-right-5" value="1"><label for="upload-nsfw"><i class="fas fa-flag margin-right-5"></i><?php _se('Flag not safe'); ?></label></span></div>
<?php
}
if (!Login::isLoggedUser()) {
@@ -387,7 +387,7 @@ if (Login::isLoggedUser()) {
<div class="checkbox-label">
<div class="display-inline" rel="template-tooltip" data-tiptip="right" data-title="<?php _se('Mark this if the image is not family safe'); ?>">
<label for="form-nsfw">
<input class="float-left" type="checkbox" name="form-nsfw" id="form-nsfw" value="1"><?php _se('Flag as unsafe'); ?>
<input class="float-left" type="checkbox" name="form-nsfw" id="form-nsfw" value="1"><span class="no-select"><i class="fas fa-flag margin-right-5"></i><?php _se('Flag not safe'); ?></span></label></span>
</label>
</div>
</div>

View File

@@ -42,7 +42,7 @@ if (!defined('ACCESS') || !ACCESS) {
if (!Handler::cond('allowed_nsfw_flagging')) {
echo ' disabled';
}
?>><span class="no-select"><i class="fas fa-flag"></i> <?php _se('Flag not safe'); ?></span></label></span></div>
?>><span class="no-select"><i class="fas fa-flag margin-right-5"></i><?php _se('Flag not safe'); ?></span></label></span></div>
<div class="input-label">
<label for="form-image-description"><?php _se('Description'); ?> <span class="optional"><?php _se('optional'); ?></span></label>
<textarea id="form-image-description" name="form-image-description" class="text-input resize-vertical" placeholder="<?php _se('Brief description of this %s', _n('image', 'images', 1)); ?>"><?php echo Handler::var('image_safe_html')["description"] ?? ''; ?></textarea>