add public design files
This commit is contained in:
28
design/default/css/reset.css
Normal file
28
design/default/css/reset.css
Normal file
@@ -0,0 +1,28 @@
|
||||
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: 0;
|
||||
font-size: 100%;
|
||||
background: transparent;
|
||||
}
|
||||
blockquote, q {
|
||||
quotes: none;
|
||||
}
|
||||
blockquote:before, blockquote:after, q:before, q:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
ins {
|
||||
text-decoration: none;
|
||||
}
|
||||
del {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
937
design/default/css/style.css
Normal file
937
design/default/css/style.css
Normal file
@@ -0,0 +1,937 @@
|
||||
@import url("reset.css");
|
||||
|
||||
/* @group Общий стиль */
|
||||
html,
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
font: 13px Tahoma, Arial, Helvetica, Geneva, sans-serif;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
p{margin-bottom: 15px;}
|
||||
|
||||
h1 {
|
||||
font-size: 30px;
|
||||
margin-bottom: 10px;
|
||||
font-weight: normal;
|
||||
text-shadow: 0px 1px 0px #fff;
|
||||
}
|
||||
|
||||
h2 {
|
||||
clear: both;
|
||||
font-size: 20px;
|
||||
margin-bottom: 10px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 16px;
|
||||
margin-top: 0px;
|
||||
margin-bottom: 10px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
a { color: #0095eb; }
|
||||
|
||||
a:hover { color: #e84d07; }
|
||||
|
||||
e[type="button"] {
|
||||
cursor:hand;
|
||||
cursor:pointer;
|
||||
}
|
||||
/* @end — Общий стиль */
|
||||
|
||||
|
||||
/* @group Верхняя строка */
|
||||
#top_background{
|
||||
min-height: 44px;
|
||||
padding-top: 10px;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
#top{
|
||||
margin:0px auto;
|
||||
width: 940px;
|
||||
}
|
||||
#menu{
|
||||
margin-left: -10px;
|
||||
float: left;
|
||||
margin-top: 7px;
|
||||
max-width: 700px;
|
||||
}
|
||||
|
||||
#menu li{
|
||||
height: 30px;
|
||||
display: block;
|
||||
float: left;
|
||||
list-style: none;
|
||||
}
|
||||
#menu li a{
|
||||
margin-right: 5px;
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
float: left;
|
||||
padding: 6px 11px 6px 11px;
|
||||
color: #606060;
|
||||
}
|
||||
#menu li.selected a, #menu li:hover a{
|
||||
border: 1px solid #d5d5d5;
|
||||
background-color: #ffffff;
|
||||
padding: 5px 10px 6px 10px;
|
||||
border-radius: 20px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#blog{
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#currencies{
|
||||
margin-bottom:15px;
|
||||
}
|
||||
|
||||
#currencies ul{
|
||||
margin-top: 10px;
|
||||
}
|
||||
#currencies ul li{
|
||||
font-size: 12px;
|
||||
display: inline;
|
||||
padding-right: 5px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#currencies ul li a{
|
||||
white-space: nowrap;
|
||||
color: #505050;
|
||||
}
|
||||
#currencies ul li.selected a{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#cart_informer{
|
||||
background-color: #fff;
|
||||
padding: 5px 13px 6px 13px;
|
||||
border-radius: 15px;
|
||||
float: right;
|
||||
margin-top: 6px;
|
||||
margin-left: 10px;
|
||||
color: #505050;
|
||||
}
|
||||
|
||||
|
||||
/* @group Шапка сайта */
|
||||
#header {
|
||||
margin:0px auto;
|
||||
width: 940px;
|
||||
overflow: hidden;
|
||||
clear: both;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
/* @group Футкр сайта */
|
||||
#footer {
|
||||
margin:0px auto;
|
||||
width: 940px;
|
||||
overflow: hidden;
|
||||
clear: both;
|
||||
height: 60px;
|
||||
padding-top: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
#account{
|
||||
float: right;
|
||||
font-size: 12px;
|
||||
margin: 12px 10px 10px 0px;
|
||||
margin-top: 12p
|
||||
margin-right: 1e0px;
|
||||
text-align: right;
|
||||
color: #505050;
|
||||
}
|
||||
#account #login{
|
||||
padding-left: 7px;
|
||||
}
|
||||
#account #logout{
|
||||
padding-left: 7px;
|
||||
}
|
||||
|
||||
|
||||
#logo{
|
||||
margin-top: 15px;
|
||||
padding-left: 0px;
|
||||
float: left;
|
||||
clear: left;
|
||||
width: 250px;
|
||||
height: 105px;
|
||||
}
|
||||
#contact{
|
||||
float: right;
|
||||
text-align: right;
|
||||
margin-top: 45px;
|
||||
margin-right: 5px;
|
||||
font-sdtyle: italic;
|
||||
height: 25px;
|
||||
color: #505050;
|
||||
font-size: 15px;
|
||||
text-shadow: 0px 1px 0px #fff;
|
||||
|
||||
}
|
||||
#contact #phone{
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
|
||||
#main {
|
||||
margin:0px auto;
|
||||
width: 940px;
|
||||
}
|
||||
#content {
|
||||
float: right;
|
||||
width: 680px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#left {
|
||||
width: 260px;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
#search{
|
||||
margin-top: 9px;
|
||||
margin-bottom: 10px;
|
||||
height: 28px;
|
||||
}
|
||||
#search .input_search{
|
||||
width: 170px;
|
||||
height: 20px;
|
||||
font-size: 12px;
|
||||
border: 1px solid #b0b0b0;
|
||||
display: block;
|
||||
float: left;
|
||||
}
|
||||
#search .button_search {
|
||||
width: 32px;
|
||||
height: 28px;
|
||||
background-position-y: middle;
|
||||
background: url(../images/search.png) no-repeat;
|
||||
border-style: none;
|
||||
cursor: pointer;
|
||||
cursor: hand;
|
||||
display: block;
|
||||
float: left;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* @group Меню каталога*/
|
||||
#catalog_menu {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#catalog_menu ul {
|
||||
padding-left: 0px;
|
||||
padding-bottom: 5px;
|
||||
list-style: none;
|
||||
}
|
||||
#catalog_menu ul ul {
|
||||
padding-left: 20px;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
#catalog_menu ul li {
|
||||
font-size: 16px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
#catalog_menu ul li img{
|
||||
vertical-align: middle;
|
||||
}
|
||||
#catalog_menu ul li a.selected{
|
||||
color: #ffffff;
|
||||
background-color: #0095eb;
|
||||
padding: 3px;
|
||||
}
|
||||
#catalog_menu ul ul li {
|
||||
font-size: 14px;
|
||||
}
|
||||
#catalog_menu ul ul ul li {
|
||||
font-size: 12px;
|
||||
}
|
||||
/* @end — Меню каталога*/
|
||||
|
||||
|
||||
#all_brands {
|
||||
width: 220px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
|
||||
/* @group Brands */
|
||||
#brands {
|
||||
clear: both;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
#brands a {
|
||||
color: #ec0060;
|
||||
font-size: 12px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
#brands img{
|
||||
vertical-align: middle;
|
||||
}
|
||||
#brands a:hover {
|
||||
color: #000;
|
||||
}
|
||||
#brands a.selected {
|
||||
background-color: #ec0060;
|
||||
color: #fffeff;
|
||||
padding: 2px 2px 2px 2px;
|
||||
}
|
||||
/* @end */
|
||||
|
||||
/* Хлебные крошки */
|
||||
#path{
|
||||
margin-top: -20px;
|
||||
margin-bottom: 5px;
|
||||
font-size: 11px;
|
||||
color: #a0a0a0;
|
||||
}
|
||||
#path a{
|
||||
color: #a0a0a0;
|
||||
}
|
||||
/* @end */
|
||||
|
||||
|
||||
/* @group Товар подробно */
|
||||
.product .image {
|
||||
text-align: center;
|
||||
width: 300px;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #e0e0e0;
|
||||
float: left;
|
||||
padding: 5px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.product .image img{
|
||||
max-width: 300px;
|
||||
}
|
||||
.product .images {
|
||||
float: left;
|
||||
clear: left;
|
||||
width: 300px;
|
||||
margin-right: 20px;
|
||||
margin-bottom: 10px;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
.product .images img{
|
||||
text-align: center;
|
||||
width: 50px;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #e0e0e0;
|
||||
float: left;
|
||||
padding: 5px;
|
||||
margin: 4px 10px 10px 0px;
|
||||
}
|
||||
.product .description{
|
||||
float: right;
|
||||
width: 330px;
|
||||
}
|
||||
|
||||
.product .features {
|
||||
list-style: none;
|
||||
width: 100%;
|
||||
display: block;
|
||||
clear: both;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 25px;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
}
|
||||
.product .features li {
|
||||
padding: 10px 5px 10px 5px;
|
||||
overflow: hidden;
|
||||
border-top: 1px solid #e0e0e0;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
.product .features li.even{
|
||||
background-color: #e9e9e9;
|
||||
}
|
||||
.product .features label {
|
||||
font-style: normal;
|
||||
display: block;
|
||||
width: 30%;
|
||||
float: left;
|
||||
}
|
||||
.product .features p {
|
||||
float: left;
|
||||
display: block;
|
||||
width: 70%;
|
||||
}
|
||||
.product .variants {
|
||||
float: left;
|
||||
font-size: 12px;
|
||||
}
|
||||
.product .variant td{
|
||||
padding-bottom: 6px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.product .compare_price {
|
||||
font-size: 14px;
|
||||
text-decoration: line-through;
|
||||
white-space: nowrap;
|
||||
color: #707070;
|
||||
}
|
||||
.product .price {
|
||||
font-size: 14px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.product .variant_name {
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.product .variant_radiobutton {
|
||||
margin-right: 5px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
#back_forward {
|
||||
font-size: 14px;
|
||||
margin-bottom: 20px;
|
||||
clear: both;
|
||||
}
|
||||
#back_forward a.prev_page_link{
|
||||
margin-right: 20px;
|
||||
}
|
||||
/* @end — Товар подробно*/
|
||||
|
||||
|
||||
.tiny_products {
|
||||
list-style: none;
|
||||
display: block;
|
||||
}
|
||||
.tiny_products .product{
|
||||
width: 210px;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 30px;
|
||||
display: -moz-inline-box;
|
||||
display: inline-block;
|
||||
*zoom: 1;
|
||||
*display: inline;
|
||||
word-spacing: normal;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tiny_products .product .image {
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
line-height: 200px;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #e0e0e0;
|
||||
padding: 5px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.tiny_products .product .image img{
|
||||
vertical-align: middle;
|
||||
max-width: 200px;
|
||||
}
|
||||
.tiny_products .product h3 {
|
||||
font-size: 14px;
|
||||
margin-bottom: 10px;
|
||||
font-weight: normal;
|
||||
}
|
||||
.tiny_products .product h3.featured{
|
||||
background: url(../images/star.png) no-repeat;
|
||||
background-position: left middle;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.products {
|
||||
list-style: none;
|
||||
display: block;
|
||||
}
|
||||
.products .product{
|
||||
width: 100%;
|
||||
display: block;
|
||||
clear: both;
|
||||
overflow: hidden;
|
||||
}
|
||||
.products .product .image {
|
||||
text-align: center;
|
||||
width: 200px;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #e0e0e0;
|
||||
float: left;
|
||||
padding: 5px;
|
||||
margin: 4px 0px 20px 0px;
|
||||
}
|
||||
.products .product .image img{
|
||||
max-width: 200px;
|
||||
}
|
||||
.products .product .product_info {
|
||||
float: right;
|
||||
width: 450px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
.products .product h3 {
|
||||
font-size: 20px;
|
||||
margin-bottom: 5px;
|
||||
font-weight: normal;
|
||||
}
|
||||
.products .product h3.featured{
|
||||
background: url(../images/star.png) no-repeat;
|
||||
background-position: left middle;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.products .product .annotation {
|
||||
font-size: 12px;
|
||||
color: #505050;;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
|
||||
/* Кнопка */
|
||||
.button {
|
||||
float: left;
|
||||
clear: left;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.button {
|
||||
-moz-box-shadow:inset 0px 1px 0px 0px #ffffff;
|
||||
-webkit-box-shadow:inset 0px 1px 0px 0px #ffffff;
|
||||
box-shadow:inset 0px 1px 0px 0px #ffffff;
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) );
|
||||
background:-moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf');
|
||||
background-color:#ededed;
|
||||
-moz-border-radius:6px;
|
||||
-webkit-border-radius:6px;
|
||||
border-radius:6px;
|
||||
border:1px solid #cccccc;
|
||||
display:inline-block;
|
||||
color:#555555;
|
||||
font-family:arial;
|
||||
font-size:14px;
|
||||
font-weight:bold;
|
||||
padding:6px 20px;
|
||||
text-decoration:none;
|
||||
text-shadow:1px 1px 0px #ffffff;
|
||||
}.button:hover {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #dfdfdf), color-stop(1, #ededed) );
|
||||
background:-moz-linear-gradient( center top, #dfdfdf 5%, #ededed 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfdfdf', endColorstr='#ededed');
|
||||
background-color:#dfdfdf;
|
||||
}.button:active {
|
||||
position:relative;
|
||||
top:1px;
|
||||
}
|
||||
|
||||
/* @group Фильтр по свойствам */
|
||||
#features {
|
||||
background-color: #f0f0f0;
|
||||
border-top: 1px solid #d0d0d0;
|
||||
border-bottom: 1px solid #d0d0d0;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 10px;
|
||||
width: 100%;
|
||||
}
|
||||
#features .feature_name{
|
||||
padding: 7px;
|
||||
}
|
||||
#features .feature_values{
|
||||
padding: 7px;
|
||||
}
|
||||
#features a {
|
||||
padding-right: 6px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
#features a.selected {
|
||||
//background-color: #4a4a4a;
|
||||
color: #505050;
|
||||
text-decoration: none;
|
||||
}
|
||||
/* @end — Фильтр по свойствам*/
|
||||
|
||||
|
||||
/* @group Сортировка */
|
||||
.sort {
|
||||
color: #505050;
|
||||
font-size: 12px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
.sort a{
|
||||
margin-right: 5px;
|
||||
}
|
||||
.sort .selected {
|
||||
color: #505050;
|
||||
text-decoration: none;
|
||||
margin-right: 5px;
|
||||
}
|
||||
/* @end */
|
||||
|
||||
|
||||
/* @group Постраничная навигация */
|
||||
.pagination {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
font-size: 12px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.pagination a {
|
||||
display: block;
|
||||
float: left;
|
||||
background-color: #fffeff;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 5px;
|
||||
padding: 7px 4px;
|
||||
min-width: 22px;
|
||||
text-align: center;
|
||||
border: 1px solid #d7d7d7;
|
||||
text-decoration: none;
|
||||
}
|
||||
.pagination a.selected:hover,
|
||||
.pagination a.selected {
|
||||
background-color: #18a5ff;
|
||||
color: #ffffff;
|
||||
border-color: #008fe9;
|
||||
}
|
||||
.pagination a:hover {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
.pagination a.next_page_link, .pagination a.prev_page_link{
|
||||
border: none;
|
||||
background: none;
|
||||
}
|
||||
/* @end */
|
||||
|
||||
|
||||
/* @group Просмотренные товары */
|
||||
#browsed_products{
|
||||
margin-bottom: 20px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#browsed_products li{
|
||||
display: block;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
border: 1px solid #e0e0e0;
|
||||
background-color: #ffffff;
|
||||
margin: 0 7px 7px 0;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
#browsed_products li a{
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
/* @end — Просмотренные товары */
|
||||
|
||||
|
||||
/* @group Формы */
|
||||
input[type="text"],
|
||||
input[type="password"]
|
||||
{
|
||||
width: 100%;
|
||||
font-size: 18px;
|
||||
}
|
||||
.form
|
||||
{
|
||||
width:400px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.form textarea
|
||||
{
|
||||
width:100%;
|
||||
height:100px;
|
||||
font-size: 18px;
|
||||
}
|
||||
.form label {
|
||||
display:block;
|
||||
font-size: 14px;
|
||||
}
|
||||
.form input[type="text"]{
|
||||
display:block;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/* @group Комментарии */
|
||||
.comment_list {
|
||||
margin-top: 15px;
|
||||
list-style: none;
|
||||
}
|
||||
.comment_list li {
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
.comment_header {
|
||||
font-size: 18px;
|
||||
}
|
||||
.comment_header i {
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
color: #878787;
|
||||
font-size: 13px;
|
||||
}
|
||||
/* @end — Комментарии*/
|
||||
|
||||
/* @group Форма отправки комментария */
|
||||
.comment_form {
|
||||
background-color: #f3f3f3;
|
||||
border: 1px solid #e0e0e0;
|
||||
padding: 20px;
|
||||
margin-top: 20px;
|
||||
width: 90%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.comment_form h2 {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.comment_form .comment_textarea {
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.comment_form label {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 100px;
|
||||
font-size: 18px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
.comment_form .input_name {
|
||||
font-size: 16px;
|
||||
width: 250px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
.comment_form .input_captcha, .cart_form .input_captcha{
|
||||
float: left;
|
||||
width: 150px;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
margin-top: 15px;
|
||||
height: 36px;
|
||||
}
|
||||
.comment_form .captcha, .cart_form .captcha {
|
||||
float: left;
|
||||
display: block;
|
||||
margin-top: 15px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.comment_form .button,
|
||||
.feedback_form .button,
|
||||
.register_form .button,
|
||||
.login_form .button{
|
||||
float: right;
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
/* @end — Форма отправки комментария */
|
||||
|
||||
/* @group Форма отправки обратной связи */
|
||||
.feedback_form {
|
||||
background-color: #f3f3f3;
|
||||
border: 1px solid #e0e0e0;
|
||||
padding: 20px;
|
||||
margin-top: 20px;
|
||||
width: 90%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.feedback_form .input_captcha, .register_form .input_captcha{
|
||||
float: left;
|
||||
width: 150px;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
margin-top: 15px;
|
||||
height: 36px;
|
||||
}
|
||||
.feedback_form .captcha, .register_form .captcha{
|
||||
float: left;
|
||||
display: block;
|
||||
margin-top: 15px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.feedback_form .button_send {
|
||||
font-size: 18px;
|
||||
float: right;
|
||||
margin-top: 25px;
|
||||
}
|
||||
/* @end — Форма отправки комментария */
|
||||
|
||||
|
||||
/* @group Корзина */
|
||||
#purchases{
|
||||
width: 100%;
|
||||
}
|
||||
#purchases tr{
|
||||
border-top: 1px solid #d5d5d5;
|
||||
height: 70px;
|
||||
}
|
||||
#purchases th{
|
||||
vertical-align: top;
|
||||
padding-top: 10px;
|
||||
font-size: 18px;
|
||||
font-weight: normal;
|
||||
}
|
||||
#purchases .image{
|
||||
width: 50px;
|
||||
text-align: center;
|
||||
}
|
||||
#purchases .image a{
|
||||
border: 1px solid #e0e0e0;
|
||||
background-color: #ffffff;
|
||||
margin: 0 7px 7px 0;
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
#purchases .name{
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
text-align: left;
|
||||
}
|
||||
#purchases td.name{
|
||||
font-size: 14px;
|
||||
}
|
||||
#purchases td .download_attachment{
|
||||
white-space: nowrap;
|
||||
color: #3b8500;
|
||||
padding: 5px 10px 7px 10px;
|
||||
border-bottom-color: 1px dotted green;
|
||||
background-color: #ccff72;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
#purchases .price{
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
white-space: nowrap;
|
||||
text-align: right;
|
||||
}
|
||||
#purchases td.price{
|
||||
font-size: 14px;
|
||||
}
|
||||
#purchases .remove{
|
||||
padding-left: 15px;
|
||||
text-align: right;
|
||||
}
|
||||
#purchases .amount{
|
||||
font-size: 14px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
#purchases .amount select{
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
#purchases .coupon .name{
|
||||
font-size:14px;
|
||||
}
|
||||
#purchases .coupon .name input.coupon_code{
|
||||
width: 200px;
|
||||
}
|
||||
#purchases .coupon .name input{
|
||||
font-size:16px;
|
||||
}
|
||||
|
||||
ul#deliveries{
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #e0e0e0;
|
||||
padding: 20px 20px 0 20px;
|
||||
list-style: none;
|
||||
}
|
||||
ul#deliveries li{
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
ul#deliveries li div.checkbox{
|
||||
float: left;
|
||||
}
|
||||
ul#deliveries li h3, ul#deliveries li .description{
|
||||
display: block;
|
||||
margin-left: 25px;
|
||||
}
|
||||
/* @end */
|
||||
|
||||
|
||||
/* @group Кабинет */
|
||||
#orders_history
|
||||
{
|
||||
list-style: none;
|
||||
}
|
||||
#orders_history li
|
||||
{
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#orders_history li a
|
||||
{
|
||||
font-size: 16px;
|
||||
}
|
||||
/* @end — Кабинет */
|
||||
|
||||
|
||||
|
||||
/* @group Детали заказа */
|
||||
table.order_info
|
||||
{
|
||||
margin-right: 20px;
|
||||
margin-bottom: 20px;
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
table.order_info td
|
||||
{
|
||||
padding: 10px;
|
||||
border: 1px dotted #e0e0e0;
|
||||
font-size: 14px;
|
||||
}
|
||||
.checkout_button
|
||||
{
|
||||
padding: 10px 20px 10px 20px;
|
||||
border: 1px solid #51a400;
|
||||
background-color: #d3ffa9;
|
||||
color: #2e5e00;
|
||||
font-size: 14px;
|
||||
}
|
||||
/* @end */
|
||||
|
||||
|
||||
/* Сообщение с ошибкой */
|
||||
.message_error{
|
||||
clear: both;
|
||||
height: 18px;
|
||||
padding: 10px 20px;
|
||||
margin-bottom: 15px;
|
||||
margin-top: 10px;
|
||||
overflow: hidden;
|
||||
color: red;
|
||||
background-color: #ffcaca;
|
||||
border: 1px dotted #ff4545;
|
||||
}
|
||||
|
||||
/* @end */
|
||||
|
||||
|
||||
2
design/default/html/.htaccess
Normal file
2
design/default/html/.htaccess
Normal file
@@ -0,0 +1,2 @@
|
||||
order deny,allow
|
||||
deny from all
|
||||
21
design/default/html/blog.tpl
Normal file
21
design/default/html/blog.tpl
Normal file
@@ -0,0 +1,21 @@
|
||||
{* Список записей блога *}
|
||||
|
||||
<!-- Заголовок /-->
|
||||
<h1>{$page->name}</h1>
|
||||
|
||||
{include file='pagination.tpl'}
|
||||
|
||||
<!-- Статьи /-->
|
||||
<ul id="blog">
|
||||
{foreach $posts as $post}
|
||||
<li>
|
||||
<h3><a data-post="{$post->id}" href="blog/{$post->url}">{$post->name|escape}</a></h3>
|
||||
<p>{$post->date|date}</p>
|
||||
<p>{$post->annotation}</p>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<!-- Статьи #End /-->
|
||||
|
||||
{include file='pagination.tpl'}
|
||||
|
||||
237
design/default/html/cart.tpl
Normal file
237
design/default/html/cart.tpl
Normal file
@@ -0,0 +1,237 @@
|
||||
{* Шаблон корзины *}
|
||||
|
||||
{$meta_title = "Корзина" scope=parent}
|
||||
|
||||
<h1>
|
||||
{if $cart->purchases}В корзине {$cart->total_products} {$cart->total_products|plural:'товар':'товаров':'товара'}
|
||||
{else}Корзина пуста{/if}
|
||||
</h1>
|
||||
|
||||
{if $cart->purchases}
|
||||
<form method="post" name="cart">
|
||||
|
||||
{* Список покупок *}
|
||||
<table id="purchases">
|
||||
|
||||
{foreach from=$cart->purchases item=purchase}
|
||||
<tr>
|
||||
{* Изображение товара *}
|
||||
<td class="image">
|
||||
{$image = $purchase->product->images|first}
|
||||
{if $image}
|
||||
<a href="products/{$purchase->product->url}"><img src="{$image->filename|resize:50:50}" alt="{$product->name|escape}"></a>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
{* Название товара *}
|
||||
<td class="name">
|
||||
<a href="products/{$purchase->product->url}">{$purchase->product->name|escape}</a>
|
||||
{$purchase->variant->name|escape}
|
||||
</td>
|
||||
|
||||
{* Цена за единицу *}
|
||||
<td class="price">
|
||||
{($purchase->variant->price)|convert} {$currency->sign}
|
||||
</td>
|
||||
|
||||
{* Количество *}
|
||||
<td class="amount">
|
||||
<select name="amounts[{$purchase->variant->id}]" onchange="document.cart.submit();">
|
||||
{section name=amounts start=1 loop=$purchase->variant->stock+1 step=1}
|
||||
<option value="{$smarty.section.amounts.index}" {if $purchase->amount==$smarty.section.amounts.index}selected{/if}>{$smarty.section.amounts.index} {$settings->units}</option>
|
||||
{/section}
|
||||
</select>
|
||||
</td>
|
||||
|
||||
{* Цена *}
|
||||
<td class="price">
|
||||
{($purchase->variant->price*$purchase->amount)|convert} {$currency->sign}
|
||||
</td>
|
||||
|
||||
{* Удалить из корзины *}
|
||||
<td class="remove">
|
||||
<a href="cart/remove/{$purchase->variant->id}">
|
||||
<img src="design/{$settings->theme}/images/delete.png" title="Удалить из корзины" alt="Удалить из корзины">
|
||||
</a>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{/foreach}
|
||||
{if $user->discount}
|
||||
<tr>
|
||||
<th class="image"></th>
|
||||
<th class="name">скидка</th>
|
||||
<th class="price"></th>
|
||||
<th class="amount"></th>
|
||||
<th class="price">
|
||||
{$user->discount} %
|
||||
</th>
|
||||
<th class="remove"></th>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $coupon_request}
|
||||
<tr class="coupon">
|
||||
<th class="image"></th>
|
||||
<th class="name" colspan="3">Код купона или подарочного ваучера
|
||||
{if $coupon_error}
|
||||
<div class="message_error">
|
||||
{if $coupon_error == 'invalid'}Купон недействителен{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div>
|
||||
<input type="text" name="coupon_code" value="{$cart->coupon->code|escape}" class="coupon_code">
|
||||
</div>
|
||||
{if $cart->coupon->min_order_price>0}(купон {$cart->coupon->code|escape} действует для заказов от {$cart->coupon->min_order_price|convert} {$currency->sign}){/if}
|
||||
<div>
|
||||
<input type="button" name="apply_coupon" value="Применить купон" onclick="document.cart.submit();">
|
||||
</div>
|
||||
</th>
|
||||
<th class="price">
|
||||
{if $cart->coupon_discount>0}
|
||||
−{$cart->coupon_discount|convert} {$currency->sign}
|
||||
{/if}
|
||||
</th>
|
||||
<th class="remove"></th>
|
||||
</tr>
|
||||
|
||||
{literal}
|
||||
<script>
|
||||
$("input[name='coupon_code']").keypress(function(event){
|
||||
if(event.keyCode == 13){
|
||||
$("input[name='name']").attr('data-format', '');
|
||||
$("input[name='email']").attr('data-format', '');
|
||||
document.cart.submit();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
|
||||
{/if}
|
||||
|
||||
<tr>
|
||||
<th class="image"></th>
|
||||
<th class="name"></th>
|
||||
<th class="price" colspan="4">
|
||||
Итого
|
||||
{$cart->total_price|convert} {$currency->sign}
|
||||
</th>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
{* Связанные товары *}
|
||||
{*
|
||||
{if $related_products}
|
||||
<h2>Так же советуем посмотреть</h2>
|
||||
<!-- Список каталога товаров-->
|
||||
<ul class="tiny_products">
|
||||
{foreach $related_products as $product}
|
||||
<!-- Товар-->
|
||||
<li class="product">
|
||||
|
||||
<!-- Фото товара -->
|
||||
{if $product->image}
|
||||
<div class="image">
|
||||
<a href="products/{$product->url}"><img src="{$product->image->filename|resize:200:200}" alt="{$product->name|escape}"/></a>
|
||||
</div>
|
||||
{/if}
|
||||
<!-- Фото товара (The End) -->
|
||||
|
||||
<!-- Название товара -->
|
||||
<h3><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></h3>
|
||||
<!-- Название товара (The End) -->
|
||||
|
||||
{if $product->variants|count > 0}
|
||||
<!-- Выбор варианта товара -->
|
||||
<table>
|
||||
{foreach $product->variants as $v}
|
||||
<tr class="variant">
|
||||
<td>
|
||||
{if $v->name}<label class="variant_name" for="related_{$v->id}">{$v->name}</label>{/if}
|
||||
</td>
|
||||
<td>
|
||||
{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
|
||||
<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
|
||||
</td>
|
||||
<td>
|
||||
<a href="cart?variant={$v->id}">в корзину</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
<!-- Выбор варианта товара (The End) -->
|
||||
{else}
|
||||
Нет в наличии
|
||||
{/if}
|
||||
|
||||
|
||||
</li>
|
||||
<!-- Товар (The End)-->
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
*}
|
||||
|
||||
{* Доставка *}
|
||||
{if $deliveries}
|
||||
<h2>Выберите способ доставки:</h2>
|
||||
<ul id="deliveries">
|
||||
{foreach $deliveries as $delivery}
|
||||
<li>
|
||||
<div class="checkbox">
|
||||
<input type="radio" name="delivery_id" value="{$delivery->id}" {if $delivery_id==$delivery->id}checked{elseif $delivery@first}checked{/if} id="deliveries_{$delivery->id}">
|
||||
</div>
|
||||
|
||||
<h3>
|
||||
<label for="deliveries_{$delivery->id}">
|
||||
{$delivery->name}
|
||||
{if $cart->total_price < $delivery->free_from && $delivery->price>0}
|
||||
({$delivery->price|convert} {$currency->sign})
|
||||
{elseif $cart->total_price >= $delivery->free_from}
|
||||
(бесплатно)
|
||||
{/if}
|
||||
</label>
|
||||
</h3>
|
||||
<div class="description">
|
||||
{$delivery->description}
|
||||
</div>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
|
||||
<h2>Адрес получателя</h2>
|
||||
|
||||
<div class="form cart_form">
|
||||
{if $error}
|
||||
<div class="message_error">
|
||||
{if $error == 'empty_name'}Введите имя{/if}
|
||||
{if $error == 'empty_email'}Введите email{/if}
|
||||
{if $error == 'captcha'}Капча введена неверно{/if}
|
||||
</div>
|
||||
{/if}
|
||||
<label>Имя, фамилия</label>
|
||||
<input name="name" type="text" value="{$name|escape}" data-format=".+" data-notice="Введите имя"/>
|
||||
|
||||
<label>Email</label>
|
||||
<input name="email" type="text" value="{$email|escape}" data-format="email" data-notice="Введите email" />
|
||||
|
||||
<label>Телефон</label>
|
||||
<input name="phone" type="text" value="{$phone|escape}" />
|
||||
|
||||
<label>Адрес доставки</label>
|
||||
<input name="address" type="text" value="{$address|escape}"/>
|
||||
|
||||
<label>Комментарий к заказу</label>
|
||||
<textarea name="comment" id="order_comment">{$comment|escape}</textarea>
|
||||
|
||||
<div class="captcha"><img src="captcha/image.php?{math equation='rand(10,10000)'}" alt='captcha'/></div>
|
||||
<input class="input_captcha" id="comment_captcha" type="text" name="captcha_code" value="" data-format="\d\d\d\d" data-notice="Введите капчу"/>
|
||||
|
||||
<input type="submit" name="checkout" class="button" value="Оформить заказ">
|
||||
</div>
|
||||
|
||||
</form>
|
||||
{else}
|
||||
В корзине нет товаров
|
||||
{/if}
|
||||
9
design/default/html/cart_informer.tpl
Normal file
9
design/default/html/cart_informer.tpl
Normal file
@@ -0,0 +1,9 @@
|
||||
{* Информера корзины (отдаётся аяксом) *}
|
||||
|
||||
{if $cart->total_products>0}
|
||||
В <a href="./cart/">корзине</a>
|
||||
{$cart->total_products} {$cart->total_products|plural:'товар':'товаров':'товара'}
|
||||
на {$cart->total_price|convert} {$currency->sign|escape}
|
||||
{else}
|
||||
Корзина пуста
|
||||
{/if}
|
||||
171
design/default/html/email_order.tpl
Normal file
171
design/default/html/email_order.tpl
Normal file
@@ -0,0 +1,171 @@
|
||||
{* Шаблон письма пользователю о заказе *}
|
||||
|
||||
{$subject = "Заказ №`$order->id`" scope=parent}
|
||||
<h1 style="font-weight:normal;font-family:arial;">
|
||||
<a href="{$config->root_url}/order/{$order->url}">Ваш заказ №{$order->id}</a>
|
||||
на сумму {$order->total_price|convert:$currency->id} {$currency->sign}
|
||||
{if $order->paid == 1}оплачен{else}еще не оплачен{/if},
|
||||
{if $order->status == 0}ждет обработки{elseif $order->status == 1}в обработке{elseif $order->status == 2}выполнен{/if}
|
||||
</h1>
|
||||
<table cellpadding="6" cellspacing="0" style="border-collapse: collapse;">
|
||||
<tr>
|
||||
<td style="padding:6px; width:170; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
Статус
|
||||
</td>
|
||||
<td style="padding:6px; width:330; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{if $order->status == 0}
|
||||
ждет обработки
|
||||
{elseif $order->status == 1}
|
||||
в обработке
|
||||
{elseif $order->status == 2}
|
||||
выполнен
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding:6px; width:170; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
Оплата
|
||||
</td>
|
||||
<td style="padding:6px; width:330; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{if $order->paid == 1}
|
||||
<font color="green">оплачен</font>
|
||||
{else}
|
||||
не оплачен
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{if $order->name}
|
||||
<tr>
|
||||
<td style="padding:6px; width:170; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
Имя, фамилия
|
||||
</td>
|
||||
<td style="padding:6px; width:330; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{$order->name|escape}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $order->email}
|
||||
<tr>
|
||||
<td style="padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
Email
|
||||
</td>
|
||||
<td style="padding:6px; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{$order->email|escape}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $order->phone}
|
||||
<tr>
|
||||
<td style="padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
Телефон
|
||||
</td>
|
||||
<td style="padding:6px; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{$order->phone|escape}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $order->address}
|
||||
<tr>
|
||||
<td style="padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
Адрес доставки
|
||||
</td>
|
||||
<td style="padding:6px; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{$order->address|escape}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $order->comment}
|
||||
<tr>
|
||||
<td style="padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
Комментарий
|
||||
</td>
|
||||
<td style="padding:6px; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{$order->comment|escape|nl2br}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td style="padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
Дата
|
||||
</td>
|
||||
<td style="padding:6px; width:170; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{$order->date|date} {$order->date|time}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1 style="font-weight:normal;font-family:arial;">Вы заказали:</h1>
|
||||
|
||||
<table cellpadding="6" cellspacing="0" style="border-collapse: collapse;">
|
||||
|
||||
{foreach name=purchases from=$purchases item=purchase}
|
||||
<tr>
|
||||
<td align="center" style="padding:6px; width:100; padding:6px; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{$image = $purchase->product->images[0]}
|
||||
<a href="{$config->root_url}/products/{$purchase->product->url}"><img border="0" src="{$image->filename|resize:50:50}"></a>
|
||||
</td>
|
||||
<td style="padding:6px; width:250; padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
<a href="{$config->root_url}/products/{$purchase->product->url}">{$purchase->product_name}</a>
|
||||
{$purchase->variant_name}
|
||||
{if $order->paid && $purchase->variant->attachment}
|
||||
<br>
|
||||
<a href="{$config->root_url}/order/{$order->url}/{$purchase->variant->attachment}"><font color="green">Скачать {$purchase->variant->attachment}</font></a>
|
||||
{/if}
|
||||
</td>
|
||||
<td align=right style="padding:6px; text-align:right; width:150; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{$purchase->amount} {$settings->units} × {$purchase->price|convert:$currency->id} {$currency->sign}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
{if $order->discount}
|
||||
<tr>
|
||||
<td style="padding:6px; width:100; padding:6px; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;"></td>
|
||||
<td style="padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
Скидка
|
||||
</td>
|
||||
<td align=right style="padding:6px; text-align:right; width:170; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{$order->discount} %
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
|
||||
{if $order->coupon_discount>0}
|
||||
<tr>
|
||||
<td style="padding:6px; width:100; padding:6px; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;"></td>
|
||||
<td style="padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
Купон {$order->coupon_code}
|
||||
</td>
|
||||
<td align=right style="padding:6px; text-align:right; width:170; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
−{$order->coupon_discount} {$currency->sign}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
|
||||
{if $delivery && !$order->separate_delivery}
|
||||
<tr>
|
||||
<td style="padding:6px; width:100; padding:6px; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;"></td>
|
||||
<td style="padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{$delivery->name}
|
||||
</td>
|
||||
<td align="right" style="padding:6px; text-align:right; width:170; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;">
|
||||
{$order->delivery_price|convert:$currency->id} {$currency->sign}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
|
||||
<tr>
|
||||
<td style="padding:6px; width:100; padding:6px; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;"></td>
|
||||
<td style="padding:6px; background-color:#f0f0f0; border:1px solid #e0e0e0;font-family:arial;font-weight:bold;">
|
||||
Итого
|
||||
</td>
|
||||
<td align="right" style="padding:6px; text-align:right; width:170; background-color:#ffffff; border:1px solid #e0e0e0;font-family:arial;font-weight:bold;">
|
||||
{$order->total_price|convert:$currency->id} {$currency->sign}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
Вы всегда можете проверить состояние заказа по ссылке:<br>
|
||||
<a href="{$config->root_url}/order/{$order->url}">{$config->root_url}/order/{$order->url}</a>
|
||||
<br>
|
||||
13
design/default/html/email_password_remind.tpl
Normal file
13
design/default/html/email_password_remind.tpl
Normal file
@@ -0,0 +1,13 @@
|
||||
{* Письмо восстановления пароля *}
|
||||
|
||||
{$subject = 'Новый пароль' scope=parent}
|
||||
<html>
|
||||
<body>
|
||||
<p>{$user->name|escape}, на сайте <a href='http://{$config->root_url}/'>{$settings->site_name}</a> был сделан запрос на восстановление вашего пароля.</p>
|
||||
<p>Вы можете изменить пароль, перейдя по следующей ссылке:</p>
|
||||
<p><a href='{$config->root_url}/user/password_remind/{$code}'>Изменить пароль</a></p>
|
||||
<p>Эта ссылка действует в течение нескольких минут.</p>
|
||||
<p>Если это письмо пришло вам по ошибке, проигнорируйте его.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
41
design/default/html/feedback.tpl
Normal file
41
design/default/html/feedback.tpl
Normal file
@@ -0,0 +1,41 @@
|
||||
{* Страница с формой обратной связи *}
|
||||
|
||||
<h1>{$page->name|escape}</h1>
|
||||
|
||||
{$page->body}
|
||||
|
||||
<h2>Обратная связь</h2>
|
||||
|
||||
{if $message_sent}
|
||||
{$name|escape}, ваше сообщение отправлено.
|
||||
{else}
|
||||
<form class="form feedback_form" method="post">
|
||||
{if $error}
|
||||
<div class="message_error">
|
||||
{if $error=='captcha'}
|
||||
Неверно введена капча
|
||||
{elseif $error=='empty_name'}
|
||||
Введите имя
|
||||
{elseif $error=='empty_email'}
|
||||
Введите email
|
||||
{elseif $error=='empty_text'}
|
||||
Введите сообщение
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
<label>Имя</label>
|
||||
<input data-format=".+" data-notice="Введите имя" value="{$name|escape}" name="name" maxlength="255" type="text"/>
|
||||
|
||||
<label>Email</label>
|
||||
<input data-format="email" data-notice="Введите email" value="{$email|escape}" name="email" maxlength="255" type="text"/>
|
||||
|
||||
<label>Сообщение</label>
|
||||
<textarea data-format=".+" data-notice="Введите сообщение" value="{$message|escape}" name="message">{$message|escape}</textarea>
|
||||
|
||||
<input class="button" type="submit" name="feedback" value="Отправить" />
|
||||
|
||||
<div class="captcha"><img src="captcha/image.php?{math equation='rand(10,10000)'}"/></div>
|
||||
<input class="input_captcha" id="comment_captcha" type="text" name="captcha_code" value="" data-format="\d\d\d\d" data-notice="Введите капчу"/>
|
||||
|
||||
</form>
|
||||
{/if}
|
||||
268
design/default/html/index.tpl
Normal file
268
design/default/html/index.tpl
Normal file
@@ -0,0 +1,268 @@
|
||||
<!DOCTYPE html>
|
||||
{*
|
||||
Общий вид страницы
|
||||
Этот шаблон отвечает за общий вид страниц без центрального блока.
|
||||
*}
|
||||
<html>
|
||||
<head>
|
||||
<base href="{$config->root_url}/"/>
|
||||
<title>*{$meta_title|escape}</title>
|
||||
|
||||
{* Метатеги *}
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta name="description" content="{$meta_description|escape}" />
|
||||
<meta name="keywords" content="{$meta_keywords|escape}" />
|
||||
<meta name="viewport" content="width=1024"/>
|
||||
|
||||
{* Стили *}
|
||||
<link href="design/{$settings->theme|escape}/css/style.css" rel="stylesheet" type="text/css" media="screen"/>
|
||||
<link href="design/{$settings->theme|escape}/images/favicon.ico" rel="icon" type="image/x-icon"/>
|
||||
<link href="design/{$settings->theme|escape}/images/favicon.ico" rel="shortcut icon" type="image/x-icon"/>
|
||||
|
||||
{* JQuery *}
|
||||
<script src="js/jquery/jquery.js" type="text/javascript"></script>
|
||||
|
||||
{* Всплывающие подсказки для администратора *}
|
||||
{if $smarty.session.admin == 'admin'}
|
||||
<script src ="js/admintooltip/admintooltip.js" type="text/javascript"></script>
|
||||
<link href="js/admintooltip/css/admintooltip.css" rel="stylesheet" type="text/css" />
|
||||
{/if}
|
||||
|
||||
{* Увеличитель картинок *}
|
||||
<script type="text/javascript" src="js/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
|
||||
<link rel="stylesheet" href="js/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
|
||||
|
||||
{* Ctrl-навигация на соседние товары *}
|
||||
<script type="text/javascript" src="js/ctrlnavigate.js"></script>
|
||||
|
||||
{* Аяксовая корзина *}
|
||||
<script src="design/{$settings->theme}/js/jquery-ui.min.js"></script>
|
||||
<script src="design/{$settings->theme}/js/ajax_cart.js"></script>
|
||||
|
||||
{* js-проверка форм *}
|
||||
<script src="/js/baloon/js/baloon.js" type="text/javascript"></script>
|
||||
<link href="/js/baloon/css/baloon.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
{* Автозаполнитель поиска *}
|
||||
{literal}
|
||||
<script src="js/autocomplete/jquery.autocomplete-min.js" type="text/javascript"></script>
|
||||
<style>
|
||||
.autocomplete-w1 { position:absolute; top:0px; left:0px; margin:6px 0 0 6px; /* IE6 fix: */ _background:none; _margin:1px 0 0 0; }
|
||||
.autocomplete { border:1px solid #999; background:#FFF; cursor:default; text-align:left; overflow-x:auto; overflow-y: auto; margin:-6px 6px 6px -6px; /* IE6 specific: */ _height:350px; _margin:0; _overflow-x:hidden; }
|
||||
.autocomplete .selected { background:#F0F0F0; }
|
||||
.autocomplete div { padding:2px 5px; white-space:nowrap; }
|
||||
.autocomplete strong { font-weight:normal; color:#3399FF; }
|
||||
</style>
|
||||
<script>
|
||||
$(function() {
|
||||
// Автозаполнитель поиска
|
||||
$(".input_search").autocomplete({
|
||||
serviceUrl:'ajax/search_products.php',
|
||||
minChars:1,
|
||||
noCache: false,
|
||||
onSelect:
|
||||
function(value, data){
|
||||
$(".input_search").closest('form').submit();
|
||||
},
|
||||
fnFormatResult:
|
||||
function(value, data, currentValue){
|
||||
var reEscape = new RegExp('(\\' + ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g');
|
||||
var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')';
|
||||
return (data.image?"<img align=absmiddle src='"+data.image+"'> ":'') + value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<!-- Верхняя строка -->
|
||||
<div id="top_background">
|
||||
<div id="top">
|
||||
|
||||
<!-- Меню -->
|
||||
<ul id="menu">
|
||||
{foreach $pages as $p}
|
||||
{* Выводим только страницы из первого меню *}
|
||||
{if $p->menu_id == 1}
|
||||
<li {if $page && $page->id == $p->id}class="selected"{/if}>
|
||||
<a data-page="{$p->id}" href="{$p->url}">{$p->name|escape}</a>
|
||||
</li>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
<!-- Меню (The End) -->
|
||||
|
||||
<!-- Корзина -->
|
||||
<div id="cart_informer">
|
||||
{* Обновляемая аяксом корзина должна быть в отдельном файле *}
|
||||
{include file='cart_informer.tpl'}
|
||||
</div>
|
||||
<!-- Корзина (The End)-->
|
||||
|
||||
<!-- Вход пользователя -->
|
||||
<div id="account">
|
||||
{if $user}
|
||||
<span id="username">
|
||||
<a href="user">{$user->name}</a>{if $group->discount>0},
|
||||
ваша скидка — {$group->discount}%{/if}
|
||||
</span>
|
||||
<a id="logout" href="user/logout">выйти</a>
|
||||
{else}
|
||||
<a id="register" href="user/register">Регистрация</a>
|
||||
<a id="login" href="user/login">Вход</a>
|
||||
{/if}
|
||||
</div>
|
||||
<!-- Вход пользователя (The End)-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- Верхняя строка (The End)-->
|
||||
|
||||
|
||||
<!-- Шапка -->
|
||||
<div id="header">
|
||||
<div id="logo">
|
||||
<a href="/"><img src="design/{$settings->theme|escape}/images/logo.png" title="{$settings->site_name|escape}" alt="{$settings->site_name|escape}"/></a>
|
||||
</div>
|
||||
<div id="contact">
|
||||
(095) <span id="phone">545-54-54</span>
|
||||
<div id="address">Москва, шоссе Энтузиастов 45/31, офис 453</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Шапка (The End)-->
|
||||
|
||||
|
||||
<!-- Вся страница -->
|
||||
<div id="main">
|
||||
|
||||
<!-- Основная часть -->
|
||||
<div id="content">
|
||||
{$content}
|
||||
</div>
|
||||
<!-- Основная часть (The End) -->
|
||||
|
||||
<div id="left">
|
||||
|
||||
<!-- Поиск-->
|
||||
<div id="search">
|
||||
<form action="products">
|
||||
<input class="input_search" type="text" name="keyword" value="{$keyword|escape}" placeholder="Поиск товара"/>
|
||||
<input class="button_search" value="" type="submit" />
|
||||
</form>
|
||||
</div>
|
||||
<!-- Поиск (The End)-->
|
||||
|
||||
|
||||
<!-- Меню каталога -->
|
||||
|
||||
|
||||
<div id="catalog_menu">
|
||||
{* Рекурсивная функция вывода дерева категорий *}
|
||||
{function name=categories_tree}
|
||||
{if $categories}
|
||||
<ul>
|
||||
{foreach $categories as $c}
|
||||
{* Показываем только видимые категории *}
|
||||
{if $c->visible}
|
||||
<li>
|
||||
{if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}">{/if}
|
||||
<a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a>
|
||||
{categories_tree categories=$c->subcategories}
|
||||
</li>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
{/function}
|
||||
{if $category->id == $c->id}
|
||||
{if in_array($category->id, $c->children)}
|
||||
{categories_tree categories=$c->subcategories}
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
<!-- Меню каталога (The End)-->
|
||||
|
||||
|
||||
<!-- Все бренды -->
|
||||
{* Выбираем в переменную $all_brands все бренды *}
|
||||
{get_brands var=all_brands}
|
||||
{if $all_brands}
|
||||
<div id="all_brands">
|
||||
<h2>Все бренды:</h2>
|
||||
{foreach $all_brands as $b}
|
||||
{if $b->image}
|
||||
<a href="brands/{$b->url}"><img src="{$config->brands_images_dir}{$b->image}" alt="{$b->name|escape}"></a>
|
||||
{else}
|
||||
<a href="brands/{$b->url}">{$b->name}</a>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
<!-- Все бренды (The End)-->
|
||||
|
||||
<!-- Выбор валюты -->
|
||||
{* Выбор валюты только если их больше одной *}
|
||||
{if $currencies|count>1}
|
||||
<div id="currencies">
|
||||
<h2>Валюта</h2>
|
||||
<ul>
|
||||
{foreach from=$currencies item=c}
|
||||
{if $c->enabled}
|
||||
<li class="{if $c->id==$currency->id}selected{/if}"><a href='{url currency_id=$c->id}'>{$c->name|escape}</a></li>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
<!-- Выбор валюты (The End) -->
|
||||
|
||||
|
||||
<!-- Просмотренные товары -->
|
||||
{get_browsed_products var=browsed_products limit=20}
|
||||
{if $browsed_products}
|
||||
|
||||
<h2>Вы просматривали:</h2>
|
||||
<ul id="browsed_products">
|
||||
{foreach $browsed_products as $browsed_product}
|
||||
<li>
|
||||
<a href="products/{$browsed_product->url}"><img src="{$browsed_product->image->filename|resize:50:50}" alt="{$browsed_product->name}" title="{$browsed_product->name}"></a>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
<!-- Просмотренные товары (The End)-->
|
||||
|
||||
|
||||
<!-- Меню блога -->
|
||||
{* Выбираем в переменную $last_posts последние записи *}
|
||||
{get_posts var=last_posts limit=5}
|
||||
{if $last_posts}
|
||||
<div id="blog_menu">
|
||||
<h2>Новые записи в <a href="blog">блоге</a></h2>
|
||||
{foreach $last_posts as $post}
|
||||
<ul>
|
||||
<li data-post="{$post->id}">{$post->date|date} <a href="blog/{$post->url}">{$post->name|escape}</a></li>
|
||||
</ul>
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
<!-- Меню блога (The End) -->
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- Вся страница (The End)-->
|
||||
|
||||
<!-- Футер -->
|
||||
<div id="footer">
|
||||
<a href="{$config->root_url}">{$settings->site_name|escape}</a>
|
||||
</div>
|
||||
<!-- Футер (The End)-->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
22
design/default/html/login.tpl
Normal file
22
design/default/html/login.tpl
Normal file
@@ -0,0 +1,22 @@
|
||||
{* Страница входа пользователя *}
|
||||
{$meta_title = "Вход" scope=parent}
|
||||
|
||||
<h1>Вход</h1>
|
||||
|
||||
{if $error}
|
||||
<div class="message_error">
|
||||
{if $error == 'login_incorrect'}Неверный логин или пароль
|
||||
{elseif $error == 'user_disabled'}Ваш аккаунт еще не активирован.
|
||||
{else}{$error}{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<form class="form login_form" method="post">
|
||||
<label>Email</label>
|
||||
<input type="text" name="email" data-format="email" data-notice="Введите email" value="{$email|escape}" maxlength="255" />
|
||||
|
||||
<label>Пароль (<a href="user/password_remind">напомнить</a>)</label>
|
||||
<input type="password" name="password" data-format=".+" data-notice="Введите пароль" value="" />
|
||||
|
||||
<input type="submit" class="button" name="login" value="Войти">
|
||||
</form>
|
||||
184
design/default/html/main.tpl
Normal file
184
design/default/html/main.tpl
Normal file
@@ -0,0 +1,184 @@
|
||||
{* Главная страница магазина *}
|
||||
|
||||
{* Для того чтобы обернуть центральный блок в шаблон, отличный от index.tpl *}
|
||||
{* Укажите нужный шаблон строкой ниже. Это работает и для других модулей *}
|
||||
{$wrapper = 'index.tpl' scope=parent}
|
||||
|
||||
{* Заголовок страницы *}
|
||||
<h1>{$page->header}</h1>
|
||||
|
||||
{* Тело страницы *}
|
||||
{$page->body}
|
||||
|
||||
|
||||
{* Рекомендуемые товары *}
|
||||
{get_featured_products var=featured_products}
|
||||
{if $featured_products}
|
||||
<!-- Список товаров-->
|
||||
<h1>Рекомендуемые товары</h1>
|
||||
<ul class="tiny_products">
|
||||
|
||||
{foreach $featured_products as $product}
|
||||
<!-- Товар-->
|
||||
<li class="product">
|
||||
|
||||
<!-- Фото товара -->
|
||||
{if $product->image}
|
||||
<div class="image">
|
||||
<a href="products/{$product->url}"><img src="{$product->image->filename|resize:200:200}" alt="{$product->name|escape}"/></a>
|
||||
</div>
|
||||
{/if}
|
||||
<!-- Фото товара (The End) -->
|
||||
|
||||
<!-- Название товара -->
|
||||
<h3><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></h3>
|
||||
<!-- Название товара (The End) -->
|
||||
|
||||
|
||||
{if $product->variants|count > 0}
|
||||
<!-- Выбор варианта товара -->
|
||||
<form class="variants" action="/cart">
|
||||
<table>
|
||||
{foreach $product->variants as $v}
|
||||
<tr class="variant">
|
||||
<td>
|
||||
<input id="featured_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $v@first}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>
|
||||
</td>
|
||||
<td>
|
||||
{if $v->name}<label class="variant_name" for="featured_{$v->id}">{$v->name}</label>{/if}
|
||||
</td>
|
||||
<td>
|
||||
{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
|
||||
<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
<input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>
|
||||
</form>
|
||||
<!-- Выбор варианта товара (The End) -->
|
||||
{else}
|
||||
Нет в наличии
|
||||
{/if}
|
||||
|
||||
</li>
|
||||
<!-- Товар (The End)-->
|
||||
{/foreach}
|
||||
|
||||
</ul>
|
||||
{/if}
|
||||
|
||||
|
||||
{* Новинки *}
|
||||
{get_new_products var=new_products limit=3}
|
||||
{if $new_products}
|
||||
<h1>Новинки</h1>
|
||||
<!-- Список товаров-->
|
||||
<ul class="tiny_products">
|
||||
|
||||
{foreach $new_products as $product}
|
||||
|
||||
<!-- Товар-->
|
||||
<li class="product">
|
||||
|
||||
<!-- Фото товара -->
|
||||
{if $product->image}
|
||||
<div class="image">
|
||||
<a href="products/{$product->url}"><img src="{$product->image->filename|resize:200:200}" alt="{$product->name|escape}"/></a>
|
||||
</div>
|
||||
{/if}
|
||||
<!-- Фото товара (The End) -->
|
||||
|
||||
<!-- Название товара -->
|
||||
<h3><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></h3>
|
||||
<!-- Название товара (The End) -->
|
||||
|
||||
{if $product->variants|count > 0}
|
||||
<!-- Выбор варианта товара -->
|
||||
<form class="variants" action="/cart">
|
||||
<table>
|
||||
{foreach $product->variants as $v}
|
||||
<tr class="variant">
|
||||
<td>
|
||||
<input id="new_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $v@first}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>
|
||||
</td>
|
||||
<td>
|
||||
{if $v->name}<label class="variant_name" for="new_{$v->id}">{$v->name}</label>{/if}
|
||||
</td>
|
||||
<td>
|
||||
{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
|
||||
<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
<input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>
|
||||
</form>
|
||||
<!-- Выбор варианта товара (The End) -->
|
||||
{else}
|
||||
Нет в наличии
|
||||
{/if}
|
||||
|
||||
</li>
|
||||
<!-- Товар (The End)-->
|
||||
{/foreach}
|
||||
|
||||
</ul>
|
||||
{/if}
|
||||
|
||||
|
||||
{* Акционные товары *}
|
||||
{get_discounted_products var=discounted_products limit=9}
|
||||
{if $discounted_products}
|
||||
<h1>Акционные товары</h1>
|
||||
<!-- Список товаров-->
|
||||
<ul class="tiny_products">
|
||||
|
||||
{foreach $discounted_products as $product}
|
||||
<!-- Товар-->
|
||||
<li class="product">
|
||||
|
||||
<!-- Фото товара -->
|
||||
{if $product->image}
|
||||
<div class="image">
|
||||
<a href="products/{$product->url}"><img src="{$product->image->filename|resize:200:200}" alt="{$product->name|escape}"/></a>
|
||||
</div>
|
||||
{/if}
|
||||
<!-- Фото товара (The End) -->
|
||||
|
||||
<!-- Название товара -->
|
||||
<h3><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></h3>
|
||||
<!-- Название товара (The End) -->
|
||||
|
||||
{if $product->variants|count > 0}
|
||||
<!-- Выбор варианта товара -->
|
||||
<form class="variants" action="/cart">
|
||||
<table>
|
||||
{foreach $product->variants as $v}
|
||||
<tr class="variant">
|
||||
<td>
|
||||
<input id="discounted_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $v@first}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>
|
||||
</td>
|
||||
<td>
|
||||
{if $v->name}<label class="variant_name" for="discounted_{$v->id}">{$v->name}</label>{/if}
|
||||
</td>
|
||||
<td>
|
||||
{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
|
||||
<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
<input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>
|
||||
</form>
|
||||
<!-- Выбор варианта товара (The End) -->
|
||||
{else}
|
||||
Нет в наличии
|
||||
{/if}
|
||||
|
||||
</li>
|
||||
<!-- Товар (The End)-->
|
||||
{/foreach}
|
||||
|
||||
</ul>
|
||||
{/if}
|
||||
215
design/default/html/order.tpl
Normal file
215
design/default/html/order.tpl
Normal file
@@ -0,0 +1,215 @@
|
||||
{* Страница заказа *}
|
||||
|
||||
{$meta_title = "Ваш заказ №`$order->id`" scope=parent}
|
||||
|
||||
<h1>Ваш заказ №{$order->id}
|
||||
{if $order->status == 0}принят{/if}
|
||||
{if $order->status == 1}в обработке{elseif $order->status == 2}выполнен{/if}
|
||||
{if $order->paid == 1}, оплачен{else}{/if}
|
||||
</h1>
|
||||
|
||||
{* Список покупок *}
|
||||
<table id="purchases">
|
||||
|
||||
{foreach $purchases as $purchase}
|
||||
<tr>
|
||||
{* Изображение товара *}
|
||||
<td class="image">
|
||||
{$image = $purchase->product->images|first}
|
||||
{if $image}
|
||||
<a href="products/{$purchase->product->url}"><img src="{$image->filename|resize:50:50}" alt="{$product->name|escape}"></a>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
{* Название товара *}
|
||||
<td class="name">
|
||||
<a href="/products/{$purchase->product->url}">{$purchase->product_name|escape}</a>
|
||||
{$purchase->variant_name|escape}
|
||||
{if $order->paid && $purchase->variant->attachment}
|
||||
<a class="download_attachment" href="order/{$order->url}/{$purchase->variant->attachment}">скачать файл</a>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
{* Цена за единицу *}
|
||||
<td class="price">
|
||||
{($purchase->price)|convert} {$currency->sign}
|
||||
</td>
|
||||
|
||||
{* Количество *}
|
||||
<td class="amount">
|
||||
× {$purchase->amount} {$settings->units}
|
||||
</td>
|
||||
|
||||
{* Цена *}
|
||||
<td class="price">
|
||||
{($purchase->price*$purchase->amount)|convert} {$currency->sign}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
{* Скидка, если есть *}
|
||||
{if $order->discount > 0}
|
||||
<tr>
|
||||
<th class="image"></th>
|
||||
<th class="name">скидка</th>
|
||||
<th class="price"></th>
|
||||
<th class="amount"></th>
|
||||
<th class="price">
|
||||
{$order->discount} %
|
||||
</th>
|
||||
</tr>
|
||||
{/if}
|
||||
{* Купон, если есть *}
|
||||
{if $order->coupon_discount > 0}
|
||||
<tr>
|
||||
<th class="image"></th>
|
||||
<th class="name">купон</th>
|
||||
<th class="price"></th>
|
||||
<th class="amount"></th>
|
||||
<th class="price">
|
||||
−{$order->coupon_discount|convert} {$currency->sign}
|
||||
</th>
|
||||
</tr>
|
||||
{/if}
|
||||
{* Если стоимость доставки входит в сумму заказа *}
|
||||
{if !$order->separate_delivery && $order->delivery_price>0}
|
||||
<tr>
|
||||
<td class="image>"</td>
|
||||
<td class="name">{$delivery->name|escape}</td>
|
||||
<td class="price"></td>
|
||||
<td class="amount"></td>
|
||||
<td class="price">
|
||||
{$order->delivery_price|convert} {$currency->sign}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{* Итого *}
|
||||
<tr>
|
||||
<th class="image"></th>
|
||||
<th class="name">итого</th>
|
||||
<th class="price"></th>
|
||||
<th class="amount"></th>
|
||||
<th class="price">
|
||||
{$order->total_price|convert} {$currency->sign}
|
||||
</th>
|
||||
</tr>
|
||||
{* Если стоимость доставки не входит в сумму заказа *}
|
||||
{if $order->separate_delivery}
|
||||
<tr>
|
||||
<td class="image>"</td>
|
||||
<td class="name">{$delivery->name|escape}</td>
|
||||
<td class="price"></td>
|
||||
<td class="amount"></td>
|
||||
<td class="price">
|
||||
{$order->delivery_price|convert} {$currency->sign}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
|
||||
</table>
|
||||
|
||||
{* Детали заказа *}
|
||||
<h2>Детали заказа</h2>
|
||||
<table class="order_info">
|
||||
<tr>
|
||||
<td>
|
||||
Дата заказа
|
||||
</td>
|
||||
<td>
|
||||
{$order->date|date} в
|
||||
{$order->date|time}
|
||||
</td>
|
||||
</tr>
|
||||
{if $order->name}
|
||||
<tr>
|
||||
<td>
|
||||
Имя
|
||||
</td>
|
||||
<td>
|
||||
{$order->name|escape}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $order->email}
|
||||
<tr>
|
||||
<td>
|
||||
Email
|
||||
</td>
|
||||
<td>
|
||||
{$order->email|escape}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $order->phone}
|
||||
<tr>
|
||||
<td>
|
||||
Телефон
|
||||
</td>
|
||||
<td>
|
||||
{$order->phone|escape}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $order->address}
|
||||
<tr>
|
||||
<td>
|
||||
Адрес доставки
|
||||
</td>
|
||||
<td>
|
||||
{$order->address|escape}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{if $order->comment}
|
||||
<tr>
|
||||
<td>
|
||||
Комментарий
|
||||
</td>
|
||||
<td>
|
||||
{$order->comment|escape|nl2br}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
</table>
|
||||
|
||||
|
||||
{if !$order->paid}
|
||||
{* Выбор способа оплаты *}
|
||||
{if $payment_methods && !$payment_method && $order->total_price>0}
|
||||
<form method="post">
|
||||
<h2>Выберите способ оплаты</h2>
|
||||
<ul id="deliveries">
|
||||
{foreach $payment_methods as $payment_method}
|
||||
<li>
|
||||
<div class="checkbox">
|
||||
<input type=radio name=payment_method_id value='{$payment_method->id}' {if $payment_method@first}checked{/if} id=payment_{$payment_method->id}>
|
||||
</div>
|
||||
<h3><label for=payment_{$payment_method->id}> {$payment_method->name}, к оплате {$order->total_price|convert:$payment_method->currency_id} {$all_currencies[$payment_method->currency_id]->sign}</label></h3>
|
||||
<div class="description">
|
||||
{$payment_method->description}
|
||||
</div>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<input type='submit' class="button" value='Закончить заказ'>
|
||||
</form>
|
||||
|
||||
{* Выбраный способ оплаты *}
|
||||
{elseif $payment_method}
|
||||
<h2>Способ оплаты — {$payment_method->name}
|
||||
<form method=post><input type=submit name='reset_payment_method' value='Выбрать другой способ оплаты'></form>
|
||||
</h2>
|
||||
<p>
|
||||
{$payment_method->description}
|
||||
</p>
|
||||
<h2>
|
||||
К оплате {$order->total_price|convert:$payment_method->currency_id} {$all_currencies[$payment_method->currency_id]->sign}
|
||||
</h2>
|
||||
|
||||
{* Форма оплаты, генерируется модулем оплаты *}
|
||||
{checkout_form order_id=$order->id module=$payment_method->module}
|
||||
{/if}
|
||||
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
7
design/default/html/page.tpl
Normal file
7
design/default/html/page.tpl
Normal file
@@ -0,0 +1,7 @@
|
||||
{* Шаблон текстовой страницы *}
|
||||
|
||||
<!-- Заголовок страницы -->
|
||||
<h1 data-page="{$page->id}">{$page->header|escape}</h1>
|
||||
|
||||
<!-- Тело страницы -->
|
||||
{$page->body}
|
||||
55
design/default/html/pagination.tpl
Normal file
55
design/default/html/pagination.tpl
Normal file
@@ -0,0 +1,55 @@
|
||||
{* Постраничный вывод *}
|
||||
|
||||
{if $total_pages_num>1}
|
||||
{* Скрипт для листания через ctrl → *}
|
||||
{* Ссылки на соседние страницы должны иметь id PrevLink и NextLink *}
|
||||
<script type="text/javascript" src="js/ctrlnavigate.js"></script>
|
||||
|
||||
<!-- Листалка страниц -->
|
||||
<div class="pagination">
|
||||
|
||||
{* Количество выводимых ссылок на страницы *}
|
||||
{$visible_pages = 11}
|
||||
|
||||
{* По умолчанию начинаем вывод со страницы 1 *}
|
||||
{$page_from = 1}
|
||||
|
||||
{* Если выбранная пользователем страница дальше середины "окна" - начинаем вывод уже не с первой *}
|
||||
{if $current_page_num > floor($visible_pages/2)}
|
||||
{$page_from = max(1, $current_page_num-floor($visible_pages/2)-1)}
|
||||
{/if}
|
||||
|
||||
{* Если выбранная пользователем страница близка к концу навигации - начинаем с "конца-окно" *}
|
||||
{if $current_page_num > $total_pages_num-ceil($visible_pages/2)}
|
||||
{$page_from = max(1, $total_pages_num-$visible_pages-1)}
|
||||
{/if}
|
||||
|
||||
{* До какой страницы выводить - выводим всё окно, но не более ощего количества страниц *}
|
||||
{$page_to = min($page_from+$visible_pages, $total_pages_num-1)}
|
||||
|
||||
{* Ссылка на 1 страницу отображается всегда *}
|
||||
<a {if $current_page_num==1}class="selected"{/if} href="{url page=null}">1</a>
|
||||
|
||||
{* Выводим страницы нашего "окна" *}
|
||||
{section name=pages loop=$page_to start=$page_from}
|
||||
{* Номер текущей выводимой страницы *}
|
||||
{$p = $smarty.section.pages.index+1}
|
||||
{* Для крайних страниц "окна" выводим троеточие, если окно не возле границы навигации *}
|
||||
{if ($p == $page_from+1 && $p!=2) || ($p == $page_to && $p != $total_pages_num-1)}
|
||||
<a {if $p==$current_page_num}class="selected"{/if} href="{url page=$p}">...</a>
|
||||
{else}
|
||||
<a {if $p==$current_page_num}class="selected"{/if} href="{url page=$p}">{$p}</a>
|
||||
{/if}
|
||||
{/section}
|
||||
|
||||
{* Ссылка на последнююю страницу отображается всегда *}
|
||||
<a {if $current_page_num==$total_pages_num}class="selected"{/if} href="{url page=$total_pages_num}">{$total_pages_num}</a>
|
||||
|
||||
<a href="{url page=all}">все сразу</a>
|
||||
{if $current_page_num==2}<a class="prev_page_link" href="{url page=null}">←назад</a>{/if}
|
||||
{if $current_page_num>2}<a class="prev_page_link" href="{url page=$current_page_num-1}">←назад</a>{/if}
|
||||
{if $current_page_num<$total_pages_num}<a class="next_page_link" href="{url page=$current_page_num+1}">вперед→</a>{/if}
|
||||
|
||||
</div>
|
||||
<!-- Листалка страниц (The End) -->
|
||||
{/if}
|
||||
22
design/default/html/password_remind.tpl
Normal file
22
design/default/html/password_remind.tpl
Normal file
@@ -0,0 +1,22 @@
|
||||
{* Письмо пользователю для восстановления пароля *}
|
||||
|
||||
{if $email_sent}
|
||||
<h1>Вам отправлено письмо</h1>
|
||||
|
||||
<p>На {$email|escape} отправлено письмо для восстановления пароля.</p>
|
||||
{else}
|
||||
<h1>Напоминание пароля</h1>
|
||||
|
||||
{if $error}
|
||||
<div class="message_error">
|
||||
{if $error == 'user_not_found'}Пользователь не найден
|
||||
{else}{$error}{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<form class="form" method="post">
|
||||
<label>Введите email, который вы указывали при регистрации</label>
|
||||
<input type="text" name="email" data-format="email" data-notice="Введите email" value="{$email|escape}" maxlength="255"/>
|
||||
<input type="submit" class="button_submit" value="Вспомнить" />
|
||||
</form>
|
||||
{/if}
|
||||
88
design/default/html/post.tpl
Normal file
88
design/default/html/post.tpl
Normal file
@@ -0,0 +1,88 @@
|
||||
{* Страница отдельной записи блога *}
|
||||
|
||||
<!-- Заголовок /-->
|
||||
<h1 data-post="{$post->id}">{$post->name|escape}</h1>
|
||||
<p>{$post->date|date}</p>
|
||||
|
||||
<!-- Тело поста /-->
|
||||
{$post->text}
|
||||
|
||||
<!-- Соседние записи /-->
|
||||
<div id="back_forward">
|
||||
{if $prev_post}
|
||||
← <a class="prev_page_link" href="blog/{$prev_post->url}">{$prev_post->name}</a>
|
||||
{/if}
|
||||
{if $next_post}
|
||||
<a class="next_page_link" href="blog/{$next_post->url}">{$next_post->name}</a> →
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<!-- Комментарии -->
|
||||
<div id="comments">
|
||||
|
||||
<h2>Комментарии</h2>
|
||||
|
||||
{if $comments}
|
||||
<!-- Список с комментариями -->
|
||||
<ul class="comment_list">
|
||||
{foreach $comments as $comment}
|
||||
<a name="comment_{$comment->id}"></a>
|
||||
<li>
|
||||
<!-- Имя и дата комментария-->
|
||||
<div class="comment_header">
|
||||
{$comment->name|escape} <i>{$comment->date|date}, {$comment->date|time}</i>
|
||||
{if !$comment->approved}ожидает модерации</b>{/if}
|
||||
</div>
|
||||
<!-- Имя и дата комментария (The End)-->
|
||||
|
||||
<!-- Комментарий -->
|
||||
{$comment->text|escape|nl2br}
|
||||
<!-- Комментарий (The End)-->
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<!-- Список с комментариями (The End)-->
|
||||
{else}
|
||||
<p>
|
||||
Пока нет комментариев
|
||||
</p>
|
||||
{/if}
|
||||
|
||||
<!--Форма отправления комментария-->
|
||||
|
||||
<!--Подключаем js-проверку формы -->
|
||||
<script src="/js/baloon/js/default.js" language="JavaScript" type="text/javascript"></script>
|
||||
<script src="/js/baloon/js/validate.js" language="JavaScript" type="text/javascript"></script>
|
||||
<script src="/js/baloon/js/baloon.js" language="JavaScript" type="text/javascript"></script>
|
||||
<link href="/js/baloon/css/baloon.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<form class="comment_form" method="post" action="">
|
||||
<h2>Написать комментарий</h2>
|
||||
{if $error}
|
||||
<div class="message_error">
|
||||
{if $error=='captcha'}
|
||||
Неверно введена капча
|
||||
{elseif $error=='empty_name'}
|
||||
Введите имя
|
||||
{elseif $error=='empty_comment'}
|
||||
Введите комментарий
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
<textarea class="comment_textarea" id="comment_text" name="text" data-format=".+" data-notice="Введите комментарий">{$comment_text}</textarea><br />
|
||||
<div>
|
||||
<label for="comment_name">Имя</label>
|
||||
<input class="input_name" type="text" id="comment_name" name="name" value="{$comment_name|escape}" data-format=".+" data-notice="Введите имя"/><br />
|
||||
|
||||
<input class="button" type="submit" name="comment" value="Отправить" />
|
||||
|
||||
<label for="comment_captcha">Число</label>
|
||||
<div class="captcha"><img src="captcha/image.php?{math equation='rand(10,10000)'}"/></div>
|
||||
<input class="input_captcha" id="comment_captcha" type="text" name="captcha_code" value="" data-format="\d\d\d\d" data-notice="Введите капчу"/>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
<!--Форма отправления комментария (The End)-->
|
||||
|
||||
</div>
|
||||
<!-- Комментарии (The End) -->
|
||||
228
design/default/html/product.tpl
Normal file
228
design/default/html/product.tpl
Normal file
@@ -0,0 +1,228 @@
|
||||
{* Страница товара *}
|
||||
|
||||
<!-- Хлебные крошки /-->
|
||||
<div id="path">
|
||||
<a href="./">Главная</a>
|
||||
{foreach from=$category->path item=cat}
|
||||
→ <a href="catalog/{$cat->url}">{$cat->name|escape}</a>
|
||||
{/foreach}
|
||||
{if $brand}
|
||||
→ <a href="catalog/{$cat->url}/{$brand->url}">{$brand->name|escape}</a>
|
||||
{/if}
|
||||
→ {$product->name|escape}
|
||||
</div>
|
||||
<!-- Хлебные крошки #End /-->
|
||||
|
||||
<h1 data-product="{$product->id}">{$product->name|escape}</h1>
|
||||
|
||||
<div class="product">
|
||||
|
||||
<!-- Большое фото -->
|
||||
{if $product->image}
|
||||
<div class="image">
|
||||
<a href="{$product->image->filename|resize:800:600:w}" class="zoom" data-rel="group"><img src="{$product->image->filename|resize:300:300}" alt="{$product->product->name|escape}" /></a>
|
||||
</div>
|
||||
{/if}
|
||||
<!-- Большое фото (The End)-->
|
||||
|
||||
<!-- Описание товара -->
|
||||
<div class="description">
|
||||
|
||||
{$product->body}
|
||||
|
||||
{if $product->variants|count > 0}
|
||||
<!-- Выбор варианта товара -->
|
||||
<form class="variants" action="/cart">
|
||||
<table>
|
||||
{foreach $product->variants as $v}
|
||||
<tr class="variant">
|
||||
<td>
|
||||
<input id="product_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $product->variant->id==$v->id}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>
|
||||
</td>
|
||||
<td>
|
||||
{if $v->name}<label class="variant_name" for="product_{$v->id}">{$v->name}</label>{/if}
|
||||
</td>
|
||||
<td>
|
||||
{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
|
||||
<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
<input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>
|
||||
</form>
|
||||
<!-- Выбор варианта товара (The End) -->
|
||||
{else}
|
||||
Нет в наличии
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
<!-- Описание товара (The End)-->
|
||||
|
||||
<!-- Дополнительные фото продукта -->
|
||||
{if $product->images|count>1}
|
||||
<div class="images">
|
||||
{* cut удаляет первую фотографию, если нужно начать 2-й - пишем cut:2 и тд *}
|
||||
{foreach $product->images|cut as $i=>$image}
|
||||
<a href="{$image->filename|resize:800:600:w}" class="zoom" data-rel="group"><img src="{$image->filename|resize:95:95}" alt="{$product->name|escape}" /></a>
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
<!-- Дополнительные фото продукта (The End)-->
|
||||
|
||||
<p> </p>
|
||||
{if $product->features}
|
||||
<!-- Характеристики товара -->
|
||||
<h2>Характеристики</h2>
|
||||
<ul class="features">
|
||||
{foreach $product->features as $f}
|
||||
<li>
|
||||
<label>{$f->name}</label>
|
||||
<span>{$f->value}</span>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<!-- Характеристики товара (The End)-->
|
||||
{/if}
|
||||
|
||||
<!-- Соседние товары /-->
|
||||
<div id="back_forward">
|
||||
{if $prev_product}
|
||||
← <a class="prev_page_link" href="products/{$prev_product->url}">{$prev_product->name|escape}</a>
|
||||
{/if}
|
||||
{if $next_product}
|
||||
<a class="next_page_link" href="products/{$next_product->url}">{$next_product->name|escape}</a> →
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- Описание товара (The End)-->
|
||||
|
||||
{* Связанные товары *}
|
||||
{if $related_products}
|
||||
<h2>Так же советуем посмотреть</h2>
|
||||
<!-- Список каталога товаров-->
|
||||
<ul class="tiny_products">
|
||||
{foreach $related_products as $product}
|
||||
<!-- Товар-->
|
||||
<li class="product">
|
||||
|
||||
<!-- Фото товара -->
|
||||
{if $product->image}
|
||||
<div class="image">
|
||||
<a href="products/{$product->url}"><img src="{$product->image->filename|resize:200:200}" alt="{$product->name|escape}"/></a>
|
||||
</div>
|
||||
{/if}
|
||||
<!-- Фото товара (The End) -->
|
||||
|
||||
<!-- Название товара -->
|
||||
<h3><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></h3>
|
||||
<!-- Название товара (The End) -->
|
||||
|
||||
{if $product->variants|count > 0}
|
||||
<!-- Выбор варианта товара -->
|
||||
<form class="variants" action="/cart">
|
||||
<table>
|
||||
{foreach $product->variants as $v}
|
||||
<tr class="variant">
|
||||
<td>
|
||||
<input id="related_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $v@first}checked{/if} {if $product->variants|count<2} style="display:none;"{/if}/>
|
||||
</td>
|
||||
<td>
|
||||
{if $v->name}<label class="variant_name" for="related_{$v->id}">{$v->name}</label>{/if}
|
||||
</td>
|
||||
<td>
|
||||
{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
|
||||
<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
<input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>
|
||||
</form>
|
||||
<!-- Выбор варианта товара (The End) -->
|
||||
{else}
|
||||
Нет в наличии
|
||||
{/if}
|
||||
|
||||
|
||||
</li>
|
||||
<!-- Товар (The End)-->
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
|
||||
<!-- Комментарии -->
|
||||
<div id="comments">
|
||||
|
||||
<h2>Комментарии</h2>
|
||||
|
||||
{if $comments}
|
||||
<!-- Список с комментариями -->
|
||||
<ul class="comment_list">
|
||||
{foreach $comments as $comment}
|
||||
<a name="comment_{$comment->id}"></a>
|
||||
<li>
|
||||
<!-- Имя и дата комментария-->
|
||||
<div class="comment_header">
|
||||
{$comment->name|escape} <i>{$comment->date|date}, {$comment->date|time}</i>
|
||||
{if !$comment->approved}ожидает модерации</b>{/if}
|
||||
</div>
|
||||
<!-- Имя и дата комментария (The End)-->
|
||||
|
||||
<!-- Комментарий -->
|
||||
{$comment->text|escape|nl2br}
|
||||
<!-- Комментарий (The End)-->
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<!-- Список с комментариями (The End)-->
|
||||
{else}
|
||||
<p>
|
||||
Пока нет комментариев
|
||||
</p>
|
||||
{/if}
|
||||
|
||||
<!--Форма отправления комментария-->
|
||||
<form class="comment_form" method="post">
|
||||
<h2>Написать комментарий</h2>
|
||||
{if $error}
|
||||
<div class="message_error">
|
||||
{if $error=='captcha'}
|
||||
Неверно введена капча
|
||||
{elseif $error=='empty_name'}
|
||||
Введите имя
|
||||
{elseif $error=='empty_comment'}
|
||||
Введите комментарий
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
<textarea class="comment_textarea" id="comment_text" name="text" data-format=".+" data-notice="Введите комментарий">{$comment_text}</textarea><br />
|
||||
<div>
|
||||
<label for="comment_name">Имя</label>
|
||||
<input class="input_name" type="text" id="comment_name" name="name" value="{$comment_name}" data-format=".+" data-notice="Введите имя"/><br />
|
||||
|
||||
<input class="button" type="submit" name="comment" value="Отправить" />
|
||||
|
||||
<label for="comment_captcha">Число</label>
|
||||
<div class="captcha"><img src="captcha/image.php?{math equation='rand(10,10000)'}" alt='captcha'/></div>
|
||||
<input class="input_captcha" id="comment_captcha" type="text" name="captcha_code" value="" data-format="\d\d\d\d" data-notice="Введите капчу"/>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
<!--Форма отправления комментария (The End)-->
|
||||
|
||||
</div>
|
||||
<!-- Комментарии (The End) -->
|
||||
|
||||
{literal}
|
||||
<script>
|
||||
$(function() {
|
||||
// Раскраска строк характеристик
|
||||
$(".features li:even").addClass('even');
|
||||
|
||||
// Зум картинок
|
||||
$("a.zoom").fancybox({ 'hideOnContentClick' : true });
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
158
design/default/html/products.tpl
Normal file
158
design/default/html/products.tpl
Normal file
@@ -0,0 +1,158 @@
|
||||
{* Список товаров *}
|
||||
|
||||
<!-- Хлебные крошки /-->
|
||||
<div id="path">
|
||||
<a href="/">Главная</a>
|
||||
{if $category}
|
||||
{foreach from=$category->path item=cat}
|
||||
→ <a href="catalog/{$cat->url}">{$cat->name|escape}</a>
|
||||
{/foreach}
|
||||
{if $brand}
|
||||
→ <a href="catalog/{$cat->url}/{$brand->url}">{$brand->name|escape}</a>
|
||||
{/if}
|
||||
{elseif $brand}
|
||||
→ <a href="brands/{$brand->url}">{$brand->name|escape}</a>
|
||||
{elseif $keyword}
|
||||
→ Поиск
|
||||
{/if}
|
||||
</div>
|
||||
<!-- Хлебные крошки #End /-->
|
||||
|
||||
|
||||
{* Заголовок страницы *}
|
||||
{if $keyword}
|
||||
<h1>Поиск {$keyword|escape}</h1>
|
||||
{elseif $page}
|
||||
<h1>{$page->name|escape}</h1>
|
||||
{else}
|
||||
<h1>{$category->name|escape} {$brand->name|escape} {$keyword|escape}</h1>
|
||||
{/if}
|
||||
|
||||
|
||||
{* Описание страницы (если задана) *}
|
||||
{$page->body}
|
||||
|
||||
{if $current_page_num==1}
|
||||
{* Описание категории *}
|
||||
{$category->description}
|
||||
{/if}
|
||||
|
||||
{* Фильтр по брендам *}
|
||||
{if $category->brands}
|
||||
<div id="brands">
|
||||
<a href="catalog/{$category->url}" {if !$brand->id}class="selected"{/if}>Все бренды</a>
|
||||
{foreach name=brands item=b from=$category->brands}
|
||||
{if $b->image}
|
||||
<a data-brand="{$b->id}" href="catalog/{$category->url}/{$b->url}"><img src="{$config->brands_images_dir}{$b->image}" alt="{$b->name|escape}"></a>
|
||||
{else}
|
||||
<a data-brand="{$b->id}" href="catalog/{$category->url}/{$b->url}" {if $b->id == $brand->id}class="selected"{/if}>{$b->name|escape}</a>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* Описание бренда *}
|
||||
{$brand->description}
|
||||
|
||||
{* Фильтр по свойствам *}
|
||||
{if $features}
|
||||
<table id="features">
|
||||
{foreach $features as $f}
|
||||
<tr>
|
||||
<td class="feature_name" data-feature="{$f->id}">
|
||||
{$f->name}:
|
||||
</td>
|
||||
<td class="feature_values">
|
||||
<a href="{url params=[$f->id=>null, page=>null]}" {if !$smarty.get.$f@key}class="selected"{/if}>Все</a>
|
||||
{foreach $f->options as $o}
|
||||
<a href="{url params=[$f->id=>$o->value, page=>null]}" {if $smarty.get.$f@key == $o->value}class="selected"{/if}>{$o->value|escape}</a>
|
||||
{/foreach}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
{/if}
|
||||
|
||||
|
||||
<!--Каталог товаров-->
|
||||
{if $products}
|
||||
|
||||
{* Сортировка *}
|
||||
{if $products|count>0}
|
||||
<div class="sort">
|
||||
Сортировать по
|
||||
<a {if $sort=='position'} class="selected"{/if} href="{url sort=position page=null}">умолчанию</a>
|
||||
<a {if $sort=='price'} class="selected"{/if} href="{url sort=price page=null}">цене</a>
|
||||
<a {if $sort=='name'} class="selected"{/if} href="{url sort=name page=null}">названию</a>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
{include file='pagination.tpl'}
|
||||
|
||||
|
||||
<!-- Список товаров-->
|
||||
<ul class="products">
|
||||
|
||||
{foreach $products as $product}
|
||||
<!-- Товар-->
|
||||
<li class="product">
|
||||
|
||||
<!-- Фото товара -->
|
||||
{if $product->image}
|
||||
<div class="image">
|
||||
<a href="products/{$product->url}"><img src="{$product->image->filename|resize:200:200}" alt="{$product->name|escape}"/></a>
|
||||
</div>
|
||||
{/if}
|
||||
<!-- Фото товара (The End) -->
|
||||
|
||||
<div class="product_info">
|
||||
<!-- Название товара -->
|
||||
<h3 class="{if $product->featured}featured{/if}"><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></h3>
|
||||
<!-- Название товара (The End) -->
|
||||
|
||||
<!-- Описание товара -->
|
||||
<div class="annotation">{$product->annotation}</div>
|
||||
<!-- Описание товара (The End) -->
|
||||
|
||||
{if $product->variants|count > 0}
|
||||
<!-- Выбор варианта товара -->
|
||||
<form class="variants" action="/cart">
|
||||
<table>
|
||||
{foreach $product->variants as $v}
|
||||
<tr class="variant">
|
||||
<td>
|
||||
<input id="variants_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $v@first}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>
|
||||
</td>
|
||||
<td>
|
||||
{if $v->name}<label class="variant_name" for="variants_{$v->id}">{$v->name}</label>{/if}
|
||||
</td>
|
||||
<td>
|
||||
{if $v->compare_price > 0}<span class="compare_price">{$v->compare_price|convert}</span>{/if}
|
||||
<span class="price">{$v->price|convert} <span class="currency">{$currency->sign|escape}</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
<input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>
|
||||
</form>
|
||||
<!-- Выбор варианта товара (The End) -->
|
||||
{else}
|
||||
Нет в наличии
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
|
||||
</li>
|
||||
<!-- Товар (The End)-->
|
||||
{/foreach}
|
||||
|
||||
</ul>
|
||||
|
||||
{include file='pagination.tpl'}
|
||||
<!-- Список товаров (The End)-->
|
||||
|
||||
{else}
|
||||
Товары не найдены
|
||||
{/if}
|
||||
<!--Каталог товаров (The End)-->
|
||||
33
design/default/html/register.tpl
Normal file
33
design/default/html/register.tpl
Normal file
@@ -0,0 +1,33 @@
|
||||
{* Страница регистрации *}
|
||||
|
||||
{$meta_title = "Регистрация" scope=parent}
|
||||
|
||||
<h1>Регистрация</h1>
|
||||
|
||||
{if $error}
|
||||
<div class="message_error">
|
||||
{if $error == 'empty_name'}Введите имя
|
||||
{elseif $error == 'empty_email'}Введите email
|
||||
{elseif $error == 'empty_password'}Введите пароль
|
||||
{elseif $error == 'user_exists'}Пользователь с таким email уже зарегистрирован
|
||||
{elseif $error == 'captcha'}Неверно введена капча
|
||||
{else}{$error}{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<form class="form register_form" method="post">
|
||||
<label>Имя</label>
|
||||
<input type="text" name="name" data-format=".+" data-notice="Введите имя" value="{$name|escape}" maxlength="255" />
|
||||
|
||||
<label>Email</label>
|
||||
<input type="text" name="email" data-format="email" data-notice="Введите email" value="{$email|escape}" maxlength="255" />
|
||||
|
||||
<label>Пароль</label>
|
||||
<input type="password" name="password" data-format=".+" data-notice="Введите пароль" value="" />
|
||||
|
||||
<div class="captcha"><img src="captcha/image.php?{math equation='rand(10,10000)'}"/></div>
|
||||
<input class="input_captcha" id="comment_captcha" type="text" name="captcha_code" value="" data-format="\d\d\d\d" data-notice="Введите капчу"/>
|
||||
|
||||
<input type="submit" class="button" name="register" value="Зарегистрироваться">
|
||||
|
||||
</form>
|
||||
39
design/default/html/user.tpl
Normal file
39
design/default/html/user.tpl
Normal file
@@ -0,0 +1,39 @@
|
||||
{* Шаблон страницы зарегистрированного пользователя *}
|
||||
|
||||
<h1>{$user->name|escape}</h1>
|
||||
|
||||
{if $error}
|
||||
<div class="message_error">
|
||||
{if $error == 'empty_name'}Введите имя
|
||||
{elseif $error == 'empty_email'}Введите email
|
||||
{elseif $error == 'empty_password'}Введите пароль
|
||||
{elseif $error == 'user_exists'}Пользователь с таким email уже зарегистрирован
|
||||
{else}{$error}{/if}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<form class="form" method="post">
|
||||
<label>Имя</label>
|
||||
<input data-format=".+" data-notice="Введите имя" value="{$name|escape}" name="name" maxlength="255" type="text"/>
|
||||
|
||||
<label>Email</label>
|
||||
<input data-format="email" data-notice="Введите email" value="{$email|escape}" name="email" maxlength="255" type="text"/></td>
|
||||
|
||||
<label><a href='#' onclick="$('#password').show();return false;">Изменить пароль</a></label>
|
||||
<input id="password" value="" name="password" type="password" style="display:none;"/>
|
||||
<input type="submit" class="button" value="Сохранить">
|
||||
</form>
|
||||
|
||||
{if $orders}
|
||||
<p></p>
|
||||
<h2>Ваши заказы</h2>
|
||||
<ul id="orders_history">
|
||||
{foreach name=orders item=order from=$orders}
|
||||
<li>
|
||||
{$order->date|date} <a href='order/{$order->url}'>Заказ №{$order->id}</a>
|
||||
{if $order->paid == 1}оплачен,{/if}
|
||||
{if $order->status == 0}ждет обработки{elseif $order->status == 1}в обработке{elseif $order->status == 2}выполнен{/if}
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
{/if}
|
||||
BIN
design/default/images/delete.png
Normal file
BIN
design/default/images/delete.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 886 B |
BIN
design/default/images/favicon.ico
Normal file
BIN
design/default/images/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
design/default/images/logo.png
Normal file
BIN
design/default/images/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
design/default/images/search.png
Normal file
BIN
design/default/images/search.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
BIN
design/default/images/star.png
Normal file
BIN
design/default/images/star.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.3 KiB |
65
design/default/js/ajax_cart.js
Normal file
65
design/default/js/ajax_cart.js
Normal file
@@ -0,0 +1,65 @@
|
||||
// Аяксовая корзина
|
||||
$('form.variants').live('submit', function(e) {
|
||||
e.preventDefault();
|
||||
button = $(this).find('input[type="submit"]');
|
||||
if($(this).find('input[name=variant]:checked').size()>0)
|
||||
variant = $(this).find('input[name=variant]:checked').val();
|
||||
if($(this).find('select[name=variant]').size()>0)
|
||||
variant = $(this).find('select').val();
|
||||
$.ajax({
|
||||
url: "ajax/cart.php",
|
||||
data: {variant: variant},
|
||||
dataType: 'json',
|
||||
success: function(data){
|
||||
$('#cart_informer').html(data);
|
||||
if(button.attr('data-result-text'))
|
||||
button.val(button.attr('data-result-text'));
|
||||
}
|
||||
});
|
||||
var o1 = $(this).offset();
|
||||
var o2 = $('#cart_informer').offset();
|
||||
var dx = o1.left - o2.left;
|
||||
var dy = o1.top - o2.top;
|
||||
var distance = Math.sqrt(dx * dx + dy * dy);
|
||||
$(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance);
|
||||
$('.transfer_class').html($(this).closest('.product').find('.image').html());
|
||||
$('.transfer_class').find('img').css('height', '100%');
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
// Аяксовая корзина
|
||||
$('a[href*="cart?variant"]').live('click', function(e) {
|
||||
e.preventDefault();
|
||||
//variant_id = $(this).attr('id');
|
||||
|
||||
href = $(this).attr('href');
|
||||
pattern = /\/?cart\?variant=(\d+)$/;
|
||||
variant_id = pattern.exec(href)[1];
|
||||
|
||||
link = $(this);
|
||||
$.ajax({
|
||||
url: "ajax/cart.php",
|
||||
data: {variant: variant_id},
|
||||
dataType: 'json',
|
||||
success: function(data){
|
||||
$('#cart_informer').html(data);
|
||||
//if(link.attr('added_text'))
|
||||
// link.html(link.attr('added_text'));
|
||||
//link.attr('href', '/cart');
|
||||
}
|
||||
});
|
||||
|
||||
var o1 = $(this).offset();
|
||||
var o2 = $('#cart_informer').offset();
|
||||
var dx = o1.left - o2.left;
|
||||
var dy = o1.top - o2.top;
|
||||
var distance = Math.sqrt(dx * dx + dy * dy);
|
||||
|
||||
$(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance);
|
||||
$('.transfer_class').html($(this).closest('.product').find('.image').html());
|
||||
$('.transfer_class').find('img').css('height', '100%');
|
||||
return false;
|
||||
});
|
||||
*/
|
||||
46
design/default/js/jquery-ui.min.js
vendored
Normal file
46
design/default/js/jquery-ui.min.js
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* jQuery UI Effects 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/
|
||||
*/
|
||||
jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
|
||||
16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
|
||||
a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
|
||||
a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
|
||||
"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,
|
||||
0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,
|
||||
211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
|
||||
d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})};
|
||||
f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,
|
||||
[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.16",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b=
|
||||
0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),
|
||||
d=document.activeElement;c.wrap(b);if(c[0]===d||f.contains(c[0],d))f(d).focus();b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(e,g){a[g]=c.css(g);if(isNaN(parseInt(a[g],10)))a[g]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){var a,b=document.activeElement;
|
||||
if(c.parent().is(".ui-effects-wrapper")){a=c.parent().replaceWith(c);if(c[0]===b||f.contains(c[0],b))f(b).focus();return a}return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});
|
||||
return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,
|
||||
arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/
|
||||
2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,
|
||||
d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,
|
||||
a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,
|
||||
d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=
|
||||
0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;
|
||||
if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,
|
||||
a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
|
||||
;/*
|
||||
* jQuery UI Effects Transfer 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Effects/Transfer
|
||||
*
|
||||
* Depends:
|
||||
* jquery.effects.core.js
|
||||
*/
|
||||
(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
|
||||
b.dequeue()})})}})(jQuery);
|
||||
;
|
||||
0
design/default/locked
Normal file
0
design/default/locked
Normal file
BIN
design/default/preview.png
Normal file
BIN
design/default/preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.3 KiB |
Reference in New Issue
Block a user