mirror of
https://github.com/claradex/nativegallery.git
synced 2024-12-22 08:30:56 +03:00
disable exif option
This commit is contained in:
parent
921712a857
commit
5d9e930d30
4 changed files with 131 additions and 16 deletions
|
@ -20,6 +20,7 @@ class Upload
|
|||
static $rating = 'allowed';
|
||||
static $showtop = 'allowed';
|
||||
static $subsnotify = 'allowed';
|
||||
static $exif = 'exif';
|
||||
|
||||
public static function create($postbody, $content, $exif)
|
||||
{
|
||||
|
@ -146,6 +147,9 @@ class Upload
|
|||
if ((int)$_POST['disablesubsnotify'] === 1) {
|
||||
self::$subsnotify = 'disabled';
|
||||
}
|
||||
if ((int)$_POST['disableexif'] === 1) {
|
||||
self::$exif = 'disabled';
|
||||
}
|
||||
if ($upload->getType() !== null) {
|
||||
$content = Json::return(
|
||||
array(
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#photobar { margin:0 -20px; position:relative; background-color:#333; }
|
||||
#underphoto_frame { display:inline-block; }
|
||||
|
||||
#ph { max-width:70%; cursor:zoom-in; }
|
||||
#ph { max-width:50%; cursor:zoom-in; }
|
||||
#ph.v-zoom { max-height:calc(100vh - 30px); }
|
||||
#ph.zoomed { max-width:none; max-height:none; cursor:zoom-out; }
|
||||
#ph.nozoom { cursor:default; }
|
||||
|
|
|
@ -118,7 +118,7 @@ if ($photo->i('id') !== null) {
|
|||
</video>
|
||||
|
||||
<?php } else { ?>
|
||||
<img onerror="errimg(); this.onerror = null;" class="nozoom" id="ph" src="<?= $photo->i('photourl') ?>" alt="" title="Фотография">
|
||||
<img onerror="errimg(); this.onerror = null;" id="ph" src="<?= $photo->i('photourl') ?>" alt="" title="Фотография">
|
||||
<?php
|
||||
}
|
||||
if ($photo->i('priority') === 1) { ?>
|
||||
|
@ -304,7 +304,7 @@ if ($photo->i('id') !== null) {
|
|||
<td id="pp-main-col">
|
||||
<div id="pp-item-vdata">
|
||||
<?php
|
||||
if ($photo->content('type') != 'none' && json_decode($photo->i('exif'), true)['type'] != 'none') {
|
||||
if (($photo->content('type') != 'none') && (json_decode($photo->i('exif'), true)['type'] != 'none') && ($photo->content('rating') != 'disabled')) {
|
||||
?>
|
||||
<div class="p0" id="pp-item-exif">
|
||||
<div class="header-container">
|
||||
|
@ -367,24 +367,122 @@ if ($photo->i('id') !== null) {
|
|||
'GPS.GPSTimeStamp' => 'Время GPS',
|
||||
'GPS.GPSDateStamp' => 'Дата GPS'
|
||||
];
|
||||
foreach ($data as $key => $value) {
|
||||
if ($key === 'FILE.FileDateTime') {
|
||||
$value = Date::zmdate($value);
|
||||
}
|
||||
if (!isset($exif_translations[$key])) {
|
||||
continue;
|
||||
}
|
||||
if (is_array($value)) {
|
||||
$value = implode(', ', $value);
|
||||
}
|
||||
$key = $exif_translations[$key] ?? $key;
|
||||
function translate_flash_value($flash_value) {
|
||||
$flash_descriptions = [
|
||||
0 => 'Выключена',
|
||||
1 => 'Включена',
|
||||
2 => 'Сработала с подавлением эффекта красных глаз',
|
||||
3 => 'Сработала в принудительном режиме',
|
||||
4 => 'Выключена в принудительном режиме',
|
||||
5 => 'Автоматический режим',
|
||||
6 => 'Автоматический режим'
|
||||
];
|
||||
|
||||
return $flash_descriptions[$flash_value] ?? 'Неизвестное значение вспышки';
|
||||
}
|
||||
|
||||
echo '
|
||||
function translate_orientation($orientation)
|
||||
{
|
||||
$orientation_descriptions = [
|
||||
1 => '0° (По умолчанию)',
|
||||
3 => '180°',
|
||||
6 => '90° по часовой стрелке',
|
||||
8 => '270° по часовой стрелке'
|
||||
];
|
||||
|
||||
return $orientation_descriptions[$orientation] ?? 'Не определена';
|
||||
}
|
||||
|
||||
|
||||
function translate_resolution_unit($unit)
|
||||
{
|
||||
$resolution_units = [
|
||||
1 => 'Дюймы',
|
||||
2 => 'Сантиметры'
|
||||
];
|
||||
|
||||
return $resolution_units[$unit] ?? 'Неизвестная единица';
|
||||
}
|
||||
|
||||
function translate_light_source($source)
|
||||
{
|
||||
$light_sources = [
|
||||
0 => 'Неизвестный источник',
|
||||
1 => 'Дневной свет',
|
||||
2 => 'Лампа накаливания',
|
||||
3 => 'Лампа флуоресцентная',
|
||||
4 => 'Лампа с высоким давлением',
|
||||
5 => 'Лампа с низким давлением',
|
||||
255 => 'Другой источник'
|
||||
];
|
||||
|
||||
return $light_sources[$source] ?? 'Неизвестный источник света';
|
||||
}
|
||||
|
||||
function translate_white_balance($balance)
|
||||
{
|
||||
$white_balances = [
|
||||
0 => 'Автоматический',
|
||||
1 => 'Ручной'
|
||||
];
|
||||
|
||||
return $white_balances[$balance] ?? 'Неизвестный баланс белого';
|
||||
}
|
||||
|
||||
function translate_color_space($space)
|
||||
{
|
||||
$color_spaces = [
|
||||
1 => 'sRGB',
|
||||
2 => 'Adobe RGB',
|
||||
3 => 'Uncalibrated'
|
||||
];
|
||||
|
||||
return $color_spaces[$space] ?? 'Неизвестное цветовое пространство';
|
||||
}
|
||||
|
||||
function translate_scene_type($type)
|
||||
{
|
||||
$scene_types = [
|
||||
0 => 'Неизвестный тип',
|
||||
1 => 'Сцена с обычным светом',
|
||||
2 => 'Сцена с высоким контрастом',
|
||||
3 => 'Сцена с низким контрастом',
|
||||
4 => 'Сцена с движением'
|
||||
];
|
||||
|
||||
return $scene_types[$type] ?? 'Неизвестный тип съёмки';
|
||||
}
|
||||
foreach ($data as $key => $value) {
|
||||
if ($key === 'EXIF.Flash') {
|
||||
$value = translate_flash_value($value);
|
||||
} elseif ($key === 'IFD0.Orientation') {
|
||||
$value = translate_orientation($value);
|
||||
} elseif ($key === 'IFD0.ResolutionUnit') {
|
||||
$value = translate_resolution_unit($value);
|
||||
} elseif ($key === 'EXIF.WhiteBalance') {
|
||||
$value = translate_white_balance($value);
|
||||
} elseif ($key === 'IFD0.LightSource') {
|
||||
$value = translate_light_source((int)$value);
|
||||
} elseif ($key === 'EXIF.ColorSpace') {
|
||||
$value = translate_color_space($value);
|
||||
} elseif ($key === 'EXIF.SceneType') {
|
||||
$value = translate_scene_type($value);
|
||||
}
|
||||
if (!isset($exif_translations[$key])) {
|
||||
continue;
|
||||
}
|
||||
if (is_array($value)) {
|
||||
$value = implode(', ', $value);
|
||||
}
|
||||
$key = $exif_translations[$key] ?? $key;
|
||||
|
||||
|
||||
echo '
|
||||
<tr class="s11 h21">
|
||||
<td class="ds nw" width="30%">' . htmlspecialchars($key) . ':</td>
|
||||
<td class="ds">' . htmlspecialchars($value) . '</td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
|
|
@ -906,6 +906,17 @@ $user = new User(Auth::userid());
|
|||
<td class="lcol"></td>
|
||||
<td class="sm" style="color:#888">Медиа не будет отображаться в следующих топах: <br>Самые популярные за 24 часа<br>30 самых просматриваемых фото за 24 часа<br>Случайные фотографии<br>Лента фотография</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="lcol"></td>
|
||||
<td style="padding:7px 2px">
|
||||
<input type="checkbox" name="disableexif" id="disableexif" value="1"> <label for="disableexif">Скрыть EXIF</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="lcol"></td>
|
||||
<td class="sm" style="color:#888">EXIF (параметры съёмки) фотографии будет скрыт на странице.</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="lcol"></td>
|
||||
|
@ -913,11 +924,13 @@ $user = new User(Auth::userid());
|
|||
<input type="checkbox" name="disablesubsnotify" id="disablesubsnotify" value="1"> <label for="disablesubsnotify">Не уведомлять подписчиков о новом медиа</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="lcol"></td>
|
||||
<td class="sm" style="color:#888">Ваши подписчики не получат уведомление о публикации Медиа, но они всегда смогут его увидеть из общих топов (если таковая настройка не была отключена</td>
|
||||
|
||||
</tr> <br>
|
||||
|
||||
<tr>
|
||||
<td class="lcol"></td>
|
||||
<td class="sm" style="color:#888"><b>Вы можете всегда в любое время изменить эти настройки.</b></td>
|
||||
|
|
Loading…
Reference in a new issue