Add some pages

This commit is contained in:
themohooks 2024-07-04 12:36:23 +03:00
parent 9aaa8d3cb3
commit 9a8bc356d2
14 changed files with 5284 additions and 4 deletions

1
.gitignore vendored
View file

@ -3,4 +3,5 @@
.osp
.git
.github
/ngallery.yaml
ngallery.yaml

View file

@ -0,0 +1,18 @@
<?php
namespace App\Controllers;
use \App\Services\{Router, Auth, DB, Json};
use \App\Controllers\ExceptionRegister;
use \App\Core\Page;
class LoginController
{
public static function i()
{
Page::set('Login');
}
}

View file

@ -0,0 +1,18 @@
<?php
namespace App\Controllers;
use \App\Services\{Router, Auth, DB, Json};
use \App\Controllers\ExceptionRegister;
use \App\Core\Page;
class PhotoController
{
public static function i()
{
Page::set('Photo');
}
}

View file

@ -12,6 +12,7 @@ class Routes
public static function init()
{
Router::get('/', 'MainController@i');
Router::get('/photo/$id', 'PhotoController@i');
@ -19,7 +20,7 @@ class Routes
if (Auth::userid() > 0) {
} else {
Router::redirect('/login?return='.$_SERVER['HTTP_REFERER']);
//Router::redirect('/login?return='.$_SERVER['HTTP_REFERER']);
}
}
}

40
static/css/desktop.css Normal file
View file

@ -0,0 +1,40 @@
.mm-bar, .mm-bar > ul, .mm-bar li, .mm-item, #title-small { display:flex; align-items:center; box-sizing:border-box; height:30px; flex-wrap:nowrap; }
.mm-bar, .mm-bar ul { background:linear-gradient(rgba(0,0,0,0.2),rgba(0,0,0,0.2)) var(--theme-bg-color); }
.mm-bar ul { list-style-type:none; padding:0; margin:0; }
ul.mm { margin:0 8px; width:100%; }
.mm li { position:relative; transition:background-color 0.2s linear; }
.mm li:hover, .mm li:hover { background-color:var(--theme-bg-hover-color); }
.mm-item, a.mm-item:visited, a.mm-item:hover, a.mm-item:visited:hover { padding:0 12px; white-space:nowrap; background-color:transparent; color:var(--theme-fg-color); font-family:var(--narrow-font); font-size:17px; flex-grow:1; }
.mm-item .notify-count { margin-right:-5px; }
.mm-item[href="#"] { cursor:default; }
.mm ul { display:none; position:absolute; z-index:2001; left:0; top:30px; }
.mm-level-2 div { position:relative; width:0; height:30px; top:-1px; }
.mm-level-2 div::before { content:''; display:block; position:relative; left:-16px; top:11px; width:9px; height:9px; background:url('/img/arrow.png') no-repeat; transform:rotate(-90deg); }
.mm-level-2 div > ul { left:0; top:0; }
.mm li:hover > div > ul { display:block; }
.mm ul li { height:31px; border-top:solid 1px var(--theme-bg-color); }
.mm-icon + .mm-label, .mm-label + .mm-right-icon { margin-left: 9px; }
.mm-icon + .mm-right-icon { margin-left: 11px; }
.mm-notify { margin-left: 7px; }
.mm-pad-right { margin-left: auto; }
.mm-lang > div > ul, .mm-pad-right > div > ul { right: 0; left: auto; }
.mm-lang > .mm-item > .mm-label { display: none; }
.mm-pad-right ul .mm-item { padding:0 17px 0 12px !important; }
/*.mm-lang .mm-item { justify-content:flex-end; padding:0 12px 0 17px !important; }
.mm-lang .mm-item[href="#"] { padding:0 12px 0 10px !important; }*/
.mm-lang .arrow { width:9px; height:9px; transition:transform .1s ease-out; }
.mm-lang:hover .arrow { transform:rotate(-180deg); }
.tools { position:absolute; box-sizing:border-box; height:52px; top:31px; right:1px; padding:0; }
.tools a { display:inline-block; border-left:solid 1px var(--theme-bg-color); box-sizing:border-box; height:52px; padding:14px 11px 0; }
@media screen and (max-width: 1200px) {
li.mm-wide { position: static; }
.mm-wide > .mm-item > .mm-label { display: none; }
.mm-wide > div > ul { right: 8px; left: auto; }
}

File diff suppressed because one or more lines are too long

136
static/css/photo.css Normal file
View file

@ -0,0 +1,136 @@
#photobar { margin:0 -20px; position:relative; background-color:#333; }
#underphoto_frame { display:inline-block; }
#ph { max-width:100%; 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; }
.underphoto { color:#fff; padding:4px 0 6px; border-top:solid 1px #777; position:relative; z-index:1; font-size:15px; }
a.underphoto, a.underphoto:visited { display:block; font-size:15px; padding:3px 0 7px; color:#fff; background-color:#777; }
a.underphoto:hover { background-color:#888; }
#reasons { display:none; margin-top:7px; font-weight:normal; font-size:11px; }
#prev, #next { opacity:0; cursor:pointer; position:absolute; top:0; bottom:0; width:66px; padding-top:7px; color:rgba(150,150,150,0.5); background-color:transparent; transition:all 0.2s ease; font-family:PT Sans Narrow; font-size:50px; }
#photobar:hover #prev, #photobar:hover #next { opacity:1; }
#prev:hover, #next:hover, #next.hover { color:#fff; background-color:rgba(80,80,80,0.7); }
#prev { left:0; }
#next { right:0; }
#prev span, #next span { display:inline-block; transform:scaleX(0.8); }
#photobar:hover #prev, #photobar:hover #next { display:block; opacity:1; }
.main { padding-bottom:0; }
#pmain { padding:10px 10px 15px; background-color:#fff; text-align:center; }
#pmain.hidden, .footer.hidden { background:url('/img/stripes_g.png') #caa; }
.pwrite { word-spacing:-1px; margin:0 auto; }
#showmap { font-size:11px; margin-bottom:5px; }
#map { display:none; }
#map_canvas { width:900px; height:300px; border:solid 1px #bbb; margin:0 auto; }
#pfm_frame { position:absolute; left:0; padding-top:10px; width:100%; display:none; z-index:15; }
#pfm { background:#eee; padding:10px; border:solid 1px #ccc; text-align:center; }
#photobar { box-shadow:0 1px 2px rgba(0, 0, 0, 0.4); -moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.4); -webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.4); }
/* Переопределение стилей */
.p20, .p20a, .p0, .s1 { background-color:#eee; }
.s11 { background-color:#e2e2e2 !important; }
.s2 { background-color:#b0dfb0 !important; }
#adframe { background-color:#fff; padding-bottom:15px; }
.footer { background-color:#eaeaea; }
.tool-block { display:block; margin-bottom:5px; padding:2px; }
.tool-link { display:block; padding:5px 0; }
.loader { visibility:hidden; width:13px; height:13px; }
.rtext { display:inline-block; padding:0 5px; position:relative; top:2px; }
.star { display:inline-block; width:16px; height:16px; vertical-align:middle; }
.votes { margin-top:12px; }
.vblock { width:100%; }
.vblock td { font-size:11px; line-height:13px; font-weight:bold; white-space:nowrap; text-align:left; }
.vblock td a { font-weight:normal; }
.vv { width:15px; }
.vote {
margin:10px -3px 0;
display:grid;
grid-auto-columns:1fr;
}
.vote a, .vote a:visited, .vote a.voted:hover {
display:flex;
justify-content:center;
align-items:center;
box-sizing:border-box;
height:28px;
font-size:11px;
line-height:11px;
text-decoration:none;
cursor:pointer;
user-select:none;
margin:1px 3px 0;
outline:none;
border:solid 2px;
color:#777;
}
.vote a:hover, .vote a.voted, .vote a.voted:hover, .vote a.voted:visited { color:#fff; }
.vote a.locked, .vote a.locked:visited { color:grey; background-color:#ccc; cursor:default; }
.vote a > span { display:block; text-align:center; margin-bottom:1px; }
.vote_btn[vote="1"] { grid-row-start:1; border-color:#8ecd87 !important; } .vote_btn[vote="1"]:hover { background-color:#8ecd87; } .vote_btn[vote="1"].voted, .vote_btn[vote="1"].voted:hover { border-color:#00aa00 !important; background-color:#00aa00; }
.vote_btn[vote="0"] { grid-row-start:2; border-color:#e9a19e !important; } .vote_btn[vote="0"]:hover { background-color:#e9a19e; } .vote_btn[vote="0"].voted, .vote_btn[vote="0"].voted:hover { border-color:#dd0000 !important; background-color:#dd0000; }
.konk_btn[vote="1"] { grid-row-start:1; border-color:#e7cd6e !important; } .konk_btn[vote="1"]:hover { background-color:#e7cd6e; } .konk_btn[vote="1"].voted, .konk_btn[vote="1"].voted:hover { border-color:#edad23 !important; background-color:#edad23; }
.konk_btn[vote="0"] { grid-row-start:2; border-color:#a0bcdf !important; } .konk_btn[vote="0"]:hover { background-color:#a0bcdf; } .konk_btn[vote="0"].voted, .konk_btn[vote="0"].voted:hover { border-color:#0077ee !important; background-color:#0077ee; }
.ds { padding-left:11px; }
.linetable td { border-top:solid 1px #f7f7f7; }
.state { display:inline-block; padding:1px 4px; margin-top:1px; }
#pp-items { margin:20px auto 0; }
#pp-left-col { vertical-align:top; min-width:250px; width:250px; padding-right:20px; }
#pp-main-col { vertical-align:top; min-width:622px; width:622px; }
#pp-main-col, #pp-item-vdata, #pp-item-exif, #pp-item-comments { text-align:left; }
#pp-left-col > div, #pp-main-col > div, #pp-item-vdata > div { margin-bottom:17px; }
#pp-left-col > div:last-child, #pp-main-col > div:last-child, #pp-item-vdata > div:last-child { margin-bottom:0; }
/* .pp-item-header in comments.css */
.pp-item-body > table { width:100%; }
.vdata-edit { font-family:var(--narrow-font); float:right; font-size:17px; margin:5px 11px 2px; }
.pp-link { text-align:center; font-weight:normal; margin-bottom:7px; width:100%; font-size:11px; }
#hd_gr { display:none; }
#grid { position:absolute; width:100%; height:100%; left:0; top:0; display:none; z-index:0; }
#grid table { width:100%; height:100%; border-collapse:collapse; border:solid 1px transparent; }
#grid td { border:dotted 1px #ddd; }
#grid td.bc { border-right:solid 1px #fff; }
.mapcontrol { background-color:#fff; margin:5px; border:solid 1px #aaa; padding:1px 5px; font-family:Arial,sans-serif; font-size:12px; cursor:pointer; box-shadow:1px 1px 3px 0 #888; }
.mapcontrol:hover { background-color:#eee; }
.multimark { position:absolute; font-size:17px; width:50px; margin-left:-25px; margin-top:-12px; font-weight:bold; color:#fff; }
.disclaimer { margin-top:15px; padding:10px; display:inline-block; border:solid 1px #ccc; max-width:870px; background-color:#ffc; }
.top-disclaimer { background-color: #777; color: #eee; margin: 0 -20px; display: flex; align-items: stretch; justify-content: space-between; padding-bottom: 1px; }
.top-disclaimer-icon { padding: 10px 12px 8px 15px; font-size: 30px; display: flex; align-items: center; }
.top-disclaimer-text { padding: 7px 0 8px; }
.top-disclaimer-text p { margin: 0; font-size: 13px; }
.top-disclaimer-text p:first-child { margin-bottom: 6px; }
.top-disclaimer-close { padding: 15px 20px; display: flex; align-items: center; }
.top-disclaimer-close.hidden { visibility: hidden; }
.repair-wrapper { margin-top: 20px; }
.repair-block { display: inline-flex; gap: 5px; align-items: center; }

781
static/css/style.css Normal file
View file

@ -0,0 +1,781 @@
:root {
--theme-fg-color: #fff;
--theme-body-color: #ddd;
--theme-main-color: #eaeaea;
--theme-text-color: #000;
--theme-form-color: #fff;
--default-font: Verdana,Tahoma,Arial,Helvetica,sans-serif;
--narrow-font: PT Sans Narrow,Arial Narrow,Arial,Helvetica,sans-serif;
--type0-color: #3b7dc1;
--type1-color: #ae0000;
--type2-color: #2843a9;
--type3-color: #3f6793;
--type4-color: #7f4b98;
--type5-color: #1f8a2e;
--type6-color: #c97224;
--type7-color: #cd9b08;
}
body { color:var(--theme-text-color); background-color:var(--theme-body-color); position:relative; }
body, td, th, p, li, img, form { padding:0; margin:0; }
body, td, p, li, input, select, optgroup, option, button, #reasons {
font-family:var(--default-font);
font-size:13px;
}
h1, h2, h3, h4, th, .th, .n, .g, .yellow_stripes, .narrow, .tools, .underphoto {
font-family:var(--narrow-font);
}
p, h1, h2, h3 { margin:13px 0; }
h1 { font-size:36px; font-weight:normal; margin:11px 0; }
h2 { font-size:28px; font-weight:normal; }
h3 { font-size:22px; font-weight:normal; }
h4 { font-size:20px; font-weight:bold; margin:0 0 10px; color:#333; }
h4:last-child { margin:0; }
ul.straight { margin:0; padding:0; list-style:none; }
ul.straight > li { position:relative; padding-left:14px; }
ul.straight > li:before { position:absolute; left:0; content:'•'; }
img { border:0; vertical-align:middle; }
#title {
display:flex;
align-items:center;
box-sizing:border-box;
height:54px;
white-space:nowrap;
background-color:var(--theme-bg-color);
color:var(--theme-fg-color);
transition:background-color 0.2s linear;
padding-left:20px;
font-family:var(--narrow-font);
font-size:35px;
}
#title img { width:54px; height:47px; margin:0 12px 0 -7px; }
#title span { margin-bottom:5px; }
#title-small:hover, a#title:hover { background-color:var(--theme-bg-hover-color); }
#title-small { height:30px; font-family:var(--narrow-font); font-size:17px; transition:background-color 0.2s linear; padding:0 15px 0 7px; }
#title-small img { width:21px; height:17px; margin-right:7px; }
.tmain { width:100%; overflow-x:hidden; position:relative; }
.main { padding:0 20px 15px; background-color:var(--theme-main-color); }
#adframe { padding:0 20px 15px; width:100%; box-sizing:border-box; text-align:center; background-color:var(--theme-main-color); }
.footer { padding:15px 20px 20px; text-align:center; line-height:20px; color:#444; }
.footer a, .footer a:visited { color:#444; }
.footer a:hover, .footer a:visited:hover { color:#444; text-decoration:underline; background:none; }
.sitecopy { margin-top:25px; font-size:11px; line-height:15px; }
.ps, #title-small, th, .th {
background-color:var(--theme-bg-color);
color:var(--theme-fg-color);
}
a, a[href="#"]:visited, a.no-read:visited {
text-decoration:none;
color:var(--theme-link-color);
transition:background-color 0.2s linear;
}
a:visited {
color:var(--theme-link-visited-color);
}
a:hover {
background-color:var(--theme-link-hover-bg-color);
}
a.und {
border-bottom:solid 1px var(--theme-link-underline-color);
}
a.und:visited {
border-bottom:solid 1px var(--theme-link-underline-visited-color);
}
.num {
font-size: 21px;
font-family: var(--narrow-font);
white-space: nowrap;
}
.num.pcnt {
font-weight: bold;
}
a.route:not(:hover) {
color: var(--theme-text-color);
}
#title a, #title a:visited, #title a:hover, #title-small:visited, #title-small:hover {
color:var(--theme-fg-color);
}
th a:hover, th a:visited:hover, .th a:hover, .th a:visited:hover {
margin-left:-4px; margin-right:-4px; padding-left:4px; padding-right:4px; background-color:rgba(255,255,255,.3);
}
li.ui-menu-item a:hover, li.ui-menu-item a:visited:hover {
background-color:transparent;
}
#idx-main { margin-top:12px; }
#idx-column-left { vertical-align:top; }
#idx-column-center { vertical-align:top; padding:0 20px; width:100%; }
#idx-column-menu { vertical-align:top; min-width:300px; }
.idx-donate { display:inline-block; background-color:#db7746; text-align:right; margin-right:-20px; padding:0 4px 0 0; text-shadow: 1px 1px 1px rgba(0,0,0,.3); }
.idx-donate > a { display:inline-block; padding:2px 24px 3px 19px; margin:0 -4px; font-size:18px; color:#fff; font-family:var(--narrow-font); }
.ix-photos { background-color:#999; display:flex; gap:1px; margin-bottom:15px; }
.ix-photos > a { flex-grow:1; flex-basis:150px; }
.ix-photos-oneline { flex-wrap:nowrap; min-height:100px; }
.ix-photos-multiline { flex-wrap:wrap; min-height:300px; }
@keyframes prw-zoom {
0% { z-index:1000; box-shadow:1px 1px 3px rgba(0,0,0,.5); }
100% { z-index:1000; box-shadow:1px 1px 3px rgba(0,0,0,.5); transform:scale(1.5); }
}
.prw-grid-item { height:100px; flex-basis:150px; flex-grow:1; position:relative; }
.prw-grid-item:hover { animation:prw-zoom ease .5s forwards; }
.prw-grid-item:hover a { z-index:1001; }
.prw-grid-item:hover .prw-wrapper { display:block; }
.prw-wrapper { padding:105px 0 7px; position:absolute; top:0; left:0; right:0; background-color:#fafafa; font-size:9px; text-align:center; display:none; z-index:999; box-shadow:1px 1px 3px rgba(0,0,0,.5); }
.prw-wrapper div { font-size:7px; font-weight:bold; margin-top:2px; }
.prw-animate { display:inline-block; position:relative; width:100%; height:100px; background-position:center; background-size:cover; box-shadow:0 0 15px rgba(0,0,0,.5) inset; }
#morerand { float:right; position:relative; top:14px; }
.loader-button { background:url('/img/loader_gr.gif') center no-repeat #bbb !important; }
#loadmore { width:200px; height:35px; }
.pop-prw:before {
position:absolute;
content:'';
display:block;
top:0;
left:0;
height:100%;
width:100%;
z-index:1;
box-shadow:0 0 15px rgba(0,0,0,.5) inset;
}
.notify-count, .grey-notify-count, .light-notify-count { display:inline-flex; justify-content:center; align-items:center; box-sizing:border-box; height:17px; min-width:17px; padding:2px 6px 2px 5px; letter-spacing:-1px; background-color:#e05; color:#fff; border-radius:20px; font-family:var(--default-font); font-size:10px; line-height:10px; font-weight:normal; vertical-align:middle; position:relative; }
.grey-notify-count { background-color:rgba(200,200,200,0.4); color:#eee; }
a.light-notify-count { background-color:#eee; color:#0a0; }
a.light-notify-count:hover { background-color:#cdf; }
.ix-region { display:inline-block; min-width:300px; }
.ix-citylist { line-height:17px; padding:3px 5px 20px 27px; }
.ix-hideable-citylist, .ix-hideable-cname { display:none; }
.ix-plus, .ix-minus { display:inline-block; width:16px; height:16px; position:relative; top:1px; filter:opacity(0.5); }
.ix-plus { background:url('/img/plus-square.svg') no-repeat; }
.ix-minus { background:url('/img/minus-square.svg') no-repeat; }
table { border-width:0; border-collapse:collapse; }
.h21 { height:21px; }
.h21 td { vertical-align:top; }
.h21 td.d, .h21 td.c, .h21 td.r { padding-top:2px; }
.h21 td.ds, .h21 td.cs, .h21 td.rs { padding-top:4px; }
.h25 { height:25px; }
.h25 td { padding-bottom:3px; }
.pb { margin:20px 0; padding:5px 0; background-color:#fff; }
.pb_photo { text-align:center; padding:10px; width:250px; }
.pb_descr { text-align:left; width:100%; padding-left:10px; }
.pb-pre, .pc-pre { width:33px; text-align:center; padding:0 15px; font-size:11px; }
.pc-pre { padding-right:9px; align-self:center; }
.p20, .p20a, .p20p, .p20i, .p20w, .p20k, .p0, .pg, .std-form { background-color:#fff; padding:12px 20px 17px; border:solid 1px #ddd; }
.p20a { text-align:center; padding:3px 5px 8px; }
.p20p { padding:5px; margin-bottom:-1px; }
.p20i, .p20w { display:inline-block; }
.p20w, .p0 { padding:0; }
.p20k { padding-top:15px; }
.p5g { padding:5px 7px; background-color:#eee; }
.x { padding:2px 10px 2px 2px; text-align:left; }
.xf { display:inline-block; width:254px; padding:4px; text-align:center; }
.f { width:250px; vertical-align:middle; box-shadow:1px 1px 3px rgba(0,0,0,.3); -moz-box-shadow:1px 1px 3px rgba(0,0,0,.3); -webkit-box-shadow:1px 1px 3px rgba(0,0,0,.3); }
a:hover .f, a:visited:hover .f { box-shadow:1px 1px 3px var(--theme-preview-hover-bg-color); -moz-box-shadow:1px 1px 3px var(--theme-preview-hover-bg-color); -webkit-box-shadow:1px 1px 3px var(--theme-preview-hover-bg-color); }
a.prw { display:inline-block; position:relative; }
.fv3 { width:250px; margin-bottom:8px; }
.fv2 { width:240px; position:relative; z-index:10; left: 8px; top: 8px; background-color:#999; }
.fv1 { width:240px; position:relative; z-index:11; left:-4px; top:-4px; background-color:#ccc; }
.fv { width:240px; position:relative; z-index:12; left:-4px; top:-4px; display:inline-block; }
.fv > .f { width:240px; }
.lost-frame { margin:-5px; padding:5px; width:250px; min-height:150px; }
.sec-overlay { position:absolute; left:0; right:0; top:0; bottom:0; z-index:1; background:url('/img/stripes_w.png'); }
.con-overlay { position:absolute; left:0; right:0; top:0; bottom:0; z-index:1; background:url('/img/questions_bg.png'); }
.com-icon { background:url('/img/comment.svg') no-repeat; display:inline-block; padding-left:18px; }
.eye-icon { background:url('/img/eye.svg') no-repeat; display:inline-block; padding-left:20px; margin-left:10px; }
.hpshade, .hdshade { position:absolute; z-index:2; bottom:0; text-align:right; box-sizing:border-box; margin:-22px auto 0; width:250px; height:22px; padding:4px 5px 0 0; color:#fff; background:linear-gradient(to top,rgba(0,0,0,.5),transparent); }
.vpshade { position:relative; z-index:2; display:inline-block; vertical-align:middle; height:120px; width:15px; margin-right:-15px; background:linear-gradient(to right,rgba(0,0,0,.3),transparent); }
.hdshade { width:100%; }
.vsshade-left, .vsshade-right { position:absolute; z-index:3; display:inline-block; vertical-align:middle; height:120px; width:15px; }
.vsshade-left { left:0; background:radial-gradient(ellipse at left, rgba(0,0,0,.3) 0%, rgba(0,0,0,0) 75%) 100% center; }
.vsshade-right { right:0; background:radial-gradient(ellipse at right, rgba(0,0,0,.3) 0%, rgba(0,0,0,0) 75%) 100% center; }
.arr-left, .arr-right { position:absolute; z-index:4; box-sizing:border-box; width:22px; height:120px; background:url('/img/arrows.png') left no-repeat; opacity:0.5; transition:opacity 0.2s linear; cursor:pointer; }
.arr-left { left:2px; }
.arr-right { right:2px; background-position:right; }
.arr-left:hover, .arr-right:hover { opacity:1; }
.horlines { border:solid 1px #ddd; background-color:#fff; }
.horlines td { border-bottom:solid 1px #ddd; }
.startdate { background-color:#fff; padding:0 5px; margin-left:3px; display:inline-block; position:relative; bottom:-10px; white-space:nowrap; }
table.wlist { border:solid 1px #d7d7d7; }
table.wlist td { border-top:solid 1px #d7d7d7; }
.sec { color:#0006; }
.sm, .new, .nt, .nb, .stat, .hpshade, .hdshade { font-size:11px; line-height:13px; }
.pages { margin-bottom:17px; }
.pg, .ps { font-weight:bold; padding:5px; display:inline-block; min-width:15px; text-align:center; margin-right:-1px; }
span.pg { color:#c4c4c4; }
.stat { float:right; text-align:right; margin:-3px 0 15px; }
.new { font-weight:bold; color:#f00; }
.sticky { position:sticky; position:-webkit-sticky; top:0; z-index:20; }
tfoot.sticky { top:auto; bottom:0; z-index:20; }
th, .th { font-size:17px; font-weight:normal; text-shadow:1px 1px 1px rgba(0,0,0,.3); }
.n, .g { font-size:16px; font-weight:bold; white-space:nowrap; text-shadow:1px 1px 1px rgba(255,255,255,.3); }
.nf {
font-weight:normal;
letter-spacing:1px;
word-spacing:-1px;
}
.g {
padding:2px 13px 2px 7px;
text-align:center;
}
th, .th, .n, .d, .ds {
padding:2px 11px 2px 7px;
text-align:left;
}
.r, .rs, .rm {
padding:2px 11px 2px 7px;
text-align:right;
}
.c, .cs {
padding:2px 9px;
text-align:center;
}
.ds, .rs, .cs {
font-size:11px;
line-height:13px;
}
.rm { font-family:monospace; }
.s0, .s1, .s10 { background-color:#fff; } .s11 { background-color:#f7f7f7 !important; }
.s2 { background-color:#b0dfb0 !important; } .s12 { background-color:#a0d6a0 !important; }
.s3 { background-color:#f0e68c !important; } .s13 { background-color:#e5d866 !important; }
.s4 { background-color:#bbbbbb !important; } .s14 { background-color:#aaaaaa !important; }
.s5 { background-color:#ffaaaa !important; } .s15 { background-color:#fc9595 !important; }
.s6 { background-color:#d7ac7d !important; } .s16 { background-color:#c6955f !important; }
.s7 { background-color:#8bd3ed !important; } .s17 { background-color:#62c7ed !important; }
.s8 { background-color:#94a9e3 !important; } .s18 { background-color:#7d97df !important; }
.s9 { background-color:#d8bfd8 !important; } .s19 { background-color:#c8a2c8 !important; }
.s21 { background-color:#84b7ff !important; } .s31 { background-color:#84a8ff !important; }
.hl { background-color:#e2e2e2; }
.tools, .yellow_stripes, .gs { background-image:url('/img/stripes_g.png'); }
.tools, .yellow_stripes { background-color:#f0e68c; font-size:17px; padding:3px 10px; }
form td { padding:2px; }
.lcol { white-space:nowrap; padding:4px 6px; text-align:right; vertical-align:top; }
table.nospaces > tbody > tr > td { padding:0 2px; }
table.nospaces > tbody > tr > td.lcol { padding:2px 6px 0; }
.nospaces input[type="text"], .nospaces input[type="number"], .nospaces select, .nospaces input[type="button"] { height:22px; }
.nospaces input[type="text"], .nospaces input[type="number"], .nospaces select, .nospaces input[type="button"], .nospaces textarea { margin:-1px -1px 0 0; }
.std-form { padding:0 10px 10px; }
.std-label { padding:10px 0 2px; }
.std-submit { padding-left:50px !important; padding-right:50px !important; margin-top:10px !important; font-weight:bold !important; }
.std-main-field { font-family:var(--narrow-font); font-size:20px; font-weight:bold !important; width:100%; }
.flag-left { padding-left:26px !important; }
.input-flag { margin:-2px -26px 0 5px; position:relative; z-index:11; }
.contestBtn { display:block; cursor:pointer; width:56px; height:28px; margin:10px; background:url('/img/vote_contest.gif') no-repeat; opacity:0.7; }
.contestBtn:hover { opacity:1; }
.contestBtn.voted { opacity:1; background:url('/img/vote_contest_pressed.gif') no-repeat; }
.contestBtn.loading { opacity:1; background:url('/img/vote_contest_loading.gif') no-repeat; }
.died { border:solid 1px black; padding:0 2px; }
.temp, .konk { position:relative; height:21px; margin:-21px auto 0; background-repeat:no-repeat; z-index:7; }
.konk { left:3px; }
.shadow { box-shadow: 1px 1px 10px 3px #aaa; -moz-box-shadow: 1px 1px 10px 3px #aaa; -webkit-box-shadow: 1px 1px 10px 3px #aaa; }
#notify {
z-index:2002;
display:none;
position:absolute;
background-color:#fff;
width:500px;
text-align:center;
padding:15px;
border:solid 1px #777;
box-shadow: 1px 1px 7px 3px #333;
-moz-box-shadow: 1px 1px 7px 3px #333;
-webkit-box-shadow: 1px 1px 7px 3px #333;
}
#backgr {
z-index:2000;
display:none;
position:fixed;
top:0;
left:0;
right:0;
height:100%;
background:rgba(0,0,0,0.7);
}
input, select, textarea, button {
box-sizing:border-box;
vertical-align:middle;
border-radius:0;
}
[type="text"],
[type="password"],
[type="color"],
[type="date"],
[type="datetime"],
[type="datetime-local"],
[type="email"],
[type="number"],
[type="search"],
[type="tel"],
[type="time"],
[type="url"],
[type="month"],
[type="week"],
select,
textarea,
[contenteditable="true"] {
background-color:#fff;
border:solid 1px #bbb;
padding:2px 3px;
margin:0;
font-weight:bold;
box-shadow:0 1px 1px rgba(0,0,0,.1) inset; -moz-box-shadow:0 1px 1px rgba(0,0,0,.1) inset; -webkit-box-shadow:0 1px 1px rgba(0,0,0,.1) inset;
position:relative;
}
[type="text"]:focus,
[type="password"]:focus,
[type="color"]:focus,
[type="date"]:focus,
[type="datetime"]:focus,
[type="datetime-local"]:focus,
[type="email"]:focus,
[type="number"]:focus,
[type="search"]:focus,
[type="tel"]:focus,
[type="time"]:focus,
[type="url"]:focus,
[type="month"]:focus,
[type="week"]:focus,
select:focus,
textarea:focus,
[contenteditable="true"]:focus {
border-color:var(--theme-bg-color);
z-index:10;
outline:none;
}
:-ms-input-placeholder { font-weight:normal; opacity:1; color:#aaa; }
::-ms-input-placeholder { font-weight:normal; opacity:1; color:#aaa; }
::-webkit-input-placeholder { font-weight:normal; opacity:1; color:#aaa; }
::-moz-placeholder { font-weight:normal; opacity:1; color:#aaa; }
:-moz-placeholder { font-weight:normal; opacity:1; color:#aaa; }
[type="checkbox"],
[type="radio"],
[type="button"],
[type="submit"],
[type="file"],
button,
select,
label {
cursor:pointer;
}
[type="checkbox"],
[type="radio"] {
padding:0;
margin:0 2px 0 0;
position:relative;
top:-1px;
}
option, textarea, [contenteditable="true"] { font-weight:normal; }
textarea, #pm-message[contenteditable="true"] { font-family:Courier New, monospace; font-size:13px; }
b[contenteditable="true"] { display:inline-block; width:calc(100% - 10px); font-weight:bold; }
.nw { white-space:nowrap; }
.dot { border-bottom:dotted 1px; }
.break-links a { word-break:break-word; }
.help { cursor:help; }
.flag { position:relative; top:-1px; font-size:10px; }
.flag img { position:relative; top:-1px; cursor:help; }
.flag img, img.flag, #languages img { width:16px; height:10px; }
a.flag img { cursor:pointer; }
#tip { display:none; position:absolute; right:10px; top:0; background-color:#fff; padding:2px; z-index:21; box-shadow: 1px 1px 10px 3px #888; -moz-box-shadow: 1px 1px 10px 3px #888; -webkit-box-shadow: 1px 1px 10px 3px #888; max-width:calc(100% - 20px); }
#tip img { vertical-align:middle; width:100%; }
label { user-select:none; -moz-user-select:none; -webkit-user-select:none; -ms-user-select:none; }
label:hover { border-bottom:dotted 1px; }
.leaflet-control label:hover { border-bottom:none; color:#e00; }
.ui-autocomplete { max-height:400px; max-width:700px; overflow-y:auto; overflow-x:hidden; }
.xsign { width:18px; height:18px; background:url('/img/xsign.png') no-repeat; display:inline-block; position:relative; z-index:11; left:-21px; margin-right:-18px; vertical-align:middle; transition:transform .1s ease-out; cursor:pointer; align-self:center; }
.xsign:hover { transform:rotate(90deg); }
.unread { background-color:rgba(128,128,128,0.18); }
.tablesort-active {
cursor:move;
cursor:grab;
cursor:-moz-grab;
cursor:-webkit-grab;
}
.tablesort-dragging,
.tablesort-dragging a,
.tablesort-dragging input,
.tablesort-dragging textarea {
cursor:move;
cursor:grabbing;
cursor:-moz-grabbing;
cursor:-webkit-grabbing;
}
.label-green { color:#fff; background-color:#0a0; }
.label-yellow { color:#fff; background-color:#eb0; }
.label-orange { color:#fff; background-color:#e80; }
.label-red { color:#fff; background-color:#e00; }
.label-purple { color:#fff; background-color:#a0a; }
[type="submit"],
[type="button"],
button,
.button,
a.button:visited,
.mf-button,
a.mf-button:visited,
.mf-button-wide,
a.mf-button-wide:visited,
[type="button"].mf-button,
[type="button"].mf-button-wide {
display:inline-block;
box-sizing:border-box;
vertical-align:middle;
cursor:pointer;
position:relative;
padding:2px 15px 3px;
height:auto;
text-align:center;
font-family:var(--narrow-font);
font-size:17px;
font-weight:bold;
color:var(--theme-fg-color);
background-color:#777; /* for IE */
background-color:var(--theme-bg-color);
transition:none;
border:none;
user-select:none; -moz-user-select:none; -webkit-user-select:none; -ms-user-select:none;
border-radius:0; -webkit-border-radius:0; -webkit-appearance:none; /* for Safari */
}
[type="submit"]:hover,
[type="button"]:hover,
button:hover,
.button:hover,
.mf-button:hover,
.mf-button-wide:hover {
color:var(--theme-fg-color) !important;
background-color:var(--theme-bg-hover-color);
}
[type="submit"]:disabled,
[type="button"]:disabled,
button:disabled,
.button:disabled,
.mf-button:disabled,
.mf-button-wide:disabled {
background-color:#bbb !important;
color:#777 !important;
cursor:default;
}
.mf-center-block,
.mf-center-block-wide,
.mf-center-block-x-wide {
box-sizing:border-box;
width:100%;
min-width:300px;
}
.mf-center-block,
.mf-center-block-wide {
max-width:600px;
}
.mf-label { font-size:20px; }
.mf-sm { font-size:13px; }
.mf-input,
.mf-input-wide,
.mf-button,
.mf-button-wide,
.mf-label-narrow,
[type="button"].mf-button,
[type="button"].mf-button-wide {
font-size:25px;
font-family:var(--narrow-font);
}
.mf-input,
.mf-input-wide {
padding:3px 0;
margin:3px 0;
font-weight:normal;
border-top:none;
border-left:none;
border-right:none;
box-shadow:none;
background-color:transparent;
}
.mf-button,
.mf-button-wide,
[type="button"].mf-button,
[type="button"].mf-button-wide {
font-weight:normal;
padding:7px;
}
.mf-button {
padding:7px 25px;
}
.mf-input-wide,
.mf-button-wide {
width:100%;
text-align:center;
}
.mark-btn { margin:25px 0 15px; }
.mid-btn { margin:15px 0; }
.ix-popular-spacer { height:1px; background-color:#bbb; }
.ix-news-item { padding-bottom:12px; margin-bottom:9px; border-bottom:solid 1px #ddd; }
#idx-regions-list { box-sizing:border-box; width:254px; height:1800px; overflow:scroll; background-color:#f3f3f3; padding:2px 5px; }
.ci-update-item { border-bottom:solid 1px #ddd; padding:5px 0 15px; margin-bottom:10px; }
.show-all-vdata { background-color:#f3f3f3; }
.lk-dir { width:80px; height:80px; background:url('/img/dir.gif'); }
.found_vehicle { cursor:pointer; }
.new_vehicle { display:none; margin:5px; padding:7px; background-color:#f3f3f3; float:left; }
.new_vehicle tbody { border:none !important; }
#vlist { position:absolute; background-color:#fff; font-size:13px; display:none; }
#vlist tbody { border:solid 2px #fff; }
#conn_veh tbody, #conn_gid tbody { border:solid 2px #ddd; }
.wait-loader { width:50px; height:7px; margin:5px 0; background:url('/img/wait.gif') no-repeat; }
.ml-list { position:absolute; z-index:1001; display:none; background-color:#f7f7f7; padding:1px 0; margin-top:1px; }
.ml-list a, .ml-list a:visited { display:block; padding:1px 9px 1px 5px; transition:none; }
.ml-list a, .ml-list a:visited { color:var(--theme-text-color); }
.ml-list a:hover { background-color:var(--theme-bg-color); color:var(--theme-fg-color); }
input.ml-button { height:22px; }
#fav_langs tbody { border: solid 1px #bbb; }
#fav_langs { margin:5px 0; }
#fav_langs .c { padding:3px 3px 3px 8px; font-weight:bold; }
#fav_langs .d { padding:3px 8px; font-weight:bold; }
#fav_langs .r { padding:3px 8px; font-size:17px; }
.fav-item { display:inline-block; background-color:#fff; margin:0 5px 5px 0; }
.fav-item a:first-child { display:inline-block; padding:3px 7px 4px 10px; }
.fav-item a:last-child { display:inline-block; padding:3px 7px 4px; }
.views-image { background: url(/img/rakurs.png?4) no-repeat; min-width: 168px; width: 168px; height: 84px; padding: 0 1px }
[data-twoside="1"] .views-image { background-image: url(/img/rakurs2.png?4); }
[data-twoside="1"] .views-radio-single { visibility: hidden; }
[data-twoside="1"] .twoside-twoside { display: none; }
[data-twoside="0"] .twoside-single { display: none; }
.select2-selection--single { border-radius:0 !important; height:22px !important; font-weight:bold; }
.select2-selection__rendered { color:#000 !important; padding-left:4px !important; line-height:20px !important; }
.select2-selection__arrow { height:22px !important; }
.selector2-helper { position: absolute; background-color: var(--theme-fg-color); padding: 1px; box-shadow: 1px 1px 10px 3px #aaa; -moz-box-shadow: 1px 1px 10px 3px #aaa; -webkit-box-shadow: 1px 1px 10px 3px #aaa; }
.selector2-helper div { padding: 3px 7px; cursor: pointer; }
.selector2-helper div.hov { background-color: var(--theme-bg-color); color: var(--theme-fg-color); }
.form-fieldset {
display: grid;
grid-template-columns: max-content auto;
background-color: var(--theme-form-color);
padding: 2px 2px 10px 2px;
}
.form-label {
grid-column: 1;
font-size: 11px;
padding: 6px 6px 2px 15px;
color: #555;
}
.form-label.active,
.form-field.active {
color: #000;
background: #ddf5dd;
}
.form-field,
.form-submit,
.form-descr {
grid-column: 2;
padding: 2px;
}
.form-descr {
font-size: 11px;
color: #aaa;
}
.form-field input,
.form-field select,
.form-field textarea {
width: 100%;
}
.form-submit {
padding-top: 20px;
}
.form-submit input[type="submit"] {
font-family: var(--narrow-font);
font-size: 17px;
font-weight: bold;
}
@media screen and (min-width: 400px)
{
.form-label {
text-align: right;
padding: 6px 6px 2px 15px;
border-bottom: dotted 1px #555;
}
.form-field {
background-color: #fff;
border-bottom: dotted 1px #555;
}
.form-field input,
.form-field select,
.form-field textarea {
border: none;
}
.form-submit input[type="submit"] {
padding-left: 30px;
padding-right: 30px;
}
}
@media screen and (max-width: 400px)
{
.form-fieldset {
display: flex;
flex-direction: column;
align-items: left;
padding: 5px;
}
.form-label {
text-align: left;
padding: 7px 0 2px;
}
.form-label:first-child {
padding-top: 0;
}
.form-field {
padding: 0;
}
.form-submit {
padding: 20px 0 0;
}
.form-submit input[type="submit"] {
width: 100%;
}
}

11
static/css/trans.css Normal file
View file

@ -0,0 +1,11 @@
:root {
--theme-bg-color: #292929;
--theme-bg-hover-color: #505050;
--theme-link-color: #3b7dc1;
--theme-link-visited-color: #5b7289;
--theme-link-hover-bg-color: rgba(70, 135, 200, .15);
--theme-link-underline-color: rgba(59, 125, 193, .3);
--theme-link-underline-visited-color: rgba(91, 114, 137, .3);
--theme-preview-hover-bg-color: rgba(41, 90, 140, .7);
}

BIN
static/img/logosmall.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View file

@ -0,0 +1,11 @@
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<meta name="viewport" content="width=1000,user-scalable=yes">
<title>NativeGallery</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=PT+Sans+Narrow:wght@400;700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="/static/css/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/static/css/style.css">
<link rel="stylesheet" href="/static/css/desktop.css">
<link rel="stylesheet" href="/static/css/trans.css">
<link rel="stylesheet" href="/static/css/photo.css">

View file

@ -0,0 +1,97 @@
<tr>
<td class="mm-bar">
<ul class="mm mm-level-1">
<li><a href="#" onclick="return false" class="mm-item"><span class="mm-label">База вагонов и ТС</span></a>
<div>
<ul class="mm-level-2">
<li><a href="#" onclick="return false" class="mm-item"><span class="mm-label">Модели</span></a>
<div>
<ul class="mm-level-3">
<li><a href="/models.php?t=1" class="mm-item"><span class="mm-label">Трамвай</span></a></li>
<li><a href="/models.php?t=2" class="mm-item"><span class="mm-label">Троллейбус</span></a></li>
<li><a href="/models.php?t=3" class="mm-item"><span class="mm-label">Метрополитен</span></a></li>
<li><a href="/models.php?t=4" class="mm-item"><span class="mm-label">Монорельс</span></a></li>
<li><a href="/models.php?t=5" class="mm-item"><span class="mm-label">Фуникулёр</span></a></li>
<li><a href="/models.php?t=6" class="mm-item"><span class="mm-label">Транслор</span></a></li>
<li><a href="/models.php?t=7" class="mm-item"><span class="mm-label">Мувер (АТН)</span></a></li>
<li><a href="/models.php?t=8" class="mm-item"><span class="mm-label">Маглев</span></a></li>
<li><a href="/models.php?t=9" class="mm-item"><span class="mm-label">Электробус</span></a></li>
</ul>
</div>
</li>
<li><a href="#" onclick="return false" class="mm-item"><span class="mm-label">Города и системы</span></a>
<div>
<ul class="mm-level-3">
<li><a href="/networks.php?t=1" class="mm-item"><span class="mm-label">Трамвай</span></a></li>
<li><a href="/networks.php?t=2" class="mm-item"><span class="mm-label">Троллейбус</span></a></li>
<li><a href="/networks.php?t=3" class="mm-item"><span class="mm-label">Метрополитен</span></a></li>
<li><a href="/networks.php?t=4" class="mm-item"><span class="mm-label">Монорельс</span></a></li>
<li><a href="/networks.php?t=5" class="mm-item"><span class="mm-label">Фуникулёр</span></a></li>
<li><a href="/networks.php?t=6" class="mm-item"><span class="mm-label">Транслор</span></a></li>
<li><a href="/networks.php?t=7" class="mm-item"><span class="mm-label">Мувер (АТН)</span></a></li>
<li><a href="/networks.php?t=8" class="mm-item"><span class="mm-label">Маглев</span></a></li>
<li><a href="/networks.php?t=9" class="mm-item"><span class="mm-label">Электробус</span></a></li>
</ul>
</div>
</li>
<li><a href="/country/" class="mm-item"><span class="mm-label">Страны и регионы</span></a></li>
<li><a href="/update-v/" class="mm-item"><span class="mm-label">Изменения в базе данных</span></a></li>
</ul>
</div>
</li>
<li><a href="#" onclick="return false" class="mm-item"><span class="mm-label">Дополнительно</span></a>
<div>
<ul class="mm-level-2">
<li><a href="/news.php" class="mm-item"><span class="mm-label">Новости и хронология</span></a></li>
<li><a href="/misc/" class="mm-item"><span class="mm-label">Разные фотогалереи</span></a></li>
<li><a href="/voting.php" class="mm-item"><span class="mm-label">Фотоконкурс</span></a></li>
<li><a href="/maps.php" class="mm-item"><span class="mm-label">Карты и схемы</span></a></li>
<li><a href="/map/" class="mm-item"><span class="mm-label">Карта городов мира</span></a></li>
<li><a href="/articles/4289/" class="mm-item"><span class="mm-label">Неопознанные фотографии</span></a></li>
<li><a href="/news2.php" class="mm-item"><span class="mm-label">Новости сайта</span></a></li>
<li><a href="//sttsclub.ru" class="mm-item"><span class="mm-label">СТТС.Клуб</span></a></li>
<li><a href="/links.php" class="mm-item"><span class="mm-label">Ссылки</span></a></li>
</ul>
</div>
</li>
<li><a href="/video.php" class="mm-item"><span class="mm-label">Видеокаталог</span></a></li>
<li><a href="/comments.php" class="mm-item"><span class="mm-label">Комментарии</span></a></li>
<li><a href="#" onclick="return false" class="mm-item"><span class="mm-label">Обновления</span></a>
<div>
<ul class="mm-level-2">
<li><a href="/update.php?time=24" class="mm-item"><span class="mm-label">Новые фотографии</span></a></li>
<li><a href="/feed.php" class="mm-item"><span class="mm-label">Лента обновлений</span></a></li>
<li><a href="/update.php" class="mm-item"><span class="mm-label">Архив обновлений по датам</span></a></li>
</ul>
</div>
</li>
<li><a href="/help/" class="mm-item"><span class="mm-label">Помощь</span></a>
<div>
<ul class="mm-level-2">
<li><a href="/rules/" class="mm-item"><span class="mm-label">Правила сайта</span></a></li>
<li><a href="/rules/pub/" class="mm-item"><span class="mm-label">Критерии отбора фотографий</span></a></li>
<li><a href="/rules/photo/" class="mm-item"><span class="mm-label">Правила подписи фотографий</span></a></li>
<li><a href="/rules/video/" class="mm-item"><span class="mm-label">Правила видеокаталога</span></a></li>
</ul>
</div>
</li>
<li><a href="//forum.transphoto.org" class="mm-item"><span class="mm-label">Форум</span></a></li>
<li><a href="/search.php" class="mm-item"><span class="mm-label">Поиск</span></a>
<div>
<ul class="mm-level-2">
<li><a href="/search.php" class="mm-item"><span class="mm-label">Поиск фотографий</span></a></li>
<li><a href="/vsearch.php" class="mm-item"><span class="mm-label">Поиск ТС</span></a></li>
<li><a href="/csearch.php" class="mm-item"><span class="mm-label">Поиск комментариев</span></a></li>
<li><a href="/authors.php" class="mm-item"><span class="mm-label">Поиск авторов</span></a></li>
</ul>
</div>
</li>
<li class="mm-pad-right"><a href="/login" class="mm-item"><span class="mm-icon"><i class="fas fa-xs fa-address-card"></i></span><span class="mm-label">Войти</span></a></li>
<li><a href="/register" class="mm-item"><span class="mm-icon"><i class="fas fa-xs fa-user"></i></span><span class="mm-label">Регистрация</span></a></li>
</ul>
</td>
</tr>
<tr>
<td><a href="/" id="title"><img src="/static/img/logosmall.png" alt="TransPhoto"><span>NativeGallery</span></a></td>
</tr>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,592 @@
<!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>&lt;</span></div>
<div id="next" title="Переход по профилю ТС"><span>&gt;</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">
</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"><a href="/country/1/"><img class="flag" src="/img/r/1.gif" title="Россия"></a>&nbsp; <b><a href="/city/1/">Москва</a></b>,&nbsp;</td>
<td class="nw" valign="top" align="right"><span class="s5">&nbsp;ЗиУ-683Б [Б00]</span></td>
<td class="nw s5" align="left" valign="top">&nbsp; <b><a href="/vehicle/78618/#n76272">4608</a></b>&nbsp;</td>
<td class="nw" align="left" valign="top"></td>
</tr>
<tr>
<td class="nw" valign="top" align="right" colspan="2"><span class="s5">&nbsp;ЗиУ-682В-012 [В0А]</span></td>
<td class="nw s5" align="left" valign="top">&nbsp; <b><a href="/vehicle/71937/#n70204">4238</a></b>&nbsp;</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><br>
<div>Прислал <a href="/author/14224/">Максим Дорофеев ( ФанатВ )</a> &middot; <span class="flag"><img src="/img/r/1.gif" title="Россия"> Калуга</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Дата: <b>19 августа 1991 г., понедельник (примерно)</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">+48</b></div>
<div class="star" pid="1361063"></div>
<div id="votes" class="votes">
<table class="vblock pro">
<tr>
<td><a href="/author/22530/">Alexey Becker</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/9169/">tatra t4su</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/32862/">kostyan_piterski</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/15634/">Victor Irkut</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/11756/">Яков Фёдоров</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/3907/">Сергей Валерьевич</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/23757/">Empty Underground</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/34845/">KILATIV</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/6206/">Никита Лапин</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/26544/">Aleksandr_Urickiy</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/27099/">Silbervogel</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/21326/">VOLGA</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/25878/">Андрей Ширинкин</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/6185/">TOXA</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/8718/">Diman</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/26699/">Qwerty_qwertovich</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/25475/">Алексей ЛВ</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/33168/">Владислав Масев</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/19680/">Сергей Александров</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/31083/">Yastrebov Nikolay</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/33941/">Trains63</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/36219/">Темерник</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/862/">AVB</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/1028/">IvanPG</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/14003/">Михаил_123</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/259/">АК (Александр)</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/1464/">Mitay</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/533/">Андрей Янковский</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/369/">Юрий А.</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/4572/">Alexandr Matr</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/7686/">Томич</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/1560/">Александр Рябов</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/5075/">Etix1979</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/17149/">Timofeiikarus</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/11563/">Lasselan</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/5899/">Э.В.Ротгрифф</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/15817/">Егор Шмаков (Василий Фрескин)</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/11424/">Натаныч</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/986/">Александров Николай</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/359/">Виктор Бергман</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/12232/">Александр Vl</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/1572/">Palmer</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/20725/">Sergei 34</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/21132/">New_Wave</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/5929/">Barbar1s</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/515/">Andrew Gri-Shen</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/1676/">Сэм</a></td>
<td class="vv">+1</td>
</tr>
<tr>
<td><a href="/author/8764/">nss991</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">
<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">Заводская окраска бело-красный в &quot;шипиловской&quot; схеме.<br />
<br />
Капитальных ремонтов не проходил.<br />
<br />
Работал на маршрутах Б,10.<br />
<br />
&quot;Баррикада&quot; в путче 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">&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>
</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> &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&amp;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>