2024-07-05 09:49:49 +03:00
< ? php
use App\Services\ { DB , Auth , Date , Json };
2024-07-05 11:13:28 +03:00
use App\Models\ { User , Vote };
2024-07-05 09:49:49 +03:00
2024-07-05 11:13:28 +03:00
$id = explode ( '/' , $_SERVER [ 'REQUEST_URI' ])[ 2 ];
$photo = new \App\Models\Photo ( $id );
2024-07-05 09:49:49 +03:00
$photouser = new \App\Models\User ( $photo -> i ( 'user_id' ));
?>
2024-07-04 12:36:23 +03:00
<! DOCTYPE html >
< html lang = " ru " >
< head >
2024-07-05 09:49:49 +03:00
< ? php include ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/views/components/LoadHead.php' ); ?>
2024-07-04 12:36:23 +03:00
</ head >
< body >
< div id = " backgr " ></ div >
< table class = " tmain " >
2024-07-05 09:49:49 +03:00
< ? php include ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/views/components/Navbar.php' ); ?>
2024-07-04 12:36:23 +03:00
< 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 >
2024-07-05 09:49:49 +03:00
2024-07-04 12:36:23 +03:00
< div id = " photobar " >
< div id = " prev " title = " Переход по профилю Т С " >< span >& lt ; </ span ></ div >
< div id = " next " title = " Переход по профилю Т С " >< span >& gt ; </ span ></ div >
< div style = " display:inline-block " >
< div id = " underphoto_frame " >
< div id = " ph_frame " >
2024-07-05 09:49:49 +03:00
< img id = " ph " src = " <?= $photo->i ('photourl') ?> " alt = " " title = " Фотография " >
2024-07-04 12:36:23 +03:00
</ 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 >
2024-07-05 09:49:49 +03:00
< td class = " nw " valign = " top " align = " right " >< b >< ? = $photo -> i ( 'place' ) ?> </b></td>
2024-07-04 12:36:23 +03:00
< td class = " nw " align = " left " valign = " top " ></ td >
</ tr >
2024-07-05 09:49:49 +03:00
2024-07-04 12:36:23 +03:00
</ table >
</ div >
</ div >
2024-07-05 09:49:49 +03:00
< div >
< div style = " padding-top:8px " >< ? = $photo -> content ( 'comment' ) ?> </div>
2024-07-04 12:36:23 +03:00
</ div >< br >
2024-07-05 09:49:49 +03:00
< div > Прислал < a href = " /author/<?= $photo->i ('user_id') ?>/ " >< ? = $photouser -> i ( 'username' ) ?> </a> Дата: <b><?= Date::zmdate($photo->i('posted_at')) ?></b></div>
2024-07-04 12:36:23 +03:00
< 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 " >
2024-07-05 11:13:28 +03:00
< div class = " rtext " > Рейтинг : < b id = " rating " >< ? = Vote :: count ( $id ) ?> </b></div>
2024-07-04 12:36:23 +03:00
< div class = " star " pid = " 1361063 " ></ div >
2024-07-05 11:13:28 +03:00
< div class = " vote " pid = " <?= $id ?> " >
< a href = " # " vote = " 1 " class = " vote_btn " >< span > Интересная фотография !</ span ></ a >< a href = " # " vote = " 0 " class = " vote_btn " >< span > Мне не & nbsp ; нравится </ span ></ a >
</ div >
2024-07-04 12:36:23 +03:00
< div id = " votes " class = " votes " >
< table class = " vblock pro " >
2024-07-05 11:13:28 +03:00
< ? 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 > ' ;
}
?>
2024-07-04 12:36:23 +03:00
</ 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 " >
2024-07-05 09:49:49 +03:00
< div class = " p0 " id = " pp-item-exif " >
< h4 class = " pp-item-header " > Параметры съёмки </ h4 >
2024-07-04 12:36:23 +03:00
< div class = " pp-item-body " >
2024-07-05 09:49:49 +03:00
< 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 );
}
2024-07-05 11:13:28 +03:00
2024-07-05 09:49:49 +03:00
echo '
< tr class = " s11 h21 " >
< td class = " ds nw " width = " 30% " > ' . htmlspecialchars($key) . ' :</ td >
< td class = " ds " > ' . htmlspecialchars($value) . ' </ td >
</ tr > ' ;
2024-07-05 11:13:28 +03:00
}
2024-07-05 09:49:49 +03:00
?>
2024-07-04 12:36:23 +03:00
</ table >
</ div >
</ div >
2024-07-05 09:49:49 +03:00
< div class = " p0 " id = " pp-item-comments " >
< h4 class = " pp-item-header " > Комментарии < span style = " font-weight:normal " > < span style = " color:#aaa " >& middot ; </ 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 > & middot ; < 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 >
2024-07-04 12:36:23 +03:00
</ div >
</ div >
</ div >
2024-07-05 09:49:49 +03:00
< 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 >
2024-07-04 12:36:23 +03:00
</ 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 > & nbsp ; & nbsp ; < a href = " https://forum.transphoto.org " > Форум </ a > & nbsp ; & nbsp ; < a href = " /rules/ " > Правила </ a > & nbsp ; & nbsp ; < 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 " >& copy ; Администрация ТрансФото и авторы материалов , 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 >