diff --git a/.gitignore b/.gitignore index 4ae69f3..1d687c5 100644 --- a/.gitignore +++ b/.gitignore @@ -77,10 +77,10 @@ fabric.properties # Android studio 3.1+ serialized cache file .idea/caches/build_file_checksums.ser -files/ -feedback/images/ -simpla/files/ -design/ -lib/ -images/ +/files/ +/feedback/images/ +/simpla/files/ +/design/ +/lib/ +/images/ compiled/ \ No newline at end of file diff --git a/simpla/design/css/banners.css b/simpla/design/css/banners.css new file mode 100644 index 0000000..ab542d7 --- /dev/null +++ b/simpla/design/css/banners.css @@ -0,0 +1,91 @@ +.icons a.edit{ background-image: url(../images/pencil.png); } + +#imageThumb{ + width:450px; + min-height:180px; + border:1px #9b9b9b dashed; + background:#e5e5e5; + text-align:center; + vertical-align:middle; + + font:bold 40px Arial, Helvetica, sans-serif; + color:#d6d6d6; + text-shadow: 1px 0px 2px #9b9b9b; +} +#imageThumb span{ + display:block; + font-size:14px; + color:silver; + text-shadow: 1px 0px 1px #ffffff; +} +#imageThumb img{ + position:relative; + display:block; + margin:auto auto; + margin-top:5px; + max-width:440px; + max-height:170px; +} + +a.button_yellow { + display: block; + float: right; + height: 16px; + text-decoration: none; + padding: 5px 20px; + font-size:13px; +} + + +.cell.banner, +.cell.group{ + width: 830px; + text-align: center; +} +.banner_wrapper{ + position:relative; + margin:0 auto; + width: 450px; + border: 15px solid #fff; + box-shadow: 1px 1px 4px #B4B4B4; + background: #fff; + border-radius: 3px; +} +.banner_wrapper .title{border-bottom:1px dashed #d0d0d0;} + +.banner_wrapper .title a, +.banner_wrapper .title a:visited{ + position:relative; + display:block; + margin:-15px -15px 0 -15px; + padding:5px 10px; + font:bold 12px Arial; + color: #ffffff; + text-align:left; + text-decoration:none; + border-radius: 3px 3px 0 0; + background:#595858; +} +.group .banner_wrapper .title span{ + display:block; + padding:5px 0; + font:normal 11px Arial; + color:#777777; +} +.banner_wrapper img{ + max-width: 420px; + max-height: 200px; + vertical-align: middle; +} +.banner_wrapper .banner{ + margin:15px 0; +} +.banner_wrapper .tip{ + position:relative; + margin:0 -10px -10px -10px; + padding:5px; + font:normal 12px monospace; + color:#000000; + border-top:1px dashed #8a8a8a; + background:#e9e5e5; +} \ No newline at end of file diff --git a/simpla/design/css/main.css b/simpla/design/css/main.css new file mode 100644 index 0000000..08c4732 --- /dev/null +++ b/simpla/design/css/main.css @@ -0,0 +1,295 @@ +body{ + background-color: #858585; + background-image: url(../images/bgd.png); + background-repeat: repeat; + color: #333333; + font: 13px "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif; + +} +body, html{ + width: 100%; + height: 100%; +} + +#main { + width: 1000px; + margin-right: auto; + margin-left: auto; +} + +#main_menu { + width: 100%; + padding-top: 35px; + font-size: 12px; + margin-right: auto; + margin-left: auto; + height: 90px; +} +#main_menu li { + float: left; + width: 9%; + text-align: center; + white-space: nowrap; +} + +#main_menu li b { + text-decoration: underline; + display: block; + font-weight: normal; + font-style: normal; +} +#main_menu a { + color: #ffffff; + text-decoration: none; +} +#main_menu a:hover { + color: #ffffff; +} +#main_menu div.counter { +margin-left: 70px; +margin-top:-75px; +} +#main_menu div.counter span{ +color:white; +font-size:11px; +text-align:center; +background-color:red; +padding: 1px 1px 1px 2px; +min-width: 13px; +line-height: 14px; +display: table-cell; +border-radius:10px; +-moz-border-radius:10px; +} + +#tab_menu { + width: 100%; + margin-right: auto; + margin-left: auto; + padding-right: 2px; + font-size: 17px; + height: 36px; + border-bottom: 1px solid #ffffff; +} +#tab_menu a { + text-decoration: none; + color: #F2F2F2; +} +#tab_menu li { + float: left; +} +#tab_menu li a { + height: 28px; + padding-right: 20px; + padding-left: 20px; + padding-top: 7px; + margin-right: 15px; + border-top: 1px solid #ffffff; + border-right: 1px solid #ffffff; + border-left: 1px solid #ffffff; + text-shadow: 0px 1px 0px #fff; + display: block; + background: url(../images/tabs_bgd.jpg) 0 -29px; + background-repeat: repeat-x; + color: #404040; + /* + border-top-left-radius: 5px; + -moz-border-radius-topleft: 5px; + -khtml-border-top-left-radius: 5px; + -webkit-border-top-left-radius: 5px; + border-top-right-radius: 5px; + -moz-border-radius-topright: 5px; + -khtml-border-top-right-radius: 5px; + -webkit-border-top-right-radius: 5px; + */ + +} +#tab_menu li a:hover { + border-top: 1px solid #ffffff; + border-right: 1px solid #ffffff; + border-left: 1px solid #ffffff; + background-position: 0 -65px; +} +#tab_menu li.active a { + border-top: 1px solid #ffffff; + border-right: 1px solid #ffffff; + border-left: 1px solid #ffffff; + border-bottom:1px solid #f7f7f7; + height: 28px; + text-shadow: 0px 1px 0px #fff; + background-position: 0 -101px; + background-color: #f4f4f4; + color: #000; + overflow: hidden; +} +#tab_menu li.active a:hover { + color: #505050; +} + + +/* Центральная часть страницы */ +#middle { + width: 940px; + min-height: 300px; + padding: 30px; + background-color: #f7f7f7; + display: block; + border-left: 1px solid #ffffff; + border-right: 1px solid #ffffff; + border-bottom: 1px solid #ffffff; + overflow:hidden; +} + + +#middle h1 { + font-size: 27px; + font-weight: normal; + font-style: normal; + color: #000; + display: block; + float: left; + margin-right: 15px; +} + +#middle h2 { + font-size: 22px; + font-weight: normal; + font-style: normal; + color: #000; + text-shadow: 0px 1px 0px #fff; + margin-bottom: 10px; +} +/* @group Заголовок правой части */ +#header{ + margin-bottom: 20px; + overflow: hidden; +} +#header .add { + display: block; + float: left; + width: auto; + font-size: 12px; + text-decoration: none; + padding: 7px 17px 7px 33px; + border: 1px solid #c0c0c0; + color: #5e5e5e; + background: #ffffff url(../images/plus.png) no-repeat 10px 6px; + border-radius: 15px; + -moz-border-radius: 15px; + -khtml-border-radius: 15px; + -webkit-border-radius: 15px; + white-space: nowrap; + margin-top: 3px; + +} + +.icons.cell a { + +} + +.icons.cell a:hover { + background-color: #e3e3e3; +} + +.link-add { + display: inline-block; + width: auto; + font-size: 12px; + text-decoration: none; + padding: 1px 3px 1px 20px !important; + border: 1px solid #c0c0c0; + color: #5e5e5e; + background: #ffffff url(../images/plus.png) no-repeat 3px 3px; + background-size: 12px; + background-position: 3px center !important; +} + + + +.link-add:hover { + background-color: #e3e3e3; +} + + +#header .add:hover { + color: #000; +} + + +a { color: #000; } + +.dash_link { + cursor: pointer; + border-bottom: 1px dotted #4D4D4D; + font-weight: normal; + font-style: normal; + color: #4D4D4D; + text-decoration: none; +} + +.move_zone { + display: block; + float: left; + background-image: url(../images/move_zone.png); + background-repeat: repeat; + margin: 0px; + cursor: move; + width: 20px; + height:16px; +} + +.button_green, .button_red, .button_yellow{ + height: 28px; + color: #ffffff; + font: 13px "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif; + background-color: #ffffff; + padding-right: 20px; + padding-left: 20px; + cursor: pointer; + border-radius: 5px; + -moz-border-radius: 5px; + -khtml-border-radius: 5px; + -webkit-border-radius: 5px; +} +.button_green:hover, .button_red:hover { + background-position: 0 -29px; + cursor: pointer; +} +.button_green { + background-image: url(../images/but_green.jpg); + border: 1px solid #459300; + text-shadow: -1px -1px 0px #459300; +} +.button_red { + background-image: url(../images/but_red.jpg); + border: 1px solid #d00000; + text-shadow: -1px -1px 0px #930000; +} +.button_yellow { + background-image: url(../images/but_yellow.jpg); + border: 1px solid #ffc600; + text-shadow: -1px -1px 0px #e79800; +} + +#footer { + height: 40px; + margin-top: 30px; + cursor: pointer; + color: #ffffff; +} +#footer a{ + color: #ffffff; +} + +input[type=text] {font-size:13px;} + +a.admin_bookmark +{ + position:absolute; + left:3%; + top:0px; + width: 12px; + height: 35px; + background-image: url('../images/bookmark.gif'); + background-repeat: no-repeat; +} diff --git a/simpla/design/css/reset.css b/simpla/design/css/reset.css new file mode 100644 index 0000000..d022188 --- /dev/null +++ b/simpla/design/css/reset.css @@ -0,0 +1,31 @@ +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; +} +ol, ul { + list-style: none; +} +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; +} diff --git a/simpla/design/css/style.css b/simpla/design/css/style.css new file mode 100644 index 0000000..9d6589d --- /dev/null +++ b/simpla/design/css/style.css @@ -0,0 +1,1519 @@ +@import url("reset.css"); +@import url("main.css"); + +.marka-models { + margin-top: 10px; + background: #d1d1d1; + padding: 5px; + width: 350px; +} + +.marka-models li { + padding: 3px; +} +.marka-models li a{ + color: #0088cc; + text-decoration: none; + display: inline-block; + width: 100%; +} + +.marka-models li:hover{ + background: #e9e9e9; +} + +/* Сообщение */ +.message { + clear: both; + height: 25px; + padding: 10px 20px; + margin-bottom: 20px; + overflow: hidden; + color: black; +} +.message span{ + background-repeat: no-repeat; + padding-left: 20px; + display: block; + float: left; + margin-right: 50px; + margin-top: 5px; +} +.message a.link { + float: left; + margin-top: 5px; +} +.message a.button { + display: block; + float: right; + text-decoration: none; + padding: 5px 20px; + border: 1px solid #a3a5a5; + color: #0000; + background: #f5f5f5 url(../images/message_button_bgd.jpg) 0 -26px; +} +.message a.button:hover { + background-position: 0 0; + color: #000; +} + +/* Сообщение успешное */ +.message_success { background-color: #c5ff8d; border: 1px dotted #8cbf32; } +.message_success span{ background-image: url(../images/tick.png); } +.message_success a.link { color: #3f8000; } +.message_success a.link:hover { color: #5dbd00; } + +/* Сообщение с ошибкой */ +.message_error { background-color: #ffcaca; border: 1px dotted #ff4545; } +.message_error span { background-image: url(../images/icon_message_error.png); } +.message_error a.link { color: #ff0000; } +.message_error a.link:hover { color: #ff4f4f; } + +/* Основная форма */ +#product { + width: 100%; +} +/* Блок названия */ +#product #name { + display: table; + width: 100%; + margin-bottom: 20px; + /*height: 30px;*/ +} +/* Инпут названия */ +#product input.name { + font-size: 26px; + display: table-cell; + width: 98%; + *float: left; + *width: 70%; +} +/* Блок чекбоксов возле названия */ +#product .checkbox{ + display: table-cell; + white-space: nowrap; + vertical-align: middle; + width: 1px; + padding-left: 20px; + font-size: 15px; + + *padding-top: 8px; + *padding-bottom: 8px; + *width: 12%; + *float: left; +} +/* Надпись возле чекбокса */ +#product .checkbox label { + cursor: pointer; +} +/* Блок с выбором бренда */ +#product_brand { + float: left; + width: 300px; + display: block; +} +/* Надпись возде выбора бренда */ +#product_brand label { + float: left; + margin-top: 5px; +} +/* Селект бренда */ +#product_brand select{ + width: 200px; + margin-left: 10px; + font-size: 18px; +} + +/* Блок категорий товара */ +#product_categories { + float: left; + overflow: hidden; + margin-bottom: 20px; +} +/* Надпись возде выбора категории */ +#product_categories label { + float: left; + margin-top: 5px; +} +/* Селект категории */ +#product_categories select { + width: 300px; + margin-right: 15px; + font-size: 18px; +} +#product_categories ul li { margin-bottom: 5px; } +#product_categories div {float: left; margin-left: 10px; width: 540px; } +#product_categories span i { font-style: normal; } +/* Добавление категории */ +#product_categories span.add { + background-repeat: no-repeat; + padding-left: 20px; + background-image: url(../images/plus-circle.png); +} +/* Удаление категории */ +#product_categories span.delete { + background-image: url(../images/cross-circle-frame.png); + background-repeat: no-repeat; + padding-left: 20px; +} + +/* Купоны */ +#product .block li select.coupon_type { + width: 70px; + font-size: 18px; +} +#product #column_left .block li input.coupon_value { + width: 130px; + font-size: 18px; +} + +/* Варианты товара */ +#variants_block { + background-color: #f0f0f0; + border: 1px dotted #d0d0d0; + clear: both; + overflow: hidden; + padding-top: 15px; + padding-bottom: 15px; + margin-bottom: 20px; + width: 940px; +} +#variants_block ul { + overflow: hidden; + padding-bottom: 2px; + padding-left:20px; + padding-top: 2px; + clear: left; +} +#variants_block ul#header { + height: 20px; + margin-bottom: 0; + padding-bottom: 0; +} +#variants_block ul#header li { + font-size: 13px; + padding-left: 3px; + margin-left: -2px; +} +#variants_block ul li { + float: left; + display: block; + height: 31px; + overflow: hidden; +} +#variants_block ul li input { + height: 20px; + font-size: 14px; + color: #636363; + margin-top: 0px; + padding-top: 2px; + margin-left: 2px; +} +#variants_block li.variant_move { width: 20px; height:16px; padding-top: 5px;} +#variants_block li.variant_name { width: 220px; padding-left: 5px; } +#variants_block li.variant_name input { + font-size: 16px; + color: #000; + width: 180px; + float: left; + margin-right: 2px; +} +#variants_block li.variant_name a.del_variant { + display: block; + padding-top: 6px; +} +#variants_block li.variant_sku { width: 100px; } +#variants_block li.variant_sku input { width: 75px; } +#variants_block li.variant_price { width: 100px; } +#variants_block li.variant_price input { + width: 75px; + font-size: 15px; + font-weight: bold; + color: #000; +} +#variants_block li.variant_discount { width: 95px; } +#variants_block li.variant_discount input { width: 70px; } +#variants_block li.variant_weight { width: 70px; font-size: 11px; } +#variants_block li.variant_weight input { width: 35px; margin-right: 2px; } +#variants_block li.variant_amount { width: 70px; font-size: 11px; } +#variants_block li.variant_amount input { width: 35px; margin-right: 2px; } +#variants_block li.variant_download { width: 180px;} +#variants_block li.variant_download input{ width: 170px; font-size: 9px; margin-top: 2px;} +#variants_block li.variant_download .add_attachment img{ margin-top: 4px;} + + +#variants_block span.add { + margin-left: 30px; + clear: left; + margin-top: 5px; + display: block; + background-repeat: no-repeat; + padding-left: 20px; + background-image: url(../images/plus-circle.png); +} +#variants_block .variant_move div{ + width:20px; + height: 16px; +} + +/* Одиночный вариант */ +#variants_block.single_variant ul li.variant_name, +#variants_block.single_variant ul li.variant_move +#variants_block.single_variant #add_variant +{ display: none; } + + + +.button_save { + float: right; + margin-top: 0px; + margin-right: 15px; +} + +.button_delete { + float: right; + margin-top: 0px; +} + + +#column_left, +#column_right { + width: 445px; + float: left; +} +#column_right { + clear: right; +} +#column_left { + clear: left; +} +#column_left { padding-right: 20px; } +#column_right { padding-left: 20px; } + +.layer { + padding-top: 15px; + margin-top: -5px; + background-repeat: repeat-x; + background-image: url('../images/gradient.jpg'); + background-position: top; +} +.layer ul{ + margin-bottom: 20px; +} +#product .block { + margin-bottom: 20px; + width: 100%; + clear: both; +} +#product .block li { + clear: left; + display: block; + overflow: hidden; + margin-bottom: 7px; + width: 500px; +} +#product .block label.property { + display: block; + float: left; + width: 170px; + clear: left; + padding-top: 2px; + overflow: hidden; + color: #808080; +} +#product .block li input[type=text] { width: 265px; font-size:13px; height:18px;} +#product .block ul.new_features li label input { margin-top: -2px; width: 150px; font-size:13px; height:18px;} +#product .block li select {width: 265px; font-size: 13px; height:25px;} +#product .block li textarea { + width: 265px; + height: 60px; +} +#product .block select.multiple_categories {width: 440px; height:400px; font-size: 13px;} +#product .block span.add { + background-repeat: no-repeat; + padding-left: 20px; + background-image: url(../images/plus-circle.png); +} +#product .block li input.page_url { + font: 12px; + padding: 0px; + width: 197px; +} +#product .block li input.simpla_small_inp { + width: 137px; +} +#product .block div.page_url { + width: 65px; + display: block; + float: left; + font-size: 12px; + color: #909090; + padding-top: 4px; + text-align: right; + padding-right: 5px; + overflow: hidden; + height: 15px; + white-space: nowrap; +} + +#product .images li{ + border: 1px solid #d0d0d0; + width: 100px; + height: 100px; + margin-right: 7px; + margin-bottom: 7px; + background-color: #ffffff; + display: -moz-inline-box; + display: inline-block; + *zoom: 1; + *display: inline; + word-spacing: normal; + line-height: 100px; + vertical-align: top; + text-align: center; +} +#product .images li img{ + vertical-align: middle; + max-width: 100px; +} +#product .images a.delete{ + display: block; + width: 15px; + height: 15px; + margin-top: -40px; + margin-left: 82px; + position:absolute; + visibility: hidden; +} +#product .images li:hover a.delete{ + visibility: visible; +} + +#product .related_products .image{ + width: 35px; +} + + +#product div.images span.upload_image, #product div.images span.add_image_url{ + margin-top: 5px; + background-repeat: no-repeat; + padding-left: 20px; + margin-right: 5px; +} +#product div.images span.upload_image { background-image: url(../images/picture_add.png); } +#product div.images span.add_image_url { background-image: url(../images/world_link.png); margin-left: 5px;} + +#product div.images input.upload_image, #product div.images input.remote_image{ + font-size: 12px; + margin-bottom: 15px; + width: 300px; +} + +#product div.images #add_image { + margin-top: 15px; +} + + + +/* @group Product Description */ +.block { + width: 100%; + clear: both; +} + + + +#main_list { + float: left; + display: block; + max-width: 720px; + width: 100%; + overflow: hidden; +} +/* @end */ + +/* Меню */ +#right_menu { + width: 180px; + display: block; + float: right; + margin-left: 40px; +} +#right_menu ul { + margin: 5px; + margin-bottom: 30px; +} +#right_menu ul ul { + padding: 0px; + margin: 0px; + margin-left: 20px; +} +#right_menu li { + font-size: 12px; + margin-bottom: 7px; +} +#right_menu li a { + padding: 0px 0px 0px 0px; + color: #000000; +} +#right_menu li a:hover { color: #00a8ff; } + +#right_menu li.selected a{ + padding: 4px 3px 4px 3px; + background-color: #18a5ff; + color: #ffffff; + text-decoration: none; +} +#right_menu .drop_active a{ + color: green; + //background-color: #c4ffb2; +} +#right_menu .drop_hover a{ + color: white; + background-color: #4eee00; +} +/* @end меню */ + + +/* @group Форма поиска */ +#search { + float: right; + width: 175px; + margin-top: 10px; + margin-bottom: 10px; +} +#search input.search { + width: 130px; + font-size: 12px; + height:15px; + display: block; + float: left; +} +#search input.search_button { + width: 23px; + height: 25px; + background-position-y: middle; + background: url(../images/but_search.gif) no-repeat; + border-style: none; + margin-left: 4px; + cursor: pointer; + cursor: hand; +} +/* @end */ + + +/* @group Постраничная навигация */ +#pagination { + padding-top: 5px; + padding-bottom: 5px; + margin-bottom: 10px; + font-size: 11px; + overflow: visible; +} +#pagination a { + display: block; + float: left; + background-color: #fffeff; + margin-right: 5px; + margin-bottom: 12px; + padding: 7px 7px; + min-width: 16px; + min-height: 13px; + 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.drop_active { + background-color: #c4ffb2; + border: 1px solid #3cff00; + color: #000000; +} +#pagination a.drop_hover { + background-color: #4eee00; + border: 1px solid #4eee00; + color: #ffffff; +} + +/* @end */ + + +/* @group Свернуть - развернуть варианты */ +div#expand +{ + margin-bottom: 10px; + display: none; + float: right; +} +div#expand a +{ + color: #008fe9; + border-bottom-color: #008fe9; +} +/* @end */ + +/* @group Ссылки для сортировки */ +div#sort_links +{ + margin-bottom: 10px; + float: right; +} +div#sort_links a +{ + color: #008fe9; + border-bottom-color: #008fe9; +} +/* @end */ + +/* @group Список */ +#main_list.brands{ width:600px; } +#main_list.categories{ width:600px; } +#main_list.features{ width:600px; } + + +#list{ + min-width: 200px; + border-bottom: 1px solid #d0d0d0; + clear: both; +} +#list #list{ border-bottom: none; } + +#list .clear{clear:both;} + +#list .row{ + border-top: 1px solid #d0d0d0; + background-color: #f3f3f3; + border-collapse: collapse; +} + +#list .tree_row:hover{ + background-color: #f9f9f9; +} + +#list .even{ + background-color: #ebebeb; +} +#list .cell { + vertical-align: top; + padding: 0px; + padding-top: 10px; + padding-bottom: 7px; + float:left; +} +#list .move { + vertical-align: center; + width: 20px; + padding-right: 0px; + padding-left: 5px; +} + +#list .move div{ + height:16px; + width: 20px; + margin-top: 2px; +} +#list .checkbox { + width:20px; + padding-right: 0px; + padding-left: 5px; +} + +#list .image{ + width: 35px; + padding-bottom: 3px; + padding-top: 5px; + padding-right: 0px; +} +#list .image a{ + width: 35px; + display: block; +} +#list .image img { + margin-left: 5px; + border: 1px solid #d3d3d3; +} + +#list .name { + font-size:12px; + padding-left: 10px; + max-width: 600px; +} +#list.related_products .name { + width: 320px; +} +#list .product_name { + width:505px; + *position: relative; +} +#list .product_name a { + *position: absolute; /*Scrum*/ + *left:0; /*Scrum*/ +} + +#list .brand_nameqwe { + width:300px; +} +#list .page_name { + width:300px; +} +#list .user_name { + width:220px; +} +#list .user_email { + width:200px; +} +#list .user_email a{ + color: #707070; +} +#list .user_group { + width:200px; + text-align: right; + color: #707070; +} + +#list.groups{ + width: 500px; +} + +#list .group_name { + width:250px; + padding-left: 10px; +} +#list .group_discount { + width:90px; + text-align: right; +} + +#list .order_name { + width:350px; +} +#list .order_date { + width:120px; + color: #505050; + font-size: 12px; + padding-left: 10px; +} +#list .green{ + background-color: #dcffd0; +} + +#list .variants div.expand_variant{ + float: right; + text-align: left; + width: 167px; +} +.expand_variant a { + *position: static !important; /*Scrum*/ +} + +#list .variants a.expand_variant, #list .product_name a.roll_up_variant{ + color: #008fe9 !important; + border-bottom-color: #008fe9 !important; + font-size: 11px !important; +} +#list .variants { + float:right; + margin-top: -3px; + font-size: 12px; + color: #707070; + padding-left:10px; + text-align: right; +} +#list .variants ul li{ + text-align: right; + margin-bottom: 2px; + overflow: hidden; +} +#list .variants ul i{ + font-style:normal; + padding-bottom: 2px; + overflow: hidden; +} +#list .variants ul .price { + font-size: 14px; + width: 80px; + text-align: right; + margin-right: 3px; +} +#list .variants ul .compare_price { + color: #dd0063; +} +#list .variants ul .stock { + font-size: 14px; + width: 40px; + text-align: right; + color: #4e4e4e; + margin-right: 3px; +} +#list .icons { + float: right; + text-align: right; + padding-right: 10px; + padding-left: 10px; + white-space:nowrap; + zoom:1; +} + + + +#list .invisible .name{ color: #909090; } + +#list .invisible .name a{ + color: #909090; + border-bottom-color: #909090; +} + +#list .row .name{ color: #000000; } + +#list .row .name a{ + color: #000000; + border-bottom-color: #000000; +} + +#list .coupon_name { + width:220px; +} +#list .coupon_details { + width:200px; +} +#list .coupon_discount { + width:180px; +} +#list .coupon_details .detail, +#list .coupon_discount .detail{ + color:#707070; + font-size: 11px; +} + +span.order_label_big +{ + float:left; + display: block; + padding:0px; + width:32px; + height:32px; + margin-right:5px; + background-color: #e0e0e0; + background-image:url(../images/label_big.png); +} + +span.order_label +{ + float:left; + display: block; + padding:0px; + width:16px; + height:16px; + margin-right:5px; + background-color: #e0e0e0; + background-image:url(../images/label.png); +} +.order_name span.order_label{margin-right:0px;float:right;} + +@media only screen and (-webkit-min-device-pixel-ratio: 2.0), + only screen and (min--moz-device-pixel-ratio: 2.0), + only screen and (-o-min-device-pixel-ratio: 200/100), + only screen and (min-device-pixel-ratio: 2.0) { + span.order_label { + background-image:url('../images/label@2x.png'); + -webkit-background-size: 64px 16px; + -moz-background-size: 64px 16px; + background-size: 64px 16px; + } + } +#list span.order_label +{ + background-position:-16px; +} +#list .even span.order_label +{ + background-position:-32px; +} +#list .green span.order_label +{ + background-position:-48px; +} + +.icons a +{ + padding: 8px; + margin: 2px; + *display: inline; + zoom:1; + background-position: center center; + background-repeat: no-repeat; + +} +.icons a.enable, .icons a.a-visible { background-image: url(../images/lightbulb.png); } +.icons a.a-visible { background-image: url(../images/lightbulb.png) !important; } +.invisible .icons a.enable, .icons a.a-invisible { background-image: url(../images/lightbulb_off.png); } +.icons a.preview { background-image: url(../images/monitor.png); } +.icons a.delete { background-image: url(../images/delete.png); } +.icons a.print { background-image: url(../images/printer_small.png); } +.icons a.featured { background-image: url(../images/star_gray.png); } +.icons a.in_filter { background-image: url(../images/filter_gray.png); } +.in_filter .icons a.in_filter { background-image: url(../images/filter.png); } +.icons a.duplicate { background-image: url(../images/page_copy.png); } +.featured .icons a.featured { background-image: url(../images/star.png); } +.icons a.cents { background-image: url(../images/coin_stack_gold_off.png); } +.cents .icons a.cents { background-image: url(../images/coin_stack_gold.png); } +.icons a.loading_icon { background-image: url(../images/loader.gif) !important; } +.icons a.restore { background-image: url(../images/clock_history_frame.png); } + +.phone { + padding-right:20px; + background-position: right center; + background-repeat: no-repeat; + background-image: url(../images/phone.png); + cursor: pointer; +} + +@media only screen and (-webkit-min-device-pixel-ratio: 2.0), + only screen and (min--moz-device-pixel-ratio: 2.0), + only screen and (-o-min-device-pixel-ratio: 200/100), + only screen and (min-device-pixel-ratio: 2.0) { + .icons a.enable { background-image: url(../images/lightbulb@2x.png); } + .invisible .icons a.enable { background-image: url(../images/lightbulb_off@2x.png); } + .icons a.preview { background-image: url(../images/monitor@2x.png); } + .icons a.delete { background-image: url(../images/delete@2x.png); } + .icons a.print { background-image: url(../images/printer_small@2x.png); } + .icons a.featured { background-image: url(../images/star_gray@2x.png); } + .icons a.in_filter { background-image: url(../images/filter_gray@2x.png); } + .in_filter .icons a.in_filter { background-image: url(../images/filter@2x.png); } + .icons a.duplicate { background-image: url(../images/page_copy@2x.png); } + .featured .icons a.featured { background-image: url(../images/star@2x.png); } + .icons a.cents { background-image: url(../images/coin_stack_gold_off@2x.png); } + .cents .icons a.cents { background-image: url(../images/coin_stack_gold@2x.png); } + .icons a.loading_icon { background-image: url(../images/loader@2x.gif); } + .icons a.restore { background-image: url(../images/clock_history_frame@2x.png); } + .icons a{ + -webkit-background-size: 16px 16px; + -moz-background-size: 16px 16px; + background-size: 16px 16px; + } + } + + +#list .action select{ + width: 250px; + font-size: 12px; +} +#list .save{ + text-align: right; +} + +/* Хэлпер для мультисорта */ + +.sort-multi-helper{ + border-top: 1px solid #D0D0D0 + border: 30px solid red; +} + +.esort-multi-helper li{ + background:#EBEBEB; + border-bottom: 1px solid #D0D0D0; + height:32px; +} + + +/* @group Комментарии */ +#list .row.unapproved { + background-color: #fffde5; +} +#list a.approve{ + display: none; +} +#list .unapproved a.approve{ + display: inline; + font-size: 12px; + color: green; + margin-left: 10px; + text-decoration: none; + border-bottom: 1px dotted green; +} +div.comment_info{ + margin-top: 10px; + font-size: 11px; + color: #505050; +} + +div.comment_name{ + font-size: 16px; + color: #000000; + margin-bottom: 10px; +} +div.comment_text{ + font-size: 12px; + color: #000000; +} + + +div#action{ + width:100%; + margin-top: 10px; + margin-bottom: 10px; + margin-left: 0px; + + float: left; +} + +div#action input#apply_action{ + float:right; + display: block; +} +div#action span#select{ + padding-left: 20px; +} +div#action span#move_to_page, div#action span#move_to_category, div#action span#move_to_brand{ + display:none; +} + +/* @end */ + + + + +/* TinyMCE */ +textarea.editor_large{ + height:500px; +} +textarea.editor_small{ + height:250px; +} + + +/* @end */ + + +/* Валюты */ +#currencies_block { + background-color: #f0f0f0; + border: 1px dotted #d0d0d0; + clear: both; + overflow: hidden; + padding-top: 15px; + padding-bottom: 15px; + margin-bottom: 20px; + width: 100%; +} +#currencies_block ul { + overflow: hidden; + padding-bottom: 2px; + padding-left:20px; + padding-top: 2px; + clear: left; +} +#currencies_block ul#header { + height: 20px; + margin-bottom: 0; + padding-bottom: 0; +} +#currencies_block ul#header li { + font-size: 13px; + padding-left: 0px; + margin-left: 1px; +} +#currencies_block ul li { + float: left; + display: block; + height: 31px; + overflow: hidden; +} +#currencies_block ul li input { + height: 20px; + font-size: 14px; + color: #636363; + margin-top: 0px; + padding-top: 2px; + margin-left: 2px; +} +#currencies_block li.move { width: 20px; height:16px; padding-top: 5px; margin-right: 5px;} +#currencies_block li.name { width: 230px;} +#currencies_block li.name a img{padding-top: 5px;} +#currencies_block li.name input { + margin-right: 5px; + font-size: 16px; + color: #000; + width: 220px; + float: left; +} +#currencies_block li.name a.del_variant { + display: block; + padding-top: 6px; +} +#currencies_block li.icons { width: 80px; padding-top: 5px;} +#currencies_block li.sign { width: 120px; } +#currencies_block li.sign input { width: 95px; } +#currencies_block li.iso { width: 120px; } +#currencies_block li.iso input { width: 95px;} +#currencies_block li.rate input { width: 50px; + font-size: 15px; + font-weight: bold; + color: #000; +} +#currencies_block li.rate .rate_from{ float:left; min-width: 100px;} +#currencies_block li.rate .rate_to { float:left; margin-right: 10px;} + +#currencies_block span.add { + margin-left: 30px; + clear: left; + margin-top: 5px; + display: block; + background-repeat: no-repeat; + padding-left: 20px; + background-image: url(../images/plus-circle.png); +} +#currencies_block .variant_move div{ + width:20px; + height: 16px; +} + + + +span.alert { + background-image: url(../images/bullet_error.png); + background-repeat: no-repeat; + padding-left: 15px; + color: red; +} + + +/* Заказы */ +#list .note{ + width: 100%; + clear: both; + padding: 3px; + border: 1px dotted #ffc539; + background-color: #fffac4; + margin-top: 3px; +} + +form#order div#name +{ + height: 50px; +} +form#order select.status +{ + font-size: 22px; +} + +div#next_order{ float: right; font-size: 26px; } +div#next_order a{text-decoration: none; border: 1px solid #e0e0e0; background-color: #ffffff; padding-left:3px; padding-right: 3px;} +div#next_order a.next_order{ margin-left: 2px; } + +div#order_details +{ + float:right; + width: 300px; + margin-top: -10px; +} +div#order_details div#user +{ + background-color: #ffffff; + border: 1px solid #e0e0e0; + padding: 15px; + margin-bottom: 10px; +} +.order_details label +{ + display: block; + color:#808080; +} +.order_details input[type=text] +{ + width:100%; + margin-bottom: 10px; +} + +.order_details textarea +{ + width:100%; + height:40px; + margin-bottom: 10px; +} + +form#order div#order_details div.view_order_detail +{ + font-size: 16px; + margin-bottom: 10px; + //font-weight: bold; + color #000000; +} + +form#order div#order_details div.view_note .note_text +{ + padding: 5px; + border: 1px dotted #ffc539; + background-color: #fffac4; + margin-top: 5px; + margin-bottom: 10px; +} +form#order div#order_details div.edit_note textarea { height:100px; } + + +div#purchases +{ + float: left; + width: 600px; +} +div#purchases div#add_purchase +{ + height: 40px; + margin-top: 5px; + float: left; +} + +div#purchases .edit_purchases +{ + float: left; + margin-top: 5px; +} +.purchases#list{ + width:100%; +} +.purchases#list div.purchase_name { + padding-left: 15px; + width: 350px; +} +.purchases#list .purchase_name div.purchase_variant{ + float: right; + margin-right: 10px; + color: #707070; + padding-left: 3px; +} +.purchases#list .price{ + text-align: right; + white-space: nowrap; + font-weight: bold; + width: 80px; +} +.purchases#list .price input{ + width: 60px; +} +.purchases#list .amount{ + width: 50px; + padding-left: 10px; + text-align: right; + white-space: nowrap; +} +.purchases#list .icons{ + padding-left: 10px; +} +.purchases#list .purchase_name label{ + font-style: italic; + color: #909090; +} +div#purchases div.subtotal{ + width: 100%; + text-align: right; + font-size: 16px; + margin-top: 5px; +} +div#purchases div.total{ + width: 100%; + text-align: right; + font-size: 20px; + margin-top: 5px; +} + +form#order div.discount {margin-top: 20px;} +form#order div.discount h2{float: left; margin-right: 10px;} +form#order div.discount input{width:80px;font-size: 14px; margin-top: 3px;} + +form#order div.delivery select{font-size: 14px; margin-right: 10px; width: 250px;} +form#order div.delivery input[type="text"]{width:80px;font-size: 14px;} +form#order div.delivery span.currency{font-size: 14px;} +form#order div.delivery div.separate_delivery{float:right;} +form#order div.delivery div.separate_delivery input{width: auto;} + +form#order div.payment select{font-size: 14px; margin-right: 10px; width: 250px;} +form#order div.payment input{font-size: 14px;} +form#order div.payment label{font-size: 14px;} +form#order div.payment label.green{background-color: #b9ff3f;} + +form#order div.view_user{margin-bottom: 15px; font-size: 14px;} +form#order div.edit_user{margin-bottom: 15px;} +form#order div.block_save{margin-top: 15px; margin-right: -15px;} + + +/* Импорт */ +input.import_file { + width: 600px; + font-size: 18px; +} +div.block_help +{ + width: 900px; + margin-top: 20px; + padding: 20px; + background-color: #ffffff; + border: 1px dotted #e0e0e0; + font-size: 18px; +} + +div.block_help p +{ + margin-bottom: 20px; +} +div.block_help li +{ + font-size: 14px; + margin-top: 8px; + margin-bottom: 8px; + border-bottom: 1px solid #e0e0e0; +} +div.block_help li label +{ + display: block; + float: left; + width: 170px; +} +ul#import_result +{ + display: block; + clear: left; + padding-top: 10px; +} + +ul#import_result li +{ + margin-bottom: 5px; +} +ul#import_result li .count +{ + width: 30px; + display: block; + float: left; +} +ul#import_result li .status +{ + padding: 0 26px 16px 0; + background-image: url(../images/exclamation.png); + background-repeat: no-repeat; + +} +ul#import_result li .added { background-image: url(../images/accept.png); } +ul#import_result li .updated { background-image: url(../images/update.png); } + +/* Темы */ +ul.themes +{ + width: 100%; +} + +ul.themes li +{ + display: block; + float: left; + margin-top: 15px; + padding-right: 20px; + height: 200px; +} + +ul.themes li img.preview +{ + width: 200px; + height: 150px; + border: 1px solid #909090; + background-color: #ffffff; + padding: 2px; + display: block; +} + +.templates_names a{ + display: block; + float: left; + padding: 10px; + background-color: #f0f0f0; + border: 1px solid #e0e0e0; + margin-right: 10px; + margin-bottom: 10px; + margin-left: 0; +} +.templates_names a.selected{ + background-color: #ffde5c; +} + +.theme_images li{ + display:block; + float: left; + margin-right: 50px; + margin-bottom: 20px; + margin-top: 10px; + overflow: hidden; + width: 180px; + white-space: nowrap; +} +.theme_images .theme_image{ + display: table; +} +.theme_images li a.preview{ + width: 180px; + height: 180px; + border: 1px solid #e0e0e0; + display: table-cell; + vertical-align:middle; + background-color: #ffffff; + text-align: center; + background-image: url(../images/transparent.gif); +} +.theme_images li a img{ + max-width: 170px; + max-height: 170px; +} +.theme_images li .name{ + font-size: 18px; + max-width: 150px; + height: 25px; + overflow: hidden; + margin-bottom: 3px; +} +.theme_images li .name input{ + font-size: 16px; + width: 130px; + margin-top: -3px; +} +.theme_images li a.edit, .theme_images li a.delete{ + float:right; + margin-top: 3px; + margin-left: 3px; +} + +.themes li .name{ + font-size: 18px; + max-width: 150px; + height: 25px; + overflow: hidden; + margin-bottom: 3px; +} +.themes li .name input{ + font-size: 16px; + width: 130px; + margin-top: -3px; +} +.themes li a.edit, .themes li a.delete, .themes li a.select{ + float:right; + margin-top: 3px; + margin-right: 3px; +} +.themes li img.tick{ + margin-top: 3px; + margin-right: 3px; + float:left; +} +h1.locked{ + background-image: url(../images/lock.png); + background-repeat: no-repeat; + background-position: left center; + padding-left: 35px; + margin-left: -5px; +} + + +.theme_images li p.size{ + float: left; + color: #909090; +} +div.upload_image{ + margin-bottom: 20px; +} +div.upload_image span#upload_image{ + margin-top: 5px; + background-repeat: no-repeat; + padding-left: 20px; + margin-right: 5px; +} +div.upload_image span#upload_image{ background-image: url(../images/picture_add.png); } +div.upload_image input{ + display: block; + width: 400px; + margin-top:10px; + font-size: 14px; +} + + +.input_autocomplete{ + background-image: url(../images/combobox.png); + background-repeat: no-repeat; + background-position: right center; + font-size: 12px; + height: 16px; + width: 290px; + margin-top: 4px; +} +.icons a.edit { background-image: url(../images/pencil.png); } +.icons a.view { background-image: url(../images/view.png); } +.icons a.view.no { background-image: url(../images/view_grey.png); } +.icons input.yandex + a.yandex { background-image: url(../images/yandex_off.png); } +.icons input.yandex.enabled + a.yandex { background-image: url(../images/yandex.png); } +.icons a.yandex.loading_icon { background-image: url(../images/loader.gif)!important; } + + +#variants_block ul > li { + height: auto; + min-height: 31px; +} + +#variants_block .variant_options{ + clear: both; + margin-left: 20px; +} + #variants_block .variant_options ul li{ + float: none; + line-height: 20px; + height: auto; + min-height: 20px!important; + padding: 0 0 2px; + margin: 2px 0; + width: 600px; + border-bottom: 1px solid #ccc; + } + #variants_block .variant_options ul li label{ + float: left; + width: 200px; + padding-top: 3px; + line-height: 15px; + font-size: 12px; + } + #variants_block .variant_options ul li strong{ + float: left; + width: 200px; + } + #variants_block .variant_options ul li input{ + float: left; + width: 200px; + height: 16px; + } + #variants_block .variant_options ul li a.delete{ + float: left; + width: 20px; + height: 20px; + background: url(../images/delete.png) no-repeat center center; + margin-left: 10px; + } + #variants_block .variant_options ul li .cl{ + clear: both; + + } +#variants_block .variant_options span.addv { + display: block; + background-repeat: no-repeat; + font-size: 12px; + padding-left: 20px; + float: right; + background-image: url(../images/plus-circle.png); +} + +.mb { + margin-bottom: 30px; +} + diff --git a/simpla/design/css/utils.css b/simpla/design/css/utils.css new file mode 100644 index 0000000..974c3a2 --- /dev/null +++ b/simpla/design/css/utils.css @@ -0,0 +1,261 @@ +.text-monospace {font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;} +.text-justify {text-align: justify !important;} +.text-wrap {white-space: normal !important;} +.text-nowrap {white-space: nowrap !important;} +.text-truncate {overflow: hidden;text-overflow: ellipsis;white-space: nowrap;} +.text-left {text-align: left !important;} +.text-right {text-align: right !important;} +.text-center {text-align: center !important;} +.text-lowercase {text-transform: lowercase !important;} +.text-uppercase {text-transform: uppercase !important;} +.text-capitalize {text-transform: capitalize !important;} +.text-hide {font: 0/0 a;color: transparent;text-shadow: none;background-color: transparent;border: 0;} +.text-decoration-none {text-decoration: none !important;} +.text-break {word-break: break-word !important;word-wrap: break-word !important;} +.text-reset {color: inherit !important;} + +.text-white {color: #fff !important;} +.text-primary {color: #007bff !important;} +a.text-primary:hover, a.text-primary:focus {color: #0056b3 !important;} +.text-secondary {color: #6c757d !important;} +a.text-secondary:hover, a.text-secondary:focus {color: #494f54 !important;} +.text-success {color: #28a745 !important;} +a.text-success:hover, a.text-success:focus {color: #19692c !important;} +.text-info {color: #17a2b8 !important;} +a.text-info:hover, a.text-info:focus {color: #0f6674 !important;} +.text-warning {color: #ffc107 !important;} +a.text-warning:hover, a.text-warning:focus {color: #ba8b00 !important;} +.text-danger {color: #dc3545 !important;} +a.text-danger:hover, a.text-danger:focus {color: #a71d2a !important;} +.text-light {color: #f8f9fa !important;} +a.text-light:hover, a.text-light:focus {color: #cbd3da !important;} +.text-dark {color: #343a40 !important;} +a.text-dark:hover, a.text-dark:focus {color: #121416 !important;} +.text-body {color: #212529 !important;} +.text-muted {color: #6c757d !important;} +.text-black-50 {color: rgba(0, 0, 0, 0.5) !important;} +.text-white-50 {color: rgba(255, 255, 255, 0.5) !important;} + +.bg-white { background-color: #fff !important;} +.rounded { border-radius: 1rem } + +.w-25 { width: 25% !important;} +.w-50 { width: 50% !important;} +.w-75 { width: 75% !important;} +.w-100 { width: 100% !important;} +.w-auto { width: auto !important;} +.h-25 { height: 25% !important;} +.h-50 { height: 50% !important;} +.h-75 { height: 75% !important;} +.h-100 { height: 100% !important;} +.h-auto { height: auto !important;} + +.mw-100 { max-width: 100% !important;} +.mh-100 { max-height: 100% !important;} +.min-vw-100 { min-width: 100vw !important;} +.min-vh-100 { min-height: 100vh !important;} +.vw-100 { width: 100vw !important;} +.vh-100 { height: 100vh !important;} + +.m-0 { margin: 0 !important;} +.mt-0, .my-0 { margin-top: 0 !important;} +.mr-0, .mx-0 { margin-right: 0 !important;} +.mb-0, .my-0 { margin-bottom: 0 !important;} +.ml-0, .mx-0 { margin-left: 0 !important;} +.m-1 { margin: 0.25rem !important;} +.mt-1, .my-1 { margin-top: 0.25rem !important;} +.mr-1, .mx-1 { margin-right: 0.25rem !important;} +.mb-1, .my-1 { margin-bottom: 0.25rem !important;} +.ml-1, .mx-1 { margin-left: 0.25rem !important;} +.m-2 { margin: 0.5rem !important;} +.mt-2, .my-2 { margin-top: 0.5rem !important;} +.mr-2, .mx-2 { margin-right: 0.5rem !important;} +.mb-2, .my-2 { margin-bottom: 0.5rem !important;} +.ml-2, .mx-2 { margin-left: 0.5rem !important;} +.m-3 {margin: 1rem !important;} +.mt-3, .my-3 {margin-top: 1rem !important;} +.mr-3, .mx-3 {margin-right: 1rem !important;} +.mb-3, .my-3 {margin-bottom: 1rem !important;} +.ml-3, .mx-3 {margin-left: 1rem !important;} +.m-4 {margin: 1.5rem !important;} +.mt-4, .my-4 {margin-top: 1.5rem !important;} +.mr-4, .mx-4 {margin-right: 1.5rem !important;} +.mb-4, .my-4 {margin-bottom: 1.5rem !important;} +.ml-4, .mx-4 {margin-left: 1.5rem !important;} +.m-5 {margin: 3rem !important;} +.mt-5, .my-5 {margin-top: 3rem !important;} +.mr-5, .mx-5 {margin-right: 3rem !important;} +.mb-5, .my-5 {margin-bottom: 3rem !important;} +.ml-5, .mx-5 {margin-left: 3rem !important;} + +.p-0 {padding: 0 !important;} +.pt-0,.py-0 {padding-top: 0 !important;} +.pr-0,.px-0 {padding-right: 0 !important;} +.pb-0,.py-0 {padding-bottom: 0 !important;} +.pl-0,.px-0 {padding-left: 0 !important;} +.p-1 {padding: 0.25rem !important;} +.pt-1,.py-1 {padding-top: 0.25rem !important;} +.pr-1,.px-1 {padding-right: 0.25rem !important;} +.pb-1,.py-1 {padding-bottom: 0.25rem !important;} +.pl-1,.px-1 {padding-left: 0.25rem !important;} +.p-2 {padding: 0.5rem !important;} +.pt-2,.py-2 {padding-top: 0.5rem !important;} +.pr-2,.px-2 {padding-right: 0.5rem !important;} +.pb-2,.py-2 {padding-bottom: 0.5rem !important;} +.pl-2,.px-2 {padding-left: 0.5rem !important;} +.p-3 {padding: 1rem !important;} +.pt-3,.py-3 {padding-top: 1rem !important;} +.pr-3,.px-3 {padding-right: 1rem !important;} +.pb-3,.py-3 {padding-bottom: 1rem !important;} +.pl-3,.px-3 {padding-left: 1rem !important;} +.p-4 {padding: 1.5rem !important;} +.pt-4,.py-4 {padding-top: 1.5rem !important;} +.pr-4,.px-4 {padding-right: 1.5rem !important;} +.pb-4,.py-4 {padding-bottom: 1.5rem !important;} +.pl-4,.px-4 {padding-left: 1.5rem !important;} +.p-5 {padding: 3rem !important;} +.pt-5,.py-5 {padding-top: 3rem !important;} +.pr-5,.px-5 {padding-right: 3rem !important;} +.pb-5,.py-5 {padding-bottom: 3rem !important;} +.pl-5,.px-5 {padding-left: 3rem !important;} + +.m-n1 {margin: -0.25rem !important;} +.mt-n1,.my-n1 {margin-top: -0.25rem !important;} +.mr-n1,.mx-n1 {margin-right: -0.25rem !important;} +.mb-n1,.my-n1 {margin-bottom: -0.25rem !important;} +.ml-n1,.mx-n1 {margin-left: -0.25rem !important;} +.m-n2 {margin: -0.5rem !important;} +.mt-n2,.my-n2 {margin-top: -0.5rem !important;} +.mr-n2,.mx-n2 {margin-right: -0.5rem !important;} +.mb-n2,.my-n2 {margin-bottom: -0.5rem !important;} +.ml-n2,.mx-n2 {margin-left: -0.5rem !important;} +.m-n3 {margin: -1rem !important;} +.mt-n3,.my-n3 {margin-top: -1rem !important;} +.mr-n3,.mx-n3 {margin-right: -1rem !important;} +.mb-n3,.my-n3 {margin-bottom: -1rem !important;} +.ml-n3,.mx-n3 {margin-left: -1rem !important;} +.m-n4 {margin: -1.5rem !important;} +.mt-n4,.my-n4 {margin-top: -1.5rem !important;} +.mr-n4,.mx-n4 {margin-right: -1.5rem !important;} +.mb-n4,.my-n4 {margin-bottom: -1.5rem !important;} +.ml-n4,.mx-n4 {margin-left: -1.5rem !important;} +.m-n5 {margin: -3rem !important;} +.mt-n5,.my-n5 {margin-top: -3rem !important;} +.mr-n5,.mx-n5 {margin-right: -3rem !important;} +.mb-n5,.my-n5 { margin-bottom: -3rem !important;} +.ml-n5,.mx-n5 {margin-left: -3rem !important;} +.m-auto {margin: auto !important;} +.mt-auto,.my-auto {margin-top: auto !important;} +.mr-auto,.mx-auto {margin-right: auto !important;} +.mb-auto,.my-auto {margin-bottom: auto !important;} +.ml-auto,.mx-auto {margin-left: auto !important;} + +.clearfix::after {display: block;clear: both;content: "";} +.float-left {float: left !important;} +.float-right {float: right !important;} +.float-none {float: none !important;} + +.stretched-link::after {position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1;content: "";} +.position-static {position: static !important;} +.position-relative {position: relative !important;} +.position-absolute {position: absolute !important;} +.position-fixed {position: fixed !important;} + +.d-inline {display: inline !important;} +.d-inline-block {display: inline-block !important;} +.d-block {display: block !important;} +.d-grid {display: grid !important;} +.d-table {display: table !important;} +.d-table-row {display: table-row !important;} +.d-table-cell {display: table-cell !important;} +.d-flex {display: flex !important;} +.d-inline-flex {display: inline-flex !important;} +.d-none {display: none !important;} +.display-none {display: none;} + +.flex-row {flex-direction: row !important;} +.flex-column {flex-direction: column !important;} +.flex-row-reverse {flex-direction: row-reverse !important;} +.flex-column-reverse {flex-direction: column-reverse !important;} +.flex-wrap {flex-wrap: wrap !important;} +.flex-nowrap {flex-wrap: nowrap !important;} +.flex-wrap-reverse {flex-wrap: wrap-reverse !important;} +.flex-fill {flex: 1 1 auto !important;} +.flex-grow-0 {flex-grow: 0 !important;} +.flex-grow-1 {flex-grow: 1 !important;} +.flex-shrink-0 {flex-shrink: 0 !important;} +.flex-shrink-1 {flex-shrink: 1 !important;} +.justify-content-start {justify-content: flex-start !important;} +.justify-content-end {justify-content: flex-end !important;} +.justify-content-center {justify-content: center !important;} +.justify-content-between {justify-content: space-between !important;} +.justify-content-around {justify-content: space-around !important;} +.align-items-start {align-items: flex-start !important;} +.align-items-end {align-items: flex-end !important;} +.align-items-center {align-items: center !important;} +.align-items-baseline {align-items: baseline !important;} +.align-items-stretch {align-items: stretch !important;} +.align-content-start {align-content: flex-start !important;} +.align-content-end {align-content: flex-end !important;} +.align-content-center {align-content: center !important;} +.align-content-between {align-content: space-between !important;} +.align-content-around {align-content: space-around !important;} +.align-content-stretch {align-content: stretch !important;} +.align-self-auto {align-self: auto !important;} +.align-self-start {align-self: flex-start !important;} +.align-self-end {align-self: flex-end !important;} +.align-self-center {align-self: center !important;} +.align-self-baseline {align-self: baseline !important;} +.align-self-stretch {align-self: stretch !important;} + +.border {border: 1px solid #dee2e6 !important;} +.border-top {border-top: 1px solid #dee2e6 !important;} +.border-right {border-right: 1px solid #dee2e6 !important;} +.border-bottom {border-bottom: 1px solid #dee2e6 !important;} +.border-left {border-left: 1px solid #dee2e6 !important;} +.border-0 {border: 0 !important;} +.border-top-0 {border-top: 0 !important;} +.border-right-0 {border-right: 0 !important;} +.border-dark {border-color: #aaa !important;} + +.stretched-link::after { position: absolute; top: 0;right: 0;bottom: 0;left: 0;z-index: 1;pointer-events: auto;content: "";background-color: rgba(0, 0, 0, 0);} + +/* autocomplete */ +.autocomplete-w1 {position:absolute; top:0px; left:0px; margin:6px 0 0 6px;} +.autocomplete { border:1px solid #999; background:#FFF; cursor:default; text-align:left; overflow:auto; min-width: 300px; margin:-2px 6px 6px -6px;} +.autocomplete .selected { background:#F0F0F0; } +.autocomplete div { padding:2px 5px; white-space:nowrap; } +.autocomplete strong { font-weight:normal; color:#3399FF; } + +.autocomplete-suggestions { + overflow: auto; + /*overflow-y: auto;*/ + min-width: 300px; + border:1px solid #999; + background: #fff; + margin:-1px 0 0 0; +} +.autocomplete-suggestions strong { color:#3399FF; } +.autocomplete-suggestion { + cursor: pointer; + margin:6px 5px; + white-space:nowrap; +} + +/* формы */ +form .form-group { + display: flex; + align-items: center; + margin-top: .5rem; +} +form .required:after { + content: '*'; + color: red; + font-weight: bold; +} +.form-group label { + width: 50%; +} +.form-group input[type=text] { + box-sizing: border-box; +} \ No newline at end of file diff --git a/simpla/design/html/action_photo.tpl b/simpla/design/html/action_photo.tpl new file mode 100644 index 0000000..a9ba9fd --- /dev/null +++ b/simpla/design/html/action_photo.tpl @@ -0,0 +1,46 @@ +{literal} + + + + + +
+
+ Добавить файл + +
+ + +
+{/literal} + {foreach from=$action_photos item=ph} +
+ + +
+ +
+ +
+ +
+
+ {/foreach} +{literal} + +
+
+ + +
+ + + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/actions.tpl b/simpla/design/html/actions.tpl new file mode 100644 index 0000000..dbb9dc4 --- /dev/null +++ b/simpla/design/html/actions.tpl @@ -0,0 +1,152 @@ +{* Вкладки *} +{capture name=tabs} + +
  • Блог
  • +
  • Примеры работ
  • +
  • Категории примеров работ
  • +
  • Акции
  • +
  • Марки и модели
  • +{/capture} +{* Title *} +{$meta_title='Акции' scope=parent} + +{* Поиск *} +{if $posts || $keyword} +
    + +
    +{/if} + +{* Заголовок *} + + +{if $posts} +
    + + + {include file='pagination.tpl'} + + +
    + + +
    + {foreach $posts as $post} +
    + +
    + +
    +
    + {$post->name|escape} +
    + {$post->date|date} +
    +
    + + + +
    +
    +
    + {/foreach} +
    + + +
    + + + + + + + + +
    + +
    + + + {include file='pagination.tpl'} + + +
    +{/if} + +{* On document load *} +{literal} + + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/actions_post.tpl b/simpla/design/html/actions_post.tpl new file mode 100644 index 0000000..caf39ca --- /dev/null +++ b/simpla/design/html/actions_post.tpl @@ -0,0 +1,212 @@ +{capture name=tabs} +
  • Акции
  • +{/capture} + +{if $post->id} +{$meta_title = $post->name scope=parent} +{else} +{$meta_title = 'Новая акция' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{* On document load *} +{literal} + + + +{/literal} + +{if $message_success} + +
    + {if $message_success == 'added'}Запись добавлена{elseif $message_success == 'updated'}Запись обновлена{/if} + Открыть запись на сайте + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error == 'url_exists'}Запись с таким адресом уже существует{/if} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + visible}checked{/if}/> +
    + +
    + + +
    + + +
    +
      +
    • +
    +
    +
    + +

    Параметры страницы

    + +
      +
    • /actions/
    • +
    • +
    • +
    • +
    +
    + + + + +
    + + + +
    + +
    +

    Изображение

    + + + {if $post->image} +
      +
    • + + +
    • +
    + {/if} +
    +
    + + + +
    +

    Краткое описание

    + +
    + +
    +

    Полное описание

    + +
    + + + + {if $post->id}{include file="action_photo.tpl"}{/if} +
    + diff --git a/simpla/design/html/article.tpl b/simpla/design/html/article.tpl new file mode 100644 index 0000000..58ab661 --- /dev/null +++ b/simpla/design/html/article.tpl @@ -0,0 +1,606 @@ +{capture name=tabs} +
  • Блог
  • +
  • Статьи
  • +
  • Категории статей
  • +
  • Марки и модели
  • +{/capture} + +{if $article->id} +{$meta_title = $article->name scope=parent} +{else} +{$meta_title = 'Новая статья' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{* On document load *} +{literal} + + + + + +{/literal} + +{if $message_success} + +
    + {if $message_success == 'added'}Запись добавлена{elseif $message_success == 'updated'}Запись обновлена{/if} + Открыть запись на сайте + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error == 'url_exists'}Запись с таким адресом уже существует{/if} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + visible}checked{/if}/> +
    + +
    + + {if $article->id && $article->firstCategory && $article->firstCategory->id == 3} +
    + с формой заказа https://atomicgarage.ru/{$config->worksUrl}/{$article->url|escape}/?showform=1 +
    + {/if} + +
    + +
    +
      + {foreach name=categories from=$article_categories item=product_category} +
    • + + Дополнительная категория + Удалить +
    • + {/foreach} +
    +
    +
    + + +
    + + +
    +
      +
    • + +
    +
    +
    + +

    Параметры страницы

    + +
      +
    • +
      /article/
      + +
    • +
    • +
    • +
    • +
    + +
    +

    Связанные марки

    + + +
    +
    +

    Связанные модели

    + + +
    +
    +

    Связанные услуги

    + + +
    + + +
    + + + + +
    + + + +
    + + +
    +

    Изображение

    + + + {if $article->image} +
      +
    • + + +
    • +
    + {/if} +
    + + + +
    +

    Связанные товары

    + + +
    + +
    +

    Связанные статьи

    + + +
    + + + + + +
    + + + +
    +

    Краткое описание

    + +
    + +
    +

    Полное описание

    + +
    + + + + {if $article->id}{include file="article_photo.tpl"}{/if} + +
    + diff --git a/simpla/design/html/article_categories.tpl b/simpla/design/html/article_categories.tpl new file mode 100644 index 0000000..df64db5 --- /dev/null +++ b/simpla/design/html/article_categories.tpl @@ -0,0 +1,142 @@ +{* Вкладки *} +{capture name=tabs} +
  • Блог
  • +
  • Примеры работ
  • +
  • Категории примеров работ
  • +
  • Акции
  • +
  • Марки и модели
  • +{/capture} + +{* Title *} +{$meta_title='Категории' scope=parent} + +{* Заголовок *} + + + +{if $categories} +
    + +
    + + + {function name=categories_tree level=0} + {if $categories} +
    + + {foreach $categories as $category} +
    +
    + +
    +
    + +
    + +
    + + + +
    +
    +
    + {categories_tree categories=$category->subcategories level=$level+1} +
    + {/foreach} + +
    + {/if} + {/function} + {categories_tree categories=$categories} + +
    + + + + + + + + +
    + +
    +
    +{else} +Нет категорий +{/if} + +{literal} + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/article_category.tpl b/simpla/design/html/article_category.tpl new file mode 100644 index 0000000..508266e --- /dev/null +++ b/simpla/design/html/article_category.tpl @@ -0,0 +1,233 @@ +{capture name=tabs} +
  • Блог
  • +
  • Статьи
  • +
  • Категории статей
  • +
  • Марки и модели
  • +{/capture} +{if $category->id} +{$meta_title = $category->name scope=parent} +{else} +{$meta_title = 'Новая категория' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{* On document load *} +{literal} + + + + + + + +{/literal} + + +{if $message_success} + +
    + {if $message_success=='added'}Категория добавлена{elseif $message_success=='updated'}Категория обновлена{else}{$message_success}{/if} + Открыть категорию на сайте + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error=='url_exists'}Категория с таким адресом уже существует{else}{$message_error}{/if} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + visible}checked{/if}/> +
    +
    + +
    + +
    + + +
    + + +
    +

    Параметры страницы

    +
      +
    • /articles/
    • +
    • +
    • +
    • +
    +
    + + + {* + +
    +

    Экспорт товара

    +
      +
    • Бид руб.
    • +
    • +
    +
    + + *} + +
    + +
    + + +
    +

    Изображение

    + + + {if $category->image} +
      +
    • + + +
    • +
    + {/if} +
    +
    + + + +
    +

    Описание

    + +
    + + + +
    + + diff --git a/simpla/design/html/article_photo.tpl b/simpla/design/html/article_photo.tpl new file mode 100644 index 0000000..c7bc50b --- /dev/null +++ b/simpla/design/html/article_photo.tpl @@ -0,0 +1,46 @@ +{literal} + + + + + +
    +
    + Добавить файл + +
    + + +
    +{/literal} + {foreach from=$article_photos item=ph} +
    + + +
    + +
    + +
    + +
    +
    + {/foreach} +{literal} + +
    +
    + + +
    + + + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/articles.tpl b/simpla/design/html/articles.tpl new file mode 100644 index 0000000..4557619 --- /dev/null +++ b/simpla/design/html/articles.tpl @@ -0,0 +1,173 @@ +{* Вкладки *} +{capture name=tabs} +
  • Блог
  • +
  • Примеры работ
  • +
  • Категории примеров работ
  • +
  • Акции
  • +
  • Марки и модели
  • +{/capture} + +{* Title *} +{$meta_title='Статьи' scope=parent} + +{* Поиск *} +{if $articles || $keyword} +
    + +
    +{/if} + +{* Заголовок *} + + +{if $articles} +
    + + + {include file='pagination.tpl'} + + +
    + + +
    + {foreach $articles as $article} +
    + +
    + +
    +
    + {$article->name|escape} +
    + {$article->date|date} → {$article->category} просмотров: {$article->visited} +
    +
    + + + +
    +
    +
    + {/foreach} +
    + + +
    + + + + + + + + +
    + +
    + + + {include file='pagination.tpl'} + + +
    +{/if} + +
    + + + {function name=categories_tree} + {if $categories} + + {/if} + {/function} + {categories_tree categories=$categories} + + +
    + +{* On document load *} +{literal} + + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/articlesTabs.tpl b/simpla/design/html/articlesTabs.tpl new file mode 100644 index 0000000..e69de29 diff --git a/simpla/design/html/backup.tpl b/simpla/design/html/backup.tpl new file mode 100644 index 0000000..154dd63 --- /dev/null +++ b/simpla/design/html/backup.tpl @@ -0,0 +1,152 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('import', $manager->permissions)}
  • Импорт
  • {/if} + {if in_array('export', $manager->permissions)}
  • Экспорт
  • {/if} +
  • Бекап
  • +{/capture} + +{* Title *} +{$meta_title='Бекап' scope=parent} + +{* Заголовок *} + + +{if $message_success} + +
    + {if $message_success == 'created'}Бекап создан{elseif $message_success == 'restored'}Бекап восстановлен{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + + {if $message_error == 'no_permission'}Установите права на запись в папку {$backup_files_dir} + {else}{$message_error}{/if} + +
    + +{/if} + +{if $backups} +
    + +
    + + +
    + {foreach $backups as $backup} +
    + {if $message_error != 'no_permission'} +
    + +
    + {/if} +
    + {$backup->name} + ({if $backup->size>1024*1024}{($backup->size/1024/1024)|round:2} МБ{else}{($backup->size/1024)|round:2} КБ{/if}) +
    +
    + {if $message_error != 'no_permission'} + + {/if} +
    +
    + +
    +
    +
    + {/foreach} +
    + + {if $message_error != 'no_permission'} +
    + + + + + + + +
    + {/if} + +
    +
    +{/if} + + +{literal} + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/banners.add.edit.tpl b/simpla/design/html/banners.add.edit.tpl new file mode 100644 index 0000000..64f2508 --- /dev/null +++ b/simpla/design/html/banners.add.edit.tpl @@ -0,0 +1,136 @@ +{* Вкладки *} +{capture name=tabs} +
  • Группы баннеров
  • +
  • Группа » {$banners_group->name}
  • +
  • {if $banner->image}Изменить баннер » "{$banner->name}"{else}Добавить баннер{/if}
  • +{/capture} + +{* Title *} +{$meta_title='Добавить баннер' scope=parent} + + + {include file='pagination.tpl'} + + + {* Заголовок *} + + + + + {if $message_success} + +
    + {if $message_success=='added'}Баннер добавлен{elseif $message_success=='updated'}Баннер изменен{else}{$message_success|escape}{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + + {/if} + + {if $message_error} + +
    + {if $message_error=='error_uploading_image'}Ошибка загрузки изображения баннера{elseif $message_error=='empty_name'}Введите название баннера{elseif $message_error=='not_image'}Вы не указалии изображение баннера{elseif $message_error=='empty_url'}Вы не указали URL страницы на которую должен ссылаться баннер{else}{$message_error|escape}{/if} +
    + + {/if} + + {if !$message_success} + {* Основная форма *} +
    + + {if $banner->image}{/if} +
    +
    + visible}checked{/if}/> +
    +
    +
      +
    • +
    • +
    • + {if $smarty.get.group==1}
    • Ширина баннера 260px!
    • {/if} +
    • +
    +
    +
    {if $banner->image}{else}БАННЕРизображение отсутсвует{/if} +
    + +
    +
    +
    +

    Баннер отображать на:

    + show_all_pages}checked{/if} id="show_all_pages"/> +

    +
      +
    • + + +
    • +
    • + + +
    • +
    +
    +
    • +
    +
    +
    + +
    + {literal} + + {/literal} + {/if} + diff --git a/simpla/design/html/banners.groups.add.edit.tpl b/simpla/design/html/banners.groups.add.edit.tpl new file mode 100644 index 0000000..6864957 --- /dev/null +++ b/simpla/design/html/banners.groups.add.edit.tpl @@ -0,0 +1,56 @@ +{* Вкладки *} +{capture name=tabs} +
  • Группы баннеров
  • +{/capture} + +{* Title *} +{$meta_title='Добавить/редактировать группу баннеров' scope=parent} + + + {include file='pagination.tpl'} + + + {* Заголовок *} + + + + + {if $message_success} + +
    + {if $message_success=='added'}Группа "{$group->name}" добавлена{elseif $message_success=='updated'}Группа "{$group->name}" изменена{else}{$message_success|escape}{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + + {/if} + + {if $message_error} + +
    + {if $message_error=='empty_name'}Введите название группы баннеров{else}{$message_error|escape}{/if} +
    + + {/if} + + {if !$message_success} +
    +
    + +
    + + {/if} \ No newline at end of file diff --git a/simpla/design/html/banners.groups.tpl b/simpla/design/html/banners.groups.tpl new file mode 100644 index 0000000..6562d4d --- /dev/null +++ b/simpla/design/html/banners.groups.tpl @@ -0,0 +1,119 @@ +{* Вкладки *} +{capture name=tabs} +
  • Группы баннеров
  • +{/capture} + +{* Title *} +{$meta_title='Управление баннерами сайта' scope=parent} + + + + + + {* Основная форма *} + {if $groups} +
    + + +
    + {foreach $groups as $group} +
    +
    + +
    + +
    + +
    +
    + + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + +
    +
    {/if} + + + {include file='pagination.tpl'} + + + + + + +{* On document load *} +{literal} + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/banners.show.list.tpl b/simpla/design/html/banners.show.list.tpl new file mode 100644 index 0000000..6049bed --- /dev/null +++ b/simpla/design/html/banners.show.list.tpl @@ -0,0 +1,210 @@ +{* Вкладки *} +{capture name=tabs} +
  • Группы баннеров
  • Группа » {$banners_group->name}
  • +{/capture} + +{* Title *} +{$meta_title='Группа » '|cat:$banners_group->name|cat:' « Управление баннерами сайта' scope=parent} + + + {include file='pagination.tpl'} + + + {* Заголовок *} + + + + + {* Основная форма *} + {if $banners} +
    + + +
    + {foreach $banners as $banner} +
    + +
    +
    + +
    + + + +
    +
    + {/foreach} +
    + +
    + + + + + + + +
    +
    {/if} + + + {include file='pagination.tpl'} + + + + + + +{* On document load *} +{literal} + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/blog.tpl b/simpla/design/html/blog.tpl new file mode 100644 index 0000000..2fc3bbc --- /dev/null +++ b/simpla/design/html/blog.tpl @@ -0,0 +1,152 @@ +{* Вкладки *} +{capture name=tabs} +
  • Блог
  • +
  • Примеры работ
  • +
  • Категории примеров работ
  • +
  • Акции
  • +
  • Марки и модели
  • +{/capture} + +{* Title *} +{$meta_title='Блог' scope=parent} + +{* Поиск *} +{if $posts || $keyword} +
    + +
    +{/if} + +{* Заголовок *} + + +{if $posts} +
    + + + {include file='pagination.tpl'} + + +
    + + +
    + {foreach $posts as $post} +
    + +
    + +
    +
    + {$post->name|escape} +
    + {$post->date|date} +
    +
    + + + +
    +
    +
    + {/foreach} +
    + + +
    + + + + + + + + +
    + +
    + + + {include file='pagination.tpl'} + + +
    +{/if} + +{* On document load *} +{literal} + + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/brand.tpl b/simpla/design/html/brand.tpl new file mode 100644 index 0000000..6ebdf56 --- /dev/null +++ b/simpla/design/html/brand.tpl @@ -0,0 +1,206 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('products', $manager->permissions)}
  • Товары
  • {/if} + {if in_array('categories', $manager->permissions)}
  • Категории
  • {/if} +
  • Бренды
  • + {if in_array('features', $manager->permissions)}
  • Свойства
  • {/if} +{/capture} + +{if $brand->id} +{$meta_title = $brand->name scope=parent} +{else} +{$meta_title = 'Новый бренд' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + + +{* On document load *} +{literal} + + +{/literal} + +{if $message_success} + +
    + {if $message_success=='added'}Бренд добавлен{elseif $message_success=='updated'}Бренд обновлен{else}{$message_success}{/if} + Открыть бренд на сайте + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error=='url_exists'}Бренд с таким адресом уже существует{else}{$message_error}{/if} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + + + +
    + + +
    +

    Параметры страницы

    +
      +
    • /brands/
    • +
    • +
    • +
    • +
    +
    + + + {* + +
    +

    Экспорт товара

    +
      +
    • Бид руб.
    • +
    • +
    +
    + + *} + + +
    + + + +
    + + +
    +

    Изображение бренда

    + + + {if $brand->image} +
      +
    • + + +
    • +
    + {/if} +
    + +
    + + + +
    +

    Описание

    + +
    + + + + +
    + + diff --git a/simpla/design/html/brands.tpl b/simpla/design/html/brands.tpl new file mode 100644 index 0000000..48ff264 --- /dev/null +++ b/simpla/design/html/brands.tpl @@ -0,0 +1,119 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('products', $manager->permissions)}
  • Товары
  • {/if} + {if in_array('categories', $manager->permissions)}
  • Категории
  • {/if} +
  • Бренды
  • + {if in_array('features', $manager->permissions)}
  • Свойства
  • {/if} +{/capture} + +{* Title *} +{$meta_title='Бренды' scope=parent} + +{* Заголовок *} + + +{if $brands} +
    + +
    + + +
    + {foreach $brands as $brand} +
    +
    + +
    + +
    + + + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + +
    + +
    +
    +{else} +Нет брендов +{/if} + +{literal} + +{/literal} diff --git a/simpla/design/html/callbacks.tpl b/simpla/design/html/callbacks.tpl new file mode 100644 index 0000000..8273b92 --- /dev/null +++ b/simpla/design/html/callbacks.tpl @@ -0,0 +1,125 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('comments', $manager->permissions)}
  • Комментарии
  • {/if} + {if in_array('feedbacks', $manager->permissions)}
  • Обратная связь
  • {/if} +
  • Заказ обратного звонка
  • +{/capture} + +{* Title *} +{$meta_title='Заказ обратного звонка' scope=parent} + +{* Заголовок *} + + +
    + + + {include file='pagination.tpl'} + + + {if $callbacks} +
    + + +
    + + {foreach $callbacks as $callback} +
    +
    + +
    +
    +
    + {$callback->name|escape} +
    +
    + Телефон: {$callback->phone|escape|nl2br} +
    +
    + Сообщение: {$callback->message|escape|nl2br} +
    +
    + Заявка отправлена {$callback->date|date} в {$callback->date|time} +
    +
    +
    + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + + + +
    +
    + + {else} + Нет сообщений + {/if} + + + {include file='pagination.tpl'} + + +
    + + +
    + +
    + + +{literal} + +{/literal} diff --git a/simpla/design/html/categories.tpl b/simpla/design/html/categories.tpl new file mode 100644 index 0000000..995b6ea --- /dev/null +++ b/simpla/design/html/categories.tpl @@ -0,0 +1,198 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('products', $manager->permissions)}
  • Товары
  • {/if} +
  • Категории
  • + {if in_array('brands', $manager->permissions)}
  • Бренды
  • {/if} + {if in_array('features', $manager->permissions)}
  • Свойства
  • {/if} +{/capture} + +{* Title *} +{$meta_title='Категории' scope=parent} + +{* Заголовок *} + + + +{if $categories} +
    + +
    + + + {function name=categories_tree level=0} + {if $categories} +
    + + {foreach $categories as $category} +
    +
    + +
    +
    + +
    + +
    + + + + + + + +
    +
    +
    + {categories_tree categories=$category->subcategories level=$level+1} +
    + {/foreach} + +
    + {/if} + {/function} + {categories_tree categories=$categories} + +
    + + + + + + + + +
    + +
    +
    +{else} +Нет категорий +{/if} + +{literal} + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/category.tpl b/simpla/design/html/category.tpl new file mode 100644 index 0000000..c0bb7fc --- /dev/null +++ b/simpla/design/html/category.tpl @@ -0,0 +1,264 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('products', $manager->permissions)}
  • Товары
  • {/if} +
  • Категории
  • + {if in_array('brands', $manager->permissions)}
  • Бренды
  • {/if} + {if in_array('features', $manager->permissions)}
  • Свойства
  • {/if} +{/capture} + +{if $category->id} +{$meta_title = $category->name scope=parent} +{else} +{$meta_title = 'Новая категория' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{* On document load *} +{literal} + + + + + + + +{/literal} + + +{if $message_success} + +
    + {if $message_success=='added'}Категория добавлена{elseif $message_success=='updated'}Категория обновлена{else}{$message_success}{/if} + Открыть категорию на сайте + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error=='url_exists'}Категория с таким адресом уже существует{else}{$message_error}{/if} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + visible}checked{/if}/> +
    +
    + ym}checked{/if}/> +
    +
    + menu}checked{/if}/> +
    +
    + +
    + +
    + + +
    + + +
    +

    Параметры страницы

    +
      +
    • /catalog/
    • +
    • +
    • +
    • +
    • +
    • +
    • + from_subs}checked{/if} /> +
    • +
    • + +
    • +
    +
    + + + {* + +
    +

    Экспорт товара

    +
      +
    • Бид руб.
    • +
    • +
    +
    + + *} + +
    + + + +
    + + +
    +

    Изображение категории

    + + + {if $category->image} +
      +
    • + + +
    • +
    + {/if} +
    +
    + + +
    +

    Анонс

    + +
    + + +
    +

    Описание

    + +
    + +
    +

    Текст внизу

    + +
    + + +
    + + diff --git a/simpla/design/html/comments.tpl b/simpla/design/html/comments.tpl new file mode 100644 index 0000000..fcb40eb --- /dev/null +++ b/simpla/design/html/comments.tpl @@ -0,0 +1,178 @@ +{* Вкладки *} +{capture name=tabs} +
  • Комментарии
  • +
  • Обратная связь
  • +{/capture} + + +{* Title *} +{$meta_title='Комментарии' scope=parent} + +{* Поиск *} +{if $comments || $keyword} +
    + +
    +{/if} + + +{* Заголовок *} + + + +{if $comments} +
    + + + {include file='pagination.tpl'} + + +
    + + +
    + {foreach $comments as $comment} +
    +
    + +
    +
    +
    + {$comment->name|escape} + Одобрить +
    +
    + {$comment->text|escape|nl2br} +
    +
    + Комментарий оставлен {$comment->date|date} в {$comment->date|time} + {if $comment->type == 'product'} + к товару {$comment->product->name} + {elseif $comment->type == 'blog'} + к записи {$comment->post->name} + {elseif $comment->type == 'article'} + к статье {$comment->article->name} + {/if} +
    +
    +
    + +
    +
    +
    + {/foreach} +
    + +
    + Выбрать или + + + + + + + +
    +
    + + + {include file='pagination.tpl'} + + +
    +{else} +Нет комментариев +{/if} + + +
    + + + + + + +
    + + +{literal} + +{/literal} diff --git a/simpla/design/html/coupon.tpl b/simpla/design/html/coupon.tpl new file mode 100644 index 0000000..564df64 --- /dev/null +++ b/simpla/design/html/coupon.tpl @@ -0,0 +1,110 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('users', $manager->permissions)}
  • Покупатели
  • {/if} + {if in_array('groups', $manager->permissions)}
  • Группы
  • {/if} +
  • Купоны
  • +{/capture} + +{if $coupon->code} +{$meta_title = $coupon->code scope=parent} +{else} +{$meta_title = 'Новый купон' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + + +{literal} + +{/literal} + +{if $message_success} + +
    + {if $message_success == 'added'}Купон добавлен{elseif $message_success == 'updated'}Купон изменен{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error == 'code_exists'}Купон с таким кодом уже существует{/if} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + + +
    + +
    +
      +
    • + + +
    • +
    • + + {$currency->sign} +
    • +
    • + + single==1}checked{/if}> +
    • +
    +
    + +
    + + + +
    + +
    +
      +
    • +
    +
    + +
    + + + + +
    + diff --git a/simpla/design/html/coupons.tpl b/simpla/design/html/coupons.tpl new file mode 100644 index 0000000..40324a8 --- /dev/null +++ b/simpla/design/html/coupons.tpl @@ -0,0 +1,141 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('users', $manager->permissions)}
  • Покупатели
  • {/if} + {if in_array('groups', $manager->permissions)}
  • Группы
  • {/if} +
  • Купоны
  • +{/capture} + +{* Title *} +{$meta_title='Купоны' scope=parent} + +{* Заголовок *} + + +{if $coupons} +
    + + + {include file='pagination.tpl'} + + +
    + + +
    + {foreach $coupons as $coupon} +
    +
    + +
    + +
    + Скидка {$coupon->value*1} {if $coupon->type=='absolute'}{$currency->sign}{else}%{/if}
    + {if $coupon->min_order_price>0} +
    + Для заказов от {$coupon->min_order_price|escape} {$currency->sign} +
    + {/if} +
    +
    + {if $coupon->single} +
    + Одноразовый +
    + {/if} + {if $coupon->usages>0} +
    + Использован {$coupon->usages|escape} {$coupon->usages|plural:'раз':'раз':'раза'} +
    + {/if} + {if $coupon->expire} +
    + {if $smarty.now|date_format:'%Y%m%d' <= $coupon->expire|date_format:'%Y%m%d'} + Действует до {$coupon->expire|date} + {else} + Истёк {$coupon->expire|date} + {/if} +
    + {/if} +
    +
    + +
    +
    + + +
    +
    +
    + {/foreach} +
    + + +
    + + + + + + + + +
    + +
    + + + {include file='pagination.tpl'} + + +
    +{/if} + +{* On document load *} +{literal} + + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/currency.tpl b/simpla/design/html/currency.tpl new file mode 100644 index 0000000..d6ab7fc --- /dev/null +++ b/simpla/design/html/currency.tpl @@ -0,0 +1,192 @@ +{capture name=tabs} + {if in_array('settings', $manager->permissions)}
  • Настройки
  • {/if} +
  • Валюты
  • + {if in_array('delivery', $manager->permissions)}
  • Доставка
  • {/if} + {if in_array('payment', $manager->permissions)}
  • Оплата
  • {/if} + {if in_array('managers', $manager->permissions)}
  • Менеджеры
  • {/if} + {if in_array('maillist', $manager->permissions)}
  • Рассылка
  • {/if} +{/capture} + +{$meta_title = 'Валюты' scope=parent} + +{* On document load *} +{literal} + + + + +{/literal} + + + + + + + + +
    + + + + +
    + +
    + {foreach from=$currencies item=c} +
      +
    • +
    • + +
    • +
    • + + +
    • +
    • +
    • +
    • + {if !$c@first} +
      {$c->sign}
      +
      = {$currency->sign}
      + {else} + + + {/if} +
    • +
    • + {if !$c@first} + + {/if} +
    • +
    + {/foreach} + +
    + +
    + + + +
    + + + + + + + +
    +
    + + diff --git a/simpla/design/html/deliveries.tpl b/simpla/design/html/deliveries.tpl new file mode 100644 index 0000000..438a50a --- /dev/null +++ b/simpla/design/html/deliveries.tpl @@ -0,0 +1,171 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('settings', $manager->permissions)}
  • Настройки
  • {/if} + {if in_array('currency', $manager->permissions)}
  • Валюты
  • {/if} +
  • Доставка
  • + {if in_array('payment', $manager->permissions)}
  • Оплата
  • {/if} + {if in_array('managers', $manager->permissions)}
  • Менеджеры
  • {/if} + {if in_array('maillist', $manager->permissions)}
  • Рассылка
  • {/if} +{/capture} + +{* Title *} +{$meta_title='Доставка' scope=parent} + +{* Заголовок *} + + +
    + +
    + + +
    + + {foreach $deliveries as $delivery} +
    + +
    +
    + +
    + +
    + + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + + +
    +
    + +
    + +{literal} + +{/literal} diff --git a/simpla/design/html/delivery.tpl b/simpla/design/html/delivery.tpl new file mode 100644 index 0000000..f4a062a --- /dev/null +++ b/simpla/design/html/delivery.tpl @@ -0,0 +1,115 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('settings', $manager->permissions)}
  • Настройки
  • {/if} + {if in_array('currency', $manager->permissions)}
  • Валюты
  • {/if} +
  • Доставка
  • + {if in_array('payment', $manager->permissions)}
  • Оплата
  • {/if} + {if in_array('managers', $manager->permissions)}
  • Менеджеры
  • {/if} +{/capture} + +{if $delivery->id} +{$meta_title = $delivery->name scope=parent} +{else} +{$meta_title = 'Новый способ доставки' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{* On document load *} +{literal} + + + + + + +{/literal} + + + +{if $message_success} + +
    + {if $message_success == 'added'}Способ доставки добавлен{elseif $message_success == 'updated'}Способ доставки изменен{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {$message_error} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + enabled}checked{/if}/> +
    +
    + + +
    + +
    +

    Стоимость доставки

    +
      +
    • {$currency->sign}
    • +
    • {$currency->sign}
    • +
    • separate_payment}checked{/if} />
    • +
    • ems}checked{/if} />
    • +
    +
    + + +
    + + + +
    +
    +

    Возможные способы оплаты

    +
      + {foreach $payment_methods as $payment_method} +
    • + id, $delivery_payments)}checked{/if}>
      +
    • + {/foreach} +
    +
    +
    + + + +
    +

    Описание

    + +
    + + + +
    + + diff --git a/simpla/design/html/email_callback_admin.tpl b/simpla/design/html/email_callback_admin.tpl new file mode 100644 index 0000000..e212ecd --- /dev/null +++ b/simpla/design/html/email_callback_admin.tpl @@ -0,0 +1,28 @@ +{$subject="Заявка на обратный звонок от `$callback->name|escape`" scope=parent} +

    Заявка на обратный звонок от {$callback->name|escape}

    + + + + + + + + + + + + + +
    + Имя + + {$callback->name|escape} +
    + Телефон + + {$callback->phone|escape} +
    + Сообщение: + + {$callback->message|escape|nl2br} +
    \ No newline at end of file diff --git a/simpla/design/html/email_comment_admin.tpl b/simpla/design/html/email_comment_admin.tpl new file mode 100644 index 0000000..049667a --- /dev/null +++ b/simpla/design/html/email_comment_admin.tpl @@ -0,0 +1,51 @@ +{if $comment->approved} +{$subject="Новый комментарий от `$comment->name|escape`" scope=parent} +{else} +{$subject="Комментарий от `$comment->name|escape` ожидает одобрения" scope=parent} +{/if} +{if $comment->approved} +

    Новый комментарий от {$comment->name|escape}

    +{else} +

    Комментарий от {$comment->name|escape} ожидает одобрения

    +{/if} + + + + + + + + + + + + + + + + + + +
    + Имя + + {$comment->name|escape} +
    + Комментарий + + {$comment->text|escape|nl2br} +
    + Время + + {$comment->date|date} {$comment->date|time} +
    + Статус + + {if $comment->approved} + Одобрен + {else} + Ожидает одобрения + {/if} +
    +

    +Приятной работы с Simpla! \ No newline at end of file diff --git a/simpla/design/html/email_feedback_admin.tpl b/simpla/design/html/email_feedback_admin.tpl new file mode 100644 index 0000000..67e55f5 --- /dev/null +++ b/simpla/design/html/email_feedback_admin.tpl @@ -0,0 +1,38 @@ +{$subject="Вопрос от пользователя `$feedback->name|escape`" scope=parent} +

    Вопрос от пользователя {$feedback->name|escape}

    + + + + + + + + + + + + + + + + + +
    + Имя + + {$feedback->name|escape} +
    + Email + + {$feedback->email|escape} +
    + IP + + {$feedback->ip|escape} (где это?) +
    + Сообщение: + + {$feedback->message|escape|nl2br} +
    +

    +Приятной работы с Simpla! \ No newline at end of file diff --git a/simpla/design/html/email_order_admin.tpl b/simpla/design/html/email_order_admin.tpl new file mode 100644 index 0000000..9597e16 --- /dev/null +++ b/simpla/design/html/email_order_admin.tpl @@ -0,0 +1,177 @@ +{if $order->paid} +{$subject = "Заказ №`$order->id` оплачен" scope=parent} +{else} +{$subject = "Новый заказ №`$order->id`" scope=parent} +{/if} +

    + Заказ №{$order->id} + на сумму {$order->total_price|convert:$main_currency->id} {$main_currency->sign} + {if $order->paid == 1}оплачен{else}еще не оплачен{/if}, + {if $order->status == 0}ждет обработки{elseif $order->status == 1}в обработке{elseif $order->status == 2}выполнен{/if} +

    + + + + + + + + + + {if $order->name} + + + + + {/if} + {if $order->email} + + + + + {/if} + {if $order->phone} + + + + + {/if} + {if $order->address} + + + + + {/if} + {if $order->comment} + + + + + {/if} + + + + +
    + Статус + + {if $order->status == 0} + ждет обработки + {elseif $order->status == 1} + в обработке + {elseif $order->status == 2} + выполнен + {/if} +
    + Оплата + + {if $order->paid == 1} + оплачен + {else} + не оплачен + {/if} +
    + Имя, фамилия + + {$order->name|escape} {$order->name2|escape} + {if $user}(зарегистрированный пользователь){/if} +
    + Email + + {$order->email|escape} +
    + Телефон + + {$order->phone|escape} +
    + Страна, Регион, Город, адрес доставки + + {$order->country|escape}, {$order->region|escape}, {$order->city|escape}, {$order->address|escape}, {$order->index|escape} +
    + Комментарий + + {$order->comment|escape|nl2br} +
    + Дата + + {$order->date|date} {$order->date|time} +
    + +

    Покупатель заказал:

    + + + + {foreach name=purchases from=$purchases item=purchase} + + + + + + {/foreach} + + {if $order->discount} + + + + + + {/if} + + {if $order->coupon_discount>0} + + + + + + {/if} + + {if $delivery && !$order->separate_delivery} + + + + + + {/if} + + + + + + +
    + {$image = $purchase->product->images[0]} + + + {$purchase->product_name} + {$purchase->variant_name} +
    + {foreach from=$purchase->options item=opt key=ok} + {assign var=f value=$features[$ok]} +

    + + + {$opt} + +

    + + {/foreach} +
    +
    + {$purchase->amount} {$settings->units} × {$purchase->price|convert:$main_currency->id} {$main_currency->sign} +
    + Скидка + + {$order->discount} % +
    + Купон {$order->coupon_code} + + −{$order->coupon_discount} {$currency->sign} +
    + {$delivery->name} + + {$order->delivery_price|convert:$main_currency->id} {$main_currency->sign} +
    + Итого + + {$order->total_price|convert:$main_currency->id} {$main_currency->sign} +
    \ No newline at end of file diff --git a/simpla/design/html/export.tpl b/simpla/design/html/export.tpl new file mode 100644 index 0000000..318631b --- /dev/null +++ b/simpla/design/html/export.tpl @@ -0,0 +1,93 @@ +{capture name=tabs} + {if in_array('import', $manager->permissions)}
  • Импорт
  • {/if} +
  • Экспорт
  • + {if in_array('backup', $manager->permissions)}
  • Бекап
  • {/if} +{/capture} +{$meta_title='Экспорт товаров' scope=parent} + + + + + + + +{if $message_error} + +
    + + {if $message_error == 'no_permission'}Установите права на запись в папку {$export_files_dir} + {else}{$message_error}{/if} + +
    + +{/if} + + +
    +

    Экспорт товаров

    + {if $message_error != 'no_permission'} +
    + + {/if} +
    + diff --git a/simpla/design/html/export_users.tpl b/simpla/design/html/export_users.tpl new file mode 100644 index 0000000..7d00055 --- /dev/null +++ b/simpla/design/html/export_users.tpl @@ -0,0 +1,91 @@ +{capture name=tabs} +{/capture} +{$meta_title='Экспорт покупателей' scope=parent} + + + + + + + +{if $message_error} + +
    + + {if $message_error == 'no_permission'}Установите права на запись в папку {$export_files_dir} + {else}{$message_error}{/if} + +
    + +{/if} + + +
    +

    Экспорт покупателей

    + {if $message_error != 'no_permission'} +
    + + {/if} +
    + diff --git a/simpla/design/html/feature.old b/simpla/design/html/feature.old new file mode 100644 index 0000000..25ed228 --- /dev/null +++ b/simpla/design/html/feature.old @@ -0,0 +1,93 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('products', $manager->permissions)}
  • Товары
  • {/if} + {if in_array('categories', $manager->permissions)}
  • Категории
  • {/if} + {if in_array('brands', $manager->permissions)}
  • Бренды
  • {/if} +
  • Свойства
  • +{/capture} + +{if $feature->id} +{$meta_title = $feature->name scope=parent} +{else} +{$meta_title = 'Новое свойство' scope=parent} +{/if} + +{* On document load *} +{literal} + +{/literal} + +{if $message_success} + +
    + {if $message_success=='added'}Свойство добавлено{elseif $message_success=='updated'}Свойство обновлено{else}{$message_success}{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {$message_error} + Вернуться +
    + +{/if} + + +
    + +
    + + +
    + + +
    + + +
    +

    Использовать в категориях

    + +
    + +
    + + + +
    + + +
    +

    Настройки свойства

    +
      +
    • in_filter}checked{/if} value="1">
    • +
    +
    + + + + +
    + + + +
    + + diff --git a/simpla/design/html/feature.tpl b/simpla/design/html/feature.tpl new file mode 100644 index 0000000..2724ca9 --- /dev/null +++ b/simpla/design/html/feature.tpl @@ -0,0 +1,135 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('products', $manager->permissions)}
  • Товары
  • {/if} + {if in_array('categories', $manager->permissions)}
  • Категории
  • {/if} + {if in_array('brands', $manager->permissions)}
  • Бренды
  • {/if} +
  • Свойства
  • +{/capture} + +{if $feature->id} +{$meta_title = $feature->name scope=parent} +{else} +{$meta_title = 'Новое свойство' scope=parent} +{/if} + +{* On document load *} +{literal} + +{/literal} + +{if $message_success} + +
    + {if $message_success=='added'}Свойство добавлено{elseif $message_success=='updated'}Свойство обновлено{else}{$message_success}{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {$message_error} + Вернуться +
    + +{/if} + + +
    + +
    + + +
    + + +
    + + +
    +

    Использовать в категориях

    + +
    + +
    + + + +
    + + +
    +

    Настройки свойства

    +
      + +
    • req}checked{/if} value="1">
    • +
    • on_prod}checked{/if} value="1">
    • +
    • on_main}checked{/if} value="1">
    • +
    • multiselect}checked{/if} value="1">
    • +
    • in_filter}checked{/if} value="1">
    • +
    • in_variant}checked{/if} value="1">
    • +
    • in_compare}checked{/if} value="1">
    • +
    • isrange}checked{/if} value="1" /> +
        +
      • slider}checked{/if} value="1" />
      • +
      • +
      +
    • +
    • istext}checked{/if} value="1" /> +
    • + +
    +
    + + +
    +

    Изображение свойства

    + + + {if $feature->image} +
      +
    • + + +
    • +
    + {/if} +
    + + + + + + + + + +
    + + + +
    + + diff --git a/simpla/design/html/features.tpl b/simpla/design/html/features.tpl new file mode 100644 index 0000000..72bfa75 --- /dev/null +++ b/simpla/design/html/features.tpl @@ -0,0 +1,195 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('products', $manager->permissions)}
  • Товары
  • {/if} + {if in_array('categories', $manager->permissions)}
  • Категории
  • {/if} + {if in_array('brands', $manager->permissions)}
  • Бренды
  • {/if} +
  • Свойства
  • +{/capture} + +{* Title *} +{$meta_title='Свойства' scope=parent} + +{* Заголовок *} + + +{if $features} +
    + +
    + + +
    + {foreach $features as $feature} +
    + +
    +
    + +
    + +
    + + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + +
    + +
    + +
    +{else} + Нет свойств +{/if} + + +
    + + + {function name=categories_tree} + {if $categories} + + {/if} + {/function} + {categories_tree categories=$categories} + + +
    + + + +{literal} + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/feedbacks.tpl b/simpla/design/html/feedbacks.tpl new file mode 100644 index 0000000..8cf74f3 --- /dev/null +++ b/simpla/design/html/feedbacks.tpl @@ -0,0 +1,158 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('comments', $manager->permissions)}
  • Комментарии
  • {/if} +
  • Обратная связь
  • + + {if in_array('callbacks', $manager->permissions)}
  • Заказ обратного звонка
  • {/if} +{/capture} + +{* Title *} +{$meta_title='Обратная связь' scope=parent} + + +{* Поиск *} +{if $feedbacks || $keyword} +
    + +
    +{/if} + +{* Заголовок *} + + +
    + + + {include file='pagination.tpl'} + + + {if $feedbacks} +
    + + +
    + + {foreach $feedbacks as $feedback} +
    +
    + +
    +
    + +
    + {$feedback->message|escape|nl2br} +
    +
    + Сообщение отправлено {$feedback->date|date} в {$feedback->date|time} +
    +
    +
    + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + + + +
    +
    + + {else} + Нет сообщений + {/if} + + + {include file='pagination.tpl'} + + +
    + + +
    + +
    + + +{literal} + +{/literal} diff --git a/simpla/design/html/group.tpl b/simpla/design/html/group.tpl new file mode 100644 index 0000000..60c2e5c --- /dev/null +++ b/simpla/design/html/group.tpl @@ -0,0 +1,93 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('users', $manager->permissions)}
  • Покупатели
  • {/if} +
  • Группы
  • + {if in_array('coupons', $manager->permissions)}
  • Купоны
  • {/if} +{/capture} + +{if $group->id} +{$meta_title = $group->name scope=parent} +{else} +{$meta_title = 'Новая группа' scope=parent} +{/if} + +{* On document load *} +{literal} + + + + + + + + + + +{/literal} + + + +{if $message_success} + +
    + {if $message_success=='added'}Группа добавлена{elseif $message_success=='updated'}Группа изменена{else}{$message_success|escape}{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {$message_error} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + + +
    + + +
    +
      +
    • %
    • +
    +
    + + + + +
    + + + + + +
    + diff --git a/simpla/design/html/groups.tpl b/simpla/design/html/groups.tpl new file mode 100644 index 0000000..d877551 --- /dev/null +++ b/simpla/design/html/groups.tpl @@ -0,0 +1,98 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('users', $manager->permissions)}
  • Покупатели
  • {/if} +
  • Группы
  • + {if in_array('coupons', $manager->permissions)}
  • Купоны
  • {/if} +{/capture} + +{* Title *} +{$meta_title='Группы пользователей' scope=parent} + +{* Заголовок *} + + + + +
    + +
    + +
    + + {foreach $groups as $group} +
    +
    + +
    + +
    + {$group->discount} % +
    +
    + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + +
    + + +
    + +
    + + +{literal} + +{/literal} diff --git a/simpla/design/html/images.tpl b/simpla/design/html/images.tpl new file mode 100644 index 0000000..64f5022 --- /dev/null +++ b/simpla/design/html/images.tpl @@ -0,0 +1,89 @@ +{capture name=tabs} +
  • Тема
  • +
  • Шаблоны
  • +
  • Стили
  • +
  • Изображения
  • +{/capture} + +{$meta_title = "Изображения" scope=parent} + +{* On document load *} +{literal} + +{/literal} + +

    Изображения темы {$theme}

    + +{if $message_error} + +
    + {if $message_error == 'permissions'}Установите права на запись для папки {$images_dir} + {elseif $message_error == 'name_exists'}Файл с таким именем уже существует + {elseif $message_error == 'theme_locked'}Текущая тема защищена от изменений. Создайте копию темы. + {else}{$message_error}{/if} +
    + +{/if} + +
    + + + +
    + +
    + + +
    +Добавить изображение +
    + +
    + +
    + +
    diff --git a/simpla/design/html/import.tpl b/simpla/design/html/import.tpl new file mode 100644 index 0000000..e6d4261 --- /dev/null +++ b/simpla/design/html/import.tpl @@ -0,0 +1,148 @@ +{capture name=tabs} +
  • Импорт
  • + {if in_array('export', $manager->permissions)}
  • Экспорт
  • {/if} + {if in_array('backup', $manager->permissions)}
  • Бекап
  • {/if} +{/capture} +{$meta_title='Импорт товаров' scope=parent} + + + + + + +{if $message_error} + +
    + + {if $message_error == 'no_permission'}Установите права на запись в папку {$import_files_dir} + {elseif $message_error == 'convert_error'}Не получилось сконвертировать файл в кодировку UTF8 + {elseif $message_error == 'locale_error'}На сервере не установлена локаль {$locale}, импорт может работать некорректно + {else}{$message_error}{/if} + +
    + +{/if} + + {if $message_error != 'no_permission'} + + {if $filename} +
    +

    Импорт {$filename|escape}

    +
    +
    + + {else} + +

    Импорт товаров

    + +
    +
    + + + +

    + (максимальный размер файла — {if $config->max_upload_filesize>1024*1024}{$config->max_upload_filesize/1024/1024|round:'2'} МБ{else}{$config->max_upload_filesize/1024|round:'2'} КБ{/if}) +

    + + +
    +
    + +
    +

    + Создайте бекап на случай неудачного импорта. +

    +

    + Сохраните таблицу в формате CSV +

    +

    + В первой строке таблицы должны быть указаны названия колонок в таком формате: + +

    +

    +

    + Любое другое название колонки трактуется как название свойства товара +

    +

    + Скачать пример файла +

    +
    + + {/if} + + +{/if} \ No newline at end of file diff --git a/simpla/design/html/index.tpl b/simpla/design/html/index.tpl new file mode 100644 index 0000000..808a833 --- /dev/null +++ b/simpla/design/html/index.tpl @@ -0,0 +1,265 @@ + + + + + + +{$meta_title} + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + +
    + {$content} +
    + + + + + + +
    + + + + + +{* Интеграция с ПростымиЗвонками *} +{if $settings->pz_server && $settings->pz_phones[$manager->login]} + + +{/if} + +{literal} + diff --git a/simpla/design/html/license.tpl b/simpla/design/html/license.tpl new file mode 100644 index 0000000..5f95708 --- /dev/null +++ b/simpla/design/html/license.tpl @@ -0,0 +1,71 @@ +{capture name=tabs} +
  • Лицензия
  • +{/capture} + + +
    + + +
    + +
    + {if $license->valid} +

    Лицензия действительна {if $license->expiration != '*'}до {$license->expiration}{/if} для домен{$license->domains|count|plural:'а':'ов'} {foreach $license->domains as $d}{$d}{if !$d@last}, {/if}{/foreach}

    + {else} +

    Лицензия недействительна

    + {/if} + +
    + +
    + +
    +
    +

    Лицензионное соглашение

    + + +
    +
    + + + +
    + diff --git a/simpla/design/html/mailing_methods.tpl b/simpla/design/html/mailing_methods.tpl new file mode 100644 index 0000000..6f927c5 --- /dev/null +++ b/simpla/design/html/mailing_methods.tpl @@ -0,0 +1,86 @@ +{capture name=tabs} +{if in_array('currency', $manager->permissions)}
  • Валюты
  • {/if} + {if in_array('delivery', $manager->permissions)}
  • Доставка
  • {/if} + {if in_array('payment', $manager->permissions)}
  • Оплата
  • {/if} + {if in_array('managers', $manager->permissions)}
  • Менеджеры
  • {/if} +
  • Рассылка
  • +{/capture} + +{* Title *} +{$meta_title='Управление Рассылкой' scope=parent} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{* Заголовок *} + +{literal} + + +{/literal} +
    + {if $smarty.get.show} +
    + +
    + {$a=1}{foreach $mailing_email item=email key=id}{$a=$a+1} +
    +
    + +
    +
    {$email}
    +
    + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + +
    +
    + {else} +
    + +

    +

    +

    +
    + {/if} +
    \ No newline at end of file diff --git a/simpla/design/html/manager.tpl b/simpla/design/html/manager.tpl new file mode 100644 index 0000000..57937fe --- /dev/null +++ b/simpla/design/html/manager.tpl @@ -0,0 +1,142 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('settings', $manager->permissions)}
  • Настройки
  • {/if} + {if in_array('currency', $manager->permissions)}
  • Валюты
  • {/if} + {if in_array('delivery', $manager->permissions)}
  • Доставка
  • {/if} + {if in_array('payment', $manager->permissions)}
  • Оплата
  • {/if} +
  • Менеджеры
  • +{/capture} + +{if $m->login} +{$meta_title = $m->login scope=parent} +{else} +{$meta_title = 'Новый менеджер' scope=parent} +{/if} + +{* On document load *} + + + + + +{if $message_success} + +
    + {if $message_success=='added'}Менеджер добавлен{elseif $message_success=='updated'}Менеджер обновлен{else}{$message_success|escape}{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + + {if $message_error=='login_exists'}Менеджер с таким логином уже существует + {elseif $message_error=='empty_login'}Введите логин + {elseif $message_error=='not_writable'}Установите права на запись для файла /simpla/.passwd + {else}{$message_error|escape}{/if} + + Вернуться +
    + +{/if} + + + +
    + +
    + Логин: + + + Пароль: + {if $m->login}изменить{/if} + +
    + + +
    + +

    Права доступа:

    +
    + + +
    +
      + + {$perms = [ + 'products' =>'Товары', + 'categories' =>'Категории', + 'brands' =>'Бренды', + 'banners' => 'Банеры', + 'features' =>'Свойства товаров', + 'orders' =>'Заказы', + 'labels' =>'Метки заказов', + 'users' =>'Покупатели', + 'groups' =>'Группы покупателей', + 'coupons' =>'Купоны', + 'pages' =>'Страницы', + 'blog' =>'Блог', + 'comments' =>'Комментарии', + 'feedbacks' =>'Обратная связь', + 'import' =>'Импорт', + 'export' =>'Экспорт', + 'backup' =>'Бекап', + 'stats' =>'Статистика', + 'design' =>'Дизайн', + 'settings' =>'Настройки', + 'currency' =>'Валюты', + 'delivery' =>'Способы доставки', + 'payment' =>'Способы оплаты', + 'managers' =>'Менеджеры', + 'license' =>'Управление лицензией', + + 'callbacks' =>'Заказ обратного звонка', + + 'articles' => 'Статьи', + + 'articles_categories' => 'Категории статей', + + 'marka' => 'Марка авто', + 'model' => 'Модель авто' + ]} + + {foreach $perms as $p=>$name} +
    • + permissions && in_array($p, $m->permissions)}checked{/if} {if $m->login==$manager->login}disabled{/if}/>
    • + {/foreach} + +
    + +
    + + + + +
    + + + + + +
    + diff --git a/simpla/design/html/managers.tpl b/simpla/design/html/managers.tpl new file mode 100644 index 0000000..f47b55f --- /dev/null +++ b/simpla/design/html/managers.tpl @@ -0,0 +1,116 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('settings', $manager->permissions)}
  • Настройки
  • {/if} + {if in_array('currency', $manager->permissions)}
  • Валюты
  • {/if} + {if in_array('delivery', $manager->permissions)}
  • Доставка
  • {/if} + {if in_array('payment', $manager->permissions)}
  • Оплата
  • {/if} +
  • Менеджеры
  • +{/capture} + +{* Title *} +{$meta_title='Менеджеры' scope=parent} + + +{* Заголовок *} + + +{if $message_error} + +
    + + {if $message_error=='not_writable'}Установите права на запись для файла /simpla/.passwd + {else}{$message_error|escape}{/if} + + Вернуться +
    + +{/if} + + +{if $managers} + +
    +
    + + +
    + {foreach $managers as $m} +
    +
    + login == $m->login}disabled{/if}/> +
    + + +
    + {$groups[$user->group_id]->name} +
    +
    + {if $manager->login != $m->login} + + {/if} +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + +
    + +
    +
    +{/if} + + +{literal} + +{/literal} diff --git a/simpla/design/html/marka.tpl b/simpla/design/html/marka.tpl new file mode 100644 index 0000000..869fa6b --- /dev/null +++ b/simpla/design/html/marka.tpl @@ -0,0 +1,209 @@ +{* Вкладки *} +{capture name=tabs} +
  • Блог
  • +
  • Примеры работ
  • +
  • Категории примеров работ
  • +
  • Акции
  • +
  • Марки и модели
  • +{/capture} + +{if $brand->id} +{$meta_title = $brand->name scope=parent} +{else} +{$meta_title = 'Новая марка' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + + +{* On document load *} +{literal} + + +{/literal} + +{if $message_success} + +
    + {if $message_success=='added'}Марка добавлена{elseif $message_success=='updated'}Марка обновлена{else}{$message_success}{/if} + Открыть на сайте + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error=='url_exists'}Марка с таким адресом уже существует{else}{$message_error}{/if} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + + + +
    + + +
    +

    Параметры страницы

    +
      +
    • /nashi-raboty/
    • +
    • +
    • +
    • +
    +
    + + + {* + +
    +

    Экспорт товара

    +
      +
    • Бид руб.
    • +
    • +
    +
    + + *} + + +
    + + + +
    + + +
    +

    Изображение

    + + + {if $brand->image} +
      +
    • + + +
    • +
    + {/if} +
    + +
    + + + +
    +

    Описание

    + +
    + + + + +
    + + diff --git a/simpla/design/html/markas.tpl b/simpla/design/html/markas.tpl new file mode 100644 index 0000000..9d641bf --- /dev/null +++ b/simpla/design/html/markas.tpl @@ -0,0 +1,134 @@ +{* Вкладки *} +{capture name=tabs} +
  • Блог
  • +
  • Примеры работ
  • +
  • Категории примеров работ
  • +
  • Акции
  • +
  • Марки и модели
  • +{/capture} + +{* Title *} +{$meta_title='Марки' scope=parent} + +{* Заголовок *} + + +{if $brands} +
    + +
    + + +
    + {foreach $brands as $brand} +
    +
    + +
    +
    + {$brand->name|escape} + + + + {if $brand->models} + + {/if} + + +
    + +
    +
    + {/foreach} +
    + +
    + + + + + + +
    + +
    +
    +{else} +Нет брендов +{/if} + +{literal} + +{/literal} diff --git a/simpla/design/html/model.tpl b/simpla/design/html/model.tpl new file mode 100644 index 0000000..adcc07b --- /dev/null +++ b/simpla/design/html/model.tpl @@ -0,0 +1,219 @@ +{* Вкладки *} +{capture name=tabs} +
  • Блог
  • +
  • Примеры работ
  • +
  • Категории примеров работ
  • +
  • Акции
  • +
  • Марки и модели
  • +{/capture} + +{if $brand->id} +{$meta_title = $brand->name scope=parent} +{else} +{$meta_title = 'Новая модель' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + + +{* On document load *} +{literal} + + +{/literal} + +{if $message_success} + +
    + {if $message_success=='added'}Модель добавлена{elseif $message_success=='updated'}Модель обновлена{else}{$message_success}{/if} + Открыть на сайте + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error=='url_exists'}Модель с таким адресом уже существует{else}{$message_error}{/if} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + + + +
    + + +
    +

    Параметры страницы

    +
      +
    • /nashi-raboty/
    • +
    • + + + +
    • +
    • +
    • +
    • +
    +
    + + + {* + +
    +

    Экспорт товара

    +
      +
    • Бид руб.
    • +
    • +
    +
    + + *} + + +
    + + + +
    + + +
    +

    Изображение

    + + + {if $brand->image} +
      +
    • + + +
    • +
    + {/if} +
    + +
    + + + +
    +

    Описание

    + +
    + + + + +
    + + diff --git a/simpla/design/html/models.tpl b/simpla/design/html/models.tpl new file mode 100644 index 0000000..5d63db5 --- /dev/null +++ b/simpla/design/html/models.tpl @@ -0,0 +1,121 @@ +{* Вкладки *} +{capture name=tabs} +
  • Блог
  • +
  • Примеры работ
  • +
  • Категории примеров работ
  • +
  • Акции
  • +
  • Марки
  • +
  • Модели
  • +{/capture} + +{* Title *} +{$meta_title='Модели' scope=parent} + +{* Заголовок *} + + +{if $brands} +
    + +
    + + +
    + {foreach $brands as $brand} + + {/foreach} +
    + +
    + + + + + + +
    + +
    +
    +{else} +Нет моделей +{/if} + +{literal} + +{/literal} diff --git a/simpla/design/html/order.tpl b/simpla/design/html/order.tpl new file mode 100644 index 0000000..bf5e2cf --- /dev/null +++ b/simpla/design/html/order.tpl @@ -0,0 +1,615 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('orders', $manager->permissions)} +
  • status==0}class="active"{/if}>Новые
  • +
  • status==1}class="active"{/if}>Приняты
  • +
  • status==2}class="active"{/if}>Выполнены
  • +
  • status==3}class="active"{/if}>Удалены
  • +
  • status==999}class="active"{/if}>Потеряны
  • + {if $keyword} +
  • Поиск
  • + {/if} + {/if} + {if in_array('labels', $manager->permissions)} +
  • Метки
  • + {/if} +{/capture} + + +{if $order->id} +{$meta_title = "Заказ №`$order->id`" scope=parent} +{else} +{$meta_title = 'Новый заказ' scope=parent} +{/if} + + +
    + + +
    + +

    {if $order->id}Заказ №{$order->id|escape}{else}Новый заказ{/if} + {if $order->status != 999} + + {/if} +

    + + + +
    + {if $prev_order} + + {/if} + {if $next_order} + + {/if} +
    + +
    + + +{if $message_error} + +
    + {if $message_error=='error_closing'}Нехватка товара на складе{else}{$message_error|escape}{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{elseif $message_success} + +
    + {if $message_success=='updated'}Заказ обновлен{elseif $message_success=='added'}Заказ добавлен{else}{$message_success}{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + + + +
    +

    Детали заказа Редактировать

    + +
    +
      +
    • + +
      + {$order->date} {$order->time} +
      +
    • +
    • + + +
      + {$order->name|escape} +
      +
    • +
    • + + +
      + {$order->name2|escape} +
      +
    • +
    • + + + +
    • +
    • + + +
      + {if $order->phone} + {$order->phone|escape}{else}{$order->phone|escape}{/if} +
      +
    • +
    • + + +
      + {$order->country|escape} +
      +
    • +
    • + + +
      + {$order->region|escape} +
      +
    • +
    • + + +
      + {$order->city|escape} +
      +
    • +
    • + + +
      + {$order->indx|escape} +
      +
    • +
    • + + +
      + {$order->address|escape} +
      +
    • +
    • + + +
      + {$order->comment|escape|nl2br} +
      +
    • +
    +
    + + + {if $labels} +
    +

    Метка

    + +
      + {foreach $labels as $l} +
    • + +
    • + {/foreach} +
    + +
    + {/if} + + +
    +

    Покупатель Редактировать {if $user}Удалить{/if}

    +
    + {if !$user} + Не зарегистрирован + {else} + {$user->name|escape} ({$user->email|escape}) + {/if} +
    + +
    + + + +
    +

    Примечание Редактировать

    +
      +
    • + +
      note}style='display:none;'{/if}> + +
      {$order->note|escape}
      +
      +
    • +
    +
    + +
    + + +
    + +
    + {foreach from=$purchases item=purchase} +
    +
    + id}] value='{$purchase->id}'> + {$image = $purchase->product->images|first} + {if $image} + + {/if} +
    +
    + +
    + + + {$purchase->variant_name} {if $purchase->sku}(арт. {$purchase->sku}){/if} + +
    + + {if $purchase->product} + {$purchase->product_name} + {else} + {$purchase->product_name} + {/if} + +
    + {foreach from=$purchase->options item=opt key=ok} + {assign var=f value=$features[$ok]} +

    + + + {$opt} + +

    + + {/foreach} +
    + +
    +
    + {$purchase->price} + + {$currency->sign} +
    +
    + + {$purchase->amount} {$settings->units} + + +
    +
    + {if !$order->closed} + {if !$purchase->product} + Товар был удалён + {elseif !$purchase->variant} + Вариант товара был удалён + {elseif $purchase->variant->stock < $purchase->amount} + На складе остал{$purchase->variant->stock|plural:variant->stock} товар{$purchase->variant->stock|plural:'':'ов':'а'}' title='На складе остал{$purchase->variant->stock|plural:'ся':'ось'} {$purchase->variant->stock} товар{$purchase->variant->stock|plural:'':'ов':'а'}' > + {/if} + {/if} + +
    +
    +
    + {/foreach} + +
    + +
    + +
    + {if $purchases} + редактировать покупки + {/if} + + + {if $purchases} +
    + Всего {$subtotal} {$currency->sign} +
    + {/if} + +
    +

    Скидка

    + % +
    + +
    + С учетом скидки {($subtotal-$subtotal*$order->discount/100)|round:2} {$currency->sign} +
    + +
    +

    Купон{if $order->coupon_code} ({$order->coupon_code}){/if}

    + {$currency->sign} +
    + +
    + С учетом купона {($subtotal-$subtotal*$order->discount/100-$order->coupon_discount)|round:2} {$currency->sign} +
    + +
    +

    Доставка

    + + {$currency->sign} +
    + separate_delivery}checked{/if}> +
    +
    + +
    + Итого {$order->total_price} {$currency->sign} +
    + + +
    +

    Оплата

    + + + paid}checked{/if}> +
    + + + {if $payment_method} +
    + К оплате {$order->total_price|convert:$payment_currency->id} {$payment_currency->sign} +
    + {/if} + + +
    + + +
    + + +
    + + +
    + + +
    + + + +{* On document load *} +{literal} + + + + + + +{/literal} + diff --git a/simpla/design/html/order_print.tpl b/simpla/design/html/order_print.tpl new file mode 100644 index 0000000..a6ec3e1 --- /dev/null +++ b/simpla/design/html/order_print.tpl @@ -0,0 +1,265 @@ + +{* + Печать заказа +*} +{$wrapper='' scope=parent} + + + + Заказ №{$order->id} + {* Метатеги *} + + + + + + + + + +
    +

    {$settings->site_name}

    +

    {$config->root_url}

    +
    + + +
    +

    Получатель

    + + + + + + + + + + + + + + + + +
    {$order->name|escape} {$order->name2|escape}
    {$order->phone|escape}
    {$order->email|escape}
    + {$order->country|escape}, {$order->region|escape}, {$order->city|escape}, {$order->address|escape}, {$order->index|escape} +
    {$order->comment|escape|nl2br}
    + + {* + {if $order->note} + + + + +

    Примечание менеджера

    {$order->note|escape|nl2br}
    + {/if} + *} +
    + +
    + +
    + +
    + + + + + + + + {foreach from=$purchases item=purchase} + + + + + + + {/foreach} + {* Если стоимость доставки входит в сумму заказа *} + {if $order->delivery_price>0} + + + + + {/if} + +
    ТоварЦенаКоличествоВсего
    + + {$purchase->product_name} {$purchase->variant_name} {if $purchase->sku} (артикул {$purchase->sku}){/if} + + + {$purchase->price} {$currency->sign} + + + {$purchase->amount} {$settings->units} + + + {$purchase->price*$purchase->amount} {$currency->sign} +
    {$delivery->name|escape}{if $order->separate_delivery} (оплачивается отдельно){/if}{$order->delivery_price|convert} {$currency->sign}
    +
    + + +
    + + {if $order->discount>0} + + + + + {/if} + {if $order->coupon_discount>0} + + + + + {/if} + + + + + {if $payment_method} + + + + + + + + {/if} +
    Скидка{$order->discount} %
    Купон{if $order->coupon_code} ({$order->coupon_code}){/if}{$order->coupon_discount} {$currency->sign}
    Итого{$order->total_price} {$currency->sign}
    Способ оплаты: {$payment_method->name}
    К оплате{$order->total_price|convert:$payment_method->currency_id} {$payment_currency->sign}
    +
    + + + + diff --git a/simpla/design/html/orders.tpl b/simpla/design/html/orders.tpl new file mode 100644 index 0000000..01715a0 --- /dev/null +++ b/simpla/design/html/orders.tpl @@ -0,0 +1,211 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('orders', $manager->permissions)} +
  • Новые
  • +
  • Приняты
  • +
  • Выполнены
  • +
  • Удалены
  • +
  • Потеряны
  • + {if $keyword} +
  • Поиск
  • + {/if} + {/if} + {if in_array('labels', $manager->permissions)} +
  • Метки
  • + {/if} +{/capture} + +{* Title *} +{$meta_title='Заказы' scope=parent} + +{* Поиск *} +
    + +
    + +{* Заголовок *} + + +{if $orders} +
    + + + {include file='pagination.tpl'} + + +
    + + +
    + {foreach $orders as $order} +
    +
    + +
    +
    + {$order->date|date} в {$order->date|time} +
    +
    + {foreach $order->labels as $l} + + {/foreach} + {if $status != 999} + Заказ №{$order->id} {$order->name|escape} + {else} + Заказ №{$order->id} {$order->name|escape} + {/if} + + {if $order->note} +
    {$order->note|escape}
    + {/if} +
    +
    + + +
    +
    + {$order->total_price|escape} {$currency->sign} +
    +
    + {if $order->paid} + Оплачен + {else} + Не оплачен + {/if} +
    + {if $keyword} +
    + {if $order->status == 0} + Новый + {/if} + {if $order->status == 1} + Принят + {/if} + {if $order->status == 2} + Выполнен + {/if} + {if $order->status == 3} + Удалён + {/if} +
    + {/if} +
    +
    + {/foreach} +
    + +
    + + + + + + + + +
    +
    + + + {include file='pagination.tpl'} + + +
    +{/if} + + +
    + + {if $labels} + + + + {/if} + +
    + + + + +{* On document load *} +{literal} + +{/literal} diff --git a/simpla/design/html/orders_label.tpl b/simpla/design/html/orders_label.tpl new file mode 100644 index 0000000..dca7994 --- /dev/null +++ b/simpla/design/html/orders_label.tpl @@ -0,0 +1,82 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('orders', $manager->permissions)} +
  • Новые
  • +
  • Приняты
  • +
  • Выполнены
  • +
  • Удалены
  • + {if $keyword} +
  • Поиск
  • + {/if} + {/if} +
  • Метки
  • +{/capture} + +{if $label->id} +{$meta_title = $label->name scope=parent} +{else} +{$meta_title = 'Новая метка' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{* On document load *} +{literal} + + + + + + +{/literal} + + +{if $message_success} + +
    + {if $message_success == 'added'}Метка добавлена{elseif $message_success == 'updated'}Метка обновлена{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + + +
    + +
    + + +
    + + +
    + + +
    + + +
    + + diff --git a/simpla/design/html/orders_labels.tpl b/simpla/design/html/orders_labels.tpl new file mode 100644 index 0000000..331fa63 --- /dev/null +++ b/simpla/design/html/orders_labels.tpl @@ -0,0 +1,152 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('orders', $manager->permissions)} +
  • Новые
  • +
  • Приняты
  • +
  • Выполнены
  • +
  • Удалены
  • + {if $keyword} +
  • Поиск
  • + {/if} + {/if} +
  • Метки
  • +{/capture} + +{* Title *} +{$meta_title='Метки заказов' scope=parent} + +{* Заголовок *} + + +{if $labels} +
    + +
    + +
    + {foreach $labels as $label} +
    + +
    +
    + +
    + +
    + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + + +
    +
    +
    +{else} + Нет меток +{/if} + +{* On document load *} +{literal} + +{/literal} diff --git a/simpla/design/html/page.tpl b/simpla/design/html/page.tpl new file mode 100644 index 0000000..421a5a3 --- /dev/null +++ b/simpla/design/html/page.tpl @@ -0,0 +1,495 @@ +{capture name=tabs} + {if in_array('pages', $manager->permissions)} + {foreach from=$menus item=m} + {if $m->id != 3} +
  • id == $menu->id}class="active"{/if}>{$m->name}
  • + {/if} + {/foreach} + {/if} +{/capture} + +{if $page->id} +{$meta_title = $page->name scope=parent} +{else} +{$meta_title = 'Новая страница' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{* On document load *} +{literal} + + + + + + + +{/literal} + + +{if $message_success} + +
    + {if $message_success == 'added'}Страница добавлена{elseif $message_success == 'updated'}Страница обновлена{/if} + Открыть страницу на сайте + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error == 'url_exists'}Страница с таким адресом уже существует{/if} + Вернуться +
    + +{/if} + + + + +
    + +
    + + +
    + visible}checked{/if}/> +
    + {if $page->menu_id == 3} +
    + show_home}checked{/if}/> +
    +
    + show_service}checked{/if}/> +
    + {/if} +
    + + +
    + +
    + + + +
    + + +
    +

    Параметры страницы

    +
      +
    • /
    • +
    • +
    • +
    • +
    +
    + + +
    + + + +
    + +
    +

    Изображение

    + + + {if $page->image} +
      +
    • + + +
    • +
    + {/if} +
    + + {if $page->menu_id == 3} +
    +

    Связанные товары (Хиты продаж)

    + + +
    + +
    +

    Связанные страницы (Другие услуги)

    + + +
    + +
    +

    Связанные страницы (Примеры работ)

    + + +
    + + +
    +
      +
    • + + +
    • +
    • + + +
    • +
    +
    + + + + {/if} + +
    + + + + +
    +

    Краткое содержание

    + +
    + + + +
    +

    Текст перед текстом страницы

    + +
    + + + +
    +

    Текст страницы

    + +
    + + + +
    +

    Текст после текста страницы

    + +
    + + + + + +
    + + diff --git a/simpla/design/html/pages.tpl b/simpla/design/html/pages.tpl new file mode 100644 index 0000000..f35033b --- /dev/null +++ b/simpla/design/html/pages.tpl @@ -0,0 +1,175 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('pages', $manager->permissions)} + {foreach from=$menus item=m} + {if $m->id != 3} +
  • id == $menu->id}class="active"{/if}>{$m->name}
  • + {/if} + {/foreach} + {/if} +{/capture} + +{* Title *} +{$meta_title = {$menu->name} scope=parent} + +{* Заголовок *} + + +{if $pages} +
    + +
    + +
    + {foreach $pages as $page} +
    + +
    +
    + +
    + +
    + + + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + + +
    +
    +
    +{else} + Нет страниц +{/if} + +{* On document load *} +{literal} + +{/literal} diff --git a/simpla/design/html/pagination.tpl b/simpla/design/html/pagination.tpl new file mode 100644 index 0000000..b3b6718 --- /dev/null +++ b/simpla/design/html/pagination.tpl @@ -0,0 +1,53 @@ +{if $pages_count>1} + +{* Скрипт для листания через ctrl → *} +{* Ссылки на соседние страницы должны иметь id PrevLink и NextLink *} + + + + + +{/if} diff --git a/simpla/design/html/payment_method.tpl b/simpla/design/html/payment_method.tpl new file mode 100644 index 0000000..46881c7 --- /dev/null +++ b/simpla/design/html/payment_method.tpl @@ -0,0 +1,155 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('settings', $manager->permissions)}
  • Настройки
  • {/if} + {if in_array('currency', $manager->permissions)}
  • Валюты
  • {/if} + {if in_array('delivery', $manager->permissions)}
  • Доставка
  • {/if} +
  • Оплата
  • + {if in_array('managers', $manager->permissions)}
  • Менеджеры
  • {/if} + {if in_array('maillist', $manager->permissions)}
  • Рассылка
  • {/if} +{/capture} + +{if $payment_method->id} +{$meta_title = $payment_method->name scope=parent} +{else} +{$meta_title = 'Новый способ оплаты' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{* On document load *} +{literal} + + + + + + +{/literal} + + + +{if $message_success} + +
    + {$message_success} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_success == 'added'}Способ оплаты добавлен{elseif $message_success == 'updated'}Способ оплаты изменен{/if} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + enabled}checked{/if}/> +
    +
    + +
    + +
    + +
    + +
    + +
    +
    + + +
    + + {foreach $payment_modules as $payment_module} +
    module}style='display:none;'{/if} id=module_settings module='{$payment_module@key}'> +

    {$payment_module->name}

    + {* Параметры модуля оплаты *} +
      + {foreach $payment_module->settings as $setting} + {$variable_name = $setting->variable} + {if $setting->options|@count>1} +
    • + +
    • + {elseif $setting->options|@count==1} + {$option = $setting->options|@first} +
    • value==$payment_settings[$setting->variable]}checked{/if} id="{$setting->variable}" />
    • + {else} +
    • + {/if} + {/foreach} +
    + {* END Параметры модуля оплаты *} + +
    + {/foreach} +
    module != ''}style='display:none;'{/if} id=module_settings module='null'>
    + +
    + + + +
    +
    +

    Возможные способы доставки

    +
      + {foreach $deliveries as $delivery} +
    • + id, $payment_deliveries)}checked{/if}>
      +
    • + {/foreach} +
    +
    +
    + + + +
    +

    Описание

    + +
    + + + +
    + + diff --git a/simpla/design/html/payment_methods.tpl b/simpla/design/html/payment_methods.tpl new file mode 100644 index 0000000..4cc9ba5 --- /dev/null +++ b/simpla/design/html/payment_methods.tpl @@ -0,0 +1,168 @@ +{* Вкладки *} +{capture name=tabs} + {if in_array('settings', $manager->permissions)}
  • Настройки
  • {/if} + {if in_array('currency', $manager->permissions)}
  • Валюты
  • {/if} + {if in_array('delivery', $manager->permissions)}
  • Доставка
  • {/if} +
  • Оплата
  • + {if in_array('managers', $manager->permissions)}
  • Менеджеры
  • {/if} + {if in_array('maillist', $manager->permissions)}
  • Рассылка
  • {/if} +{/capture} + +{* Title *} +{$meta_title='Способы оплаты' scope=parent} + +{* Заголовок *} + + +
    + +
    + + +
    + {foreach $payment_methods as $payment_method} +
    + +
    +
    + +
    + +
    + + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + + +
    +
    +
    + + +{literal} + +{/literal} diff --git a/simpla/design/html/post.tpl b/simpla/design/html/post.tpl new file mode 100644 index 0000000..3e39579 --- /dev/null +++ b/simpla/design/html/post.tpl @@ -0,0 +1,212 @@ +{capture name=tabs} +
  • Блог
  • +{/capture} + +{if $post->id} +{$meta_title = $post->name scope=parent} +{else} +{$meta_title = 'Новая запись в блоге' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{* On document load *} +{literal} + + + +{/literal} + +{if $message_success} + +
    + {if $message_success == 'added'}Запись добавлена{elseif $message_success == 'updated'}Запись обновлена{/if} + Открыть запись на сайте + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error == 'url_exists'}Запись с таким адресом уже существует{/if} + Вернуться +
    + +{/if} + + + +
    + +
    + + +
    + visible}checked{/if}/> +
    + +
    + + +
    + + +
    +
      +
    • +
    +
    +
    + +

    Параметры страницы

    + +
      +
    • /blog/
    • +
    • +
    • +
    • +
    +
    + + + + +
    + + + +
    + +
    +

    Изображение

    + + + {if $post->image} +
      +
    • + + +
    • +
    + {/if} +
    +
    + + + +
    +

    Краткое описание

    + +
    + +
    +

    Полное описание

    + +
    + + + +
    + diff --git a/simpla/design/html/product.tpl b/simpla/design/html/product.tpl new file mode 100644 index 0000000..b4e2885 --- /dev/null +++ b/simpla/design/html/product.tpl @@ -0,0 +1,859 @@ +{capture name=tabs} +
  • Товары
  • + {if in_array('categories', $manager->permissions)}
  • Категории
  • {/if} + {if in_array('brands', $manager->permissions)}
  • Бренды
  • {/if} + {if in_array('features', $manager->permissions)}
  • Свойства
  • {/if} +{/capture} + +{if $product->id} +{$meta_title = $product->name scope=parent} +{else} +{$meta_title = 'Новый товар' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{* On document load *} +{literal} + + + + + + +{/literal} + + + +{if $message_success} + +
    + {if $message_success=='added'}Товар добавлен{elseif $message_success=='updated'}Товар изменен{else}{$message_success|escape}{/if} + Открыть товар на сайте + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error=='url_exists'}Товар с таким адресом уже существует{elseif $message_error=='empty_name'}Введите название{else}{$message_error|escape}{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + + + +
    + + +
    + + +
    + visible}checked{/if}/> +
    +
    + featured}checked{/if}/> +
    +
    + product_id}{if $product->ym}checked="checked"{/if}{else}checked="checked"{/if}/> +
    +
    + +
    + + +
    + + +
    + +
    +
      + {foreach name=categories from=$product_categories item=product_category} +
    • + + Дополнительная категория + Удалить +
    • + {/foreach} +
    +
    +
    + + + +
    name}class=single_variant{/if}> + +
    + {foreach from=$product_variants item=variant} +
      +
    • +
    • +
    • +
    • +
    • +
    • {$settings->units}
    • +
    • кг
    • +
    • + + {if $variant->attachment} + {$variant->attachment|truncate:25:'...':false:true} + + + + {else} + + {/if} + + +
    • +
    • +
      + {if $features2} + {assign var=variant_id value=$variant->id} +
        + {foreach $features2 AS $f2} + {assign var=feature_id value=$f2->id} +
      • +
        +
        + + + {if $f2->multiselect} + Добавить значение + {/if} +

        +
        + {if $options2.$variant_id.$feature_id|count > 1} + {foreach $options2.$variant_id.$feature_id|cut as $ind=>$val} +
        +   + + +

        +
        + {/foreach} + {/if} +
        + {if $f2->multiselect} + + {/if} +
      • + + {/foreach} +
      + {/if} +
      +
    • +
    + {/foreach} +
    + + + + Добавить вариант +
    + + + +
    + + +
    +

    Параметры страницы

    +
      +
    • /products/
    • +
    • +
    • +
    • +
    • +
    +
    + + + + + +
    +

    Свойства товара + Подобрать автоматически +

    + +
      + {foreach $features as $feature} + {assign var=feature_id value=$feature->id} +
    • + {/foreach} +
    + +
      +
    • +
    + Добавить новое свойство + +
    + + + + {* + +
    +

    Экспорт товара

    +
      +
    • Бид руб.
    • +
    • +
    +
    + + *} + +
    + + + +
    + + +
    +

    Изображения товара + Подобрать автоматически + +

    +
      {foreach from=$product_images item=image}
    • + + + +
    • {/foreach}
    + Добавить изображение или загрузить из интернета +
    + +
    + + +
    +

    Связанные товары

    + + +
    + + +
    +

    Связанные статьи

    + + +
    + + + +
    + + + +
    +

    Краткое описание

    + +
    + +
    +

    Полное описание

    + +
    + + + +
    + + diff --git a/simpla/design/html/products.tpl b/simpla/design/html/products.tpl new file mode 100644 index 0000000..de1e3e9 --- /dev/null +++ b/simpla/design/html/products.tpl @@ -0,0 +1,515 @@ +{* Вкладки *} +{capture name=tabs} +
  • Товары
  • + {if in_array('categories', $manager->permissions)}
  • Категории
  • {/if} + {if in_array('brands', $manager->permissions)}
  • Бренды
  • {/if} + {if in_array('features', $manager->permissions)}
  • Свойства
  • {/if} +{/capture} + +{* Title *} +{if $category} + {$meta_title=$category->name scope=parent} +{else} + {$meta_title='Товары' scope=parent} +{/if} + +{* Поиск *} +
    + +
    + +{* Заголовок *} + + +
    + + + {include file='pagination.tpl'} + + + {if $products} + +
    + + Развернуть все варианты ↓ + + +
    + + {* Основная форма *} +
    + + +
    + {foreach $products as $product} +
    + +
    +
    + +
    +
    + {$image = $product->images|@first} + {if $image} + + {/if} +
    +
    + +
    +
      + {foreach $product->variants as $variant} +
    • + {$variant->name|escape|truncate:30:'…':true:true} + compare_price>0}title="Старая цена — {$variant->compare_price} {$currency->sign}"{/if} />{$currency->sign} + {$settings->units} +
    • + {/foreach} +
    + + {$variants_num = $product->variants|count} + {if $variants_num>1} + + {/if} +
    + + {$product->name|escape} + +
    +
    + + + + + + + + + +
    + +
    +
    + {/foreach} +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + {/if} +
    + + + {include file='pagination.tpl'} + +
    + + + +
    + + + + + + + + {function name=categories_tree} + {if $categories} + + {/if} + {/function} + {categories_tree categories=$categories} + + + {if $brands} + + + + {/if} + +
    + + + +{* On document load *} +{literal} + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/service.tpl b/simpla/design/html/service.tpl new file mode 100644 index 0000000..13e10b4 --- /dev/null +++ b/simpla/design/html/service.tpl @@ -0,0 +1,621 @@ +{* Вкладки *} +{capture name=tabs} +
  • Услуги
  • +
  • Меню услуг
  • +{/capture} + +{if $page->id} + {$meta_title = $page->name scope=parent} +{else} + {$meta_title = 'Новая услуга' scope=parent} +{/if} + +{* Подключаем Tiny MCE *} +{include file='tinymce_init.tpl'} + +{if $message_success} + +
    + {if $message_success == 'added'}Услуга добавлена{elseif $message_success == 'updated'}Услуга обновлена{/if} + Открыть страницу на сайте + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error == 'url_exists'}Страница с таким адресом уже существует{/if} + Вернуться +
    + +{/if} + + +
    + +
    + + +
    + visible}checked{/if}/> + +
    +
    + show_home}checked{/if}/> + +
    +
    + show_service}checked{/if}/> +
    +
    + + +
    + +
    + + + +
    + +
    +

    Параметры страницы

    +
      +
    • + +
      /
      + brand_id}readonly{/if}/> +
    • +
    • + + +
    • +
    • + + +
    • +
    • + + +
    • +
    +
    + + + {* Услуга по брендам *} + {if $page->menu_id == 3 && !$page->brand_id} +
    +

    Услуга по маркам авто

    +
    + {if $service_brands} + {foreach $service_brands as $brand} +
    + + +
    +
    +
    +
    + {/foreach} + {/if} +
    + + +
    + {/if} +
    + + + +
    + +
    +

    Изображение

    + + + {if $page->image} +
      +
    • + + +
    • +
    + {/if} +
    + +
    +

    Связанные товары (Хиты продаж)

    + + +
    +
    +

    Связанные страницы (Другие услуги)

    + + +
    +
    +

    Связанные страницы (Примеры работ)

    + + +
    +
    +
      +
    • + + +
    • +
    • + + +
    • +
    +
    +
    + + + + +
    +

    Краткое содержание

    + +
    + + + +
    +

    Текст перед текстом страницы

    + +
    + + + +
    +

    Текст страницы

    + +
    + + + +
    +

    Текст после текста страницы

    + +
    + + + + + +
    + + +{* On document load *} +{literal} + + + + +{/literal} +{literal} + +{/literal} diff --git a/simpla/design/html/services.tpl b/simpla/design/html/services.tpl new file mode 100644 index 0000000..9341866 --- /dev/null +++ b/simpla/design/html/services.tpl @@ -0,0 +1,220 @@ +{* Вкладки *} +{capture name=tabs} +
  • Услуги
  • +
  • Меню услуг
  • +{/capture} + +{* Title *} +{$meta_title =$menu->name scope=parent} + +{* Поиск *} + + +{* Заголовок *} + + + + +{if $services} +
    + {include file='pagination.tpl'} +
    + +
    + {foreach $services as $service} +
    +
    + +
    + +
    + + + {if !$service->has_children} + + {/if} +
    +
    +
    + {/foreach} +
    + +
    + + + + + +
    +
    + {include file='pagination.tpl'} +
    +{else} + Нет услуг +{/if} + +{* Правое меню *} +
    +

    Фильтр услуг

    + + + {if $brands} +

    по маркам

    + + {/if} + + {if $tree} +

    по родителю

    + + {/if} + +
    + Сбросить + все фильтры +
    + +{literal} + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/services_menu.tpl b/simpla/design/html/services_menu.tpl new file mode 100644 index 0000000..9ac8c8c --- /dev/null +++ b/simpla/design/html/services_menu.tpl @@ -0,0 +1,238 @@ +{* Вкладки *} +{capture name=tabs} +
  • Услуги
  • +
  • Меню услуг
  • +{/capture} + +{* Title *} +{$meta_title='Меню услуг' scope=parent} + +{* Поиск *} + + + + +{* Заголовок *} + + + +{if $services} +
    +
    + Развернуть все /  + Свернуть все +
    +
    + +
    + {function name=services_tree level=0} + {if $services} +
      + {foreach $services as $service} +
    • + + {$service->name|escape} + + + + + + + {services_tree services=$service->children level=$level+1} +
    • + {/foreach} +
    + {/if} + {/function} + {services_tree services=$services} +
    +
    +
    + + +
    +
    +
    +
    +{else} + Нет услуг +{/if} + +
    +
    + +{literal} + + + + +{/literal} \ No newline at end of file diff --git a/simpla/design/html/settings.tpl b/simpla/design/html/settings.tpl new file mode 100644 index 0000000..73d4b76 --- /dev/null +++ b/simpla/design/html/settings.tpl @@ -0,0 +1,172 @@ +{capture name=tabs} +
  • Настройки
  • + {if in_array('currency', $manager->permissions)}
  • Валюты
  • {/if} + {if in_array('delivery', $manager->permissions)}
  • Доставка
  • {/if} + {if in_array('payment', $manager->permissions)}
  • Оплата
  • {/if} + {if in_array('managers', $manager->permissions)}
  • Менеджеры
  • {/if} + {if in_array('maillist', $manager->permissions)}
  • Рассылка
  • {/if} +{/capture} + +{$meta_title = "Настройки" scope=parent} + +{if $message_success} + +
    + {if $message_success == 'saved'}Настройки сохранены{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error == 'watermark_is_not_writable'}Установите права на запись для файла {$config->watermark_file}{/if} + Вернуться +
    + +{/if} + + + +
    + + + +
    +

    Настройки сайта

    + +
    +
    +

    Оповещения

    + +
    + + +
    +

    Раздел "Услуги"

    + +
    + + + + + +
    +

    EMS настройка

    + +
    + + + +
    +

    Формат цены

    + +
    + + + +
    +

    Настройки каталога

    + +
    + + + +
    +

    Изображения товаров

    + + +
    + + + + +
    +

    Интеграция с простыми звонками

    + +
    + + + + + + +
    + + +{literal} + +{/literal} diff --git a/simpla/design/html/stats.tpl b/simpla/design/html/stats.tpl new file mode 100644 index 0000000..d06c51d --- /dev/null +++ b/simpla/design/html/stats.tpl @@ -0,0 +1,250 @@ +{capture name=tabs} +
  • Статистика
  • +{/capture} +{$meta_title='Статистика' scope=parent} + +{* On document load *} +{literal} + + + +{/literal} + + +
    +
    +
    + +
    diff --git a/simpla/design/html/styles.tpl b/simpla/design/html/styles.tpl new file mode 100644 index 0000000..23f68da --- /dev/null +++ b/simpla/design/html/styles.tpl @@ -0,0 +1,124 @@ +{capture name=tabs} +
  • Тема
  • +
  • Шаблоны
  • +
  • Стили
  • +
  • Изображения
  • +{/capture} + +{if $style_file} +{$meta_title = "Стиль $style_file" scope=parent} +{/if} + +{* Подключаем редактор кода *} + + + + + + + +{literal} + + + +{/literal} + +

    Тема {$theme}, стиль {$style_file}

    + +{if $message_error} + +
    + + {if $message_error == 'permissions'}Установите права на запись для файла {$style_file} + {elseif $message_error == 'theme_locked'}Текущая тема защищена от изменений. Создайте копию темы. + {else}{$message_error}{/if} + +
    + +{/if} + + +
    +
    + {foreach item=s from=$styles} + {$s} + {/foreach} +
    +
    + +{if $style_file} +
    +
    + +
    + + +
    + + +{* Подключение редактора *} +{literal} + +{/literal} + +{/if} \ No newline at end of file diff --git a/simpla/design/html/templates.tpl b/simpla/design/html/templates.tpl new file mode 100644 index 0000000..05dc72d --- /dev/null +++ b/simpla/design/html/templates.tpl @@ -0,0 +1,141 @@ +{capture name=tabs} +
  • Тема
  • +
  • Шаблоны
  • +
  • Стили
  • +
  • Изображения
  • +{/capture} + +{if $template_file} +{$meta_title = "Шаблон $template_file" scope=parent} +{/if} + +{* Подключаем редактор кода *} + + + + + + + +{literal} + + + +{/literal} + +

    Тема {$theme}, шаблон {$template_file}

    + +{if $message_error} + +
    + + {if $message_error == 'permissions'}Установите права на запись для файла {$template_file} + {elseif $message_error == 'theme_locked'}Текущая тема защищена от изменений. Создайте копию темы. + {else}{$message_error}{/if} + +
    + +{/if} + + +
    +
    + {foreach item=t from=$templates} + {$t} + {/foreach} +
    +
    + +{if $template_file} +
    +
    + +
    + + +
    + +{* Подключение редактора *} +{literal} + +{/literal} + +{/if} \ No newline at end of file diff --git a/simpla/design/html/theme.tpl b/simpla/design/html/theme.tpl new file mode 100644 index 0000000..aac96fb --- /dev/null +++ b/simpla/design/html/theme.tpl @@ -0,0 +1,107 @@ +{capture name=tabs} +
  • Тема
  • +
  • Шаблоны
  • +
  • Стили
  • +
  • Изображения
  • +{/capture} + +{if $theme->name} +{$meta_title = "Тема {$theme->name}" scope=parent} +{/if} + + + + + +{if $message_error} + +
    + {if $message_error == 'permissions'}Установите права на запись для папки {$themes_dir} + {elseif $message_error == 'name_exists'}Тема с таким именем уже существует + {else}{$message_error}{/if} +
    + +{/if} + +
    + +
    + + + + +
      +{foreach $themes as $t} +
    • + {if $theme->name == $t->name} {/if} + {if $t->locked} {/if} + {if $theme->name != $t->name && !$t->locked} + + + {elseif $theme->name != $t->name} + {**} + {elseif !$t->locked} + + + {/if} + {if $theme->name == $t->name} +

      {$t->name|escape|truncate:16:'...'}

      + {else} +

      {$t->name|escape|truncate:16:'...'}

      + {/if} + +
    • +{/foreach} +
    + +
    + +
    +
    + +
    \ No newline at end of file diff --git a/simpla/design/html/tinymce_init.tpl b/simpla/design/html/tinymce_init.tpl new file mode 100644 index 0000000..4e8871e --- /dev/null +++ b/simpla/design/html/tinymce_init.tpl @@ -0,0 +1,77 @@ + + + + + + +{* + + + + +*} \ No newline at end of file diff --git a/simpla/design/html/user.tpl b/simpla/design/html/user.tpl new file mode 100644 index 0000000..40f4fbb --- /dev/null +++ b/simpla/design/html/user.tpl @@ -0,0 +1,176 @@ +{* Вкладки *} +{capture name=tabs} +
  • Покупатели
  • + {if in_array('groups', $manager->permissions)}
  • Группы
  • {/if} + {if in_array('coupons', $manager->permissions)}
  • Купоны
  • {/if} +{/capture} + +{if $user->id} +{$meta_title = $user->name|escape scope=parent} +{/if} + +{if $message_success} + +
    + {if $message_success=='updated'}Пользователь отредактирован{else}{$message_success|escape}{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + +{if $message_error} + +
    + {if $message_error=='login_exists'}Пользователь с таким email уже зарегистрирован + {elseif $message_error=='empty_name'}Введите имя пользователя + {elseif $message_error=='empty_email'}Введите email пользователя + {else}{$message_error|escape}{/if} + {if $smarty.get.return} + Вернуться + {/if} +
    + +{/if} + + + + +
    + +
    + + +
    + enabled}checked{/if}/> +
    +
    + + +
    + + + +
    +
      + {if $groups} +
    • + + +
    • + {/if} +
    • +
    • +
    • +
    +
    + + + + + + +
    + + + + + +
    + + + +{if $orders} +
    +
    + +

    Заказы пользователя

    + +
    + {foreach $orders as $order} +
    +
    + +
    +
    + {$order->date|date} {$order->date|time} +
    + +
    + {$order->total_price} {$currency->sign} +
    +
    + {if $order->paid} + Оплачен + {else} + Не оплачен + {/if} +
    +
    + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + + + +
    +
    +{/if} +{* On document load *} +{literal} + + +{/literal} diff --git a/simpla/design/html/users.tpl b/simpla/design/html/users.tpl new file mode 100644 index 0000000..ccc3b47 --- /dev/null +++ b/simpla/design/html/users.tpl @@ -0,0 +1,184 @@ +{* Вкладки *} +{capture name=tabs} +
  • Покупатели
  • + {if in_array('groups', $manager->permissions)}
  • Группы
  • {/if} + {if in_array('coupons', $manager->permissions)}
  • Купоны
  • {/if} +{/capture} + +{* Title *} +{$meta_title='Покупатели' scope=parent} + +{* Поиск *} +{if $users || $keyword} +
    + +
    +{/if} + +{* Заголовок *} + + +{if $users} + +
    + + + {include file='pagination.tpl'} + + + + +
    + + +
    + {foreach $users as $user} +
    +
    + +
    + + +
    + {$groups[$user->group_id]->name} +
    +
    + + +
    +
    +
    + {/foreach} +
    + +
    + + + + + + + +
    + +
    + + + {include file='pagination.tpl'} + + +
    +{/if} + + +
    + + + {if $groups} +
      + {foreach $groups as $g} +
    • id == $g->id}class="selected"{/if}>{$g->name}
    • + {/foreach} +
    + {/if} + + +
    + + + +{literal} + +{/literal} diff --git a/simpla/design/images/accept.png b/simpla/design/images/accept.png new file mode 100644 index 0000000..719e391 Binary files /dev/null and b/simpla/design/images/accept.png differ diff --git a/simpla/design/images/bgd.jpg b/simpla/design/images/bgd.jpg new file mode 100644 index 0000000..75e358a Binary files /dev/null and b/simpla/design/images/bgd.jpg differ diff --git a/simpla/design/images/bgd.png b/simpla/design/images/bgd.png new file mode 100644 index 0000000..d672449 Binary files /dev/null and b/simpla/design/images/bgd.png differ diff --git a/simpla/design/images/bookmark.gif b/simpla/design/images/bookmark.gif new file mode 100644 index 0000000..05aacb9 Binary files /dev/null and b/simpla/design/images/bookmark.gif differ diff --git a/simpla/design/images/bullet_delete.png b/simpla/design/images/bullet_delete.png new file mode 100644 index 0000000..7736d69 Binary files /dev/null and b/simpla/design/images/bullet_delete.png differ diff --git a/simpla/design/images/bullet_error.png b/simpla/design/images/bullet_error.png new file mode 100644 index 0000000..b2e6b75 Binary files /dev/null and b/simpla/design/images/bullet_error.png differ diff --git a/simpla/design/images/but_green.jpg b/simpla/design/images/but_green.jpg new file mode 100644 index 0000000..3666c7b Binary files /dev/null and b/simpla/design/images/but_green.jpg differ diff --git a/simpla/design/images/but_red.jpg b/simpla/design/images/but_red.jpg new file mode 100644 index 0000000..23a38fa Binary files /dev/null and b/simpla/design/images/but_red.jpg differ diff --git a/simpla/design/images/but_search.gif b/simpla/design/images/but_search.gif new file mode 100644 index 0000000..49bd65d Binary files /dev/null and b/simpla/design/images/but_search.gif differ diff --git a/simpla/design/images/but_yellow.jpg b/simpla/design/images/but_yellow.jpg new file mode 100644 index 0000000..3286482 Binary files /dev/null and b/simpla/design/images/but_yellow.jpg differ diff --git a/simpla/design/images/cash_stack.png b/simpla/design/images/cash_stack.png new file mode 100644 index 0000000..2a54d4f Binary files /dev/null and b/simpla/design/images/cash_stack.png differ diff --git a/simpla/design/images/cash_stack_gray.png b/simpla/design/images/cash_stack_gray.png new file mode 100644 index 0000000..2337635 Binary files /dev/null and b/simpla/design/images/cash_stack_gray.png differ diff --git a/simpla/design/images/cd_add.png b/simpla/design/images/cd_add.png new file mode 100644 index 0000000..8500783 Binary files /dev/null and b/simpla/design/images/cd_add.png differ diff --git a/simpla/design/images/clock_history_frame.png b/simpla/design/images/clock_history_frame.png new file mode 100644 index 0000000..f40e399 Binary files /dev/null and b/simpla/design/images/clock_history_frame.png differ diff --git a/simpla/design/images/clock_history_frame@2x.png b/simpla/design/images/clock_history_frame@2x.png new file mode 100644 index 0000000..ce59927 Binary files /dev/null and b/simpla/design/images/clock_history_frame@2x.png differ diff --git a/simpla/design/images/coin_stack_gold.png b/simpla/design/images/coin_stack_gold.png new file mode 100644 index 0000000..21b8207 Binary files /dev/null and b/simpla/design/images/coin_stack_gold.png differ diff --git a/simpla/design/images/coin_stack_gold@2x.png b/simpla/design/images/coin_stack_gold@2x.png new file mode 100644 index 0000000..422c35a Binary files /dev/null and b/simpla/design/images/coin_stack_gold@2x.png differ diff --git a/simpla/design/images/coin_stack_gold_off.png b/simpla/design/images/coin_stack_gold_off.png new file mode 100644 index 0000000..fa55f66 Binary files /dev/null and b/simpla/design/images/coin_stack_gold_off.png differ diff --git a/simpla/design/images/coin_stack_gold_off@2x.png b/simpla/design/images/coin_stack_gold_off@2x.png new file mode 100644 index 0000000..6ee53b6 Binary files /dev/null and b/simpla/design/images/coin_stack_gold_off@2x.png differ diff --git a/simpla/design/images/combobox.png b/simpla/design/images/combobox.png new file mode 100644 index 0000000..87ae448 Binary files /dev/null and b/simpla/design/images/combobox.png differ diff --git a/simpla/design/images/cross-circle-frame.png b/simpla/design/images/cross-circle-frame.png new file mode 100644 index 0000000..0db86f6 Binary files /dev/null and b/simpla/design/images/cross-circle-frame.png differ diff --git a/simpla/design/images/cross.png b/simpla/design/images/cross.png new file mode 100644 index 0000000..33a3837 Binary files /dev/null and b/simpla/design/images/cross.png differ diff --git a/simpla/design/images/delete.png b/simpla/design/images/delete.png new file mode 100644 index 0000000..ace289e Binary files /dev/null and b/simpla/design/images/delete.png differ diff --git a/simpla/design/images/delete@2x.png b/simpla/design/images/delete@2x.png new file mode 100644 index 0000000..30a45b8 Binary files /dev/null and b/simpla/design/images/delete@2x.png differ diff --git a/simpla/design/images/error.png b/simpla/design/images/error.png new file mode 100644 index 0000000..dbfda22 Binary files /dev/null and b/simpla/design/images/error.png differ diff --git a/simpla/design/images/exclamation.png b/simpla/design/images/exclamation.png new file mode 100644 index 0000000..d49653a Binary files /dev/null and b/simpla/design/images/exclamation.png differ diff --git a/simpla/design/images/export_excel.png b/simpla/design/images/export_excel.png new file mode 100644 index 0000000..b749c03 Binary files /dev/null and b/simpla/design/images/export_excel.png differ diff --git a/simpla/design/images/favicon.ico b/simpla/design/images/favicon.ico new file mode 100644 index 0000000..b50a4ad Binary files /dev/null and b/simpla/design/images/favicon.ico differ diff --git a/simpla/design/images/filter.png b/simpla/design/images/filter.png new file mode 100644 index 0000000..227e843 Binary files /dev/null and b/simpla/design/images/filter.png differ diff --git a/simpla/design/images/filter@2x.png b/simpla/design/images/filter@2x.png new file mode 100644 index 0000000..dc486c4 Binary files /dev/null and b/simpla/design/images/filter@2x.png differ diff --git a/simpla/design/images/filter_gray.png b/simpla/design/images/filter_gray.png new file mode 100644 index 0000000..1eff8c4 Binary files /dev/null and b/simpla/design/images/filter_gray.png differ diff --git a/simpla/design/images/filter_gray@2x.png b/simpla/design/images/filter_gray@2x.png new file mode 100644 index 0000000..3404e9a Binary files /dev/null and b/simpla/design/images/filter_gray@2x.png differ diff --git a/simpla/design/images/gradient.jpg b/simpla/design/images/gradient.jpg new file mode 100644 index 0000000..b094d28 Binary files /dev/null and b/simpla/design/images/gradient.jpg differ diff --git a/simpla/design/images/icon_message_error.png b/simpla/design/images/icon_message_error.png new file mode 100644 index 0000000..3b5396b Binary files /dev/null and b/simpla/design/images/icon_message_error.png differ diff --git a/simpla/design/images/label.png b/simpla/design/images/label.png new file mode 100644 index 0000000..77d6c95 Binary files /dev/null and b/simpla/design/images/label.png differ diff --git a/simpla/design/images/label@2x b/simpla/design/images/label@2x new file mode 100644 index 0000000..8b093a6 Binary files /dev/null and b/simpla/design/images/label@2x differ diff --git a/simpla/design/images/label@2x.png b/simpla/design/images/label@2x.png new file mode 100644 index 0000000..7c006c9 Binary files /dev/null and b/simpla/design/images/label@2x.png differ diff --git a/simpla/design/images/label@2x.png_.png b/simpla/design/images/label@2x.png_.png new file mode 100644 index 0000000..09563f1 Binary files /dev/null and b/simpla/design/images/label@2x.png_.png differ diff --git a/simpla/design/images/label_big.png b/simpla/design/images/label_big.png new file mode 100644 index 0000000..939099d Binary files /dev/null and b/simpla/design/images/label_big.png differ diff --git a/simpla/design/images/lightbulb.png b/simpla/design/images/lightbulb.png new file mode 100644 index 0000000..117285f Binary files /dev/null and b/simpla/design/images/lightbulb.png differ diff --git a/simpla/design/images/lightbulb@2x.png b/simpla/design/images/lightbulb@2x.png new file mode 100644 index 0000000..17181a9 Binary files /dev/null and b/simpla/design/images/lightbulb@2x.png differ diff --git a/simpla/design/images/lightbulb_off.png b/simpla/design/images/lightbulb_off.png new file mode 100644 index 0000000..5cf32c0 Binary files /dev/null and b/simpla/design/images/lightbulb_off.png differ diff --git a/simpla/design/images/lightbulb_off@2x.png b/simpla/design/images/lightbulb_off@2x.png new file mode 100644 index 0000000..9516ef3 Binary files /dev/null and b/simpla/design/images/lightbulb_off@2x.png differ diff --git a/simpla/design/images/loader.gif b/simpla/design/images/loader.gif new file mode 100644 index 0000000..078b55f Binary files /dev/null and b/simpla/design/images/loader.gif differ diff --git a/simpla/design/images/lock.png b/simpla/design/images/lock.png new file mode 100644 index 0000000..ceebba9 Binary files /dev/null and b/simpla/design/images/lock.png differ diff --git a/simpla/design/images/lock_small.png b/simpla/design/images/lock_small.png new file mode 100644 index 0000000..ddf83d9 Binary files /dev/null and b/simpla/design/images/lock_small.png differ diff --git a/simpla/design/images/map.png b/simpla/design/images/map.png new file mode 100644 index 0000000..44d804d Binary files /dev/null and b/simpla/design/images/map.png differ diff --git a/simpla/design/images/menu/banners.png b/simpla/design/images/menu/banners.png new file mode 100644 index 0000000..22b01a9 Binary files /dev/null and b/simpla/design/images/menu/banners.png differ diff --git a/simpla/design/images/menu/blog.png b/simpla/design/images/menu/blog.png new file mode 100644 index 0000000..6095771 Binary files /dev/null and b/simpla/design/images/menu/blog.png differ diff --git a/simpla/design/images/menu/catalog.png b/simpla/design/images/menu/catalog.png new file mode 100644 index 0000000..33d916a Binary files /dev/null and b/simpla/design/images/menu/catalog.png differ diff --git a/simpla/design/images/menu/comments.png b/simpla/design/images/menu/comments.png new file mode 100644 index 0000000..30708a9 Binary files /dev/null and b/simpla/design/images/menu/comments.png differ diff --git a/simpla/design/images/menu/design.png b/simpla/design/images/menu/design.png new file mode 100644 index 0000000..ba128c8 Binary files /dev/null and b/simpla/design/images/menu/design.png differ diff --git a/simpla/design/images/menu/orders.png b/simpla/design/images/menu/orders.png new file mode 100644 index 0000000..56cd031 Binary files /dev/null and b/simpla/design/images/menu/orders.png differ diff --git a/simpla/design/images/menu/pages.png b/simpla/design/images/menu/pages.png new file mode 100644 index 0000000..d63f769 Binary files /dev/null and b/simpla/design/images/menu/pages.png differ diff --git a/simpla/design/images/menu/settings.png b/simpla/design/images/menu/settings.png new file mode 100644 index 0000000..a70da51 Binary files /dev/null and b/simpla/design/images/menu/settings.png differ diff --git a/simpla/design/images/menu/statistics.png b/simpla/design/images/menu/statistics.png new file mode 100644 index 0000000..5e29a10 Binary files /dev/null and b/simpla/design/images/menu/statistics.png differ diff --git a/simpla/design/images/menu/users.png b/simpla/design/images/menu/users.png new file mode 100644 index 0000000..4cbb9ca Binary files /dev/null and b/simpla/design/images/menu/users.png differ diff --git a/simpla/design/images/menu/wizards.png b/simpla/design/images/menu/wizards.png new file mode 100644 index 0000000..172147b Binary files /dev/null and b/simpla/design/images/menu/wizards.png differ diff --git a/simpla/design/images/menu/wrench.png b/simpla/design/images/menu/wrench.png new file mode 100644 index 0000000..f1d16af Binary files /dev/null and b/simpla/design/images/menu/wrench.png differ diff --git a/simpla/design/images/message_button_bgd.jpg b/simpla/design/images/message_button_bgd.jpg new file mode 100644 index 0000000..349ec52 Binary files /dev/null and b/simpla/design/images/message_button_bgd.jpg differ diff --git a/simpla/design/images/money.png b/simpla/design/images/money.png new file mode 100644 index 0000000..866a729 Binary files /dev/null and b/simpla/design/images/money.png differ diff --git a/simpla/design/images/monitor.png b/simpla/design/images/monitor.png new file mode 100644 index 0000000..c6ca8ee Binary files /dev/null and b/simpla/design/images/monitor.png differ diff --git a/simpla/design/images/monitor@2x.png b/simpla/design/images/monitor@2x.png new file mode 100644 index 0000000..cc5207c Binary files /dev/null and b/simpla/design/images/monitor@2x.png differ diff --git a/simpla/design/images/move_zone.png b/simpla/design/images/move_zone.png new file mode 100644 index 0000000..c51e795 Binary files /dev/null and b/simpla/design/images/move_zone.png differ diff --git a/simpla/design/images/new.png b/simpla/design/images/new.png new file mode 100644 index 0000000..eb81c5e Binary files /dev/null and b/simpla/design/images/new.png differ diff --git a/simpla/design/images/page_copy.png b/simpla/design/images/page_copy.png new file mode 100644 index 0000000..9c71808 Binary files /dev/null and b/simpla/design/images/page_copy.png differ diff --git a/simpla/design/images/page_copy@2x.png b/simpla/design/images/page_copy@2x.png new file mode 100644 index 0000000..7e387d6 Binary files /dev/null and b/simpla/design/images/page_copy@2x.png differ diff --git a/simpla/design/images/page_unit.jpg b/simpla/design/images/page_unit.jpg new file mode 100644 index 0000000..2da63d3 Binary files /dev/null and b/simpla/design/images/page_unit.jpg differ diff --git a/simpla/design/images/pencil.png b/simpla/design/images/pencil.png new file mode 100644 index 0000000..d5ba3d5 Binary files /dev/null and b/simpla/design/images/pencil.png differ diff --git a/simpla/design/images/phone.png b/simpla/design/images/phone.png new file mode 100644 index 0000000..eb83742 Binary files /dev/null and b/simpla/design/images/phone.png differ diff --git a/simpla/design/images/phone_sound.png b/simpla/design/images/phone_sound.png new file mode 100644 index 0000000..cfc41f5 Binary files /dev/null and b/simpla/design/images/phone_sound.png differ diff --git a/simpla/design/images/picture_add.png b/simpla/design/images/picture_add.png new file mode 100644 index 0000000..ef26343 Binary files /dev/null and b/simpla/design/images/picture_add.png differ diff --git a/simpla/design/images/plus-circle.png b/simpla/design/images/plus-circle.png new file mode 100644 index 0000000..1138739 Binary files /dev/null and b/simpla/design/images/plus-circle.png differ diff --git a/simpla/design/images/plus.png b/simpla/design/images/plus.png new file mode 100644 index 0000000..4ac1baf Binary files /dev/null and b/simpla/design/images/plus.png differ diff --git a/simpla/design/images/printer.png b/simpla/design/images/printer.png new file mode 100644 index 0000000..d094d2b Binary files /dev/null and b/simpla/design/images/printer.png differ diff --git a/simpla/design/images/printer_small.png b/simpla/design/images/printer_small.png new file mode 100644 index 0000000..8a33e0a Binary files /dev/null and b/simpla/design/images/printer_small.png differ diff --git a/simpla/design/images/printer_small@2x.png b/simpla/design/images/printer_small@2x.png new file mode 100644 index 0000000..d094d2b Binary files /dev/null and b/simpla/design/images/printer_small@2x.png differ diff --git a/simpla/design/images/progress.gif b/simpla/design/images/progress.gif new file mode 100644 index 0000000..32054b8 Binary files /dev/null and b/simpla/design/images/progress.gif differ diff --git a/simpla/design/images/star.png b/simpla/design/images/star.png new file mode 100644 index 0000000..883e4de Binary files /dev/null and b/simpla/design/images/star.png differ diff --git a/simpla/design/images/star@2x.png b/simpla/design/images/star@2x.png new file mode 100644 index 0000000..92865b1 Binary files /dev/null and b/simpla/design/images/star@2x.png differ diff --git a/simpla/design/images/star_gray.png b/simpla/design/images/star_gray.png new file mode 100644 index 0000000..54cad73 Binary files /dev/null and b/simpla/design/images/star_gray.png differ diff --git a/simpla/design/images/star_gray@2x.png b/simpla/design/images/star_gray@2x.png new file mode 100644 index 0000000..184a00a Binary files /dev/null and b/simpla/design/images/star_gray@2x.png differ diff --git a/simpla/design/images/tabs_bgd.jpg b/simpla/design/images/tabs_bgd.jpg new file mode 100644 index 0000000..4e7fa39 Binary files /dev/null and b/simpla/design/images/tabs_bgd.jpg differ diff --git a/simpla/design/images/tick.png b/simpla/design/images/tick.png new file mode 100644 index 0000000..c277e6b Binary files /dev/null and b/simpla/design/images/tick.png differ diff --git a/simpla/design/images/time.png b/simpla/design/images/time.png new file mode 100644 index 0000000..f69c02d Binary files /dev/null and b/simpla/design/images/time.png differ diff --git a/simpla/design/images/transparent.gif b/simpla/design/images/transparent.gif new file mode 100644 index 0000000..30fb9f6 Binary files /dev/null and b/simpla/design/images/transparent.gif differ diff --git a/simpla/design/images/update.png b/simpla/design/images/update.png new file mode 100644 index 0000000..b7639f1 Binary files /dev/null and b/simpla/design/images/update.png differ diff --git a/simpla/design/images/view.png b/simpla/design/images/view.png new file mode 100644 index 0000000..681f2fd Binary files /dev/null and b/simpla/design/images/view.png differ diff --git a/simpla/design/images/view_grey.png b/simpla/design/images/view_grey.png new file mode 100644 index 0000000..a084bd0 Binary files /dev/null and b/simpla/design/images/view_grey.png differ diff --git a/simpla/design/images/wand.png b/simpla/design/images/wand.png new file mode 100644 index 0000000..1e2724e Binary files /dev/null and b/simpla/design/images/wand.png differ diff --git a/simpla/design/images/world_link.png b/simpla/design/images/world_link.png new file mode 100644 index 0000000..e737026 Binary files /dev/null and b/simpla/design/images/world_link.png differ diff --git a/simpla/design/images/yandex.png b/simpla/design/images/yandex.png new file mode 100644 index 0000000..4a07541 Binary files /dev/null and b/simpla/design/images/yandex.png differ diff --git a/simpla/design/images/yandex_off.png b/simpla/design/images/yandex_off.png new file mode 100644 index 0000000..c1eec85 Binary files /dev/null and b/simpla/design/images/yandex_off.png differ diff --git a/simpla/design/js/autocomplete/jquery.autocomplete-min.js b/simpla/design/js/autocomplete/jquery.autocomplete-min.js new file mode 100644 index 0000000..9b184f7 --- /dev/null +++ b/simpla/design/js/autocomplete/jquery.autocomplete-min.js @@ -0,0 +1,11 @@ +/** +* Ajax Autocomplete for jQuery, version 1.1.3 +* (c) 2010 Tomas Kirda +* +* Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license. +* For details, see the web site: http://www.devbridge.com/projects/autocomplete/jquery/ +* +* Last Review: 04/19/2010 +*/ + +(function(d){function l(b,a,c){a="("+c.replace(m,"\\$1")+")";return b.replace(new RegExp(a,"gi"),"$1")}function i(b,a){this.el=d(b);this.el.attr("autocomplete","off");this.suggestions=[];this.data=[];this.badQueries=[];this.selectedIndex=-1;this.currentValue=this.el.val();this.intervalId=0;this.cachedResponse=[];this.onChangeInterval=null;this.ignoreValueChange=false;this.serviceUrl=a.serviceUrl;this.isLocal=false;this.options={autoSubmit:false,minChars:1,maxHeight:300,deferRequestBy:0, width:0,highlight:true,params:{},fnFormatResult:l,delimiter:null,zIndex:9999};this.initialize();this.setOptions(a)}var m=new RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\)","g");d.fn.autocomplete=function(b){return new i(this.get(0)||d(""),b)};i.prototype={killerFn:null,initialize:function(){var b,a,c;b=this;a=Math.floor(Math.random()*1048576).toString(16);c="Autocomplete_"+a;this.killerFn=function(e){if(d(e.target).parents(".autocomplete").size()===0){b.killSuggestions(); b.disableKillerFn()}};if(!this.options.width)this.options.width=this.el.width();this.mainContainerId="AutocompleteContainter_"+a;d('
    ').appendTo("body");this.container=d("#"+c);this.fixPosition();window.opera?this.el.keypress(function(e){b.onKeyPress(e)}):this.el.keydown(function(e){b.onKeyPress(e)});this.el.keyup(function(e){b.onKeyUp(e)}); this.el.blur(function(){b.enableKillerFn()});this.el.focus(function(){b.fixPosition();if(b.el.val()=='')b.onValueChange();})},setOptions:function(b){var a=this.options;d.extend(a,b);if(a.lookup){this.isLocal=true;if(d.isArray(a.lookup))a.lookup={suggestions:a.lookup,data:[]}}d("#"+this.mainContainerId).css({zIndex:a.zIndex});this.container.css({maxHeight:a.maxHeight+"px",width:a.width})},clearCache:function(){this.cachedResponse=[];this.badQueries=[]},disable:function(){this.disabled=true},enable:function(){this.disabled=false},fixPosition:function(){var b= this.el.offset();d("#"+this.mainContainerId).css({top:b.top+this.el.innerHeight()+"px",left:b.left+"px"})},enableKillerFn:function(){d(document).bind("click",this.killerFn)},disableKillerFn:function(){d(document).unbind("click",this.killerFn)},killSuggestions:function(){var b=this;this.stopKillSuggestions();this.intervalId=window.setInterval(function(){b.hide();b.stopKillSuggestions()},300)},stopKillSuggestions:function(){window.clearInterval(this.intervalId)},onKeyPress:function(b){if(!(this.disabled|| !this.enabled)){switch(b.keyCode){case 27:this.el.val(this.currentValue);this.hide();break;case 9:case 13:if(this.selectedIndex===-1){this.hide();return}this.select(this.selectedIndex);if(b.keyCode===9)return;break;case 38:this.moveUp();break;case 40:this.moveDown();break;default:return}b.stopImmediatePropagation();b.preventDefault()}},onKeyUp:function(b){if(!this.disabled){switch(b.keyCode){case 38:case 40:return}clearInterval(this.onChangeInterval);if(this.currentValue!==this.el.val())if(this.options.deferRequestBy> 0){var a=this;this.onChangeInterval=setInterval(function(){a.onValueChange()},this.options.deferRequestBy)}else this.onValueChange()}},onValueChange:function(){clearInterval(this.onChangeInterval);this.currentValue=this.el.val();var b=this.getQuery(this.currentValue);this.selectedIndex=-1;if(this.ignoreValueChange)this.ignoreValueChange=false;else b.length'+e(c,this.data[f],g)+"
    ");c.mouseover(j(f));c.click(k(f));this.container.append(c)}this.enabled=true;this.container.show()}},processResponse:function(b){var a;try{a=eval("("+b+")")}catch(c){return}if(!d.isArray(a.data))a.data=[];if(!this.options.noCache){this.cachedResponse[a.query]= a;a.suggestions.length===0&&this.badQueries.push(a.query)}if(a.query===this.getQuery(this.currentValue)){this.suggestions=a.suggestions;this.data=a.data;this.suggest()}},activate:function(b){var a,c;a=this.container.children();this.selectedIndex!==-1&&a.length>this.selectedIndex&&d(a.get(this.selectedIndex)).removeClass();this.selectedIndex=b;if(this.selectedIndex!==-1&&a.length>this.selectedIndex){c=a.get(this.selectedIndex);d(c).addClass("selected")}return c},deactivate:function(b,a){b.className= "";if(this.selectedIndex===a)this.selectedIndex=-1},select:function(b){var a;if(a=this.suggestions[b]){this.el.val(a);if(this.options.autoSubmit){a=this.el.parents("form");a.length>0&&a.get(0).submit()}this.ignoreValueChange=true;this.hide();this.onSelect(b)}},moveUp:function(){if(this.selectedIndex!==-1)if(this.selectedIndex===0){this.container.children().get(0).className="";this.selectedIndex=-1;this.el.val(this.currentValue)}else this.adjustScroll(this.selectedIndex-1)},moveDown:function(){this.selectedIndex!== this.suggestions.length-1&&this.adjustScroll(this.selectedIndex+1)},adjustScroll:function(b){var a,c,e;a=this.activate(b).offsetTop;c=this.container.scrollTop();e=c+this.options.maxHeight-25;if(ae&&this.container.scrollTop(a-this.options.maxHeight+25);this.el.val(this.getValue(this.suggestions[b]))},onSelect:function(b){var a,c;a=this.options.onSelect;c=this.suggestions[b];b=this.data[b];this.el.val(this.getValue(c));d.isFunction(a)&&a(c,b,this.el)},getValue:function(b){var a, c;a=this.options.delimiter;if(!a)return b;c=this.currentValue;a=c.split(a);if(a.length===1)return b;return c.substr(0,c.length-a[a.length-1].length)+b}}})(jQuery); \ No newline at end of file diff --git a/simpla/design/js/autocomplete/shadow.png b/simpla/design/js/autocomplete/shadow.png new file mode 100644 index 0000000..a2561df Binary files /dev/null and b/simpla/design/js/autocomplete/shadow.png differ diff --git a/simpla/design/js/autocomplete/styles.css b/simpla/design/js/autocomplete/styles.css new file mode 100644 index 0000000..388adb0 --- /dev/null +++ b/simpla/design/js/autocomplete/styles.css @@ -0,0 +1,6 @@ + +.autocomplete-w1 { background:url(img/shadow.png) no-repeat bottom right; position:absolute; top:0px; left:0px; margin:8px 0 0 6px; /* IE6 fix: */ _background:none; _margin:0; } +.autocomplete { border:1px solid #999; background:#FFF; cursor:default; text-align:left; max-height:350px; overflow: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; } diff --git a/simpla/design/js/calendar/calendar.css b/simpla/design/js/calendar/calendar.css new file mode 100644 index 0000000..af6e925 --- /dev/null +++ b/simpla/design/js/calendar/calendar.css @@ -0,0 +1,252 @@ +.panel { + border-width:1px; + border-style:solid; + border-color:#888888; + background-color:#EEEEEE; + padding:0px; +} + +.head { + + font-family:Tahoma; + font-size:11px; + font-weight:bold; + text-align:center; + color:#000000; + cursor:default; +} + +.arrow_prev { + font-family:Tahoma; + font-size:11px; + text-align:center; + color:#000000; + padding:4px; + cursor:pointer; +} + +.arrow_prev_over { + font-family:Tahoma; + font-size:11px; + text-align:center; + background-color:#CCCCCC; + color:#000000; + padding:4px; + cursor:pointer; +} +.arrow_prev_down { + font-family:Tahoma; + font-size:11px; + padding:4px; + cursor:pointer; +} + +.arrow_next { + font-family:Tahoma; + font-size:11px; + text-align:center; + color:#000000; + padding:4px; + cursor:pointer; +} +.arrow_next_over { + font-family:Tahoma; + font-size:11px; + background-color:#CCCCCC; + text-align:center; + color:#000000; + padding:4px; + cursor:pointer; +} +.arrow_next_down{ + font-family:Tahoma; + font-size:11px; + text-align:center; + color:#000000; + padding:4px; + cursor:pointer; +} +.row_week{ + border-width:1px; + border-style:solid; + border-color:#888888; +} +.weekday{ + font-family:Tahoma; + font-size:11px; + text-align:center; + color:#ffffff; + background-color:#888888; + padding:1px; + cursor:default; +} +.row_day { + padding:1px; +} +.day { + font-family:Tahoma; + font-size:11px; + width:22px; + height:15px; + text-align:center; + color:#000000; + border:1px solid #f0f0f0; + cursor:pointer; +} +.day_over { + font-family:Tahoma; + font-size:11px; + width:22px; + height:15px; + text-align:center; + color:#000000; + background-color:#CCCCCC; + border:1px solid #888888; + cursor:pointer; +} +.day_down { + font-family:Tahoma; + font-size:11px; + width:22px; + height:15px; + text-align:center; + color:#000000; + background-color:#f0f0f0; + border:1px solid #f0f0f0; + cursor:pointer; +} +.day_empty { + font-family:Tahoma; + font-size:11px; + width:22px; + height:15px; + text-align:center; + color:#000000; + border:1px solid #f0f0f0; + cursor:default; +} +.day_disabled { + font-family:Tahoma; + font-size:11px; + width:22px; + height:15px; + text-align:center; + color:#000000; + background-color:#888888; + border:1px solid #888888; + cursor:pointer; +} +.day_current { + font-family:Tahoma; + font-size:11px; + width:22px; + height:15px; + text-align:center; + color:#000000; + background-color:#FFFFFF; + border:1px solid #888888; + cursor:pointer; +} +.day_special { + font-family:Tahoma; + font-size:11px; + width:22px; + height:15px; + text-align:center; + color:#000000; + background-color:#FFFFFF; + border:1px solid #888888; + cursor:pointer; +} + +.row_foot { + margin:0px; +} +.foot { + + font-size:11px; + width:50px; + margin:0px 1px; + text-align:center; + color:#ffffff; + background-color:#99b3cc; + border-width:1px; + border-style:solid; + border-color:#cce6ff #668099 #668099 #cce6ff; + padding:1px; + cursor:pointer; +} +.foot_over { + + font-size:11px; + width:50px; + margin:0px 1px; + text-align:center; + color:#ffffff; + background-color:#afc6dd; + border-width:1px; + border-style:solid; + border-color:#cce6ff #668099 #668099 #cce6ff; + padding:1px; + cursor:pointer; +} +.foot_down { + + font-size:11px; + width:50px; + margin:0px 1px; + text-align:center; + color:#ffffff; + background-color:#7e93aa; + border-width:1px; + border-style:solid; + border-color:#4b6077 #afc6dd #afc6dd #4b6077; + padding:2px 0px 0px 2px; + cursor:pointer; +} + + +.list { + + font-size:12px; + color:#000000; + background-color:#f0f0f0; +} + +.info { + font-size:10px; + color:#000000; + text-align:left; + margin:2px 6px; + padding:2px; +} + +.tip_title { + + font-size:11px; + text-align:center; + color:#ffffff; + background-color:#cc9999; + border-width:1px; + border-style:solid; + border-color:#996666 #ffcccc #ffcccc #996666; + padding:0px 3px; +} +.tip_box { + filter: + alpha(opacity:90) + progid:DXImageTransform.Microsoft.RandomDissolve(duration=0.5); + -moz-opacity:0.9; + width:200px; height:100px; + + font-size:11px; + text-align:left; + color:#000000; + background-color:#cfcfcf; + border-width:1px; + border-style:solid; + border-color:#cce6ff #668099 #668099 #cce6ff; + padding:3px; + cursor:default; + overflow:auto; +} \ No newline at end of file diff --git a/simpla/design/js/calendar/calendar.gif b/simpla/design/js/calendar/calendar.gif new file mode 100644 index 0000000..733a28f Binary files /dev/null and b/simpla/design/js/calendar/calendar.gif differ diff --git a/simpla/design/js/calendar/calendar.js b/simpla/design/js/calendar/calendar.js new file mode 100644 index 0000000..dfa95f8 --- /dev/null +++ b/simpla/design/js/calendar/calendar.js @@ -0,0 +1,83 @@ +// date format +// ----------- +xcDateFormat="dd.mm.yyyy"; + + +// css conf +// -------- +xcCSSPanel="panel"; + +xcCSSHeadBlock="row_head"; +xcCSSHead="head"; + +xcCSSArrowMonthPrev=["arrow_prev", "arrow_prev_over", "arrow_prev_down"]; +xcCSSArrowMonthNext=["arrow_next", "arrow_next_over", "arrow_next_down"]; + +xcCSSArrowYearPrev=["arrow_prev", "arrow_prev_over", "arrow_prev_down"]; +xcCSSArrowYearNext=["arrow_next", "arrow_next_over", "arrow_next_down"]; + +xcCSSWeekdayBlock="row_week"; +xcCSSWeekday="weekday"; + +xcCSSDayBlock="row_day"; +xcCSSDay=["day", "day_over", "day_down", "day_disabled"]; +xcCSSDayCurrent=["day_current", "", ""]; +xcCSSDaySpecial=["day_special", "day_disabled"]; +xcCSSDayEmpty="day_empty"; + +xcCSSFootBlock="row_foot"; +xcCSSFootToday=["foot", "foot_over", "foot_down"]; +xcCSSFootClear=["foot", "foot_over", "foot_down"]; +xcCSSFootBack=["foot", "foot_over", "foot_down"]; +xcCSSFootClose=["foot", "foot_over", "foot_down"]; +xcCSSFootReset=["foot", "foot_over", "foot_down"]; + + +// layout conf +// ----------- +xcMonthNames=["Январь", "Февраль", "Март", "Апрел", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"]; +//xcMonthNames=["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; +xcMonthShortNames=["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; +xcMonthPrefix=""; +xcMonthSuffix=""; + +xcYearDigits=["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]; +xcYearPrefix=""; +xcYearSuffix=""; + +xcHeadSeparator=" "; // separator string between year and month +xcHeadTagOrder=1; // 1: month/year, 0: year/month +xcHeadTagAdjustment=1; // 1: 100% width, 0: actual width + +xcArrowMonth=["‹", "›"]; +xcArrowYear=["«", "»"]; +xcArrowSwitch=[1, 1]; // [year, month] 1:on, 0:off +xcArrowPosition=0; // 0:in head block, 1:in foot block + +// names for days +xcWeekdayNames=["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; +xcWeekdayShortNames=["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]; +xcWeekdayDisplay=["ВС", "ПН","ВТ","СР","ЧТ","ПТ","СБ","ВС"]; + +// foot links +xcFootTags=["сегодня", "очистить", "назад", "×", "сбросить", "_Today_", "_Back_", "_Reset_"]; +xcFootTagSwitch=[0, 0, 0, 0, 0, 0, 0, 0]; // [today, clear, back, close, reset, _today_, _back_, _reset_] non-zero:display order, 0:off +xcFootTagAdjustment=0; // 1: % width, 0: actual width + +// easy workaround for grid style +xcGridWidth=0; // used as cellspacing + +// others +xcBaseZIndex=100; // z-index for calendar layers +xcMultiCalendar=0; // 1:multi-calendar, 0:single-calendar +xcShowCurrentDate=1; // 1:highlight current date/today, 0:no highlight +xcWeekStart=1; // 0:Sunday, 1:Monday +xcAutoHide=500; // 0: no auto hide, non-zero:auto hide interval in ms +xcStickyMode=0; // 0:non-sticky, 1:sticky + +// day contents +xcDayContents=[" ", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"]; +xcDayContentsDisabled=xcDayContents; +xcDayContentsCurrent=xcDayContents; + +xcMods=[]; \ No newline at end of file diff --git a/simpla/design/js/calendar/calendas.js b/simpla/design/js/calendar/calendas.js new file mode 100644 index 0000000..d4d2927 --- /dev/null +++ b/simpla/design/js/calendar/calendas.js @@ -0,0 +1,93 @@ +var xcShowCopyright=0; +var xcCore=1; +var xc_au=new Array(),xc_en=new Array(),xc_du={}; +var xc_bd=xc_cw=xc_bo=xc_dn=null; +var xc_dc=xc_dd=xc_dj=0; +var xc_fh=-1; +var xc_bu=["","100%","50%","33%","25%","20%"]; +var xc_eu=" CELLPADDING='0' CELLSPACING='4' BORDER='0'>"; +var xc_ev=" CELLPADDING='0' CELLSPACING='0' BORDER='0' ALIGN='CENTER'>"; +var xc_ew=" CELLPADDING='0' CELLSPACING='"+xcGridWidth+"' BORDER='0' ALIGN='CENTER'>"; +var xc_ey="0)};function xc_cc(id){return id==""?null:document.getElementById(id)};function xc_cd(l,fj){if(xcIsIEMac){if(xc_fc.test(l.tagName)){fj=1};var x=l.offsetLeft;if(l.tagName=="TD"&&typeof(fj)=="undefined"){x+=xc_cd(l.parentElement,1)}else if(l.offsetParent){x+=xc_cd(l.offsetParent,fj)}else{x+=isNaN(parseInt(document.body.style.marginLeft))?parseInt(document.body.leftMargin):parseInt(document.body.style.marginLeft)};return x}else{return l.offsetLeft+(l.offsetParent?xc_cd(l.offsetParent):0)}};function xc_ce(l,fj){if(xcIsIEMac){if(xc_fc.test(l.tagName)){fj=1};var x=l.offsetTop;if(l.tagName=="TD"&&typeof(fj)=="undefined"){x+=xc_ce(l.parentElement,1)}else if(l.offsetParent){x+=xc_ce(l.offsetParent,fj)}else{x+=isNaN(parseInt(document.body.style.marginTop))?parseInt(document.body.topMargin):parseInt(document.body.style.marginTop)};return x}else{return l.offsetTop+(l.offsetParent?xc_ce(l.offsetParent):0)}};function xc_fm(l,cb){l.innerHTML=cb};function xc_dg(l,x,y){l.style.top=y+"px";l.style.left=x+"px"};function xc_df(l,x,y){l.style.top=(parseInt(l.style.top)+y)+"px";l.style.left=(parseInt(l.style.left)+x)+"px"};function xc_ek(l){l.style.visibility="visible"};function xc_cn(l){l.style.visibility="hidden"};function xc_cs(){var l=document.createElement("DIV");with(l.style){position="absolute";visibility="hidden";left="-1000px";top="-1000px";zIndex=++xcBaseZIndex};if(xcIsIE&&!xcIsMac){document.body.insertBefore(l,document.body.firstChild)}else{document.body.appendChild(l)};l.fp=null;if(xcIsIE55up&&xc_fi()&&!xcIsMac){l.fp=document.createElement("IFRAME");l.fp.src="javascript:false";with(l.fp.style){position="absolute";visibility="hidden";left="-1000px";top="-1000px";width="20px";height="20px";zIndex=l.style.zIndex-1;filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)"};document.body.insertBefore(l.fp,l);l.fp.hb=false};return l};function xc_bx(n){return((n<10)?"0":"")+n};function xc_bp(y,m,d){return xcWeekdayShortNames[(new Date(y,m,d)).getDay()]};function xc_cg(){var gc={};for(var i=0;i"};function xc_bb(style,et,title){return xc_fd("DIV",style,et||"",title||"")};var xc_ba="
    ";function xcDIV(style,cb,et,title){return xc_bb(style,et||"",title||"")+cb+xc_ba};function xc_eq(style,cb,width,et,title){return ""+xcDIV(style,cb,et||"",title||"")+""};function xc_em(a,b){return a.order-b.order};function xc_br(fo){return xc_au[fo]};function xc_bv(gv,hj,gu,el,fn,dx,dy,fz){var dg=null;for(var i=0;i/g,'\\\>');dn=dn.replace(/\|/g,'\\\|');dn=dn.replace(/\*/g,'\\\*');dn=dn.replace(/\?/g,'\\\?');dn=dn.replace(/\+/g,'\\\+');dn=dn.replace(/\^/g,'\\\^');dn=dn.replace(/\$/g,'\\\$');dn=dn.replace(/dd/gi,'\\d\\d');dn=dn.replace(/mm/gi,'\\d\\d');dn=dn.replace(/yyyy/gi,'\\d\\d\\d\\d');dn=dn.replace(/yy/gi,'\\d\\d');dn=dn.replace(/day/gi,'\\w\\w\\w');dn=dn.replace(/mon/gi,'\\w\\w\\w');return dn};function xc_by(f){if(xc_bd==null){xc_bd=new RegExp('^'+ae(f)+'$')};return xc_bd};function xc_cj(date,dn){var y,m,d,ac=dn||xcDateFormat;var ik=ac.search(/yyyy/i);var fv=ac.search(/mm/i);var fu=ac.search(/mon/i);var di=ac.search(/dd/i);y=date.substring(ik,ik+4)-0;if(fv!=-1){m=date.substring(fv,fv+2)-1}else{m=xc_cv(date.substring(fu,fu+3))-0};d=date.substring(di,di+2)-0;return new Array(y,m,d)};function xc_bz(y,m,d,dn){var ac=dn||xcDateFormat;ac=ac.replace(/yyyy/i,y);ac=ac.replace(/mm/i,xc_bx(m+1));ac=ac.replace(/MON/,xcMonthShortNames[m].toUpperCase());ac=ac.replace(/mon/i,xcMonthShortNames[m]);ac=ac.replace(/dd/i,xc_bx(d));ac=ac.replace(/DAY/,xc_bp(y,m,d).toUpperCase());ac=ac.replace(/day/i,xc_bp(y,m,d));return ac};function xc_bt(d){return(new Date(d.getFullYear(),d.getMonth(),1)).getDay()};function xc_cr(d){var gg=new Date(d.getFullYear(),d.getMonth()+1,1);gg.setTime(gg.getTime()-86400000);return gg.getDate()};function xc_ck(y){var io=y+"";return xcYearDigits[io.charAt(0)]+xcYearDigits[io.charAt(1)]+xcYearDigits[io.charAt(2)]+xcYearDigits[io.charAt(3)]};function xc_as(fo){this.fo=fo;this.hj=null;this.gu=null;this.el="";this.fn="";this.dx=0;this.dy=0;this.fz=1;this.hq=0;this.il=0;this.month=0;this.week=0;this.day=0;this.date=0;this.ic=false;this.fr="";this.fm=xc_cs();this.fm.bb=this;if(xcIsIE55up&&!xcIsMac){this.fm.onmouseenter=xc_dy;this.fm.onmouseleave=xc_ei}else{this.fm.onmouseover=xc_dy;this.fm.onmouseout=xc_ei};this.bz={};this.ff=xc_bw;this.ha=xc_ej;this.az=xc_ai;this.al=xc_ae;this.bu=xc_ax;this.dt=xc_bg;this.hc=xc_eo;this.gf=xc_db;this.ge=xc_da;this.bx=xc_cy;this.gx=xc_dz;this.gw=xc_dx;this.bv=xc_ay;this.fe=xcGet;this.ax=xc_ag;this.aj=xc_ac;this.ia=xc_fg;this.ba=xc_aj;this.am=xc_af;this.gz=xc_ec;this.ay=xc_ah;this.ak=xc_ad;this.bn=xc_at;this.be=xc_an;this.bq=xc_aw();this.bj=xc_aq;this.bp=xc_av;this.bm=xc_ar;this.bc=xc_al;this.bd=xc_am;this.eb=xc_bm;this.bi=xc_ap;this.bh=xc_ao;this.ah=xc_aa;this.ai=xc_ab};function xc_bw(fx,av){return typeof(this.bz[fx])!="undefined"?this.bz[fx][av]||null:null};function xc_bg(date){return false};function xc_eo(date){var fi=null;for(var i=0;i"+this.ah()+xc_bb(xcCSSPanel)+(xcIsIEMac?xc_ey+xc_es+"":"")};function xc_an(){return(xcIsIEMac?""+xc_er+xc_ex:"")+xc_ba+this.ai()+""+xc_er+xc_ex};function xc_ei(){if(xcAutoHide&&this.bb.fz==1){this.bb.hq=setTimeout("xc_cm("+this.bb.fo+")",xcAutoHide)}};function xc_dy(){if(xcAutoHide){this.bb.bv()}};function xc_cz(cr,cp,cq,es,eq,er){var s="";if(cr||es){s+=(xcIsIE55up&&!xcIsMac)?" onmouseenter='":" onmouseover='";if(cr){s+=xcCSSOpen+cr+xcCSSClose+";"};if(es){s+=es};s+="' "};if(cp){s+=" onmousedown='"+xcCSSOpen+cp+xcCSSClose+"' "};if(eq){s+=" onclick='"+eq+"' "};if(cq||er){s+=(xcIsIE55up&&!xcIsMac)?" onmouseleave='":" onmouseout='";if(cq){s+=xcCSSOpen+cq+xcCSSClose+";"};if(cq){s+=er};s+="' "};return s};function xc_ak(fo){var gn="xc_di("+fo+",-1)",gh="xc_di("+fo+",1)";var gm="xc_dh("+fo+",-1)",gg="xc_dh("+fo+",1)";var au="",at="";if(xcArrowSwitch[0]==1){var ar=xcCSSArrowYearPrev,aq=xcCSSArrowYearNext;au=xc_eq(ar[0],xcArrowYear[0],"",xc_cz(ar[1],ar[2],ar[0],"",gn,""));at=xc_eq(aq[0],xcArrowYear[1],"",xc_cz(aq[1],aq[2],aq[0],"",gh,""))};if(xcArrowSwitch[1]==1){var ap=xcCSSArrowMonthPrev,ao=xcCSSArrowMonthNext;au+=xc_eq(ap[0],xcArrowMonth[0],"",xc_cz(ap[1],ap[2],ap[0],"",gm,""));at=xc_eq(ao[0],xcArrowMonth[1],"",xc_cz(ao[1],ao[2],ao[0],"",gg,""))+at};return [au,at]};function xc_ar(){var yy=xcYearPrefix+xc_ck(this.il)+xcYearSuffix,mm=xcMonthPrefix+xcMonthNames[this.month]+xcMonthSuffix;return xc_eq(xcCSSHead,xcHeadTagOrder==1?mm+xcHeadSeparator+yy:yy+xcHeadSeparator+mm,xcHeadTagAdjustment==1?"100%":"")};function xc_av(){var as=["",""];if(xcArrowPosition==0){as=xc_ak(this.fo)};s=xc_bb(xcCSSHeadBlock)+(xcHeadTagAdjustment==1?xc_fa:xc_ez)+xc_et;s+=as[0];s+=this.bm();s+=as[1];s+=xc_er+xc_ex+xc_ba;return s};function xc_aw(){var s=xc_bb(xcCSSWeekdayBlock)+xc_fb+xc_es;for(var i=xcWeekStart;i0&&ev==0){ev=7};var s=xc_bb(xcCSSDayBlock)+xc_fb;for(var i=0;i<6;i++){this.week=i;s+=xc_es;for(var j=xcWeekStart;jfs){s+=this.bd(0,dh)}else{this.date=ec;s+=this.bd(ec++,dh)}};s+=xc_er};s+=xc_ex+xc_ba;return s};function xc_ao(){var s="",fb=0,fc=xcCSSFootToday,ex=xcCSSFootClear,ew=xcCSSFootBack,ey=xcCSSFootClose,fa=xcCSSFootReset;for(var i=0;i0){var fo=this.fo,hw=getCurrentDate(),el=xc_by().test(this.el)?this.el:hw;var hx="xc_ds("+fo+",0)",bw="xc_az("+fo+")",aw="xc_ef("+fo+")",by="xc_cm("+fo+")",gy="xc_ea("+fo+")";var ez=[{"order":xcFootTagSwitch[0],"en":xcFootTags[0],"bs":hx,"hy":"Today is "+hw,"de":fc[0],"df":fc[1],"dc":fc[2]},{"order":xcFootTagSwitch[1],"en":xcFootTags[1],"bs":bw,"hy":"Clear the date input","de":ex[0],"df":ex[1],"dc":ex[2]},{"order":xcFootTagSwitch[2],"en":xcFootTags[2],"bs":aw,"hy":"Scroll to "+(this.fr||hw),"de":ew[0],"df":ew[1],"dc":ew[2]},{"order":xcFootTagSwitch[3],"en":xcFootTags[3],"bs":by,"hy":"Close the calendar","de":ey[0],"df":ey[1],"dc":ey[2]},{"order":xcFootTagSwitch[4],"en":xcFootTags[4],"bs":gy,"hy":"Pick the default date of "+el,"de":fa[0],"df":fa[1],"dc":fa[2]},{"order":xcFootTagSwitch[5],"en":hw,"bs":hx,"hy":"Today","de":fc[0],"df":fc[1],"dc":fc[2]},{"order":xcFootTagSwitch[6],"en":this.fr,"bs":aw,"hy":"Scroll to this date","de":ew[0],"df":ew[1],"dc":ew[2]},{"order":xcFootTagSwitch[7],"en":el,"bs":gy,"hy":"Pick the default date","de":fa[0],"df":fa[1],"dc":fa[2]}].sort(xc_em);var as=["",""];if(xcArrowPosition==1){as=xc_ak(fo)};w=xcFootTagAdjustment==1?xc_bu[fb>5?5:fb]:"";s+=xc_bb(xcCSSFootBlock)+(xcFootTagAdjustment==0?xc_ez:xc_fa)+xc_et;s+=as[0];for(var i=0;i11){dg.month=0;dg.il++};dg.bu(dm);dg.gz()};function xc_az(fo){var dg=xc_br(fo);dg.ba("");dg.ia("");dg.am("");dg.fr="";if(dg.fz==1&&!xcStickyMode){xc_cm(fo)}else{dg.gz()}};function xc_ds(fo,date){var dg=xc_br(fo);if(date==0){bg=getCurrentDate();var dz=xc_cj(bg);dg.il=dz[0];dg.month=dz[1];date=dz[2]};if(dg.dt(date)){dg.gz();return};var bg=dg.ba(xc_bz(dg.il,dg.month,date));dg.ia(bg);dg.am(bg);dg.fr=bg;if(dg.fz==1&&!xcStickyMode){xc_cm(fo)}else{dg.gz()}};function xc_ef(fo){var dg=xc_br(fo),d=xc_cj(dg.fr||getCurrentDate());dg.il=d[0];dg.month=d[1];dg.gz()};function xc_ea(fo){var dg=xc_br(fo),d=xc_cj(xc_by().test(dg.el)?dg.el:getCurrentDate());dg.il=d[0];dg.month=d[1];xc_ds(fo,d[2])};function xc_cm(fo){var dg=xc_br(fo),h=dg.fm;if(dg.fz==1){if(h.fp){xc_cn(h.fp)};xc_cn(h);dg.gw()}}; +function showCalendar(gv,hj,gu,el,fn,dx,dy,fz){if(!xcCalSafe){return};if(!xc_dj){xc_dj=1;xc_dn=window.onresize?window.onresize:xc_fj;window.onresize=xc_eb};var dg=xc_bv(gv,hj,gu,el,fn,dx,dy,fz);dg.ha()};function toCalendarDate(date){return xc_bz(date.getFullYear(),date.getMonth(),date.getDate())};var toCalDate=toCalendarDate;function toJSDate(date){var bo=xc_by();if(bo.test(date)){var d=xc_cj(date);return(new Date(d[0],d[1],d[2]))}else{return(new Date())}};function getCurrentDate(){return toCalendarDate(new Date())};function checkDate(date){if(date){var bo=xc_by();if(bo.test(date)){return 0}else{return 1}}else{return 2}};function compareDates(dj,dk){var bo=xc_by();var d1=getDateNumbers(bo.test(dj)?dj:getCurrentDate()).join("");var d2=getDateNumbers(bo.test(dk)?dk:getCurrentDate()).join("");return(d1==d2?0:d1>d2?1:-1)};function getDateNumbers(date){var bo=xc_by();if(bo.test(date)){var d=xc_cj(date);return new Array(xc_bx(d[0]),xc_bx(d[1]+1),xc_bx(d[2]))}else{return new Array("","","")}};var getNumbers=getDateNumbers;function beforeGetDateValue(gu,hj){};function afterGetDateValue(gu,hj,date){return date};function getDateValue(eu){return eu.value};function beforeSetDateValue(gu,hj,date){return date};function afterSetDateValue(gu,hj,date){};function setDateValue(eu,date){eu.value=date};function xc_dw(){if(xcIsN6){document.captureEvents(Event.MOUSEMOVE)};document.onmousemove=xc_ff;document.body.onmousemove=null;if(xc_dm){xc_dm()}};if(xcCalSafe){xc_dm=window.onload?window.onload:function(){};window.onload=xc_dw;var fy=xcMods.sort(xc_em);for(var i=0;i<\/scr"+"ipt>")}}}; + +function beforeSetDateValue(ref_field, target_field, date) +{ + if (date!="") + { + var startDate=document.forms[0]["start_date"]; + var endDate=document.forms[0]["end_date"]; + if (target_field==endDate &&checkDate(getDateValue(startDate))==0 &&compareDates(getDateValue(startDate), date)>0) { + date=getDateValue(endDate); + alert("End Date should not be earlier than Start Date, please select again."); + } + } + return date; +} + +function afterSetDateValue(ref_field, target_field, date) +{ + if (date!="") + { + var startDate=document.forms[0]["start_date"]; + var endDate=document.forms[0]["end_date"]; + if (target_field==startDate &&checkDate(getDateValue(endDate))==0 &&compareDates(date, getDateValue(endDate))>0) + { + setDateValue(endDate, date); + alert("End Date was earlier than Start Date, it's now set to Start Date."); + } + } +} + +function checkForm() +{ + var startDate=document.forms[0]["start_date"]; + var endDate=document.forms[0]["end_date"]; + if (checkDate(getDateValue(startDate))!=0) + { + alert("Please select a Start Date."); + } + else if (checkDate(getDateValue(endDate))!=0) + { + alert("Please select an End Date."); + } + else if (compareDates(getDateValue(startDate), getDateValue(endDate))>0) + { + alert("End Date should not be earlier than Start Date."); + } + else + { + alert("Dates are good."); + } +} \ No newline at end of file diff --git a/simpla/design/js/ckeditor/CHANGES.md b/simpla/design/js/ckeditor/CHANGES.md new file mode 100644 index 0000000..3a8d079 --- /dev/null +++ b/simpla/design/js/ckeditor/CHANGES.md @@ -0,0 +1,342 @@ +CKEditor 4 Changelog +==================== + +## CKEditor 4.3 + +New Features: + +* [#10612](http://dev.ckeditor.com/ticket/10612): Internet Explorer 11 support. +* [#10869](http://dev.ckeditor.com/ticket/10869): Widgets: Added better integration with the [Elements Path](http://ckeditor.com/addon/elementspath) plugin. +* [#10886](http://dev.ckeditor.com/ticket/10886): Widgets: Added tooltip to the drag handle. +* [#10933](http://dev.ckeditor.com/ticket/10933): Widgets: Introduced drag and drop of block widgets with the [Line Utilities](http://ckeditor.com/addon/lineutils) plugin. +* [#10936](http://dev.ckeditor.com/ticket/10936): Widget System changes for easier integration with other dialog systems. +* [#10895](http://dev.ckeditor.com/ticket/10895): [Enhanced Image](http://ckeditor.com/addon/image2): Added file browser integration. +* [#11002](http://dev.ckeditor.com/ticket/11002): Added the [`draggable`](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget.definition-property-draggable) option to disable drag and drop support for widgets. +* [#10937](http://dev.ckeditor.com/ticket/10937): [Mathematical Formulas](http://ckeditor.com/addon/mathjax) widget improvements: + * loading indicator ([#10948](http://dev.ckeditor.com/ticket/10948)), + * applying paragraph changes (like font color change) to iframe ([#10841](http://dev.ckeditor.com/ticket/10841)), + * Firefox and IE9 clipboard fixes ([#10857](http://dev.ckeditor.com/ticket/10857)), + * fixing same origin policy issue ([#10840](http://dev.ckeditor.com/ticket/10840)), + * fixing undo bugs ([#10842](http://dev.ckeditor.com/ticket/10842), [#10930](http://dev.ckeditor.com/ticket/10930)), + * fixing other minor bugs. +* [#10862](http://dev.ckeditor.com/ticket/10862): [Placeholder](http://ckeditor.com/addon/placeholder) plugin was rewritten as a widget. +* [#10822](http://dev.ckeditor.com/ticket/10822): Added styles system integration with non-editable elements (for example widgets) and their nested editables. Styles cannot change non-editable content and are applied in nested editable only if allowed by its type and content filter. +* [#10856](http://dev.ckeditor.com/ticket/10856): Menu buttons will now toggle the visibility of their panels when clicked multiple times. [Language](http://ckeditor.com/addon/language) plugin fixes: Added active language highlighting, added an option to remove the language. +* [#10028](http://dev.ckeditor.com/ticket/10028): New [`config.dialog_noConfirmCancel`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-dialog_noConfirmCancel) configuration option that eliminates the need to confirm closing of a dialog window when the user changed any of its fields. +* [#10848](http://dev.ckeditor.com/ticket/10848): Integrate remaining plugins ([Styles](http://ckeditor.com/addon/stylescombo), [Format](http://ckeditor.com/addon/format), [Font](http://ckeditor.com/addon/font), [Color Button](http://ckeditor.com/addon/colorbutton), [Language](http://ckeditor.com/addon/language) and [Indent](http://ckeditor.com/addon/indent)) with [active filter](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-activeFilter). +* [#10855](http://dev.ckeditor.com/ticket/10855): Change the extension of emoticons in the [BBCode](http://ckeditor.com/addon/bbcode) sample from GIF to PNG. + +Fixed Issues: + +* [#10831](http://dev.ckeditor.com/ticket/10831): [Enhanced Image](http://ckeditor.com/addon/image2): Merged `image2inline` and `image2block` into one `image2` widget. +* [#10835](http://dev.ckeditor.com/ticket/10835): [Enhanced Image](http://ckeditor.com/addon/image2): Improved visibility of the resize handle. +* [#10836](http://dev.ckeditor.com/ticket/10836): [Enhanced Image](http://ckeditor.com/addon/image2): Preserve custom mouse cursor while resizing the image. +* [#10939](http://dev.ckeditor.com/ticket/10939): [Firefox] [Enhanced Image](http://ckeditor.com/addon/image2): hovering the image causes it to change. +* [#10866](http://dev.ckeditor.com/ticket/10866): Fixed: Broken *Tab* key navigation in the [Enhanced Image](http://ckeditor.com/addon/image2) dialog window. +* [#10833](http://dev.ckeditor.com/ticket/10833): Fixed: *Lock ratio* option should be on by default in the [Enhanced Image](http://ckeditor.com/addon/image2) dialog window. +* [#10881](http://dev.ckeditor.com/ticket/10881): Various improvements to *Enter* key behavior in nested editables. +* [#10879](http://dev.ckeditor.com/ticket/10879): [Remove Format](http://ckeditor.com/addon/removeformat) should not leak from a nested editable. +* [#10877](http://dev.ckeditor.com/ticket/10877): Fixed: [WebSpellChecker](http://ckeditor.com/addon/wsc) fails to apply changes if a nested editable was focused. +* [#10877](http://dev.ckeditor.com/ticket/10877): Fixed: [SCAYT](http://ckeditor.com/addon/wsc) blocks typing in nested editables. +* [#11079](http://dev.ckeditor.com/ticket/11079): Add button icons to the [Placeholder](http://ckeditor.com/addon/placeholder) sample. +* [#10870](http://dev.ckeditor.com/ticket/10870): The `paste` command is no longer being disabled when the clipboard is empty. +* [#10854](http://dev.ckeditor.com/ticket/10854): Fixed: Firefox prepends `
    ` to ``, so it is stripped by the HTML data processor. +* [#10823](http://dev.ckeditor.com/ticket/10823): Fixed: [Link](http://ckeditor.com/addon/link) plugin does not work with non-editable content. +* [#10828](http://dev.ckeditor.com/ticket/10828): [Magic Line](http://ckeditor.com/addon/magicline) integration with the Widget System. +* [#10865](http://dev.ckeditor.com/ticket/10865): Improved hiding copybin, so copying widgets works smoothly. +* [#11066](http://dev.ckeditor.com/ticket/11066): Widget's private parts use CSS reset. +* [#11027](http://dev.ckeditor.com/ticket/11027): Fixed: Block commands break on widgets; added the [`contentDomInvalidated`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-contentDomInvalidated) event. +* [#10430](http://dev.ckeditor.com/ticket/10430): Resolve dependence of the [Image](http://ckeditor.com/addon/image) plugin on the [Form Elements](http://ckeditor.com/addon/forms) plugin. +* [#10911](http://dev.ckeditor.com/ticket/10911): Fixed: Browser *Alt* hotkeys will no longer be blocked while a widget is focused. +* [#11082](http://dev.ckeditor.com/ticket/11082): Fixed: Selected widget is not copied or cut when using toolbar buttons or context menu. +* [#11083](http://dev.ckeditor.com/ticket/11083): Fixed list and div element application to block widgets. +* [#10887](http://dev.ckeditor.com/ticket/10887): Internet Explorer 8 compatibility issues related to the Widget System. +* [#11074](http://dev.ckeditor.com/ticket/11074): Temporarily disabled inline widget drag and drop, because of seriously buggy native `range#moveToPoint` method. +* [#11098](http://dev.ckeditor.com/ticket/11098): Fixed: Wrong selection position after undoing widget drag and drop. +* [#11110](http://dev.ckeditor.com/ticket/11110): Fixed: IFrame and Flash objects are being incorrectly pasted in certain conditions. +* [#11129](http://dev.ckeditor.com/ticket/11129): Page break is lost when loading data. +* [#11123](http://dev.ckeditor.com/ticket/11123): [Firefox] Widget is destroyed after being dragged outside of ``. +* [#11124](http://dev.ckeditor.com/ticket/11124): Fixed the [Elements Path](http://ckeditor.com/addon/elementspath) in an editor using the [Div Editing Area](http://ckeditor.com/addon/divarea). + +## CKEditor 4.3 Beta + +New Features: + +* [#9764](http://dev.ckeditor.com/ticket/9764): Widget System. + * [Widget plugin](http://ckeditor.com/addon/widget) introducing the [Widget API](http://docs.ckeditor.com/#!/api/CKEDITOR.plugins.widget). + * New [`editor.enterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-enterMode) and [`editor.shiftEnterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-shiftEnterMode) properties – normalized versions of [`config.enterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode) and [`config.shiftEnterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-shiftEnterMode). + * Dynamic editor settings. Starting from CKEditor 4.3 Beta, *Enter* mode values and [content filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) instances may be changed dynamically (for example when the caret was placed in an element in which editor features should be adjusted). When you are implementing a new editor feature, you should base its behavior on [dynamic](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-activeEnterMode) or [static](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-enterMode) *Enter* mode values depending on whether this feature works in selection context or globally on editor content. + * Dynamic *Enter* mode values – [`editor.setActiveEnterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setActiveEnterMode) method, [`editor.activeEnterModeChange`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-activeEnterModeChange) event, and two properties: [`editor.activeEnterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-activeEnterMode) and [`editor.activeShiftEnterMode`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-activeShiftEnterMode). + * Dynamic content filter instances – [`editor.setActiveFilter`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-setActiveFilter) method, [`editor.activeFilterChange`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-activeFilterChange) event, and [`editor.activeFilter`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-property-activeFilter) property. + * "Fake" selection was introduced. It makes it possible to virtually select any element when the real selection remains hidden. See the [`selection.fake`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.selection-method-fake) method. + * Default [`htmlParser.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.filter) rules are not applied to non-editable elements (elements with `contenteditable` attribute set to `false` and their descendants) anymore. To add a rule which will be applied to all elements you need to pass an additional argument to the [`filter.addRules`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.filter-method-addRules) method. + * Dozens of new methods were introduced – most interesting ones: + * [`document.find`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.document-method-find), + * [`document.findOne`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.document-method-findOne), + * [`editable.insertElementIntoRange`](http://docs.ckeditor.com/#!/api/CKEDITOR.editable-method-insertElementIntoRange), + * [`range.moveToClosestEditablePosition`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-moveToClosestEditablePosition), + * New methods for [`htmlParser.node`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.node) and [`htmlParser.element`](http://docs.ckeditor.com/#!/api/CKEDITOR.htmlParser.element). +* [#10659](http://dev.ckeditor.com/ticket/10659): New [Enhanced Image](http://ckeditor.com/addon/image2) plugin that introduces a widget with integrated image captions, an option to center images, and dynamic "click and drag" resizing. +* [#10664](http://dev.ckeditor.com/ticket/10664): New [Mathematical Formulas](http://ckeditor.com/addon/mathjax) plugin that introduces the MathJax widget. +* [#7987](https://dev.ckeditor.com/ticket/7987): New [Language](http://ckeditor.com/addon/language) plugin that implements Language toolbar button to support [WCAG 3.1.2 Language of Parts](http://www.w3.org/TR/UNDERSTANDING-WCAG20/meaning-other-lang-id.html). +* [#10708](http://dev.ckeditor.com/ticket/10708): New [smileys](http://ckeditor.com/addon/smiley). + +## CKEditor 4.2.3 + +Fixed Issues: + +* [#10994](http://dev.ckeditor.com/ticket/10994): Fixed: Loading external jQuery library when opening the [jQuery Adapter](http://docs.ckeditor.com/#!/guide/dev_jquery) sample directly from file. +* [#10975](http://dev.ckeditor.com/ticket/10975): [IE] Fixed: Error thrown while opening the color palette. +* [#9929](http://dev.ckeditor.com/ticket/9929): [Blink/WebKit] Fixed: A non-breaking space is created once a character is deleted and a regular space is typed. +* [#10963](http://dev.ckeditor.com/ticket/10963): Fixed: JAWS issue with the keyboard shortcut for [Magic Line](http://ckeditor.com/addon/magicline). +* [#11096](http://dev.ckeditor.com/ticket/11096): Fixed: TypeError: Object has no method 'is'. + +## CKEditor 4.2.2 + +Fixed Issues: + +* [#9314](http://dev.ckeditor.com/ticket/9314): Fixed: Incorrect error message on closing a dialog window without saving changs. +* [#10308](http://dev.ckeditor.com/ticket/10308): [IE10] Fixed: Unspecified error when deleting a row. +* [#10945](http://dev.ckeditor.com/ticket/10945): [Chrome] Fixed: Clicking with a mouse inside the editor does not show the caret. +* [#10912](http://dev.ckeditor.com/ticket/10912): Prevent default action when content of a non-editable link is clicked. +* [#10913](http://dev.ckeditor.com/ticket/10913): Fixed [`CKEDITOR.plugins.addExternal`](http://docs.ckeditor.com/#!/api/CKEDITOR.resourceManager-method-addExternal) not handling paths including file name specified. +* [#10666](http://dev.ckeditor.com/ticket/10666): Fixed [`CKEDITOR.tools.isArray`](http://docs.ckeditor.com/#!/api/CKEDITOR.tools-method-isArray) not working cross frame. +* [#10910](http://dev.ckeditor.com/ticket/10910): [IE9] Fixed JavaScript error thrown in Compatibility Mode when clicking and/or typing in the editing area. +* [#10868](http://dev.ckeditor.com/ticket/10868): [IE8] Prevent the browser from crashing when applying the Inline Quotation style. +* [#10915](http://dev.ckeditor.com/ticket/10915): Fixed: Invalid CSS filter in the Kama skin. +* [#10914](http://dev.ckeditor.com/ticket/10914): Plugins [Indent List](http://ckeditor.com/addon/indentlist) and [Indent Block](http://ckeditor.com/addon/indentblock) are now included in the build configuration. +* [#10812](http://dev.ckeditor.com/ticket/10812): Fixed [`range#createBookmark2`](http://docs.ckeditor.com/#!/api/CKEDITOR.dom.range-method-createBookmark2) incorrectly normalizing offsets. This bug was causing many issues: [#10850](http://dev.ckeditor.com/ticket/10850), [#10842](http://dev.ckeditor.com/ticket/10842). +* [#10951](http://dev.ckeditor.com/ticket/10951): Reviewed and optimized focus handling on panels (combo, menu buttons, color buttons, and context menu) to enhance accessibility. Fixed [#10705](http://dev.ckeditor.com/ticket/10705), [#10706](http://dev.ckeditor.com/ticket/10706) and [#10707](http://dev.ckeditor.com/ticket/10707). +* [#10704](http://dev.ckeditor.com/ticket/10704): Fixed a JAWS issue with the Select Color dialog window title not being announced. +* [#10753](http://dev.ckeditor.com/ticket/10753): The floating toolbar in inline instances now has a dedicated accessibility label. + +## CKEditor 4.2.1 + +Fixed Issues: + +* [#10301](http://dev.ckeditor.com/ticket/10301): [IE9-10] Undo fails after 3+ consecutive paste actions with a JavaScript error. +* [#10689](http://dev.ckeditor.com/ticket/10689): Save toolbar button saves only the first editor instance. +* [#10368](http://dev.ckeditor.com/ticket/10368): Move language reading direction definition (`dir`) from main language file to core. +* [#9330](http://dev.ckeditor.com/ticket/9330): Fixed pasting anchors from MS Word. +* [#8103](http://dev.ckeditor.com/ticket/8103): Fixed pasting nested lists from MS Word. +* [#9958](http://dev.ckeditor.com/ticket/9958): [IE9] Pressing the "OK" button will trigger the `onbeforeunload` event in the popup dialog. +* [#10662](http://dev.ckeditor.com/ticket/10662): Fixed styles from the Styles drop-down list not registering to the ACF in case when the [Shared Spaces plugin](http://ckeditor.com/addon/sharedspace) is used. +* [#9654](http://dev.ckeditor.com/ticket/9654): Problems with Internet Explorer 10 Quirks Mode. +* [#9816](http://dev.ckeditor.com/ticket/9816): Floating toolbar does not reposition vertically in several cases. +* [#10646](http://dev.ckeditor.com/ticket/10646): Removing a selected sublist or nested table with *Backspace/Delete* removes the parent element. +* [#10623](http://dev.ckeditor.com/ticket/10623): [WebKit] Page is scrolled when opening a drop-down list. +* [#10004](http://dev.ckeditor.com/ticket/10004): [ChromeVox] Button names are not announced. +* [#10731](http://dev.ckeditor.com/ticket/10731): [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin breaks cloning of editor configuration. +* It is now possible to set per instance [WebSpellChecker](http://ckeditor.com/addon/wsc) plugin configuration instead of setting the configuration globally. + +## CKEditor 4.2 + +**Important Notes:** + +* Dropped compatibility support for Internet Explorer 7 and Firefox 3.6. + +* Both the Basic and the Standard distribution packages will not contain the new [Indent Block](http://ckeditor.com/addon/indentblock) plugin. Because of this the [Advanced Content Filter](http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter) might remove block indentations from existing contents. If you want to prevent this, either [add an appropriate ACF rule to your filter](http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules) or create a custom build based on the Basic/Standard package and add the Indent Block plugin in [CKBuilder](http://ckeditor.com/builder). + +New Features: + +* [#10027](http://dev.ckeditor.com/ticket/10027): Separated list and block indentation into two plugins: [Indent List](http://ckeditor.com/addon/indentlist) and [Indent Block](http://ckeditor.com/addon/indentblock). +* [#8244](http://dev.ckeditor.com/ticket/8244): Use *(Shift+)Tab* to indent and outdent lists. +* [#10281](http://dev.ckeditor.com/ticket/10281): The [jQuery Adapter](http://docs.ckeditor.com/#!/guide/dev_jquery) is now available. Several jQuery-related issues fixed: [#8261](http://dev.ckeditor.com/ticket/8261), [#9077](http://dev.ckeditor.com/ticket/9077), [#8710](http://dev.ckeditor.com/ticket/8710), [#8530](http://dev.ckeditor.com/ticket/8530), [#9019](http://dev.ckeditor.com/ticket/9019), [#6181](http://dev.ckeditor.com/ticket/6181), [#7876](http://dev.ckeditor.com/ticket/7876), [#6906](http://dev.ckeditor.com/ticket/6906). +* [#10042](http://dev.ckeditor.com/ticket/10042): Introduced [`config.title`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-title) setting to change the human-readable title of the editor. +* [#9794](http://dev.ckeditor.com/ticket/9794): Added [`editor.onChange`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-event-change) event. +* [#9923](http://dev.ckeditor.com/ticket/9923): HiDPI support in the editor UI. HiDPI icons for [Moono skin](http://ckeditor.com/addon/moono) added. +* [#8031](http://dev.ckeditor.com/ticket/8031): Handle `required` attributes on `");return""+encodeURIComponent(a)+""})}function u(a){return a.replace(y,function(a,b){return decodeURIComponent(b)})} +function s(a){return a.replace(/<\!--(?!{cke_protected})[\s\S]+?--\>/g,function(a){return"<\!--"+m+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\>"})}function t(a){return a.replace(/<\!--\{cke_protected\}\{C\}([\s\S]+?)--\>/g,function(a,b){return decodeURIComponent(b)})}function g(a,b){var c=b._.dataStore;return a.replace(/<\!--\{cke_protected\}([\s\S]+?)--\>/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return c&&c[b]||""})}function r(a, +b){for(var c=[],e=b.config.protectedSource,d=b._.dataStore||(b._.dataStore={id:1}),i=/<\!--\{cke_temp(comment)?\}(\d*?)--\>/g,e=[//gi,//gi].concat(e),a=a.replace(/<\!--[\s\S]*?--\>/g,function(a){return"<\!--{cke_tempcomment}"+(c.push(a)-1)+"--\>"}),g=0;g"});a=a.replace(i,function(a,b,e){return"<\!--"+ +m+(b?"{C}":"")+encodeURIComponent(c[e]).replace(/--/g,"%2D%2D")+"--\>"});return a.replace(/(['"]).*?\1/g,function(a){return a.replace(/<\!--\{cke_protected\}([\s\S]+?)--\>/g,function(a,b){d[d.id]=decodeURIComponent(b);return"{cke_protected_"+d.id++ +"}"})})}CKEDITOR.htmlDataProcessor=function(b){var c,e,i=this;this.editor=b;this.dataFilter=c=new CKEDITOR.htmlParser.filter;this.htmlFilter=e=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;c.addRules(B);c.addRules(p,{applyToAll:true}); +c.addRules(a(b,"data"),{applyToAll:true});e.addRules(L);e.addRules(E,{applyToAll:true});e.addRules(a(b,"html"),{applyToAll:true});b.on("toHtml",function(a){var a=a.data,c=a.dataValue,c=r(c,b),c=l(c,M),c=k(c),c=l(c,x),c=c.replace(v,"$1cke:$2"),c=c.replace(F,""),c=CKEDITOR.env.opera?c:c.replace(/(]*>)(\r\n|\n)/g,"$1$2$2"),e=a.context||b.editable().getName(),i;if(CKEDITOR.env.ie&&CKEDITOR.env.version<9&&e=="pre"){e="div";c="
    "+c+"
    ";i=1}e=b.document.createElement(e); +e.setHtml("a"+c);c=e.getHtml().substr(1);c=c.replace(RegExp(" data-cke-"+CKEDITOR.rnd+"-","ig")," ");i&&(c=c.replace(/^
    |<\/pre>$/gi,""));c=c.replace(D,"$1$2");c=u(c);c=t(c);a.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(c,a.context,a.fixForBody===false?false:d(a.enterMode,b.config.autoParagraph))},null,null,5);b.on("toHtml",function(a){a.data.filter.applyTo(a.data.dataValue,true,a.data.dontFilter,a.data.enterMode)&&b.fire("dataFiltered")},null,null,6);b.on("toHtml",function(a){a.data.dataValue.filterChildren(i.dataFilter,
    +true)},null,null,10);b.on("toHtml",function(a){var a=a.data,b=a.dataValue,c=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(c);b=c.getHtml(true);a.dataValue=s(b)},null,null,15);b.on("toDataFormat",function(a){var c=a.data.dataValue;a.data.enterMode!=CKEDITOR.ENTER_BR&&(c=c.replace(/^
    /i,""));a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(c,a.data.context,d(a.data.enterMode,b.config.autoParagraph))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(i.htmlFilter, +true)},null,null,10);b.on("toDataFormat",function(a){a.data.filter.applyTo(a.data.dataValue,false,true)},null,null,11);b.on("toDataFormat",function(a){var c=a.data.dataValue,e=i.writer;e.reset();c.writeChildrenHtml(e);c=e.getHtml(true);c=t(c);c=g(c,b);a.data.dataValue=c},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,c,e){var d=this.editor,i,g,f;if(b&&typeof b=="object"){i=b.context;c=b.fixForBody;e=b.dontFilter;g=b.filter;f=b.enterMode}else i=b;!i&&i!==null&&(i=d.editable().getName()); +return d.fire("toHtml",{dataValue:a,context:i,fixForBody:c,dontFilter:e,filter:g||d.filter,enterMode:f||d.enterMode}).dataValue},toDataFormat:function(a,b){var c,e,d;if(b){c=b.context;e=b.filter;d=b.enterMode}!c&&c!==null&&(c=this.editor.editable().getName());return this.editor.fire("toDataFormat",{dataValue:a,filter:e||this.editor.filter,context:c,enterMode:d||this.editor.enterMode}).dataValue}};var w=/(?: |\xa0)$/,m="{cke_protected}",i=CKEDITOR.dtd,q=["caption","colgroup","col","thead","tfoot", +"tbody"],o=CKEDITOR.tools.extend({},i.$blockLimit,i.$block),B={elements:{input:n,textarea:n}},p={attributeNames:[[/^on/,"data-cke-pa-on"],[/^data-cke-expando$/,""]]},L={elements:{embed:function(a){var b=a.parent;if(b&&b.name=="object"){var c=b.attributes.width,b=b.attributes.height;if(c)a.attributes.width=c;if(b)a.attributes.height=b}},a:function(a){if(!a.children.length&&!a.attributes.name&&!a.attributes["data-cke-saved-name"])return false}}},E={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]], +attributeNames:[[/^data-cke-(saved|pa)-/,""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return false;for(var c=["name","href","src"],e,d=0;d-1&&e>-1&&c!=e)){c=a.parent?a.getIndex(): +-1;e=b.parent?b.getIndex():-1}return c>e?1:-1})},param:function(a){a.children=[];a.isEmpty=true;return a},span:function(a){a.attributes["class"]=="Apple-style-span"&&delete a.name},html:function(a){delete a.attributes.contenteditable;delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck;delete a.attributes.contenteditable},style:function(a){var b=a.children[0];if(b&&b.value)b.value=CKEDITOR.tools.trim(b.value);if(!a.attributes.type)a.attributes.type="text/css"},title:function(a){var b= +a.children[0];!b&&h(a,b=new CKEDITOR.htmlParser.text);b.value=a.attributes["data-cke-title"]||""},input:j,textarea:j},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||false}}};if(CKEDITOR.env.ie)E.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})};var I=/<(a|area|img|input|source)\b([^>]*)>/gi,C=/\s(on\w+|href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,x=/(?:])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi, +M=/(])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,y=/([^<]*)<\/cke:encoded>/gi,v=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,D=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,F=/]*?)\/?>(?!\s*<\/cke:\1)/gi})();"use strict"; +CKEDITOR.htmlParser.element=function(a,d){this.name=a;this.attributes=d||{};this.children=[];var b=a||"",c=b.match(/^cke:(.*)/);c&&(b=c[1]);b=!(!CKEDITOR.dtd.$nonBodyContent[b]&&!CKEDITOR.dtd.$block[b]&&!CKEDITOR.dtd.$listItem[b]&&!CKEDITOR.dtd.$tableContent[b]&&!(CKEDITOR.dtd.$nonEditable[b]||b=="br"));this.isEmpty=!!CKEDITOR.dtd.$empty[a];this.isUnknown=!CKEDITOR.dtd[a];this._={isBlockLike:b,hasInlineStarted:this.isEmpty||!b}}; +CKEDITOR.htmlParser.cssStyle=function(a){var d={};((a instanceof CKEDITOR.htmlParser.element?a.attributes.style:a)||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,c,e){c=="font-family"&&(e=e.replace(/["']/g,""));d[c.toLowerCase()]=e});return{rules:d,populate:function(a){var c=this.toString();if(c)a instanceof CKEDITOR.dom.element?a.setAttribute("style",c):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=c:a.style=c},toString:function(){var a=[],c; +for(c in d)d[c]&&a.push(c,":",d[c],";");return a.join("")}}}; +(function(){function a(a){return function(b){return b.type==CKEDITOR.NODE_ELEMENT&&(typeof a=="string"?b.name==a:b.name in a)}}var d=function(a,b){a=a[0];b=b[0];return ab?1:0},b=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:b.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a,b){var d=this,h,n,b=d.getFilterContext(b);if(b.off)return true; +if(!d.parent)a.onRoot(b,d);for(;;){h=d.name;if(!(n=a.onElementName(b,h))){this.remove();return false}d.name=n;if(!(d=a.onElement(b,d))){this.remove();return false}if(d!==this){this.replaceWith(d);return false}if(d.name==h)break;if(d.type!=CKEDITOR.NODE_ELEMENT){this.replaceWith(d);return false}if(!d.name){this.replaceWithChildren();return false}}h=d.attributes;var j,k;for(j in h){k=j;for(n=h[j];;)if(k=a.onAttributeName(b,j))if(k!=j){delete h[j];j=k}else break;else{delete h[j];break}k&&((n=a.onAttribute(b, +d,k,n))===false?delete h[k]:h[k]=n)}d.isEmpty||this.filterChildren(a,false,b);return true},filterChildren:b.filterChildren,writeHtml:function(a,b){b&&this.filter(b);var f=this.name,h=[],n=this.attributes,j,k;a.openTag(f,n);for(j in n)h.push([j,n[j]]);a.sortAttributes&&h.sort(d);j=0;for(k=h.length;j0)this.children[a-1].next=null;this.parent.add(d,this.getIndex()+1);return d},removeClass:function(a){var b=this.attributes["class"];if(b)(b=CKEDITOR.tools.trim(b.replace(RegExp("(?:\\s+|^)"+a+ +"(?:\\s+|$)")," ")))?this.attributes["class"]=b:delete this.attributes["class"]},hasClass:function(a){var b=this.attributes["class"];return!b?false:RegExp("(?:^|\\s)"+a+"(?=\\s|$)").test(b)},getFilterContext:function(a){var b=[];a||(a={off:false,nonEditable:false});!a.off&&this.attributes["data-cke-processor"]=="off"&&b.push("off",true);!a.nonEditable&&this.attributes.contenteditable=="false"&&b.push("nonEditable",true);if(b.length)for(var a=CKEDITOR.tools.copy(a),d=0;d'+c.getValue()+"",CKEDITOR.document); +a.insertAfter(c);c.hide();c.$.form&&b._attachToForm()}else b.setData(a.getHtml(),null,true);b.on("loaded",function(){b.fire("uiReady");b.editable(a);b.container=a;b.setData(b.getData(1));b.resetDirty();b.fire("contentDom");b.mode="wysiwyg";b.fire("mode");b.status="ready";b.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,b)},null,null,1E4);b.on("destroy",function(){if(c){b.container.clearCustomData();b.container.remove();c.show()}b.element.clearCustomData();delete b.element});return b}; +CKEDITOR.inlineAll=function(){var a,d,b;for(b in CKEDITOR.dtd.$editable)for(var c=CKEDITOR.document.getElementsByTag(b),e=0,f=c.count();e{voiceLabel}<{outerEl} class="cke_inner cke_reset" role="presentation">{topHtml}<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation">{bottomHtml}')); +b=CKEDITOR.dom.element.createFromHtml(c.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:[a.lang.editor,a.name].join(", "),topHtml:j?''+j+"":"",contentId:a.ui.spaceId("contents"),bottomHtml:k?''+k+"":"",outerEl:CKEDITOR.env.ie?"span":"div"}));if(n==CKEDITOR.ELEMENT_MODE_REPLACE){d.hide(); +b.insertAfter(d)}else d.append(b);a.container=b;j&&a.ui.space("top").unselectable();k&&a.ui.space("bottom").unselectable();d=a.config.width;n=a.config.height;d&&b.setStyle("width",CKEDITOR.tools.cssLength(d));n&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(n));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}CKEDITOR.replace=function(b,c){return a(b,c,null,CKEDITOR.ELEMENT_MODE_REPLACE)};CKEDITOR.appendTo=function(b,c,d){return a(b, +c,d,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;b",f="",a=i+a.replace(e,function(){return f+i})+f}a=a.replace(/\n/g,"
    ");b||(a=a.replace(RegExp("
    (?=)"),function(a){return d.repeat(a,2)}));a=a.replace(/^ | $/g," ");a=a.replace(/(>|\s) /g,function(a,b){return b+" "}).replace(/ (?=<)/g," ");s(this,"text",a)},insertElement:function(a,b){b?this.insertElementIntoRange(a,b):this.insertElementIntoSelection(a)},insertElementIntoRange:function(a,b){var c=this.editor,d=c.config.enterMode,e=a.getName(), +i=CKEDITOR.dtd.$block[e];if(b.checkReadOnly())return false;b.deleteContents(1);var f,h;if(i)for(;(f=b.getCommonAncestor(0,1))&&(h=CKEDITOR.dtd[f.getName()])&&(!h||!h[e]);)if(f.getName()in CKEDITOR.dtd.span)b.splitElement(f);else if(b.checkStartOfBlock()&&b.checkEndOfBlock()){b.setStartBefore(f);b.collapse(true);f.remove()}else b.splitBlock(d==CKEDITOR.ENTER_DIV?"div":"p",c.editable());b.insertNode(a);return true},insertElementIntoSelection:function(a){var b=this.editor,d=b.activeEnterMode,b=b.getSelection(), +e=b.getRanges(),m=a.getName(),m=CKEDITOR.dtd.$block[m],i,f,o;h(this);for(var k=e.length;k--;){o=e[k];i=!k&&a||a.clone(1);this.insertElementIntoRange(i,o)&&!f&&(f=i)}if(f){o.moveToPosition(f,CKEDITOR.POSITION_AFTER_END);if(m)if((a=f.getNext(function(a){return c(a)&&!j(a)}))&&a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$block))a.getDtd()["#"]?o.moveToElementEditStart(a):o.moveToElementEditEnd(f);else if(!a&&d!=CKEDITOR.ENTER_BR){a=o.fixBlock(true,d==CKEDITOR.ENTER_DIV?"div":"p");o.moveToElementEditStart(a)}}b.selectRanges([o]); +n(this,CKEDITOR.env.opera)},setData:function(a,b){b||(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);this.editor.fire("dataReady")},getData:function(a){var b=this.getHtml();a||(b=this.editor.dataProcessor.toDataFormat(b));return b},setReadOnly:function(a){this.setAttribute("contenteditable",!a)},detach:function(){this.removeClass("cke_editable");var a=this.editor;this._.detach();delete a.document;delete a.window},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},setup:function(){var a= +this.editor;this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||a.config.ignoreEmptyParagraph!==false&&(b=b.replace(k,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this);this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this);this.attachListener(a,"beforeFocus",function(){var b= +a.getSelection();(b=b&&b.getNative())&&b.type=="Control"||this.focus()},this);this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode)},this);this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this);this.attachListener(a,"insertText",function(a){this.insertText(a.data)},this);this.setReadOnly(a.readOnly);this.attachClass("cke_editable");this.attachClass(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"cke_editable_inline":a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE|| +a.elementMode==CKEDITOR.ELEMENT_MODE_APPENDTO?"cke_editable_themed":"");this.attachClass("cke_contents_"+a.config.contentsLangDirection);a.keystrokeHandler.blockedKeystrokes[8]=+a.readOnly;a.keystrokeHandler.attach(this);this.on("blur",function(a){CKEDITOR.env.opera&&CKEDITOR.document.getActive().equals(this.isInline()?this:this.getWindow().getFrame())?a.cancel():this.hasFocus=false},null,null,-1);this.on("focus",function(){this.hasFocus=true},null,null,-1);a.focusManager.add(this);if(this.equals(CKEDITOR.document.getActive())){this.hasFocus= +true;a.once("contentDom",function(){a.focusManager.focus()})}this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=this.getDocument();a.window=this.getWindow();var d=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var e=a.config.contentsLangDirection;this.getDirection(1)!=e&&this.changeAttr("dir",e);var h=CKEDITOR.getCss();if(h){e=d.getHead();if(!e.getCustomData("stylesheet")){h=d.appendStyleText(h);h=new CKEDITOR.dom.element(h.ownerNode|| +h.owningElement);e.setCustomData("stylesheet",h);h.data("cke-temp",1)}}e=d.getCustomData("stylesheet_ref")||0;d.setCustomData("stylesheet_ref",e+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){var a=a.data,b=(new CKEDITOR.dom.elementPath(a.getTarget(),this)).contains("a");b&&(a.$.button!=2&&b.isReadOnly())&&a.preventDefault()});var m={8:1,46:1};this.attachListener(a,"key",function(b){if(a.readOnly)return true;var c=b.data.keyCode, +d;if(c in m){var e=a.getSelection(),b=e.getRanges()[0],g=b.startPath(),h,j,k,c=c==8;if(e=f(e)){a.fire("saveSnapshot");b.moveToPosition(e,CKEDITOR.POSITION_BEFORE_START);e.remove();b.select();a.fire("saveSnapshot");d=1}else if(b.collapsed)if((h=g.block)&&(k=h[c?"getPrevious":"getNext"](l))&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("table")&&b[c?"checkStartOfBlock":"checkEndOfBlock"]()){a.fire("saveSnapshot");b[c?"checkEndOfBlock":"checkStartOfBlock"]()&&h.remove();b["moveToElementEdit"+(c?"End":"Start")](k); +b.select();a.fire("saveSnapshot");d=1}else if(g.blockLimit&&g.blockLimit.is("td")&&(j=g.blockLimit.getAscendant("table"))&&b.checkBoundaryOfElement(j,c?CKEDITOR.START:CKEDITOR.END)&&(k=j[c?"getPrevious":"getNext"](l))){a.fire("saveSnapshot");b["moveToElementEdit"+(c?"End":"Start")](k);b.checkStartOfBlock()&&b.checkEndOfBlock()?k.remove():b.select();a.fire("saveSnapshot");d=1}else if((j=g.contains(["td","th","caption"]))&&b.checkBoundaryOfElement(j,c?CKEDITOR.START:CKEDITOR.END))d=1}return!d});a.blockless&& +(CKEDITOR.env.ie&&CKEDITOR.env.needsBrFiller)&&this.attachListener(this,"keyup",function(b){if(b.data.getKeystroke()in m&&!this.getFirst(c)){this.appendBogus();b=a.createRange();b.moveToPosition(this,CKEDITOR.POSITION_AFTER_START);b.select()}});this.attachListener(this,"dblclick",function(b){if(a.readOnly)return false;b={element:b.data.getTarget()};a.fire("doubleclick",b)});CKEDITOR.env.ie&&this.attachListener(this,"click",b);!CKEDITOR.env.ie&&!CKEDITOR.env.opera&&this.attachListener(this,"mousedown", +function(b){var c=b.data.getTarget();if(c.is("img","hr","input","textarea","select")){a.getSelection().selectElement(c);c.is("input","textarea","select")&&b.data.preventDefault()}});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(b.data.$.button==2){b=b.data.getTarget();if(!b.getOuterHtml().replace(k,"")){var c=a.createRange();c.moveToElementEditStart(b);c.select(true)}}});if(CKEDITOR.env.webkit){this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&& +a.data.preventDefault()});this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()})}}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=a.getCustomData("stylesheet_ref");if(--c)a.setCustomData("stylesheet_ref",c);else{a.removeCustomData("stylesheet_ref"); +b.removeCustomData("stylesheet").remove()}}delete this.editor}}});CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;if(arguments.length)b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null);return b};var j=CKEDITOR.dom.walker.bogus(),k=/(^|]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,l=CKEDITOR.dom.walker.whitespaces(true),u=CKEDITOR.dom.walker.bookmark(false, +true);CKEDITOR.on("instanceLoaded",function(b){var c=b.editor;c.on("insertElement",function(a){a=a.data;if(a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))){a.getAttribute("contentEditable")!="false"&&a.data("cke-editable",a.hasAttribute("contenteditable")?"true":"1");a.setAttribute("contentEditable",false)}});c.on("selectionChange",function(b){if(!c.readOnly){var d=c.getSelection();if(d&&!d.isLocked){d=c.checkDirty();c.fire("lockSnapshot");a(b);c.fire("unlockSnapshot");!d&&c.resetDirty()}}})}); +CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=b.editable();if(a&&a.isInline()){var c=b.title;a.changeAttr("role","textbox");a.changeAttr("aria-label",c);c&&a.changeAttr("title",c);if(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents")){var d=CKEDITOR.tools.getNextId(),e=CKEDITOR.dom.element.createFromHtml(''+this.lang.common.editorHelp+"");c.append(e);a.changeAttr("aria-describedby", +d)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");var s=function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT}function b(c,d){var e,i,m,h,p=[],v=d.range.startContainer;e=d.range.startPath();for(var v=f[v.getName()],j=0,o=c.getChildren(),k=o.count(),l=-1,n=-1,s=0,r=e.contains(f.$list);j-1)p[l].firstNotAllowed=1;if(n>-1)p[n].lastNotAllowed=1;return p}function d(b,c){var e=[],i=b.getChildren(),m=i.count(),g,h=0,p=f[c],j=!b.is(f.$inline)||b.is("br");for(j&&e.push(" ");h ",l.document);l.insertNode(v);l.setStartAfter(v)}D=new CKEDITOR.dom.elementPath(l.startContainer); +o.endPath=F=new CKEDITOR.dom.elementPath(l.endContainer);if(!l.collapsed){var y=F.block||F.blockLimit,X=l.getCommonAncestor();y&&(!y.equals(X)&&!y.contains(X)&&l.checkEndOfBlock())&&o.zombies.push(y);l.deleteContents()}for(;(z=a(l.startContainer)&&l.startContainer.getChild(l.startOffset-1))&&a(z)&&z.isBlockBoundary()&&D.contains(z);)l.moveToPosition(z,CKEDITOR.POSITION_BEFORE_END);m(l,o.blockLimit,D,F);if(v){l.setEndBefore(v);l.collapse();v.remove()}v=l.startPath();if(y=v.contains(e,false,1)){l.splitElement(y); +o.inlineStylesRoot=y;o.inlineStylesPeak=v.lastElement}v=l.createBookmark();(y=v.startNode.getPrevious(c))&&a(y)&&e(y)&&u.push(y);(y=v.startNode.getNext(c))&&a(y)&&e(y)&&u.push(y);for(y=v.startNode;(y=y.getParent())&&e(y);)u.push(y);l.moveToBookmark(v);if(v=k){v=o.range;if(o.type=="text"&&o.inlineStylesRoot){z=o.inlineStylesPeak;l=z.getDocument().createText("{cke-peak}");for(u=o.inlineStylesRoot.getParent();!z.equals(u);){l=l.appendTo(z.clone());z=z.getParent()}k=l.getOuterHtml().split("{cke-peak}").join(k)}z= +o.blockLimit.getName();if(/^\s+|\s+$/.test(k)&&"span"in CKEDITOR.dtd[z])var O=' ',k=O+k+O;k=o.editor.dataProcessor.toHtml(k,{context:null,fixForBody:false,dontFilter:o.dontFilter,filter:o.editor.activeFilter,enterMode:o.editor.activeEnterMode});z=v.document.createElement("body");z.setHtml(k);if(O){z.getFirst().remove();z.getLast().remove()}if((O=v.startPath().block)&&!(O.getChildCount()==1&&O.getBogus()))a:{var G;if(z.getChildCount()==1&&a(G=z.getFirst())&&G.is(j)){O= +G.getElementsByTag("*");v=0;for(u=O.count();v0;else{A=G.startPath();if(!F.isBlock&&o.editor.config.autoParagraph!==false&&(o.editor.activeEnterMode!=CKEDITOR.ENTER_BR&&o.editor.editable().equals(A.blockLimit)&&!A.block)&&(P=o.editor.activeEnterMode!= +CKEDITOR.ENTER_BR&&o.editor.config.autoParagraph!==false?o.editor.activeEnterMode==CKEDITOR.ENTER_DIV?"div":"p":false)){P=O.createElement(P);P.appendBogus();G.insertNode(P);CKEDITOR.env.needsBrFiller&&(J=P.getBogus())&&J.remove();G.moveToPosition(P,CKEDITOR.POSITION_BEFORE_END)}if((A=G.startPath().block)&&!A.equals(H)){if(J=A.getBogus()){J.remove();z.push(A)}H=A}F.firstNotAllowed&&(l=1);if(l&&F.isElement){A=G.startContainer;for(K=null;A&&!f[A.getName()][F.name];){if(A.equals(k)){A=null;break}K=A; +A=A.getParent()}if(A){if(K){R=G.splitElement(K);o.zombies.push(R);o.zombies.push(K)}}else{K=k.getName();S=!v;A=v==D.length-1;K=d(F.node,K);for(var N=[],U=K.length,Y=0,$=void 0,aa=0,ba=-1;Y1&&g&&g.intersectsNode(c.$)){d=[e.anchorOffset,e.focusOffset];g=e.focusNode==c.$&&e.focusOffset>0;e.anchorNode==c.$&&e.anchorOffset>0&&d[0]--;g&&d[1]--;var f;g=e;if(!g.isCollapsed){f=g.getRangeAt(0);f.setStart(g.anchorNode,g.anchorOffset);f.setEnd(g.focusNode,g.focusOffset);f=f.collapsed}f&&d.unshift(d.pop())}}c.setText(h(c.getText())); +if(d){c=e.getRangeAt(0);c.setStart(c.startContainer,d[0]);c.setEnd(c.startContainer,d[1]);e.removeAllRanges();e.addRange(c)}}}function h(a){return a.replace(/\u200B( )?/g,function(a){return a[1]?" ":""})}function n(a,b,c){var d=a.on("focus",function(a){a.cancel()},null,null,-100);if(CKEDITOR.env.ie)var e=a.getDocument().on("selectionchange",function(a){a.cancel()},null,null,-100);else{var g=new CKEDITOR.dom.range(a);g.moveToElementEditStart(a);var f=a.getDocument().$.createRange();f.setStart(g.startContainer.$, +g.startOffset);f.collapse(1);b.removeAllRanges();b.addRange(f)}c&&a.focus();d.removeListener();e&&e.removeListener()}function j(a){var b=CKEDITOR.dom.element.createFromHtml('
     
    ',a.document);a.fire("lockSnapshot");a.editable().append(b);var c=a.getSelection(),d=a.createRange(),e=c.root.on("selectionchange",function(a){a.cancel()},null,null,0);d.setStartAt(b,CKEDITOR.POSITION_AFTER_START); +d.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);c.selectRanges([d]);e.removeListener();a.fire("unlockSnapshot");a._.hiddenSelectionContainer=b}function k(a){var b={37:1,39:1,8:1,46:1};return function(c){var d=c.data.getKeystroke();if(b[d]){var e=a.getSelection().getRanges(),g=e[0];if(e.length==1&&g.collapsed)if((d=g[d<38?"getPreviousEditableNode":"getNextEditableNode"]())&&d.type==CKEDITOR.NODE_ELEMENT&&d.getAttribute("contenteditable")=="false"){a.getSelection().fake(d);c.data.preventDefault();c.cancel()}}}} +var l,u,s=CKEDITOR.dom.walker.invisible(1),t=function(){function a(b){return function(a){var c=a.editor.createRange();c.moveToClosestEditablePosition(a.selected,b)&&a.editor.getSelection().selectRanges([c]);return false}}function b(a){return function(b){var c=b.editor,d=c.createRange(),e;if(!(e=d.moveToClosestEditablePosition(b.selected,a)))e=d.moveToClosestEditablePosition(b.selected,!a);e&&c.getSelection().selectRanges([d]);c.fire("saveSnapshot");b.selected.remove();if(!e){d.moveToElementEditablePosition(c.editable()); +c.getSelection().selectRanges([d])}c.fire("saveSnapshot");return false}}var c=a(),d=a(1);return{37:c,38:c,39:d,40:d,8:b(),46:b(1)}}();CKEDITOR.on("instanceCreated",function(b){function c(){var a=e.getSelection();a&&a.removeAllRanges()}var e=b.editor;e.on("contentDom",function(){var b=e.document,c=CKEDITOR.document,i=e.editable(),m=b.getBody(),h=b.getDocumentElement(),j=i.isInline(),l,n;CKEDITOR.env.gecko&&i.attachListener(i,"focus",function(a){a.removeListener();if(l!==0)if((a=e.getSelection().getNative())&& +a.isCollapsed&&a.anchorNode==i.$){a=e.createRange();a.moveToElementEditStart(i);a.select()}},null,null,-2);i.attachListener(i,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){l&&CKEDITOR.env.webkit&&(l=e._.previousActive&&e._.previousActive.equals(b.getActive()));e.unlockSelection(l);l=0},null,null,-1);i.attachListener(i,"mousedown",function(){l=0});if(CKEDITOR.env.ie||CKEDITOR.env.opera||j){var s=function(){n=new CKEDITOR.dom.selection(e.getSelection());n.lock()};g?i.attachListener(i,"beforedeactivate", +s,null,null,-1):i.attachListener(e,"selectionCheck",s,null,null,-1);i.attachListener(i,CKEDITOR.env.webkit?"DOMFocusOut":"blur",function(){e.lockSelection(n);l=1},null,null,-1);i.attachListener(i,"mousedown",function(){l=0})}if(CKEDITOR.env.ie&&!j){var r;i.attachListener(i,"mousedown",function(a){if(a.data.$.button==2){a=e.document.getSelection();if(!a||a.getType()==CKEDITOR.SELECTION_NONE)r=e.window.getScrollPosition()}});i.attachListener(i,"mouseup",function(a){if(a.data.$.button==2&&r){e.document.$.documentElement.scrollLeft= +r.x;e.document.$.documentElement.scrollTop=r.y}r=null});if(b.$.compatMode!="BackCompat"){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)h.on("mousedown",function(a){function b(a){a=a.data.$;if(e){var c=m.$.createTextRange();try{c.moveToPoint(a.x,a.y)}catch(d){}e.setEndPoint(g.compareEndPoints("StartToStart",c)<0?"EndToEnd":"StartToStart",c);e.select()}}function d(){h.removeListener("mousemove",b);c.removeListener("mouseup",d);h.removeListener("mouseup",d);e.select()}a=a.data;if(a.getTarget().is("html")&& +a.$.y7&&CKEDITOR.env.version<11){h.on("mousedown",function(a){if(a.data.getTarget().is("html")){c.on("mouseup",v);h.on("mouseup",v)}});var v=function(){c.removeListener("mouseup",v);h.removeListener("mouseup",v);var a=CKEDITOR.document.$.selection,d=a.createRange();a.type!="None"&&d.parentElement().ownerDocument== +b.$&&d.select()}}}}i.attachListener(i,"selectionchange",a,e);i.attachListener(i,"keyup",d,e);i.attachListener(i,CKEDITOR.env.webkit?"DOMFocusIn":"focus",function(){e.forceNextSelectionCheck();e.selectionChange(1)});if(j?CKEDITOR.env.webkit||CKEDITOR.env.gecko:CKEDITOR.env.opera){var D;i.attachListener(i,"mousedown",function(){D=1});i.attachListener(b.getDocumentElement(),"mouseup",function(){D&&d.call(e);D=0})}else i.attachListener(CKEDITOR.env.ie?i:b.getDocumentElement(),"mouseup",d,e);CKEDITOR.env.webkit&& +i.attachListener(b,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:f(i)}},null,null,-1);i.attachListener(i,"keydown",k(e),null,null,-1)});e.on("contentDomUnload",e.forceNextSelectionCheck,e);e.on("dataReady",function(){delete e._.fakeSelection;delete e._.hiddenSelectionContainer;e.selectionChange(1)});e.on("loadSnapshot",function(){var a=e.editable().getLast(function(a){return a.type==CKEDITOR.NODE_ELEMENT});a&&a.hasAttribute("data-cke-hidden-sel")&& +a.remove()},null,null,100);CKEDITOR.env.ie9Compat&&e.on("beforeDestroy",c,null,null,9);CKEDITOR.env.webkit&&e.on("setData",c);e.on("contentDomUnload",function(){e.unlockSelection()});e.on("key",function(a){if(e.mode=="wysiwyg"){var b=e.getSelection();if(b.isFake){var c=t[a.data.keyCode];if(c)return c({editor:e,selected:b.getSelectedElement(),selection:b,keyEvent:a})}}})});CKEDITOR.on("instanceReady",function(a){var b=a.editor;if(CKEDITOR.env.webkit){b.on("selectionChange",function(){var a=b.editable(), +c=e(a);c&&(c.getCustomData("ready")?f(a):c.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",function(){f(b.editable())},null,null,-1);var c,d,a=function(){var a=b.editable();if(a)if(a=e(a)){var g=b.document.$.defaultView.getSelection();g.type=="Caret"&&g.anchorNode==a.$&&(d=1);c=a.getText();a.setText(h(c))}},g=function(){var a=b.editable();if(a)if(a=e(a)){a.setText(c);if(d){b.document.$.defaultView.getSelection().setPosition(a.$,a.getLength());d=0}}};b.on("beforeUndoImage",a);b.on("afterUndoImage", +g);b.on("beforeGetData",a,null,null,0);b.on("getData",g)}});CKEDITOR.editor.prototype.selectionChange=function(b){(b?a:d).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){if((this._.savedSelection||this._.fakeSelection)&&!a)return this._.savedSelection||this._.fakeSelection;return(a=this.editable())&&this.mode=="wysiwyg"?new CKEDITOR.dom.selection(a):null};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);if(a.getType()!=CKEDITOR.SELECTION_NONE){!a.isLocked&& +a.lock();this._.savedSelection=a;return true}return false};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;if(b){b.unlock(a);delete this._.savedSelection;return true}return false};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable? +this.root.editor.getSelection():new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;var g=typeof window.getSelection!="function",r=1;CKEDITOR.dom.selection=function(a){if(a instanceof CKEDITOR.dom.selection)var b=a,a=a.root;var c=a instanceof CKEDITOR.dom.element;this.rev=b?b.rev:r++;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=a=c?a:this.document.getBody();this.isLocked= +0;this._={cache:{}};if(b){CKEDITOR.tools.extend(this._.cache,b._.cache);this.isFake=b.isFake;this.isLocked=b.isLocked;return this}b=g?this.document.$.selection:this.document.getWindow().$.getSelection();if(CKEDITOR.env.webkit)(b.type=="None"&&this.document.getActive().equals(a)||b.type=="Caret"&&b.anchorNode.nodeType==CKEDITOR.NODE_DOCUMENT)&&n(a,b);else if(CKEDITOR.env.gecko)b&&(this.document.getActive().equals(a)&&b.anchorNode&&b.anchorNode.nodeType==CKEDITOR.NODE_DOCUMENT)&&n(a,b,true);else if(CKEDITOR.env.ie){var d; +try{d=this.document.getActive()}catch(e){}if(g)b.type=="None"&&(d&&d.equals(this.document.getDocumentElement()))&&n(a,null,true);else{(b=b&&b.anchorNode)&&(b=new CKEDITOR.dom.node(b));d&&(d.equals(this.document.getDocumentElement())&&b&&(a.equals(b)||a.contains(b)))&&n(a,null,true)}}d=this.getNative();var f,h;if(d)if(d.getRangeAt)f=(h=d.rangeCount&&d.getRangeAt(0))&&new CKEDITOR.dom.node(h.commonAncestorContainer);else{try{h=d.createRange()}catch(j){}f=h&&CKEDITOR.dom.element.get(h.item&&h.item(0)|| +h.parentElement())}if(!f||!(f.type==CKEDITOR.NODE_ELEMENT||f.type==CKEDITOR.NODE_TEXT)||!this.root.equals(f)&&!this.root.contains(f)){this._.cache.type=CKEDITOR.SELECTION_NONE;this._.cache.startElement=null;this._.cache.selectedElement=null;this._.cache.selectedText="";this._.cache.ranges=new CKEDITOR.dom.rangeList}return this};var w={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1};CKEDITOR.dom.selection.prototype= +{getNative:function(){return this._.cache.nativeSel!==void 0?this._.cache.nativeSel:this._.cache.nativeSel=g?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:g?function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;try{var c=this.getNative(),d=c.type;if(d=="Text")b=CKEDITOR.SELECTION_TEXT;if(d=="Control")b=CKEDITOR.SELECTION_ELEMENT;if(c.createRange().parentElement())b=CKEDITOR.SELECTION_TEXT}catch(e){}return a.type=b}:function(){var a=this._.cache; +if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,c=this.getNative();if(!c||!c.rangeCount)b=CKEDITOR.SELECTION_NONE;else if(c.rangeCount==1){var c=c.getRangeAt(0),d=c.startContainer;if(d==c.endContainer&&d.nodeType==1&&c.endOffset-c.startOffset==1&&w[d.childNodes[c.startOffset].nodeName.toLowerCase()])b=CKEDITOR.SELECTION_ELEMENT}return a.type=b},getRanges:function(){var a=g?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,c){b=b.duplicate();b.collapse(c); +var d=b.parentElement();if(!d.hasChildNodes())return{container:d,offset:0};for(var e=d.children,g,f,h=b.duplicate(),m=0,j=e.length-1,k=-1,v,l;m<=j;){k=Math.floor((m+j)/2);g=e[k];h.moveToElementText(g);v=h.compareEndPoints("StartToStart",b);if(v>0)j=k-1;else if(v<0)m=k+1;else return{container:d,offset:a(g)}}if(k==-1||k==e.length-1&&v<0){h.moveToElementText(d);h.setEndPoint("StartToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;e=d.childNodes;if(!h){g=e[e.length-1];return g.nodeType!=CKEDITOR.NODE_TEXT? +{container:d,offset:e.length}:{container:g,offset:g.nodeValue.length}}for(d=e.length;h>0&&d>0;){f=e[--d];if(f.nodeType==CKEDITOR.NODE_TEXT){l=f;h=h-f.nodeValue.length}}return{container:l,offset:-h}}h.collapse(v>0?true:false);h.setEndPoint(v>0?"StartToStart":"EndToStart",b);h=h.text.replace(/(\r\n|\r)/g,"\n").length;if(!h)return{container:d,offset:a(g)+(v>0?0:1)};for(;h>0;)try{f=g[v>0?"previousSibling":"nextSibling"];if(f.nodeType==CKEDITOR.NODE_TEXT){h=h-f.nodeValue.length;l=f}g=f}catch(q){return{container:d, +offset:a(g)}}return{container:l,offset:v>0?-h:l.nodeValue.length+h}};return function(){var a=this.getNative(),c=a&&a.createRange(),d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT){a=new CKEDITOR.dom.range(this.root);d=b(c,true);a.setStart(new CKEDITOR.dom.node(d.container),d.offset);d=b(c);a.setEnd(new CKEDITOR.dom.node(d.container),d.offset);a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse();return[a]}if(d== +CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;e=b.getLength()?k.setStartAfter(b):k.setStartBefore(b));f&&f.type==CKEDITOR.NODE_TEXT&&(j?k.setEndAfter(f):k.setEndBefore(f));b=new CKEDITOR.dom.walker(k);b.evaluator=function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&a.isReadOnly()){var b=g.clone();g.setEndBefore(a);g.collapsed&&d.splice(e--,1);if(!(a.getPosition(k.endContainer)&CKEDITOR.POSITION_CONTAINS)){b.setStartAfter(a); +b.collapsed||d.splice(e+1,0,b)}return true}return false};b.next()}}return c.ranges}}(),getStartElement:function(){var a=this._.cache;if(a.startElement!==void 0)return a.startElement;var b;switch(this.getType()){case CKEDITOR.SELECTION_ELEMENT:return this.getSelectedElement();case CKEDITOR.SELECTION_TEXT:var c=this.getRanges()[0];if(c){if(c.collapsed){b=c.startContainer;b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent())}else{for(c.optimize();;){b=c.startContainer;if(c.startOffset==(b.getChildCount?b.getChildCount(): +b.getLength())&&!b.isBlockBoundary())c.setStartAfter(b);else break}b=c.startContainer;if(b.type!=CKEDITOR.NODE_ELEMENT)return b.getParent();b=b.getChild(c.startOffset);if(!b||b.type!=CKEDITOR.NODE_ELEMENT)b=c.startContainer;else for(c=b.getFirst();c&&c.type==CKEDITOR.NODE_ELEMENT;){b=c;c=c.getFirst()}}b=b.$}}return a.startElement=b?new CKEDITOR.dom.element(b):null},getSelectedElement:function(){var a=this._.cache;if(a.selectedElement!==void 0)return a.selectedElement;var b=this,c=CKEDITOR.tools.tryThese(function(){return b.getNative().createRange().item(0)}, +function(){for(var a=b.getRanges()[0].clone(),c,d,e=2;e&&(!(c=a.getEnclosedNode())||!(c.type==CKEDITOR.NODE_ELEMENT&&w[c.getName()]&&(d=c)));e--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return d&&d.$});return a.selectedElement=c?new CKEDITOR.dom.element(c):null},getSelectedText:function(){var a=this._.cache;if(a.selectedText!==void 0)return a.selectedText;var b=this.getNative(),b=g?b.type=="Control"?"":b.createRange().text:b.toString();return a.selectedText=b},lock:function(){this.getRanges();this.getStartElement(); +this.getSelectedElement();this.getSelectedText();this._.cache.nativeSel=null;this.isLocked=1},unlock:function(a){if(this.isLocked){if(a)var b=this.getSelectedElement(),c=!b&&this.getRanges(),d=this.isFake;this.isLocked=0;this.reset();if(a)(a=b||c[0]&&c[0].getCommonAncestor())&&a.getAscendant("body",1)&&(d?this.fake(b):b?this.selectElement(b):this.selectRanges(c))}},reset:function(){this._.cache={};this.isFake=0;var a=this.root.editor;if(a&&a._.fakeSelection&&this.rev==a._.fakeSelection.rev){delete a._.fakeSelection; +var b=a._.hiddenSelectionContainer;if(b){a.fire("lockSnapshot");b.remove();a.fire("unlockSnapshot")}delete a._.hiddenSelectionContainer}this.rev=r++},selectElement:function(a){var b=new CKEDITOR.dom.range(this.root);b.setStartBefore(a);b.setEndAfter(a);this.selectRanges([b])},selectRanges:function(a){this.reset();if(a.length)if(this.isLocked){var b=CKEDITOR.document.getActive();this.unlock();this.selectRanges(a);this.lock();!b.equals(this.root)&&b.focus()}else if(a.length==1&&!a[0].collapsed&&(b= +a[0].getEnclosedNode())&&b.type==CKEDITOR.NODE_ELEMENT&&b.getAttribute("contenteditable")=="false")this.fake(b);else{if(g){var d=CKEDITOR.dom.walker.whitespaces(true),e=/\ufeff|\u00a0/,h={table:1,tbody:1,tr:1};if(a.length>1){b=a[a.length-1];a[0].setEnd(b.endContainer,b.endOffset)}var b=a[0],a=b.collapsed,j,k,l,n=b.getEnclosedNode();if(n&&n.type==CKEDITOR.NODE_ELEMENT&&n.getName()in w&&(!n.is("a")||!n.getText()))try{l=n.$.createControlRange();l.addElement(n.$);l.select();return}catch(s){}(b.startContainer.type== +CKEDITOR.NODE_ELEMENT&&b.startContainer.getName()in h||b.endContainer.type==CKEDITOR.NODE_ELEMENT&&b.endContainer.getName()in h)&&b.shrink(CKEDITOR.NODE_ELEMENT,true);l=b.createBookmark();var h=l.startNode,r;if(!a)r=l.endNode;l=b.document.$.body.createTextRange();l.moveToElementText(h.$);l.moveStart("character",1);if(r){e=b.document.$.body.createTextRange();e.moveToElementText(r.$);l.setEndPoint("EndToEnd",e);l.moveEnd("character",-1)}else{j=h.getNext(d);k=h.hasAscendant("pre");j=!(j&&j.getText&& +j.getText().match(e))&&(k||!h.hasPrevious()||h.getPrevious().is&&h.getPrevious().is("br"));k=b.document.createElement("span");k.setHtml("");k.insertBefore(h);j&&b.document.createText("").insertBefore(h)}b.setStartBefore(h);h.remove();if(a){if(j){l.moveStart("character",-1);l.select();b.document.$.selection.clear()}else l.select();b.moveToPosition(k,CKEDITOR.POSITION_BEFORE_START);k.remove()}else{b.setEndBefore(r);r.remove();l.select()}}else{r=this.getNative();if(!r)return;if(CKEDITOR.env.opera){b= +this.document.$.createRange();b.selectNodeContents(this.root.$);r.addRange(b)}this.removeAllRanges();for(l=0;l=0){b.collapse(1);e.setEnd(b.endContainer.$,b.endOffset)}else throw t;}r.addRange(e)}}this.reset();this.root.fire("selectionchange")}},fake:function(a){var b=this.root.editor;this.reset();j(b);var c=this._.cache,d=new CKEDITOR.dom.range(this.root); +d.setStartBefore(a);d.setEndAfter(a);c.ranges=new CKEDITOR.dom.rangeList(d);c.selectedElement=c.startElement=a;c.type=CKEDITOR.SELECTION_ELEMENT;c.selectedText=c.nativeSel=null;this.isFake=1;this.rev=r++;b._.fakeSelection=this;this.root.fire("selectionchange")},isHidden:function(){var a=this.getCommonAncestor();a&&a.type==CKEDITOR.NODE_TEXT&&(a=a.getParent());return!(!a||!a.data("cke-hidden-sel"))},createBookmarks:function(a){a=this.getRanges().createBookmarks(a);this.isFake&&(a.isFake=1);return a}, +createBookmarks2:function(a){a=this.getRanges().createBookmarks2(a);this.isFake&&(a.isFake=1);return a},selectBookmarks:function(a){for(var b=[],c=0;c]*>)[ \t\r\n]*/gi,"$1");g=g.replace(/([ \t\n\r]+| )/g, +" ");g=g.replace(/]*>/gi,"\n");if(CKEDITOR.env.ie){var f=a.getDocument().createElement("div");f.append(e);e.$.outerHTML="
    "+g+"
    ";e.copyAttributes(f.getFirst());e=f.getFirst().remove()}else e.setHtml(g);b=e}else g?b=u(c?[a.getHtml()]:k(a),b):a.moveChildren(b);b.replace(a);if(d){var c=b,h;if((h=c.getPrevious(x))&&h.type==CKEDITOR.NODE_ELEMENT&&h.is("pre")){d=l(h.getHtml(),/\n$/,"")+"\n\n"+l(c.getHtml(),/^\n/,"");CKEDITOR.env.ie?c.$.outerHTML="
    "+d+"
    ":c.setHtml(d);h.remove()}}else c&& +r(b)}function k(a){a.getName();var b=[];l(a.getOuterHtml(),/(\S\s*)\n(?:\s|(]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"
    "+c+"
    "}).replace(/([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)});return b}function l(a,b,c){var d="",e="",a=a.replace(/(^]+data-cke-bookmark.*?\/span>)|(]+data-cke-bookmark.*?\/span>$)/gi,function(a,b,c){b&&(d=b);c&&(e=c);return""});return d+a.replace(b,c)+e}function u(a,b){var c;a.length>1&&(c=new CKEDITOR.dom.documentFragment(b.getDocument()));
    +for(var d=0;d"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat(" ",a.length-1)+" "});if(c){var g=b.clone();g.setHtml(e);c.append(g)}else b.setHtml(e)}return c||b}function s(a){var b=this._.definition,
    +c=b.attributes,b=b.styles,d=q(this)[a.getName()],e=CKEDITOR.tools.isEmpty(c)&&CKEDITOR.tools.isEmpty(b),f;for(f in c)if(!((f=="class"||this._.definition.fullMatch)&&a.getAttribute(f)!=o(f,c[f]))){e=a.hasAttribute(f);a.removeAttribute(f)}for(var h in b)if(!(this._.definition.fullMatch&&a.getStyle(h)!=o(h,b[h],true))){e=e||!!a.getStyle(h);a.removeStyle(h)}g(a,d,p[a.getName()]);e&&(this._.definition.alwaysRemoveElement?r(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?
    +r(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function t(a){for(var b=q(this),c=a.getElementsByTag(this.element),d,e=c.count();--e>=0;){d=c.getItem(e);d.isReadOnly()||s.call(this,d)}for(var f in b)if(f!=this.element){c=a.getElementsByTag(f);for(e=c.count()-1;e>=0;e--){d=c.getItem(e);d.isReadOnly()||g(d,b[f])}}}function g(a,b,c){if(b=b&&b.attributes)for(var d=0;d",a||b.name,"");return c.join("")},getDefinition:function(){return this._.definition}};
    +CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;var b=a.styles,c=a.attributes&&a.attributes.style||"",d="";c.length&&(c=c.replace(E,";"));for(var e in b){var g=b[e],f=(e+":"+g).replace(E,";");g=="inherit"?d=d+f:c=c+f}c.length&&(c=CKEDITOR.tools.normalizeCssText(c,true));return a._ST=c+d};var M=CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED,y=CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED})();
    +CKEDITOR.styleCommand=function(a,d){this.requiredContent=this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,d,true)};CKEDITOR.styleCommand.prototype.exec=function(a){a.focus();this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&a.removeStyle(this.style)};CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet");CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet);
    +CKEDITOR.loadStylesSet=function(a,d,b){CKEDITOR.stylesSet.addExternal(a,d,"");CKEDITOR.stylesSet.load(a,b)};
    +CKEDITOR.editor.prototype.getStylesSet=function(a){if(this._.stylesDefinitions)a(this._.stylesDefinitions);else{var d=this,b=d.config.stylesCombo_stylesSet||d.config.stylesSet;if(b===false)a(null);else if(b instanceof Array){d._.stylesDefinitions=b;a(b)}else{b||(b="default");var b=b.split(":"),c=b[0];CKEDITOR.stylesSet.addExternal(c,b[1]?b.slice(1).join(":"):CKEDITOR.getUrl("styles.js"),"");CKEDITOR.stylesSet.load(c,function(b){d._.stylesDefinitions=b[c];a(d._.stylesDefinitions)})}}};
    +CKEDITOR.dom.comment=function(a,d){typeof a=="string"&&(a=(d?d.$:document).createComment(a));CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.comment.prototype=new CKEDITOR.dom.node;CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype,{type:CKEDITOR.NODE_COMMENT,getOuterHtml:function(){return"<\!--"+this.$.nodeValue+"--\>"}});"use strict";
    +(function(){var a={},d={},b;for(b in CKEDITOR.dtd.$blockLimit)b in CKEDITOR.dtd.$list||(a[b]=1);for(b in CKEDITOR.dtd.$block)b in CKEDITOR.dtd.$blockLimit||b in CKEDITOR.dtd.$empty||(d[b]=1);CKEDITOR.dom.elementPath=function(b,e){var f=null,h=null,n=[],j=b,k,e=e||b.getDocument().getBody();do if(j.type==CKEDITOR.NODE_ELEMENT){n.push(j);if(!this.lastElement){this.lastElement=j;if(j.is(CKEDITOR.dtd.$object)||j.getAttribute("contenteditable")=="false")continue}if(j.equals(e))break;if(!h){k=j.getName();
    +j.getAttribute("contenteditable")=="true"?h=j:!f&&d[k]&&(f=j);if(a[k]){var l;if(l=!f){if(k=k=="div"){a:{k=j.getChildren();l=0;for(var u=k.count();l-1}:typeof a=="function"?c=a:typeof a=="object"&&(c=
    +function(b){return b.getName()in a});var e=this.elements,f=e.length;d&&f--;if(b){e=Array.prototype.slice.call(e,0);e.reverse()}for(d=0;d=c){f=e.createText("");f.insertAfter(this)}else{a=e.createText("");a.insertAfter(f);a.remove()}return f},substring:function(a,
    +d){return typeof d!="number"?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,d)}});
    +(function(){function a(a,c,d){var f=a.serializable,h=c[d?"endContainer":"startContainer"],n=d?"endOffset":"startOffset",j=f?c.document.getById(a.startNode):a.startNode,a=f?c.document.getById(a.endNode):a.endNode;if(h.equals(j.getPrevious())){c.startOffset=c.startOffset-h.getLength()-a.getPrevious().getLength();h=a.getNext()}else if(h.equals(a.getPrevious())){c.startOffset=c.startOffset-h.getLength();h=a.getNext()}h.equals(j.getParent())&&c[n]++;h.equals(a.getParent())&&c[n]++;c[d?"endContainer":"startContainer"]=
    +h;return c}CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,d)};var d={createIterator:function(){var a=this,c=CKEDITOR.dom.walker.bookmark(),d=[],f;return{getNextRange:function(h){f=f==void 0?0:f+1;var n=a[f];if(n&&a.length>1){if(!f)for(var j=a.length-1;j>=0;j--)d.unshift(a[j].createBookmark(true));if(h)for(var k=0;a[f+k+1];){for(var l=n.document,h=0,j=l.getById(d[k].endNode),l=l.getById(d[k+
    +1].startNode);;){j=j.getNextSourceNode(false);if(l.equals(j))h=1;else if(c(j)||j.type==CKEDITOR.NODE_ELEMENT&&j.isBlockBoundary())continue;break}if(!h)break;k++}for(n.moveToBookmark(d.shift());k--;){j=a[++f];j.moveToBookmark(d.shift());n.setEnd(j.endContainer,j.endOffset)}}return n}}},createBookmarks:function(b){for(var c=[],d,f=0;fb?-1:1}),e=0,f;e',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{CKEDITOR.env.hc=a.getComputedStyle("border-top-color")==a.getComputedStyle("border-right-color")}catch(d){CKEDITOR.env.hc=false}a.remove()}if(CKEDITOR.env.hc)CKEDITOR.env.cssClass=CKEDITOR.env.cssClass+" cke_hc";CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");
    +CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending){delete CKEDITOR._.pending;for(var b=0;bc;c++){var f=a,h=c,d;d=parseInt(a[c],16);d=("0"+(0>e?0|d*(1+e):0|d+(255-d)*e).toString(16)).slice(-2);f[h]=d}return"#"+a.join("")}}(),c=function(){var b=new CKEDITOR.template("background:#{to};background-image:-webkit-gradient(linear,lefttop,leftbottom,from({from}),to({to}));background-image:-moz-linear-gradient(top,{from},{to});background-image:-webkit-linear-gradient(top,{from},{to});background-image:-o-linear-gradient(top,{from},{to});background-image:-ms-linear-gradient(top,{from},{to});background-image:linear-gradient(top,{from},{to});filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='{from}',endColorstr='{to}');");return function(c,
    +a){return b.output({from:c,to:a})}}(),f={editor:new CKEDITOR.template("{id}.cke_chrome [border-color:{defaultBorder};] {id} .cke_top [ {defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_bottom [{defaultGradient}border-top-color:{defaultBorder};] {id} .cke_resizer [border-right-color:{ckeResizer}] {id} .cke_dialog_title [{defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_dialog_footer [{defaultGradient}outline-color:{defaultBorder};border-top-color:{defaultBorder};] {id} .cke_dialog_tab [{lightGradient}border-color:{defaultBorder};] {id} .cke_dialog_tab:hover [{mediumGradient}] {id} .cke_dialog_contents [border-top-color:{defaultBorder};] {id} .cke_dialog_tab_selected, {id} .cke_dialog_tab_selected:hover [background:{dialogTabSelected};border-bottom-color:{dialogTabSelectedBorder};] {id} .cke_dialog_body [background:{dialogBody};border-color:{defaultBorder};] {id} .cke_toolgroup [{lightGradient}border-color:{defaultBorder};] {id} a.cke_button_off:hover, {id} a.cke_button_off:focus, {id} a.cke_button_off:active [{mediumGradient}] {id} .cke_button_on [{ckeButtonOn}] {id} .cke_toolbar_separator [background-color: {ckeToolbarSeparator};] {id} .cke_combo_button [border-color:{defaultBorder};{lightGradient}] {id} a.cke_combo_button:hover, {id} a.cke_combo_button:focus, {id} .cke_combo_on a.cke_combo_button [border-color:{defaultBorder};{mediumGradient}] {id} .cke_path_item [color:{elementsPathColor};] {id} a.cke_path_item:hover, {id} a.cke_path_item:focus, {id} a.cke_path_item:active [background-color:{elementsPathBg};] {id}.cke_panel [border-color:{defaultBorder};] "),
    +panel:new CKEDITOR.template(".cke_panel_grouptitle [{lightGradient}border-color:{defaultBorder};] .cke_menubutton_icon [background-color:{menubuttonIcon};] .cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon [background-color:{menubuttonIconHover};] .cke_menuseparator [background-color:{menubuttonIcon};] a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox [border-color:{defaultBorder};] a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore [background-color:{ckeColorauto};border-color:{defaultBorder};] ")};
    +return function(g,e){var a=g.uiColor,a={id:"."+g.id,defaultBorder:b(a,-0.1),defaultGradient:c(b(a,0.9),a),lightGradient:c(b(a,1),b(a,0.7)),mediumGradient:c(b(a,0.8),b(a,0.5)),ckeButtonOn:c(b(a,0.6),b(a,0.7)),ckeResizer:b(a,-0.4),ckeToolbarSeparator:b(a,0.5),ckeColorauto:b(a,0.8),dialogBody:b(a,0.7),dialogTabSelected:c("#FFFFFF","#FFFFFF"),dialogTabSelectedBorder:"#FFF",elementsPathColor:b(a,-0.6),elementsPathBg:a,menubuttonIcon:b(a,0.5),menubuttonIconHover:b(a,0.3)};return f[e].output(a).replace(/\[/g,
    +"{").replace(/\]/g,"}")}}();CKEDITOR.plugins.add("dialogui",{onLoad:function(){var i=function(b){this._||(this._={});this._["default"]=this._.initValue=b["default"]||"";this._.required=b.required||!1;for(var a=[this._],d=1;darguments.length)){var c=i.call(this,a);c.labelId=CKEDITOR.tools.getNextId()+"_label";this._.children=[];CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"div",null,{role:"presentation"},function(){var f=[],d=a.required?" cke_required":"";"horizontal"!=
    +a.labelLayout?f.push('",'
    ',e.call(this,b,a),"
    "):(d={type:"hbox",widths:a.widths,padding:0,children:[{type:"html",html:'