<?php use App\Services\{DB, Auth, Date, Json}; use App\Models\{User, Vote}; $id = explode('/', $_SERVER['REQUEST_URI'])[2]; $photo = new \App\Models\Photo($id); $photouser = new \App\Models\User($photo->i('user_id')); ?> <!DOCTYPE html> <html lang="ru"> <head> <?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'); ?> <tr> <td class="main"> <center> <script> var pid = 1361063; var video = 0; var self_p = 0; var subscr_pro = 0; var subscr_fav = 0; addTexts({ 'P_CURRENT': 'Это — текущая фотография.', 'P_MOVE_FIRST': 'Это самое первое фото', 'P_MOVE_LAST': 'Это самое новое фото', 'P_MOVE_ALONE_V': 'Это единственное фото ТС', 'P_MOVE_ALONE_G': 'Это единственное фото в галерее', 'P_QUOTE_MSG': 'Нет смысла цитировать последнее сообщение целиком.<br />Если Вы хотите процитировать часть сообщения, выделите часть текста и нажмите на ссылку ещё раз.', 'P_QUOTE_LEN': 'Слишком длинная цитата. Пользователям будет неудобно читать такой комментарий.<br>Пожалуйста, выделите конкретное предложение, на которое вы отвечаете, и нажмите на ссылку еще раз.', 'P_QUOTE_TXT': 'Цитата', 'P_DEL_CONF': 'Вы действительно хотите удалить свой комментарий?', 'P_WAIT': 'Пожалуйста, подождите...', 'P_ADDFAV': 'Добавить фото в Избранное', 'P_DELFAV': 'Удалить фото из Избранного', 'P_ENTERTEXT': 'Введите текст комментария', 'LOADING': 'Загрузка...', 'NO_VOTES': 'Нет голосов', 'MAP_OSM': 'Карта OpenStreetMap', 'MAP_OSM_BW': 'Чёрно-белая карта OpenStreetMap', 'MAP_OSM_HOT': 'Карта Humanitarian OpenStreetMap Team', 'MAP_TOPO': 'Карта OpenTopoMap', 'MAP_WIKIMEDIA': 'Карта Wikimedia', 'MAP_OPNV': 'Карта ÖPNVKarte', 'MAP_OPENPTMAP': 'Общественный транспорт от OpenPtMap', 'MAP_RAILWAY': 'Железная дорога от OpenRailwayMap', 'MAP_BING': 'Спутник Bing', 'MAP_YANDEX': 'Карта Яндекс', 'MAP_YANDSAT': 'Спутник Яндекс' }); var showmap = false; var vid = 78618; var gid = 0; var aid = 0; var upd = 0; </script> <div style="background-color:#555; margin:0 -20px; padding:7px"> <!-- Yandex.RTB R-A-115118-6 --> <div id="yandex_rtb_R-A-115118-6"></div> <script> window.yaContextCb.push(() => { Ya.Context.AdvManager.render({ renderTo: 'yandex_rtb_R-A-115118-6', blockId: 'R-A-115118-6' }) }) </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->i('photourl') ?>" alt="" title="Фотография"> </div> </div> </div> </div> <script> function checkPhotoSize() { var photo = $('#ph'); if (!photo.length) return; var w = photo[0].naturalWidth; var h = photo[0].naturalHeight; var pw = photo.width(); var ww = $(window).width(); var wh = $(window).height(); if (h > w && w < ww) photo.addClass('v-zoom'); else photo.removeClass('v-zoom'); if (w === undefined || w == 0 || w > pw || w > ww || (h > wh && h > w)) { photo.removeClass('nozoom').off('click').on('click', function() { photo.toggleClass('zoomed'); }); } else photo.addClass('nozoom').off('click'); } // Масштабирование фото $('#ph').on('load', checkPhotoSize); $(window).on('resize', checkPhotoSize); checkPhotoSize(); </script> </center> </td> </tr> </table> <div id="pmain"> <div> <div style="line-height:15px; margin-bottom:10px"> <table class="pwrite"> <tr> <td class="nw" valign="top" align="right"><b><?= $photo->i('place') ?></b></td> <td class="nw" align="left" valign="top"></td> </tr> </table> </div> </div> <div> <div style="padding-top:8px"><?= $photo->content('comment') ?></div> </div><br> <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"> <div class="p20a" id="pp-item-info"> <h4>Статистика</h4> <div class="sm"> <div style="margin-bottom:10px">Лицензия: <b>BY-NC</b></div> Опубликовано <b>13.07.2020 17:47 MSK</b><br> Просмотров — <b>1693</b><br><br> <a href="/photoext.php?pid=1361063">Подробная информация</a> </div> </div> <div class="p20a" id="pp-item-vote"> <h4 class="pp-item-header">Оценка</h4> <div class="sm"> <img class="loader" pid="1361063" src="/img/loader.png"> <div class="rtext">Рейтинг: <b id="rating"><?=Vote::count($id)?></b></div> <div class="star" pid="1361063"></div> <div class="vote" pid="<?=$id?>"> <a href="#" vote="1" class="vote_btn"><span>Интересная фотография!</span></a><a href="#" vote="0" class="vote_btn"><span>Мне не нравится</span></a> </div> <div id="votes" class="votes"> <table class="vblock pro"> <?php $votespos = DB::query('SELECT * FROM photos_rates WHERE photo_id=:pid AND type=1', array(':pid'=>$id)); foreach ($votespos as $ps) { $uservote = new User($ps['user_id']); echo ' <tr> <td><a href="/author/'.$ps['user_id'].'/">'.$uservote->i('username').'</a></td> <td class="vv">+1</td> </tr>'; } ?> </table> <table class="vblock coN"> <?php $votespos = DB::query('SELECT * FROM photos_rates WHERE photo_id=:pid AND type=0', array(':pid'=>$id)); foreach ($votespos as $ps) { $uservote = new User($ps['user_id']); echo ' <tr> <td><a href="/author/'.$ps['user_id'].'/">'.$uservote->i('username').'</a></td> <td class="vv">-1</td> </tr>'; } ?> </table> </div> </div> </div> <div class="p20a" id="pp-item-link"> <h4 style="margin-bottom:7px">Постоянная ссылка на фото</h4> <input type="text" value="https://transphoto.org/photo/1361063/" readonly="readonly" class="pp-link" onclick="this.select()"> <script src="//yandex.st/share/share.js" charset="utf-8" async defer></script> <div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="none" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,lj"></div> </div> </td> <td id="pp-main-col"> <div id="pp-item-vdata"> <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> </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 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> </td> </tr> </table> </div> <table width="100%"> <tr> <td> </center> </td> </tr> <tr> <td id="adframe"> <!-- Yandex.RTB R-A-115118-1 --> <div id="yandex_rtb_R-A-115118-1"></div> <script> window.yaContextCb.push(() => { Ya.Context.AdvManager.render({ renderTo: 'yandex_rtb_R-A-115118-1', blockId: 'R-A-115118-1' }) }) </script> </td> </tr> <tr> <td class="footer"><b><a href="/">Главная</a> <a href="https://forum.transphoto.org">Форум</a> <a href="/rules/">Правила</a> <a href="/admin/">Редколлегия</a></b><br> <a href="/set.php?pcver=0">Мобильная версия</a><br><a href="/set.php?dark=1" style="display:inline-block; padding:1px 10px; margin-top:5px; background-color:#333; color:#fff">Тёмная тема</a> <div class="sitecopy">© Администрация ТрансФото и авторы материалов, 2002—2024<br>Использование фотографий и иных материалов, опубликованных на сайте, допускается только с разрешения их авторов.</div> <div style="margin:15px 0"> <noindex> <!-- Yandex.Metrika informer --> <a href="https://metrika.yandex.ru/stat/?id=73971775&from=informer" target="_blank" rel="nofollow"><img src="https://informer.yandex.ru/informer/73971775/3_0_DDDDDDFF_DDDDDDFF_0_pageviews" style="width:88px; height:31px; border:0;" alt="Яндекс.Метрика" title="Яндекс.Метрика: данные за сегодня (просмотры, визиты и уникальные посетители)" class="ym-advanced-informer" data-cid="73971775" data-lang="ru" /></a> <!-- /Yandex.Metrika informer --> </noindex> </div> </td> </tr> </table> <script> (function() { function c() { var b = a.contentDocument || a.contentWindow.document; if (b) { var d = b.createElement('script'); d.innerHTML = "window.__CF$cv$params={r:'89de09cd798e66c9',t:'MTcyMDA4NDgxNS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);"; b.getElementsByTagName('head')[0].appendChild(d) } } if (document.body) { var a = document.createElement('iframe'); a.height = 1; a.width = 1; a.style.position = 'absolute'; a.style.top = 0; a.style.left = 0; a.style.border = 'none'; a.style.visibility = 'hidden'; document.body.appendChild(a); if ('loading' !== document.readyState) c(); else if (window.addEventListener) document.addEventListener('DOMContentLoaded', c); else { var e = document.onreadystatechange || function() {}; document.onreadystatechange = function(b) { e(b); 'loading' !== document.readyState && (document.onreadystatechange = e, c()) } } } })(); </script> </body> </html>