mirror of
https://github.com/claradex/nativegallery.git
synced 2024-12-22 16:41:04 +03:00
update photo page
This commit is contained in:
parent
7e55916b73
commit
4ba325ea42
8 changed files with 291 additions and 205 deletions
|
@ -17,7 +17,7 @@ class Upload
|
|||
|
||||
public static function create($postbody, $content, $exif)
|
||||
{
|
||||
DB::query('INSERT INTO photos VALUES (\'0\', :userid, :postbody, :photourl, :time, :exif, 0, :content, :country, :city)', array(':postbody' => $postbody, ':userid' => Auth::userid(), ':time' => mktime(0, 0, 0, $_POST['month'], $_POST['day'], $_POST['year']), ':content' => $content, ':photourl' => self::$photourl, ':exif' => $exif, ':country' => $_POST['country'], ':city' => $_POST['city']));
|
||||
DB::query('INSERT INTO photos VALUES (\'0\', :userid, :postbody, :photourl, :time, :exif, 0, :place, :content)', array(':postbody' => $postbody, ':userid' => Auth::userid(), ':time' => mktime(0, 0, 0, $_POST['month'], $_POST['day'], $_POST['year']), ':content' => $content, ':photourl' => self::$photourl, ':exif' => $exif, ':place' => $_POST['place']));
|
||||
echo json_encode(
|
||||
array(
|
||||
'errorcode' => 0,
|
||||
|
@ -28,17 +28,19 @@ class Upload
|
|||
public function __construct()
|
||||
{
|
||||
|
||||
if ($_FILES['filebody']['error'][0] != 4) {
|
||||
$exif = new EXIF($_FILES['filebody']['tmp_name']);
|
||||
$upload = new UploadPhoto($_FILES['filebody'], 'cdn/img');
|
||||
if ($upload['type'] !== null) {
|
||||
if ($_FILES['image']['error'] != 4) {
|
||||
$exif = new EXIF($_FILES['image']['tmp_name']);
|
||||
$upload = new UploadPhoto($_FILES['image'], 'cdn/img');
|
||||
if ($upload->getType() !== null) {
|
||||
$content = Json::return(
|
||||
array(
|
||||
'type' => 'none'
|
||||
'type' => 'none',
|
||||
'copyright' => $_POST['license'],
|
||||
'comment' => $_POST['comment'],
|
||||
)
|
||||
);
|
||||
self::$photourl = $upload['src'];
|
||||
self::create($_POST['descr'], $content, $exif);
|
||||
self::$photourl = $upload->getSrc();
|
||||
self::create($_POST['descr'], $content, $exif->getData());
|
||||
}
|
||||
} else {
|
||||
echo json_encode(
|
||||
|
|
19
app/Models/Photo.php
Normal file
19
app/Models/Photo.php
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
namespace App\Models;
|
||||
use \App\Services\DB;
|
||||
|
||||
class Photo {
|
||||
|
||||
public $photoid;
|
||||
function __construct(int $user_id) {
|
||||
$this->photoid = $user_id;
|
||||
}
|
||||
public function i($table) {
|
||||
return DB::query("SELECT * FROM photos WHERE id=:id", array(':id'=>$this->photoid))[0][$table];
|
||||
}
|
||||
public function content($table) {
|
||||
$content = json_decode(self::i('content'), true);
|
||||
return $content[$table];
|
||||
}
|
||||
|
||||
}
|
|
@ -2,24 +2,29 @@
|
|||
|
||||
namespace App\Services;
|
||||
|
||||
|
||||
class EXIF
|
||||
|
||||
{
|
||||
private $data;
|
||||
|
||||
public function __construct($file)
|
||||
{
|
||||
$exif = exif_read_data($file, 0, true);
|
||||
$jsonData = [];
|
||||
|
||||
|
||||
if ($exif !== false) {
|
||||
foreach ($exif as $key => $section) {
|
||||
foreach ($section as $name => $val) {
|
||||
$jsonData["$key.$name"] = $val;
|
||||
}
|
||||
}
|
||||
return json_encode($jsonData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
|
||||
$this->data = json_encode($jsonData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
|
||||
} else {
|
||||
$this->data = null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getData()
|
||||
{
|
||||
return $this->data;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,10 @@ namespace App\Services;
|
|||
class Upload
|
||||
|
||||
{
|
||||
public $type;
|
||||
public $src;
|
||||
public $size;
|
||||
public $name;
|
||||
|
||||
private static function human_filesize($bytes, $dec = 2): string
|
||||
{
|
||||
|
@ -37,11 +41,29 @@ class Upload
|
|||
'Key' => $folder,
|
||||
'SourceFile' => $file['tmp_name']
|
||||
]);
|
||||
return [
|
||||
'type' => explode('/', $file['type'])[0],
|
||||
'src' => NGALLERY['root']['storage']['s3']['domains']['public'].'/'.$location . $filecdn,
|
||||
'size' => self::human_filesize(filesize($file['tmp_name'])),
|
||||
'name' => $file['name']
|
||||
];
|
||||
$this->type = explode('/', $file['type'])[0];
|
||||
$this->src = NGALLERY['root']['storage']['s3']['domains']['public'] . '/' . $location . $filecdn;
|
||||
$this->size = self::human_filesize(filesize($file['tmp_name']));
|
||||
$this->name = $file['name'];
|
||||
}
|
||||
public function getType()
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
public function getSrc()
|
||||
{
|
||||
return $this->src;
|
||||
}
|
||||
|
||||
public function getSize()
|
||||
{
|
||||
return $this->size;
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
153
static/css/comments.css
Normal file
153
static/css/comments.css
Normal file
|
@ -0,0 +1,153 @@
|
|||
#comfilter { float:right; margin-top:-60px; }
|
||||
|
||||
.comment, .cmt-write, .cmt-subscribe { border-top:#f7f7f7; }
|
||||
|
||||
.comment { padding:10px 11px 23px; position:relative; }
|
||||
.rank { font-size:11px; color:#808080; }
|
||||
.message-text { margin-top: 20px; overflow-wrap: anywhere; }
|
||||
|
||||
.pp-item-header { padding:3px 11px; margin:0; }
|
||||
|
||||
.cmt-write { padding-top:5px; }
|
||||
.cmt-submit { font-size:11px; color:#777; }
|
||||
.cmt-subscribe { padding:11px; }
|
||||
|
||||
#wtext { width:100%; height:150px; margin-bottom:10px; }
|
||||
|
||||
.wvote { margin-left:5px; position:relative; z-index:10; }
|
||||
|
||||
.w-rating, .w-btn, .w-btn span { box-sizing:border-box; width:34px; text-align:center; white-space:nowrap; }
|
||||
|
||||
.w-rating { position:relative; height:15px; font-size:10px; line-height:12px; font-weight:bold; color:#aaa; border:solid 1px #ccc; -webkit-user-select:none; -moz-user-select:none; -ms-user-select:none; user-select:none; }
|
||||
.w-rating.active { background-color:#fbfbfb; cursor:default; }
|
||||
|
||||
.w-rating-ext { width:0; height:15px; position:absolute; top:0; right:37px; transition:width 0.2s ease; overflow:hidden; text-align:right; }
|
||||
.w-rating-ext div { display:inline-block; vertical-align:top; height:15px; font-size:10px; padding:1px 5px; white-space:nowrap; background-color:#f7f7f7; color:#aaa; word-spacing:-1px; }
|
||||
.w-rating-ext.active, .w-rating-ext.active-locked { width:100px; }
|
||||
|
||||
.w-btn { display:block; height:0; position:absolute; transition:height 0.2s ease; overflow:hidden; outline:none; }
|
||||
.w-btn.voted, .w-btn.voted:hover { background-color:#d7d7d7 !important; }
|
||||
.w-btn.active { height:25px; }
|
||||
.w-btn[vote="1"] { bottom:15px; }
|
||||
.w-btn[vote="0"] { top:15px; }
|
||||
|
||||
.w-btn span { color:#000; position:absolute; left:0; }
|
||||
.w-btn.voted span { color:#888; }
|
||||
.w-btn[vote="1"] span { top:4px; }
|
||||
.w-btn[vote="0"] span { bottom:4px; }
|
||||
|
||||
.pro { color:#0a0; }
|
||||
.con { color:#d00; }
|
||||
|
||||
.compl { display:block; box-sizing:border-box; border:solid 1px #ccc; width:16px; height:15px; font-weight:bold; font-size:10px; line-height:12px; text-align:center; }
|
||||
.compl:hover, .compl:visited:hover { border-color:#fa3; background-color:#fe9; }
|
||||
.gold, .compl { color:#edad23; }
|
||||
.grey { color:#08e; }
|
||||
|
||||
.wvote-tools { position:absolute; top:18px; right:37px; z-index:500; text-align:right; font-size:11px; padding:3px 6px; white-space:nowrap; }
|
||||
|
||||
.no-politics { color:#e00; margin-bottom:7px; }
|
||||
.no-quote-last { color:#c00; font-size:11px; margin-top:15px; }
|
||||
|
||||
.toggle {
|
||||
display:inline-block;
|
||||
vertical-align:middle;
|
||||
position:relative;
|
||||
border-radius:10px;
|
||||
background-color:#c5c5c5;
|
||||
width:35px;
|
||||
height:20px;
|
||||
overflow:hidden;
|
||||
-webkit-transition:all .25s linear; -moz-transition:all .25s linear; -o-transition:all .25s linear; transition:all .25s linear;
|
||||
cursor:pointer;
|
||||
-webkit-touch-callout:none;
|
||||
-webkit-user-select:none; -khtml-user-select:none; -moz-user-select:none; -ms-user-select:none; user-select:none;
|
||||
}
|
||||
|
||||
.toggle .handle {
|
||||
width:16px;
|
||||
height:16px;
|
||||
border-radius:8px;
|
||||
position:absolute;
|
||||
top:2px;
|
||||
left:2px;
|
||||
background-color:#fff;
|
||||
-webkit-transition: all 0.4s cubic-bezier(0.33, 1.6, 0.66, 1); -moz-transition: all 0.4s cubic-bezier(0.33, 1.6, 0.66, 1); -o-transition: all 0.4s cubic-bezier(0.33, 1.6, 0.66, 1); transition: all 0.4s cubic-bezier(0.33, 1.6, 0.66, 1);
|
||||
}
|
||||
|
||||
.toggle.on { background-color:#6bc86b; }
|
||||
.toggle.on .handle { left:17px; }
|
||||
|
||||
.pc-links, .pc-topost { font-size:11px; }
|
||||
|
||||
/*@media (min-width:700px)
|
||||
{*/
|
||||
.p-comment { display:flex; margin-bottom:15px; }
|
||||
|
||||
.pc-photo { width:250px; padding:15px; }
|
||||
.pc-content { display:flex; flex-direction:column; flex-grow:1; position:relative; }
|
||||
|
||||
.pc-text { padding:13px 15px 20px 5px; flex-grow:1; }
|
||||
.pc-links { padding:0 0 15px 5px; }
|
||||
.pc-topost { position:absolute; right:15px; top:12px; }
|
||||
.pc-compl { position:absolute; right:15px; bottom:15px; }
|
||||
|
||||
.comment-votes-block { float:right; display:flex; position:relative; }
|
||||
|
||||
.cmt-cons, .cmt-mark { margin-right:11px; }
|
||||
/*}
|
||||
|
||||
@media (max-width:700px)
|
||||
{
|
||||
.p-comment { display:flex; flex-direction:column; align-items:center; }
|
||||
|
||||
.pc-photo { padding-bottom:7px; }
|
||||
.pc-content { display:flex; flex-wrap:wrap; }
|
||||
|
||||
.pc-text { order:2; width:100%; border-top:solid 1px #ddd; border-bottom:solid 1px #ddd; padding:10px 0; margin-bottom:7px; }
|
||||
.pc-links { order:1; width:100%; text-align:center; padding-bottom:10px; }
|
||||
.pc-topost { order:3; margin-top:3px; flex-grow:1; }
|
||||
.pc-compl { order:4; margin-top:3px; }99999
|
||||
|
||||
.cmt-aname { display:block; }
|
||||
.cmt-dot { display:none !important; }
|
||||
.cmt-date { display:inline !important; }
|
||||
|
||||
#title { padding-left:0; }
|
||||
#title3 { display:none; }
|
||||
#title2 { display:inline-block; }
|
||||
|
||||
#navtop_frame { display:flex; flex-direction:column; justify-content:space-around; padding:3px 0 }
|
||||
#languages { float:none; padding:0 10px 5px; }
|
||||
#title_s { display:block; margin:-3px 0 3px !important; }
|
||||
#navtop { padding-left:0; }
|
||||
#navtop a[href="/photo/"] { padding-left:0; float:none !important; position:absolute; top:0; right:0; font-size:11px; color:#fff; }
|
||||
|
||||
.main { padding:0 10px; }
|
||||
|
||||
h1 { font-size:30px; }
|
||||
h2 { font-size:26px; }
|
||||
|
||||
.pages { line-height:20px; }
|
||||
.pg, .ps { padding:7px 10px; }
|
||||
|
||||
#comfilter { float:none; margin:0 0 15px; }
|
||||
|
||||
.p20p { padding:10px !important; margin-bottom:-10px; }
|
||||
|
||||
.p5h { padding:0 !important; }
|
||||
.p5h > table, .p5h > table > tbody, .p5h > table > tbody > tr, .p5h > table > tbody > tr > td { display:block; width:100%; }
|
||||
.p5h > tr { display:flex; flex-direction:column; align-items:center; }
|
||||
|
||||
.pb_pre, .pb_photo, .pb_descr, .pb_tools { display:block; padding:0; text-align:center; }
|
||||
.pb_pre { padding:10px 0 7px; }
|
||||
.pb_descr p { margin:7px 0; }
|
||||
.pb_descr p.sm { margin:9px 0 5px; }
|
||||
|
||||
.pb_tools { margin-top:15px; }
|
||||
.pb_tools a { display:inline-block; font-size:13px; padding:5px 10px; background-image:url('/img/yellow_stripes.png'); }
|
||||
.pb_tools > .s3 { display:block; position:static !important; font-size:11px; padding:0 !important; margin:3px 0 0 0 !important; background:transparent; color:#bbb !important; }
|
||||
|
||||
.pc_pre { display:none; }
|
||||
.message_text.feed { margin-top:10px; }
|
||||
}*/
|
|
@ -10,6 +10,7 @@
|
|||
<link rel="stylesheet" href="/static/css/trans.css">
|
||||
<link rel="stylesheet" href="/static/css/photo.css">
|
||||
<link rel="stylesheet" href="/static/css/notie.css">
|
||||
<link rel="stylesheet" href="/static/css/comments.css">
|
||||
<script src="/static/js/jquery.js"></script>
|
||||
<script src="/static/js/jquery-ui.js"></script>
|
||||
<script src="/static/js/jquery.form.min.js"></script>
|
||||
|
|
|
@ -1,17 +1,25 @@
|
|||
<?php
|
||||
|
||||
use App\Services\{DB, Auth, Date, Json};
|
||||
|
||||
$photo = new \App\Models\Photo(explode('/', $_SERVER['REQUEST_URI'])[2]);
|
||||
$photouser = new \App\Models\User($photo->i('user_id'));
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
<?php include($_SERVER['DOCUMENT_ROOT'] . '/views/components/LoadHead.php'); ?>
|
||||
<?php include($_SERVER['DOCUMENT_ROOT'] . '/views/components/LoadHead.php'); ?>
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
<div id="backgr"></div>
|
||||
<table class="tmain">
|
||||
<?php include($_SERVER['DOCUMENT_ROOT'] . '/views/components/Navbar.php'); ?>
|
||||
<?php include($_SERVER['DOCUMENT_ROOT'] . '/views/components/Navbar.php'); ?>
|
||||
<tr>
|
||||
<td class="main">
|
||||
<center>
|
||||
|
@ -67,14 +75,14 @@
|
|||
})
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="photobar">
|
||||
<div id="prev" title="Переход по профилю ТС"><span><</span></div>
|
||||
<div id="next" title="Переход по профилю ТС"><span>></span></div>
|
||||
<div style="display:inline-block">
|
||||
<div id="underphoto_frame">
|
||||
<div id="ph_frame">
|
||||
<img id="ph" src="/photo/13/61/06/1361063.jpg" alt="Москва, ЗиУ-683Б [Б00] № 4608; Москва, ЗиУ-682В-012 [В0А] № 4238; Москва — Троллейбусные баррикады в августе 1991" title="Москва, ЗиУ-683Б [Б00] № 4608; Москва, ЗиУ-682В-012 [В0А] № 4238; Москва — Троллейбусные баррикады в августе 1991">
|
||||
<img id="ph" src="<?= $photo->i('photourl') ?>" alt="" title="Фотография">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -116,28 +124,17 @@
|
|||
<div style="line-height:15px; margin-bottom:10px">
|
||||
<table class="pwrite">
|
||||
<tr>
|
||||
<td class="nw" valign="top" align="right"><a href="/country/1/"><img class="flag" src="/img/r/1.gif" title="Россия"></a> <b><a href="/city/1/">Москва</a></b>, </td>
|
||||
<td class="nw" valign="top" align="right"><span class="s5"> ЗиУ-683Б [Б00]</span></td>
|
||||
<td class="nw s5" align="left" valign="top"> № <b><a href="/vehicle/78618/#n76272">4608</a></b> </td>
|
||||
<td class="nw" align="left" valign="top"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="nw" valign="top" align="right" colspan="2"><span class="s5"> ЗиУ-682В-012 [В0А]</span></td>
|
||||
<td class="nw s5" align="left" valign="top"> № <b><a href="/vehicle/71937/#n70204">4238</a></b> </td>
|
||||
<td class="nw" valign="top" align="right"><b><?= $photo->i('place') ?></b></td>
|
||||
<td class="nw" align="left" valign="top"></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
<div><a href="/articles/183/">Троллейбусные баррикады в августе 1991</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div><b>Новинский бульвар</b>
|
||||
<div style="padding-top:8px">Еще целые троллейбусы.<br />
|
||||
<br />
|
||||
Автор : А.И.Авдеев<br />
|
||||
Источник <a href="https://pastvu.com/p/807429" target="_blank">https://pastvu.com/p/807429</a>
|
||||
</div>
|
||||
<div>
|
||||
<div style="padding-top:8px"><?= $photo->content('comment') ?></div>
|
||||
</div><br>
|
||||
<div>Прислал <a href="/author/14224/">Максим Дорофеев ( ФанатВ )</a> · <span class="flag"><img src="/img/r/1.gif" title="Россия"> Калуга</span> Дата: <b>19 августа 1991 г., понедельник (примерно)</b></div>
|
||||
<div>Прислал <a href="/author/<?= $photo->i('user_id') ?>/"><?= $photouser->i('username') ?></a> Дата: <b><?= Date::zmdate($photo->i('posted_at')) ?></b></div>
|
||||
<table id="pp-items">
|
||||
<tr>
|
||||
<td id="pp-left-col">
|
||||
|
@ -369,150 +366,61 @@
|
|||
</td>
|
||||
<td id="pp-main-col">
|
||||
<div id="pp-item-vdata">
|
||||
<div class="p0">
|
||||
<h4 class="pp-item-header"><b><a href="/vehicle/78618/#n76272">Москва, ЗиУ-683Б [Б00] № 4608</a></b></h4>
|
||||
<div class="pp-item-body">
|
||||
<table class="linetable">
|
||||
<col width="25%">
|
||||
<tr class="s11 h21">
|
||||
<td class="ds nw">Депо/Парк:</td>
|
||||
<td class="ds"><b><a href="/list.php?did=10">4-й троллейбусный парк имени П.М. Щепетильникова</a></b></td>
|
||||
</tr>
|
||||
<tr class="s1 h21">
|
||||
<td class="ds nw">С...:</td>
|
||||
<td class="ds"><b>01.1989</b></td>
|
||||
</tr>
|
||||
<tr class="s11 h21">
|
||||
<td class="ds nw">Модель:</td>
|
||||
<td class="ds"><b><a href="/model/66/">ЗиУ-683Б [Б00]</a></b></td>
|
||||
</tr>
|
||||
<tr class="s1 h21">
|
||||
<td class="ds nw">Построен:</td>
|
||||
<td class="ds"><b>12.1988</b></td>
|
||||
</tr>
|
||||
<tr class="s11 h21">
|
||||
<td class="ds nw">Заводской №:</td>
|
||||
<td class="ds"><b>158</b></td>
|
||||
</tr>
|
||||
<tr class="s1 h21">
|
||||
<td class="ds nw">Текущее состояние:</td>
|
||||
<td class="ds" style="padding-left:7px; padding-top:1px"><span class="state s5">Списан (<b>10.09.1992</b>)</span></td>
|
||||
</tr>
|
||||
<tr class="s11 h21">
|
||||
<td class="ds nw">Назначение:</td>
|
||||
<td class="ds">Пассажирский</td>
|
||||
</tr>
|
||||
<tr class="s1">
|
||||
<td colspan="2" class="ds" style="padding:9px 11px">Заводская окраска изображена на фото <a href="https://transphoto.org/photo/1194603/" target="_blank">https://transphoto.org/photo/1194603/</a> .<br />
|
||||
<br />
|
||||
Капитальных ремонтов не проходил.<br />
|
||||
<br />
|
||||
Работал на маршрутах Б,10.<br />
|
||||
<br />
|
||||
Разбит во время событий августа 1991 г.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p0">
|
||||
<h4 class="pp-item-header"><b><a href="/vehicle/71937/#n70204">Москва, ЗиУ-682В-012 [В0А] № 4238</a></b></h4>
|
||||
<div class="pp-item-body">
|
||||
<table class="linetable">
|
||||
<col width="25%">
|
||||
<tr class="s11 h21">
|
||||
<td class="ds nw">Депо/Парк:</td>
|
||||
<td class="ds"><b><a href="/list.php?did=10">4-й троллейбусный парк имени П.М. Щепетильникова</a></b></td>
|
||||
</tr>
|
||||
<tr class="s1 h21">
|
||||
<td class="ds nw">С...:</td>
|
||||
<td class="ds"><b>1988</b></td>
|
||||
</tr>
|
||||
<tr class="s11 h21">
|
||||
<td class="ds nw">Модель:</td>
|
||||
<td class="ds"><b><a href="/model/104/">ЗиУ-682В-012 [В0А]</a></b></td>
|
||||
</tr>
|
||||
<tr class="s1 h21">
|
||||
<td class="ds nw">Построен:</td>
|
||||
<td class="ds"><b>1988</b></td>
|
||||
</tr>
|
||||
<tr class="s11 h21">
|
||||
<td class="ds nw">Заводской №:</td>
|
||||
<td class="ds"><b>31447</b></td>
|
||||
</tr>
|
||||
<tr class="s1 h21">
|
||||
<td class="ds nw">Текущее состояние:</td>
|
||||
<td class="ds" style="padding-left:7px; padding-top:1px"><span class="state s5">Списан (<b>09.1992</b>)</span></td>
|
||||
</tr>
|
||||
<tr class="s11 h21">
|
||||
<td class="ds nw">Назначение:</td>
|
||||
<td class="ds">Пассажирский</td>
|
||||
</tr>
|
||||
<tr class="s1">
|
||||
<td colspan="2" class="ds" style="padding:9px 11px">Заводская окраска бело-красный в "шипиловской" схеме.<br />
|
||||
<br />
|
||||
Капитальных ремонтов не проходил.<br />
|
||||
<br />
|
||||
Работал на маршрутах Б,10.<br />
|
||||
<br />
|
||||
"Баррикада" в путче 1991 года
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p0" id="pp-item-exif">
|
||||
<h4 class="pp-item-header">Параметры съёмки</h4>
|
||||
<div class="pp-item-body">
|
||||
<table class="linetable" id="exif">
|
||||
<tr class="s11 h21" style="display:none">
|
||||
<td class="ds nw" width="30%">Производитель камеры:</td>
|
||||
<td class="ds">Epson</td>
|
||||
</tr>
|
||||
<tr class="s11 h21">
|
||||
<td class="ds nw" width="30%">Модель камеры:</td>
|
||||
<td class="ds">Perfection3200</td>
|
||||
</tr>
|
||||
<tr class="s1 h21" style="display:none">
|
||||
<td class="ds nw" width="30%">Программное обеспечение:</td>
|
||||
<td class="ds">Adobe Photoshop CC 2018 (Windows)</td>
|
||||
</tr>
|
||||
<tr class="s1 h21">
|
||||
<td class="ds" colspan="2"><a id="showexif" href="#">Показать весь EXIF</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="p0" id="pp-item-comments">
|
||||
<h4 class="pp-item-header">Комментарии<span style="font-weight:normal"> <span style="color:#aaa">·</span> 1</span></h4>
|
||||
<div class="s11 comment" wid="2681468">
|
||||
<div style="float:right; text-align:right" class="sm">
|
||||
<span class="message_date">12.08.2020</span> 16:57 MSK<br>
|
||||
<a href="#2681468" class="cmLink dot">Ссылка</a>
|
||||
<div class="p0" id="pp-item-exif">
|
||||
<h4 class="pp-item-header">Параметры съёмки</h4>
|
||||
<div class="pp-item-body">
|
||||
<table class="linetable" id="exif">
|
||||
<?php
|
||||
$data = json_decode($photo->i('exif'), true);
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
if ($key === 'FILE.FileDateTime') {
|
||||
$value = Date::zmdate($value);
|
||||
}
|
||||
|
||||
echo '
|
||||
<tr class="s11 h21">
|
||||
<td class="ds nw" width="30%">' . htmlspecialchars($key) . ':</td>
|
||||
<td class="ds">' . htmlspecialchars($value) . '</td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
<a name="2681468"></a><a name="last"></a>
|
||||
<div><b><a href="/author/533/" class="message_author">Андрей Янковский</a></b> · <span class="flag"><img src="/img/r/3.gif" title="Украина"> Днепр</span></div>
|
||||
<div class="rank">Фото: 1585</div>
|
||||
<div class="message-text">Есть аналогичное фото в цвете:<br><a href="https://smart-lab.ru/uploads/images/00/00/16/2011/10/16/433a3c.jpg" target="_blank">https://smart-lab.ru/uploads/images/00/0...a3c.jpg</a></div>
|
||||
<div class="comment-votes-block">
|
||||
<div class="wvote" wid="2681468">
|
||||
<div class="w-rating pro">+1</div>
|
||||
<div class="w-rating-ext">
|
||||
<div><span class="pro">+1</span> / <span class="con">–0</span></div>
|
||||
</div>
|
||||
|
||||
<div class="p0" id="pp-item-comments">
|
||||
<h4 class="pp-item-header">Комментарии<span style="font-weight:normal"> <span style="color:#aaa">·</span> 1</span></h4>
|
||||
<div class="s11 comment" wid="2681468">
|
||||
<div style="float:right; text-align:right" class="sm">
|
||||
<span class="message_date">12.08.2020</span> 16:57 MSK<br>
|
||||
<a href="#2681468" class="cmLink dot">Ссылка</a>
|
||||
</div>
|
||||
<a name="2681468"></a><a name="last"></a>
|
||||
<div><b><a href="/author/533/" class="message_author">Андрей Янковский</a></b> · <span class="flag"><img src="/img/r/3.gif" title="Украина"> Днепр</span></div>
|
||||
<div class="rank">Фото: 1585</div>
|
||||
<div class="message-text">Есть аналогичное фото в цвете:<br><a href="https://smart-lab.ru/uploads/images/00/00/16/2011/10/16/433a3c.jpg" target="_blank">https://smart-lab.ru/uploads/images/00/0...a3c.jpg</a></div>
|
||||
<div class="comment-votes-block">
|
||||
<div class="wvote" wid="2681468">
|
||||
<div class="w-rating pro">+1</div>
|
||||
<div class="w-rating-ext">
|
||||
<div><span class="pro">+1</span> / <span class="con">–0</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cmt-write s1">
|
||||
<h4 class="pp-item-header">Ваш комментарий</h4>
|
||||
<div style="padding:0 11px 11px">
|
||||
<div class="no-politics">За обсуждение политики будет выноситься бан на 1 месяц и более.</div>
|
||||
Вы не <a href="/login.php">вошли на сайт</a>.<br />Комментарии могут оставлять только зарегистрированные пользователи.
|
||||
<div class="cmt-write s1">
|
||||
<h4 class="pp-item-header">Ваш комментарий</h4>
|
||||
<div style="padding:0 11px 11px">
|
||||
<div class="no-politics">За обсуждение политики будет выноситься бан на 1 месяц и более.</div>
|
||||
Вы не <a href="/login.php">вошли на сайт</a>.<br />Комментарии могут оставлять только зарегистрированные пользователи.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -574,16 +574,7 @@ $user = new User(Auth::userid());
|
|||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td style="padding:5px 2px 10px">
|
||||
<input type="checkbox" name="naa" id="naa" value="1" onclick="toggleNAA()"> <label for="naa">Я не автор этой фотографии</label>
|
||||
<div id="naa_hint" style="display:none">
|
||||
<div class="sm" style="margin-top:5px; line-height:14px"><b>Не забудьте указать источник и имя автора в поле «Описание»!</b><br />Если Вы не являетесь автором фотографии, убедитесь, что автор дал Вам разрешение публиковать её на СТТС.<br />Загрузка фотографий без разрешения их автора <u>запрещена</u>.<br><br><b>Разрешение на публикацию на Transphoto</b> (ссылка или пояснение):</div>
|
||||
<input type="text" name="naa_allow" id="naa_allow" style="width:506px" value="">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2" style="height:7px"></td>
|
||||
<tr>
|
||||
|
@ -607,13 +598,7 @@ $user = new User(Auth::userid());
|
|||
<tr>
|
||||
<td colspan="2" class="narrow" style="font-size:20px; padding:10px 15px 5px">Шаг 3. <b>Выберите опции загрузки:</b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td style="padding-right:15px; padding-bottom:15px">
|
||||
<input type="checkbox" name="up-comment-link" id="up-comment-link" value="1"> <label for="up-comment-link">Добавить комментарий при публикации</label><span id="up-comment-row" style="display:none">:<br>
|
||||
<textarea name="comment" id="comment" rows="5" style="width:100%; margin-top:5px"></textarea></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="lcol">Лицензия:</td>
|
||||
<td style="padding-bottom:7px">
|
||||
|
@ -631,16 +616,7 @@ $user = new User(Auth::userid());
|
|||
</select> <a href="https://creativecommons.org/licenses/?lang=ru" target="_blank" class="und sm">Информация о лицензиях</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="lcol">
|
||||
Пояснения модератору:
|
||||
<div class="sm" style="color:#999; margin:3px 5px 0 0">(если требуются)</div>
|
||||
</td>
|
||||
<td style="padding-right:15px">
|
||||
<textarea name="notes_mod" id="notes_mod" style="width:100%; height:40px"></textarea>
|
||||
<div class="sm" style="color:#999; margin-top:3px">Можно пояснить ценность фотографии, если на ней изображёно что-то редкое или уникальное (ведь фотомодераторам это может быть неизвестно).</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
|
@ -678,7 +654,7 @@ var continuepost = 0;
|
|||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: '/api/posts/create',
|
||||
url: '/api/upload',
|
||||
data: formData,
|
||||
|
||||
xhr: function() {
|
||||
|
|
Loading…
Reference in a new issue