Version Description
- Updated SEO Titles and Meta Descriptions. Google recently launched a new crawling schema to better index rich AJAX sites and applications like Ecwid, which is a great news for all Ecwid users. We're keeping an eye on this and help Google improve indexing of all Ecwid stores. In this update, we made the product/categories page titles and descriptions change on the fly (with no page reload) so that Google will index them better. No action is required from your side we will continue improving how your store appears for Google to make sure your products and categories will get to the search results.
- Fixed a bug affecting the "Re-connect Ecwid account" link. The "Disconnect the Ecwid store and connect to another one" link at the bottom of the plugin dashboard now works fine.
- Fixed a bug affecting the sites with enabled JetPack's "Spelling and grammar" module. The Ecwid plugin v4 conflicted with that spelling module from JetPack, which affected the process of a publishing new posts and pages. Now it's fixed. Posts/pages publishing should work OK for all users.
Download this release
Release Info
Developer | Ecwid |
Plugin | Ecwid Ecommerce Shopping Cart |
Version | 4.0.5 |
Comparing to | |
See all releases |
Code changes from version 4.0.4 to 4.0.5
- css/admin.3.8.css +11 -11
- css/admin.css +402 -402
- css/fonts.css +51 -51
- css/frontend.css +21 -21
- css/landing.css +495 -495
- css/nav-menu.css +53 -53
- css/page-editor.css +57 -57
- css/products-list.css +199 -199
- css/recently-viewed.css +114 -114
- css/settings.3.8.css +228 -228
- css/settings.css +742 -742
- css/store-popup.css +449 -449
- css/themes/2014.css +7 -7
- css/themes/2015.css +11 -11
- css/themes/2016.css +4 -4
- css/themes/attitude.css +7 -7
- css/themes/customizr.css +58 -58
- css/themes/evolve.css +16 -16
- css/themes/mantra.css +2 -2
- css/themes/responsive-adjustments.css +385 -385
- css/themes/responsive.css +21 -21
- css/themes/responsiveboat.css +6 -6
- ecwid-shopping-cart.php +3282 -3263
- fonts/ecwid-icons.svg +16 -16
- images/add-store.svg +39 -39
- images/categories.svg +11 -11
- images/ecwid_logo_symbol_RGB.svg +37 -37
- images/grid.svg +23 -23
- images/landing/global.svg +4 -4
- images/landing/responsive-grow.svg +5 -5
- images/list.svg +15 -15
- images/minicart.svg +13 -13
- images/product_browser.svg +24 -24
- images/search.svg +12 -12
- images/store.svg +20 -20
- images/table.svg +32 -32
- includes/class-ecwid-integration-aiosp.php +60 -60
- includes/class-ecwid-integration-wpseo.php +104 -104
- includes/class-ecwid-kissmetrics.php +83 -0
- includes/class-ecwid-message-manager.php +297 -297
- includes/class-ecwid-oauth.php +400 -399
- includes/class-ecwid-sitemap-builder.php +85 -85
- includes/class-ecwid-store-editor.php +88 -88
- includes/themes.php +88 -88
- includes/themes/class-ecwid-theme-attitude.php +16 -16
- includes/themes/class-ecwid-theme-base.php +24 -24
- includes/themes/class-ecwid-theme-bretheon.php +35 -35
- includes/themes/class-ecwid-theme-central.php +28 -28
- includes/themes/class-ecwid-theme-customizr.php +19 -19
- includes/themes/class-ecwid-theme-envision.php +33 -33
- includes/themes/class-ecwid-theme-evolve.php +16 -16
- includes/themes/class-ecwid-theme-genesis.php +18 -18
- includes/themes/class-ecwid-theme-mantra.php +16 -16
- includes/themes/class-ecwid-theme-pagelines.php +18 -18
- includes/themes/class-ecwid-theme-responsive.php +75 -75
- includes/themes/class-ecwid-theme-responsiveboat.php +16 -16
- includes/themes/class-ecwid-theme-twentyfifteen.php +42 -42
- includes/themes/class-ecwid-theme-twentyfourteen.php +20 -20
- includes/themes/class-ecwid-theme-twentysixteen.php +43 -43
- includes/themes/class-ecwid-theme-twentytwelve.php +20 -20
- js/admin.js +139 -110
- js/appearance.js +6 -6
- js/create_scroller.js +4 -4
- js/dashboard.js +25 -25
- js/ecwid-chameleon.js +253 -253
- js/frontend.js +18 -18
- js/kissmetrics.js +18 -0
- js/landing.js +4 -4
- js/modernizr.js +1406 -1406
- js/nav-menu.js +115 -97
- js/products-list.js +292 -292
- js/recently-viewed-common.js +67 -66
- js/recently-viewed.js +81 -81
- js/store-editor-common.js +24 -24
- js/store-editor-mce.js +595 -595
- js/store-editor-page.js +353 -352
- js/themes/2012.js +3 -3
- js/themes/customizr.js +10 -10
- js/themes/pagelines.js +8 -8
- js/themes/responsive.js +88 -88
- languages/ecwid-shopping-cart-de_DE.po +459 -459
- languages/ecwid-shopping-cart-es_ES.po +261 -261
- languages/ecwid-shopping-cart-fr_FR.po +261 -261
- languages/ecwid-shopping-cart-it_IT.po +516 -516
- languages/ecwid-shopping-cart-pt_BR.po +268 -268
- languages/ecwid-shopping-cart-ru_RU.po +488 -524
css/admin.3.8.css
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
#adminmenu #toplevel_page_ecwid div.wp-menu-image:before {
|
2 |
-
font-family: 'ecwid-icons' !important;
|
3 |
-
content: "\e603";
|
4 |
-
-webkit-font-smoothing: antialiased;
|
5 |
-
-moz-osx-font-smoothing: grayscale;
|
6 |
-
}
|
7 |
-
|
8 |
-
#adminmenu #toplevel_page_ecwid div.wp-menu-image {
|
9 |
-
margin: 0px;
|
10 |
-
width: 34px;
|
11 |
-
height: 30px;
|
12 |
}
|
1 |
+
#adminmenu #toplevel_page_ecwid div.wp-menu-image:before {
|
2 |
+
font-family: 'ecwid-icons' !important;
|
3 |
+
content: "\e603";
|
4 |
+
-webkit-font-smoothing: antialiased;
|
5 |
+
-moz-osx-font-smoothing: grayscale;
|
6 |
+
}
|
7 |
+
|
8 |
+
#adminmenu #toplevel_page_ecwid div.wp-menu-image {
|
9 |
+
margin: 0px;
|
10 |
+
width: 34px;
|
11 |
+
height: 30px;
|
12 |
}
|
css/admin.css
CHANGED
@@ -1,403 +1,403 @@
|
|
1 |
-
#wpadminbar .ecwid-top-menu-item {
|
2 |
-
margin-top: 0px;
|
3 |
-
width: 23px;
|
4 |
-
height: 28px;
|
5 |
-
background: url(../images/icon-head-default.png) no-repeat 0% 2px;
|
6 |
-
}
|
7 |
-
|
8 |
-
#wpadminbar .ecwid-top-menu-item:hover,
|
9 |
-
#wpadminbar .hover .ecwid-top-menu-item{
|
10 |
-
background-image: url(../images/icon-head-active.png);
|
11 |
-
}
|
12 |
-
|
13 |
-
#adminmenu #toplevel_page_ecwid div.wp-menu-image {
|
14 |
-
background: url(../images/icon-sidebar-default.png) no-repeat 5px 2px;
|
15 |
-
margin: 2px 3px 2px 2px;
|
16 |
-
width: 23px;
|
17 |
-
height: 23px;
|
18 |
-
}
|
19 |
-
|
20 |
-
#adminmenu #toplevel_page_ecwid:hover div.wp-menu-image,
|
21 |
-
#adminmenu #toplevel_page_ecwid.wp-has-current-submenu div.wp-menu-image
|
22 |
-
{
|
23 |
-
background-image: url(../images/icon-sidebar-active.png);
|
24 |
-
}
|
25 |
-
|
26 |
-
.ecwid-settings h2 {
|
27 |
-
background:url(../images/icon-title.png) no-repeat 0% 50%;
|
28 |
-
padding-left: 43px;
|
29 |
-
line-height: 32px;
|
30 |
-
margin-bottom: 30px;
|
31 |
-
}
|
32 |
-
|
33 |
-
#hide-vote-message {
|
34 |
-
text-decoration: underline;
|
35 |
-
cursor: pointer;
|
36 |
-
}
|
37 |
-
|
38 |
-
#hide-vote-message.hiding {
|
39 |
-
cursor: wait;
|
40 |
-
}
|
41 |
-
|
42 |
-
#wp-toolbar > ul > li#wp-admin-bar-ecwid-main {
|
43 |
-
display: block;
|
44 |
-
}
|
45 |
-
|
46 |
-
.ecwid-badge {
|
47 |
-
display: table;
|
48 |
-
width: 70%;
|
49 |
-
min-width: 200px;
|
50 |
-
padding: 3px;
|
51 |
-
}
|
52 |
-
|
53 |
-
.ecwid-badge > div {
|
54 |
-
display: table-cell;
|
55 |
-
vertical-align: middle;
|
56 |
-
height: 55px;
|
57 |
-
}
|
58 |
-
|
59 |
-
.ecwid-badge .checkbox {
|
60 |
-
width: 15px;
|
61 |
-
}
|
62 |
-
.ecwid-badge .image {
|
63 |
-
text-align: center;
|
64 |
-
}
|
65 |
-
|
66 |
-
div.ecwid-message {
|
67 |
-
padding: 27px 29px 20px 30px;
|
68 |
-
}
|
69 |
-
|
70 |
-
.ecwid-message a {
|
71 |
-
color: #0074A2;
|
72 |
-
}
|
73 |
-
|
74 |
-
.ecwid-message a:hover {
|
75 |
-
color: #2EA2CC;
|
76 |
-
}
|
77 |
-
|
78 |
-
.ecwid-message .ecwid-message-title {
|
79 |
-
font-size: 18px;
|
80 |
-
margin-bottom: 12px;
|
81 |
-
font-weight: bold;
|
82 |
-
}
|
83 |
-
|
84 |
-
.ecwid-message .ecwid-message-content {
|
85 |
-
line-height: 20px;
|
86 |
-
}
|
87 |
-
|
88 |
-
.ecwid-message .ecwid-message-buttons {
|
89 |
-
margin-top: 19px;
|
90 |
-
position: relative;
|
91 |
-
display: table;
|
92 |
-
width: 100%;
|
93 |
-
}
|
94 |
-
|
95 |
-
.ecwid-message .ecwid-message-buttons > div {
|
96 |
-
display: inline-block;
|
97 |
-
vertical-align: middle;
|
98 |
-
}
|
99 |
-
|
100 |
-
.ecwid-message .ecwid-message-buttons > div:not(:first-child) {
|
101 |
-
padding-left: 9px;
|
102 |
-
}
|
103 |
-
|
104 |
-
.ecwid-message .ecwid-message-buttons > div:last-child {
|
105 |
-
position: absolute;
|
106 |
-
|
107 |
-
padding-left: 0px;
|
108 |
-
|
109 |
-
top: 0px;
|
110 |
-
right: 0px;
|
111 |
-
}
|
112 |
-
|
113 |
-
.ecwid-message .ecwid-message-buttons > div a{
|
114 |
-
text-decoration: none;
|
115 |
-
}
|
116 |
-
|
117 |
-
.ecwid-message .ecwid-message-hide:not(:hover) {
|
118 |
-
color: #bbb;
|
119 |
-
}
|
120 |
-
|
121 |
-
.ecwid-message .ecwid-message-hide {
|
122 |
-
font-size: 12px;
|
123 |
-
font-weight: 100;
|
124 |
-
cursor: pointer;
|
125 |
-
text-decoration: none;
|
126 |
-
}
|
127 |
-
|
128 |
-
.ecwid-message .ecwid-message-hide:before {
|
129 |
-
content: "\e606";
|
130 |
-
font-family: ecwid-icons;
|
131 |
-
font-size: 16px;
|
132 |
-
position: relative;
|
133 |
-
left: 1px;
|
134 |
-
top: 3px;
|
135 |
-
}
|
136 |
-
|
137 |
-
@media screen and (max-width: 768px) {
|
138 |
-
.ecwid-message .ecwid-message-buttons > div:last-child {
|
139 |
-
position: inherit;
|
140 |
-
}
|
141 |
-
|
142 |
-
div.ecwid-message,
|
143 |
-
div.ecwid-message.updated{
|
144 |
-
padding: 27px 29px 20px 30px;
|
145 |
-
}
|
146 |
-
|
147 |
-
.ecwid-message .ecwid-message-buttons > div:not(:first-child) {
|
148 |
-
padding-left: 0px;
|
149 |
-
}
|
150 |
-
|
151 |
-
.ecwid-message .ecwid-message-buttons > div {
|
152 |
-
display: block;
|
153 |
-
}
|
154 |
-
|
155 |
-
.ecwid-message .ecwid-message-buttons > div a {
|
156 |
-
text-align: center;
|
157 |
-
white-space: normal;
|
158 |
-
width: 100%;
|
159 |
-
}
|
160 |
-
|
161 |
-
.ecwid-message .ecwid-message-hide:before {
|
162 |
-
font-size: 21px;
|
163 |
-
top: 5px;
|
164 |
-
}
|
165 |
-
|
166 |
-
.ecwid-message-buttons .hide-wrapper {
|
167 |
-
margin-top: 10px;
|
168 |
-
}
|
169 |
-
}
|
170 |
-
|
171 |
-
body[class*="_page_ecwid"] .ecwid-message {
|
172 |
-
margin: 20px 20px 20px 0px;
|
173 |
-
}
|
174 |
-
|
175 |
-
|
176 |
-
.ecwid-message.dev {
|
177 |
-
outline: 2px solid red;
|
178 |
-
width: 434px;
|
179 |
-
}
|
180 |
-
|
181 |
-
.ecwid-message.dev .ecwid-message-title {
|
182 |
-
letter-spacing: -0.4px;
|
183 |
-
}
|
184 |
-
|
185 |
-
.ecwid-message.dev .ecwid-message-content {
|
186 |
-
letter-spacing: -0.62px;
|
187 |
-
}
|
188 |
-
|
189 |
-
.ecwid-message.dev .ecwid-message-hide {
|
190 |
-
letter-spacing: -0.22px;
|
191 |
-
}
|
192 |
-
|
193 |
-
#available-widgets .widget-top.ecwid-widget-highlighted {
|
194 |
-
background: #1d7ac4;
|
195 |
-
color: white;
|
196 |
-
font-weight: normal;
|
197 |
-
}
|
198 |
-
|
199 |
-
.widgets-php #available-widgets .ecwid-widget .widget-top .widget-title h4,
|
200 |
-
.widgets-php #available-widgets .ecwid-widget .widget-top .widget-title h3
|
201 |
-
{
|
202 |
-
padding-left: 42px;
|
203 |
-
}
|
204 |
-
|
205 |
-
.wp-customizer #available-widgets .ecwid-widget .widget-top .widget-title {
|
206 |
-
padding-left: 0px;
|
207 |
-
}
|
208 |
-
|
209 |
-
|
210 |
-
#available-widgets .ecwid-widget .widget-top .widget-title:before {
|
211 |
-
font-size: 20px;
|
212 |
-
position: absolute;
|
213 |
-
top: 12px;
|
214 |
-
left: 16px;
|
215 |
-
margin-right: -4px;
|
216 |
-
line-height: 10px;
|
217 |
-
font-family: 'ecwid-icons';
|
218 |
-
speak: none;
|
219 |
-
font-style: normal;
|
220 |
-
font-weight: normal;
|
221 |
-
font-variant: normal;
|
222 |
-
text-transform: none;
|
223 |
-
line-height: 1;
|
224 |
-
|
225 |
-
/* Better Font Rendering =========== */
|
226 |
-
-webkit-font-smoothing: antialiased;
|
227 |
-
-moz-osx-font-smoothing: grayscale;
|
228 |
-
|
229 |
-
color: #1d7ac4;
|
230 |
-
opacity: .5;
|
231 |
-
}
|
232 |
-
|
233 |
-
.wp-customizer #available-widgets .ecwid-widget .widget-top .widget-title:before {
|
234 |
-
left: -40px;
|
235 |
-
top: -1px;
|
236 |
-
font-size: 18px;
|
237 |
-
opacity: 1;
|
238 |
-
color: #32373c;
|
239 |
-
}
|
240 |
-
|
241 |
-
#available-widgets .ecwid-widget .widget-top:hover .widget-title:before {
|
242 |
-
opacity: 1;
|
243 |
-
}
|
244 |
-
|
245 |
-
#available-widgets .ecwid-widget .widget-top.ecwid-widget-highlighted .widget-title:before {
|
246 |
-
color: white;
|
247 |
-
opacity: 1;
|
248 |
-
}
|
249 |
-
|
250 |
-
#available-widgets .ecwid-widget-badge .widget-title:before {
|
251 |
-
content: "\e603";
|
252 |
-
}
|
253 |
-
|
254 |
-
#available-widgets .widget-top.ecwid-widget-minicart .widget-title:before,
|
255 |
-
#available-widgets .widget-top.ecwid-widget-minicart_miniview .widget-title:before
|
256 |
-
{
|
257 |
-
content: "\e601";
|
258 |
-
}
|
259 |
-
|
260 |
-
#available-widgets .widget-top.ecwid-widget-vcategories .widget-title:before,
|
261 |
-
#available-widgets .widget-top.ecwid-widget-categories .widget-title:before
|
262 |
-
{
|
263 |
-
content: "\e602";
|
264 |
-
}
|
265 |
-
|
266 |
-
#available-widgets .widget-top.ecwid-widget-search .widget-title:before {
|
267 |
-
content: "\e604";
|
268 |
-
}
|
269 |
-
|
270 |
-
#available-widgets .widget-top.ecwid-widget-storelink .widget-title:before {
|
271 |
-
content: "\e605";
|
272 |
-
}
|
273 |
-
|
274 |
-
#available-widgets .widget-top.ecwid-widget-recentlyviewed .widget-title:before {
|
275 |
-
content: "\e600";
|
276 |
-
}
|
277 |
-
|
278 |
-
.ecwid-debug .section {
|
279 |
-
display: table-row;
|
280 |
-
}
|
281 |
-
|
282 |
-
.ecwid-debug .section > * {
|
283 |
-
display: table-cell;
|
284 |
-
padding: 2px 5px;
|
285 |
-
}
|
286 |
-
|
287 |
-
.ecwid-debug h2.hide+div {
|
288 |
-
display: none;
|
289 |
-
}
|
290 |
-
|
291 |
-
.ecwid-debug h2 {
|
292 |
-
cursor: pointer;
|
293 |
-
}
|
294 |
-
|
295 |
-
.ecwid-debug h2:hover {
|
296 |
-
color: #00a0d2;
|
297 |
-
}
|
298 |
-
.ecwid-debug h2:before {
|
299 |
-
content: "[-]";
|
300 |
-
font-family: monospace;
|
301 |
-
position: relative;
|
302 |
-
top: -0.2em;
|
303 |
-
}
|
304 |
-
|
305 |
-
.ecwid-debug h2.hide:before {
|
306 |
-
content: "[+]";
|
307 |
-
}
|
308 |
-
|
309 |
-
.ecwid-reconnect-allow-sso .main-wrap {
|
310 |
-
display: table;
|
311 |
-
width:100%;
|
312 |
-
max-width: 1000px;
|
313 |
-
}
|
314 |
-
|
315 |
-
.ecwid-reconnect-allow-sso .main-wrap .column {
|
316 |
-
display: table-cell;
|
317 |
-
width: 50%;
|
318 |
-
vertical-align: top;
|
319 |
-
padding-left: 5%;
|
320 |
-
text-align: left;
|
321 |
-
}
|
322 |
-
|
323 |
-
.ecwid-reconnect-allow-sso .main-wrap .column img {
|
324 |
-
width:100%;
|
325 |
-
max-width: 413px;
|
326 |
-
}
|
327 |
-
|
328 |
-
|
329 |
-
.ecwid-reconnect-allow-sso .main-wrap .column h4 {
|
330 |
-
font-size: 32px;
|
331 |
-
font-family: 'Open Sans';
|
332 |
-
line-height: normal;
|
333 |
-
margin-top: 1em;
|
334 |
-
font-weight: normal;
|
335 |
-
margin-bottom: 28px;
|
336 |
-
}
|
337 |
-
|
338 |
-
.ecwid-reconnect-allow-sso.ecwid-connect .box .connect-button a {
|
339 |
-
text-align: center;
|
340 |
-
white-space: nowrap;
|
341 |
-
width:auto;
|
342 |
-
}
|
343 |
-
|
344 |
-
.ecwid-reconnect-allow-sso.ecwid-connect .box .note {
|
345 |
-
font-size: 16px;
|
346 |
-
line-height: 1.50em;
|
347 |
-
color: #444;
|
348 |
-
margin-bottom: 40px;
|
349 |
-
}
|
350 |
-
|
351 |
-
.ecwid-admin-superwrap.has-wp-message {
|
352 |
-
margin-top: 25px;
|
353 |
-
}
|
354 |
-
|
355 |
-
/* Remove left padding for integrated admin */
|
356 |
-
.ecwid-admin-superwrap {
|
357 |
-
position:relative;
|
358 |
-
height: 600px;
|
359 |
-
}
|
360 |
-
|
361 |
-
.ecwid-admin-superwrap #wrap {
|
362 |
-
position:absolute;
|
363 |
-
left:-20px;
|
364 |
-
right: 0px;
|
365 |
-
height: 600px;
|
366 |
-
background: white;
|
367 |
-
}
|
368 |
-
/* ---------------------- */
|
369 |
-
|
370 |
-
@media screen and (max-width:1023px) {
|
371 |
-
.ecwid-reconnect-allow-sso .main-wrap .column h4 {
|
372 |
-
font-size: 28px;
|
373 |
-
}
|
374 |
-
|
375 |
-
.ecwid-reconnect-allow-sso .main-wrap .note {
|
376 |
-
font-size: 14px;
|
377 |
-
}
|
378 |
-
|
379 |
-
.ecwid-connect.ecwid-reconnect-allow-sso .main-wrap .connect-button a {
|
380 |
-
font-size: 16px;
|
381 |
-
}
|
382 |
-
}
|
383 |
-
|
384 |
-
@media screen and (max-width:767px) {
|
385 |
-
.ecwid-reconnect-allow-sso .main-wrap .column {
|
386 |
-
display: block;
|
387 |
-
width: 100%;
|
388 |
-
text-align: center;
|
389 |
-
padding-left: inherit;
|
390 |
-
}
|
391 |
-
|
392 |
-
.ecwid-reconnect-allow-sso .main-wrap .column p {
|
393 |
-
display: inline-block;
|
394 |
-
}
|
395 |
-
|
396 |
-
.ecwid-reconnect-allow-sso .main-wrap .column h4 {
|
397 |
-
margin-bottom: 14px;
|
398 |
-
}
|
399 |
-
|
400 |
-
.ecwid-reconnect-allow-sso.ecwid-connect .box .note {
|
401 |
-
margin-bottom: 20px;
|
402 |
-
}
|
403 |
}
|
1 |
+
#wpadminbar .ecwid-top-menu-item {
|
2 |
+
margin-top: 0px;
|
3 |
+
width: 23px;
|
4 |
+
height: 28px;
|
5 |
+
background: url(../images/icon-head-default.png) no-repeat 0% 2px;
|
6 |
+
}
|
7 |
+
|
8 |
+
#wpadminbar .ecwid-top-menu-item:hover,
|
9 |
+
#wpadminbar .hover .ecwid-top-menu-item{
|
10 |
+
background-image: url(../images/icon-head-active.png);
|
11 |
+
}
|
12 |
+
|
13 |
+
#adminmenu #toplevel_page_ecwid div.wp-menu-image {
|
14 |
+
background: url(../images/icon-sidebar-default.png) no-repeat 5px 2px;
|
15 |
+
margin: 2px 3px 2px 2px;
|
16 |
+
width: 23px;
|
17 |
+
height: 23px;
|
18 |
+
}
|
19 |
+
|
20 |
+
#adminmenu #toplevel_page_ecwid:hover div.wp-menu-image,
|
21 |
+
#adminmenu #toplevel_page_ecwid.wp-has-current-submenu div.wp-menu-image
|
22 |
+
{
|
23 |
+
background-image: url(../images/icon-sidebar-active.png);
|
24 |
+
}
|
25 |
+
|
26 |
+
.ecwid-settings h2 {
|
27 |
+
background:url(../images/icon-title.png) no-repeat 0% 50%;
|
28 |
+
padding-left: 43px;
|
29 |
+
line-height: 32px;
|
30 |
+
margin-bottom: 30px;
|
31 |
+
}
|
32 |
+
|
33 |
+
#hide-vote-message {
|
34 |
+
text-decoration: underline;
|
35 |
+
cursor: pointer;
|
36 |
+
}
|
37 |
+
|
38 |
+
#hide-vote-message.hiding {
|
39 |
+
cursor: wait;
|
40 |
+
}
|
41 |
+
|
42 |
+
#wp-toolbar > ul > li#wp-admin-bar-ecwid-main {
|
43 |
+
display: block;
|
44 |
+
}
|
45 |
+
|
46 |
+
.ecwid-badge {
|
47 |
+
display: table;
|
48 |
+
width: 70%;
|
49 |
+
min-width: 200px;
|
50 |
+
padding: 3px;
|
51 |
+
}
|
52 |
+
|
53 |
+
.ecwid-badge > div {
|
54 |
+
display: table-cell;
|
55 |
+
vertical-align: middle;
|
56 |
+
height: 55px;
|
57 |
+
}
|
58 |
+
|
59 |
+
.ecwid-badge .checkbox {
|
60 |
+
width: 15px;
|
61 |
+
}
|
62 |
+
.ecwid-badge .image {
|
63 |
+
text-align: center;
|
64 |
+
}
|
65 |
+
|
66 |
+
div.ecwid-message {
|
67 |
+
padding: 27px 29px 20px 30px;
|
68 |
+
}
|
69 |
+
|
70 |
+
.ecwid-message a {
|
71 |
+
color: #0074A2;
|
72 |
+
}
|
73 |
+
|
74 |
+
.ecwid-message a:hover {
|
75 |
+
color: #2EA2CC;
|
76 |
+
}
|
77 |
+
|
78 |
+
.ecwid-message .ecwid-message-title {
|
79 |
+
font-size: 18px;
|
80 |
+
margin-bottom: 12px;
|
81 |
+
font-weight: bold;
|
82 |
+
}
|
83 |
+
|
84 |
+
.ecwid-message .ecwid-message-content {
|
85 |
+
line-height: 20px;
|
86 |
+
}
|
87 |
+
|
88 |
+
.ecwid-message .ecwid-message-buttons {
|
89 |
+
margin-top: 19px;
|
90 |
+
position: relative;
|
91 |
+
display: table;
|
92 |
+
width: 100%;
|
93 |
+
}
|
94 |
+
|
95 |
+
.ecwid-message .ecwid-message-buttons > div {
|
96 |
+
display: inline-block;
|
97 |
+
vertical-align: middle;
|
98 |
+
}
|
99 |
+
|
100 |
+
.ecwid-message .ecwid-message-buttons > div:not(:first-child) {
|
101 |
+
padding-left: 9px;
|
102 |
+
}
|
103 |
+
|
104 |
+
.ecwid-message .ecwid-message-buttons > div:last-child {
|
105 |
+
position: absolute;
|
106 |
+
|
107 |
+
padding-left: 0px;
|
108 |
+
|
109 |
+
top: 0px;
|
110 |
+
right: 0px;
|
111 |
+
}
|
112 |
+
|
113 |
+
.ecwid-message .ecwid-message-buttons > div a{
|
114 |
+
text-decoration: none;
|
115 |
+
}
|
116 |
+
|
117 |
+
.ecwid-message .ecwid-message-hide:not(:hover) {
|
118 |
+
color: #bbb;
|
119 |
+
}
|
120 |
+
|
121 |
+
.ecwid-message .ecwid-message-hide {
|
122 |
+
font-size: 12px;
|
123 |
+
font-weight: 100;
|
124 |
+
cursor: pointer;
|
125 |
+
text-decoration: none;
|
126 |
+
}
|
127 |
+
|
128 |
+
.ecwid-message .ecwid-message-hide:before {
|
129 |
+
content: "\e606";
|
130 |
+
font-family: ecwid-icons;
|
131 |
+
font-size: 16px;
|
132 |
+
position: relative;
|
133 |
+
left: 1px;
|
134 |
+
top: 3px;
|
135 |
+
}
|
136 |
+
|
137 |
+
@media screen and (max-width: 768px) {
|
138 |
+
.ecwid-message .ecwid-message-buttons > div:last-child {
|
139 |
+
position: inherit;
|
140 |
+
}
|
141 |
+
|
142 |
+
div.ecwid-message,
|
143 |
+
div.ecwid-message.updated{
|
144 |
+
padding: 27px 29px 20px 30px;
|
145 |
+
}
|
146 |
+
|
147 |
+
.ecwid-message .ecwid-message-buttons > div:not(:first-child) {
|
148 |
+
padding-left: 0px;
|
149 |
+
}
|
150 |
+
|
151 |
+
.ecwid-message .ecwid-message-buttons > div {
|
152 |
+
display: block;
|
153 |
+
}
|
154 |
+
|
155 |
+
.ecwid-message .ecwid-message-buttons > div a {
|
156 |
+
text-align: center;
|
157 |
+
white-space: normal;
|
158 |
+
width: 100%;
|
159 |
+
}
|
160 |
+
|
161 |
+
.ecwid-message .ecwid-message-hide:before {
|
162 |
+
font-size: 21px;
|
163 |
+
top: 5px;
|
164 |
+
}
|
165 |
+
|
166 |
+
.ecwid-message-buttons .hide-wrapper {
|
167 |
+
margin-top: 10px;
|
168 |
+
}
|
169 |
+
}
|
170 |
+
|
171 |
+
body[class*="_page_ecwid"] .ecwid-message {
|
172 |
+
margin: 20px 20px 20px 0px;
|
173 |
+
}
|
174 |
+
|
175 |
+
|
176 |
+
.ecwid-message.dev {
|
177 |
+
outline: 2px solid red;
|
178 |
+
width: 434px;
|
179 |
+
}
|
180 |
+
|
181 |
+
.ecwid-message.dev .ecwid-message-title {
|
182 |
+
letter-spacing: -0.4px;
|
183 |
+
}
|
184 |
+
|
185 |
+
.ecwid-message.dev .ecwid-message-content {
|
186 |
+
letter-spacing: -0.62px;
|
187 |
+
}
|
188 |
+
|
189 |
+
.ecwid-message.dev .ecwid-message-hide {
|
190 |
+
letter-spacing: -0.22px;
|
191 |
+
}
|
192 |
+
|
193 |
+
#available-widgets .widget-top.ecwid-widget-highlighted {
|
194 |
+
background: #1d7ac4;
|
195 |
+
color: white;
|
196 |
+
font-weight: normal;
|
197 |
+
}
|
198 |
+
|
199 |
+
.widgets-php #available-widgets .ecwid-widget .widget-top .widget-title h4,
|
200 |
+
.widgets-php #available-widgets .ecwid-widget .widget-top .widget-title h3
|
201 |
+
{
|
202 |
+
padding-left: 42px;
|
203 |
+
}
|
204 |
+
|
205 |
+
.wp-customizer #available-widgets .ecwid-widget .widget-top .widget-title {
|
206 |
+
padding-left: 0px;
|
207 |
+
}
|
208 |
+
|
209 |
+
|
210 |
+
#available-widgets .ecwid-widget .widget-top .widget-title:before {
|
211 |
+
font-size: 20px;
|
212 |
+
position: absolute;
|
213 |
+
top: 12px;
|
214 |
+
left: 16px;
|
215 |
+
margin-right: -4px;
|
216 |
+
line-height: 10px;
|
217 |
+
font-family: 'ecwid-icons';
|
218 |
+
speak: none;
|
219 |
+
font-style: normal;
|
220 |
+
font-weight: normal;
|
221 |
+
font-variant: normal;
|
222 |
+
text-transform: none;
|
223 |
+
line-height: 1;
|
224 |
+
|
225 |
+
/* Better Font Rendering =========== */
|
226 |
+
-webkit-font-smoothing: antialiased;
|
227 |
+
-moz-osx-font-smoothing: grayscale;
|
228 |
+
|
229 |
+
color: #1d7ac4;
|
230 |
+
opacity: .5;
|
231 |
+
}
|
232 |
+
|
233 |
+
.wp-customizer #available-widgets .ecwid-widget .widget-top .widget-title:before {
|
234 |
+
left: -40px;
|
235 |
+
top: -1px;
|
236 |
+
font-size: 18px;
|
237 |
+
opacity: 1;
|
238 |
+
color: #32373c;
|
239 |
+
}
|
240 |
+
|
241 |
+
#available-widgets .ecwid-widget .widget-top:hover .widget-title:before {
|
242 |
+
opacity: 1;
|
243 |
+
}
|
244 |
+
|
245 |
+
#available-widgets .ecwid-widget .widget-top.ecwid-widget-highlighted .widget-title:before {
|
246 |
+
color: white;
|
247 |
+
opacity: 1;
|
248 |
+
}
|
249 |
+
|
250 |
+
#available-widgets .ecwid-widget-badge .widget-title:before {
|
251 |
+
content: "\e603";
|
252 |
+
}
|
253 |
+
|
254 |
+
#available-widgets .widget-top.ecwid-widget-minicart .widget-title:before,
|
255 |
+
#available-widgets .widget-top.ecwid-widget-minicart_miniview .widget-title:before
|
256 |
+
{
|
257 |
+
content: "\e601";
|
258 |
+
}
|
259 |
+
|
260 |
+
#available-widgets .widget-top.ecwid-widget-vcategories .widget-title:before,
|
261 |
+
#available-widgets .widget-top.ecwid-widget-categories .widget-title:before
|
262 |
+
{
|
263 |
+
content: "\e602";
|
264 |
+
}
|
265 |
+
|
266 |
+
#available-widgets .widget-top.ecwid-widget-search .widget-title:before {
|
267 |
+
content: "\e604";
|
268 |
+
}
|
269 |
+
|
270 |
+
#available-widgets .widget-top.ecwid-widget-storelink .widget-title:before {
|
271 |
+
content: "\e605";
|
272 |
+
}
|
273 |
+
|
274 |
+
#available-widgets .widget-top.ecwid-widget-recentlyviewed .widget-title:before {
|
275 |
+
content: "\e600";
|
276 |
+
}
|
277 |
+
|
278 |
+
.ecwid-debug .section {
|
279 |
+
display: table-row;
|
280 |
+
}
|
281 |
+
|
282 |
+
.ecwid-debug .section > * {
|
283 |
+
display: table-cell;
|
284 |
+
padding: 2px 5px;
|
285 |
+
}
|
286 |
+
|
287 |
+
.ecwid-debug h2.hide+div {
|
288 |
+
display: none;
|
289 |
+
}
|
290 |
+
|
291 |
+
.ecwid-debug h2 {
|
292 |
+
cursor: pointer;
|
293 |
+
}
|
294 |
+
|
295 |
+
.ecwid-debug h2:hover {
|
296 |
+
color: #00a0d2;
|
297 |
+
}
|
298 |
+
.ecwid-debug h2:before {
|
299 |
+
content: "[-]";
|
300 |
+
font-family: monospace;
|
301 |
+
position: relative;
|
302 |
+
top: -0.2em;
|
303 |
+
}
|
304 |
+
|
305 |
+
.ecwid-debug h2.hide:before {
|
306 |
+
content: "[+]";
|
307 |
+
}
|
308 |
+
|
309 |
+
.ecwid-reconnect-allow-sso .main-wrap {
|
310 |
+
display: table;
|
311 |
+
width:100%;
|
312 |
+
max-width: 1000px;
|
313 |
+
}
|
314 |
+
|
315 |
+
.ecwid-reconnect-allow-sso .main-wrap .column {
|
316 |
+
display: table-cell;
|
317 |
+
width: 50%;
|
318 |
+
vertical-align: top;
|
319 |
+
padding-left: 5%;
|
320 |
+
text-align: left;
|
321 |
+
}
|
322 |
+
|
323 |
+
.ecwid-reconnect-allow-sso .main-wrap .column img {
|
324 |
+
width:100%;
|
325 |
+
max-width: 413px;
|
326 |
+
}
|
327 |
+
|
328 |
+
|
329 |
+
.ecwid-reconnect-allow-sso .main-wrap .column h4 {
|
330 |
+
font-size: 32px;
|
331 |
+
font-family: 'Open Sans';
|
332 |
+
line-height: normal;
|
333 |
+
margin-top: 1em;
|
334 |
+
font-weight: normal;
|
335 |
+
margin-bottom: 28px;
|
336 |
+
}
|
337 |
+
|
338 |
+
.ecwid-reconnect-allow-sso.ecwid-connect .box .connect-button a {
|
339 |
+
text-align: center;
|
340 |
+
white-space: nowrap;
|
341 |
+
width:auto;
|
342 |
+
}
|
343 |
+
|
344 |
+
.ecwid-reconnect-allow-sso.ecwid-connect .box .note {
|
345 |
+
font-size: 16px;
|
346 |
+
line-height: 1.50em;
|
347 |
+
color: #444;
|
348 |
+
margin-bottom: 40px;
|
349 |
+
}
|
350 |
+
|
351 |
+
.ecwid-admin-superwrap.has-wp-message {
|
352 |
+
margin-top: 25px;
|
353 |
+
}
|
354 |
+
|
355 |
+
/* Remove left padding for integrated admin */
|
356 |
+
.ecwid-admin-superwrap {
|
357 |
+
position:relative;
|
358 |
+
height: 600px;
|
359 |
+
}
|
360 |
+
|
361 |
+
.ecwid-admin-superwrap #wrap {
|
362 |
+
position:absolute;
|
363 |
+
left:-20px;
|
364 |
+
right: 0px;
|
365 |
+
height: 600px;
|
366 |
+
background: white;
|
367 |
+
}
|
368 |
+
/* ---------------------- */
|
369 |
+
|
370 |
+
@media screen and (max-width:1023px) {
|
371 |
+
.ecwid-reconnect-allow-sso .main-wrap .column h4 {
|
372 |
+
font-size: 28px;
|
373 |
+
}
|
374 |
+
|
375 |
+
.ecwid-reconnect-allow-sso .main-wrap .note {
|
376 |
+
font-size: 14px;
|
377 |
+
}
|
378 |
+
|
379 |
+
.ecwid-connect.ecwid-reconnect-allow-sso .main-wrap .connect-button a {
|
380 |
+
font-size: 16px;
|
381 |
+
}
|
382 |
+
}
|
383 |
+
|
384 |
+
@media screen and (max-width:767px) {
|
385 |
+
.ecwid-reconnect-allow-sso .main-wrap .column {
|
386 |
+
display: block;
|
387 |
+
width: 100%;
|
388 |
+
text-align: center;
|
389 |
+
padding-left: inherit;
|
390 |
+
}
|
391 |
+
|
392 |
+
.ecwid-reconnect-allow-sso .main-wrap .column p {
|
393 |
+
display: inline-block;
|
394 |
+
}
|
395 |
+
|
396 |
+
.ecwid-reconnect-allow-sso .main-wrap .column h4 {
|
397 |
+
margin-bottom: 14px;
|
398 |
+
}
|
399 |
+
|
400 |
+
.ecwid-reconnect-allow-sso.ecwid-connect .box .note {
|
401 |
+
margin-bottom: 20px;
|
402 |
+
}
|
403 |
}
|
css/fonts.css
CHANGED
@@ -1,51 +1,51 @@
|
|
1 |
-
@font-face {
|
2 |
-
font-family: 'ecwid-icons';
|
3 |
-
src:url('../fonts/ecwid-icons.eot?-b8sbws');
|
4 |
-
src:url('../fonts/ecwid-icons.eot?#iefix-b8sbws') format('embedded-opentype'),
|
5 |
-
url('../fonts/ecwid-icons.woff?-b8sbws') format('woff'),
|
6 |
-
url('../fonts/ecwid-icons.ttf?-b8sbws') format('truetype'),
|
7 |
-
url('../fonts/ecwid-icons.svg?-b8sbws#ecwid-icons') format('svg');
|
8 |
-
font-weight: normal;
|
9 |
-
font-style: normal;
|
10 |
-
}
|
11 |
-
|
12 |
-
[class^="icon-"], [class*=" icon-"] {
|
13 |
-
font-family: 'ecwid-icons';
|
14 |
-
speak: none;
|
15 |
-
font-style: normal;
|
16 |
-
font-weight: normal;
|
17 |
-
font-variant: normal;
|
18 |
-
text-transform: none;
|
19 |
-
line-height: 1;
|
20 |
-
|
21 |
-
/* Better Font Rendering =========== */
|
22 |
-
-webkit-font-smoothing: antialiased;
|
23 |
-
-moz-osx-font-smoothing: grayscale;
|
24 |
-
}
|
25 |
-
|
26 |
-
#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon.ecwid-top-menu-item {
|
27 |
-
font: 400 20px/1 'ecwid-icons' !important;
|
28 |
-
-webkit-font-smoothing: antialiased;
|
29 |
-
-moz-osx-font-smoothing: grayscale;
|
30 |
-
background-image: none;
|
31 |
-
color: white;
|
32 |
-
width: auto;
|
33 |
-
margin-right: 0px;
|
34 |
-
margin-top: 2px;
|
35 |
-
}
|
36 |
-
|
37 |
-
#wpadminbar #wp-admin-bar-ecwid-main .ab-icon.ecwid-top-menu-item:before {
|
38 |
-
content: "\e603";
|
39 |
-
width: auto;
|
40 |
-
margin-right: 0px;
|
41 |
-
}
|
42 |
-
|
43 |
-
@media screen and (max-width: 782px) {
|
44 |
-
#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon.ecwid-top-menu-item {
|
45 |
-
font: 400 32px/46px 'ecwid-icons' !important;
|
46 |
-
width: 46px;
|
47 |
-
padding: 0px 2px;
|
48 |
-
text-align: center;
|
49 |
-
margin-top: 0px;
|
50 |
-
}
|
51 |
-
}
|
1 |
+
@font-face {
|
2 |
+
font-family: 'ecwid-icons';
|
3 |
+
src:url('../fonts/ecwid-icons.eot?-b8sbws');
|
4 |
+
src:url('../fonts/ecwid-icons.eot?#iefix-b8sbws') format('embedded-opentype'),
|
5 |
+
url('../fonts/ecwid-icons.woff?-b8sbws') format('woff'),
|
6 |
+
url('../fonts/ecwid-icons.ttf?-b8sbws') format('truetype'),
|
7 |
+
url('../fonts/ecwid-icons.svg?-b8sbws#ecwid-icons') format('svg');
|
8 |
+
font-weight: normal;
|
9 |
+
font-style: normal;
|
10 |
+
}
|
11 |
+
|
12 |
+
[class^="icon-"], [class*=" icon-"] {
|
13 |
+
font-family: 'ecwid-icons';
|
14 |
+
speak: none;
|
15 |
+
font-style: normal;
|
16 |
+
font-weight: normal;
|
17 |
+
font-variant: normal;
|
18 |
+
text-transform: none;
|
19 |
+
line-height: 1;
|
20 |
+
|
21 |
+
/* Better Font Rendering =========== */
|
22 |
+
-webkit-font-smoothing: antialiased;
|
23 |
+
-moz-osx-font-smoothing: grayscale;
|
24 |
+
}
|
25 |
+
|
26 |
+
#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon.ecwid-top-menu-item {
|
27 |
+
font: 400 20px/1 'ecwid-icons' !important;
|
28 |
+
-webkit-font-smoothing: antialiased;
|
29 |
+
-moz-osx-font-smoothing: grayscale;
|
30 |
+
background-image: none;
|
31 |
+
color: white;
|
32 |
+
width: auto;
|
33 |
+
margin-right: 0px;
|
34 |
+
margin-top: 2px;
|
35 |
+
}
|
36 |
+
|
37 |
+
#wpadminbar #wp-admin-bar-ecwid-main .ab-icon.ecwid-top-menu-item:before {
|
38 |
+
content: "\e603";
|
39 |
+
width: auto;
|
40 |
+
margin-right: 0px;
|
41 |
+
}
|
42 |
+
|
43 |
+
@media screen and (max-width: 782px) {
|
44 |
+
#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon.ecwid-top-menu-item {
|
45 |
+
font: 400 32px/46px 'ecwid-icons' !important;
|
46 |
+
width: 46px;
|
47 |
+
padding: 0px 2px;
|
48 |
+
text-align: center;
|
49 |
+
margin-top: 0px;
|
50 |
+
}
|
51 |
+
}
|
css/frontend.css
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
-
html#ecwid_html body#ecwid_body div#mini-cart-attached-to-categories.ecwid-cart-narrow-screen, div.ecwid-categories-horizontal.ecwid-categories-narrow-screen {
|
2 |
-
display: none;
|
3 |
-
}
|
4 |
-
|
5 |
-
html#ecwid_html body#ecwid_body .ecwid.ecwid-SingleProduct a ,
|
6 |
-
.ecwid-SingleProduct a div.ecwid-title {
|
7 |
-
text-decoration: none;
|
8 |
-
color: #000000;
|
9 |
-
}
|
10 |
-
|
11 |
-
html#ecwid_html body#ecwid_body .ecwid-SearchPanel input {
|
12 |
-
max-width: 300px;
|
13 |
-
}
|
14 |
-
|
15 |
-
.ecwid-shopping-cart-categories #horizontal-menu {
|
16 |
-
margin-top: 10px;
|
17 |
-
margin-bottom: 10px;
|
18 |
-
}
|
19 |
-
|
20 |
-
.ecwid-shopping-cart-categories .horizontal-menu-item {
|
21 |
-
background-image: none;
|
22 |
}
|
1 |
+
html#ecwid_html body#ecwid_body div#mini-cart-attached-to-categories.ecwid-cart-narrow-screen, div.ecwid-categories-horizontal.ecwid-categories-narrow-screen {
|
2 |
+
display: none;
|
3 |
+
}
|
4 |
+
|
5 |
+
html#ecwid_html body#ecwid_body .ecwid.ecwid-SingleProduct a ,
|
6 |
+
.ecwid-SingleProduct a div.ecwid-title {
|
7 |
+
text-decoration: none;
|
8 |
+
color: #000000;
|
9 |
+
}
|
10 |
+
|
11 |
+
html#ecwid_html body#ecwid_body .ecwid-SearchPanel input {
|
12 |
+
max-width: 300px;
|
13 |
+
}
|
14 |
+
|
15 |
+
.ecwid-shopping-cart-categories #horizontal-menu {
|
16 |
+
margin-top: 10px;
|
17 |
+
margin-bottom: 10px;
|
18 |
+
}
|
19 |
+
|
20 |
+
.ecwid-shopping-cart-categories .horizontal-menu-item {
|
21 |
+
background-image: none;
|
22 |
}
|
css/landing.css
CHANGED
@@ -1,496 +1,496 @@
|
|
1 |
-
/* http://meyerweb.com/eric/tools/css/reset/
|
2 |
-
* v2.0 | 20110126
|
3 |
-
* License: none (public domain) */
|
4 |
-
html, body, div, span, applet, object, iframe,
|
5 |
-
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
6 |
-
a, abbr, acronym, address, big, cite, code,
|
7 |
-
del, dfn, em, img, ins, kbd, q, s, samp,
|
8 |
-
small, strike, strong, sub, sup, tt, var,
|
9 |
-
b, u, i, center,
|
10 |
-
dl, dt, dd, ol, ul, li,
|
11 |
-
fieldset, form, label, legend,
|
12 |
-
table, caption, tbody, tfoot, thead, tr, th, td,
|
13 |
-
article, aside, canvas, details, embed,
|
14 |
-
figure, figcaption, footer, header, hgroup,
|
15 |
-
menu, nav, output, ruby, section, summary,
|
16 |
-
time, mark, audio, video, button {
|
17 |
-
margin: 0;
|
18 |
-
padding: 0;
|
19 |
-
border: 0;
|
20 |
-
font-size: 100%;
|
21 |
-
font: inherit;
|
22 |
-
box-sizing: border-box;
|
23 |
-
vertical-align: baseline; }
|
24 |
-
|
25 |
-
/* HTML5 display-role reset for older browsers */
|
26 |
-
article, aside, details, figcaption, figure,
|
27 |
-
footer, header, hgroup, menu, nav, section {
|
28 |
-
display: block; }
|
29 |
-
|
30 |
-
body {
|
31 |
-
line-height: 1; }
|
32 |
-
|
33 |
-
ol, ul {
|
34 |
-
list-style: none; }
|
35 |
-
|
36 |
-
blockquote, q {
|
37 |
-
quotes: none; }
|
38 |
-
|
39 |
-
blockquote:before, blockquote:after,
|
40 |
-
q:before, q:after {
|
41 |
-
content: "";
|
42 |
-
content: none; }
|
43 |
-
|
44 |
-
table {
|
45 |
-
border-collapse: collapse;
|
46 |
-
border-spacing: 0; }
|
47 |
-
|
48 |
-
body {
|
49 |
-
font-family: "Open sans", sans-serif;
|
50 |
-
font-weight: 400;
|
51 |
-
color: #363636;
|
52 |
-
min-width: 320px; }
|
53 |
-
|
54 |
-
.ecwid-thank {
|
55 |
-
padding-top: 36px; }
|
56 |
-
.ecwid-thank h1 {
|
57 |
-
text-align: center;
|
58 |
-
font-size: 28px;
|
59 |
-
color: #000000;
|
60 |
-
line-height: 1.4;
|
61 |
-
margin-bottom: 30px; }
|
62 |
-
@media (max-width: 767px) {
|
63 |
-
.ecwid-thank h1 {
|
64 |
-
font-size: 22px;
|
65 |
-
max-width: 490px;
|
66 |
-
padding: 0 2%;
|
67 |
-
margin: 0 auto 15px; }
|
68 |
-
.ecwid-thank h1 br {
|
69 |
-
display: none; } }
|
70 |
-
@media (max-width: 500px) {
|
71 |
-
.ecwid-thank h1 {
|
72 |
-
max-width: 320px; } }
|
73 |
-
.ecwid-thank h1 span {
|
74 |
-
display: block;
|
75 |
-
font-size: 14px;
|
76 |
-
margin-bottom: 14px; }
|
77 |
-
|
78 |
-
.ecwid-thank-steps {
|
79 |
-
margin: 0 auto 51px;
|
80 |
-
max-width: 1000px; }
|
81 |
-
@media (max-width: 767px) {
|
82 |
-
.ecwid-thank-steps {
|
83 |
-
max-width: 450px;
|
84 |
-
margin-bottom: 0;
|
85 |
-
padding: 0 2%; } }
|
86 |
-
.ecwid-thank-steps:after {
|
87 |
-
content: "";
|
88 |
-
display: table;
|
89 |
-
clear: both; }
|
90 |
-
|
91 |
-
.ecwid-thank-step {
|
92 |
-
text-align: center;
|
93 |
-
width: 33.33333%;
|
94 |
-
float: left;
|
95 |
-
position: relative;
|
96 |
-
padding: 0 2%; }
|
97 |
-
.ecwid-thank-step.active .ecwid-thank-step-image:before {
|
98 |
-
position: absolute;
|
99 |
-
content: url("../images/landing/correct.svg");
|
100 |
-
width: 17px;
|
101 |
-
left: 61%; }
|
102 |
-
.ecwid-thank-step.active .ecwid-thank-step-image img.none-active {
|
103 |
-
display: none; }
|
104 |
-
.ecwid-thank-step.active .ecwid-thank-step-image img.active {
|
105 |
-
display: inline-block; }
|
106 |
-
@media (max-width: 767px) {
|
107 |
-
.ecwid-thank-step {
|
108 |
-
display: none; } }
|
109 |
-
.ecwid-thank-step .ecwid-thank-step-image {
|
110 |
-
height: 92px;
|
111 |
-
position: relative; }
|
112 |
-
.ecwid-thank-step .ecwid-thank-step-image:after {
|
113 |
-
content: "";
|
114 |
-
position: absolute;
|
115 |
-
overflow: hidden; }
|
116 |
-
@media (min-width: 768px) {
|
117 |
-
.ecwid-thank-step .ecwid-thank-step-image:after {
|
118 |
-
top: 40px;
|
119 |
-
left: 77%;
|
120 |
-
width: 64%;
|
121 |
-
height: 7px;
|
122 |
-
background: url("../images/landing/arrow.png") center right; } }
|
123 |
-
.ecwid-thank-step img {
|
124 |
-
margin: 3px 0 10px; }
|
125 |
-
.ecwid-thank-step img.active {
|
126 |
-
display: none; }
|
127 |
-
.ecwid-thank-step h2 {
|
128 |
-
font-size: 18px;
|
129 |
-
line-height: 1.5;
|
130 |
-
margin-bottom: 6px; }
|
131 |
-
.ecwid-thank-step p {
|
132 |
-
font-size: 14px;
|
133 |
-
line-height: 1.5; }
|
134 |
-
.ecwid-thank-step.ecwid-thank-step-one img {
|
135 |
-
height: 77px; }
|
136 |
-
.ecwid-thank-step.ecwid-thank-step-two img {
|
137 |
-
height: 60px;
|
138 |
-
margin-top: 13px; }
|
139 |
-
.ecwid-thank-step.ecwid-thank-step-three .ecwid-thank-step-image:after {
|
140 |
-
display: none; }
|
141 |
-
.ecwid-thank-step.ecwid-thank-step-three h2 {
|
142 |
-
font-weight: 600; }
|
143 |
-
.ecwid-thank-step.ecwid-thank-step-three img {
|
144 |
-
height: 82px; }
|
145 |
-
|
146 |
-
.ecwid-thank-background {
|
147 |
-
background: url("../images/landing/background-think.jpg");
|
148 |
-
background-size: cover; }
|
149 |
-
@media (min-width: 768px) {
|
150 |
-
.ecwid-thank-background {
|
151 |
-
background-position: center bottom; } }
|
152 |
-
@media (min-width: 1440px) {
|
153 |
-
.ecwid-thank-background {
|
154 |
-
background-position: left -50px; } }
|
155 |
-
.ecwid-thank-background .ecwid-thank-background-tablet {
|
156 |
-
padding: 52px 5% 0; }
|
157 |
-
.ecwid-thank-background .ecwid-thank-background-tablet img {
|
158 |
-
display: block;
|
159 |
-
margin: 0 auto;
|
160 |
-
max-width: 100%; }
|
161 |
-
|
162 |
-
.ecwid-description {
|
163 |
-
padding: 0 2%; }
|
164 |
-
.ecwid-description:after {
|
165 |
-
content: "";
|
166 |
-
display: table;
|
167 |
-
clear: both; }
|
168 |
-
|
169 |
-
.ecwid-description-inner {
|
170 |
-
max-width: 930px;
|
171 |
-
margin: 0 auto;
|
172 |
-
table-layout: fixed;
|
173 |
-
width: 100%; }
|
174 |
-
@media (min-width: 768px) {
|
175 |
-
.ecwid-description-inner {
|
176 |
-
display: table;
|
177 |
-
padding-top: 35px; } }
|
178 |
-
@media (min-width: 992px) {
|
179 |
-
.ecwid-description-inner {
|
180 |
-
padding-top: 95px; } }
|
181 |
-
@media (max-width: 767px) {
|
182 |
-
.ecwid-description-inner {
|
183 |
-
display: -webkit-flex;
|
184 |
-
display: -ms-flexbox;
|
185 |
-
display: flex;
|
186 |
-
-webkit-flex-direction: column-reverse;
|
187 |
-
-ms-flex-direction: column-reverse;
|
188 |
-
flex-direction: column-reverse; } }
|
189 |
-
|
190 |
-
.ecwid-description-image {
|
191 |
-
padding-right: 5%;
|
192 |
-
vertical-align: bottom; }
|
193 |
-
@media (min-width: 768px) {
|
194 |
-
.ecwid-description-image {
|
195 |
-
display: table-cell;
|
196 |
-
width: 60%; } }
|
197 |
-
@media (min-width: 992px) {
|
198 |
-
.ecwid-description-image {
|
199 |
-
width: 65%; } }
|
200 |
-
@media (max-width: 767px) {
|
201 |
-
.ecwid-description-image {
|
202 |
-
width: 100%;
|
203 |
-
padding: 0 4%; } }
|
204 |
-
.ecwid-description-image img {
|
205 |
-
display: block;
|
206 |
-
max-width: 100%; }
|
207 |
-
@media (max-width: 767px) {
|
208 |
-
.ecwid-description-image img {
|
209 |
-
margin: 0 auto; } }
|
210 |
-
|
211 |
-
.ecwid-description-text {
|
212 |
-
padding-top: 35px;
|
213 |
-
padding-bottom: 35px; }
|
214 |
-
@media (min-width: 768px) {
|
215 |
-
.ecwid-description-text {
|
216 |
-
width: 40%;
|
217 |
-
display: table-cell;
|
218 |
-
vertical-align: middle; } }
|
219 |
-
@media (min-width: 992px) {
|
220 |
-
.ecwid-description-text {
|
221 |
-
width: 35%;
|
222 |
-
vertical-align: baseline; } }
|
223 |
-
@media (max-width: 767px) {
|
224 |
-
.ecwid-description-text {
|
225 |
-
padding: 44px 4% 0;
|
226 |
-
max-width: 500px;
|
227 |
-
margin: 0 auto 50px;
|
228 |
-
width: 100%; } }
|
229 |
-
.ecwid-description-text h2 {
|
230 |
-
line-height: 1.2;
|
231 |
-
margin-bottom: 18px; }
|
232 |
-
@media (min-width: 768px) {
|
233 |
-
.ecwid-description-text h2 {
|
234 |
-
font-size: 24px; } }
|
235 |
-
@media (min-width: 992px) {
|
236 |
-
.ecwid-description-text h2 {
|
237 |
-
font-size: 28px; } }
|
238 |
-
@media (max-width: 767px) {
|
239 |
-
.ecwid-description-text h2 {
|
240 |
-
font-size: 22px;
|
241 |
-
text-align: center; } }
|
242 |
-
.ecwid-description-text p {
|
243 |
-
font-size: 14px;
|
244 |
-
line-height: 1.5;
|
245 |
-
padding: 0.8em 0; }
|
246 |
-
|
247 |
-
.ecwid-features {
|
248 |
-
background-color: #F4F4F4;
|
249 |
-
padding: 44px 0 60px; }
|
250 |
-
@media (max-width: 767px) {
|
251 |
-
.ecwid-features {
|
252 |
-
padding-bottom: 9px; } }
|
253 |
-
.ecwid-features h2 {
|
254 |
-
font-size: 28px;
|
255 |
-
color: #1F1F1F;
|
256 |
-
font-weight: 400;
|
257 |
-
text-align: center;
|
258 |
-
margin-bottom: 62px; }
|
259 |
-
@media (max-width: 767px) {
|
260 |
-
.ecwid-features h2 {
|
261 |
-
font-size: 22px;
|
262 |
-
margin-bottom: 40px; } }
|
263 |
-
|
264 |
-
.ecwid-features-inner {
|
265 |
-
margin: 0 auto;
|
266 |
-
max-width: 930px;
|
267 |
-
padding: 0 3%; }
|
268 |
-
|
269 |
-
.ecwid-features-top {
|
270 |
-
margin-bottom: 70px; }
|
271 |
-
@media (max-width: 767px) {
|
272 |
-
.ecwid-features-top {
|
273 |
-
margin-bottom: 0; } }
|
274 |
-
.ecwid-features-top:after {
|
275 |
-
content: "";
|
276 |
-
display: table;
|
277 |
-
clear: both; }
|
278 |
-
.ecwid-features-top .ecwid-features-top-item {
|
279 |
-
width: 50%;
|
280 |
-
float: left;
|
281 |
-
text-align: center; }
|
282 |
-
@media (max-width: 767px) {
|
283 |
-
.ecwid-features-top .ecwid-features-top-item {
|
284 |
-
padding: 0 2%;
|
285 |
-
width: 100%;
|
286 |
-
max-width: 320px;
|
287 |
-
margin: 0 auto 35px;
|
288 |
-
float: none; } }
|
289 |
-
.ecwid-features-top .ecwid-features-top-item .ecwid-features-top-item-image {
|
290 |
-
height: 82px; }
|
291 |
-
@media (max-width: 767px) {
|
292 |
-
.ecwid-features-top .ecwid-features-top-item .ecwid-features-top-item-image {
|
293 |
-
height: 75px; } }
|
294 |
-
.ecwid-features-top .ecwid-features-top-item img {
|
295 |
-
height: 61px;
|
296 |
-
margin-bottom: 36px; }
|
297 |
-
@media (max-width: 767px) {
|
298 |
-
.ecwid-features-top .ecwid-features-top-item img {
|
299 |
-
margin-bottom: 20px; } }
|
300 |
-
.ecwid-features-top .ecwid-features-top-item img.gift {
|
301 |
-
height: 80px;
|
302 |
-
margin-top: -10px; }
|
303 |
-
.ecwid-features-top .ecwid-features-top-item h3 {
|
304 |
-
font-size: 21px;
|
305 |
-
font-weight: 600;
|
306 |
-
margin-bottom: 15px; }
|
307 |
-
@media (max-width: 767px) {
|
308 |
-
.ecwid-features-top .ecwid-features-top-item h3 {
|
309 |
-
font-size: 18px;
|
310 |
-
margin-bottom: 6px; } }
|
311 |
-
.ecwid-features-top .ecwid-features-top-item p {
|
312 |
-
font-size: 14px;
|
313 |
-
line-height: 1.45; }
|
314 |
-
@media (max-width: 767px) {
|
315 |
-
.ecwid-features-top .ecwid-features-top-item p {
|
316 |
-
font-size: 13px; } }
|
317 |
-
|
318 |
-
.ecwid-features-bottom:after {
|
319 |
-
content: "";
|
320 |
-
display: table;
|
321 |
-
clear: both; }
|
322 |
-
.ecwid-features-bottom .ecwid-features-bottom-item {
|
323 |
-
width: 33.33333%;
|
324 |
-
float: left;
|
325 |
-
text-align: center; }
|
326 |
-
@media (max-width: 767px) {
|
327 |
-
.ecwid-features-bottom .ecwid-features-bottom-item {
|
328 |
-
float: none;
|
329 |
-
width: 100%;
|
330 |
-
max-width: 270px;
|
331 |
-
margin: 0 auto 35px; } }
|
332 |
-
.ecwid-features-bottom .ecwid-features-bottom-item .ecwid-features-bottom-item-image {
|
333 |
-
height: 82px; }
|
334 |
-
@media (max-width: 767px) {
|
335 |
-
.ecwid-features-bottom .ecwid-features-bottom-item .ecwid-features-bottom-item-image {
|
336 |
-
height: 75px; } }
|
337 |
-
.ecwid-features-bottom .ecwid-features-bottom-item img {
|
338 |
-
height: 63px;
|
339 |
-
margin-bottom: 17px; }
|
340 |
-
.ecwid-features-bottom .ecwid-features-bottom-item img.secure {
|
341 |
-
height: 67px; }
|
342 |
-
@media (min-width: 768px) {
|
343 |
-
.ecwid-features-bottom .ecwid-features-bottom-item img.secure {
|
344 |
-
margin-top: -8px; } }
|
345 |
-
.ecwid-features-bottom .ecwid-features-bottom-item h3 {
|
346 |
-
font-size: 18px;
|
347 |
-
font-weight: 600;
|
348 |
-
margin-bottom: 6px; }
|
349 |
-
.ecwid-features-bottom .ecwid-features-bottom-item p {
|
350 |
-
font-size: 14px;
|
351 |
-
line-height: 1.45; }
|
352 |
-
@media (max-width: 767px) {
|
353 |
-
.ecwid-features-bottom .ecwid-features-bottom-item p {
|
354 |
-
font-size: 13px; }
|
355 |
-
.ecwid-features-bottom .ecwid-features-bottom-item p br {
|
356 |
-
display: none; } }
|
357 |
-
|
358 |
-
.ecwid-start {
|
359 |
-
text-align: center;
|
360 |
-
padding: 64px 0 194px; }
|
361 |
-
@media (max-width: 767px) {
|
362 |
-
.ecwid-start {
|
363 |
-
padding: 44px 0 64px; }
|
364 |
-
.ecwid-start .ecwid-button .button {
|
365 |
-
margin-bottom: 29px; } }
|
366 |
-
.ecwid-start:after {
|
367 |
-
content: "";
|
368 |
-
display: table;
|
369 |
-
clear: both; }
|
370 |
-
.ecwid-start h2 {
|
371 |
-
font-size: 28px;
|
372 |
-
line-height: 1.4;
|
373 |
-
margin-bottom: 32px; }
|
374 |
-
@media (max-width: 767px) {
|
375 |
-
.ecwid-start h2 {
|
376 |
-
font-size: 22px;
|
377 |
-
padding: 0 2%;
|
378 |
-
margin-bottom: 1px; } }
|
379 |
-
|
380 |
-
.ecwid-button {
|
381 |
-
text-align: center; }
|
382 |
-
.ecwid-button a,
|
383 |
-
.ecwid-button button {
|
384 |
-
background-image: none; }
|
385 |
-
.ecwid-button .button {
|
386 |
-
border-radius: 4px;
|
387 |
-
border: 0;
|
388 |
-
font-size: 20px;
|
389 |
-
color: #ffffff;
|
390 |
-
line-height: 2.6;
|
391 |
-
letter-spacing: 0.01em;
|
392 |
-
padding: 0.12em 1.5em;
|
393 |
-
margin-bottom: 46px;
|
394 |
-
outline: none;
|
395 |
-
cursor: pointer; }
|
396 |
-
@media (max-width: 767px) {
|
397 |
-
.ecwid-button .button {
|
398 |
-
font-size: 18px;
|
399 |
-
margin-top: 25px;
|
400 |
-
margin-bottom: 14px;
|
401 |
-
padding: 0.12em 1em; } }
|
402 |
-
@media (max-width: 500px) {
|
403 |
-
.ecwid-button .button {
|
404 |
-
font-size: 16px; } }
|
405 |
-
.ecwid-button .button:hover {
|
406 |
-
opacity: 0.8; }
|
407 |
-
.ecwid-button .button.button--blue {
|
408 |
-
background-color: #189DEE; }
|
409 |
-
.ecwid-button .button.button--green {
|
410 |
-
background-color: #59BB00; }
|
411 |
-
.ecwid-button .button-description-mobile {
|
412 |
-
font-size: 12px;
|
413 |
-
line-height: 1.5;
|
414 |
-
margin-bottom: 38px;
|
415 |
-
color: #999; }
|
416 |
-
.ecwid-button .button-description-mobile h3 {
|
417 |
-
font-size: 18px;
|
418 |
-
color: #363636;
|
419 |
-
font-weight: 600;
|
420 |
-
margin-bottom: -70px; }
|
421 |
-
@media (min-width: 768px) {
|
422 |
-
.ecwid-button .button-description-mobile {
|
423 |
-
display: none; } }
|
424 |
-
.ecwid-button .ecwid-button-description {
|
425 |
-
font-size: 14px; }
|
426 |
-
.ecwid-button .ecwid-button-description a {
|
427 |
-
display: block;
|
428 |
-
font-size: 20px;
|
429 |
-
color: #288FB5;
|
430 |
-
margin-top: 12px;
|
431 |
-
text-decoration: none; }
|
432 |
-
.ecwid-button .ecwid-button-description a:hover {
|
433 |
-
opacity: 0.8; }
|
434 |
-
@media (max-width: 767px) {
|
435 |
-
.ecwid-button .ecwid-button-description a {
|
436 |
-
margin-bottom: 10px;
|
437 |
-
font-size: 18px; } }
|
438 |
-
|
439 |
-
|
440 |
-
/*
|
441 |
-
* Adapt landing to wordpress actual environment
|
442 |
-
*/
|
443 |
-
.ecwid-button .button {
|
444 |
-
height: auto;
|
445 |
-
}
|
446 |
-
|
447 |
-
#wpcontent {
|
448 |
-
background: white;
|
449 |
-
padding-left: 0px;
|
450 |
-
}
|
451 |
-
ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu>li.current>a.current:after
|
452 |
-
{
|
453 |
-
border-right-color:white;
|
454 |
-
}
|
455 |
-
|
456 |
-
.ecwid-landing.register .on-connect {
|
457 |
-
display: none;
|
458 |
-
}
|
459 |
-
|
460 |
-
|
461 |
-
.ecwid-landing.connect .on-register {
|
462 |
-
display: none;
|
463 |
-
}
|
464 |
-
|
465 |
-
.ecwid-landing .on-error {
|
466 |
-
display: none;
|
467 |
-
}
|
468 |
-
|
469 |
-
.ecwid-landing.conn-error .on-error {
|
470 |
-
display: inherit;
|
471 |
-
}
|
472 |
-
|
473 |
-
.ecwid-landing.conn-error .on-no-error {
|
474 |
-
display: none;
|
475 |
-
}
|
476 |
-
|
477 |
-
.ecwid-button .ecwid-connection-error {
|
478 |
-
color: red;
|
479 |
-
}
|
480 |
-
|
481 |
-
@media (min-width: 768px) {
|
482 |
-
.ecwid-button .ecwid-connection-error {
|
483 |
-
position: relative;
|
484 |
-
top: -30px;
|
485 |
-
margin-bottom: 8px;
|
486 |
-
}
|
487 |
-
}
|
488 |
-
|
489 |
-
.ecwid-landing a:focus {
|
490 |
-
outline: 0px none;
|
491 |
-
box-shadow: none;
|
492 |
-
}
|
493 |
-
|
494 |
-
.ecwid-landing .button:hover {
|
495 |
-
color: white;
|
496 |
}
|
1 |
+
/* http://meyerweb.com/eric/tools/css/reset/
|
2 |
+
* v2.0 | 20110126
|
3 |
+
* License: none (public domain) */
|
4 |
+
html, body, div, span, applet, object, iframe,
|
5 |
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
6 |
+
a, abbr, acronym, address, big, cite, code,
|
7 |
+
del, dfn, em, img, ins, kbd, q, s, samp,
|
8 |
+
small, strike, strong, sub, sup, tt, var,
|
9 |
+
b, u, i, center,
|
10 |
+
dl, dt, dd, ol, ul, li,
|
11 |
+
fieldset, form, label, legend,
|
12 |
+
table, caption, tbody, tfoot, thead, tr, th, td,
|
13 |
+
article, aside, canvas, details, embed,
|
14 |
+
figure, figcaption, footer, header, hgroup,
|
15 |
+
menu, nav, output, ruby, section, summary,
|
16 |
+
time, mark, audio, video, button {
|
17 |
+
margin: 0;
|
18 |
+
padding: 0;
|
19 |
+
border: 0;
|
20 |
+
font-size: 100%;
|
21 |
+
font: inherit;
|
22 |
+
box-sizing: border-box;
|
23 |
+
vertical-align: baseline; }
|
24 |
+
|
25 |
+
/* HTML5 display-role reset for older browsers */
|
26 |
+
article, aside, details, figcaption, figure,
|
27 |
+
footer, header, hgroup, menu, nav, section {
|
28 |
+
display: block; }
|
29 |
+
|
30 |
+
body {
|
31 |
+
line-height: 1; }
|
32 |
+
|
33 |
+
ol, ul {
|
34 |
+
list-style: none; }
|
35 |
+
|
36 |
+
blockquote, q {
|
37 |
+
quotes: none; }
|
38 |
+
|
39 |
+
blockquote:before, blockquote:after,
|
40 |
+
q:before, q:after {
|
41 |
+
content: "";
|
42 |
+
content: none; }
|
43 |
+
|
44 |
+
table {
|
45 |
+
border-collapse: collapse;
|
46 |
+
border-spacing: 0; }
|
47 |
+
|
48 |
+
body {
|
49 |
+
font-family: "Open sans", sans-serif;
|
50 |
+
font-weight: 400;
|
51 |
+
color: #363636;
|
52 |
+
min-width: 320px; }
|
53 |
+
|
54 |
+
.ecwid-thank {
|
55 |
+
padding-top: 36px; }
|
56 |
+
.ecwid-thank h1 {
|
57 |
+
text-align: center;
|
58 |
+
font-size: 28px;
|
59 |
+
color: #000000;
|
60 |
+
line-height: 1.4;
|
61 |
+
margin-bottom: 30px; }
|
62 |
+
@media (max-width: 767px) {
|
63 |
+
.ecwid-thank h1 {
|
64 |
+
font-size: 22px;
|
65 |
+
max-width: 490px;
|
66 |
+
padding: 0 2%;
|
67 |
+
margin: 0 auto 15px; }
|
68 |
+
.ecwid-thank h1 br {
|
69 |
+
display: none; } }
|
70 |
+
@media (max-width: 500px) {
|
71 |
+
.ecwid-thank h1 {
|
72 |
+
max-width: 320px; } }
|
73 |
+
.ecwid-thank h1 span {
|
74 |
+
display: block;
|
75 |
+
font-size: 14px;
|
76 |
+
margin-bottom: 14px; }
|
77 |
+
|
78 |
+
.ecwid-thank-steps {
|
79 |
+
margin: 0 auto 51px;
|
80 |
+
max-width: 1000px; }
|
81 |
+
@media (max-width: 767px) {
|
82 |
+
.ecwid-thank-steps {
|
83 |
+
max-width: 450px;
|
84 |
+
margin-bottom: 0;
|
85 |
+
padding: 0 2%; } }
|
86 |
+
.ecwid-thank-steps:after {
|
87 |
+
content: "";
|
88 |
+
display: table;
|
89 |
+
clear: both; }
|
90 |
+
|
91 |
+
.ecwid-thank-step {
|
92 |
+
text-align: center;
|
93 |
+
width: 33.33333%;
|
94 |
+
float: left;
|
95 |
+
position: relative;
|
96 |
+
padding: 0 2%; }
|
97 |
+
.ecwid-thank-step.active .ecwid-thank-step-image:before {
|
98 |
+
position: absolute;
|
99 |
+
content: url("../images/landing/correct.svg");
|
100 |
+
width: 17px;
|
101 |
+
left: 61%; }
|
102 |
+
.ecwid-thank-step.active .ecwid-thank-step-image img.none-active {
|
103 |
+
display: none; }
|
104 |
+
.ecwid-thank-step.active .ecwid-thank-step-image img.active {
|
105 |
+
display: inline-block; }
|
106 |
+
@media (max-width: 767px) {
|
107 |
+
.ecwid-thank-step {
|
108 |
+
display: none; } }
|
109 |
+
.ecwid-thank-step .ecwid-thank-step-image {
|
110 |
+
height: 92px;
|
111 |
+
position: relative; }
|
112 |
+
.ecwid-thank-step .ecwid-thank-step-image:after {
|
113 |
+
content: "";
|
114 |
+
position: absolute;
|
115 |
+
overflow: hidden; }
|
116 |
+
@media (min-width: 768px) {
|
117 |
+
.ecwid-thank-step .ecwid-thank-step-image:after {
|
118 |
+
top: 40px;
|
119 |
+
left: 77%;
|
120 |
+
width: 64%;
|
121 |
+
height: 7px;
|
122 |
+
background: url("../images/landing/arrow.png") center right; } }
|
123 |
+
.ecwid-thank-step img {
|
124 |
+
margin: 3px 0 10px; }
|
125 |
+
.ecwid-thank-step img.active {
|
126 |
+
display: none; }
|
127 |
+
.ecwid-thank-step h2 {
|
128 |
+
font-size: 18px;
|
129 |
+
line-height: 1.5;
|
130 |
+
margin-bottom: 6px; }
|
131 |
+
.ecwid-thank-step p {
|
132 |
+
font-size: 14px;
|
133 |
+
line-height: 1.5; }
|
134 |
+
.ecwid-thank-step.ecwid-thank-step-one img {
|
135 |
+
height: 77px; }
|
136 |
+
.ecwid-thank-step.ecwid-thank-step-two img {
|
137 |
+
height: 60px;
|
138 |
+
margin-top: 13px; }
|
139 |
+
.ecwid-thank-step.ecwid-thank-step-three .ecwid-thank-step-image:after {
|
140 |
+
display: none; }
|
141 |
+
.ecwid-thank-step.ecwid-thank-step-three h2 {
|
142 |
+
font-weight: 600; }
|
143 |
+
.ecwid-thank-step.ecwid-thank-step-three img {
|
144 |
+
height: 82px; }
|
145 |
+
|
146 |
+
.ecwid-thank-background {
|
147 |
+
background: url("../images/landing/background-think.jpg");
|
148 |
+
background-size: cover; }
|
149 |
+
@media (min-width: 768px) {
|
150 |
+
.ecwid-thank-background {
|
151 |
+
background-position: center bottom; } }
|
152 |
+
@media (min-width: 1440px) {
|
153 |
+
.ecwid-thank-background {
|
154 |
+
background-position: left -50px; } }
|
155 |
+
.ecwid-thank-background .ecwid-thank-background-tablet {
|
156 |
+
padding: 52px 5% 0; }
|
157 |
+
.ecwid-thank-background .ecwid-thank-background-tablet img {
|
158 |
+
display: block;
|
159 |
+
margin: 0 auto;
|
160 |
+
max-width: 100%; }
|
161 |
+
|
162 |
+
.ecwid-description {
|
163 |
+
padding: 0 2%; }
|
164 |
+
.ecwid-description:after {
|
165 |
+
content: "";
|
166 |
+
display: table;
|
167 |
+
clear: both; }
|
168 |
+
|
169 |
+
.ecwid-description-inner {
|
170 |
+
max-width: 930px;
|
171 |
+
margin: 0 auto;
|
172 |
+
table-layout: fixed;
|
173 |
+
width: 100%; }
|
174 |
+
@media (min-width: 768px) {
|
175 |
+
.ecwid-description-inner {
|
176 |
+
display: table;
|
177 |
+
padding-top: 35px; } }
|
178 |
+
@media (min-width: 992px) {
|
179 |
+
.ecwid-description-inner {
|
180 |
+
padding-top: 95px; } }
|
181 |
+
@media (max-width: 767px) {
|
182 |
+
.ecwid-description-inner {
|
183 |
+
display: -webkit-flex;
|
184 |
+
display: -ms-flexbox;
|
185 |
+
display: flex;
|
186 |
+
-webkit-flex-direction: column-reverse;
|
187 |
+
-ms-flex-direction: column-reverse;
|
188 |
+
flex-direction: column-reverse; } }
|
189 |
+
|
190 |
+
.ecwid-description-image {
|
191 |
+
padding-right: 5%;
|
192 |
+
vertical-align: bottom; }
|
193 |
+
@media (min-width: 768px) {
|
194 |
+
.ecwid-description-image {
|
195 |
+
display: table-cell;
|
196 |
+
width: 60%; } }
|
197 |
+
@media (min-width: 992px) {
|
198 |
+
.ecwid-description-image {
|
199 |
+
width: 65%; } }
|
200 |
+
@media (max-width: 767px) {
|
201 |
+
.ecwid-description-image {
|
202 |
+
width: 100%;
|
203 |
+
padding: 0 4%; } }
|
204 |
+
.ecwid-description-image img {
|
205 |
+
display: block;
|
206 |
+
max-width: 100%; }
|
207 |
+
@media (max-width: 767px) {
|
208 |
+
.ecwid-description-image img {
|
209 |
+
margin: 0 auto; } }
|
210 |
+
|
211 |
+
.ecwid-description-text {
|
212 |
+
padding-top: 35px;
|
213 |
+
padding-bottom: 35px; }
|
214 |
+
@media (min-width: 768px) {
|
215 |
+
.ecwid-description-text {
|
216 |
+
width: 40%;
|
217 |
+
display: table-cell;
|
218 |
+
vertical-align: middle; } }
|
219 |
+
@media (min-width: 992px) {
|
220 |
+
.ecwid-description-text {
|
221 |
+
width: 35%;
|
222 |
+
vertical-align: baseline; } }
|
223 |
+
@media (max-width: 767px) {
|
224 |
+
.ecwid-description-text {
|
225 |
+
padding: 44px 4% 0;
|
226 |
+
max-width: 500px;
|
227 |
+
margin: 0 auto 50px;
|
228 |
+
width: 100%; } }
|
229 |
+
.ecwid-description-text h2 {
|
230 |
+
line-height: 1.2;
|
231 |
+
margin-bottom: 18px; }
|
232 |
+
@media (min-width: 768px) {
|
233 |
+
.ecwid-description-text h2 {
|
234 |
+
font-size: 24px; } }
|
235 |
+
@media (min-width: 992px) {
|
236 |
+
.ecwid-description-text h2 {
|
237 |
+
font-size: 28px; } }
|
238 |
+
@media (max-width: 767px) {
|
239 |
+
.ecwid-description-text h2 {
|
240 |
+
font-size: 22px;
|
241 |
+
text-align: center; } }
|
242 |
+
.ecwid-description-text p {
|
243 |
+
font-size: 14px;
|
244 |
+
line-height: 1.5;
|
245 |
+
padding: 0.8em 0; }
|
246 |
+
|
247 |
+
.ecwid-features {
|
248 |
+
background-color: #F4F4F4;
|
249 |
+
padding: 44px 0 60px; }
|
250 |
+
@media (max-width: 767px) {
|
251 |
+
.ecwid-features {
|
252 |
+
padding-bottom: 9px; } }
|
253 |
+
.ecwid-features h2 {
|
254 |
+
font-size: 28px;
|
255 |
+
color: #1F1F1F;
|
256 |
+
font-weight: 400;
|
257 |
+
text-align: center;
|
258 |
+
margin-bottom: 62px; }
|
259 |
+
@media (max-width: 767px) {
|
260 |
+
.ecwid-features h2 {
|
261 |
+
font-size: 22px;
|
262 |
+
margin-bottom: 40px; } }
|
263 |
+
|
264 |
+
.ecwid-features-inner {
|
265 |
+
margin: 0 auto;
|
266 |
+
max-width: 930px;
|
267 |
+
padding: 0 3%; }
|
268 |
+
|
269 |
+
.ecwid-features-top {
|
270 |
+
margin-bottom: 70px; }
|
271 |
+
@media (max-width: 767px) {
|
272 |
+
.ecwid-features-top {
|
273 |
+
margin-bottom: 0; } }
|
274 |
+
.ecwid-features-top:after {
|
275 |
+
content: "";
|
276 |
+
display: table;
|
277 |
+
clear: both; }
|
278 |
+
.ecwid-features-top .ecwid-features-top-item {
|
279 |
+
width: 50%;
|
280 |
+
float: left;
|
281 |
+
text-align: center; }
|
282 |
+
@media (max-width: 767px) {
|
283 |
+
.ecwid-features-top .ecwid-features-top-item {
|
284 |
+
padding: 0 2%;
|
285 |
+
width: 100%;
|
286 |
+
max-width: 320px;
|
287 |
+
margin: 0 auto 35px;
|
288 |
+
float: none; } }
|
289 |
+
.ecwid-features-top .ecwid-features-top-item .ecwid-features-top-item-image {
|
290 |
+
height: 82px; }
|
291 |
+
@media (max-width: 767px) {
|
292 |
+
.ecwid-features-top .ecwid-features-top-item .ecwid-features-top-item-image {
|
293 |
+
height: 75px; } }
|
294 |
+
.ecwid-features-top .ecwid-features-top-item img {
|
295 |
+
height: 61px;
|
296 |
+
margin-bottom: 36px; }
|
297 |
+
@media (max-width: 767px) {
|
298 |
+
.ecwid-features-top .ecwid-features-top-item img {
|
299 |
+
margin-bottom: 20px; } }
|
300 |
+
.ecwid-features-top .ecwid-features-top-item img.gift {
|
301 |
+
height: 80px;
|
302 |
+
margin-top: -10px; }
|
303 |
+
.ecwid-features-top .ecwid-features-top-item h3 {
|
304 |
+
font-size: 21px;
|
305 |
+
font-weight: 600;
|
306 |
+
margin-bottom: 15px; }
|
307 |
+
@media (max-width: 767px) {
|
308 |
+
.ecwid-features-top .ecwid-features-top-item h3 {
|
309 |
+
font-size: 18px;
|
310 |
+
margin-bottom: 6px; } }
|
311 |
+
.ecwid-features-top .ecwid-features-top-item p {
|
312 |
+
font-size: 14px;
|
313 |
+
line-height: 1.45; }
|
314 |
+
@media (max-width: 767px) {
|
315 |
+
.ecwid-features-top .ecwid-features-top-item p {
|
316 |
+
font-size: 13px; } }
|
317 |
+
|
318 |
+
.ecwid-features-bottom:after {
|
319 |
+
content: "";
|
320 |
+
display: table;
|
321 |
+
clear: both; }
|
322 |
+
.ecwid-features-bottom .ecwid-features-bottom-item {
|
323 |
+
width: 33.33333%;
|
324 |
+
float: left;
|
325 |
+
text-align: center; }
|
326 |
+
@media (max-width: 767px) {
|
327 |
+
.ecwid-features-bottom .ecwid-features-bottom-item {
|
328 |
+
float: none;
|
329 |
+
width: 100%;
|
330 |
+
max-width: 270px;
|
331 |
+
margin: 0 auto 35px; } }
|
332 |
+
.ecwid-features-bottom .ecwid-features-bottom-item .ecwid-features-bottom-item-image {
|
333 |
+
height: 82px; }
|
334 |
+
@media (max-width: 767px) {
|
335 |
+
.ecwid-features-bottom .ecwid-features-bottom-item .ecwid-features-bottom-item-image {
|
336 |
+
height: 75px; } }
|
337 |
+
.ecwid-features-bottom .ecwid-features-bottom-item img {
|
338 |
+
height: 63px;
|
339 |
+
margin-bottom: 17px; }
|
340 |
+
.ecwid-features-bottom .ecwid-features-bottom-item img.secure {
|
341 |
+
height: 67px; }
|
342 |
+
@media (min-width: 768px) {
|
343 |
+
.ecwid-features-bottom .ecwid-features-bottom-item img.secure {
|
344 |
+
margin-top: -8px; } }
|
345 |
+
.ecwid-features-bottom .ecwid-features-bottom-item h3 {
|
346 |
+
font-size: 18px;
|
347 |
+
font-weight: 600;
|
348 |
+
margin-bottom: 6px; }
|
349 |
+
.ecwid-features-bottom .ecwid-features-bottom-item p {
|
350 |
+
font-size: 14px;
|
351 |
+
line-height: 1.45; }
|
352 |
+
@media (max-width: 767px) {
|
353 |
+
.ecwid-features-bottom .ecwid-features-bottom-item p {
|
354 |
+
font-size: 13px; }
|
355 |
+
.ecwid-features-bottom .ecwid-features-bottom-item p br {
|
356 |
+
display: none; } }
|
357 |
+
|
358 |
+
.ecwid-start {
|
359 |
+
text-align: center;
|
360 |
+
padding: 64px 0 194px; }
|
361 |
+
@media (max-width: 767px) {
|
362 |
+
.ecwid-start {
|
363 |
+
padding: 44px 0 64px; }
|
364 |
+
.ecwid-start .ecwid-button .button {
|
365 |
+
margin-bottom: 29px; } }
|
366 |
+
.ecwid-start:after {
|
367 |
+
content: "";
|
368 |
+
display: table;
|
369 |
+
clear: both; }
|
370 |
+
.ecwid-start h2 {
|
371 |
+
font-size: 28px;
|
372 |
+
line-height: 1.4;
|
373 |
+
margin-bottom: 32px; }
|
374 |
+
@media (max-width: 767px) {
|
375 |
+
.ecwid-start h2 {
|
376 |
+
font-size: 22px;
|
377 |
+
padding: 0 2%;
|
378 |
+
margin-bottom: 1px; } }
|
379 |
+
|
380 |
+
.ecwid-button {
|
381 |
+
text-align: center; }
|
382 |
+
.ecwid-button a,
|
383 |
+
.ecwid-button button {
|
384 |
+
background-image: none; }
|
385 |
+
.ecwid-button .button {
|
386 |
+
border-radius: 4px;
|
387 |
+
border: 0;
|
388 |
+
font-size: 20px;
|
389 |
+
color: #ffffff;
|
390 |
+
line-height: 2.6;
|
391 |
+
letter-spacing: 0.01em;
|
392 |
+
padding: 0.12em 1.5em;
|
393 |
+
margin-bottom: 46px;
|
394 |
+
outline: none;
|
395 |
+
cursor: pointer; }
|
396 |
+
@media (max-width: 767px) {
|
397 |
+
.ecwid-button .button {
|
398 |
+
font-size: 18px;
|
399 |
+
margin-top: 25px;
|
400 |
+
margin-bottom: 14px;
|
401 |
+
padding: 0.12em 1em; } }
|
402 |
+
@media (max-width: 500px) {
|
403 |
+
.ecwid-button .button {
|
404 |
+
font-size: 16px; } }
|
405 |
+
.ecwid-button .button:hover {
|
406 |
+
opacity: 0.8; }
|
407 |
+
.ecwid-button .button.button--blue {
|
408 |
+
background-color: #189DEE; }
|
409 |
+
.ecwid-button .button.button--green {
|
410 |
+
background-color: #59BB00; }
|
411 |
+
.ecwid-button .button-description-mobile {
|
412 |
+
font-size: 12px;
|
413 |
+
line-height: 1.5;
|
414 |
+
margin-bottom: 38px;
|
415 |
+
color: #999; }
|
416 |
+
.ecwid-button .button-description-mobile h3 {
|
417 |
+
font-size: 18px;
|
418 |
+
color: #363636;
|
419 |
+
font-weight: 600;
|
420 |
+
margin-bottom: -70px; }
|
421 |
+
@media (min-width: 768px) {
|
422 |
+
.ecwid-button .button-description-mobile {
|
423 |
+
display: none; } }
|
424 |
+
.ecwid-button .ecwid-button-description {
|
425 |
+
font-size: 14px; }
|
426 |
+
.ecwid-button .ecwid-button-description a {
|
427 |
+
display: block;
|
428 |
+
font-size: 20px;
|
429 |
+
color: #288FB5;
|
430 |
+
margin-top: 12px;
|
431 |
+
text-decoration: none; }
|
432 |
+
.ecwid-button .ecwid-button-description a:hover {
|
433 |
+
opacity: 0.8; }
|
434 |
+
@media (max-width: 767px) {
|
435 |
+
.ecwid-button .ecwid-button-description a {
|
436 |
+
margin-bottom: 10px;
|
437 |
+
font-size: 18px; } }
|
438 |
+
|
439 |
+
|
440 |
+
/*
|
441 |
+
* Adapt landing to wordpress actual environment
|
442 |
+
*/
|
443 |
+
.ecwid-button .button {
|
444 |
+
height: auto;
|
445 |
+
}
|
446 |
+
|
447 |
+
#wpcontent {
|
448 |
+
background: white;
|
449 |
+
padding-left: 0px;
|
450 |
+
}
|
451 |
+
ul#adminmenu a.wp-has-current-submenu:after, ul#adminmenu>li.current>a.current:after
|
452 |
+
{
|
453 |
+
border-right-color:white;
|
454 |
+
}
|
455 |
+
|
456 |
+
.ecwid-landing.register .on-connect {
|
457 |
+
display: none;
|
458 |
+
}
|
459 |
+
|
460 |
+
|
461 |
+
.ecwid-landing.connect .on-register {
|
462 |
+
display: none;
|
463 |
+
}
|
464 |
+
|
465 |
+
.ecwid-landing .on-error {
|
466 |
+
display: none;
|
467 |
+
}
|
468 |
+
|
469 |
+
.ecwid-landing.conn-error .on-error {
|
470 |
+
display: inherit;
|
471 |
+
}
|
472 |
+
|
473 |
+
.ecwid-landing.conn-error .on-no-error {
|
474 |
+
display: none;
|
475 |
+
}
|
476 |
+
|
477 |
+
.ecwid-button .ecwid-connection-error {
|
478 |
+
color: red;
|
479 |
+
}
|
480 |
+
|
481 |
+
@media (min-width: 768px) {
|
482 |
+
.ecwid-button .ecwid-connection-error {
|
483 |
+
position: relative;
|
484 |
+
top: -30px;
|
485 |
+
margin-bottom: 8px;
|
486 |
+
}
|
487 |
+
}
|
488 |
+
|
489 |
+
.ecwid-landing a:focus {
|
490 |
+
outline: 0px none;
|
491 |
+
box-shadow: none;
|
492 |
+
}
|
493 |
+
|
494 |
+
.ecwid-landing .button:hover {
|
495 |
+
color: white;
|
496 |
}
|
css/nav-menu.css
CHANGED
@@ -1,54 +1,54 @@
|
|
1 |
-
#update-nav-menu ul.menu li.menu-item.ecwid-link .field-url
|
2 |
-
{
|
3 |
-
display: none;
|
4 |
-
}
|
5 |
-
|
6 |
-
#update-nav-menu ul.menu li.menu-item.ecwid-link .ecwid-reset-categories-cache {
|
7 |
-
padding: 1px 2px;
|
8 |
-
margin: 6px 0;
|
9 |
-
line-height: 15px;
|
10 |
-
text-decoration: none;
|
11 |
-
border-bottom: 1px solid #0073aa;
|
12 |
-
}
|
13 |
-
|
14 |
-
#update-nav-menu ul.menu li.menu-item.ecwid-link .ecwid-reset-categories-cache-updated {
|
15 |
-
display: none;
|
16 |
-
padding: 1px 2px;
|
17 |
-
margin: 6px 0;
|
18 |
-
line-height: 15px;
|
19 |
-
text-decoration: none;
|
20 |
-
cursor: default;
|
21 |
-
color: #62ae29;
|
22 |
-
position: relative;
|
23 |
-
left: 20px;
|
24 |
-
}
|
25 |
-
#update-nav-menu ul.menu li.menu-item.ecwid-link .ecwid-reset-categories-cache-updated:before {
|
26 |
-
content: "\f147";
|
27 |
-
font: 20px 'dashicons';
|
28 |
-
position: absolute;
|
29 |
-
top: 6px;
|
30 |
-
left: -20px;
|
31 |
-
line-height: 10px;
|
32 |
-
}
|
33 |
-
|
34 |
-
#update-nav-menu ul.menu li.menu-item.ecwid-link .ecwid-reset-categories-cache.cache-cleared:not(:hover) {
|
35 |
-
color: #999;
|
36 |
-
border-bottom-color:#999;
|
37 |
-
}
|
38 |
-
|
39 |
-
#update-nav-menu ul.menu li.menu-item.ecwid-link .ecwid-reset-categories-cache.cache-cleared:hover {
|
40 |
-
color:#666;
|
41 |
-
border-bottom-color:#666;
|
42 |
-
}
|
43 |
-
|
44 |
-
#update-nav-menu .ecwid-store-with-cats-message {
|
45 |
-
float: left;
|
46 |
-
font-style: italic;
|
47 |
-
color: #666;
|
48 |
-
margin-bottom: 5px;
|
49 |
-
}
|
50 |
-
|
51 |
-
#update-nav-menu .ecwid-store-with-cats-reset-cache {
|
52 |
-
float: left;
|
53 |
-
margin-top: 0px;
|
54 |
}
|
1 |
+
#update-nav-menu ul.menu li.menu-item.ecwid-link .field-url
|
2 |
+
{
|
3 |
+
display: none;
|
4 |
+
}
|
5 |
+
|
6 |
+
#update-nav-menu ul.menu li.menu-item.ecwid-link .ecwid-reset-categories-cache {
|
7 |
+
padding: 1px 2px;
|
8 |
+
margin: 6px 0;
|
9 |
+
line-height: 15px;
|
10 |
+
text-decoration: none;
|
11 |
+
border-bottom: 1px solid #0073aa;
|
12 |
+
}
|
13 |
+
|
14 |
+
#update-nav-menu ul.menu li.menu-item.ecwid-link .ecwid-reset-categories-cache-updated {
|
15 |
+
display: none;
|
16 |
+
padding: 1px 2px;
|
17 |
+
margin: 6px 0;
|
18 |
+
line-height: 15px;
|
19 |
+
text-decoration: none;
|
20 |
+
cursor: default;
|
21 |
+
color: #62ae29;
|
22 |
+
position: relative;
|
23 |
+
left: 20px;
|
24 |
+
}
|
25 |
+
#update-nav-menu ul.menu li.menu-item.ecwid-link .ecwid-reset-categories-cache-updated:before {
|
26 |
+
content: "\f147";
|
27 |
+
font: 20px 'dashicons';
|
28 |
+
position: absolute;
|
29 |
+
top: 6px;
|
30 |
+
left: -20px;
|
31 |
+
line-height: 10px;
|
32 |
+
}
|
33 |
+
|
34 |
+
#update-nav-menu ul.menu li.menu-item.ecwid-link .ecwid-reset-categories-cache.cache-cleared:not(:hover) {
|
35 |
+
color: #999;
|
36 |
+
border-bottom-color:#999;
|
37 |
+
}
|
38 |
+
|
39 |
+
#update-nav-menu ul.menu li.menu-item.ecwid-link .ecwid-reset-categories-cache.cache-cleared:hover {
|
40 |
+
color:#666;
|
41 |
+
border-bottom-color:#666;
|
42 |
+
}
|
43 |
+
|
44 |
+
#update-nav-menu .ecwid-store-with-cats-message {
|
45 |
+
float: left;
|
46 |
+
font-style: italic;
|
47 |
+
color: #666;
|
48 |
+
margin-bottom: 5px;
|
49 |
+
}
|
50 |
+
|
51 |
+
#update-nav-menu .ecwid-store-with-cats-reset-cache {
|
52 |
+
float: left;
|
53 |
+
margin-top: 0px;
|
54 |
}
|
css/page-editor.css
CHANGED
@@ -1,58 +1,58 @@
|
|
1 |
-
.mce-content-body img.ecwid-store-editor,
|
2 |
-
.mceContentBody img.ecwid-store-editor
|
3 |
-
{
|
4 |
-
padding-top: 30px;
|
5 |
-
background: #F1F1F1;
|
6 |
-
border: 1px solid #E7E7E7;
|
7 |
-
height: 200px;
|
8 |
-
width: 100%;
|
9 |
-
display: block;
|
10 |
-
}
|
11 |
-
|
12 |
-
.mce-content-body .ecwid-store-editor[data-ecwid-store-select="1"],
|
13 |
-
.mceContentBody .ecwid-store-editor[data-ecwid-store-select="1"]
|
14 |
-
{
|
15 |
-
outline: 1px solid #777;
|
16 |
-
}
|
17 |
-
|
18 |
-
#ecwid-store-toolbar {
|
19 |
-
position: absolute;
|
20 |
-
}
|
21 |
-
|
22 |
-
#ecwid-store-toolbar div {
|
23 |
-
margin-top: 7px;
|
24 |
-
margin-left: 7px;
|
25 |
-
padding: 2px;
|
26 |
-
width: 30px;
|
27 |
-
height: 30px;
|
28 |
-
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
|
29 |
-
background-color: #000;
|
30 |
-
background-color: rgba(0, 0, 0, 0.9);
|
31 |
-
cursor: pointer;
|
32 |
-
color: #FFF;
|
33 |
-
font-size: 30px;
|
34 |
-
}
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
#ecwid-edit-store-button {
|
39 |
-
padding: 0 12px 2px;
|
40 |
-
height: 30px;
|
41 |
-
line-height: 28px;
|
42 |
-
|
43 |
-
font-size: 12px;
|
44 |
-
|
45 |
-
background: #2EA2CC;
|
46 |
-
color: #FFF;
|
47 |
-
|
48 |
-
border: 1px solid #0074A2;
|
49 |
-
border-radius: 3px;
|
50 |
-
box-shadow: inset 0 1px 0 rgba(120, 200, 230, 0.5), 0 1px 0 rgba(0, 0, 0, 0.15);
|
51 |
-
|
52 |
-
cursor: pointer;
|
53 |
-
}
|
54 |
-
|
55 |
-
|
56 |
-
#ecwid-edit-store-button:hover {
|
57 |
-
background: #1E8CBE;
|
58 |
}
|
1 |
+
.mce-content-body img.ecwid-store-editor,
|
2 |
+
.mceContentBody img.ecwid-store-editor
|
3 |
+
{
|
4 |
+
padding-top: 30px;
|
5 |
+
background: #F1F1F1;
|
6 |
+
border: 1px solid #E7E7E7;
|
7 |
+
height: 200px;
|
8 |
+
width: 100%;
|
9 |
+
display: block;
|
10 |
+
}
|
11 |
+
|
12 |
+
.mce-content-body .ecwid-store-editor[data-ecwid-store-select="1"],
|
13 |
+
.mceContentBody .ecwid-store-editor[data-ecwid-store-select="1"]
|
14 |
+
{
|
15 |
+
outline: 1px solid #777;
|
16 |
+
}
|
17 |
+
|
18 |
+
#ecwid-store-toolbar {
|
19 |
+
position: absolute;
|
20 |
+
}
|
21 |
+
|
22 |
+
#ecwid-store-toolbar div {
|
23 |
+
margin-top: 7px;
|
24 |
+
margin-left: 7px;
|
25 |
+
padding: 2px;
|
26 |
+
width: 30px;
|
27 |
+
height: 30px;
|
28 |
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
|
29 |
+
background-color: #000;
|
30 |
+
background-color: rgba(0, 0, 0, 0.9);
|
31 |
+
cursor: pointer;
|
32 |
+
color: #FFF;
|
33 |
+
font-size: 30px;
|
34 |
+
}
|
35 |
+
|
36 |
+
|
37 |
+
|
38 |
+
#ecwid-edit-store-button {
|
39 |
+
padding: 0 12px 2px;
|
40 |
+
height: 30px;
|
41 |
+
line-height: 28px;
|
42 |
+
|
43 |
+
font-size: 12px;
|
44 |
+
|
45 |
+
background: #2EA2CC;
|
46 |
+
color: #FFF;
|
47 |
+
|
48 |
+
border: 1px solid #0074A2;
|
49 |
+
border-radius: 3px;
|
50 |
+
box-shadow: inset 0 1px 0 rgba(120, 200, 230, 0.5), 0 1px 0 rgba(0, 0, 0, 0.15);
|
51 |
+
|
52 |
+
cursor: pointer;
|
53 |
+
}
|
54 |
+
|
55 |
+
|
56 |
+
#ecwid-edit-store-button:hover {
|
57 |
+
background: #1E8CBE;
|
58 |
}
|
css/products-list.css
CHANGED
@@ -1,200 +1,200 @@
|
|
1 |
-
/**
|
2 |
-
* Common styles
|
3 |
-
*/
|
4 |
-
|
5 |
-
.ecwid-initial-productsList-content {
|
6 |
-
display: none;
|
7 |
-
}
|
8 |
-
|
9 |
-
.ecwid-productsList ul li.hide {
|
10 |
-
display: none;
|
11 |
-
}
|
12 |
-
|
13 |
-
.ecwid-productsList {
|
14 |
-
overflow: hidden;
|
15 |
-
position: relative;
|
16 |
-
}
|
17 |
-
|
18 |
-
|
19 |
-
.ecwid-productsList ul,
|
20 |
-
#widgets .ecwid-productsList ul
|
21 |
-
{
|
22 |
-
padding: 0px;
|
23 |
-
margin: 0px;
|
24 |
-
}
|
25 |
-
|
26 |
-
.ecwid-productsList ul li {
|
27 |
-
list-style: none;
|
28 |
-
display: block;
|
29 |
-
padding: 0px;
|
30 |
-
}
|
31 |
-
|
32 |
-
.ecwid-productsList ul li a,
|
33 |
-
#widgets .ecwid-productsList ul li a
|
34 |
-
{
|
35 |
-
display: block;
|
36 |
-
position: relative;
|
37 |
-
|
38 |
-
border-radius: 5px;
|
39 |
-
overflow: hidden;
|
40 |
-
|
41 |
-
background: white;
|
42 |
-
}
|
43 |
-
|
44 |
-
.ecwid-productsList ul li a {
|
45 |
-
opacity : .9;
|
46 |
-
}
|
47 |
-
|
48 |
-
.ecwid-productsList ul li:hover a {
|
49 |
-
opacity: 1;
|
50 |
-
}
|
51 |
-
|
52 |
-
.ecwid-productsList .ecwid-productsList-name {
|
53 |
-
color: #1E7EC8;
|
54 |
-
}
|
55 |
-
|
56 |
-
html#ecwid_html body#ecwid_body .ecwid-productsList .ecwid-productsList-image .ecwid-noimage {
|
57 |
-
background-color: white;
|
58 |
-
opacity: 1;
|
59 |
-
}
|
60 |
-
|
61 |
-
.ecwid-productsList ul li .ecwid-productsList-name,
|
62 |
-
.ecwid-productsList ul li .ecwid-productsList-price,
|
63 |
-
.ecwid-productsList ul li .ecwid-productsList-image,
|
64 |
-
.ecwid-productsList ul li .ecwid-productsList-image img
|
65 |
-
{
|
66 |
-
width: 100%;
|
67 |
-
text-align: center;
|
68 |
-
}
|
69 |
-
|
70 |
-
html#ecwid_html body#ecwid_body .ecwid-productsList ul li .ecwid-productsList-name
|
71 |
-
{
|
72 |
-
font-size: 12px;
|
73 |
-
|
74 |
-
white-space: nowrap;
|
75 |
-
overflow: hidden;
|
76 |
-
text-overflow: ellipsis;
|
77 |
-
}
|
78 |
-
|
79 |
-
html#ecwid_html body#ecwid_body .ecwid-productsList ul li .ecwid-productsList-price
|
80 |
-
{
|
81 |
-
font-size: 14px;
|
82 |
-
}
|
83 |
-
|
84 |
-
/*
|
85 |
-
* Narrow layout
|
86 |
-
*/
|
87 |
-
.ecwid-productsList.width-s ul li .ecwid-productsList-name,
|
88 |
-
.ecwid-productsList.width-s ul li .ecwid-productsList-price
|
89 |
-
{
|
90 |
-
display: none;
|
91 |
-
}
|
92 |
-
|
93 |
-
.ecwid-productsList.width-s ul li {
|
94 |
-
padding: 5px 0px;
|
95 |
-
}
|
96 |
-
|
97 |
-
/*
|
98 |
-
* Medium width layout
|
99 |
-
*/
|
100 |
-
|
101 |
-
.ecwid-productsList.width-m ul li {
|
102 |
-
padding: 10px 3px 14px;
|
103 |
-
}
|
104 |
-
|
105 |
-
.ecwid-productsList.width-m ul li .ecwid-productsList-image {
|
106 |
-
border-bottom-left-radius: 0px;
|
107 |
-
border-bottom-right-radius: 0px;
|
108 |
-
}
|
109 |
-
|
110 |
-
html#ecwid_html body#ecwid_body .ecwid-productsList.width-m ul li .ecwid-productsList-name {
|
111 |
-
padding-top: 3px;
|
112 |
-
}
|
113 |
-
|
114 |
-
html#ecwid_html body#ecwid_body .ecwid-productsList.width-m ul li .ecwid-productsList-price
|
115 |
-
{
|
116 |
-
padding-bottom: 8px;
|
117 |
-
}
|
118 |
-
|
119 |
-
.ecwid-productsList.width-m ul li .ecwid-productsList-price,
|
120 |
-
.ecwid-productsList.width-m ul li .ecwid-productsList-name {
|
121 |
-
width: auto;
|
122 |
-
margin: 0 5px;
|
123 |
-
}
|
124 |
-
|
125 |
-
|
126 |
-
/*
|
127 |
-
* Wide layout
|
128 |
-
*/
|
129 |
-
.ecwid-productsList.width-l ul li
|
130 |
-
{
|
131 |
-
margin: 6px 0px;
|
132 |
-
}
|
133 |
-
|
134 |
-
.ecwid-productsList.width-l ul li a {
|
135 |
-
min-height: 60px;
|
136 |
-
}
|
137 |
-
|
138 |
-
|
139 |
-
.ecwid-productsList.width-l ul li .ecwid-productsList-image,
|
140 |
-
.ecwid-productsList.width-l ul li .ecwid-productsList-name,
|
141 |
-
.ecwid-productsList.width-l ul li .ecwid-productsList-price
|
142 |
-
{
|
143 |
-
text-align: left;
|
144 |
-
}
|
145 |
-
|
146 |
-
.ecwid-productsList.width-l ul li .ecwid-productsList-image {
|
147 |
-
display: table-cell;
|
148 |
-
vertical-align: middle;
|
149 |
-
height: 60px;
|
150 |
-
padding: 5px;
|
151 |
-
}
|
152 |
-
|
153 |
-
.ecwid-productsList.width-l ul li .ecwid-productsList-image img {
|
154 |
-
width: auto;
|
155 |
-
max-width: 75px;
|
156 |
-
display: block;
|
157 |
-
margin: 0px auto;
|
158 |
-
}
|
159 |
-
|
160 |
-
html#ecwid_html body#ecwid_body .ecwid-productsList div.ecwid-productsList-image.ecwid-noimage {
|
161 |
-
background-position: 50% 50%;
|
162 |
-
background-size: 55px 55px;
|
163 |
-
opacity: 1;
|
164 |
-
width: 75px;
|
165 |
-
height: 60px;
|
166 |
-
padding: 5px;
|
167 |
-
}
|
168 |
-
|
169 |
-
.ecwid-productsList.width-l ul li .ecwid-productsList-name,
|
170 |
-
.ecwid-productsList.width-l ul li .ecwid-productsList-price
|
171 |
-
{
|
172 |
-
width: auto;
|
173 |
-
position: absolute;
|
174 |
-
left: 93px;
|
175 |
-
right: 0px;
|
176 |
-
overflow: hidden;
|
177 |
-
white-space: nowrap;
|
178 |
-
text-overflow: ellipsis;
|
179 |
-
}
|
180 |
-
|
181 |
-
.ecwid-productsList.width-l ul li .ecwid-productsList-name {
|
182 |
-
bottom: 50%;
|
183 |
-
margin-bottom: 4px;
|
184 |
-
}
|
185 |
-
|
186 |
-
|
187 |
-
.ecwid-productsList.width-l ul li .ecwid-productsList-price {
|
188 |
-
top: 50%;
|
189 |
-
margin-top: -2px;
|
190 |
-
}
|
191 |
-
|
192 |
-
html#ecwid_html body#ecwid_body .ecwid-productsList ul li .ecwid-productsList-name
|
193 |
-
{
|
194 |
-
font-size: 12px;
|
195 |
-
}
|
196 |
-
|
197 |
-
html#ecwid_html body#ecwid_body .ecwid-productsList ul li .ecwid-productsList-price
|
198 |
-
{
|
199 |
-
font-size: 14px;
|
200 |
}
|
1 |
+
/**
|
2 |
+
* Common styles
|
3 |
+
*/
|
4 |
+
|
5 |
+
.ecwid-initial-productsList-content {
|
6 |
+
display: none;
|
7 |
+
}
|
8 |
+
|
9 |
+
.ecwid-productsList ul li.hide {
|
10 |
+
display: none;
|
11 |
+
}
|
12 |
+
|
13 |
+
.ecwid-productsList {
|
14 |
+
overflow: hidden;
|
15 |
+
position: relative;
|
16 |
+
}
|
17 |
+
|
18 |
+
|
19 |
+
.ecwid-productsList ul,
|
20 |
+
#widgets .ecwid-productsList ul
|
21 |
+
{
|
22 |
+
padding: 0px;
|
23 |
+
margin: 0px;
|
24 |
+
}
|
25 |
+
|
26 |
+
.ecwid-productsList ul li {
|
27 |
+
list-style: none;
|
28 |
+
display: block;
|
29 |
+
padding: 0px;
|
30 |
+
}
|
31 |
+
|
32 |
+
.ecwid-productsList ul li a,
|
33 |
+
#widgets .ecwid-productsList ul li a
|
34 |
+
{
|
35 |
+
display: block;
|
36 |
+
position: relative;
|
37 |
+
|
38 |
+
border-radius: 5px;
|
39 |
+
overflow: hidden;
|
40 |
+
|
41 |
+
background: white;
|
42 |
+
}
|
43 |
+
|
44 |
+
.ecwid-productsList ul li a {
|
45 |
+
opacity : .9;
|
46 |
+
}
|
47 |
+
|
48 |
+
.ecwid-productsList ul li:hover a {
|
49 |
+
opacity: 1;
|
50 |
+
}
|
51 |
+
|
52 |
+
.ecwid-productsList .ecwid-productsList-name {
|
53 |
+
color: #1E7EC8;
|
54 |
+
}
|
55 |
+
|
56 |
+
html#ecwid_html body#ecwid_body .ecwid-productsList .ecwid-productsList-image .ecwid-noimage {
|
57 |
+
background-color: white;
|
58 |
+
opacity: 1;
|
59 |
+
}
|
60 |
+
|
61 |
+
.ecwid-productsList ul li .ecwid-productsList-name,
|
62 |
+
.ecwid-productsList ul li .ecwid-productsList-price,
|
63 |
+
.ecwid-productsList ul li .ecwid-productsList-image,
|
64 |
+
.ecwid-productsList ul li .ecwid-productsList-image img
|
65 |
+
{
|
66 |
+
width: 100%;
|
67 |
+
text-align: center;
|
68 |
+
}
|
69 |
+
|
70 |
+
html#ecwid_html body#ecwid_body .ecwid-productsList ul li .ecwid-productsList-name
|
71 |
+
{
|
72 |
+
font-size: 12px;
|
73 |
+
|
74 |
+
white-space: nowrap;
|
75 |
+
overflow: hidden;
|
76 |
+
text-overflow: ellipsis;
|
77 |
+
}
|
78 |
+
|
79 |
+
html#ecwid_html body#ecwid_body .ecwid-productsList ul li .ecwid-productsList-price
|
80 |
+
{
|
81 |
+
font-size: 14px;
|
82 |
+
}
|
83 |
+
|
84 |
+
/*
|
85 |
+
* Narrow layout
|
86 |
+
*/
|
87 |
+
.ecwid-productsList.width-s ul li .ecwid-productsList-name,
|
88 |
+
.ecwid-productsList.width-s ul li .ecwid-productsList-price
|
89 |
+
{
|
90 |
+
display: none;
|
91 |
+
}
|
92 |
+
|
93 |
+
.ecwid-productsList.width-s ul li {
|
94 |
+
padding: 5px 0px;
|
95 |
+
}
|
96 |
+
|
97 |
+
/*
|
98 |
+
* Medium width layout
|
99 |
+
*/
|
100 |
+
|
101 |
+
.ecwid-productsList.width-m ul li {
|
102 |
+
padding: 10px 3px 14px;
|
103 |
+
}
|
104 |
+
|
105 |
+
.ecwid-productsList.width-m ul li .ecwid-productsList-image {
|
106 |
+
border-bottom-left-radius: 0px;
|
107 |
+
border-bottom-right-radius: 0px;
|
108 |
+
}
|
109 |
+
|
110 |
+
html#ecwid_html body#ecwid_body .ecwid-productsList.width-m ul li .ecwid-productsList-name {
|
111 |
+
padding-top: 3px;
|
112 |
+
}
|
113 |
+
|
114 |
+
html#ecwid_html body#ecwid_body .ecwid-productsList.width-m ul li .ecwid-productsList-price
|
115 |
+
{
|
116 |
+
padding-bottom: 8px;
|
117 |
+
}
|
118 |
+
|
119 |
+
.ecwid-productsList.width-m ul li .ecwid-productsList-price,
|
120 |
+
.ecwid-productsList.width-m ul li .ecwid-productsList-name {
|
121 |
+
width: auto;
|
122 |
+
margin: 0 5px;
|
123 |
+
}
|
124 |
+
|
125 |
+
|
126 |
+
/*
|
127 |
+
* Wide layout
|
128 |
+
*/
|
129 |
+
.ecwid-productsList.width-l ul li
|
130 |
+
{
|
131 |
+
margin: 6px 0px;
|
132 |
+
}
|
133 |
+
|
134 |
+
.ecwid-productsList.width-l ul li a {
|
135 |
+
min-height: 60px;
|
136 |
+
}
|
137 |
+
|
138 |
+
|
139 |
+
.ecwid-productsList.width-l ul li .ecwid-productsList-image,
|
140 |
+
.ecwid-productsList.width-l ul li .ecwid-productsList-name,
|
141 |
+
.ecwid-productsList.width-l ul li .ecwid-productsList-price
|
142 |
+
{
|
143 |
+
text-align: left;
|
144 |
+
}
|
145 |
+
|
146 |
+
.ecwid-productsList.width-l ul li .ecwid-productsList-image {
|
147 |
+
display: table-cell;
|
148 |
+
vertical-align: middle;
|
149 |
+
height: 60px;
|
150 |
+
padding: 5px;
|
151 |
+
}
|
152 |
+
|
153 |
+
.ecwid-productsList.width-l ul li .ecwid-productsList-image img {
|
154 |
+
width: auto;
|
155 |
+
max-width: 75px;
|
156 |
+
display: block;
|
157 |
+
margin: 0px auto;
|
158 |
+
}
|
159 |
+
|
160 |
+
html#ecwid_html body#ecwid_body .ecwid-productsList div.ecwid-productsList-image.ecwid-noimage {
|
161 |
+
background-position: 50% 50%;
|
162 |
+
background-size: 55px 55px;
|
163 |
+
opacity: 1;
|
164 |
+
width: 75px;
|
165 |
+
height: 60px;
|
166 |
+
padding: 5px;
|
167 |
+
}
|
168 |
+
|
169 |
+
.ecwid-productsList.width-l ul li .ecwid-productsList-name,
|
170 |
+
.ecwid-productsList.width-l ul li .ecwid-productsList-price
|
171 |
+
{
|
172 |
+
width: auto;
|
173 |
+
position: absolute;
|
174 |
+
left: 93px;
|
175 |
+
right: 0px;
|
176 |
+
overflow: hidden;
|
177 |
+
white-space: nowrap;
|
178 |
+
text-overflow: ellipsis;
|
179 |
+
}
|
180 |
+
|
181 |
+
.ecwid-productsList.width-l ul li .ecwid-productsList-name {
|
182 |
+
bottom: 50%;
|
183 |
+
margin-bottom: 4px;
|
184 |
+
}
|
185 |
+
|
186 |
+
|
187 |
+
.ecwid-productsList.width-l ul li .ecwid-productsList-price {
|
188 |
+
top: 50%;
|
189 |
+
margin-top: -2px;
|
190 |
+
}
|
191 |
+
|
192 |
+
html#ecwid_html body#ecwid_body .ecwid-productsList ul li .ecwid-productsList-name
|
193 |
+
{
|
194 |
+
font-size: 12px;
|
195 |
+
}
|
196 |
+
|
197 |
+
html#ecwid_html body#ecwid_body .ecwid-productsList ul li .ecwid-productsList-price
|
198 |
+
{
|
199 |
+
font-size: 14px;
|
200 |
}
|
css/recently-viewed.css
CHANGED
@@ -1,114 +1,114 @@
|
|
1 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product {
|
2 |
-
display: block;
|
3 |
-
position: relative;
|
4 |
-
opacity: .85;
|
5 |
-
}
|
6 |
-
|
7 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product:not(:first-child) {
|
8 |
-
border-top: 1px solid #CCC;
|
9 |
-
}
|
10 |
-
|
11 |
-
|
12 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-price {
|
13 |
-
font-size: 14px;
|
14 |
-
}
|
15 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-title {
|
16 |
-
font-size: 12px;
|
17 |
-
height: 2em;
|
18 |
-
line-height: 1em;
|
19 |
-
}
|
20 |
-
|
21 |
-
|
22 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product.hidden {
|
23 |
-
display: none;
|
24 |
-
}
|
25 |
-
|
26 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product:hover {
|
27 |
-
cursor: pointer;
|
28 |
-
opacity: 1;
|
29 |
-
}
|
30 |
-
|
31 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product:active,
|
32 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product:focus
|
33 |
-
{
|
34 |
-
outline: none;
|
35 |
-
}
|
36 |
-
|
37 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-title {
|
38 |
-
overflow: hidden;
|
39 |
-
max-height: 55px;
|
40 |
-
|
41 |
-
font-size: 12px;
|
42 |
-
}
|
43 |
-
|
44 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product:hover .ecwid-title {
|
45 |
-
text-decoration: underline;
|
46 |
-
}
|
47 |
-
|
48 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product div[itemprop="offers"] {
|
49 |
-
position: static;
|
50 |
-
}
|
51 |
-
|
52 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-SingleProduct-picture img {
|
53 |
-
height: auto !important;
|
54 |
-
width: auto !important;
|
55 |
-
max-width: 100px;
|
56 |
-
max-height: 100px;
|
57 |
-
margin-top: 10px !important;
|
58 |
-
vertical-align: middle;
|
59 |
-
}
|
60 |
-
|
61 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-price,
|
62 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-title,
|
63 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product div[itemprop="image"]
|
64 |
-
{
|
65 |
-
text-align: center;
|
66 |
-
}
|
67 |
-
|
68 |
-
|
69 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product {
|
70 |
-
height: 120px;
|
71 |
-
}
|
72 |
-
|
73 |
-
|
74 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-title,
|
75 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-price {
|
76 |
-
display: none;
|
77 |
-
}
|
78 |
-
|
79 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-title,
|
80 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-price {
|
81 |
-
display: block;
|
82 |
-
position: absolute;
|
83 |
-
left: 120px;
|
84 |
-
text-align: left;
|
85 |
-
margin-right: 5px;
|
86 |
-
text-overflow: ellipsis;
|
87 |
-
white-space: nowrap;
|
88 |
-
}
|
89 |
-
|
90 |
-
|
91 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-title {
|
92 |
-
top: 25px;
|
93 |
-
}
|
94 |
-
|
95 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-price {
|
96 |
-
bottom: 25px;
|
97 |
-
}
|
98 |
-
|
99 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-SingleProduct-picture {
|
100 |
-
vertical-align: middle;
|
101 |
-
display: table-cell;
|
102 |
-
line-height: 120px;
|
103 |
-
width: 100px;
|
104 |
-
padding: 0px 10px !important;
|
105 |
-
}
|
106 |
-
|
107 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-SingleProduct-picture img {
|
108 |
-
margin-top: 0px !important;
|
109 |
-
}
|
110 |
-
|
111 |
-
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products li {
|
112 |
-
background-image: none;
|
113 |
-
}
|
114 |
-
|
1 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product {
|
2 |
+
display: block;
|
3 |
+
position: relative;
|
4 |
+
opacity: .85;
|
5 |
+
}
|
6 |
+
|
7 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product:not(:first-child) {
|
8 |
+
border-top: 1px solid #CCC;
|
9 |
+
}
|
10 |
+
|
11 |
+
|
12 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-price {
|
13 |
+
font-size: 14px;
|
14 |
+
}
|
15 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-title {
|
16 |
+
font-size: 12px;
|
17 |
+
height: 2em;
|
18 |
+
line-height: 1em;
|
19 |
+
}
|
20 |
+
|
21 |
+
|
22 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product.hidden {
|
23 |
+
display: none;
|
24 |
+
}
|
25 |
+
|
26 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product:hover {
|
27 |
+
cursor: pointer;
|
28 |
+
opacity: 1;
|
29 |
+
}
|
30 |
+
|
31 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product:active,
|
32 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product:focus
|
33 |
+
{
|
34 |
+
outline: none;
|
35 |
+
}
|
36 |
+
|
37 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-title {
|
38 |
+
overflow: hidden;
|
39 |
+
max-height: 55px;
|
40 |
+
|
41 |
+
font-size: 12px;
|
42 |
+
}
|
43 |
+
|
44 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product:hover .ecwid-title {
|
45 |
+
text-decoration: underline;
|
46 |
+
}
|
47 |
+
|
48 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product div[itemprop="offers"] {
|
49 |
+
position: static;
|
50 |
+
}
|
51 |
+
|
52 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-SingleProduct-picture img {
|
53 |
+
height: auto !important;
|
54 |
+
width: auto !important;
|
55 |
+
max-width: 100px;
|
56 |
+
max-height: 100px;
|
57 |
+
margin-top: 10px !important;
|
58 |
+
vertical-align: middle;
|
59 |
+
}
|
60 |
+
|
61 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-price,
|
62 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-title,
|
63 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product div[itemprop="image"]
|
64 |
+
{
|
65 |
+
text-align: center;
|
66 |
+
}
|
67 |
+
|
68 |
+
|
69 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product {
|
70 |
+
height: 120px;
|
71 |
+
}
|
72 |
+
|
73 |
+
|
74 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-title,
|
75 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products .product .ecwid-price {
|
76 |
+
display: none;
|
77 |
+
}
|
78 |
+
|
79 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-title,
|
80 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-price {
|
81 |
+
display: block;
|
82 |
+
position: absolute;
|
83 |
+
left: 120px;
|
84 |
+
text-align: left;
|
85 |
+
margin-right: 5px;
|
86 |
+
text-overflow: ellipsis;
|
87 |
+
white-space: nowrap;
|
88 |
+
}
|
89 |
+
|
90 |
+
|
91 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-title {
|
92 |
+
top: 25px;
|
93 |
+
}
|
94 |
+
|
95 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-price {
|
96 |
+
bottom: 25px;
|
97 |
+
}
|
98 |
+
|
99 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-SingleProduct-picture {
|
100 |
+
vertical-align: middle;
|
101 |
+
display: table-cell;
|
102 |
+
line-height: 120px;
|
103 |
+
width: 100px;
|
104 |
+
padding: 0px 10px !important;
|
105 |
+
}
|
106 |
+
|
107 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products.wide .product .ecwid-SingleProduct-picture img {
|
108 |
+
margin-top: 0px !important;
|
109 |
+
}
|
110 |
+
|
111 |
+
html#ecwid_html body#ecwid_body .ecwid-recently-viewed-products li {
|
112 |
+
background-image: none;
|
113 |
+
}
|
114 |
+
|
css/settings.3.8.css
CHANGED
@@ -1,228 +1,228 @@
|
|
1 |
-
.ecwid-pb-view-size .main-area {
|
2 |
-
border-color: rgba(30, 140, 190, 0.5);
|
3 |
-
}
|
4 |
-
|
5 |
-
.ecwid-pb-view-size .main-area path,
|
6 |
-
.ecwid-pb-view-size .main-area rect {
|
7 |
-
fill: rgb(30, 140, 190);
|
8 |
-
}
|
9 |
-
|
10 |
-
.ecwid-pb-view-size .bottom {
|
11 |
-
margin-top: 11px;
|
12 |
-
}
|
13 |
-
|
14 |
-
.ecwid-settings h2 {
|
15 |
-
background: none;
|
16 |
-
padding-left: 12px;
|
17 |
-
}
|
18 |
-
|
19 |
-
.ecwid-settings hr {
|
20 |
-
background: #cacaca;
|
21 |
-
}
|
22 |
-
|
23 |
-
.ecwid-settings .pure-control-group {
|
24 |
-
margin-bottom: 22px;
|
25 |
-
}
|
26 |
-
|
27 |
-
.pure-form.ecwid-settings .pure-control-group label {
|
28 |
-
font-size: 14px;
|
29 |
-
width: 265px;
|
30 |
-
}
|
31 |
-
|
32 |
-
.pure-form.ecwid-settings.general-settings .pure-button-secondary,
|
33 |
-
.pure-form.ecwid-settings a.pure-button:not(.pure-button-primary):hover
|
34 |
-
{
|
35 |
-
color: #0074a2;
|
36 |
-
}
|
37 |
-
|
38 |
-
.pure-form.ecwid-settings.general-settings .pure-button-secondary:hover,
|
39 |
-
.pure-form.ecwid-settings a.pure-button:not(.pure-button-primary):hover
|
40 |
-
{
|
41 |
-
border-color: #0074a2;
|
42 |
-
}
|
43 |
-
|
44 |
-
.ecwid-settings.general-settings button {
|
45 |
-
top: 1px;
|
46 |
-
padding: 2px 10px 1px;
|
47 |
-
height: 32px;
|
48 |
-
}
|
49 |
-
|
50 |
-
.ecwid-pb-view-size .ruler {
|
51 |
-
background: #cacaca;
|
52 |
-
}
|
53 |
-
|
54 |
-
@media screen and (max-width: 782px) {
|
55 |
-
.ecwid-settings.general-settings,
|
56 |
-
.ecwid-settings.appearance-settings,
|
57 |
-
.ecwid-settings.advanced-settings
|
58 |
-
{
|
59 |
-
max-width: inherit;
|
60 |
-
width: inherit;
|
61 |
-
}
|
62 |
-
|
63 |
-
.ecwid-settings h2 {
|
64 |
-
margin-bottom: 0px;
|
65 |
-
}
|
66 |
-
|
67 |
-
.ecwid-settings.pure-form fieldset > :not(legend) {
|
68 |
-
margin-left: 0px;
|
69 |
-
}
|
70 |
-
|
71 |
-
|
72 |
-
.general-settings.ecwid-settings .greeting-box {
|
73 |
-
height: inherit;
|
74 |
-
text-align: center;
|
75 |
-
}
|
76 |
-
|
77 |
-
.general-settings.ecwid-settings .greeting-box > div {
|
78 |
-
display: block;
|
79 |
-
}
|
80 |
-
.general-settings.ecwid-settings ol {
|
81 |
-
padding-left: 0px;
|
82 |
-
}
|
83 |
-
|
84 |
-
.general-settings.ecwid-settings .section {
|
85 |
-
width: 100%;
|
86 |
-
}
|
87 |
-
|
88 |
-
.general-settings.ecwid-settings .section .left,
|
89 |
-
.general-settings.ecwid-settings .note {
|
90 |
-
margin-top: 0px;
|
91 |
-
}
|
92 |
-
|
93 |
-
.general-settings.ecwid-settings .section .left,
|
94 |
-
.general-settings.ecwid-settings .section .right {
|
95 |
-
text-align: left;
|
96 |
-
display: block;
|
97 |
-
}
|
98 |
-
|
99 |
-
.general-settings.ecwid-settings button,
|
100 |
-
.general-settings.ecwid-settings #ecwid_store_id,
|
101 |
-
.general-settings.ecwid-settings .pure-button {
|
102 |
-
display: block;
|
103 |
-
width: inherit;
|
104 |
-
margin: 10px 0px 10px 0px;
|
105 |
-
padding: 0px 5px;
|
106 |
-
}
|
107 |
-
.general-settings.ecwid-settings button,
|
108 |
-
.general-settings.ecwid-settings #ecwid_store_id {
|
109 |
-
width: 100%;
|
110 |
-
}
|
111 |
-
|
112 |
-
.general-settings.ecwid-settings .button-primary {
|
113 |
-
width: 100%;
|
114 |
-
text-align: center;
|
115 |
-
margin-top: 10px;
|
116 |
-
}
|
117 |
-
|
118 |
-
.general-settings.ecwid-settings .two-buttons {
|
119 |
-
position: relative;
|
120 |
-
}
|
121 |
-
|
122 |
-
.general-settings.ecwid-settings .two-buttons .pure-button:last-child {
|
123 |
-
position: absolute;
|
124 |
-
right: 0px;
|
125 |
-
}
|
126 |
-
.general-settings.ecwid-settings .two-buttons .pure-button {
|
127 |
-
display: inline-block;
|
128 |
-
min-width: 44%;
|
129 |
-
width: inherit;
|
130 |
-
}
|
131 |
-
|
132 |
-
.general-settings.ecwid-settings input {
|
133 |
-
display: block;
|
134 |
-
width: 100%;
|
135 |
-
}
|
136 |
-
|
137 |
-
.ecwid-settings .pure-control-group {
|
138 |
-
position: relative;
|
139 |
-
}
|
140 |
-
|
141 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size {
|
142 |
-
display: block;
|
143 |
-
}
|
144 |
-
|
145 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size input {
|
146 |
-
position: relative;
|
147 |
-
z-index: 2;
|
148 |
-
}
|
149 |
-
|
150 |
-
.appearance-settings.ecwid-settings .pure-control-group.small-input input {
|
151 |
-
margin: 0px auto;
|
152 |
-
}
|
153 |
-
|
154 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size {
|
155 |
-
margin: 0px auto 33px;
|
156 |
-
padding: 0px;
|
157 |
-
}
|
158 |
-
|
159 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size .ruler {
|
160 |
-
z-index: 1;
|
161 |
-
position: absolute;
|
162 |
-
}
|
163 |
-
|
164 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size .bottom {
|
165 |
-
margin-top: 5px;
|
166 |
-
}
|
167 |
-
|
168 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size.list,
|
169 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size.table {
|
170 |
-
margin-bottom: 0px;
|
171 |
-
}
|
172 |
-
|
173 |
-
.appearance-settings.ecwid-settings .note.pb-note {
|
174 |
-
margin: 0px;
|
175 |
-
}
|
176 |
-
|
177 |
-
.appearance-settings.ecwid-settings select {
|
178 |
-
width: 100%;
|
179 |
-
}
|
180 |
-
|
181 |
-
.advanced-settings.ecwid-settings .pure-control-group:not(.checkbox) label {
|
182 |
-
margin-top:35px;
|
183 |
-
}
|
184 |
-
|
185 |
-
.advanced-settings.ecwid-settings .pure-control-group:not(.checkbox) input,
|
186 |
-
.advanced-settings.ecwid-settings select {
|
187 |
-
width: 100%;
|
188 |
-
}
|
189 |
-
|
190 |
-
.advanced-settings.ecwid-settings label {
|
191 |
-
margin-bottom: 10px;
|
192 |
-
}
|
193 |
-
|
194 |
-
.advanced-settings.ecwid-settings .note {
|
195 |
-
margin-top: 5px;
|
196 |
-
}
|
197 |
-
|
198 |
-
.ecwid-settings fieldset {
|
199 |
-
min-width: 0px !important;
|
200 |
-
}
|
201 |
-
|
202 |
-
.ecwid-pb-view-size .bottom .ruler {
|
203 |
-
bottom: 15px;
|
204 |
-
}
|
205 |
-
.ecwid-settings .pure-control-group.small-input .input > div,
|
206 |
-
.ecwid-settings .pure-control-group.small-input .input input,
|
207 |
-
.ecwid-settings .pure-control-group.small-input .label > label {
|
208 |
-
position: static;
|
209 |
-
}
|
210 |
-
|
211 |
-
.ecwid-settings .pure-control-group.small-input .label,
|
212 |
-
.ecwid-settings .pure-control-group.small-input .label label {
|
213 |
-
width: auto;
|
214 |
-
margin-bottom: 0px;
|
215 |
-
}
|
216 |
-
|
217 |
-
.ecwid-settings .pure-control-group.small-input .note {
|
218 |
-
display: block;
|
219 |
-
position: relative;
|
220 |
-
left: 45px;
|
221 |
-
margin-right: 45px;
|
222 |
-
}
|
223 |
-
|
224 |
-
.ecwid-settings .pure-control-group.checkbox label {
|
225 |
-
display: inline-block;
|
226 |
-
}
|
227 |
-
}
|
228 |
-
|
1 |
+
.ecwid-pb-view-size .main-area {
|
2 |
+
border-color: rgba(30, 140, 190, 0.5);
|
3 |
+
}
|
4 |
+
|
5 |
+
.ecwid-pb-view-size .main-area path,
|
6 |
+
.ecwid-pb-view-size .main-area rect {
|
7 |
+
fill: rgb(30, 140, 190);
|
8 |
+
}
|
9 |
+
|
10 |
+
.ecwid-pb-view-size .bottom {
|
11 |
+
margin-top: 11px;
|
12 |
+
}
|
13 |
+
|
14 |
+
.ecwid-settings h2 {
|
15 |
+
background: none;
|
16 |
+
padding-left: 12px;
|
17 |
+
}
|
18 |
+
|
19 |
+
.ecwid-settings hr {
|
20 |
+
background: #cacaca;
|
21 |
+
}
|
22 |
+
|
23 |
+
.ecwid-settings .pure-control-group {
|
24 |
+
margin-bottom: 22px;
|
25 |
+
}
|
26 |
+
|
27 |
+
.pure-form.ecwid-settings .pure-control-group label {
|
28 |
+
font-size: 14px;
|
29 |
+
width: 265px;
|
30 |
+
}
|
31 |
+
|
32 |
+
.pure-form.ecwid-settings.general-settings .pure-button-secondary,
|
33 |
+
.pure-form.ecwid-settings a.pure-button:not(.pure-button-primary):hover
|
34 |
+
{
|
35 |
+
color: #0074a2;
|
36 |
+
}
|
37 |
+
|
38 |
+
.pure-form.ecwid-settings.general-settings .pure-button-secondary:hover,
|
39 |
+
.pure-form.ecwid-settings a.pure-button:not(.pure-button-primary):hover
|
40 |
+
{
|
41 |
+
border-color: #0074a2;
|
42 |
+
}
|
43 |
+
|
44 |
+
.ecwid-settings.general-settings button {
|
45 |
+
top: 1px;
|
46 |
+
padding: 2px 10px 1px;
|
47 |
+
height: 32px;
|
48 |
+
}
|
49 |
+
|
50 |
+
.ecwid-pb-view-size .ruler {
|
51 |
+
background: #cacaca;
|
52 |
+
}
|
53 |
+
|
54 |
+
@media screen and (max-width: 782px) {
|
55 |
+
.ecwid-settings.general-settings,
|
56 |
+
.ecwid-settings.appearance-settings,
|
57 |
+
.ecwid-settings.advanced-settings
|
58 |
+
{
|
59 |
+
max-width: inherit;
|
60 |
+
width: inherit;
|
61 |
+
}
|
62 |
+
|
63 |
+
.ecwid-settings h2 {
|
64 |
+
margin-bottom: 0px;
|
65 |
+
}
|
66 |
+
|
67 |
+
.ecwid-settings.pure-form fieldset > :not(legend) {
|
68 |
+
margin-left: 0px;
|
69 |
+
}
|
70 |
+
|
71 |
+
|
72 |
+
.general-settings.ecwid-settings .greeting-box {
|
73 |
+
height: inherit;
|
74 |
+
text-align: center;
|
75 |
+
}
|
76 |
+
|
77 |
+
.general-settings.ecwid-settings .greeting-box > div {
|
78 |
+
display: block;
|
79 |
+
}
|
80 |
+
.general-settings.ecwid-settings ol {
|
81 |
+
padding-left: 0px;
|
82 |
+
}
|
83 |
+
|
84 |
+
.general-settings.ecwid-settings .section {
|
85 |
+
width: 100%;
|
86 |
+
}
|
87 |
+
|
88 |
+
.general-settings.ecwid-settings .section .left,
|
89 |
+
.general-settings.ecwid-settings .note {
|
90 |
+
margin-top: 0px;
|
91 |
+
}
|
92 |
+
|
93 |
+
.general-settings.ecwid-settings .section .left,
|
94 |
+
.general-settings.ecwid-settings .section .right {
|
95 |
+
text-align: left;
|
96 |
+
display: block;
|
97 |
+
}
|
98 |
+
|
99 |
+
.general-settings.ecwid-settings button,
|
100 |
+
.general-settings.ecwid-settings #ecwid_store_id,
|
101 |
+
.general-settings.ecwid-settings .pure-button {
|
102 |
+
display: block;
|
103 |
+
width: inherit;
|
104 |
+
margin: 10px 0px 10px 0px;
|
105 |
+
padding: 0px 5px;
|
106 |
+
}
|
107 |
+
.general-settings.ecwid-settings button,
|
108 |
+
.general-settings.ecwid-settings #ecwid_store_id {
|
109 |
+
width: 100%;
|
110 |
+
}
|
111 |
+
|
112 |
+
.general-settings.ecwid-settings .button-primary {
|
113 |
+
width: 100%;
|
114 |
+
text-align: center;
|
115 |
+
margin-top: 10px;
|
116 |
+
}
|
117 |
+
|
118 |
+
.general-settings.ecwid-settings .two-buttons {
|
119 |
+
position: relative;
|
120 |
+
}
|
121 |
+
|
122 |
+
.general-settings.ecwid-settings .two-buttons .pure-button:last-child {
|
123 |
+
position: absolute;
|
124 |
+
right: 0px;
|
125 |
+
}
|
126 |
+
.general-settings.ecwid-settings .two-buttons .pure-button {
|
127 |
+
display: inline-block;
|
128 |
+
min-width: 44%;
|
129 |
+
width: inherit;
|
130 |
+
}
|
131 |
+
|
132 |
+
.general-settings.ecwid-settings input {
|
133 |
+
display: block;
|
134 |
+
width: 100%;
|
135 |
+
}
|
136 |
+
|
137 |
+
.ecwid-settings .pure-control-group {
|
138 |
+
position: relative;
|
139 |
+
}
|
140 |
+
|
141 |
+
.appearance-settings.ecwid-settings .ecwid-pb-view-size {
|
142 |
+
display: block;
|
143 |
+
}
|
144 |
+
|
145 |
+
.appearance-settings.ecwid-settings .ecwid-pb-view-size input {
|
146 |
+
position: relative;
|
147 |
+
z-index: 2;
|
148 |
+
}
|
149 |
+
|
150 |
+
.appearance-settings.ecwid-settings .pure-control-group.small-input input {
|
151 |
+
margin: 0px auto;
|
152 |
+
}
|
153 |
+
|
154 |
+
.appearance-settings.ecwid-settings .ecwid-pb-view-size {
|
155 |
+
margin: 0px auto 33px;
|
156 |
+
padding: 0px;
|
157 |
+
}
|
158 |
+
|
159 |
+
.appearance-settings.ecwid-settings .ecwid-pb-view-size .ruler {
|
160 |
+
z-index: 1;
|
161 |
+
position: absolute;
|
162 |
+
}
|
163 |
+
|
164 |
+
.appearance-settings.ecwid-settings .ecwid-pb-view-size .bottom {
|
165 |
+
margin-top: 5px;
|
166 |
+
}
|
167 |
+
|
168 |
+
.appearance-settings.ecwid-settings .ecwid-pb-view-size.list,
|
169 |
+
.appearance-settings.ecwid-settings .ecwid-pb-view-size.table {
|
170 |
+
margin-bottom: 0px;
|
171 |
+
}
|
172 |
+
|
173 |
+
.appearance-settings.ecwid-settings .note.pb-note {
|
174 |
+
margin: 0px;
|
175 |
+
}
|
176 |
+
|
177 |
+
.appearance-settings.ecwid-settings select {
|
178 |
+
width: 100%;
|
179 |
+
}
|
180 |
+
|
181 |
+
.advanced-settings.ecwid-settings .pure-control-group:not(.checkbox) label {
|
182 |
+
margin-top:35px;
|
183 |
+
}
|
184 |
+
|
185 |
+
.advanced-settings.ecwid-settings .pure-control-group:not(.checkbox) input,
|
186 |
+
.advanced-settings.ecwid-settings select {
|
187 |
+
width: 100%;
|
188 |
+
}
|
189 |
+
|
190 |
+
.advanced-settings.ecwid-settings label {
|
191 |
+
margin-bottom: 10px;
|
192 |
+
}
|
193 |
+
|
194 |
+
.advanced-settings.ecwid-settings .note {
|
195 |
+
margin-top: 5px;
|
196 |
+
}
|
197 |
+
|
198 |
+
.ecwid-settings fieldset {
|
199 |
+
min-width: 0px !important;
|
200 |
+
}
|
201 |
+
|
202 |
+
.ecwid-pb-view-size .bottom .ruler {
|
203 |
+
bottom: 15px;
|
204 |
+
}
|
205 |
+
.ecwid-settings .pure-control-group.small-input .input > div,
|
206 |
+
.ecwid-settings .pure-control-group.small-input .input input,
|
207 |
+
.ecwid-settings .pure-control-group.small-input .label > label {
|
208 |
+
position: static;
|
209 |
+
}
|
210 |
+
|
211 |
+
.ecwid-settings .pure-control-group.small-input .label,
|
212 |
+
.ecwid-settings .pure-control-group.small-input .label label {
|
213 |
+
width: auto;
|
214 |
+
margin-bottom: 0px;
|
215 |
+
}
|
216 |
+
|
217 |
+
.ecwid-settings .pure-control-group.small-input .note {
|
218 |
+
display: block;
|
219 |
+
position: relative;
|
220 |
+
left: 45px;
|
221 |
+
margin-right: 45px;
|
222 |
+
}
|
223 |
+
|
224 |
+
.ecwid-settings .pure-control-group.checkbox label {
|
225 |
+
display: inline-block;
|
226 |
+
}
|
227 |
+
}
|
228 |
+
|
css/settings.css
CHANGED
@@ -1,742 +1,742 @@
|
|
1 |
-
.pure-form.ecwid-settings fieldset {
|
2 |
-
font-size: 14px;
|
3 |
-
}
|
4 |
-
|
5 |
-
.pure-form.ecwid-settings fieldset > :not(legend) {
|
6 |
-
margin-left:14px;
|
7 |
-
}
|
8 |
-
|
9 |
-
.pure-form.ecwid-settings .pure-button {
|
10 |
-
height: auto;
|
11 |
-
line-height: 32px;
|
12 |
-
padding: 0px 20px;
|
13 |
-
font-size: 14px;
|
14 |
-
background-image: none;
|
15 |
-
background-color: #f6f6f6;
|
16 |
-
font-weight: normal;
|
17 |
-
color: #333333;
|
18 |
-
border: 1px solid #cccccc;
|
19 |
-
border-radius: 3px;
|
20 |
-
}
|
21 |
-
|
22 |
-
.pure-form.ecwid-settings .pure-button-secondary {
|
23 |
-
font-weight: bold;
|
24 |
-
color: #246fba;
|
25 |
-
}
|
26 |
-
|
27 |
-
.pure-form.ecwid-settings a.pure-button:not(.pure-button-primary):hover {
|
28 |
-
border-color: #137ebe;
|
29 |
-
color: #137ebe;
|
30 |
-
}
|
31 |
-
|
32 |
-
.pure-form.ecwid-settings .pure-button.pure-button-primary {
|
33 |
-
color: white;
|
34 |
-
font-weight: normal;
|
35 |
-
border-color: #189DEE;
|
36 |
-
background-color: #189DEE;
|
37 |
-
}
|
38 |
-
|
39 |
-
.pure-form.ecwid-settings .pure-button.pure-button-primary:hover {
|
40 |
-
border-color: #137ebe;
|
41 |
-
background-color: #137ebe;
|
42 |
-
}
|
43 |
-
|
44 |
-
.pure-form.ecwid-settings .link {
|
45 |
-
border: 0px none;
|
46 |
-
background: transparent;
|
47 |
-
box-shadow: none;
|
48 |
-
}
|
49 |
-
|
50 |
-
.pure-control-group.small-input > div {
|
51 |
-
display: table-cell;
|
52 |
-
vertical-align: middle;
|
53 |
-
position: relative;
|
54 |
-
}
|
55 |
-
|
56 |
-
.pure-control-group.small-input .label {
|
57 |
-
width: 265px;
|
58 |
-
font-weight: bold;
|
59 |
-
}
|
60 |
-
|
61 |
-
.pure-control-group.small-input .input > div {
|
62 |
-
width: 45px;
|
63 |
-
text-align: center;
|
64 |
-
vertical-align: middle;
|
65 |
-
z-index: 10;
|
66 |
-
position: relative;
|
67 |
-
left: 265px;
|
68 |
-
}
|
69 |
-
|
70 |
-
.pure-control-group.small-input .input input {
|
71 |
-
margin: 0px auto;
|
72 |
-
}
|
73 |
-
|
74 |
-
.pure-control-group.small-input .label > * {
|
75 |
-
position: relative;
|
76 |
-
left: -45px;
|
77 |
-
}
|
78 |
-
|
79 |
-
/* 2.8 compatibility for left menu icon */
|
80 |
-
.wp-menu-image>a>img {
|
81 |
-
display: none;
|
82 |
-
}
|
83 |
-
|
84 |
-
@media screen and (max-width: 782px) {
|
85 |
-
.ecwid-settings {
|
86 |
-
width: 100%;
|
87 |
-
}
|
88 |
-
}
|
89 |
-
|
90 |
-
.ecwid-settings {
|
91 |
-
width: 650px;
|
92 |
-
}
|
93 |
-
|
94 |
-
.ecwid-settings .pure-control-group {
|
95 |
-
margin-bottom: 19px;
|
96 |
-
}
|
97 |
-
|
98 |
-
.ecwid-settings legend {
|
99 |
-
margin-bottom: 10px;
|
100 |
-
}
|
101 |
-
|
102 |
-
.ecwid-settings hr {
|
103 |
-
margin-left: 0px;
|
104 |
-
border: 0px none;
|
105 |
-
height: 1px;
|
106 |
-
background: #e5e5e5;
|
107 |
-
margin-bottom: 20px;
|
108 |
-
}
|
109 |
-
|
110 |
-
.pure-form.ecwid-settings .pure-control-group label {
|
111 |
-
width: 232px;
|
112 |
-
font-weight: bold;
|
113 |
-
text-align: left;
|
114 |
-
margin-right: 5px;
|
115 |
-
}
|
116 |
-
|
117 |
-
.ecwid-settings.general-settings button {
|
118 |
-
position: relative;
|
119 |
-
top: 2px;
|
120 |
-
padding: 5px 31px 5px 31px;
|
121 |
-
margin-left: 5px;
|
122 |
-
}
|
123 |
-
|
124 |
-
.ecwid-settings.general-settings hr {
|
125 |
-
margin-bottom: 6px;
|
126 |
-
}
|
127 |
-
|
128 |
-
.ecwid-settings .warning {
|
129 |
-
background: #FFF797;
|
130 |
-
font-size: 12px;
|
131 |
-
padding: 8px 14px 8px 14px;
|
132 |
-
font-weight: bold;
|
133 |
-
color: #444444;
|
134 |
-
}
|
135 |
-
|
136 |
-
.ecwid-settings.appearance-settings h3 {
|
137 |
-
font-size: 12px;
|
138 |
-
}
|
139 |
-
|
140 |
-
.ecwid-settings.appearance-settings input[type=text] {
|
141 |
-
font-size: 13px;
|
142 |
-
padding: 5px 3px 4px 3px;
|
143 |
-
outline-offset: 0px;
|
144 |
-
}
|
145 |
-
|
146 |
-
.ecwid-settings input[type=text].number {
|
147 |
-
width: 27px;
|
148 |
-
text-align: center;
|
149 |
-
}
|
150 |
-
|
151 |
-
.ecwid-settings select {
|
152 |
-
padding: 5px;
|
153 |
-
}
|
154 |
-
|
155 |
-
.ecwid-settings .note.pb-note {
|
156 |
-
margin-right: 30px;
|
157 |
-
margin-left: 30px;
|
158 |
-
}
|
159 |
-
|
160 |
-
.ecwid-settings.appearance-settings {
|
161 |
-
max-width: 650px;
|
162 |
-
}
|
163 |
-
|
164 |
-
.ecwid-settings.appearance-settings .products-per-page-label {
|
165 |
-
padding-top: 5px;
|
166 |
-
padding-bottom: 15px;
|
167 |
-
display: block;
|
168 |
-
}
|
169 |
-
|
170 |
-
.ecwid-settings.appearance-settings input[type=checkbox] {
|
171 |
-
margin-right: 3px;
|
172 |
-
margin-left: 7px;
|
173 |
-
}
|
174 |
-
|
175 |
-
.ecwid-pb-view-size {
|
176 |
-
display: inline-block;
|
177 |
-
position: relative;
|
178 |
-
width: 153px;
|
179 |
-
height: 153px;
|
180 |
-
margin-left: 30px;
|
181 |
-
margin-right: 25px;
|
182 |
-
}
|
183 |
-
|
184 |
-
.ecwid-pb-view-size .title {
|
185 |
-
margin: 8px;
|
186 |
-
width: 110px;
|
187 |
-
text-align: center;
|
188 |
-
}
|
189 |
-
|
190 |
-
.ecwid-pb-view-size * {
|
191 |
-
transition: background-image .3s, border-color .3s, font-weight .3s;
|
192 |
-
}
|
193 |
-
|
194 |
-
|
195 |
-
.ecwid-pb-view-size .main-area {
|
196 |
-
width: 116px;
|
197 |
-
height: 82px;
|
198 |
-
border: 2px solid rgb(125, 209, 227);
|
199 |
-
border-color: rgba(125, 209, 227, .5);
|
200 |
-
border-radius: 2px;
|
201 |
-
float: left;
|
202 |
-
background-position: 50% 50%;
|
203 |
-
background-repeat: no-repeat;
|
204 |
-
text-align: center;
|
205 |
-
}
|
206 |
-
|
207 |
-
.ecwid-pb-view-size .main-area svg {
|
208 |
-
margin-top: 7px;
|
209 |
-
}
|
210 |
-
|
211 |
-
.ecwid-pb-view-size .main-area path,
|
212 |
-
.ecwid-pb-view-size .main-area rect {
|
213 |
-
fill: rgb(125, 209, 227);
|
214 |
-
}
|
215 |
-
|
216 |
-
.ecwid-pb-view-size .fallback-image {
|
217 |
-
width: 100px;
|
218 |
-
height: 66px;
|
219 |
-
background-repeat: no-repeat;
|
220 |
-
margin-top:7px;
|
221 |
-
margin-left:8px;
|
222 |
-
}
|
223 |
-
|
224 |
-
.ecwid-pb-view-size .grid-image {
|
225 |
-
background-image: url(../images/grid.png);
|
226 |
-
}
|
227 |
-
|
228 |
-
.ecwid-pb-view-size .list-image {
|
229 |
-
background-image: url(../images/list.png);
|
230 |
-
}
|
231 |
-
|
232 |
-
.ecwid-pb-view-size .table-image {
|
233 |
-
background-image: url(../images/table.png);
|
234 |
-
}
|
235 |
-
|
236 |
-
.ecwid-pb-view-size .right {
|
237 |
-
height:86px;
|
238 |
-
float: right;
|
239 |
-
position: relative;
|
240 |
-
}
|
241 |
-
|
242 |
-
.ecwid-pb-view-size .right input
|
243 |
-
{
|
244 |
-
margin-top: 30px;
|
245 |
-
}
|
246 |
-
|
247 |
-
.ecwid-pb-view-size .bottom input
|
248 |
-
{
|
249 |
-
margin-left: 48px;
|
250 |
-
}
|
251 |
-
|
252 |
-
.ecwid-pb-view-size .bottom {
|
253 |
-
width: 120px;
|
254 |
-
margin-top: 8px;
|
255 |
-
position: absolute;
|
256 |
-
top: 114px;
|
257 |
-
}
|
258 |
-
|
259 |
-
.ecwid-pb-view-size .ruler {
|
260 |
-
position: absolute;
|
261 |
-
background: #cccccc;
|
262 |
-
z-index: -1;
|
263 |
-
}
|
264 |
-
|
265 |
-
.ecwid-pb-view-size .right .ruler {
|
266 |
-
width: 1px;
|
267 |
-
height: 100%;
|
268 |
-
right: 13px;
|
269 |
-
}
|
270 |
-
|
271 |
-
.ecwid-pb-view-size .bottom .ruler {
|
272 |
-
width: 100%;
|
273 |
-
height: 1px;
|
274 |
-
bottom: 12px;
|
275 |
-
}
|
276 |
-
|
277 |
-
.ecwid-settings.advanced-settings .pure-control-group {
|
278 |
-
margin-bottom: 20px;
|
279 |
-
}
|
280 |
-
|
281 |
-
.ecwid-settings.advanced-settings .pure-control-group.last {
|
282 |
-
margin-bottom: 0px;
|
283 |
-
}
|
284 |
-
|
285 |
-
.ecwid-settings.advanced-settings .pure-control-group input:not([type=checkbox]),
|
286 |
-
.ecwid-settings.advanced-settings select
|
287 |
-
{
|
288 |
-
width: 200px;
|
289 |
-
height: 30px;
|
290 |
-
margin-right: 15px;
|
291 |
-
font-size: 13px;
|
292 |
-
border-color: #cacaca;
|
293 |
-
}
|
294 |
-
|
295 |
-
.ecwid-settings.advanced-settings .note {
|
296 |
-
margin-top: 15px;
|
297 |
-
}
|
298 |
-
|
299 |
-
.ecwid-settings.advanced-settings sup {
|
300 |
-
color: #298CBA;
|
301 |
-
}
|
302 |
-
|
303 |
-
.ecwid-settings.advanced-settings .pure-control-group.hidden,
|
304 |
-
.ecwid-settings.advanced-settings hr.hidden {
|
305 |
-
display: none;
|
306 |
-
}
|
307 |
-
|
308 |
-
.ecwid-settings .note.inline-note {
|
309 |
-
max-width: 300px;
|
310 |
-
margin-left: 15px;
|
311 |
-
vertical-align: middle;
|
312 |
-
}
|
313 |
-
|
314 |
-
.ecwid-settings .note.grayed-links,
|
315 |
-
.ecwid-settings .note.grayed-links a:not(:hover)
|
316 |
-
{
|
317 |
-
font-size: 11px;
|
318 |
-
color: #A0A0A0;
|
319 |
-
margin-top:10px;
|
320 |
-
margin-bottom: 10px;
|
321 |
-
}
|
322 |
-
|
323 |
-
/* Common main */
|
324 |
-
.ecwid-admin .box {
|
325 |
-
position: relative;
|
326 |
-
margin-top: 25px;
|
327 |
-
padding: 0 15px;
|
328 |
-
|
329 |
-
border: 1px solid #E5E5E5;
|
330 |
-
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
|
331 |
-
background: #FFF;
|
332 |
-
}
|
333 |
-
|
334 |
-
|
335 |
-
.ecwid-admin h2:before {
|
336 |
-
background: url(../images/ecwid_logo_symbol_RGB.svg);
|
337 |
-
width: 100px;
|
338 |
-
height: 20px;
|
339 |
-
border: 2px solid blue;
|
340 |
-
}
|
341 |
-
|
342 |
-
.ecwid-admin h3 {
|
343 |
-
position: relative;
|
344 |
-
padding: 0px;
|
345 |
-
margin: 0px;
|
346 |
-
left: 60px;
|
347 |
-
|
348 |
-
display: inline-block;
|
349 |
-
height: 70px;
|
350 |
-
line-height: 70px;
|
351 |
-
|
352 |
-
text-align: left;
|
353 |
-
|
354 |
-
font-size: 18px;
|
355 |
-
font-weight: normal;
|
356 |
-
}
|
357 |
-
|
358 |
-
.ecwid-admin .head {
|
359 |
-
border-bottom: 1px solid #EEE;
|
360 |
-
height: 70px;
|
361 |
-
}
|
362 |
-
|
363 |
-
.ecwid-admin .box .head {
|
364 |
-
text-align: left;
|
365 |
-
margin-bottom: 20px;
|
366 |
-
}
|
367 |
-
|
368 |
-
.ecwid-admin .head svg {
|
369 |
-
width: 32px;
|
370 |
-
height: 32px;
|
371 |
-
position: absolute;
|
372 |
-
top: 20px;
|
373 |
-
left: 20px;
|
374 |
-
margin-right: 10px;
|
375 |
-
}
|
376 |
-
/* END Common main */
|
377 |
-
|
378 |
-
|
379 |
-
/* CONNECT - positioning */
|
380 |
-
.ecwid-connect .box > div {
|
381 |
-
margin: 0px auto;
|
382 |
-
text-align: center;
|
383 |
-
}
|
384 |
-
|
385 |
-
.ecwid-connect .box h3 + div {
|
386 |
-
margin-top: 40px;
|
387 |
-
}
|
388 |
-
|
389 |
-
.ecwid-connect .box div:last-child {
|
390 |
-
margin-bottom: 40px;
|
391 |
-
}
|
392 |
-
|
393 |
-
.ecwid-connect .box .greeting-message {
|
394 |
-
margin-top: 11px;
|
395 |
-
line-height: 1.3em;
|
396 |
-
margin-bottom: 38px;
|
397 |
-
}
|
398 |
-
|
399 |
-
|
400 |
-
.ecwid-connect.ecwid-reconnect .box .greeting-message {
|
401 |
-
margin-bottom: inherit;
|
402 |
-
}
|
403 |
-
|
404 |
-
.ecwid-connect .box .connect-button {
|
405 |
-
margin-top: 8px;
|
406 |
-
}
|
407 |
-
.ecwid-connect .where-to-find-store-id {
|
408 |
-
margin-top: 25px;
|
409 |
-
margin-bottom: 0;
|
410 |
-
}
|
411 |
-
|
412 |
-
.ecwid-connect .box .note {
|
413 |
-
margin-top: 6px;
|
414 |
-
max-width: 760px;
|
415 |
-
font-size: 13px;
|
416 |
-
}
|
417 |
-
|
418 |
-
.ecwid-connect .box .note.reconnect-message {
|
419 |
-
margin-bottom: 38px;
|
420 |
-
color: #707070;
|
421 |
-
}
|
422 |
-
.ecwid-connect .box .create-account-link {
|
423 |
-
margin-top: 35px;
|
424 |
-
}
|
425 |
-
|
426 |
-
|
427 |
-
/* CONNECT - styles */
|
428 |
-
.ecwid-connect .box .greeting-message {
|
429 |
-
font-size: 24px;
|
430 |
-
font-weight: lighter;
|
431 |
-
}
|
432 |
-
|
433 |
-
.ecwid-connect .box .connect-button a {
|
434 |
-
padding: 14px 40px;
|
435 |
-
border: 0px none;
|
436 |
-
border-radius: 4px;
|
437 |
-
width: 180px;
|
438 |
-
|
439 |
-
background: #59bb00;
|
440 |
-
color: white;
|
441 |
-
font-size: 18px;
|
442 |
-
font-weight: lighter;
|
443 |
-
text-decoration: none;
|
444 |
-
|
445 |
-
transition: color 0.1s linear, background-color 0.1s linear, border-color 0.1s linear;
|
446 |
-
display: inline-block;
|
447 |
-
}
|
448 |
-
|
449 |
-
.ecwid-connect .box .connect-button a:hover {
|
450 |
-
background: #64A52F;
|
451 |
-
}
|
452 |
-
|
453 |
-
.ecwid-connect .box .note {
|
454 |
-
color: #A0A0A0;
|
455 |
-
line-height: 18px;
|
456 |
-
max-width: 400px;
|
457 |
-
}
|
458 |
-
|
459 |
-
.ecwid-connect .box .note.initial {
|
460 |
-
}
|
461 |
-
|
462 |
-
.ecwid-connect .box .note.auth-error {
|
463 |
-
max-width: 350px;
|
464 |
-
color: red;
|
465 |
-
}
|
466 |
-
|
467 |
-
/* wpcontent to stress the rule without using !mportant */
|
468 |
-
#wpcontent .ecwid-connect.no-oauth .with-oauth,
|
469 |
-
#wpcontent .ecwid-connect.with-oauth .no-oauth
|
470 |
-
{
|
471 |
-
display: none;
|
472 |
-
}
|
473 |
-
|
474 |
-
.ecwid-connect .connect-store-id {
|
475 |
-
|
476 |
-
}
|
477 |
-
|
478 |
-
.ecwid-connect #ecwid-store-id {
|
479 |
-
line-height: 38px;
|
480 |
-
width: 260px;
|
481 |
-
border-radius: 4px;
|
482 |
-
font-size: 16px;
|
483 |
-
font-weight: lighter;
|
484 |
-
padding-left: 10px;
|
485 |
-
font-family: 'Open Sans';
|
486 |
-
}
|
487 |
-
|
488 |
-
.ecwid-connect .box .create-account-link a {
|
489 |
-
text-decoration: none;
|
490 |
-
font-size: 14px;
|
491 |
-
}
|
492 |
-
|
493 |
-
.ecwid-dashboard .body {
|
494 |
-
padding: 70px 50px;
|
495 |
-
}
|
496 |
-
|
497 |
-
.ecwid-dashboard .greeting-image {
|
498 |
-
padding-right: 37px;
|
499 |
-
display: table-cell;
|
500 |
-
}
|
501 |
-
|
502 |
-
.ecwid-dashboard .greeting {
|
503 |
-
display: table-cell;
|
504 |
-
vertical-align: middle;
|
505 |
-
}
|
506 |
-
|
507 |
-
.ecwid-dashboard .greeting .greeting-title {
|
508 |
-
font-size: 24px;
|
509 |
-
margin-bottom: 12px;
|
510 |
-
}
|
511 |
-
|
512 |
-
.ecwid-dashboard .greeting .greeting-message {
|
513 |
-
font-size: 16px;
|
514 |
-
margin-bottom: 5px;
|
515 |
-
line-height: 1.3em;
|
516 |
-
}
|
517 |
-
|
518 |
-
.ecwid-dashboard .drop-down.store-id {
|
519 |
-
font-size: 14px;
|
520 |
-
padding: 10px 16px;
|
521 |
-
position: absolute;
|
522 |
-
right: 6px;
|
523 |
-
top: 13px;
|
524 |
-
line-height: 20px;
|
525 |
-
display: inline-block;
|
526 |
-
border: 1px solid transparent;
|
527 |
-
border-bottom: none;
|
528 |
-
height: 21px;
|
529 |
-
|
530 |
-
cursor: pointer;
|
531 |
-
}
|
532 |
-
|
533 |
-
.ecwid-dashboard .drop-down.store-id.hover {
|
534 |
-
cursor: default;
|
535 |
-
}
|
536 |
-
|
537 |
-
.ecwid-dashboard .drop-down.hover
|
538 |
-
{
|
539 |
-
border: 1px solid #CCC;
|
540 |
-
border-bottom: none;
|
541 |
-
background: white;
|
542 |
-
}
|
543 |
-
|
544 |
-
.ecwid-dashboard .store-id a {
|
545 |
-
text-decoration: none;
|
546 |
-
}
|
547 |
-
|
548 |
-
.ecwid-dashboard .drop-down > *:first-child:after {
|
549 |
-
font-family: 'dashicons';
|
550 |
-
content: '\f347';
|
551 |
-
position: relative;
|
552 |
-
top: .2em;
|
553 |
-
font-weight: lighter;
|
554 |
-
}
|
555 |
-
|
556 |
-
.ecwid-dashboard .drop-down.hover > *:first-child:after {
|
557 |
-
font-family: 'dashicons';
|
558 |
-
content: '\f343';
|
559 |
-
}
|
560 |
-
|
561 |
-
|
562 |
-
.ecwid-dashboard .drop-down > *:first-child {
|
563 |
-
color: #0074A2;
|
564 |
-
white-space: nowrap;
|
565 |
-
}
|
566 |
-
|
567 |
-
.ecwid-dashboard .drop-down > *:first-child:hover {
|
568 |
-
color: #2EA2CC;
|
569 |
-
}
|
570 |
-
|
571 |
-
.ecwid-dashboard .drop-down {
|
572 |
-
position: relative;
|
573 |
-
}
|
574 |
-
|
575 |
-
.ecwid-dashboard .drop-down.hover {
|
576 |
-
color: #2EA2CC;
|
577 |
-
}
|
578 |
-
|
579 |
-
.ecwid-dashboard .drop-down ul
|
580 |
-
{
|
581 |
-
display: none;
|
582 |
-
}
|
583 |
-
.ecwid-dashboard .drop-down.hover ul
|
584 |
-
{
|
585 |
-
display: inline-block;
|
586 |
-
}
|
587 |
-
|
588 |
-
|
589 |
-
.ecwid-dashboard .drop-down ul {
|
590 |
-
position: absolute;
|
591 |
-
top: 100%;
|
592 |
-
width: 100%;
|
593 |
-
font-size: 14px;
|
594 |
-
left: 0px;
|
595 |
-
margin: 0px;
|
596 |
-
padding-left: 0px;
|
597 |
-
|
598 |
-
outline: 1px solid #ccc;
|
599 |
-
}
|
600 |
-
|
601 |
-
.ecwid-dashboard .drop-down ul li {
|
602 |
-
border-bottom: 1px solid #ccc;
|
603 |
-
margin-bottom: 0;
|
604 |
-
background: white;
|
605 |
-
text-align: left;
|
606 |
-
}
|
607 |
-
|
608 |
-
.ecwid-dashboard .drop-down ul li:last-child {
|
609 |
-
border-bottom: none;
|
610 |
-
}
|
611 |
-
|
612 |
-
|
613 |
-
.ecwid-dashboard .drop-down ul a {
|
614 |
-
display: block;
|
615 |
-
padding: 10px 16px;
|
616 |
-
text-decoration: none;
|
617 |
-
}
|
618 |
-
|
619 |
-
.ecwid-dashboard .drop-down ul li:hover {
|
620 |
-
background: #0074A2;
|
621 |
-
}
|
622 |
-
|
623 |
-
.ecwid-dashboard .drop-down ul li:hover a {
|
624 |
-
color: white;
|
625 |
-
}
|
626 |
-
|
627 |
-
.ecwid-dashboard .drop-down * {
|
628 |
-
transition: color .2s, background .2s;
|
629 |
-
}
|
630 |
-
|
631 |
-
.ecwid-dashboard .greeting-links {
|
632 |
-
padding-left: 0px;
|
633 |
-
margin-top: 5px;
|
634 |
-
}
|
635 |
-
|
636 |
-
.ecwid-dashboard .greeting-links > * {
|
637 |
-
display: inline-block;
|
638 |
-
margin: 15px 15px;
|
639 |
-
}
|
640 |
-
|
641 |
-
.ecwid-dashboard .greeting-links > *:first-child {
|
642 |
-
margin-left: 0;
|
643 |
-
}
|
644 |
-
|
645 |
-
.ecwid-dashboard .greeting-links a {
|
646 |
-
text-decoration: none;
|
647 |
-
font-size: 14px;
|
648 |
-
}
|
649 |
-
|
650 |
-
.ecwid-dashboard.width-smaller .head {
|
651 |
-
height: 74px;
|
652 |
-
}
|
653 |
-
|
654 |
-
.ecwid-dashboard.width-smaller .head svg {
|
655 |
-
left: 20px;
|
656 |
-
top: 24px;
|
657 |
-
}
|
658 |
-
|
659 |
-
.ecwid-dashboard.width-smaller .head h3 {
|
660 |
-
left: 68px;
|
661 |
-
top: -4px;
|
662 |
-
}
|
663 |
-
|
664 |
-
.ecwid-dashboard.width-smaller .store-id {
|
665 |
-
right: inherit;
|
666 |
-
left: 51px;
|
667 |
-
top: 30px;
|
668 |
-
}
|
669 |
-
|
670 |
-
.ecwid-dashboard.width-smaller .body {
|
671 |
-
text-align: center;
|
672 |
-
padding: 20px 0px;
|
673 |
-
}
|
674 |
-
|
675 |
-
.ecwid-dashboard.width-smaller .greeting-image,
|
676 |
-
.ecwid-dashboard.width-smaller .greeting
|
677 |
-
{
|
678 |
-
display: block;
|
679 |
-
padding-right: 0px;
|
680 |
-
}
|
681 |
-
|
682 |
-
.ecwid-dashboard.width-smaller .greeting-title {
|
683 |
-
margin-top: 10px;
|
684 |
-
}
|
685 |
-
|
686 |
-
|
687 |
-
.ecwid-admin .mobile-br br {
|
688 |
-
display: none;
|
689 |
-
}
|
690 |
-
|
691 |
-
.ecwid-admin.width-smaller .mobile-br br {
|
692 |
-
display: inherit;
|
693 |
-
}
|
694 |
-
|
695 |
-
.ecwid-popup {
|
696 |
-
position: fixed;
|
697 |
-
left: 170px;
|
698 |
-
top: 42px;
|
699 |
-
right: 10px;
|
700 |
-
bottom: 10px;
|
701 |
-
}
|
702 |
-
|
703 |
-
.ecwid-popup .wrap {
|
704 |
-
margin: 0px;
|
705 |
-
}
|
706 |
-
|
707 |
-
.ecwid-popup .box {
|
708 |
-
margin: 0px;
|
709 |
-
position: absolute;
|
710 |
-
left: 0;
|
711 |
-
right: 0;
|
712 |
-
top: 0;
|
713 |
-
bottom: 0;
|
714 |
-
}
|
715 |
-
.ecwid-popup h3 span.close {
|
716 |
-
position: absolute;
|
717 |
-
right: 15px;
|
718 |
-
cursor: pointer;
|
719 |
-
color: #2EA2CC;
|
720 |
-
}
|
721 |
-
|
722 |
-
.ecwid-popup h3 span.close:before {
|
723 |
-
content: "\e606";
|
724 |
-
font-family: ecwid-icons;
|
725 |
-
font-size: 36px;
|
726 |
-
}
|
727 |
-
|
728 |
-
|
729 |
-
@media screen and (max-width: 960px) {
|
730 |
-
.ecwid-popup {
|
731 |
-
left: 44px;
|
732 |
-
}
|
733 |
-
}
|
734 |
-
|
735 |
-
@media screen and (max-width: 782px) {
|
736 |
-
.ecwid-popup {
|
737 |
-
left: 0px;
|
738 |
-
right: 0px;
|
739 |
-
top: 46px;
|
740 |
-
bottom: 0px;
|
741 |
-
}
|
742 |
-
}
|
1 |
+
.pure-form.ecwid-settings fieldset {
|
2 |
+
font-size: 14px;
|
3 |
+
}
|
4 |
+
|
5 |
+
.pure-form.ecwid-settings fieldset > :not(legend) {
|
6 |
+
margin-left:14px;
|
7 |
+
}
|
8 |
+
|
9 |
+
.pure-form.ecwid-settings .pure-button {
|
10 |
+
height: auto;
|
11 |
+
line-height: 32px;
|
12 |
+
padding: 0px 20px;
|
13 |
+
font-size: 14px;
|
14 |
+
background-image: none;
|
15 |
+
background-color: #f6f6f6;
|
16 |
+
font-weight: normal;
|
17 |
+
color: #333333;
|
18 |
+
border: 1px solid #cccccc;
|
19 |
+
border-radius: 3px;
|
20 |
+
}
|
21 |
+
|
22 |
+
.pure-form.ecwid-settings .pure-button-secondary {
|
23 |
+
font-weight: bold;
|
24 |
+
color: #246fba;
|
25 |
+
}
|
26 |
+
|
27 |
+
.pure-form.ecwid-settings a.pure-button:not(.pure-button-primary):hover {
|
28 |
+
border-color: #137ebe;
|
29 |
+
color: #137ebe;
|
30 |
+
}
|
31 |
+
|
32 |
+
.pure-form.ecwid-settings .pure-button.pure-button-primary {
|
33 |
+
color: white;
|
34 |
+
font-weight: normal;
|
35 |
+
border-color: #189DEE;
|
36 |
+
background-color: #189DEE;
|
37 |
+
}
|
38 |
+
|
39 |
+
.pure-form.ecwid-settings .pure-button.pure-button-primary:hover {
|
40 |
+
border-color: #137ebe;
|
41 |
+
background-color: #137ebe;
|
42 |
+
}
|
43 |
+
|
44 |
+
.pure-form.ecwid-settings .link {
|
45 |
+
border: 0px none;
|
46 |
+
background: transparent;
|
47 |
+
box-shadow: none;
|
48 |
+
}
|
49 |
+
|
50 |
+
.pure-control-group.small-input > div {
|
51 |
+
display: table-cell;
|
52 |
+
vertical-align: middle;
|
53 |
+
position: relative;
|
54 |
+
}
|
55 |
+
|
56 |
+
.pure-control-group.small-input .label {
|
57 |
+
width: 265px;
|
58 |
+
font-weight: bold;
|
59 |
+
}
|
60 |
+
|
61 |
+
.pure-control-group.small-input .input > div {
|
62 |
+
width: 45px;
|
63 |
+
text-align: center;
|
64 |
+
vertical-align: middle;
|
65 |
+
z-index: 10;
|
66 |
+
position: relative;
|
67 |
+
left: 265px;
|
68 |
+
}
|
69 |
+
|
70 |
+
.pure-control-group.small-input .input input {
|
71 |
+
margin: 0px auto;
|
72 |
+
}
|
73 |
+
|
74 |
+
.pure-control-group.small-input .label > * {
|
75 |
+
position: relative;
|
76 |
+
left: -45px;
|
77 |
+
}
|
78 |
+
|
79 |
+
/* 2.8 compatibility for left menu icon */
|
80 |
+
.wp-menu-image>a>img {
|
81 |
+
display: none;
|
82 |
+
}
|
83 |
+
|
84 |
+
@media screen and (max-width: 782px) {
|
85 |
+
.ecwid-settings {
|
86 |
+
width: 100%;
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
90 |
+
.ecwid-settings {
|
91 |
+
width: 650px;
|
92 |
+
}
|
93 |
+
|
94 |
+
.ecwid-settings .pure-control-group {
|
95 |
+
margin-bottom: 19px;
|
96 |
+
}
|
97 |
+
|
98 |
+
.ecwid-settings legend {
|
99 |
+
margin-bottom: 10px;
|
100 |
+
}
|
101 |
+
|
102 |
+
.ecwid-settings hr {
|
103 |
+
margin-left: 0px;
|
104 |
+
border: 0px none;
|
105 |
+
height: 1px;
|
106 |
+
background: #e5e5e5;
|
107 |
+
margin-bottom: 20px;
|
108 |
+
}
|
109 |
+
|
110 |
+
.pure-form.ecwid-settings .pure-control-group label {
|
111 |
+
width: 232px;
|
112 |
+
font-weight: bold;
|
113 |
+
text-align: left;
|
114 |
+
margin-right: 5px;
|
115 |
+
}
|
116 |
+
|
117 |
+
.ecwid-settings.general-settings button {
|
118 |
+
position: relative;
|
119 |
+
top: 2px;
|
120 |
+
padding: 5px 31px 5px 31px;
|
121 |
+
margin-left: 5px;
|
122 |
+
}
|
123 |
+
|
124 |
+
.ecwid-settings.general-settings hr {
|
125 |
+
margin-bottom: 6px;
|
126 |
+
}
|
127 |
+
|
128 |
+
.ecwid-settings .warning {
|
129 |
+
background: #FFF797;
|
130 |
+
font-size: 12px;
|
131 |
+
padding: 8px 14px 8px 14px;
|
132 |
+
font-weight: bold;
|
133 |
+
color: #444444;
|
134 |
+
}
|
135 |
+
|
136 |
+
.ecwid-settings.appearance-settings h3 {
|
137 |
+
font-size: 12px;
|
138 |
+
}
|
139 |
+
|
140 |
+
.ecwid-settings.appearance-settings input[type=text] {
|
141 |
+
font-size: 13px;
|
142 |
+
padding: 5px 3px 4px 3px;
|
143 |
+
outline-offset: 0px;
|
144 |
+
}
|
145 |
+
|
146 |
+
.ecwid-settings input[type=text].number {
|
147 |
+
width: 27px;
|
148 |
+
text-align: center;
|
149 |
+
}
|
150 |
+
|
151 |
+
.ecwid-settings select {
|
152 |
+
padding: 5px;
|
153 |
+
}
|
154 |
+
|
155 |
+
.ecwid-settings .note.pb-note {
|
156 |
+
margin-right: 30px;
|
157 |
+
margin-left: 30px;
|
158 |
+
}
|
159 |
+
|
160 |
+
.ecwid-settings.appearance-settings {
|
161 |
+
max-width: 650px;
|
162 |
+
}
|
163 |
+
|
164 |
+
.ecwid-settings.appearance-settings .products-per-page-label {
|
165 |
+
padding-top: 5px;
|
166 |
+
padding-bottom: 15px;
|
167 |
+
display: block;
|
168 |
+
}
|
169 |
+
|
170 |
+
.ecwid-settings.appearance-settings input[type=checkbox] {
|
171 |
+
margin-right: 3px;
|
172 |
+
margin-left: 7px;
|
173 |
+
}
|
174 |
+
|
175 |
+
.ecwid-pb-view-size {
|
176 |
+
display: inline-block;
|
177 |
+
position: relative;
|
178 |
+
width: 153px;
|
179 |
+
height: 153px;
|
180 |
+
margin-left: 30px;
|
181 |
+
margin-right: 25px;
|
182 |
+
}
|
183 |
+
|
184 |
+
.ecwid-pb-view-size .title {
|
185 |
+
margin: 8px;
|
186 |
+
width: 110px;
|
187 |
+
text-align: center;
|
188 |
+
}
|
189 |
+
|
190 |
+
.ecwid-pb-view-size * {
|
191 |
+
transition: background-image .3s, border-color .3s, font-weight .3s;
|
192 |
+
}
|
193 |
+
|
194 |
+
|
195 |
+
.ecwid-pb-view-size .main-area {
|
196 |
+
width: 116px;
|
197 |
+
height: 82px;
|
198 |
+
border: 2px solid rgb(125, 209, 227);
|
199 |
+
border-color: rgba(125, 209, 227, .5);
|
200 |
+
border-radius: 2px;
|
201 |
+
float: left;
|
202 |
+
background-position: 50% 50%;
|
203 |
+
background-repeat: no-repeat;
|
204 |
+
text-align: center;
|
205 |
+
}
|
206 |
+
|
207 |
+
.ecwid-pb-view-size .main-area svg {
|
208 |
+
margin-top: 7px;
|
209 |
+
}
|
210 |
+
|
211 |
+
.ecwid-pb-view-size .main-area path,
|
212 |
+
.ecwid-pb-view-size .main-area rect {
|
213 |
+
fill: rgb(125, 209, 227);
|
214 |
+
}
|
215 |
+
|
216 |
+
.ecwid-pb-view-size .fallback-image {
|
217 |
+
width: 100px;
|
218 |
+
height: 66px;
|
219 |
+
background-repeat: no-repeat;
|
220 |
+
margin-top:7px;
|
221 |
+
margin-left:8px;
|
222 |
+
}
|
223 |
+
|
224 |
+
.ecwid-pb-view-size .grid-image {
|
225 |
+
background-image: url(../images/grid.png);
|
226 |
+
}
|
227 |
+
|
228 |
+
.ecwid-pb-view-size .list-image {
|
229 |
+
background-image: url(../images/list.png);
|
230 |
+
}
|
231 |
+
|
232 |
+
.ecwid-pb-view-size .table-image {
|
233 |
+
background-image: url(../images/table.png);
|
234 |
+
}
|
235 |
+
|
236 |
+
.ecwid-pb-view-size .right {
|
237 |
+
height:86px;
|
238 |
+
float: right;
|
239 |
+
position: relative;
|
240 |
+
}
|
241 |
+
|
242 |
+
.ecwid-pb-view-size .right input
|
243 |
+
{
|
244 |
+
margin-top: 30px;
|
245 |
+
}
|
246 |
+
|
247 |
+
.ecwid-pb-view-size .bottom input
|
248 |
+
{
|
249 |
+
margin-left: 48px;
|
250 |
+
}
|
251 |
+
|
252 |
+
.ecwid-pb-view-size .bottom {
|
253 |
+
width: 120px;
|
254 |
+
margin-top: 8px;
|
255 |
+
position: absolute;
|
256 |
+
top: 114px;
|
257 |
+
}
|
258 |
+
|
259 |
+
.ecwid-pb-view-size .ruler {
|
260 |
+
position: absolute;
|
261 |
+
background: #cccccc;
|
262 |
+
z-index: -1;
|
263 |
+
}
|
264 |
+
|
265 |
+
.ecwid-pb-view-size .right .ruler {
|
266 |
+
width: 1px;
|
267 |
+
height: 100%;
|
268 |
+
right: 13px;
|
269 |
+
}
|
270 |
+
|
271 |
+
.ecwid-pb-view-size .bottom .ruler {
|
272 |
+
width: 100%;
|
273 |
+
height: 1px;
|
274 |
+
bottom: 12px;
|
275 |
+
}
|
276 |
+
|
277 |
+
.ecwid-settings.advanced-settings .pure-control-group {
|
278 |
+
margin-bottom: 20px;
|
279 |
+
}
|
280 |
+
|
281 |
+
.ecwid-settings.advanced-settings .pure-control-group.last {
|
282 |
+
margin-bottom: 0px;
|
283 |
+
}
|
284 |
+
|
285 |
+
.ecwid-settings.advanced-settings .pure-control-group input:not([type=checkbox]),
|
286 |
+
.ecwid-settings.advanced-settings select
|
287 |
+
{
|
288 |
+
width: 200px;
|
289 |
+
height: 30px;
|
290 |
+
margin-right: 15px;
|
291 |
+
font-size: 13px;
|
292 |
+
border-color: #cacaca;
|
293 |
+
}
|
294 |
+
|
295 |
+
.ecwid-settings.advanced-settings .note {
|
296 |
+
margin-top: 15px;
|
297 |
+
}
|
298 |
+
|
299 |
+
.ecwid-settings.advanced-settings sup {
|
300 |
+
color: #298CBA;
|
301 |
+
}
|
302 |
+
|
303 |
+
.ecwid-settings.advanced-settings .pure-control-group.hidden,
|
304 |
+
.ecwid-settings.advanced-settings hr.hidden {
|
305 |
+
display: none;
|
306 |
+
}
|
307 |
+
|
308 |
+
.ecwid-settings .note.inline-note {
|
309 |
+
max-width: 300px;
|
310 |
+
margin-left: 15px;
|
311 |
+
vertical-align: middle;
|
312 |
+
}
|
313 |
+
|
314 |
+
.ecwid-settings .note.grayed-links,
|
315 |
+
.ecwid-settings .note.grayed-links a:not(:hover)
|
316 |
+
{
|
317 |
+
font-size: 11px;
|
318 |
+
color: #A0A0A0;
|
319 |
+
margin-top:10px;
|
320 |
+
margin-bottom: 10px;
|
321 |
+
}
|
322 |
+
|
323 |
+
/* Common main */
|
324 |
+
.ecwid-admin .box {
|
325 |
+
position: relative;
|
326 |
+
margin-top: 25px;
|
327 |
+
padding: 0 15px;
|
328 |
+
|
329 |
+
border: 1px solid #E5E5E5;
|
330 |
+
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
|
331 |
+
background: #FFF;
|
332 |
+
}
|
333 |
+
|
334 |
+
|
335 |
+
.ecwid-admin h2:before {
|
336 |
+
background: url(../images/ecwid_logo_symbol_RGB.svg);
|
337 |
+
width: 100px;
|
338 |
+
height: 20px;
|
339 |
+
border: 2px solid blue;
|
340 |
+
}
|
341 |
+
|
342 |
+
.ecwid-admin h3 {
|
343 |
+
position: relative;
|
344 |
+
padding: 0px;
|
345 |
+
margin: 0px;
|
346 |
+
left: 60px;
|
347 |
+
|
348 |
+
display: inline-block;
|
349 |
+
height: 70px;
|
350 |
+
line-height: 70px;
|
351 |
+
|
352 |
+
text-align: left;
|
353 |
+
|
354 |
+
font-size: 18px;
|
355 |
+
font-weight: normal;
|
356 |
+
}
|
357 |
+
|
358 |
+
.ecwid-admin .head {
|
359 |
+
border-bottom: 1px solid #EEE;
|
360 |
+
height: 70px;
|
361 |
+
}
|
362 |
+
|
363 |
+
.ecwid-admin .box .head {
|
364 |
+
text-align: left;
|
365 |
+
margin-bottom: 20px;
|
366 |
+
}
|
367 |
+
|
368 |
+
.ecwid-admin .head svg {
|
369 |
+
width: 32px;
|
370 |
+
height: 32px;
|
371 |
+
position: absolute;
|
372 |
+
top: 20px;
|
373 |
+
left: 20px;
|
374 |
+
margin-right: 10px;
|
375 |
+
}
|
376 |
+
/* END Common main */
|
377 |
+
|
378 |
+
|
379 |
+
/* CONNECT - positioning */
|
380 |
+
.ecwid-connect .box > div {
|
381 |
+
margin: 0px auto;
|
382 |
+
text-align: center;
|
383 |
+
}
|
384 |
+
|
385 |
+
.ecwid-connect .box h3 + div {
|
386 |
+
margin-top: 40px;
|
387 |
+
}
|
388 |
+
|
389 |
+
.ecwid-connect .box div:last-child {
|
390 |
+
margin-bottom: 40px;
|
391 |
+
}
|
392 |
+
|
393 |
+
.ecwid-connect .box .greeting-message {
|
394 |
+
margin-top: 11px;
|
395 |
+
line-height: 1.3em;
|
396 |
+
margin-bottom: 38px;
|
397 |
+
}
|
398 |
+
|
399 |
+
|
400 |
+
.ecwid-connect.ecwid-reconnect .box .greeting-message {
|
401 |
+
margin-bottom: inherit;
|
402 |
+
}
|
403 |
+
|
404 |
+
.ecwid-connect .box .connect-button {
|
405 |
+
margin-top: 8px;
|
406 |
+
}
|
407 |
+
.ecwid-connect .where-to-find-store-id {
|
408 |
+
margin-top: 25px;
|
409 |
+
margin-bottom: 0;
|
410 |
+
}
|
411 |
+
|
412 |
+
.ecwid-connect .box .note {
|
413 |
+
margin-top: 6px;
|
414 |
+
max-width: 760px;
|
415 |
+
font-size: 13px;
|
416 |
+
}
|
417 |
+
|
418 |
+
.ecwid-connect .box .note.reconnect-message {
|
419 |
+
margin-bottom: 38px;
|
420 |
+
color: #707070;
|
421 |
+
}
|
422 |
+
.ecwid-connect .box .create-account-link {
|
423 |
+
margin-top: 35px;
|
424 |
+
}
|
425 |
+
|
426 |
+
|
427 |
+
/* CONNECT - styles */
|
428 |
+
.ecwid-connect .box .greeting-message {
|
429 |
+
font-size: 24px;
|
430 |
+
font-weight: lighter;
|
431 |
+
}
|
432 |
+
|
433 |
+
.ecwid-connect .box .connect-button a {
|
434 |
+
padding: 14px 40px;
|
435 |
+
border: 0px none;
|
436 |
+
border-radius: 4px;
|
437 |
+
width: 180px;
|
438 |
+
|
439 |
+
background: #59bb00;
|
440 |
+
color: white;
|
441 |
+
font-size: 18px;
|
442 |
+
font-weight: lighter;
|
443 |
+
text-decoration: none;
|
444 |
+
|
445 |
+
transition: color 0.1s linear, background-color 0.1s linear, border-color 0.1s linear;
|
446 |
+
display: inline-block;
|
447 |
+
}
|
448 |
+
|
449 |
+
.ecwid-connect .box .connect-button a:hover {
|
450 |
+
background: #64A52F;
|
451 |
+
}
|
452 |
+
|
453 |
+
.ecwid-connect .box .note {
|
454 |
+
color: #A0A0A0;
|
455 |
+
line-height: 18px;
|
456 |
+
max-width: 400px;
|
457 |
+
}
|
458 |
+
|
459 |
+
.ecwid-connect .box .note.initial {
|
460 |
+
}
|
461 |
+
|
462 |
+
.ecwid-connect .box .note.auth-error {
|
463 |
+
max-width: 350px;
|
464 |
+
color: red;
|
465 |
+
}
|
466 |
+
|
467 |
+
/* wpcontent to stress the rule without using !mportant */
|
468 |
+
#wpcontent .ecwid-connect.no-oauth .with-oauth,
|
469 |
+
#wpcontent .ecwid-connect.with-oauth .no-oauth
|
470 |
+
{
|
471 |
+
display: none;
|
472 |
+
}
|
473 |
+
|
474 |
+
.ecwid-connect .connect-store-id {
|
475 |
+
|
476 |
+
}
|
477 |
+
|
478 |
+
.ecwid-connect #ecwid-store-id {
|
479 |
+
line-height: 38px;
|
480 |
+
width: 260px;
|
481 |
+
border-radius: 4px;
|
482 |
+
font-size: 16px;
|
483 |
+
font-weight: lighter;
|
484 |
+
padding-left: 10px;
|
485 |
+
font-family: 'Open Sans';
|
486 |
+
}
|
487 |
+
|
488 |
+
.ecwid-connect .box .create-account-link a {
|
489 |
+
text-decoration: none;
|
490 |
+
font-size: 14px;
|
491 |
+
}
|
492 |
+
|
493 |
+
.ecwid-dashboard .body {
|
494 |
+
padding: 70px 50px;
|
495 |
+
}
|
496 |
+
|
497 |
+
.ecwid-dashboard .greeting-image {
|
498 |
+
padding-right: 37px;
|
499 |
+
display: table-cell;
|
500 |
+
}
|
501 |
+
|
502 |
+
.ecwid-dashboard .greeting {
|
503 |
+
display: table-cell;
|
504 |
+
vertical-align: middle;
|
505 |
+
}
|
506 |
+
|
507 |
+
.ecwid-dashboard .greeting .greeting-title {
|
508 |
+
font-size: 24px;
|
509 |
+
margin-bottom: 12px;
|
510 |
+
}
|
511 |
+
|
512 |
+
.ecwid-dashboard .greeting .greeting-message {
|
513 |
+
font-size: 16px;
|
514 |
+
margin-bottom: 5px;
|
515 |
+
line-height: 1.3em;
|
516 |
+
}
|
517 |
+
|
518 |
+
.ecwid-dashboard .drop-down.store-id {
|
519 |
+
font-size: 14px;
|
520 |
+
padding: 10px 16px;
|
521 |
+
position: absolute;
|
522 |
+
right: 6px;
|
523 |
+
top: 13px;
|
524 |
+
line-height: 20px;
|
525 |
+
display: inline-block;
|
526 |
+
border: 1px solid transparent;
|
527 |
+
border-bottom: none;
|
528 |
+
height: 21px;
|
529 |
+
|
530 |
+
cursor: pointer;
|
531 |
+
}
|
532 |
+
|
533 |
+
.ecwid-dashboard .drop-down.store-id.hover {
|
534 |
+
cursor: default;
|
535 |
+
}
|
536 |
+
|
537 |
+
.ecwid-dashboard .drop-down.hover
|
538 |
+
{
|
539 |
+
border: 1px solid #CCC;
|
540 |
+
border-bottom: none;
|
541 |
+
background: white;
|
542 |
+
}
|
543 |
+
|
544 |
+
.ecwid-dashboard .store-id a {
|
545 |
+
text-decoration: none;
|
546 |
+
}
|
547 |
+
|
548 |
+
.ecwid-dashboard .drop-down > *:first-child:after {
|
549 |
+
font-family: 'dashicons';
|
550 |
+
content: '\f347';
|
551 |
+
position: relative;
|
552 |
+
top: .2em;
|
553 |
+
font-weight: lighter;
|
554 |
+
}
|
555 |
+
|
556 |
+
.ecwid-dashboard .drop-down.hover > *:first-child:after {
|
557 |
+
font-family: 'dashicons';
|
558 |
+
content: '\f343';
|
559 |
+
}
|
560 |
+
|
561 |
+
|
562 |
+
.ecwid-dashboard .drop-down > *:first-child {
|
563 |
+
color: #0074A2;
|
564 |
+
white-space: nowrap;
|
565 |
+
}
|
566 |
+
|
567 |
+
.ecwid-dashboard .drop-down > *:first-child:hover {
|
568 |
+
color: #2EA2CC;
|
569 |
+
}
|
570 |
+
|
571 |
+
.ecwid-dashboard .drop-down {
|
572 |
+
position: relative;
|
573 |
+
}
|
574 |
+
|
575 |
+
.ecwid-dashboard .drop-down.hover {
|
576 |
+
color: #2EA2CC;
|
577 |
+
}
|
578 |
+
|
579 |
+
.ecwid-dashboard .drop-down ul
|
580 |
+
{
|
581 |
+
display: none;
|
582 |
+
}
|
583 |
+
.ecwid-dashboard .drop-down.hover ul
|
584 |
+
{
|
585 |
+
display: inline-block;
|
586 |
+
}
|
587 |
+
|
588 |
+
|
589 |
+
.ecwid-dashboard .drop-down ul {
|
590 |
+
position: absolute;
|
591 |
+
top: 100%;
|
592 |
+
width: 100%;
|
593 |
+
font-size: 14px;
|
594 |
+
left: 0px;
|
595 |
+
margin: 0px;
|
596 |
+
padding-left: 0px;
|
597 |
+
|
598 |
+
outline: 1px solid #ccc;
|
599 |
+
}
|
600 |
+
|
601 |
+
.ecwid-dashboard .drop-down ul li {
|
602 |
+
border-bottom: 1px solid #ccc;
|
603 |
+
margin-bottom: 0;
|
604 |
+
background: white;
|
605 |
+
text-align: left;
|
606 |
+
}
|
607 |
+
|
608 |
+
.ecwid-dashboard .drop-down ul li:last-child {
|
609 |
+
border-bottom: none;
|
610 |
+
}
|
611 |
+
|
612 |
+
|
613 |
+
.ecwid-dashboard .drop-down ul a {
|
614 |
+
display: block;
|
615 |
+
padding: 10px 16px;
|
616 |
+
text-decoration: none;
|
617 |
+
}
|
618 |
+
|
619 |
+
.ecwid-dashboard .drop-down ul li:hover {
|
620 |
+
background: #0074A2;
|
621 |
+
}
|
622 |
+
|
623 |
+
.ecwid-dashboard .drop-down ul li:hover a {
|
624 |
+
color: white;
|
625 |
+
}
|
626 |
+
|
627 |
+
.ecwid-dashboard .drop-down * {
|
628 |
+
transition: color .2s, background .2s;
|
629 |
+
}
|
630 |
+
|
631 |
+
.ecwid-dashboard .greeting-links {
|
632 |
+
padding-left: 0px;
|
633 |
+
margin-top: 5px;
|
634 |
+
}
|
635 |
+
|
636 |
+
.ecwid-dashboard .greeting-links > * {
|
637 |
+
display: inline-block;
|
638 |
+
margin: 15px 15px;
|
639 |
+
}
|
640 |
+
|
641 |
+
.ecwid-dashboard .greeting-links > *:first-child {
|
642 |
+
margin-left: 0;
|
643 |
+
}
|
644 |
+
|
645 |
+
.ecwid-dashboard .greeting-links a {
|
646 |
+
text-decoration: none;
|
647 |
+
font-size: 14px;
|
648 |
+
}
|
649 |
+
|
650 |
+
.ecwid-dashboard.width-smaller .head {
|
651 |
+
height: 74px;
|
652 |
+
}
|
653 |
+
|
654 |
+
.ecwid-dashboard.width-smaller .head svg {
|
655 |
+
left: 20px;
|
656 |
+
top: 24px;
|
657 |
+
}
|
658 |
+
|
659 |
+
.ecwid-dashboard.width-smaller .head h3 {
|
660 |
+
left: 68px;
|
661 |
+
top: -4px;
|
662 |
+
}
|
663 |
+
|
664 |
+
.ecwid-dashboard.width-smaller .store-id {
|
665 |
+
right: inherit;
|
666 |
+
left: 51px;
|
667 |
+
top: 30px;
|
668 |
+
}
|
669 |
+
|
670 |
+
.ecwid-dashboard.width-smaller .body {
|
671 |
+
text-align: center;
|
672 |
+
padding: 20px 0px;
|
673 |
+
}
|
674 |
+
|
675 |
+
.ecwid-dashboard.width-smaller .greeting-image,
|
676 |
+
.ecwid-dashboard.width-smaller .greeting
|
677 |
+
{
|
678 |
+
display: block;
|
679 |
+
padding-right: 0px;
|
680 |
+
}
|
681 |
+
|
682 |
+
.ecwid-dashboard.width-smaller .greeting-title {
|
683 |
+
margin-top: 10px;
|
684 |
+
}
|
685 |
+
|
686 |
+
|
687 |
+
.ecwid-admin .mobile-br br {
|
688 |
+
display: none;
|
689 |
+
}
|
690 |
+
|
691 |
+
.ecwid-admin.width-smaller .mobile-br br {
|
692 |
+
display: inherit;
|
693 |
+
}
|
694 |
+
|
695 |
+
.ecwid-popup {
|
696 |
+
position: fixed;
|
697 |
+
left: 170px;
|
698 |
+
top: 42px;
|
699 |
+
right: 10px;
|
700 |
+
bottom: 10px;
|
701 |
+
}
|
702 |
+
|
703 |
+
.ecwid-popup .wrap {
|
704 |
+
margin: 0px;
|
705 |
+
}
|
706 |
+
|
707 |
+
.ecwid-popup .box {
|
708 |
+
margin: 0px;
|
709 |
+
position: absolute;
|
710 |
+
left: 0;
|
711 |
+
right: 0;
|
712 |
+
top: 0;
|
713 |
+
bottom: 0;
|
714 |
+
}
|
715 |
+
.ecwid-popup h3 span.close {
|
716 |
+
position: absolute;
|
717 |
+
right: 15px;
|
718 |
+
cursor: pointer;
|
719 |
+
color: #2EA2CC;
|
720 |
+
}
|
721 |
+
|
722 |
+
.ecwid-popup h3 span.close:before {
|
723 |
+
content: "\e606";
|
724 |
+
font-family: ecwid-icons;
|
725 |
+
font-size: 36px;
|
726 |
+
}
|
727 |
+
|
728 |
+
|
729 |
+
@media screen and (max-width: 960px) {
|
730 |
+
.ecwid-popup {
|
731 |
+
left: 44px;
|
732 |
+
}
|
733 |
+
}
|
734 |
+
|
735 |
+
@media screen and (max-width: 782px) {
|
736 |
+
.ecwid-popup {
|
737 |
+
left: 0px;
|
738 |
+
right: 0px;
|
739 |
+
top: 46px;
|
740 |
+
bottom: 0px;
|
741 |
+
}
|
742 |
+
}
|
css/store-popup.css
CHANGED
@@ -1,449 +1,449 @@
|
|
1 |
-
.ecwid-store-icon {
|
2 |
-
padding-right: 3px;
|
3 |
-
position: relative;
|
4 |
-
display: inline-block;
|
5 |
-
width: 16px;
|
6 |
-
top: 3px;
|
7 |
-
height: 16px;
|
8 |
-
max-height: 16px;
|
9 |
-
}
|
10 |
-
|
11 |
-
.ecwid-store-icon svg * {
|
12 |
-
fill: #888;
|
13 |
-
}
|
14 |
-
|
15 |
-
#ecwid-store-popup-content {
|
16 |
-
display: none;
|
17 |
-
}
|
18 |
-
|
19 |
-
#ecwid-store-popup-content a {
|
20 |
-
text-decoration: none;
|
21 |
-
}
|
22 |
-
|
23 |
-
#ecwid-store-popup-content .media-frame-content {
|
24 |
-
}
|
25 |
-
|
26 |
-
#ecwid-store-popup-content.open {
|
27 |
-
display: block;
|
28 |
-
}
|
29 |
-
|
30 |
-
.wp-media-buttons:not(.has-ecwid) .update-ecwid {
|
31 |
-
display: none;
|
32 |
-
}
|
33 |
-
|
34 |
-
.wp-media-buttons.has-ecwid .add-ecwid {
|
35 |
-
display: none;
|
36 |
-
}
|
37 |
-
|
38 |
-
#ecwid-store-popup-content .media-modal-close:hover {
|
39 |
-
text-decoration: none;
|
40 |
-
}
|
41 |
-
|
42 |
-
/*
|
43 |
-
* Menu items visibility
|
44 |
-
*/
|
45 |
-
#ecwid-store-popup-content .media-modal-content .media-menu a {
|
46 |
-
display: none
|
47 |
-
}
|
48 |
-
|
49 |
-
#ecwid-store-popup-content .media-modal-content[data-mode=store-settings] .media-menu a[data-content=store-settings],
|
50 |
-
#ecwid-store-popup-content .media-modal-content[data-mode=add-store] .media-menu a[data-content=add-store],
|
51 |
-
#ecwid-store-popup-content .media-modal-content .media-menu a[data-content=appearance]
|
52 |
-
{
|
53 |
-
display: inherit;
|
54 |
-
}
|
55 |
-
|
56 |
-
body[class*=branch-3] #ecwid-store-popup-content .media-frame-title span.dashicons {
|
57 |
-
display: none;
|
58 |
-
}
|
59 |
-
/*
|
60 |
-
* Content area visibility
|
61 |
-
*/
|
62 |
-
#ecwid-store-popup-content .media-modal-content .media-frame-title,
|
63 |
-
#ecwid-store-popup-content .media-modal-content .media-frame-content,
|
64 |
-
#ecwid-store-popup-content .media-modal-content .media-toolbar-primary
|
65 |
-
{
|
66 |
-
display: none;
|
67 |
-
}
|
68 |
-
|
69 |
-
#ecwid-store-popup-content .media-modal-content[data-active-dialog=add-store] .media-frame-title.add-store,
|
70 |
-
#ecwid-store-popup-content .media-modal-content[data-active-dialog=add-store] .media-frame-content.store-settings,
|
71 |
-
|
72 |
-
#ecwid-store-popup-content .media-modal-content[data-active-dialog=store-settings] .media-frame-title.store-settings,
|
73 |
-
#ecwid-store-popup-content .media-modal-content[data-active-dialog=store-settings] .media-frame-content.store-settings,
|
74 |
-
|
75 |
-
#ecwid-store-popup-content .media-modal-content[data-active-dialog=appearance] .media-frame-title.appearance,
|
76 |
-
#ecwid-store-popup-content .media-modal-content[data-active-dialog=appearance] .media-frame-content.appearance,
|
77 |
-
|
78 |
-
#ecwid-store-popup-content .media-modal-content[data-mode=add-store] .media-frame-toolbar .media-toolbar-primary.add-store,
|
79 |
-
#ecwid-store-popup-content .media-modal-content[data-mode=store-settings] .media-frame-toolbar .media-toolbar-primary.store-settings
|
80 |
-
{
|
81 |
-
display: inherit;
|
82 |
-
}
|
83 |
-
|
84 |
-
/*
|
85 |
-
* Size and centering
|
86 |
-
*/
|
87 |
-
|
88 |
-
@media only screen and (min-width: 960px) and (min-height: 660px) {
|
89 |
-
|
90 |
-
html:not(.ie8) #ecwid-store-popup-content .media-modal-content {
|
91 |
-
position: absolute;
|
92 |
-
width: 900px;
|
93 |
-
height: 650px;
|
94 |
-
top: 50%;
|
95 |
-
left: 50%;
|
96 |
-
right: inherit;
|
97 |
-
bottom: inherit;
|
98 |
-
transform: translate(-50%,-50%);
|
99 |
-
-moz-transform: translate(-50%,-50%);
|
100 |
-
-ms-transform: translate(-50%,-50%);
|
101 |
-
-webkit-transform: translate(-50%,-50%);
|
102 |
-
}
|
103 |
-
}
|
104 |
-
|
105 |
-
@media only screen and (min-width: 960px) and (min-height: 400px) and (max-height: 660px) {
|
106 |
-
|
107 |
-
html:not(.ie8) #ecwid-store-popup-content .media-modal-content {
|
108 |
-
position: absolute;
|
109 |
-
width: 900px;
|
110 |
-
left: 50%;
|
111 |
-
right: inherit;
|
112 |
-
transform: translate(-50%,0%);
|
113 |
-
-moz-transform: translate(-50%,0%);
|
114 |
-
-ms-transform: translate(-50%,0%);
|
115 |
-
-webkit-transform: translate(-50%,0%);
|
116 |
-
}
|
117 |
-
}
|
118 |
-
|
119 |
-
@media only screen and (min-width: 640px) and (max-width: 960px) and (min-height: 660px) {
|
120 |
-
|
121 |
-
html:not(.ie8) #ecwid-store-popup-content .media-modal-content {
|
122 |
-
position: absolute;
|
123 |
-
height: 650px;
|
124 |
-
top: 50%;
|
125 |
-
bottom: inherit;
|
126 |
-
transform: translate(0%,-50%);
|
127 |
-
-moz-transform: translate(0%,-50%);
|
128 |
-
-ms-transform: translate(0%,-50%);
|
129 |
-
-webkit-transform: translate(0%,-50%);
|
130 |
-
}
|
131 |
-
}
|
132 |
-
|
133 |
-
@media only screen and (max-width: 750px) {
|
134 |
-
#ecwid-store-popup-content .store-settings-preview {
|
135 |
-
display: none !important;
|
136 |
-
}
|
137 |
-
|
138 |
-
#ecwid-store-popup-content .store-settings-wrapper {
|
139 |
-
padding-left: 0px;
|
140 |
-
}
|
141 |
-
}
|
142 |
-
|
143 |
-
html:not(.ie8) #ecwid-store-popup-content .store-settings-wrapper {
|
144 |
-
position: absolute;
|
145 |
-
top: 50%;
|
146 |
-
transform: translate(0%,-50%);
|
147 |
-
-moz-transform: translate(0%,-50%);
|
148 |
-
-ms-transform: translate(0%,-50%);
|
149 |
-
-webkit-transform: translate(0%,-50%);
|
150 |
-
}
|
151 |
-
/*
|
152 |
-
*
|
153 |
-
*/
|
154 |
-
.ecwid-store-editor {
|
155 |
-
padding: 13px 19px;
|
156 |
-
}
|
157 |
-
|
158 |
-
#ecwid-store-popup-content .pure-control-group {
|
159 |
-
margin: 10px 0px;
|
160 |
-
}
|
161 |
-
|
162 |
-
#ecwid-store-popup-content label {
|
163 |
-
font-size: 14px;
|
164 |
-
font-weight: 400;
|
165 |
-
display: inline-block;
|
166 |
-
width: 270px;
|
167 |
-
}
|
168 |
-
|
169 |
-
#ecwid-store-popup-content .products-per-page-label {
|
170 |
-
display: block;
|
171 |
-
}
|
172 |
-
|
173 |
-
#ecwid-store-popup-content .ecwid-pb-view-size {
|
174 |
-
margin-left: 15px;
|
175 |
-
margin-right: 30px;
|
176 |
-
margin-top: 15px;
|
177 |
-
}
|
178 |
-
|
179 |
-
#ecwid-store-popup-content .ecwid-pb-view-size:nth-child(4) {
|
180 |
-
margin-right: 0px;
|
181 |
-
}
|
182 |
-
|
183 |
-
|
184 |
-
#ecwid-store-popup-content .ecwid-pb-view-size .title {
|
185 |
-
font-size: 14px;
|
186 |
-
}
|
187 |
-
|
188 |
-
#ecwid-store-popup-content .ecwid-pb-view-size .ruler {
|
189 |
-
z-index: 0;
|
190 |
-
}
|
191 |
-
|
192 |
-
#ecwid-store-popup-content input {
|
193 |
-
position: relative;
|
194 |
-
font-size: 13px;
|
195 |
-
}
|
196 |
-
|
197 |
-
#ecwid-store-popup-content input.number {
|
198 |
-
border-radius: 4px;
|
199 |
-
width: 27px;
|
200 |
-
padding: 3px;
|
201 |
-
text-align: center;
|
202 |
-
}
|
203 |
-
|
204 |
-
#ecwid-store-popup-content .note.pb-note {
|
205 |
-
max-width: 595px;
|
206 |
-
font-size: 11px;
|
207 |
-
margin: 8px 5px;
|
208 |
-
line-height: 16px;
|
209 |
-
}
|
210 |
-
|
211 |
-
#ecwid-store-popup-content hr.after-pb {
|
212 |
-
margin-bottom: 25px;
|
213 |
-
}
|
214 |
-
|
215 |
-
#ecwid-store-popup-content .media-toolbar-secondary {
|
216 |
-
font-size: 14px;
|
217 |
-
margin-left:5px;
|
218 |
-
}
|
219 |
-
|
220 |
-
#ecwid-store-popup-content .media-toolbar-secondary .store-id {
|
221 |
-
margin-top: 10px;
|
222 |
-
font-weight: bold;
|
223 |
-
}
|
224 |
-
|
225 |
-
|
226 |
-
#ecwid-store-popup-content .ecwid-store-editor.add-store {
|
227 |
-
padding-top: 125px;
|
228 |
-
}
|
229 |
-
|
230 |
-
#ecwid-store-popup-content .store-settings-preview {
|
231 |
-
display: inline-block;
|
232 |
-
width: 162px;
|
233 |
-
height: 200px;
|
234 |
-
}
|
235 |
-
|
236 |
-
#ecwid-store-popup-content .store-settings,
|
237 |
-
#ecwid-store-popup-content .store-settings-preview
|
238 |
-
{
|
239 |
-
vertical-align: top;
|
240 |
-
display: inline-block;
|
241 |
-
}
|
242 |
-
|
243 |
-
#ecwid-store-popup-content .store-settings h3 {
|
244 |
-
font-size: 20px;
|
245 |
-
margin-bottom: 5px;
|
246 |
-
}
|
247 |
-
|
248 |
-
#ecwid-store-popup-content .store-settings-preview {
|
249 |
-
width: 145px;
|
250 |
-
margin-top: 17px;
|
251 |
-
position: relative;
|
252 |
-
}
|
253 |
-
|
254 |
-
#ecwid-store-popup-content .store-settings-preview label {
|
255 |
-
position: absolute;
|
256 |
-
background: transparent;
|
257 |
-
cursor: pointer;
|
258 |
-
display: inline-block;
|
259 |
-
}
|
260 |
-
|
261 |
-
#ecwid-store-popup-content .store-settings .note {
|
262 |
-
margin-right: 30px;
|
263 |
-
}
|
264 |
-
|
265 |
-
#ecwid-store-popup-content .note {
|
266 |
-
color: #BBBBBB;
|
267 |
-
}
|
268 |
-
|
269 |
-
#ecwid-store-popup-content .store-settings-preview .ecwid-search {
|
270 |
-
top: 0px;
|
271 |
-
width: 45px;
|
272 |
-
height: 45px;
|
273 |
-
}
|
274 |
-
|
275 |
-
#ecwid-store-popup-content .store-settings-preview .ecwid-minicart {
|
276 |
-
top: 0px;
|
277 |
-
right: 0px;
|
278 |
-
width: 45px;
|
279 |
-
height: 45px;
|
280 |
-
}
|
281 |
-
|
282 |
-
#ecwid-store-popup-content .store-settings-preview .ecwid-categories {
|
283 |
-
top: 45px;
|
284 |
-
width: 100%;
|
285 |
-
height: 20px;
|
286 |
-
}
|
287 |
-
|
288 |
-
#ecwid-store-popup-content .store-settings-wrapper path {
|
289 |
-
fill: #d1ecf5;
|
290 |
-
}
|
291 |
-
|
292 |
-
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=categories] path.categories,
|
293 |
-
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=minicart] path.minicart,
|
294 |
-
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=search] path.search,
|
295 |
-
#ecwid-store-popup-content .store-settings-wrapper.ecwid-categories[data-ecwid-widget-hover=categories] path.categories,
|
296 |
-
#ecwid-store-popup-content .store-settings-wrapper.ecwid-minicart[data-ecwid-widget-hover=minicart] path.minicart,
|
297 |
-
#ecwid-store-popup-content .store-settings-wrapper.ecwid-search[data-ecwid-widget-hover=search] path.search
|
298 |
-
{
|
299 |
-
fill: #56d5ff;
|
300 |
-
}
|
301 |
-
|
302 |
-
#ecwid-store-popup-content .store-settings-wrapper.ecwid-categories path.categories,
|
303 |
-
#ecwid-store-popup-content .store-settings-wrapper.ecwid-minicart path.minicart,
|
304 |
-
#ecwid-store-popup-content .store-settings-wrapper.ecwid-search path.search,
|
305 |
-
#ecwid-store-popup-content .store-settings-wrapper path.productbrowser
|
306 |
-
{
|
307 |
-
fill: #298cba;
|
308 |
-
}
|
309 |
-
|
310 |
-
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=categories] label[data-ecwid-widget=categories],
|
311 |
-
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=minicart] label[data-ecwid-widget=minicart],
|
312 |
-
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=search] label[data-ecwid-widget=search]
|
313 |
-
{
|
314 |
-
color: #40c1ec;
|
315 |
-
}
|
316 |
-
|
317 |
-
#ecwid-store-popup-content .media-frame-content.store-settings {
|
318 |
-
padding-left: 43px;
|
319 |
-
}
|
320 |
-
|
321 |
-
#ecwid-store-popup-content .media-frame-content .store-settings-wrapper .store-settings {
|
322 |
-
padding-left: 43px;
|
323 |
-
}
|
324 |
-
|
325 |
-
#ecwid-store-popup-content .store-settings .pure-control-group {
|
326 |
-
margin: 20px 0px;
|
327 |
-
}
|
328 |
-
|
329 |
-
#ecwid-store-popup-content .store-settings .pure-control-group label {
|
330 |
-
font-size: 16px;
|
331 |
-
color: black;
|
332 |
-
font-weight: 400;
|
333 |
-
}
|
334 |
-
|
335 |
-
#ecwid-store-popup-content .appearance label {
|
336 |
-
font-weight: 600;
|
337 |
-
}
|
338 |
-
|
339 |
-
#ecwid-store-popup-content .pure-control-group.default-category-id {
|
340 |
-
display: table;
|
341 |
-
}
|
342 |
-
|
343 |
-
#ecwid-store-popup-content .pure-control-group.default-category-id label {
|
344 |
-
width: 270px;
|
345 |
-
min-width: 270px;
|
346 |
-
max-width: 270px;
|
347 |
-
display: table-cell;
|
348 |
-
}
|
349 |
-
|
350 |
-
#ecwid-store-popup-content .pure-control-group.default-category-id .value {
|
351 |
-
display: table-cell;
|
352 |
-
}
|
353 |
-
|
354 |
-
#ecwid-store-popup-content .pure-control-group.default-category-id .value select,
|
355 |
-
#ecwid-store-popup-content .pure-control-group.default-category-id .value input {
|
356 |
-
width:100%;
|
357 |
-
}
|
358 |
-
|
359 |
-
|
360 |
-
@media only screen and (max-width: 440px) {
|
361 |
-
#ecwid-store-popup-content .appearance .pure-control-group.params-list {
|
362 |
-
margin: 35px 0px;
|
363 |
-
position: relative;
|
364 |
-
}
|
365 |
-
|
366 |
-
#ecwid-store-popup-content .appearance .pure-control-group.params-list select,
|
367 |
-
#ecwid-store-popup-content .appearance .pure-control-group.params-list input {
|
368 |
-
width: 100%;
|
369 |
-
}
|
370 |
-
|
371 |
-
#ecwid-store-popup-content .appearance .pure-control-group.params-list label,
|
372 |
-
#ecwid-store-popup-content .appearance .pure-control-group.params-list .value {
|
373 |
-
display: inline-block;
|
374 |
-
width: 100%;
|
375 |
-
}
|
376 |
-
|
377 |
-
#ecwid-store-popup-content .appearance .pure-control-group.params-list input#ecwid_pb_categoriesperrow {
|
378 |
-
width: 27px;
|
379 |
-
position: absolute;
|
380 |
-
right: 0px;
|
381 |
-
}
|
382 |
-
|
383 |
-
#ecwid-store-popup-content .media-frame-content .store-settings-wrapper .store-settings {
|
384 |
-
padding-left: 0px;
|
385 |
-
}
|
386 |
-
|
387 |
-
|
388 |
-
#ecwid-store-popup-content .appearance .pure-control-group.params-list label {
|
389 |
-
width: auto;
|
390 |
-
min-width: inherit;
|
391 |
-
max-width: inherit;
|
392 |
-
}
|
393 |
-
}
|
394 |
-
|
395 |
-
#ecwid-store-popup-content .store-settings .pure-control-group input[type=checkbox] {
|
396 |
-
margin-right: 15px;
|
397 |
-
}
|
398 |
-
|
399 |
-
|
400 |
-
/*
|
401 |
-
* Two styles below are the copy of wp pre-4.3 styles for close cross in the up right corner
|
402 |
-
* Need to use those to make sure it is displayed the same way across different wp versions
|
403 |
-
*/
|
404 |
-
#ecwid-store-popup-content .media-modal-close {
|
405 |
-
position: absolute;
|
406 |
-
text-decoration: none;
|
407 |
-
top: 10px;
|
408 |
-
right: 10px;
|
409 |
-
width: 30px;
|
410 |
-
height: 30px;
|
411 |
-
z-index: 1000;
|
412 |
-
-webkit-transition: color .1s ease-in-out,background .1s ease-in-out;
|
413 |
-
transition: color .1s ease-in-out,background .1s ease-in-out;
|
414 |
-
}
|
415 |
-
|
416 |
-
#ecwid-store-popup-content .media-modal-close span.media-modal-icon {
|
417 |
-
display: block;
|
418 |
-
margin-top: 5px;
|
419 |
-
width: 30px;
|
420 |
-
height: 15px;
|
421 |
-
background-image: none;
|
422 |
-
text-align: center;
|
423 |
-
}
|
424 |
-
|
425 |
-
|
426 |
-
@media only screen and (max-width: 640px) {
|
427 |
-
#ecwid-store-popup-content .note.pb-note {
|
428 |
-
width: auto;
|
429 |
-
text-align: left;
|
430 |
-
}
|
431 |
-
|
432 |
-
#ecwid-store-popup-content .pb-views {
|
433 |
-
text-align: center;
|
434 |
-
}
|
435 |
-
|
436 |
-
|
437 |
-
#ecwid-store-popup-content .appearance input.number {
|
438 |
-
margin-left: inherit;
|
439 |
-
}
|
440 |
-
|
441 |
-
#ecwid-store-popup-content .ecwid-pb-view-size {
|
442 |
-
margin-left: 25px;
|
443 |
-
margin-right: 25px;
|
444 |
-
}
|
445 |
-
|
446 |
-
#ecwid-store-popup-content .media-frame-content .store-settings-wrapper {
|
447 |
-
padding-left: 0px;
|
448 |
-
}
|
449 |
-
}
|
1 |
+
.ecwid-store-icon {
|
2 |
+
padding-right: 3px;
|
3 |
+
position: relative;
|
4 |
+
display: inline-block;
|
5 |
+
width: 16px;
|
6 |
+
top: 3px;
|
7 |
+
height: 16px;
|
8 |
+
max-height: 16px;
|
9 |
+
}
|
10 |
+
|
11 |
+
.ecwid-store-icon svg * {
|
12 |
+
fill: #888;
|
13 |
+
}
|
14 |
+
|
15 |
+
#ecwid-store-popup-content {
|
16 |
+
display: none;
|
17 |
+
}
|
18 |
+
|
19 |
+
#ecwid-store-popup-content a {
|
20 |
+
text-decoration: none;
|
21 |
+
}
|
22 |
+
|
23 |
+
#ecwid-store-popup-content .media-frame-content {
|
24 |
+
}
|
25 |
+
|
26 |
+
#ecwid-store-popup-content.open {
|
27 |
+
display: block;
|
28 |
+
}
|
29 |
+
|
30 |
+
.wp-media-buttons:not(.has-ecwid) .update-ecwid {
|
31 |
+
display: none;
|
32 |
+
}
|
33 |
+
|
34 |
+
.wp-media-buttons.has-ecwid .add-ecwid {
|
35 |
+
display: none;
|
36 |
+
}
|
37 |
+
|
38 |
+
#ecwid-store-popup-content .media-modal-close:hover {
|
39 |
+
text-decoration: none;
|
40 |
+
}
|
41 |
+
|
42 |
+
/*
|
43 |
+
* Menu items visibility
|
44 |
+
*/
|
45 |
+
#ecwid-store-popup-content .media-modal-content .media-menu a {
|
46 |
+
display: none
|
47 |
+
}
|
48 |
+
|
49 |
+
#ecwid-store-popup-content .media-modal-content[data-mode=store-settings] .media-menu a[data-content=store-settings],
|
50 |
+
#ecwid-store-popup-content .media-modal-content[data-mode=add-store] .media-menu a[data-content=add-store],
|
51 |
+
#ecwid-store-popup-content .media-modal-content .media-menu a[data-content=appearance]
|
52 |
+
{
|
53 |
+
display: inherit;
|
54 |
+
}
|
55 |
+
|
56 |
+
body[class*=branch-3] #ecwid-store-popup-content .media-frame-title span.dashicons {
|
57 |
+
display: none;
|
58 |
+
}
|
59 |
+
/*
|
60 |
+
* Content area visibility
|
61 |
+
*/
|
62 |
+
#ecwid-store-popup-content .media-modal-content .media-frame-title,
|
63 |
+
#ecwid-store-popup-content .media-modal-content .media-frame-content,
|
64 |
+
#ecwid-store-popup-content .media-modal-content .media-toolbar-primary
|
65 |
+
{
|
66 |
+
display: none;
|
67 |
+
}
|
68 |
+
|
69 |
+
#ecwid-store-popup-content .media-modal-content[data-active-dialog=add-store] .media-frame-title.add-store,
|
70 |
+
#ecwid-store-popup-content .media-modal-content[data-active-dialog=add-store] .media-frame-content.store-settings,
|
71 |
+
|
72 |
+
#ecwid-store-popup-content .media-modal-content[data-active-dialog=store-settings] .media-frame-title.store-settings,
|
73 |
+
#ecwid-store-popup-content .media-modal-content[data-active-dialog=store-settings] .media-frame-content.store-settings,
|
74 |
+
|
75 |
+
#ecwid-store-popup-content .media-modal-content[data-active-dialog=appearance] .media-frame-title.appearance,
|
76 |
+
#ecwid-store-popup-content .media-modal-content[data-active-dialog=appearance] .media-frame-content.appearance,
|
77 |
+
|
78 |
+
#ecwid-store-popup-content .media-modal-content[data-mode=add-store] .media-frame-toolbar .media-toolbar-primary.add-store,
|
79 |
+
#ecwid-store-popup-content .media-modal-content[data-mode=store-settings] .media-frame-toolbar .media-toolbar-primary.store-settings
|
80 |
+
{
|
81 |
+
display: inherit;
|
82 |
+
}
|
83 |
+
|
84 |
+
/*
|
85 |
+
* Size and centering
|
86 |
+
*/
|
87 |
+
|
88 |
+
@media only screen and (min-width: 960px) and (min-height: 660px) {
|
89 |
+
|
90 |
+
html:not(.ie8) #ecwid-store-popup-content .media-modal-content {
|
91 |
+
position: absolute;
|
92 |
+
width: 900px;
|
93 |
+
height: 650px;
|
94 |
+
top: 50%;
|
95 |
+
left: 50%;
|
96 |
+
right: inherit;
|
97 |
+
bottom: inherit;
|
98 |
+
transform: translate(-50%,-50%);
|
99 |
+
-moz-transform: translate(-50%,-50%);
|
100 |
+
-ms-transform: translate(-50%,-50%);
|
101 |
+
-webkit-transform: translate(-50%,-50%);
|
102 |
+
}
|
103 |
+
}
|
104 |
+
|
105 |
+
@media only screen and (min-width: 960px) and (min-height: 400px) and (max-height: 660px) {
|
106 |
+
|
107 |
+
html:not(.ie8) #ecwid-store-popup-content .media-modal-content {
|
108 |
+
position: absolute;
|
109 |
+
width: 900px;
|
110 |
+
left: 50%;
|
111 |
+
right: inherit;
|
112 |
+
transform: translate(-50%,0%);
|
113 |
+
-moz-transform: translate(-50%,0%);
|
114 |
+
-ms-transform: translate(-50%,0%);
|
115 |
+
-webkit-transform: translate(-50%,0%);
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
@media only screen and (min-width: 640px) and (max-width: 960px) and (min-height: 660px) {
|
120 |
+
|
121 |
+
html:not(.ie8) #ecwid-store-popup-content .media-modal-content {
|
122 |
+
position: absolute;
|
123 |
+
height: 650px;
|
124 |
+
top: 50%;
|
125 |
+
bottom: inherit;
|
126 |
+
transform: translate(0%,-50%);
|
127 |
+
-moz-transform: translate(0%,-50%);
|
128 |
+
-ms-transform: translate(0%,-50%);
|
129 |
+
-webkit-transform: translate(0%,-50%);
|
130 |
+
}
|
131 |
+
}
|
132 |
+
|
133 |
+
@media only screen and (max-width: 750px) {
|
134 |
+
#ecwid-store-popup-content .store-settings-preview {
|
135 |
+
display: none !important;
|
136 |
+
}
|
137 |
+
|
138 |
+
#ecwid-store-popup-content .store-settings-wrapper {
|
139 |
+
padding-left: 0px;
|
140 |
+
}
|
141 |
+
}
|
142 |
+
|
143 |
+
html:not(.ie8) #ecwid-store-popup-content .store-settings-wrapper {
|
144 |
+
position: absolute;
|
145 |
+
top: 50%;
|
146 |
+
transform: translate(0%,-50%);
|
147 |
+
-moz-transform: translate(0%,-50%);
|
148 |
+
-ms-transform: translate(0%,-50%);
|
149 |
+
-webkit-transform: translate(0%,-50%);
|
150 |
+
}
|
151 |
+
/*
|
152 |
+
*
|
153 |
+
*/
|
154 |
+
.ecwid-store-editor {
|
155 |
+
padding: 13px 19px;
|
156 |
+
}
|
157 |
+
|
158 |
+
#ecwid-store-popup-content .pure-control-group {
|
159 |
+
margin: 10px 0px;
|
160 |
+
}
|
161 |
+
|
162 |
+
#ecwid-store-popup-content label {
|
163 |
+
font-size: 14px;
|
164 |
+
font-weight: 400;
|
165 |
+
display: inline-block;
|
166 |
+
width: 270px;
|
167 |
+
}
|
168 |
+
|
169 |
+
#ecwid-store-popup-content .products-per-page-label {
|
170 |
+
display: block;
|
171 |
+
}
|
172 |
+
|
173 |
+
#ecwid-store-popup-content .ecwid-pb-view-size {
|
174 |
+
margin-left: 15px;
|
175 |
+
margin-right: 30px;
|
176 |
+
margin-top: 15px;
|
177 |
+
}
|
178 |
+
|
179 |
+
#ecwid-store-popup-content .ecwid-pb-view-size:nth-child(4) {
|
180 |
+
margin-right: 0px;
|
181 |
+
}
|
182 |
+
|
183 |
+
|
184 |
+
#ecwid-store-popup-content .ecwid-pb-view-size .title {
|
185 |
+
font-size: 14px;
|
186 |
+
}
|
187 |
+
|
188 |
+
#ecwid-store-popup-content .ecwid-pb-view-size .ruler {
|
189 |
+
z-index: 0;
|
190 |
+
}
|
191 |
+
|
192 |
+
#ecwid-store-popup-content input {
|
193 |
+
position: relative;
|
194 |
+
font-size: 13px;
|
195 |
+
}
|
196 |
+
|
197 |
+
#ecwid-store-popup-content input.number {
|
198 |
+
border-radius: 4px;
|
199 |
+
width: 27px;
|
200 |
+
padding: 3px;
|
201 |
+
text-align: center;
|
202 |
+
}
|
203 |
+
|
204 |
+
#ecwid-store-popup-content .note.pb-note {
|
205 |
+
max-width: 595px;
|
206 |
+
font-size: 11px;
|
207 |
+
margin: 8px 5px;
|
208 |
+
line-height: 16px;
|
209 |
+
}
|
210 |
+
|
211 |
+
#ecwid-store-popup-content hr.after-pb {
|
212 |
+
margin-bottom: 25px;
|
213 |
+
}
|
214 |
+
|
215 |
+
#ecwid-store-popup-content .media-toolbar-secondary {
|
216 |
+
font-size: 14px;
|
217 |
+
margin-left:5px;
|
218 |
+
}
|
219 |
+
|
220 |
+
#ecwid-store-popup-content .media-toolbar-secondary .store-id {
|
221 |
+
margin-top: 10px;
|
222 |
+
font-weight: bold;
|
223 |
+
}
|
224 |
+
|
225 |
+
|
226 |
+
#ecwid-store-popup-content .ecwid-store-editor.add-store {
|
227 |
+
padding-top: 125px;
|
228 |
+
}
|
229 |
+
|
230 |
+
#ecwid-store-popup-content .store-settings-preview {
|
231 |
+
display: inline-block;
|
232 |
+
width: 162px;
|
233 |
+
height: 200px;
|
234 |
+
}
|
235 |
+
|
236 |
+
#ecwid-store-popup-content .store-settings,
|
237 |
+
#ecwid-store-popup-content .store-settings-preview
|
238 |
+
{
|
239 |
+
vertical-align: top;
|
240 |
+
display: inline-block;
|
241 |
+
}
|
242 |
+
|
243 |
+
#ecwid-store-popup-content .store-settings h3 {
|
244 |
+
font-size: 20px;
|
245 |
+
margin-bottom: 5px;
|
246 |
+
}
|
247 |
+
|
248 |
+
#ecwid-store-popup-content .store-settings-preview {
|
249 |
+
width: 145px;
|
250 |
+
margin-top: 17px;
|
251 |
+
position: relative;
|
252 |
+
}
|
253 |
+
|
254 |
+
#ecwid-store-popup-content .store-settings-preview label {
|
255 |
+
position: absolute;
|
256 |
+
background: transparent;
|
257 |
+
cursor: pointer;
|
258 |
+
display: inline-block;
|
259 |
+
}
|
260 |
+
|
261 |
+
#ecwid-store-popup-content .store-settings .note {
|
262 |
+
margin-right: 30px;
|
263 |
+
}
|
264 |
+
|
265 |
+
#ecwid-store-popup-content .note {
|
266 |
+
color: #BBBBBB;
|
267 |
+
}
|
268 |
+
|
269 |
+
#ecwid-store-popup-content .store-settings-preview .ecwid-search {
|
270 |
+
top: 0px;
|
271 |
+
width: 45px;
|
272 |
+
height: 45px;
|
273 |
+
}
|
274 |
+
|
275 |
+
#ecwid-store-popup-content .store-settings-preview .ecwid-minicart {
|
276 |
+
top: 0px;
|
277 |
+
right: 0px;
|
278 |
+
width: 45px;
|
279 |
+
height: 45px;
|
280 |
+
}
|
281 |
+
|
282 |
+
#ecwid-store-popup-content .store-settings-preview .ecwid-categories {
|
283 |
+
top: 45px;
|
284 |
+
width: 100%;
|
285 |
+
height: 20px;
|
286 |
+
}
|
287 |
+
|
288 |
+
#ecwid-store-popup-content .store-settings-wrapper path {
|
289 |
+
fill: #d1ecf5;
|
290 |
+
}
|
291 |
+
|
292 |
+
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=categories] path.categories,
|
293 |
+
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=minicart] path.minicart,
|
294 |
+
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=search] path.search,
|
295 |
+
#ecwid-store-popup-content .store-settings-wrapper.ecwid-categories[data-ecwid-widget-hover=categories] path.categories,
|
296 |
+
#ecwid-store-popup-content .store-settings-wrapper.ecwid-minicart[data-ecwid-widget-hover=minicart] path.minicart,
|
297 |
+
#ecwid-store-popup-content .store-settings-wrapper.ecwid-search[data-ecwid-widget-hover=search] path.search
|
298 |
+
{
|
299 |
+
fill: #56d5ff;
|
300 |
+
}
|
301 |
+
|
302 |
+
#ecwid-store-popup-content .store-settings-wrapper.ecwid-categories path.categories,
|
303 |
+
#ecwid-store-popup-content .store-settings-wrapper.ecwid-minicart path.minicart,
|
304 |
+
#ecwid-store-popup-content .store-settings-wrapper.ecwid-search path.search,
|
305 |
+
#ecwid-store-popup-content .store-settings-wrapper path.productbrowser
|
306 |
+
{
|
307 |
+
fill: #298cba;
|
308 |
+
}
|
309 |
+
|
310 |
+
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=categories] label[data-ecwid-widget=categories],
|
311 |
+
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=minicart] label[data-ecwid-widget=minicart],
|
312 |
+
#ecwid-store-popup-content .store-settings-wrapper[data-ecwid-widget-hover=search] label[data-ecwid-widget=search]
|
313 |
+
{
|
314 |
+
color: #40c1ec;
|
315 |
+
}
|
316 |
+
|
317 |
+
#ecwid-store-popup-content .media-frame-content.store-settings {
|
318 |
+
padding-left: 43px;
|
319 |
+
}
|
320 |
+
|
321 |
+
#ecwid-store-popup-content .media-frame-content .store-settings-wrapper .store-settings {
|
322 |
+
padding-left: 43px;
|
323 |
+
}
|
324 |
+
|
325 |
+
#ecwid-store-popup-content .store-settings .pure-control-group {
|
326 |
+
margin: 20px 0px;
|
327 |
+
}
|
328 |
+
|
329 |
+
#ecwid-store-popup-content .store-settings .pure-control-group label {
|
330 |
+
font-size: 16px;
|
331 |
+
color: black;
|
332 |
+
font-weight: 400;
|
333 |
+
}
|
334 |
+
|
335 |
+
#ecwid-store-popup-content .appearance label {
|
336 |
+
font-weight: 600;
|
337 |
+
}
|
338 |
+
|
339 |
+
#ecwid-store-popup-content .pure-control-group.default-category-id {
|
340 |
+
display: table;
|
341 |
+
}
|
342 |
+
|
343 |
+
#ecwid-store-popup-content .pure-control-group.default-category-id label {
|
344 |
+
width: 270px;
|
345 |
+
min-width: 270px;
|
346 |
+
max-width: 270px;
|
347 |
+
display: table-cell;
|
348 |
+
}
|
349 |
+
|
350 |
+
#ecwid-store-popup-content .pure-control-group.default-category-id .value {
|
351 |
+
display: table-cell;
|
352 |
+
}
|
353 |
+
|
354 |
+
#ecwid-store-popup-content .pure-control-group.default-category-id .value select,
|
355 |
+
#ecwid-store-popup-content .pure-control-group.default-category-id .value input {
|
356 |
+
width:100%;
|
357 |
+
}
|
358 |
+
|
359 |
+
|
360 |
+
@media only screen and (max-width: 440px) {
|
361 |
+
#ecwid-store-popup-content .appearance .pure-control-group.params-list {
|
362 |
+
margin: 35px 0px;
|
363 |
+
position: relative;
|
364 |
+
}
|
365 |
+
|
366 |
+
#ecwid-store-popup-content .appearance .pure-control-group.params-list select,
|
367 |
+
#ecwid-store-popup-content .appearance .pure-control-group.params-list input {
|
368 |
+
width: 100%;
|
369 |
+
}
|
370 |
+
|
371 |
+
#ecwid-store-popup-content .appearance .pure-control-group.params-list label,
|
372 |
+
#ecwid-store-popup-content .appearance .pure-control-group.params-list .value {
|
373 |
+
display: inline-block;
|
374 |
+
width: 100%;
|
375 |
+
}
|
376 |
+
|
377 |
+
#ecwid-store-popup-content .appearance .pure-control-group.params-list input#ecwid_pb_categoriesperrow {
|
378 |
+
width: 27px;
|
379 |
+
position: absolute;
|
380 |
+
right: 0px;
|
381 |
+
}
|
382 |
+
|
383 |
+
#ecwid-store-popup-content .media-frame-content .store-settings-wrapper .store-settings {
|
384 |
+
padding-left: 0px;
|
385 |
+
}
|
386 |
+
|
387 |
+
|
388 |
+
#ecwid-store-popup-content .appearance .pure-control-group.params-list label {
|
389 |
+
width: auto;
|
390 |
+
min-width: inherit;
|
391 |
+
max-width: inherit;
|
392 |
+
}
|
393 |
+
}
|
394 |
+
|
395 |
+
#ecwid-store-popup-content .store-settings .pure-control-group input[type=checkbox] {
|
396 |
+
margin-right: 15px;
|
397 |
+
}
|
398 |
+
|
399 |
+
|
400 |
+
/*
|
401 |
+
* Two styles below are the copy of wp pre-4.3 styles for close cross in the up right corner
|
402 |
+
* Need to use those to make sure it is displayed the same way across different wp versions
|
403 |
+
*/
|
404 |
+
#ecwid-store-popup-content .media-modal-close {
|
405 |
+
position: absolute;
|
406 |
+
text-decoration: none;
|
407 |
+
top: 10px;
|
408 |
+
right: 10px;
|
409 |
+
width: 30px;
|
410 |
+
height: 30px;
|
411 |
+
z-index: 1000;
|
412 |
+
-webkit-transition: color .1s ease-in-out,background .1s ease-in-out;
|
413 |
+
transition: color .1s ease-in-out,background .1s ease-in-out;
|
414 |
+
}
|
415 |
+
|
416 |
+
#ecwid-store-popup-content .media-modal-close span.media-modal-icon {
|
417 |
+
display: block;
|
418 |
+
margin-top: 5px;
|
419 |
+
width: 30px;
|
420 |
+
height: 15px;
|
421 |
+
background-image: none;
|
422 |
+
text-align: center;
|
423 |
+
}
|
424 |
+
|
425 |
+
|
426 |
+
@media only screen and (max-width: 640px) {
|
427 |
+
#ecwid-store-popup-content .note.pb-note {
|
428 |
+
width: auto;
|
429 |
+
text-align: left;
|
430 |
+
}
|
431 |
+
|
432 |
+
#ecwid-store-popup-content .pb-views {
|
433 |
+
text-align: center;
|
434 |
+
}
|
435 |
+
|
436 |
+
|
437 |
+
#ecwid-store-popup-content .appearance input.number {
|
438 |
+
margin-left: inherit;
|
439 |
+
}
|
440 |
+
|
441 |
+
#ecwid-store-popup-content .ecwid-pb-view-size {
|
442 |
+
margin-left: 25px;
|
443 |
+
margin-right: 25px;
|
444 |
+
}
|
445 |
+
|
446 |
+
#ecwid-store-popup-content .media-frame-content .store-settings-wrapper {
|
447 |
+
padding-left: 0px;
|
448 |
+
}
|
449 |
+
}
|
css/themes/2014.css
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
.site-content .entry-header, .site-content .entry-content, .site-content .entry-summary, .site-content .entry-meta {
|
2 |
-
max-width: none;
|
3 |
-
}
|
4 |
-
|
5 |
-
#ecwid_product_browser_scroller.ecwid-scroller-adjustment {
|
6 |
-
position: relative;
|
7 |
-
top: -48px;
|
8 |
}
|
1 |
+
.site-content .entry-header, .site-content .entry-content, .site-content .entry-summary, .site-content .entry-meta {
|
2 |
+
max-width: none;
|
3 |
+
}
|
4 |
+
|
5 |
+
#ecwid_product_browser_scroller.ecwid-scroller-adjustment {
|
6 |
+
position: relative;
|
7 |
+
top: -48px;
|
8 |
}
|
css/themes/2015.css
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
html#ecwid_html body#ecwid_body .ecwid-SearchPanel-field {
|
2 |
-
width: inherit;
|
3 |
-
}
|
4 |
-
|
5 |
-
html#ecwid_html body#ecwid_body p+.ecwid-shopping-cart-search {
|
6 |
-
position: relative;
|
7 |
-
top: -1.6842em;
|
8 |
-
}
|
9 |
-
|
10 |
-
html#ecwid_html body.ecwid-shopping-cart h1.entry-title {
|
11 |
-
margin-bottom: 1.1em;
|
12 |
}
|
1 |
+
html#ecwid_html body#ecwid_body .ecwid-SearchPanel-field {
|
2 |
+
width: inherit;
|
3 |
+
}
|
4 |
+
|
5 |
+
html#ecwid_html body#ecwid_body p+.ecwid-shopping-cart-search {
|
6 |
+
position: relative;
|
7 |
+
top: -1.6842em;
|
8 |
+
}
|
9 |
+
|
10 |
+
html#ecwid_html body.ecwid-shopping-cart h1.entry-title {
|
11 |
+
margin-bottom: 1.1em;
|
12 |
}
|
css/themes/2016.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
-
.ecwid a,
|
2 |
-
.ecwid-shopping-cart-categories a
|
3 |
-
{
|
4 |
-
box-shadow: none;
|
5 |
}
|
1 |
+
.ecwid a,
|
2 |
+
.ecwid-shopping-cart-categories a
|
3 |
+
{
|
4 |
+
box-shadow: none;
|
5 |
}
|
css/themes/attitude.css
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
-
html#ecwid_html body#ecwid_body .ecwid-results-topPanel-sortByPanel select {
|
2 |
-
height: auto;
|
3 |
-
width: auto;
|
4 |
-
}
|
5 |
-
|
6 |
-
.ecwid-shopping-cart-categories #horizontal-menu .horizontal-menu-parent {
|
7 |
-
margin: 0;
|
8 |
}
|
1 |
+
html#ecwid_html body#ecwid_body .ecwid-results-topPanel-sortByPanel select {
|
2 |
+
height: auto;
|
3 |
+
width: auto;
|
4 |
+
}
|
5 |
+
|
6 |
+
.ecwid-shopping-cart-categories #horizontal-menu .horizontal-menu-parent {
|
7 |
+
margin: 0;
|
8 |
}
|
css/themes/customizr.css
CHANGED
@@ -1,59 +1,59 @@
|
|
1 |
-
.ecwid-shopping-cart-search input,
|
2 |
-
.ecwid-results-topPanel-sortByPanel select{
|
3 |
-
width: inherit;
|
4 |
-
}
|
5 |
-
|
6 |
-
.ecwid-shopping-cart-search button.ecwid-SearchPanel-button,
|
7 |
-
.widget_ecwid_search button.ecwid-SearchPanel-button
|
8 |
-
{
|
9 |
-
display: inline-block;
|
10 |
-
padding: 4px 12px;
|
11 |
-
margin-bottom: 0;
|
12 |
-
font-size: 14px;
|
13 |
-
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
14 |
-
line-height: 20px;
|
15 |
-
text-align: center;
|
16 |
-
vertical-align: middle;
|
17 |
-
cursor: pointer;
|
18 |
-
border: 1px solid #CCC;
|
19 |
-
border-radius: 4px;
|
20 |
-
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);
|
21 |
-
color: #FFF;
|
22 |
-
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
23 |
-
background-color: #363636;
|
24 |
-
background-image: -moz-linear-gradient(top,#444,#222);
|
25 |
-
background-image: -webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));
|
26 |
-
background-image: -webkit-linear-gradient(top,#444,#222);
|
27 |
-
background-image: -o-linear-gradient(top,#444,#222);
|
28 |
-
background-image: linear-gradient(to bottom,#444,#222);
|
29 |
-
background-repeat: repeat-x;
|
30 |
-
border-color: #222 #222 #000;
|
31 |
-
border-color: rgba(0, 0, 0, 0.1)rgba(0, 0, 0, 0.1)rgba(0, 0, 0, 0.25);
|
32 |
-
|
33 |
-
transition-property: border,background,color;
|
34 |
-
-webkit-transition-duration: .15s;
|
35 |
-
transition-duration: .15s;
|
36 |
-
-webkit-transition-timing-function: ease-in-out;
|
37 |
-
transition-timing-function: ease-in-out;
|
38 |
-
}
|
39 |
-
|
40 |
-
.ecwid-shopping-cart-search button.ecwid-SearchPanel-button:hover {
|
41 |
-
color: #FFF;
|
42 |
-
background-color: #222;
|
43 |
-
background-position: 0px -15px;
|
44 |
-
}
|
45 |
-
|
46 |
-
.ecwid-shopping-cart-search .ecwid-SearchPanel-field {
|
47 |
-
margin-bottom: 0px;
|
48 |
-
}
|
49 |
-
#ecwid_product_browser_scroller {
|
50 |
-
position: relative;
|
51 |
-
}
|
52 |
-
|
53 |
-
.ecwid-productBrowser-sharePanel-header {
|
54 |
-
line-height: normal;
|
55 |
-
}
|
56 |
-
|
57 |
-
.ecwid-productBrowser table {
|
58 |
-
line-height: normal;
|
59 |
}
|
1 |
+
.ecwid-shopping-cart-search input,
|
2 |
+
.ecwid-results-topPanel-sortByPanel select{
|
3 |
+
width: inherit;
|
4 |
+
}
|
5 |
+
|
6 |
+
.ecwid-shopping-cart-search button.ecwid-SearchPanel-button,
|
7 |
+
.widget_ecwid_search button.ecwid-SearchPanel-button
|
8 |
+
{
|
9 |
+
display: inline-block;
|
10 |
+
padding: 4px 12px;
|
11 |
+
margin-bottom: 0;
|
12 |
+
font-size: 14px;
|
13 |
+
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
14 |
+
line-height: 20px;
|
15 |
+
text-align: center;
|
16 |
+
vertical-align: middle;
|
17 |
+
cursor: pointer;
|
18 |
+
border: 1px solid #CCC;
|
19 |
+
border-radius: 4px;
|
20 |
+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);
|
21 |
+
color: #FFF;
|
22 |
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
23 |
+
background-color: #363636;
|
24 |
+
background-image: -moz-linear-gradient(top,#444,#222);
|
25 |
+
background-image: -webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));
|
26 |
+
background-image: -webkit-linear-gradient(top,#444,#222);
|
27 |
+
background-image: -o-linear-gradient(top,#444,#222);
|
28 |
+
background-image: linear-gradient(to bottom,#444,#222);
|
29 |
+
background-repeat: repeat-x;
|
30 |
+
border-color: #222 #222 #000;
|
31 |
+
border-color: rgba(0, 0, 0, 0.1)rgba(0, 0, 0, 0.1)rgba(0, 0, 0, 0.25);
|
32 |
+
|
33 |
+
transition-property: border,background,color;
|
34 |
+
-webkit-transition-duration: .15s;
|
35 |
+
transition-duration: .15s;
|
36 |
+
-webkit-transition-timing-function: ease-in-out;
|
37 |
+
transition-timing-function: ease-in-out;
|
38 |
+
}
|
39 |
+
|
40 |
+
.ecwid-shopping-cart-search button.ecwid-SearchPanel-button:hover {
|
41 |
+
color: #FFF;
|
42 |
+
background-color: #222;
|
43 |
+
background-position: 0px -15px;
|
44 |
+
}
|
45 |
+
|
46 |
+
.ecwid-shopping-cart-search .ecwid-SearchPanel-field {
|
47 |
+
margin-bottom: 0px;
|
48 |
+
}
|
49 |
+
#ecwid_product_browser_scroller {
|
50 |
+
position: relative;
|
51 |
+
}
|
52 |
+
|
53 |
+
.ecwid-productBrowser-sharePanel-header {
|
54 |
+
line-height: normal;
|
55 |
+
}
|
56 |
+
|
57 |
+
.ecwid-productBrowser table {
|
58 |
+
line-height: normal;
|
59 |
}
|
css/themes/evolve.css
CHANGED
@@ -1,16 +1,16 @@
|
|
1 |
-
.ecwid-shopping-cart-product-browser table,
|
2 |
-
.ecwid-shopping-cart-categories table,
|
3 |
-
.ecwid-popup table,
|
4 |
-
.ecwid-MessageBox table {
|
5 |
-
border: 0px none !important;
|
6 |
-
}
|
7 |
-
|
8 |
-
.ecwid-shopping-cart-product-browser button,
|
9 |
-
.ecwid-popup button,
|
10 |
-
.ecwid-MessageBox button {
|
11 |
-
color: inherit !important;
|
12 |
-
}
|
13 |
-
|
14 |
-
.ecwid-shopping-cart-search button {
|
15 |
-
padding: 0.15em 0.3em !important;
|
16 |
-
}
|
1 |
+
.ecwid-shopping-cart-product-browser table,
|
2 |
+
.ecwid-shopping-cart-categories table,
|
3 |
+
.ecwid-popup table,
|
4 |
+
.ecwid-MessageBox table {
|
5 |
+
border: 0px none !important;
|
6 |
+
}
|
7 |
+
|
8 |
+
.ecwid-shopping-cart-product-browser button,
|
9 |
+
.ecwid-popup button,
|
10 |
+
.ecwid-MessageBox button {
|
11 |
+
color: inherit !important;
|
12 |
+
}
|
13 |
+
|
14 |
+
.ecwid-shopping-cart-search button {
|
15 |
+
padding: 0.15em 0.3em !important;
|
16 |
+
}
|
css/themes/mantra.css
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
html#ecwid_html body#ecwid_body div.ecwid-minicart-mini-rolloverContainer {
|
2 |
-
margin-top: 1px;
|
3 |
}
|
1 |
+
html#ecwid_html body#ecwid_body div.ecwid-minicart-mini-rolloverContainer {
|
2 |
+
margin-top: 1px;
|
3 |
}
|
css/themes/responsive-adjustments.css
CHANGED
@@ -1,385 +1,385 @@
|
|
1 |
-
/* Page Adjustments */
|
2 |
-
body.ecwid-shopping-cart #wrapper {
|
3 |
-
padding: 0 47px 20px 47px;
|
4 |
-
}
|
5 |
-
|
6 |
-
body.ecwid-shopping-cart .page {
|
7 |
-
position: relative;
|
8 |
-
}
|
9 |
-
|
10 |
-
body.ecwid-shopping-cart #content-full {
|
11 |
-
margin-top: 55px;
|
12 |
-
}
|
13 |
-
|
14 |
-
.ecwid-shopping-cart .breadcrumb-list {
|
15 |
-
display: none;
|
16 |
-
}
|
17 |
-
|
18 |
-
body.ecwid-shopping-cart h1.entry-title {
|
19 |
-
padding-left: 1px;
|
20 |
-
font-size: 37px;
|
21 |
-
margin-top: 16px;
|
22 |
-
}
|
23 |
-
|
24 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth a,
|
25 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-minicart-mini-link,
|
26 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath-categoryLink a,
|
27 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-results-topPanel .ecwid-results-topPanel-viewAsPanel-link,
|
28 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-productsTable-addToBagLink
|
29 |
-
{
|
30 |
-
text-decoration: none;
|
31 |
-
}
|
32 |
-
|
33 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth a:hover,
|
34 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-minicart-mini-link:hover,
|
35 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath-categoryLink a:hover,
|
36 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-results-topPanel .ecwid-results-topPanel-viewAsPanel-link:hover,
|
37 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-productsTable-addToBagLink:hover
|
38 |
-
{
|
39 |
-
text-decoration: underline;
|
40 |
-
}
|
41 |
-
|
42 |
-
html#ecwid_html body#ecwid_body #container .ecwid-categories-category {
|
43 |
-
font-family: Open Sans, Trebuchet MS, Helvetica, Verdana, sans-serif;
|
44 |
-
font-size: 22px;
|
45 |
-
}
|
46 |
-
|
47 |
-
/* Minicart */
|
48 |
-
|
49 |
-
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-minicart {
|
50 |
-
position: absolute;
|
51 |
-
top: 58px;
|
52 |
-
display: inline-block;
|
53 |
-
right: 0px;
|
54 |
-
}
|
55 |
-
|
56 |
-
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-minicart div.ecwid-minicart-mini {
|
57 |
-
width: 100px;
|
58 |
-
text-align: right;
|
59 |
-
}
|
60 |
-
.ecwid-shopping-cart-minicart {
|
61 |
-
visibility: hidden;
|
62 |
-
}
|
63 |
-
|
64 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-minicart-mini-rolloverContainer {
|
65 |
-
display: block;
|
66 |
-
}
|
67 |
-
|
68 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-minicart {
|
69 |
-
margin-right: 5px;
|
70 |
-
height: 35px;
|
71 |
-
}
|
72 |
-
|
73 |
-
/* Search */
|
74 |
-
|
75 |
-
|
76 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel input.ecwid-SearchPanel-field {
|
77 |
-
width:30px;
|
78 |
-
}
|
79 |
-
|
80 |
-
.ecwid-shopping-cart .ecwid-shopping-cart-search {
|
81 |
-
position: absolute;
|
82 |
-
right: 5px;
|
83 |
-
top: 8px;
|
84 |
-
z-index: 1;
|
85 |
-
height: 45px;
|
86 |
-
}
|
87 |
-
|
88 |
-
.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel {
|
89 |
-
display: none;
|
90 |
-
width: 40px;
|
91 |
-
}
|
92 |
-
|
93 |
-
.ecwid-shopping-cart.ecwid-search-open .ecwid-search-placeholder {
|
94 |
-
display: none;
|
95 |
-
}
|
96 |
-
|
97 |
-
.ecwid-shopping-cart.ecwid-search-open .ecwid-shopping-cart-search .ecwid-SearchPanel {
|
98 |
-
display: block;
|
99 |
-
width: 180px;
|
100 |
-
-webkit-transition: width 0.1s;
|
101 |
-
transition: width 0.1s;
|
102 |
-
}
|
103 |
-
|
104 |
-
.ecwid-shopping-cart-search,
|
105 |
-
.ecwid-SearchPanel {
|
106 |
-
white-space: nowrap;
|
107 |
-
}
|
108 |
-
|
109 |
-
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-search .ecwid-SearchPanel .ecwid-SearchPanel-button,
|
110 |
-
html#ecwid_html body#ecwid_body .ecwid-SearchPanel .ecwid-SearchPanel-button {
|
111 |
-
border: 0 none;
|
112 |
-
background: transparent;
|
113 |
-
line-height: normal;
|
114 |
-
vertical-align: top;
|
115 |
-
padding: 0;
|
116 |
-
margin: 0;
|
117 |
-
width: 0px;
|
118 |
-
height:30px;
|
119 |
-
position: relative;
|
120 |
-
right: 0px;
|
121 |
-
cursor: pointer;
|
122 |
-
font-size: 0px;
|
123 |
-
}
|
124 |
-
|
125 |
-
.ecwid-shopping-cart-search .ecwid-search-placeholder {
|
126 |
-
width: 1px;
|
127 |
-
height: 20px;
|
128 |
-
position: absolute;
|
129 |
-
right: 23px;
|
130 |
-
top: -2px;
|
131 |
-
z-index: 1;
|
132 |
-
}
|
133 |
-
|
134 |
-
.ecwid-shopping-cart .ecwid-search-placeholder:after,
|
135 |
-
.ecwid-SearchPanel .ecwid-SearchPanel-button:before {
|
136 |
-
content: '\f179';
|
137 |
-
font-weight: bold;
|
138 |
-
font-family: 'dashicons';
|
139 |
-
font-size: 18px;
|
140 |
-
color: #AAA;
|
141 |
-
position: relative;
|
142 |
-
}
|
143 |
-
|
144 |
-
.ecwid-shopping-cart .ecwid-search-placeholder:after
|
145 |
-
{
|
146 |
-
top: 7px;
|
147 |
-
cursor: pointer;
|
148 |
-
}
|
149 |
-
|
150 |
-
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-search input,
|
151 |
-
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-search input:focus
|
152 |
-
{
|
153 |
-
border: 1px solid #D1D1D1;
|
154 |
-
outline: none;
|
155 |
-
}
|
156 |
-
|
157 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart.ecwid-search-open .ecwid-shopping-cart-search input.ecwid-SearchPanel-field,
|
158 |
-
html#ecwid_html body#ecwid_body .ecwid-productBrowser-search-SearchPanel input[type=search],
|
159 |
-
html#ecwid_html body#ecwid_body .ecwid-SearchPanel input.ecwid-SearchPanel-field
|
160 |
-
{
|
161 |
-
-webkit-appearance: none;
|
162 |
-
border-radius: 3px;
|
163 |
-
margin-right: -24px;
|
164 |
-
padding: 6px 0px 6px 3px;
|
165 |
-
box-shadow: none;
|
166 |
-
border: 1px solid #D1D1D1;
|
167 |
-
width:100%;
|
168 |
-
box-sizing: border-box;
|
169 |
-
}
|
170 |
-
|
171 |
-
input.ecwid-SearchPanel-field::-webkit-search-cancel-button {
|
172 |
-
-webkit-appearance: none;
|
173 |
-
margin: 0px;
|
174 |
-
}
|
175 |
-
|
176 |
-
/* Auth */
|
177 |
-
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-categories {
|
178 |
-
margin-top: 60px;
|
179 |
-
}
|
180 |
-
|
181 |
-
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-product-browser {
|
182 |
-
margin-top: 50px;
|
183 |
-
}
|
184 |
-
|
185 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth-mini,
|
186 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-search,
|
187 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-minicart {
|
188 |
-
position: absolute;
|
189 |
-
}
|
190 |
-
|
191 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth-mini {
|
192 |
-
margin-bottom: 5px;
|
193 |
-
display: inline-block;
|
194 |
-
width: inherit;
|
195 |
-
right: 0px;
|
196 |
-
}
|
197 |
-
|
198 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart.ecwid-with-search .ecwid-productBrowser-auth-mini {
|
199 |
-
margin-right: 25px;
|
200 |
-
}
|
201 |
-
|
202 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth-mini td {
|
203 |
-
height: 45px;
|
204 |
-
}
|
205 |
-
|
206 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-ProductBrowser-auth-anonim,
|
207 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-ProductBrowser-auth-logged {
|
208 |
-
margin-right: 0px;
|
209 |
-
}
|
210 |
-
|
211 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart.ecwid-search-open .ecwid-productBrowser-auth-mini {
|
212 |
-
margin-right: 195px;
|
213 |
-
-webkit-transition: margin-right 0.1s;
|
214 |
-
transition: margin-right 0.1s;
|
215 |
-
}
|
216 |
-
|
217 |
-
/* Product browser */
|
218 |
-
|
219 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-productBrowser {
|
220 |
-
padding: 0;
|
221 |
-
}
|
222 |
-
|
223 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-productBrowser-head {
|
224 |
-
font-size: 26px;
|
225 |
-
margin-top: 2px;
|
226 |
-
}
|
227 |
-
|
228 |
-
body.ecwid-shopping-cart h1,
|
229 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth a,
|
230 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth a:active,
|
231 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-head,
|
232 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-productNameLink a,
|
233 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-productNameLink a:active,
|
234 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-price,
|
235 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-productBrowser-categoryPath a,
|
236 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-results-topPanel div
|
237 |
-
{
|
238 |
-
font-family: Open Sans, Trebuchet MS, Helvetica, Verdana, sans-serif;
|
239 |
-
}
|
240 |
-
|
241 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath a,
|
242 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath a:active
|
243 |
-
{
|
244 |
-
font-size: 14px;
|
245 |
-
}
|
246 |
-
|
247 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath-categoryLabel
|
248 |
-
{
|
249 |
-
font-size: 13px;
|
250 |
-
}
|
251 |
-
|
252 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath {
|
253 |
-
padding-top: 5px;
|
254 |
-
}
|
255 |
-
|
256 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-productsGrid-mainTable {
|
257 |
-
margin-top: 18px;
|
258 |
-
}
|
259 |
-
|
260 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-productsGrid div.ecwid-productBrowser-productNameLink {
|
261 |
-
text-align: center;
|
262 |
-
}
|
263 |
-
|
264 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-productNameLink a,
|
265 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-productNameLink a:active,
|
266 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-productNameLink a:visited
|
267 |
-
{
|
268 |
-
text-decoration: none;
|
269 |
-
font-size: 20px;
|
270 |
-
}
|
271 |
-
|
272 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-productsGrid div.ecwid-productBrowser-sku {
|
273 |
-
display: none;
|
274 |
-
}
|
275 |
-
|
276 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-price {
|
277 |
-
margin-top: 0;
|
278 |
-
font-weight: 600;
|
279 |
-
}
|
280 |
-
|
281 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser td.ecwid-productBrowser-productsGrid-cellSpace {
|
282 |
-
height: 62px;
|
283 |
-
}
|
284 |
-
|
285 |
-
/* Product details */
|
286 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-details-rightPanel {
|
287 |
-
margin-right: 4px;
|
288 |
-
}
|
289 |
-
|
290 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-details-inStockLabel,
|
291 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-fieldLabel,
|
292 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-details-qtyLabel
|
293 |
-
{
|
294 |
-
font-family: Open Sans, Trebuchet MS, Helvetica, Verdana, sans-serif;
|
295 |
-
}
|
296 |
-
|
297 |
-
@media screen and (max-width: 650px) {
|
298 |
-
|
299 |
-
body.ecwid-shopping-cart #content-full {
|
300 |
-
margin-top: 32px;
|
301 |
-
}
|
302 |
-
body.ecwid-shopping-cart h1.entry-title {
|
303 |
-
display: none;
|
304 |
-
}
|
305 |
-
|
306 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-productBrowser {
|
307 |
-
padding: 0 4px !important;
|
308 |
-
}
|
309 |
-
|
310 |
-
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-categories {
|
311 |
-
display: none;
|
312 |
-
|
313 |
-
}
|
314 |
-
/* Search */
|
315 |
-
|
316 |
-
.ecwid-shopping-cart .ecwid-shopping-cart-search {
|
317 |
-
top: -35px;
|
318 |
-
right: auto;
|
319 |
-
width: 100%;
|
320 |
-
white-space: nowrap;
|
321 |
-
}
|
322 |
-
|
323 |
-
.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel {
|
324 |
-
display: block;
|
325 |
-
width:100%;
|
326 |
-
}
|
327 |
-
|
328 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel input.ecwid-SearchPanel-field {
|
329 |
-
width: 100%;
|
330 |
-
box-sizing: border-box;
|
331 |
-
display: inline-block;
|
332 |
-
}
|
333 |
-
|
334 |
-
/* Auth */
|
335 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth-mini {
|
336 |
-
top: -25px;
|
337 |
-
}
|
338 |
-
|
339 |
-
html#ecwid_html body#ecwid_body .ecwid-productBrowser-auth > div,
|
340 |
-
html#ecwid_html body#ecwid_body.ecwid-with-search .ecwid-productBrowser-auth > div,
|
341 |
-
html#ecwid_html body#ecwid_body.ecwid-with-minicart .ecwid-productBrowser-auth > div,
|
342 |
-
html#ecwid_html body#ecwid_body.ecwid-with-minicart.ecwid-with-search .ecwid-productBrowser-auth > div {
|
343 |
-
margin-right: 0px;
|
344 |
-
}
|
345 |
-
|
346 |
-
|
347 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth-mini td {
|
348 |
-
height: auto;
|
349 |
-
}
|
350 |
-
|
351 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-ProductBrowser-auth-space {
|
352 |
-
display: none;
|
353 |
-
}
|
354 |
-
/* Minicart */
|
355 |
-
|
356 |
-
.ecwid-shopping-cart-minicart {
|
357 |
-
position: absolute;
|
358 |
-
right: auto;
|
359 |
-
left: 31px;
|
360 |
-
top: -204px;
|
361 |
-
}
|
362 |
-
|
363 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-minicart,
|
364 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-minicart-mini-rolloverContainer
|
365 |
-
{
|
366 |
-
display: none;
|
367 |
-
}
|
368 |
-
|
369 |
-
/* Product Browser */
|
370 |
-
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-product-browser {
|
371 |
-
margin-top: 40px;
|
372 |
-
}
|
373 |
-
|
374 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-productBrowser-head {
|
375 |
-
}
|
376 |
-
|
377 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath {
|
378 |
-
padding-top: 6px;
|
379 |
-
}
|
380 |
-
|
381 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-productNameLink {
|
382 |
-
margin-top: 10px;
|
383 |
-
}
|
384 |
-
|
385 |
-
}
|
1 |
+
/* Page Adjustments */
|
2 |
+
body.ecwid-shopping-cart #wrapper {
|
3 |
+
padding: 0 47px 20px 47px;
|
4 |
+
}
|
5 |
+
|
6 |
+
body.ecwid-shopping-cart .page {
|
7 |
+
position: relative;
|
8 |
+
}
|
9 |
+
|
10 |
+
body.ecwid-shopping-cart #content-full {
|
11 |
+
margin-top: 55px;
|
12 |
+
}
|
13 |
+
|
14 |
+
.ecwid-shopping-cart .breadcrumb-list {
|
15 |
+
display: none;
|
16 |
+
}
|
17 |
+
|
18 |
+
body.ecwid-shopping-cart h1.entry-title {
|
19 |
+
padding-left: 1px;
|
20 |
+
font-size: 37px;
|
21 |
+
margin-top: 16px;
|
22 |
+
}
|
23 |
+
|
24 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth a,
|
25 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-minicart-mini-link,
|
26 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath-categoryLink a,
|
27 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-results-topPanel .ecwid-results-topPanel-viewAsPanel-link,
|
28 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-productsTable-addToBagLink
|
29 |
+
{
|
30 |
+
text-decoration: none;
|
31 |
+
}
|
32 |
+
|
33 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth a:hover,
|
34 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-minicart-mini-link:hover,
|
35 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath-categoryLink a:hover,
|
36 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-results-topPanel .ecwid-results-topPanel-viewAsPanel-link:hover,
|
37 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-productsTable-addToBagLink:hover
|
38 |
+
{
|
39 |
+
text-decoration: underline;
|
40 |
+
}
|
41 |
+
|
42 |
+
html#ecwid_html body#ecwid_body #container .ecwid-categories-category {
|
43 |
+
font-family: Open Sans, Trebuchet MS, Helvetica, Verdana, sans-serif;
|
44 |
+
font-size: 22px;
|
45 |
+
}
|
46 |
+
|
47 |
+
/* Minicart */
|
48 |
+
|
49 |
+
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-minicart {
|
50 |
+
position: absolute;
|
51 |
+
top: 58px;
|
52 |
+
display: inline-block;
|
53 |
+
right: 0px;
|
54 |
+
}
|
55 |
+
|
56 |
+
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-minicart div.ecwid-minicart-mini {
|
57 |
+
width: 100px;
|
58 |
+
text-align: right;
|
59 |
+
}
|
60 |
+
.ecwid-shopping-cart-minicart {
|
61 |
+
visibility: hidden;
|
62 |
+
}
|
63 |
+
|
64 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-minicart-mini-rolloverContainer {
|
65 |
+
display: block;
|
66 |
+
}
|
67 |
+
|
68 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-minicart {
|
69 |
+
margin-right: 5px;
|
70 |
+
height: 35px;
|
71 |
+
}
|
72 |
+
|
73 |
+
/* Search */
|
74 |
+
|
75 |
+
|
76 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel input.ecwid-SearchPanel-field {
|
77 |
+
width:30px;
|
78 |
+
}
|
79 |
+
|
80 |
+
.ecwid-shopping-cart .ecwid-shopping-cart-search {
|
81 |
+
position: absolute;
|
82 |
+
right: 5px;
|
83 |
+
top: 8px;
|
84 |
+
z-index: 1;
|
85 |
+
height: 45px;
|
86 |
+
}
|
87 |
+
|
88 |
+
.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel {
|
89 |
+
display: none;
|
90 |
+
width: 40px;
|
91 |
+
}
|
92 |
+
|
93 |
+
.ecwid-shopping-cart.ecwid-search-open .ecwid-search-placeholder {
|
94 |
+
display: none;
|
95 |
+
}
|
96 |
+
|
97 |
+
.ecwid-shopping-cart.ecwid-search-open .ecwid-shopping-cart-search .ecwid-SearchPanel {
|
98 |
+
display: block;
|
99 |
+
width: 180px;
|
100 |
+
-webkit-transition: width 0.1s;
|
101 |
+
transition: width 0.1s;
|
102 |
+
}
|
103 |
+
|
104 |
+
.ecwid-shopping-cart-search,
|
105 |
+
.ecwid-SearchPanel {
|
106 |
+
white-space: nowrap;
|
107 |
+
}
|
108 |
+
|
109 |
+
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-search .ecwid-SearchPanel .ecwid-SearchPanel-button,
|
110 |
+
html#ecwid_html body#ecwid_body .ecwid-SearchPanel .ecwid-SearchPanel-button {
|
111 |
+
border: 0 none;
|
112 |
+
background: transparent;
|
113 |
+
line-height: normal;
|
114 |
+
vertical-align: top;
|
115 |
+
padding: 0;
|
116 |
+
margin: 0;
|
117 |
+
width: 0px;
|
118 |
+
height:30px;
|
119 |
+
position: relative;
|
120 |
+
right: 0px;
|
121 |
+
cursor: pointer;
|
122 |
+
font-size: 0px;
|
123 |
+
}
|
124 |
+
|
125 |
+
.ecwid-shopping-cart-search .ecwid-search-placeholder {
|
126 |
+
width: 1px;
|
127 |
+
height: 20px;
|
128 |
+
position: absolute;
|
129 |
+
right: 23px;
|
130 |
+
top: -2px;
|
131 |
+
z-index: 1;
|
132 |
+
}
|
133 |
+
|
134 |
+
.ecwid-shopping-cart .ecwid-search-placeholder:after,
|
135 |
+
.ecwid-SearchPanel .ecwid-SearchPanel-button:before {
|
136 |
+
content: '\f179';
|
137 |
+
font-weight: bold;
|
138 |
+
font-family: 'dashicons';
|
139 |
+
font-size: 18px;
|
140 |
+
color: #AAA;
|
141 |
+
position: relative;
|
142 |
+
}
|
143 |
+
|
144 |
+
.ecwid-shopping-cart .ecwid-search-placeholder:after
|
145 |
+
{
|
146 |
+
top: 7px;
|
147 |
+
cursor: pointer;
|
148 |
+
}
|
149 |
+
|
150 |
+
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-search input,
|
151 |
+
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-search input:focus
|
152 |
+
{
|
153 |
+
border: 1px solid #D1D1D1;
|
154 |
+
outline: none;
|
155 |
+
}
|
156 |
+
|
157 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart.ecwid-search-open .ecwid-shopping-cart-search input.ecwid-SearchPanel-field,
|
158 |
+
html#ecwid_html body#ecwid_body .ecwid-productBrowser-search-SearchPanel input[type=search],
|
159 |
+
html#ecwid_html body#ecwid_body .ecwid-SearchPanel input.ecwid-SearchPanel-field
|
160 |
+
{
|
161 |
+
-webkit-appearance: none;
|
162 |
+
border-radius: 3px;
|
163 |
+
margin-right: -24px;
|
164 |
+
padding: 6px 0px 6px 3px;
|
165 |
+
box-shadow: none;
|
166 |
+
border: 1px solid #D1D1D1;
|
167 |
+
width:100%;
|
168 |
+
box-sizing: border-box;
|
169 |
+
}
|
170 |
+
|
171 |
+
input.ecwid-SearchPanel-field::-webkit-search-cancel-button {
|
172 |
+
-webkit-appearance: none;
|
173 |
+
margin: 0px;
|
174 |
+
}
|
175 |
+
|
176 |
+
/* Auth */
|
177 |
+
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-categories {
|
178 |
+
margin-top: 60px;
|
179 |
+
}
|
180 |
+
|
181 |
+
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-product-browser {
|
182 |
+
margin-top: 50px;
|
183 |
+
}
|
184 |
+
|
185 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth-mini,
|
186 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-search,
|
187 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-minicart {
|
188 |
+
position: absolute;
|
189 |
+
}
|
190 |
+
|
191 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth-mini {
|
192 |
+
margin-bottom: 5px;
|
193 |
+
display: inline-block;
|
194 |
+
width: inherit;
|
195 |
+
right: 0px;
|
196 |
+
}
|
197 |
+
|
198 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart.ecwid-with-search .ecwid-productBrowser-auth-mini {
|
199 |
+
margin-right: 25px;
|
200 |
+
}
|
201 |
+
|
202 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth-mini td {
|
203 |
+
height: 45px;
|
204 |
+
}
|
205 |
+
|
206 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-ProductBrowser-auth-anonim,
|
207 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-ProductBrowser-auth-logged {
|
208 |
+
margin-right: 0px;
|
209 |
+
}
|
210 |
+
|
211 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart.ecwid-search-open .ecwid-productBrowser-auth-mini {
|
212 |
+
margin-right: 195px;
|
213 |
+
-webkit-transition: margin-right 0.1s;
|
214 |
+
transition: margin-right 0.1s;
|
215 |
+
}
|
216 |
+
|
217 |
+
/* Product browser */
|
218 |
+
|
219 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-productBrowser {
|
220 |
+
padding: 0;
|
221 |
+
}
|
222 |
+
|
223 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-productBrowser-head {
|
224 |
+
font-size: 26px;
|
225 |
+
margin-top: 2px;
|
226 |
+
}
|
227 |
+
|
228 |
+
body.ecwid-shopping-cart h1,
|
229 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth a,
|
230 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth a:active,
|
231 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-head,
|
232 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-productNameLink a,
|
233 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-productNameLink a:active,
|
234 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-price,
|
235 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-productBrowser-categoryPath a,
|
236 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-results-topPanel div
|
237 |
+
{
|
238 |
+
font-family: Open Sans, Trebuchet MS, Helvetica, Verdana, sans-serif;
|
239 |
+
}
|
240 |
+
|
241 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath a,
|
242 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath a:active
|
243 |
+
{
|
244 |
+
font-size: 14px;
|
245 |
+
}
|
246 |
+
|
247 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath-categoryLabel
|
248 |
+
{
|
249 |
+
font-size: 13px;
|
250 |
+
}
|
251 |
+
|
252 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath {
|
253 |
+
padding-top: 5px;
|
254 |
+
}
|
255 |
+
|
256 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-productsGrid-mainTable {
|
257 |
+
margin-top: 18px;
|
258 |
+
}
|
259 |
+
|
260 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-productsGrid div.ecwid-productBrowser-productNameLink {
|
261 |
+
text-align: center;
|
262 |
+
}
|
263 |
+
|
264 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-productNameLink a,
|
265 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-productNameLink a:active,
|
266 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-productNameLink a:visited
|
267 |
+
{
|
268 |
+
text-decoration: none;
|
269 |
+
font-size: 20px;
|
270 |
+
}
|
271 |
+
|
272 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-productsGrid div.ecwid-productBrowser-sku {
|
273 |
+
display: none;
|
274 |
+
}
|
275 |
+
|
276 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-price {
|
277 |
+
margin-top: 0;
|
278 |
+
font-weight: 600;
|
279 |
+
}
|
280 |
+
|
281 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser td.ecwid-productBrowser-productsGrid-cellSpace {
|
282 |
+
height: 62px;
|
283 |
+
}
|
284 |
+
|
285 |
+
/* Product details */
|
286 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser div.ecwid-productBrowser-details-rightPanel {
|
287 |
+
margin-right: 4px;
|
288 |
+
}
|
289 |
+
|
290 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-details-inStockLabel,
|
291 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-fieldLabel,
|
292 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-details-qtyLabel
|
293 |
+
{
|
294 |
+
font-family: Open Sans, Trebuchet MS, Helvetica, Verdana, sans-serif;
|
295 |
+
}
|
296 |
+
|
297 |
+
@media screen and (max-width: 650px) {
|
298 |
+
|
299 |
+
body.ecwid-shopping-cart #content-full {
|
300 |
+
margin-top: 32px;
|
301 |
+
}
|
302 |
+
body.ecwid-shopping-cart h1.entry-title {
|
303 |
+
display: none;
|
304 |
+
}
|
305 |
+
|
306 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-productBrowser {
|
307 |
+
padding: 0 4px !important;
|
308 |
+
}
|
309 |
+
|
310 |
+
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-categories {
|
311 |
+
display: none;
|
312 |
+
|
313 |
+
}
|
314 |
+
/* Search */
|
315 |
+
|
316 |
+
.ecwid-shopping-cart .ecwid-shopping-cart-search {
|
317 |
+
top: -35px;
|
318 |
+
right: auto;
|
319 |
+
width: 100%;
|
320 |
+
white-space: nowrap;
|
321 |
+
}
|
322 |
+
|
323 |
+
.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel {
|
324 |
+
display: block;
|
325 |
+
width:100%;
|
326 |
+
}
|
327 |
+
|
328 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel input.ecwid-SearchPanel-field {
|
329 |
+
width: 100%;
|
330 |
+
box-sizing: border-box;
|
331 |
+
display: inline-block;
|
332 |
+
}
|
333 |
+
|
334 |
+
/* Auth */
|
335 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth-mini {
|
336 |
+
top: -25px;
|
337 |
+
}
|
338 |
+
|
339 |
+
html#ecwid_html body#ecwid_body .ecwid-productBrowser-auth > div,
|
340 |
+
html#ecwid_html body#ecwid_body.ecwid-with-search .ecwid-productBrowser-auth > div,
|
341 |
+
html#ecwid_html body#ecwid_body.ecwid-with-minicart .ecwid-productBrowser-auth > div,
|
342 |
+
html#ecwid_html body#ecwid_body.ecwid-with-minicart.ecwid-with-search .ecwid-productBrowser-auth > div {
|
343 |
+
margin-right: 0px;
|
344 |
+
}
|
345 |
+
|
346 |
+
|
347 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-auth-mini td {
|
348 |
+
height: auto;
|
349 |
+
}
|
350 |
+
|
351 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-ProductBrowser-auth-space {
|
352 |
+
display: none;
|
353 |
+
}
|
354 |
+
/* Minicart */
|
355 |
+
|
356 |
+
.ecwid-shopping-cart-minicart {
|
357 |
+
position: absolute;
|
358 |
+
right: auto;
|
359 |
+
left: 31px;
|
360 |
+
top: -204px;
|
361 |
+
}
|
362 |
+
|
363 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-minicart,
|
364 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-minicart-mini-rolloverContainer
|
365 |
+
{
|
366 |
+
display: none;
|
367 |
+
}
|
368 |
+
|
369 |
+
/* Product Browser */
|
370 |
+
html#ecwid_html body#ecwid_body .ecwid-shopping-cart-product-browser {
|
371 |
+
margin-top: 40px;
|
372 |
+
}
|
373 |
+
|
374 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart div.ecwid-productBrowser-head {
|
375 |
+
}
|
376 |
+
|
377 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productBrowser-categoryPath {
|
378 |
+
padding-top: 6px;
|
379 |
+
}
|
380 |
+
|
381 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-shopping-cart-product-browser .ecwid-productBrowser-productNameLink {
|
382 |
+
margin-top: 10px;
|
383 |
+
}
|
384 |
+
|
385 |
+
}
|
css/themes/responsive.css
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
-
/* Mobile */
|
2 |
-
@media screen and (max-width: 400px) {
|
3 |
-
|
4 |
-
body.ecwid-shopping-cart #container {
|
5 |
-
padding: 0 10px;
|
6 |
-
}
|
7 |
-
|
8 |
-
body.ecwid-shopping-cart #wrapper {
|
9 |
-
padding: 0 10px;
|
10 |
-
}
|
11 |
-
}
|
12 |
-
|
13 |
-
@media screen and (max-width: 650px) {
|
14 |
-
|
15 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart #select-State-Box,
|
16 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart #select-Country-Box,
|
17 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-AddressForm-state,
|
18 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-AddressForm-country,
|
19 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-fieldEnvelope {
|
20 |
-
width: 100%;
|
21 |
-
}
|
22 |
}
|
1 |
+
/* Mobile */
|
2 |
+
@media screen and (max-width: 400px) {
|
3 |
+
|
4 |
+
body.ecwid-shopping-cart #container {
|
5 |
+
padding: 0 10px;
|
6 |
+
}
|
7 |
+
|
8 |
+
body.ecwid-shopping-cart #wrapper {
|
9 |
+
padding: 0 10px;
|
10 |
+
}
|
11 |
+
}
|
12 |
+
|
13 |
+
@media screen and (max-width: 650px) {
|
14 |
+
|
15 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart #select-State-Box,
|
16 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart #select-Country-Box,
|
17 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-AddressForm-state,
|
18 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-AddressForm-country,
|
19 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-fieldEnvelope {
|
20 |
+
width: 100%;
|
21 |
+
}
|
22 |
}
|
css/themes/responsiveboat.css
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
-
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productsList ul li .ecwid-productsList-name {
|
2 |
-
font-size: 16px;
|
3 |
-
}
|
4 |
-
|
5 |
-
html#ecwid_html body#ecwid_body .ecwid-productBrowser-details-rightPanel table {
|
6 |
-
line-height: initial;
|
7 |
}
|
1 |
+
html#ecwid_html body#ecwid_body.ecwid-shopping-cart .ecwid-productsList ul li .ecwid-productsList-name {
|
2 |
+
font-size: 16px;
|
3 |
+
}
|
4 |
+
|
5 |
+
html#ecwid_html body#ecwid_body .ecwid-productBrowser-details-rightPanel table {
|
6 |
+
line-height: initial;
|
7 |
}
|
ecwid-shopping-cart.php
CHANGED
@@ -1,3263 +1,3282 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
Plugin Name: Ecwid Shopping Cart
|
4 |
-
Plugin URI: http://www.ecwid.com?source=wporg
|
5 |
-
Description: Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.
|
6 |
-
Text Domain: ecwid-shopping-cart
|
7 |
-
Author: Ecwid Team
|
8 |
-
Version: 4.0.
|
9 |
-
Author URI: http://www.ecwid.com?source=wporg
|
10 |
-
*/
|
11 |
-
|
12 |
-
register_activation_hook( __FILE__, 'ecwid_store_activate' );
|
13 |
-
register_deactivation_hook( __FILE__, 'ecwid_store_deactivate' );
|
14 |
-
register_uninstall_hook( __FILE__, 'ecwid_uninstall' );
|
15 |
-
|
16 |
-
define("APP_ECWID_COM", 'app.ecwid.com');
|
17 |
-
define("ECWID_DEMO_STORE_ID", 1003);
|
18 |
-
|
19 |
-
|
20 |
-
if ( ! defined( 'ECWID_PLUGIN_DIR' ) ) {
|
21 |
-
define( 'ECWID_PLUGIN_DIR', plugin_dir_path( realpath(__FILE__) ) );
|
22 |
-
}
|
23 |
-
|
24 |
-
if ( ! defined( 'ECWID_PLUGIN_URL' ) ) {
|
25 |
-
define( 'ECWID_PLUGIN_URL', plugin_dir_url( realpath(__FILE__) ) );
|
26 |
-
}
|
27 |
-
|
28 |
-
// Older versions of Google XML Sitemaps plugin generate it in admin, newer in site area, so the hook should be assigned in both of them
|
29 |
-
add_action('sm_buildmap', 'ecwid_build_google_xml_sitemap');
|
30 |
-
|
31 |
-
// Needs to be in both front-end and back-end to allow admin zone recognize the shortcode
|
32 |
-
add_shortcode('ecwid_productbrowser', 'ecwid_productbrowser_shortcode');
|
33 |
-
add_shortcode('ecwid', 'ecwid_shortcode');
|
34 |
-
|
35 |
-
add_action( 'plugins_loaded', 'ecwid_init_integrations' );
|
36 |
-
add_filter('plugins_loaded', 'ecwid_load_textdomain');
|
37 |
-
|
38 |
-
add_action( 'wp_ajax_ecwid_ajax_seo_title', 'ecwid_ajax_seo_title' );
|
39 |
-
add_action( 'wp_ajax_nopriv_ecwid_ajax_seo_title', 'ecwid_ajax_seo_title' );
|
40 |
-
add_filter('wp_get_nav_menu_items', 'ecwid_nav_menu_items');
|
41 |
-
|
42 |
-
if ( is_admin() ){
|
43 |
-
add_action('admin_init', 'ecwid_settings_api_init');
|
44 |
-
add_action('admin_init', 'ecwid_check_version');
|
45 |
-
add_action('admin_init', 'ecwid_process_oauth_params');
|
46 |
-
add_filter( 'admin_init', 'ecwid_add_meta_boxes' );
|
47 |
-
add_action('admin_notices', 'ecwid_show_admin_messages');
|
48 |
-
add_action('admin_menu', 'ecwid_build_menu');
|
49 |
-
add_action('wp_dashboard_setup', 'ecwid_add_dashboard_widgets' );
|
50 |
-
add_action('admin_enqueue_scripts', 'ecwid_common_admin_scripts');
|
51 |
-
add_action('admin_enqueue_scripts', 'ecwid_register_admin_styles');
|
52 |
-
add_action('admin_enqueue_scripts', 'ecwid_register_settings_styles');
|
53 |
-
add_action('wp_ajax_ecwid_hide_vote_message', 'ecwid_hide_vote_message');
|
54 |
-
add_action('wp_ajax_ecwid_hide_message', 'ecwid_ajax_hide_message');
|
55 |
-
add_action('
|
56 |
-
|
57 |
-
|
58 |
-
add_action('admin_head', '
|
59 |
-
add_action('
|
60 |
-
add_action('
|
61 |
-
|
62 |
-
add_action('
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
add_shortcode('
|
67 |
-
add_shortcode('
|
68 |
-
add_shortcode('
|
69 |
-
add_shortcode('
|
70 |
-
|
71 |
-
add_action('
|
72 |
-
add_action('
|
73 |
-
add_action('template_redirect', '
|
74 |
-
add_action('
|
75 |
-
add_action('
|
76 |
-
add_action('wp', '
|
77 |
-
|
78 |
-
add_filter('
|
79 |
-
add_filter('
|
80 |
-
|
81 |
-
add_action('
|
82 |
-
add_action('wp_head', '
|
83 |
-
add_action('wp_head', '
|
84 |
-
add_action('wp_head', '
|
85 |
-
add_action('wp_head', '
|
86 |
-
|
87 |
-
add_action('wp_head', '
|
88 |
-
|
89 |
-
add_filter('
|
90 |
-
add_filter('
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
require_once ECWID_PLUGIN_DIR . '/includes/
|
102 |
-
require_once ECWID_PLUGIN_DIR . '/includes/class-ecwid-
|
103 |
-
require_once ECWID_PLUGIN_DIR . '/includes/class-ecwid-
|
104 |
-
require_once ECWID_PLUGIN_DIR . '/
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
}
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
}
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
$
|
282 |
-
|
283 |
-
$
|
284 |
-
$
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
)
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
$
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
if (get_option('
|
307 |
-
$localize['
|
308 |
-
}
|
309 |
-
if (get_option('
|
310 |
-
$localize['
|
311 |
-
}
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
$
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
add_option('
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
}
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
remove_action('
|
572 |
-
remove_action('
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
}
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
$
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
$
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
'
|
651 |
-
'
|
652 |
-
|
653 |
-
)
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
}
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
$
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
}
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
}
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
if ($params['mode']
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
$
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
$
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
$product = $
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
if(is_array($
|
857 |
-
$return
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
if (
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
$
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
}
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
}
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
$new_powered_by .=
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
$
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
if ($
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
$ecwid_show_categories =
|
1046 |
-
}
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
<script
|
1115 |
-
|
1116 |
-
}
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
$
|
1148 |
-
'
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
'
|
1154 |
-
'
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
'<div
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
'
|
1197 |
-
'
|
1198 |
-
'
|
1199 |
-
'
|
1200 |
-
'
|
1201 |
-
'
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
}
|
1217 |
-
|
1218 |
-
$
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
$
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
'
|
1248 |
-
'
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
$
|
1265 |
-
$
|
1266 |
-
|
1267 |
-
$
|
1268 |
-
$
|
1269 |
-
$
|
1270 |
-
|
1271 |
-
$
|
1272 |
-
$
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
$
|
1279 |
-
|
1280 |
-
|
1281 |
-
|
1282 |
-
|
1283 |
-
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
if (empty($
|
1294 |
-
$
|
1295 |
-
}
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
$
|
1302 |
-
}
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
$
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
$
|
1324 |
-
$url =
|
1325 |
-
}
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
}
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
}
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
$
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
add_option("
|
1402 |
-
|
1403 |
-
add_option("
|
1404 |
-
|
1405 |
-
add_option("
|
1406 |
-
|
1407 |
-
add_option("
|
1408 |
-
|
1409 |
-
add_option("
|
1410 |
-
|
1411 |
-
|
1412 |
-
add_option("
|
1413 |
-
add_option("
|
1414 |
-
|
1415 |
-
|
1416 |
-
add_option("
|
1417 |
-
|
1418 |
-
|
1419 |
-
add_option('
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
add_option(
|
1424 |
-
|
1425 |
-
add_option(
|
1426 |
-
|
1427 |
-
add_option(
|
1428 |
-
|
1429 |
-
add_option("
|
1430 |
-
|
1431 |
-
add_option('
|
1432 |
-
|
1433 |
-
add_option('
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
|
1444 |
-
$
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
$my_post
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
$my_post['
|
1455 |
-
$my_post['
|
1456 |
-
$
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
}
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
$
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
1500 |
-
|
1501 |
-
|
1502 |
-
|
1503 |
-
|
1504 |
-
|
1505 |
-
|
1506 |
-
delete_option("
|
1507 |
-
delete_option("
|
1508 |
-
delete_option("
|
1509 |
-
delete_option("
|
1510 |
-
delete_option("
|
1511 |
-
delete_option("
|
1512 |
-
delete_option("
|
1513 |
-
delete_option("
|
1514 |
-
delete_option(
|
1515 |
-
delete_option(
|
1516 |
-
delete_option(
|
1517 |
-
delete_option("
|
1518 |
-
delete_option("
|
1519 |
-
delete_option(
|
1520 |
-
delete_option(
|
1521 |
-
|
1522 |
-
|
1523 |
-
|
1524 |
-
|
1525 |
-
|
1526 |
-
|
1527 |
-
|
1528 |
-
|
1529 |
-
|
1530 |
-
|
1531 |
-
|
1532 |
-
|
1533 |
-
|
1534 |
-
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
-
|
1541 |
-
|
1542 |
-
|
1543 |
-
|
1544 |
-
'
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
|
1550 |
-
|
1551 |
-
|
1552 |
-
|
1553 |
-
|
1554 |
-
$title,
|
1555 |
-
|
1556 |
-
'
|
1557 |
-
|
1558 |
-
|
1559 |
-
|
1560 |
-
|
1561 |
-
|
1562 |
-
|
1563 |
-
|
1564 |
-
|
1565 |
-
|
1566 |
-
|
1567 |
-
|
1568 |
-
|
1569 |
-
|
1570 |
-
|
1571 |
-
|
1572 |
-
|
1573 |
-
|
1574 |
-
'ecwid',
|
1575 |
-
|
1576 |
-
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
1580 |
-
|
1581 |
-
|
1582 |
-
|
1583 |
-
|
1584 |
-
'ecwid',
|
1585 |
-
|
1586 |
-
|
1587 |
-
|
1588 |
-
|
1589 |
-
|
1590 |
-
|
1591 |
-
|
1592 |
-
|
1593 |
-
|
1594 |
-
|
1595 |
-
'
|
1596 |
-
|
1597 |
-
|
1598 |
-
|
1599 |
-
|
1600 |
-
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
1606 |
-
|
1607 |
-
|
1608 |
-
|
1609 |
-
|
1610 |
-
|
1611 |
-
|
1612 |
-
|
1613 |
-
|
1614 |
-
|
1615 |
-
|
1616 |
-
|
1617 |
-
|
1618 |
-
|
1619 |
-
|
1620 |
-
|
1621 |
-
if (
|
1622 |
-
$
|
1623 |
-
|
1624 |
-
|
1625 |
-
|
1626 |
-
|
1627 |
-
|
1628 |
-
$
|
1629 |
-
|
1630 |
-
$
|
1631 |
-
|
1632 |
-
$
|
1633 |
-
|
1634 |
-
|
1635 |
-
|
1636 |
-
|
1637 |
-
|
1638 |
-
$
|
1639 |
-
|
1640 |
-
|
1641 |
-
|
1642 |
-
|
1643 |
-
|
1644 |
-
|
1645 |
-
|
1646 |
-
|
1647 |
-
|
1648 |
-
$
|
1649 |
-
$post
|
1650 |
-
$post->
|
1651 |
-
$post->
|
1652 |
-
$post->
|
1653 |
-
$post->
|
1654 |
-
$post->
|
1655 |
-
$post->
|
1656 |
-
$post->
|
1657 |
-
$post->
|
1658 |
-
$post->
|
1659 |
-
$post->
|
1660 |
-
$post->
|
1661 |
-
$post->
|
1662 |
-
$post->
|
1663 |
-
$post->
|
1664 |
-
$post->
|
1665 |
-
$post->
|
1666 |
-
$post->
|
1667 |
-
$post->
|
1668 |
-
|
1669 |
-
|
1670 |
-
|
1671 |
-
|
1672 |
-
|
1673 |
-
|
1674 |
-
|
1675 |
-
|
1676 |
-
|
1677 |
-
|
1678 |
-
|
1679 |
-
|
1680 |
-
|
1681 |
-
|
1682 |
-
|
1683 |
-
|
1684 |
-
|
1685 |
-
|
1686 |
-
|
1687 |
-
|
1688 |
-
|
1689 |
-
|
1690 |
-
|
1691 |
-
'
|
1692 |
-
'
|
1693 |
-
'
|
1694 |
-
|
1695 |
-
|
1696 |
-
'
|
1697 |
-
'
|
1698 |
-
'
|
1699 |
-
|
1700 |
-
|
1701 |
-
'
|
1702 |
-
'
|
1703 |
-
'
|
1704 |
-
|
1705 |
-
|
1706 |
-
'
|
1707 |
-
'
|
1708 |
-
'
|
1709 |
-
|
1710 |
-
|
1711 |
-
|
1712 |
-
|
1713 |
-
|
1714 |
-
|
1715 |
-
|
1716 |
-
|
1717 |
-
|
1718 |
-
|
1719 |
-
|
1720 |
-
|
1721 |
-
|
1722 |
-
|
1723 |
-
|
1724 |
-
|
1725 |
-
|
1726 |
-
<
|
1727 |
-
|
1728 |
-
|
1729 |
-
|
1730 |
-
|
1731 |
-
|
1732 |
-
|
1733 |
-
|
1734 |
-
|
1735 |
-
|
1736 |
-
|
1737 |
-
|
1738 |
-
|
1739 |
-
|
1740 |
-
|
1741 |
-
|
1742 |
-
|
1743 |
-
|
1744 |
-
|
1745 |
-
|
1746 |
-
|
1747 |
-
|
1748 |
-
|
1749 |
-
|
1750 |
-
|
1751 |
-
|
1752 |
-
|
1753 |
-
|
1754 |
-
|
1755 |
-
|
1756 |
-
|
1757 |
-
|
1758 |
-
|
1759 |
-
|
1760 |
-
|
1761 |
-
|
1762 |
-
|
1763 |
-
|
1764 |
-
|
1765 |
-
|
1766 |
-
|
1767 |
-
|
1768 |
-
|
1769 |
-
|
1770 |
-
|
1771 |
-
|
1772 |
-
|
1773 |
-
|
1774 |
-
|
1775 |
-
|
1776 |
-
|
1777 |
-
|
1778 |
-
|
1779 |
-
|
1780 |
-
|
1781 |
-
|
1782 |
-
|
1783 |
-
|
1784 |
-
|
1785 |
-
|
1786 |
-
|
1787 |
-
|
1788 |
-
|
1789 |
-
|
1790 |
-
|
1791 |
-
|
1792 |
-
|
1793 |
-
.
|
1794 |
-
|
1795 |
-
|
1796 |
-
|
1797 |
-
|
1798 |
-
|
1799 |
-
|
1800 |
-
|
1801 |
-
|
1802 |
-
|
1803 |
-
|
1804 |
-
|
1805 |
-
|
1806 |
-
|
1807 |
-
|
1808 |
-
|
1809 |
-
|
1810 |
-
|
1811 |
-
|
1812 |
-
|
1813 |
-
|
1814 |
-
|
1815 |
-
|
1816 |
-
|
1817 |
-
|
1818 |
-
|
1819 |
-
|
1820 |
-
|
1821 |
-
|
1822 |
-
|
1823 |
-
|
1824 |
-
|
1825 |
-
|
1826 |
-
|
1827 |
-
|
1828 |
-
|
1829 |
-
|
1830 |
-
|
1831 |
-
|
1832 |
-
|
1833 |
-
|
1834 |
-
|
1835 |
-
|
1836 |
-
|
1837 |
-
|
1838 |
-
}
|
1839 |
-
|
1840 |
-
|
1841 |
-
|
1842 |
-
|
1843 |
-
|
1844 |
-
|
1845 |
-
|
1846 |
-
|
1847 |
-
|
1848 |
-
|
1849 |
-
|
1850 |
-
|
1851 |
-
|
1852 |
-
|
1853 |
-
|
1854 |
-
|
1855 |
-
|
1856 |
-
|
1857 |
-
|
1858 |
-
|
1859 |
-
|
1860 |
-
|
1861 |
-
|
1862 |
-
|
1863 |
-
|
1864 |
-
|
1865 |
-
|
1866 |
-
|
1867 |
-
|
1868 |
-
|
1869 |
-
|
1870 |
-
|
1871 |
-
|
1872 |
-
|
1873 |
-
|
1874 |
-
|
1875 |
-
|
1876 |
-
|
1877 |
-
|
1878 |
-
|
1879 |
-
|
1880 |
-
|
1881 |
-
|
1882 |
-
|
1883 |
-
|
1884 |
-
|
1885 |
-
|
1886 |
-
|
1887 |
-
|
1888 |
-
|
1889 |
-
|
1890 |
-
|
1891 |
-
|
1892 |
-
|
1893 |
-
|
1894 |
-
|
1895 |
-
|
1896 |
-
|
1897 |
-
|
1898 |
-
|
1899 |
-
|
1900 |
-
|
1901 |
-
|
1902 |
-
|
1903 |
-
|
1904 |
-
|
1905 |
-
|
1906 |
-
|
1907 |
-
|
1908 |
-
|
1909 |
-
|
1910 |
-
|
1911 |
-
|
1912 |
-
|
1913 |
-
|
1914 |
-
|
1915 |
-
|
1916 |
-
|
1917 |
-
|
1918 |
-
|
1919 |
-
|
1920 |
-
|
1921 |
-
|
1922 |
-
|
1923 |
-
|
1924 |
-
|
1925 |
-
|
1926 |
-
|
1927 |
-
|
1928 |
-
|
1929 |
-
|
1930 |
-
|
1931 |
-
|
1932 |
-
|
1933 |
-
|
1934 |
-
|
1935 |
-
|
1936 |
-
|
1937 |
-
|
1938 |
-
|
1939 |
-
|
1940 |
-
|
1941 |
-
|
1942 |
-
|
1943 |
-
|
1944 |
-
|
1945 |
-
|
1946 |
-
|
1947 |
-
|
1948 |
-
|
1949 |
-
|
1950 |
-
|
1951 |
-
|
1952 |
-
|
1953 |
-
|
1954 |
-
|
1955 |
-
|
1956 |
-
|
1957 |
-
|
1958 |
-
|
1959 |
-
|
1960 |
-
|
1961 |
-
|
1962 |
-
|
1963 |
-
|
1964 |
-
|
1965 |
-
|
1966 |
-
|
1967 |
-
|
1968 |
-
|
1969 |
-
|
1970 |
-
|
1971 |
-
|
1972 |
-
|
1973 |
-
|
1974 |
-
|
1975 |
-
|
1976 |
-
|
1977 |
-
|
1978 |
-
|
1979 |
-
|
1980 |
-
|
1981 |
-
|
1982 |
-
|
1983 |
-
|
1984 |
-
|
1985 |
-
|
1986 |
-
|
1987 |
-
|
1988 |
-
|
1989 |
-
|
1990 |
-
|
1991 |
-
|
1992 |
-
|
1993 |
-
|
1994 |
-
|
1995 |
-
|
1996 |
-
|
1997 |
-
|
1998 |
-
|
1999 |
-
|
2000 |
-
|
2001 |
-
|
2002 |
-
|
2003 |
-
|
2004 |
-
|
2005 |
-
|
2006 |
-
|
2007 |
-
|
2008 |
-
|
2009 |
-
|
2010 |
-
|
2011 |
-
|
2012 |
-
|
2013 |
-
|
2014 |
-
|
2015 |
-
|
2016 |
-
|
2017 |
-
|
2018 |
-
|
2019 |
-
|
2020 |
-
|
2021 |
-
|
2022 |
-
|
2023 |
-
|
2024 |
-
|
2025 |
-
|
2026 |
-
|
2027 |
-
|
2028 |
-
|
2029 |
-
|
2030 |
-
} else if (
|
2031 |
-
|
2032 |
-
|
2033 |
-
|
2034 |
-
|
2035 |
-
}
|
2036 |
-
|
2037 |
-
|
2038 |
-
|
2039 |
-
|
2040 |
-
|
2041 |
-
|
2042 |
-
|
2043 |
-
|
2044 |
-
|
2045 |
-
|
2046 |
-
if (
|
2047 |
-
|
2048 |
-
|
2049 |
-
|
2050 |
-
|
2051 |
-
|
2052 |
-
|
2053 |
-
|
2054 |
-
|
2055 |
-
|
2056 |
-
|
2057 |
-
|
2058 |
-
|
2059 |
-
if ($
|
2060 |
-
|
2061 |
-
|
2062 |
-
|
2063 |
-
|
2064 |
-
|
2065 |
-
|
2066 |
-
|
2067 |
-
|
2068 |
-
|
2069 |
-
|
2070 |
-
|
2071 |
-
|
2072 |
-
|
2073 |
-
|
2074 |
-
|
2075 |
-
|
2076 |
-
|
2077 |
-
|
2078 |
-
|
2079 |
-
|
2080 |
-
|
2081 |
-
|
2082 |
-
|
2083 |
-
|
2084 |
-
|
2085 |
-
|
2086 |
-
|
2087 |
-
|
2088 |
-
|
2089 |
-
|
2090 |
-
|
2091 |
-
|
2092 |
-
|
2093 |
-
|
2094 |
-
|
2095 |
-
|
2096 |
-
|
2097 |
-
|
2098 |
-
|
2099 |
-
|
2100 |
-
|
2101 |
-
|
2102 |
-
|
2103 |
-
|
2104 |
-
|
2105 |
-
|
2106 |
-
|
2107 |
-
|
2108 |
-
|
2109 |
-
}
|
2110 |
-
|
2111 |
-
|
2112 |
-
|
2113 |
-
|
2114 |
-
|
2115 |
-
$
|
2116 |
-
|
2117 |
-
|
2118 |
-
|
2119 |
-
|
2120 |
-
|
2121 |
-
|
2122 |
-
|
2123 |
-
if (
|
2124 |
-
|
2125 |
-
|
2126 |
-
|
2127 |
-
}
|
2128 |
-
|
2129 |
-
|
2130 |
-
|
2131 |
-
|
2132 |
-
|
2133 |
-
|
2134 |
-
|
2135 |
-
|
2136 |
-
|
2137 |
-
|
2138 |
-
|
2139 |
-
|
2140 |
-
|
2141 |
-
|
2142 |
-
|
2143 |
-
$
|
2144 |
-
|
2145 |
-
|
2146 |
-
|
2147 |
-
|
2148 |
-
|
2149 |
-
|
2150 |
-
|
2151 |
-
|
2152 |
-
|
2153 |
-
|
2154 |
-
|
2155 |
-
|
2156 |
-
|
2157 |
-
}
|
2158 |
-
|
2159 |
-
|
2160 |
-
|
2161 |
-
|
2162 |
-
|
2163 |
-
|
2164 |
-
|
2165 |
-
|
2166 |
-
|
2167 |
-
|
2168 |
-
|
2169 |
-
|
2170 |
-
|
2171 |
-
|
2172 |
-
$
|
2173 |
-
|
2174 |
-
|
2175 |
-
|
2176 |
-
|
2177 |
-
|
2178 |
-
|
2179 |
-
|
2180 |
-
|
2181 |
-
|
2182 |
-
|
2183 |
-
|
2184 |
-
|
2185 |
-
|
2186 |
-
|
2187 |
-
|
2188 |
-
|
2189 |
-
|
2190 |
-
|
2191 |
-
|
2192 |
-
$
|
2193 |
-
|
2194 |
-
|
2195 |
-
|
2196 |
-
|
2197 |
-
|
2198 |
-
|
2199 |
-
|
2200 |
-
|
2201 |
-
|
2202 |
-
|
2203 |
-
|
2204 |
-
|
2205 |
-
|
2206 |
-
|
2207 |
-
|
2208 |
-
|
2209 |
-
|
2210 |
-
|
2211 |
-
|
2212 |
-
|
2213 |
-
|
2214 |
-
|
2215 |
-
|
2216 |
-
|
2217 |
-
|
2218 |
-
|
2219 |
-
|
2220 |
-
|
2221 |
-
|
2222 |
-
|
2223 |
-
|
2224 |
-
|
2225 |
-
|
2226 |
-
|
2227 |
-
|
2228 |
-
|
2229 |
-
|
2230 |
-
|
2231 |
-
|
2232 |
-
|
2233 |
-
|
2234 |
-
|
2235 |
-
|
2236 |
-
|
2237 |
-
|
2238 |
-
|
2239 |
-
|
2240 |
-
//
|
2241 |
-
if (
|
2242 |
-
|
2243 |
-
|
2244 |
-
|
2245 |
-
|
2246 |
-
|
2247 |
-
|
2248 |
-
|
2249 |
-
|
2250 |
-
|
2251 |
-
|
2252 |
-
|
2253 |
-
|
2254 |
-
|
2255 |
-
|
2256 |
-
|
2257 |
-
|
2258 |
-
|
2259 |
-
|
2260 |
-
|
2261 |
-
|
2262 |
-
|
2263 |
-
|
2264 |
-
|
2265 |
-
|
2266 |
-
|
2267 |
-
|
2268 |
-
|
2269 |
-
|
2270 |
-
{
|
2271 |
-
|
2272 |
-
|
2273 |
-
|
2274 |
-
|
2275 |
-
|
2276 |
-
|
2277 |
-
|
2278 |
-
|
2279 |
-
|
2280 |
-
|
2281 |
-
|
2282 |
-
|
2283 |
-
}
|
2284 |
-
|
2285 |
-
|
2286 |
-
|
2287 |
-
|
2288 |
-
|
2289 |
-
|
2290 |
-
|
2291 |
-
|
2292 |
-
|
2293 |
-
|
2294 |
-
|
2295 |
-
|
2296 |
-
|
2297 |
-
|
2298 |
-
|
2299 |
-
|
2300 |
-
|
2301 |
-
|
2302 |
-
|
2303 |
-
|
2304 |
-
|
2305 |
-
|
2306 |
-
|
2307 |
-
}
|
2308 |
-
|
2309 |
-
function
|
2310 |
-
{
|
2311 |
-
$
|
2312 |
-
|
2313 |
-
|
2314 |
-
|
2315 |
-
|
2316 |
-
|
2317 |
-
|
2318 |
-
|
2319 |
-
|
2320 |
-
}
|
2321 |
-
|
2322 |
-
|
2323 |
-
|
2324 |
-
|
2325 |
-
|
2326 |
-
|
2327 |
-
|
2328 |
-
|
2329 |
-
|
2330 |
-
|
2331 |
-
|
2332 |
-
|
2333 |
-
|
2334 |
-
|
2335 |
-
|
2336 |
-
|
2337 |
-
|
2338 |
-
|
2339 |
-
|
2340 |
-
|
2341 |
-
|
2342 |
-
|
2343 |
-
|
2344 |
-
|
2345 |
-
|
2346 |
-
|
2347 |
-
|
2348 |
-
|
2349 |
-
|
2350 |
-
|
2351 |
-
|
2352 |
-
'
|
2353 |
-
'
|
2354 |
-
'
|
2355 |
-
|
2356 |
-
|
2357 |
-
|
2358 |
-
'
|
2359 |
-
'
|
2360 |
-
'
|
2361 |
-
|
2362 |
-
|
2363 |
-
|
2364 |
-
'
|
2365 |
-
'
|
2366 |
-
'
|
2367 |
-
|
2368 |
-
|
2369 |
-
|
2370 |
-
'
|
2371 |
-
'
|
2372 |
-
'
|
2373 |
-
|
2374 |
-
|
2375 |
-
|
2376 |
-
'
|
2377 |
-
'
|
2378 |
-
'
|
2379 |
-
|
2380 |
-
|
2381 |
-
|
2382 |
-
'
|
2383 |
-
'
|
2384 |
-
'
|
2385 |
-
|
2386 |
-
|
2387 |
-
|
2388 |
-
'
|
2389 |
-
'
|
2390 |
-
'
|
2391 |
-
|
2392 |
-
|
2393 |
-
|
2394 |
-
|
2395 |
-
|
2396 |
-
|
2397 |
-
|
2398 |
-
|
2399 |
-
|
2400 |
-
|
2401 |
-
|
2402 |
-
|
2403 |
-
|
2404 |
-
|
2405 |
-
|
2406 |
-
|
2407 |
-
|
2408 |
-
|
2409 |
-
|
2410 |
-
|
2411 |
-
|
2412 |
-
|
2413 |
-
|
2414 |
-
|
2415 |
-
|
2416 |
-
|
2417 |
-
|
2418 |
-
|
2419 |
-
|
2420 |
-
|
2421 |
-
|
2422 |
-
|
2423 |
-
|
2424 |
-
|
2425 |
-
|
2426 |
-
|
2427 |
-
|
2428 |
-
|
2429 |
-
$
|
2430 |
-
|
2431 |
-
|
2432 |
-
|
2433 |
-
|
2434 |
-
|
2435 |
-
|
2436 |
-
|
2437 |
-
|
2438 |
-
|
2439 |
-
|
2440 |
-
|
2441 |
-
|
2442 |
-
|
2443 |
-
|
2444 |
-
|
2445 |
-
|
2446 |
-
|
2447 |
-
|
2448 |
-
|
2449 |
-
|
2450 |
-
|
2451 |
-
|
2452 |
-
|
2453 |
-
|
2454 |
-
|
2455 |
-
|
2456 |
-
|
2457 |
-
|
2458 |
-
|
2459 |
-
|
2460 |
-
|
2461 |
-
|
2462 |
-
|
2463 |
-
|
2464 |
-
|
2465 |
-
|
2466 |
-
|
2467 |
-
|
2468 |
-
|
2469 |
-
|
2470 |
-
|
2471 |
-
|
2472 |
-
|
2473 |
-
|
2474 |
-
|
2475 |
-
|
2476 |
-
|
2477 |
-
|
2478 |
-
|
2479 |
-
|
2480 |
-
|
2481 |
-
|
2482 |
-
|
2483 |
-
|
2484 |
-
|
2485 |
-
|
2486 |
-
|
2487 |
-
|
2488 |
-
|
2489 |
-
|
2490 |
-
|
2491 |
-
|
2492 |
-
|
2493 |
-
|
2494 |
-
|
2495 |
-
|
2496 |
-
|
2497 |
-
|
2498 |
-
|
2499 |
-
|
2500 |
-
|
2501 |
-
|
2502 |
-
|
2503 |
-
function
|
2504 |
-
|
2505 |
-
|
2506 |
-
|
2507 |
-
|
2508 |
-
|
2509 |
-
|
2510 |
-
|
2511 |
-
|
2512 |
-
|
2513 |
-
|
2514 |
-
|
2515 |
-
|
2516 |
-
|
2517 |
-
|
2518 |
-
|
2519 |
-
|
2520 |
-
|
2521 |
-
|
2522 |
-
|
2523 |
-
|
2524 |
-
|
2525 |
-
|
2526 |
-
|
2527 |
-
|
2528 |
-
|
2529 |
-
|
2530 |
-
|
2531 |
-
|
2532 |
-
|
2533 |
-
|
2534 |
-
|
2535 |
-
|
2536 |
-
|
2537 |
-
|
2538 |
-
|
2539 |
-
|
2540 |
-
|
2541 |
-
|
2542 |
-
|
2543 |
-
|
2544 |
-
|
2545 |
-
|
2546 |
-
|
2547 |
-
|
2548 |
-
|
2549 |
-
|
2550 |
-
|
2551 |
-
|
2552 |
-
|
2553 |
-
|
2554 |
-
|
2555 |
-
|
2556 |
-
|
2557 |
-
|
2558 |
-
|
2559 |
-
|
2560 |
-
|
2561 |
-
|
2562 |
-
|
2563 |
-
|
2564 |
-
|
2565 |
-
|
2566 |
-
|
2567 |
-
|
2568 |
-
|
2569 |
-
|
2570 |
-
|
2571 |
-
|
2572 |
-
|
2573 |
-
|
2574 |
-
|
2575 |
-
|
2576 |
-
|
2577 |
-
|
2578 |
-
|
2579 |
-
|
2580 |
-
|
2581 |
-
|
2582 |
-
|
2583 |
-
|
2584 |
-
|
2585 |
-
|
2586 |
-
|
2587 |
-
|
2588 |
-
|
2589 |
-
|
2590 |
-
|
2591 |
-
|
2592 |
-
|
2593 |
-
|
2594 |
-
|
2595 |
-
|
2596 |
-
|
2597 |
-
function
|
2598 |
-
|
2599 |
-
|
2600 |
-
|
2601 |
-
|
2602 |
-
|
2603 |
-
|
2604 |
-
|
2605 |
-
|
2606 |
-
|
2607 |
-
|
2608 |
-
|
2609 |
-
|
2610 |
-
|
2611 |
-
|
2612 |
-
|
2613 |
-
|
2614 |
-
|
2615 |
-
|
2616 |
-
|
2617 |
-
|
2618 |
-
|
2619 |
-
|
2620 |
-
|
2621 |
-
|
2622 |
-
|
2623 |
-
|
2624 |
-
|
2625 |
-
|
2626 |
-
|
2627 |
-
|
2628 |
-
|
2629 |
-
|
2630 |
-
|
2631 |
-
|
2632 |
-
|
2633 |
-
|
2634 |
-
|
2635 |
-
|
2636 |
-
|
2637 |
-
|
2638 |
-
|
2639 |
-
|
2640 |
-
|
2641 |
-
|
2642 |
-
|
2643 |
-
|
2644 |
-
|
2645 |
-
|
2646 |
-
|
2647 |
-
|
2648 |
-
|
2649 |
-
|
2650 |
-
|
2651 |
-
|
2652 |
-
|
2653 |
-
|
2654 |
-
|
2655 |
-
|
2656 |
-
|
2657 |
-
|
2658 |
-
|
2659 |
-
|
2660 |
-
|
2661 |
-
|
2662 |
-
|
2663 |
-
|
2664 |
-
|
2665 |
-
}
|
2666 |
-
|
2667 |
-
function
|
2668 |
-
|
2669 |
-
|
2670 |
-
|
2671 |
-
|
2672 |
-
|
2673 |
-
|
2674 |
-
|
2675 |
-
|
2676 |
-
|
2677 |
-
|
2678 |
-
|
2679 |
-
|
2680 |
-
|
2681 |
-
|
2682 |
-
|
2683 |
-
|
2684 |
-
|
2685 |
-
|
2686 |
-
|
2687 |
-
|
2688 |
-
|
2689 |
-
|
2690 |
-
|
2691 |
-
|
2692 |
-
|
2693 |
-
|
2694 |
-
|
2695 |
-
|
2696 |
-
|
2697 |
-
|
2698 |
-
|
2699 |
-
|
2700 |
-
|
2701 |
-
|
2702 |
-
|
2703 |
-
|
2704 |
-
|
2705 |
-
|
2706 |
-
|
2707 |
-
|
2708 |
-
|
2709 |
-
|
2710 |
-
|
2711 |
-
|
2712 |
-
|
2713 |
-
|
2714 |
-
|
2715 |
-
|
2716 |
-
|
2717 |
-
|
2718 |
-
|
2719 |
-
|
2720 |
-
|
2721 |
-
|
2722 |
-
if (
|
2723 |
-
$
|
2724 |
-
|
2725 |
-
|
2726 |
-
|
2727 |
-
$
|
2728 |
-
if (
|
2729 |
-
|
2730 |
-
|
2731 |
-
|
2732 |
-
|
2733 |
-
|
2734 |
-
|
2735 |
-
|
2736 |
-
|
2737 |
-
|
2738 |
-
|
2739 |
-
|
2740 |
-
|
2741 |
-
|
2742 |
-
|
2743 |
-
|
2744 |
-
|
2745 |
-
|
2746 |
-
|
2747 |
-
|
2748 |
-
|
2749 |
-
|
2750 |
-
|
2751 |
-
|
2752 |
-
|
2753 |
-
|
2754 |
-
|
2755 |
-
|
2756 |
-
|
2757 |
-
|
2758 |
-
|
2759 |
-
|
2760 |
-
|
2761 |
-
|
2762 |
-
|
2763 |
-
|
2764 |
-
|
2765 |
-
|
2766 |
-
|
2767 |
-
|
2768 |
-
|
2769 |
-
|
2770 |
-
|
2771 |
-
|
2772 |
-
|
2773 |
-
|
2774 |
-
|
2775 |
-
|
2776 |
-
|
2777 |
-
|
2778 |
-
|
2779 |
-
|
2780 |
-
|
2781 |
-
|
2782 |
-
|
2783 |
-
|
2784 |
-
|
2785 |
-
|
2786 |
-
$
|
2787 |
-
|
2788 |
-
|
2789 |
-
|
2790 |
-
|
2791 |
-
|
2792 |
-
|
2793 |
-
|
2794 |
-
|
2795 |
-
|
2796 |
-
|
2797 |
-
|
2798 |
-
|
2799 |
-
|
2800 |
-
|
2801 |
-
|
2802 |
-
|
2803 |
-
|
2804 |
-
|
2805 |
-
|
2806 |
-
|
2807 |
-
|
2808 |
-
|
2809 |
-
|
2810 |
-
|
2811 |
-
|
2812 |
-
|
2813 |
-
|
2814 |
-
|
2815 |
-
|
2816 |
-
|
2817 |
-
);
|
2818 |
-
|
2819 |
-
$
|
2820 |
-
$
|
2821 |
-
|
2822 |
-
|
2823 |
-
|
2824 |
-
|
2825 |
-
|
2826 |
-
|
2827 |
-
|
2828 |
-
|
2829 |
-
|
2830 |
-
|
2831 |
-
|
2832 |
-
|
2833 |
-
|
2834 |
-
|
2835 |
-
|
2836 |
-
|
2837 |
-
|
2838 |
-
|
2839 |
-
|
2840 |
-
$
|
2841 |
-
|
2842 |
-
|
2843 |
-
|
2844 |
-
|
2845 |
-
|
2846 |
-
}
|
2847 |
-
|
2848 |
-
|
2849 |
-
|
2850 |
-
|
2851 |
-
|
2852 |
-
|
2853 |
-
|
2854 |
-
|
2855 |
-
|
2856 |
-
|
2857 |
-
|
2858 |
-
|
2859 |
-
|
2860 |
-
|
2861 |
-
|
2862 |
-
|
2863 |
-
|
2864 |
-
|
2865 |
-
|
2866 |
-
|
2867 |
-
|
2868 |
-
|
2869 |
-
|
2870 |
-
|
2871 |
-
|
2872 |
-
|
2873 |
-
|
2874 |
-
|
2875 |
-
|
2876 |
-
|
2877 |
-
|
2878 |
-
$
|
2879 |
-
|
2880 |
-
|
2881 |
-
|
2882 |
-
|
2883 |
-
|
2884 |
-
|
2885 |
-
|
2886 |
-
|
2887 |
-
|
2888 |
-
|
2889 |
-
|
2890 |
-
|
2891 |
-
|
2892 |
-
|
2893 |
-
|
2894 |
-
|
2895 |
-
|
2896 |
-
|
2897 |
-
|
2898 |
-
|
2899 |
-
|
2900 |
-
|
2901 |
-
|
2902 |
-
'
|
2903 |
-
'
|
2904 |
-
'
|
2905 |
-
'
|
2906 |
-
'
|
2907 |
-
|
2908 |
-
|
2909 |
-
|
2910 |
-
|
2911 |
-
|
2912 |
-
|
2913 |
-
|
2914 |
-
|
2915 |
-
|
2916 |
-
|
2917 |
-
|
2918 |
-
|
2919 |
-
|
2920 |
-
|
2921 |
-
|
2922 |
-
|
2923 |
-
|
2924 |
-
|
2925 |
-
|
2926 |
-
|
2927 |
-
|
2928 |
-
|
2929 |
-
|
2930 |
-
|
2931 |
-
|
2932 |
-
|
2933 |
-
|
2934 |
-
|
2935 |
-
$
|
2936 |
-
|
2937 |
-
$
|
2938 |
-
$
|
2939 |
-
|
2940 |
-
$
|
2941 |
-
$usage_stats['
|
2942 |
-
|
2943 |
-
|
2944 |
-
|
2945 |
-
|
2946 |
-
|
2947 |
-
|
2948 |
-
|
2949 |
-
$
|
2950 |
-
|
2951 |
-
|
2952 |
-
|
2953 |
-
|
2954 |
-
$usage_stats
|
2955 |
-
$usage_stats['
|
2956 |
-
$usage_stats['
|
2957 |
-
|
2958 |
-
$
|
2959 |
-
|
2960 |
-
|
2961 |
-
|
2962 |
-
|
2963 |
-
|
2964 |
-
|
2965 |
-
|
2966 |
-
|
2967 |
-
|
2968 |
-
|
2969 |
-
$
|
2970 |
-
|
2971 |
-
$usage_stats['
|
2972 |
-
$usage_stats['
|
2973 |
-
|
2974 |
-
$usage_stats['
|
2975 |
-
|
2976 |
-
|
2977 |
-
|
2978 |
-
|
2979 |
-
|
2980 |
-
|
2981 |
-
$
|
2982 |
-
|
2983 |
-
|
2984 |
-
|
2985 |
-
|
2986 |
-
|
2987 |
-
|
2988 |
-
$
|
2989 |
-
|
2990 |
-
|
2991 |
-
|
2992 |
-
|
2993 |
-
|
2994 |
-
|
2995 |
-
|
2996 |
-
|
2997 |
-
$
|
2998 |
-
$
|
2999 |
-
|
3000 |
-
|
3001 |
-
|
3002 |
-
|
3003 |
-
|
3004 |
-
|
3005 |
-
|
3006 |
-
|
3007 |
-
|
3008 |
-
|
3009 |
-
return $
|
3010 |
-
}
|
3011 |
-
|
3012 |
-
function
|
3013 |
-
|
3014 |
-
|
3015 |
-
|
3016 |
-
|
3017 |
-
|
3018 |
-
|
3019 |
-
|
3020 |
-
|
3021 |
-
|
3022 |
-
|
3023 |
-
|
3024 |
-
|
3025 |
-
|
3026 |
-
|
3027 |
-
|
3028 |
-
|
3029 |
-
|
3030 |
-
|
3031 |
-
|
3032 |
-
|
3033 |
-
|
3034 |
-
|
3035 |
-
|
3036 |
-
|
3037 |
-
|
3038 |
-
|
3039 |
-
|
3040 |
-
|
3041 |
-
|
3042 |
-
|
3043 |
-
|
3044 |
-
|
3045 |
-
|
3046 |
-
|
3047 |
-
|
3048 |
-
|
3049 |
-
|
3050 |
-
|
3051 |
-
|
3052 |
-
|
3053 |
-
|
3054 |
-
|
3055 |
-
|
3056 |
-
|
3057 |
-
|
3058 |
-
|
3059 |
-
|
3060 |
-
|
3061 |
-
|
3062 |
-
|
3063 |
-
|
3064 |
-
|
3065 |
-
|
3066 |
-
|
3067 |
-
|
3068 |
-
|
3069 |
-
|
3070 |
-
|
3071 |
-
|
3072 |
-
|
3073 |
-
|
3074 |
-
|
3075 |
-
|
3076 |
-
|
3077 |
-
|
3078 |
-
|
3079 |
-
|
3080 |
-
|
3081 |
-
|
3082 |
-
|
3083 |
-
|
3084 |
-
|
3085 |
-
|
3086 |
-
|
3087 |
-
|
3088 |
-
|
3089 |
-
|
3090 |
-
|
3091 |
-
|
3092 |
-
|
3093 |
-
|
3094 |
-
|
3095 |
-
|
3096 |
-
|
3097 |
-
|
3098 |
-
|
3099 |
-
|
3100 |
-
|
3101 |
-
|
3102 |
-
|
3103 |
-
|
3104 |
-
$
|
3105 |
-
|
3106 |
-
|
3107 |
-
|
3108 |
-
|
3109 |
-
|
3110 |
-
|
3111 |
-
|
3112 |
-
|
3113 |
-
|
3114 |
-
|
3115 |
-
|
3116 |
-
|
3117 |
-
|
3118 |
-
|
3119 |
-
|
3120 |
-
|
3121 |
-
|
3122 |
-
|
3123 |
-
|
3124 |
-
|
3125 |
-
|
3126 |
-
|
3127 |
-
|
3128 |
-
|
3129 |
-
|
3130 |
-
|
3131 |
-
|
3132 |
-
|
3133 |
-
}
|
3134 |
-
|
3135 |
-
|
3136 |
-
|
3137 |
-
|
3138 |
-
|
3139 |
-
|
3140 |
-
|
3141 |
-
|
3142 |
-
|
3143 |
-
|
3144 |
-
|
3145 |
-
|
3146 |
-
|
3147 |
-
|
3148 |
-
|
3149 |
-
|
3150 |
-
|
3151 |
-
|
3152 |
-
|
3153 |
-
|
3154 |
-
|
3155 |
-
|
3156 |
-
|
3157 |
-
|
3158 |
-
|
3159 |
-
|
3160 |
-
|
3161 |
-
|
3162 |
-
|
3163 |
-
|
3164 |
-
|
3165 |
-
|
3166 |
-
|
3167 |
-
|
3168 |
-
|
3169 |
-
|
3170 |
-
|
3171 |
-
|
3172 |
-
|
3173 |
-
|
3174 |
-
|
3175 |
-
|
3176 |
-
|
3177 |
-
$
|
3178 |
-
|
3179 |
-
|
3180 |
-
|
3181 |
-
|
3182 |
-
|
3183 |
-
|
3184 |
-
|
3185 |
-
|
3186 |
-
|
3187 |
-
|
3188 |
-
|
3189 |
-
|
3190 |
-
|
3191 |
-
}
|
3192 |
-
|
3193 |
-
|
3194 |
-
|
3195 |
-
|
3196 |
-
|
3197 |
-
|
3198 |
-
|
3199 |
-
|
3200 |
-
|
3201 |
-
|
3202 |
-
|
3203 |
-
|
3204 |
-
|
3205 |
-
|
3206 |
-
|
3207 |
-
|
3208 |
-
|
3209 |
-
|
3210 |
-
|
3211 |
-
|
3212 |
-
|
3213 |
-
|
3214 |
-
|
3215 |
-
|
3216 |
-
|
3217 |
-
|
3218 |
-
|
3219 |
-
|
3220 |
-
|
3221 |
-
|
3222 |
-
|
3223 |
-
|
3224 |
-
|
3225 |
-
|
3226 |
-
|
3227 |
-
|
3228 |
-
|
3229 |
-
|
3230 |
-
|
3231 |
-
|
3232 |
-
|
3233 |
-
|
3234 |
-
|
3235 |
-
|
3236 |
-
|
3237 |
-
|
3238 |
-
|
3239 |
-
|
3240 |
-
|
3241 |
-
|
3242 |
-
|
3243 |
-
|
3244 |
-
|
3245 |
-
|
3246 |
-
|
3247 |
-
|
3248 |
-
|
3249 |
-
|
3250 |
-
|
3251 |
-
|
3252 |
-
|
3253 |
-
.
|
3254 |
-
.
|
3255 |
-
.
|
3256 |
-
.
|
3257 |
-
.
|
3258 |
-
. '
|
3259 |
-
.
|
3260 |
-
.
|
3261 |
-
|
3262 |
-
|
3263 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
Plugin Name: Ecwid Shopping Cart
|
4 |
+
Plugin URI: http://www.ecwid.com?source=wporg
|
5 |
+
Description: Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.
|
6 |
+
Text Domain: ecwid-shopping-cart
|
7 |
+
Author: Ecwid Team
|
8 |
+
Version: 4.0.5
|
9 |
+
Author URI: http://www.ecwid.com?source=wporg
|
10 |
+
*/
|
11 |
+
|
12 |
+
register_activation_hook( __FILE__, 'ecwid_store_activate' );
|
13 |
+
register_deactivation_hook( __FILE__, 'ecwid_store_deactivate' );
|
14 |
+
register_uninstall_hook( __FILE__, 'ecwid_uninstall' );
|
15 |
+
|
16 |
+
define("APP_ECWID_COM", 'app.ecwid.com');
|
17 |
+
define("ECWID_DEMO_STORE_ID", 1003);
|
18 |
+
|
19 |
+
|
20 |
+
if ( ! defined( 'ECWID_PLUGIN_DIR' ) ) {
|
21 |
+
define( 'ECWID_PLUGIN_DIR', plugin_dir_path( realpath(__FILE__) ) );
|
22 |
+
}
|
23 |
+
|
24 |
+
if ( ! defined( 'ECWID_PLUGIN_URL' ) ) {
|
25 |
+
define( 'ECWID_PLUGIN_URL', plugin_dir_url( realpath(__FILE__) ) );
|
26 |
+
}
|
27 |
+
|
28 |
+
// Older versions of Google XML Sitemaps plugin generate it in admin, newer in site area, so the hook should be assigned in both of them
|
29 |
+
add_action('sm_buildmap', 'ecwid_build_google_xml_sitemap');
|
30 |
+
|
31 |
+
// Needs to be in both front-end and back-end to allow admin zone recognize the shortcode
|
32 |
+
add_shortcode('ecwid_productbrowser', 'ecwid_productbrowser_shortcode');
|
33 |
+
add_shortcode('ecwid', 'ecwid_shortcode');
|
34 |
+
|
35 |
+
add_action( 'plugins_loaded', 'ecwid_init_integrations' );
|
36 |
+
add_filter('plugins_loaded', 'ecwid_load_textdomain');
|
37 |
+
|
38 |
+
add_action( 'wp_ajax_ecwid_ajax_seo_title', 'ecwid_ajax_seo_title' );
|
39 |
+
add_action( 'wp_ajax_nopriv_ecwid_ajax_seo_title', 'ecwid_ajax_seo_title' );
|
40 |
+
add_filter('wp_get_nav_menu_items', 'ecwid_nav_menu_items');
|
41 |
+
|
42 |
+
if ( is_admin() ){
|
43 |
+
add_action('admin_init', 'ecwid_settings_api_init');
|
44 |
+
add_action('admin_init', 'ecwid_check_version');
|
45 |
+
add_action('admin_init', 'ecwid_process_oauth_params');
|
46 |
+
add_filter( 'admin_init', 'ecwid_add_meta_boxes' );
|
47 |
+
add_action('admin_notices', 'ecwid_show_admin_messages');
|
48 |
+
add_action('admin_menu', 'ecwid_build_menu');
|
49 |
+
add_action('wp_dashboard_setup', 'ecwid_add_dashboard_widgets' );
|
50 |
+
add_action('admin_enqueue_scripts', 'ecwid_common_admin_scripts');
|
51 |
+
add_action('admin_enqueue_scripts', 'ecwid_register_admin_styles');
|
52 |
+
add_action('admin_enqueue_scripts', 'ecwid_register_settings_styles');
|
53 |
+
add_action('wp_ajax_ecwid_hide_vote_message', 'ecwid_hide_vote_message');
|
54 |
+
add_action('wp_ajax_ecwid_hide_message', 'ecwid_ajax_hide_message');
|
55 |
+
add_action('wp_ajax_save-widget', 'ecwid_ajax_save_widget');
|
56 |
+
add_action('wp_ajax_ecwid_reset_categories_cache', 'ecwid_reset_categories_cache');
|
57 |
+
add_filter('plugin_action_links_ecwid-shopping-cart/ecwid-shopping-cart.php', 'ecwid_plugin_actions');
|
58 |
+
add_action('admin_head', 'ecwid_ie8_fonts_inclusion');
|
59 |
+
add_action('admin_head', 'ecwid_send_stats');
|
60 |
+
add_action('save_post', 'ecwid_save_post');
|
61 |
+
add_action('init', 'ecwid_apply_theme');
|
62 |
+
add_action('get_footer', 'ecwid_admin_get_footer');
|
63 |
+
add_action('admin_post_ecwid_connect', 'ecwid_admin_post_connect');
|
64 |
+
add_filter('tiny_mce_before_init', 'ecwid_tinymce_init' );
|
65 |
+
} else {
|
66 |
+
add_shortcode('ecwid_script', 'ecwid_script_shortcode');
|
67 |
+
add_shortcode('ecwid_minicart', 'ecwid_minicart_shortcode');
|
68 |
+
add_shortcode('ecwid_searchbox', 'ecwid_searchbox_shortcode');
|
69 |
+
add_shortcode('ecwid_categories', 'ecwid_categories_shortcode');
|
70 |
+
add_shortcode('ecwid_product', 'ecwid_product_shortcode');
|
71 |
+
add_action('init', 'ecwid_backward_compatibility');
|
72 |
+
add_action('send_headers', 'ecwid_503_on_store_closed');
|
73 |
+
add_action('template_redirect', 'ecwid_404_on_broken_escaped_fragment');
|
74 |
+
add_action('template_redirect', 'ecwid_apply_theme');
|
75 |
+
add_action('wp_enqueue_scripts', 'ecwid_enqueue_frontend');
|
76 |
+
add_action('wp', 'ecwid_seo_ultimate_compatibility', 0);
|
77 |
+
add_action('wp', 'ecwid_remove_default_canonical');
|
78 |
+
add_filter('wp', 'ecwid_seo_compatibility_init', 0);
|
79 |
+
add_filter('wp_title', 'ecwid_seo_title', 10000);
|
80 |
+
add_filter('document_title_parts', 'ecwid_seo_title_parts');
|
81 |
+
add_action('plugins_loaded', 'ecwid_minifier_compatibility', 0);
|
82 |
+
add_action('wp_head', 'ecwid_meta_description', 0);
|
83 |
+
add_action('wp_head', 'ecwid_ajax_crawling_fragment');
|
84 |
+
add_action('wp_head', 'ecwid_meta');
|
85 |
+
add_action('wp_head', 'ecwid_canonical');
|
86 |
+
add_action('wp_head', 'ecwid_seo_compatibility_restore', 1000);
|
87 |
+
add_action('wp_head', 'ecwid_send_stats');
|
88 |
+
add_action('wp_head', 'ecwid_product_browser_url_in_head');
|
89 |
+
add_filter( 'widget_meta_poweredby', 'ecwid_add_credits');
|
90 |
+
add_filter('the_content', 'ecwid_content_started', 0);
|
91 |
+
add_filter('body_class', 'ecwid_body_class');
|
92 |
+
$ecwid_seo_title = '';
|
93 |
+
}
|
94 |
+
add_action('admin_bar_menu', 'add_ecwid_admin_bar_node', 1000);
|
95 |
+
if (get_option('ecwid_last_oauth_fail_time') > 0) {
|
96 |
+
add_action('plugins_loaded', 'ecwid_test_oauth');
|
97 |
+
}
|
98 |
+
|
99 |
+
$ecwid_script_rendered = false; // controls single script.js on page
|
100 |
+
|
101 |
+
require_once ECWID_PLUGIN_DIR . '/includes/themes.php';
|
102 |
+
require_once ECWID_PLUGIN_DIR . '/includes/class-ecwid-message-manager.php';
|
103 |
+
require_once ECWID_PLUGIN_DIR . '/includes/class-ecwid-store-editor.php';
|
104 |
+
require_once ECWID_PLUGIN_DIR . '/includes/class-ecwid-oauth.php';
|
105 |
+
require_once ECWID_PLUGIN_DIR . '/includes/class-ecwid-kissmetrics.php';
|
106 |
+
|
107 |
+
require_once ECWID_PLUGIN_DIR . '/lib/ecwid_platform.php';
|
108 |
+
|
109 |
+
|
110 |
+
function ecwid_init_integrations()
|
111 |
+
{
|
112 |
+
if ( !function_exists( 'get_plugins' ) ) { require_once ( ABSPATH . 'wp-admin/includes/plugin.php' ); }
|
113 |
+
|
114 |
+
$integrations = array(
|
115 |
+
'aiosp' => 'all-in-one-seo-pack/all_in_one_seo_pack.php',
|
116 |
+
'wpseo' => 'wordpress-seo/wp-seo.php'
|
117 |
+
);
|
118 |
+
|
119 |
+
foreach ($integrations as $key => $plugin) {
|
120 |
+
if ( is_plugin_active($plugin) ) {
|
121 |
+
require_once ECWID_PLUGIN_DIR . '/includes/class-ecwid-integration-' . $key . '.php';
|
122 |
+
}
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
$version = get_bloginfo('version');
|
127 |
+
|
128 |
+
function ecwid_add_breadcrumbs_navxt($trail)
|
129 |
+
{
|
130 |
+
$breadcrumb = new bcn_breadcrumb('Ecwid', '', '', 'http://ecwid.com');
|
131 |
+
$trail->add($breadcrumb);
|
132 |
+
}
|
133 |
+
|
134 |
+
/*
|
135 |
+
add_filter('wpseo_sitemap_index', 'ecwid_wpseo_do_sitemap_index');
|
136 |
+
|
137 |
+
function ecwid_wpseo_do_sitemap_index($params)
|
138 |
+
{
|
139 |
+
$now = date('Y-m-dTH:i:sP', time());
|
140 |
+
$sitemap_url = wpseo_xml_sitemaps_base_url('ecwid-sitemap.xml');
|
141 |
+
return <<<XML
|
142 |
+
<sitemap>
|
143 |
+
<loc>$sitemap_url</loc>
|
144 |
+
<lastmod>$now</lastmod>
|
145 |
+
</sitemap>
|
146 |
+
XML;
|
147 |
+
|
148 |
+
// should return index string
|
149 |
+
}
|
150 |
+
|
151 |
+
add_action('wpseo_do_sitemap_ecwid', 'ecwid_wpseo_do_sitemap');
|
152 |
+
|
153 |
+
add_action('wpseo_do_sitemap_ecwid_content', 'ecwid_wpseo_do_sitemap');
|
154 |
+
|
155 |
+
function ecwid_wpseo_build_sitemap_callback($loc, $priority, $freq)
|
156 |
+
{
|
157 |
+
global $ecwid_wpseo_sitemap;
|
158 |
+
|
159 |
+
$ecwid_wpseo_sitemap .= <<<XML
|
160 |
+
<url>
|
161 |
+
<loc>$loc</loc>
|
162 |
+
<changefreq>$freq</changefreq>
|
163 |
+
<priority>$priority</priority>
|
164 |
+
</url>
|
165 |
+
|
166 |
+
XML;
|
167 |
+
}
|
168 |
+
|
169 |
+
|
170 |
+
function ecwid_wpseo_do_sitemap($params)
|
171 |
+
{
|
172 |
+
global $ecwid_wpseo_sitemap;
|
173 |
+
|
174 |
+
$ecwid_wpseo_sitemap = <<<XML
|
175 |
+
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
176 |
+
XML;
|
177 |
+
|
178 |
+
ecwid_build_sitemap('ecwid_wpseo_build_sitemap_callback');
|
179 |
+
|
180 |
+
$ecwid_wpseo_sitemap .= '</urlset>';
|
181 |
+
$GLOBALS['wpseo_sitemaps']->set_sitemap($ecwid_wpseo_sitemap);
|
182 |
+
}
|
183 |
+
*/
|
184 |
+
function ecwid_add_breadcrumb_links_wpseo($links)
|
185 |
+
{
|
186 |
+
return array_merge((array)$links, array(
|
187 |
+
array(
|
188 |
+
'text' => 'ecwid.com',
|
189 |
+
'url' => 'http://ecwid.com'
|
190 |
+
)
|
191 |
+
));
|
192 |
+
}
|
193 |
+
if (version_compare($version, '3.6') < 0) {
|
194 |
+
/**
|
195 |
+
* A copy of has_shortcode functionality from wordpress 3.6
|
196 |
+
* http://core.trac.wordpress.org/browser/tags/3.6/wp-includes/shortcodes.php
|
197 |
+
*/
|
198 |
+
|
199 |
+
if (!function_exists('shortcode_exists')) {
|
200 |
+
function shortcode_exists( $tag ) {
|
201 |
+
global $shortcode_tags;
|
202 |
+
return array_key_exists( $tag, $shortcode_tags );
|
203 |
+
}
|
204 |
+
}
|
205 |
+
|
206 |
+
if (!function_exists('has_shortcode')) {
|
207 |
+
function has_shortcode( $content, $tag ) {
|
208 |
+
if ( false === strpos( $content, '[' ) ) {
|
209 |
+
return false;
|
210 |
+
}
|
211 |
+
|
212 |
+
if ( shortcode_exists( $tag ) ) {
|
213 |
+
preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER );
|
214 |
+
if ( empty( $matches ) )
|
215 |
+
return false;
|
216 |
+
|
217 |
+
foreach ( $matches as $shortcode ) {
|
218 |
+
if ( $tag === $shortcode[2] ) {
|
219 |
+
return true;
|
220 |
+
} elseif ( ! empty( $shortcode[5] ) && has_shortcode( $shortcode[5], $tag ) ) {
|
221 |
+
return true;
|
222 |
+
}
|
223 |
+
}
|
224 |
+
}
|
225 |
+
return false;
|
226 |
+
}
|
227 |
+
}
|
228 |
+
}
|
229 |
+
|
230 |
+
if (is_admin()) {
|
231 |
+
$main_button_class = "";
|
232 |
+
if (version_compare($version, '3.8-beta') > 0) {
|
233 |
+
$main_button_class = "button-primary";
|
234 |
+
} else {
|
235 |
+
$main_button_class = "pure-button pure-button-primary";
|
236 |
+
}
|
237 |
+
|
238 |
+
define('ECWID_MAIN_BUTTON_CLASS', $main_button_class);
|
239 |
+
}
|
240 |
+
|
241 |
+
function ecwid_body_class($classes)
|
242 |
+
{
|
243 |
+
if (ecwid_page_has_productbrowser()) {
|
244 |
+
$classes[] = 'ecwid-shopping-cart';
|
245 |
+
}
|
246 |
+
|
247 |
+
return $classes;
|
248 |
+
}
|
249 |
+
|
250 |
+
function ecwid_ie8_fonts_inclusion()
|
251 |
+
{
|
252 |
+
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 8') === false) return;
|
253 |
+
|
254 |
+
$url = ECWID_PLUGIN_URL . '/fonts/ecwid-logo.eot';
|
255 |
+
echo <<<HTML
|
256 |
+
<style>
|
257 |
+
@font-face {
|
258 |
+
font-family: 'ecwid-logo';
|
259 |
+
src:url($url);
|
260 |
+
}
|
261 |
+
</style>
|
262 |
+
HTML;
|
263 |
+
|
264 |
+
}
|
265 |
+
|
266 |
+
add_action('wp_ajax_ecwid_get_product_info', 'ecwid_ajax_get_product_info' );
|
267 |
+
add_action('wp_ajax_nopriv_ecwid_get_product_info', 'ecwid_ajax_get_product_info' );
|
268 |
+
|
269 |
+
|
270 |
+
function ecwid_enqueue_frontend() {
|
271 |
+
|
272 |
+
wp_enqueue_script('jquery-ui-widget');
|
273 |
+
wp_register_script('ecwid-products-list-js', plugins_url('ecwid-shopping-cart/js/products-list.js'), array('jquery-ui-widget'), get_option('ecwid_plugin_version'));
|
274 |
+
wp_register_style('ecwid-products-list-css', plugins_url('ecwid-shopping-cart/css/products-list.css'), array(), get_option('ecwid_plugin_version'));
|
275 |
+
wp_enqueue_style('ecwid-css', plugins_url('ecwid-shopping-cart/css/frontend.css'),array(), get_option('ecwid_plugin_version'));
|
276 |
+
wp_enqueue_style('ecwid-fonts-css', plugins_url('ecwid-shopping-cart/css/fonts.css'), array(), get_option('ecwid_plugin_version'));
|
277 |
+
|
278 |
+
wp_enqueue_script('ecwid-frontend-js', plugins_url('ecwid-shopping-cart/js/frontend.js'), array('jquery'), get_option('ecwid_plugin_version'));
|
279 |
+
|
280 |
+
/*
|
281 |
+
global $ecwid_seo_title_mode;
|
282 |
+
|
283 |
+
$ecwid_seo_title_mode = 'none';
|
284 |
+
$original_title = wp_get_document_title();
|
285 |
+
$ecwid_seo_title_mode = 'placeholder';
|
286 |
+
$title_template = wp_get_document_title();
|
287 |
+
$ecwid_seo_title_mode = 'normal';
|
288 |
+
|
289 |
+
wp_localize_script('ecwid-frontend-js', 'ecwid_ajax_object', array(
|
290 |
+
'ajax_url' => admin_url('admin-ajax.php'),
|
291 |
+
'original_title' => $original_title,
|
292 |
+
'title_template' => $title_template
|
293 |
+
)
|
294 |
+
);
|
295 |
+
*/
|
296 |
+
|
297 |
+
if ((bool)get_option('ecwid_use_chameleon')) {
|
298 |
+
wp_enqueue_script('ecwid-chameleon-js', 'https://dj925myfyz5v.cloudfront.net/widgets/chameleon/v1/ecwid-chameleon.js', array(), get_option('ecwid_plugin_version'), true);
|
299 |
+
|
300 |
+
$primary = get_option('ecwid_chameleon_primary');
|
301 |
+
$background = get_option('ecwid_chameleon_background');
|
302 |
+
$links = get_option('ecwid_chameleon_links');
|
303 |
+
|
304 |
+
$localize = array();
|
305 |
+
|
306 |
+
if (get_option('ecwid_chameleon_primary')) {
|
307 |
+
$localize['primary_color'] = get_option('ecwid_chameleon_primary');
|
308 |
+
}
|
309 |
+
if (get_option('ecwid_chameleon_background')) {
|
310 |
+
$localize['primary_background'] = get_option('ecwid_chameleon_background');
|
311 |
+
}
|
312 |
+
if (get_option('ecwid_chameleon_links')) {
|
313 |
+
$localize['primary_link'] = get_option('ecwid_chameleon_links');
|
314 |
+
}
|
315 |
+
|
316 |
+
if (!empty($localize)) {
|
317 |
+
wp_localize_script('ecwid-chameleon-js', 'ecwidChameleon', $localize);
|
318 |
+
}
|
319 |
+
|
320 |
+
}
|
321 |
+
|
322 |
+
if (is_active_widget(false, false, 'ecwidrecentlyviewed')) {
|
323 |
+
wp_enqueue_script('ecwid-recently-viewed', plugins_url('ecwid-shopping-cart/js/recently-viewed-common.js'), array('jquery', 'utils'), get_option('ecwid_plugin_version'), true);
|
324 |
+
|
325 |
+
wp_localize_script(
|
326 |
+
'ecwid-products-list-js',
|
327 |
+
'wp_ecwid_products_list_vars',
|
328 |
+
array(
|
329 |
+
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
330 |
+
'is_api_available' => ecwid_is_paid_account()
|
331 |
+
)
|
332 |
+
);
|
333 |
+
}
|
334 |
+
}
|
335 |
+
|
336 |
+
function ecwid_load_textdomain() {
|
337 |
+
load_plugin_textdomain( 'ecwid-shopping-cart', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
|
338 |
+
|
339 |
+
}
|
340 |
+
|
341 |
+
function ecwid_404_on_broken_escaped_fragment() {
|
342 |
+
if (!ecwid_is_api_enabled()) {
|
343 |
+
return;
|
344 |
+
}
|
345 |
+
|
346 |
+
if (!isset($_GET['_escaped_fragment_'])) {
|
347 |
+
return;
|
348 |
+
}
|
349 |
+
|
350 |
+
$params = ecwid_parse_escaped_fragment($_GET['_escaped_fragment_']);
|
351 |
+
$api = ecwid_new_product_api();
|
352 |
+
|
353 |
+
if (isset($params['mode']) && !empty($params['mode']) && isset($params['id'])) {
|
354 |
+
$result = array();
|
355 |
+
if ($params['mode'] == 'product') {
|
356 |
+
$result = $api->get_product($params['id']);
|
357 |
+
} elseif ($params['mode'] == 'category') {
|
358 |
+
$result = $api->get_category($params['id']);
|
359 |
+
}
|
360 |
+
if (empty($result)) {
|
361 |
+
global $wp_query;
|
362 |
+
|
363 |
+
$wp_query->set_404();
|
364 |
+
}
|
365 |
+
}
|
366 |
+
}
|
367 |
+
|
368 |
+
function ecwid_503_on_store_closed() {
|
369 |
+
if (!ecwid_is_api_enabled()) {
|
370 |
+
return;
|
371 |
+
}
|
372 |
+
|
373 |
+
if (!isset($_GET['_escaped_fragment_'])) {
|
374 |
+
return;
|
375 |
+
}
|
376 |
+
|
377 |
+
$api = ecwid_new_product_api();
|
378 |
+
$profile = $api->get_profile();
|
379 |
+
|
380 |
+
if ($profile['closed']) {
|
381 |
+
header('HTTP/1.1 503 Service Temporarily Unavailable');
|
382 |
+
header('Status: 503 Service Temporarily Unavailable');
|
383 |
+
}
|
384 |
+
}
|
385 |
+
|
386 |
+
function ecwid_backward_compatibility() {
|
387 |
+
// Backward compatibility with 1.1.2 and earlier
|
388 |
+
if (isset($_GET['ecwid_product_id']) || isset($_GET['ecwid_category_id'])) {
|
389 |
+
|
390 |
+
if (isset($_GET['ecwid_product_id']))
|
391 |
+
$redirect = ecwid_get_product_url(intval($_GET['ecwid_product_id']));
|
392 |
+
elseif (isset($_GET['ecwid_category_id']))
|
393 |
+
$redirect = ecwid_get_category_url(intval($_GET['ecwid_category_id']));
|
394 |
+
|
395 |
+
wp_redirect($redirect, 301);
|
396 |
+
exit();
|
397 |
+
}
|
398 |
+
}
|
399 |
+
|
400 |
+
function ecwid_build_sitemap($callback)
|
401 |
+
{
|
402 |
+
if (!ecwid_is_paid_account() || !ecwid_is_store_page_available()) return;
|
403 |
+
|
404 |
+
$page_id = ecwid_get_current_store_page_id();
|
405 |
+
|
406 |
+
if (get_post_status($page_id) == 'publish') {
|
407 |
+
require_once ECWID_PLUGIN_DIR . '/includes/class-ecwid-sitemap-builder.php';
|
408 |
+
|
409 |
+
$sitemap = new EcwidSitemapBuilder(ecwid_get_store_page_url(), $callback, ecwid_new_product_api());
|
410 |
+
|
411 |
+
$sitemap->generate();
|
412 |
+
}
|
413 |
+
}
|
414 |
+
|
415 |
+
function ecwid_build_google_xml_sitemap()
|
416 |
+
{
|
417 |
+
return ecwid_build_sitemap('ecwid_google_xml_sitemap_build_sitemap_callback');
|
418 |
+
}
|
419 |
+
|
420 |
+
function ecwid_google_xml_sitemap_build_sitemap_callback($url, $priority, $frequency)
|
421 |
+
{
|
422 |
+
static $generatorObject = null;
|
423 |
+
if (is_null($generatorObject)) {
|
424 |
+
$generatorObject = GoogleSitemapGenerator::GetInstance(); //Please note the "&" sign!
|
425 |
+
}
|
426 |
+
|
427 |
+
if($generatorObject != null) {
|
428 |
+
$page = new GoogleSitemapGeneratorPage($url, $priority, $frequency);
|
429 |
+
$generatorObject->AddElement($page);
|
430 |
+
}
|
431 |
+
}
|
432 |
+
|
433 |
+
function ecwid_minifier_compatibility()
|
434 |
+
{
|
435 |
+
if ( !function_exists( 'get_plugins' ) ) { require_once ( ABSPATH . 'wp-admin/includes/plugin.php' ); }
|
436 |
+
|
437 |
+
$plugins = get_plugins();
|
438 |
+
$wp_minify_plugin = 'wp-minify/wp-minify.php';
|
439 |
+
if (array_key_exists($wp_minify_plugin, $plugins) && is_plugin_active($wp_minify_plugin)) {
|
440 |
+
global $wp_minify;
|
441 |
+
|
442 |
+
if (is_object($wp_minify) && array_key_exists('default_exclude', get_object_vars($wp_minify)) && is_array($wp_minify->default_exclude)) {
|
443 |
+
$wp_minify->default_exclude[] = 'ecwid.com/script.js';
|
444 |
+
}
|
445 |
+
}
|
446 |
+
}
|
447 |
+
|
448 |
+
function ecwid_check_version()
|
449 |
+
{
|
450 |
+
$plugin_data = get_plugin_data(__FILE__);
|
451 |
+
$current_version = $plugin_data['Version'];
|
452 |
+
$stored_version = get_option('ecwid_plugin_version', null);
|
453 |
+
|
454 |
+
|
455 |
+
$migration_since_version = get_option('ecwid_plugin_migration_since_version', null);
|
456 |
+
if (is_null($migration_since_version)) {
|
457 |
+
update_option('ecwid_plugin_migration_since_version', $current_version);
|
458 |
+
}
|
459 |
+
|
460 |
+
$fresh_install = !$stored_version;
|
461 |
+
$upgrade = $stored_version && version_compare($current_version, $stored_version) > 0;
|
462 |
+
|
463 |
+
if ($fresh_install) {
|
464 |
+
|
465 |
+
ecwid_plugin_add_oauth();
|
466 |
+
do_action('ecwid_plugin_installed', $current_version);
|
467 |
+
add_option('ecwid_plugin_version', $current_version);
|
468 |
+
|
469 |
+
update_option('ecwid_use_chameleon', true);
|
470 |
+
|
471 |
+
add_option('ecwid_use_new_horizontal_categories', 'Y');
|
472 |
+
} elseif ($upgrade) {
|
473 |
+
|
474 |
+
ecwid_plugin_add_oauth();
|
475 |
+
do_action('ecwid_plugin_upgraded', array( 'old' => $stored_version, 'new' => $current_version ) );
|
476 |
+
update_option('ecwid_plugin_version', $current_version);
|
477 |
+
|
478 |
+
add_option('ecwid_chameleon_primary', '');
|
479 |
+
add_option('ecwid_chameleon_background', '');
|
480 |
+
add_option('ecwid_chameleon_links', '');
|
481 |
+
|
482 |
+
add_option('ecwid_use_new_horizontal_categories', '');
|
483 |
+
}
|
484 |
+
|
485 |
+
if (1 || $fresh_install || $upgrade) {
|
486 |
+
if (ecwid_migrations_is_original_plugin_version_older_than('4.4')) {
|
487 |
+
add_option('ecwid_fetch_url_use_file_get_contents', '');
|
488 |
+
add_option('ecwid_remote_get_timeout', '5');
|
489 |
+
}
|
490 |
+
}
|
491 |
+
}
|
492 |
+
|
493 |
+
function ecwid_migrations_is_original_plugin_version_older_than($version)
|
494 |
+
{
|
495 |
+
$migration_since_version = get_option('ecwid_plugin_migration_since_version', null);
|
496 |
+
return version_compare($migration_since_version, $version) < 0;
|
497 |
+
}
|
498 |
+
|
499 |
+
function ecwid_log_error($message)
|
500 |
+
{
|
501 |
+
$errors = get_option('ecwid_error_log');
|
502 |
+
if (!$errors) {
|
503 |
+
$errors = array();
|
504 |
+
} else {
|
505 |
+
$errors = json_decode($errors);
|
506 |
+
if (!is_array($errors)) {
|
507 |
+
$errors = array();
|
508 |
+
}
|
509 |
+
}
|
510 |
+
|
511 |
+
while (count($errors) > 10) {
|
512 |
+
array_shift($errors);
|
513 |
+
}
|
514 |
+
|
515 |
+
$errors[] = array(
|
516 |
+
'message' => $message,
|
517 |
+
'date' => strftime('%c')
|
518 |
+
);
|
519 |
+
|
520 |
+
update_option('ecwid_error_log', json_encode($errors));
|
521 |
+
}
|
522 |
+
|
523 |
+
function ecwid_get_last_logged_error()
|
524 |
+
{
|
525 |
+
|
526 |
+
|
527 |
+
return '';
|
528 |
+
}
|
529 |
+
|
530 |
+
function ecwid_plugin_add_oauth()
|
531 |
+
{
|
532 |
+
add_option('ecwid_oauth_client_id', 'RD4o2KQimiGUrFZc');
|
533 |
+
add_option('ecwid_oauth_client_secret', 'jEPVdcA3KbzKVrG8FZDgNnsY3wKHDTF8');
|
534 |
+
|
535 |
+
update_option('ecwid_oauth_client_id', 'RD4o2KQimiGUrFZc');
|
536 |
+
update_option('ecwid_oauth_client_secret', 'jEPVdcA3KbzKVrG8FZDgNnsY3wKHDTF8');
|
537 |
+
}
|
538 |
+
|
539 |
+
function ecwid_override_option($name, $new_value = null)
|
540 |
+
{
|
541 |
+
static $overridden = array();
|
542 |
+
|
543 |
+
if (!array_key_exists($name, $overridden)) {
|
544 |
+
$overridden[$name] = get_option($name);
|
545 |
+
}
|
546 |
+
|
547 |
+
if (!is_null($new_value)) {
|
548 |
+
update_option($name, $new_value);
|
549 |
+
} else {
|
550 |
+
update_option($name, $overridden[$name]);
|
551 |
+
}
|
552 |
+
}
|
553 |
+
function ecwid_tinymce_init($in)
|
554 |
+
{
|
555 |
+
if(!empty($in['extended_valid_elements'])) {
|
556 |
+
$in['extended_valid_elements'] .= ',';
|
557 |
+
} else {
|
558 |
+
$in['extended_valid_elements'] = '';
|
559 |
+
}
|
560 |
+
|
561 |
+
$in['extended_valid_elements'] .= '@[id|class|style|title|itemscope|itemtype|itemprop|customprop|datetime|rel],div,dl,ul,dt,dd,li,span,a|rev|charset|href|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur]';
|
562 |
+
|
563 |
+
return $in;
|
564 |
+
}
|
565 |
+
|
566 |
+
function ecwid_seo_ultimate_compatibility()
|
567 |
+
{
|
568 |
+
global $seo_ultimate;
|
569 |
+
|
570 |
+
if ($seo_ultimate && ecwid_page_has_productbrowser()) {
|
571 |
+
remove_action('template_redirect', array($seo_ultimate->modules['titles'], 'before_header'), 0);
|
572 |
+
remove_action('wp_head', array($seo_ultimate->modules['titles'], 'after_header'), 1000);
|
573 |
+
remove_action('su_head', array($seo_ultimate->modules['meta-descriptions'], 'head_tag_output'));
|
574 |
+
remove_action('su_head', array($seo_ultimate->modules['canonical'], 'link_rel_canonical_tag'));
|
575 |
+
remove_action('su_head', array($seo_ultimate->modules['canonical'], 'http_link_rel_canonical'));
|
576 |
+
}
|
577 |
+
}
|
578 |
+
|
579 |
+
function ecwid_remove_default_canonical()
|
580 |
+
{
|
581 |
+
if (array_key_exists('_escaped_fragment_', $_GET) && ecwid_page_has_productbrowser()) {
|
582 |
+
remove_action( 'wp_head','rel_canonical');
|
583 |
+
}
|
584 |
+
}
|
585 |
+
|
586 |
+
function ecwid_seo_compatibility_init($title)
|
587 |
+
{
|
588 |
+
if (!array_key_exists('_escaped_fragment_', $_GET) || !ecwid_page_has_productbrowser()) {
|
589 |
+
return $title;
|
590 |
+
}
|
591 |
+
|
592 |
+
// Platinum SEO Pack
|
593 |
+
// Canonical
|
594 |
+
ecwid_override_option('psp_canonical', false);
|
595 |
+
// Title
|
596 |
+
ecwid_override_option('aiosp_rewrite_titles', false);
|
597 |
+
|
598 |
+
add_action('amt_basic_metadata_head', 'ecwid_amt_remove_description');
|
599 |
+
return $title;
|
600 |
+
|
601 |
+
}
|
602 |
+
|
603 |
+
function ecwid_amt_remove_description($params)
|
604 |
+
{
|
605 |
+
foreach ($params as $key => $value) {
|
606 |
+
if (preg_match('/meta name="description"/', $value)) {
|
607 |
+
unset ($params[$key]);
|
608 |
+
}
|
609 |
+
}
|
610 |
+
|
611 |
+
return $params;
|
612 |
+
}
|
613 |
+
|
614 |
+
function ecwid_seo_compatibility_restore()
|
615 |
+
{
|
616 |
+
if (!array_key_exists('_escaped_fragment_', $_GET) || !ecwid_page_has_productbrowser()) {
|
617 |
+
return;
|
618 |
+
}
|
619 |
+
|
620 |
+
ecwid_override_option('psp_canonical');
|
621 |
+
ecwid_override_option('aiosp_rewrite_titles');
|
622 |
+
}
|
623 |
+
|
624 |
+
function add_ecwid_admin_bar_node() {
|
625 |
+
global $wp_admin_bar;
|
626 |
+
|
627 |
+
if ( !is_super_admin() || !is_admin_bar_showing() )
|
628 |
+
return;
|
629 |
+
|
630 |
+
|
631 |
+
$theme = ecwid_get_theme_name();
|
632 |
+
$store_url = ecwid_get_store_page_url();
|
633 |
+
$subject = sprintf(__('Ecwid plugin doesn\'t work well with my "%s" theme', 'ecwid-shopping-cart'), $theme);
|
634 |
+
$body = <<<TEXT
|
635 |
+
Hey Ecwid,
|
636 |
+
|
637 |
+
My store looks bad with my theme on Wordpress.
|
638 |
+
|
639 |
+
The theme title is %s.
|
640 |
+
The store URL is %s
|
641 |
+
|
642 |
+
Can you have a look?
|
643 |
+
|
644 |
+
Thanks.
|
645 |
+
TEXT;
|
646 |
+
$body = __( $body, 'ecwid-shopping-cart' );
|
647 |
+
$body = sprintf( $body, $theme, $store_url );
|
648 |
+
|
649 |
+
$wp_admin_bar->add_menu(array(
|
650 |
+
'id' => 'ecwid-report-problem',
|
651 |
+
'title' => __( 'Report a problem with the store', 'ecwid-shopping-cart' ),
|
652 |
+
'parent' => 'ecwid-main',
|
653 |
+
'href' => 'mailto:wordpress@ecwid.com?subject=' . rawurlencode($subject) . '&body=' . rawurlencode($body),
|
654 |
+
'meta' => array(
|
655 |
+
'target' => '_blank'
|
656 |
+
)
|
657 |
+
));
|
658 |
+
|
659 |
+
$wp_admin_bar->add_menu( array(
|
660 |
+
'id' => 'ecwid-main',
|
661 |
+
'title' => '<span class="ab-icon ecwid-top-menu-item"></span>',
|
662 |
+
'href' => 'admin.php?page=ecwid',
|
663 |
+
));
|
664 |
+
$wp_admin_bar->add_menu(array(
|
665 |
+
"id" => "ecwid-help",
|
666 |
+
"title" => __("Get help", 'ecwid-shopping-cart'),
|
667 |
+
"parent" => "ecwid-main",
|
668 |
+
'href' => 'http://help.ecwid.com'
|
669 |
+
)
|
670 |
+
);
|
671 |
+
$wp_admin_bar->add_menu(array(
|
672 |
+
"id" => "ecwid-home",
|
673 |
+
"title" => __("Go to Ecwid site", 'ecwid-shopping-cart'),
|
674 |
+
"parent" => "ecwid-main",
|
675 |
+
'href' => 'http://www.ecwid.com?source=wporg'
|
676 |
+
)
|
677 |
+
);
|
678 |
+
$wp_admin_bar->add_menu(array(
|
679 |
+
"id" => "ecwid-go-to-page",
|
680 |
+
"title" => __("Visit storefront", 'ecwid-shopping-cart'),
|
681 |
+
"parent" => "ecwid-main",
|
682 |
+
'href' => ecwid_get_store_page_url()
|
683 |
+
)
|
684 |
+
);
|
685 |
+
$wp_admin_bar->add_menu(array(
|
686 |
+
"id" => "ecwid-control-panel",
|
687 |
+
"title" => __("Manage my store", 'ecwid-shopping-cart'),
|
688 |
+
"parent" => "ecwid-main",
|
689 |
+
'href' => admin_url('admin.php?page=ecwid')
|
690 |
+
)
|
691 |
+
);
|
692 |
+
$wp_admin_bar->add_menu(array(
|
693 |
+
"id" => "ecwid-fb-app",
|
694 |
+
"title" => __("→ Sell on Facebook", 'ecwid-shopping-cart'),
|
695 |
+
"parent" => "ecwid-main",
|
696 |
+
'href' => 'http://apps.facebook.com/ecwid-shop/?fb_source=wp'
|
697 |
+
)
|
698 |
+
);
|
699 |
+
|
700 |
+
}
|
701 |
+
|
702 |
+
function ecwid_content_has_productbrowser($content) {
|
703 |
+
|
704 |
+
$result = has_shortcode($content, 'ecwid_productbrowser');
|
705 |
+
|
706 |
+
if (!$result && has_shortcode($content, 'ecwid')) {
|
707 |
+
$shortcodes = ecwid_find_shortcodes($content, 'ecwid');
|
708 |
+
if ($shortcodes) foreach ($shortcodes as $shortcode) {
|
709 |
+
|
710 |
+
$attributes = shortcode_parse_atts($shortcode[3]);
|
711 |
+
|
712 |
+
if (isset($attributes['widgets'])) {
|
713 |
+
$widgets = preg_split('![^0-9^a-z^A-Z^-^_]!', $attributes['widgets']);
|
714 |
+
if (is_array($widgets) && in_array('productbrowser', $widgets)) {
|
715 |
+
$result = true;
|
716 |
+
}
|
717 |
+
}
|
718 |
+
}
|
719 |
+
}
|
720 |
+
|
721 |
+
return $result;
|
722 |
+
}
|
723 |
+
|
724 |
+
function ecwid_page_has_productbrowser($post_id = null)
|
725 |
+
{
|
726 |
+
static $results = null;
|
727 |
+
|
728 |
+
if (is_null($post_id)) {
|
729 |
+
if (is_admin()) return;
|
730 |
+
$post_id = get_the_ID();
|
731 |
+
}
|
732 |
+
|
733 |
+
if (!isset($results[$post_id])) {
|
734 |
+
$post = get_post($post_id);
|
735 |
+
|
736 |
+
if ($post) {
|
737 |
+
$post_content = get_post($post_id)->post_content;
|
738 |
+
|
739 |
+
$results[$post_id] = ecwid_content_has_productbrowser($post_content);
|
740 |
+
$results[$post_id] = apply_filters( 'ecwid_page_has_product_browser', $results[$post_id] );
|
741 |
+
}
|
742 |
+
}
|
743 |
+
|
744 |
+
return $results[$post_id];
|
745 |
+
}
|
746 |
+
|
747 |
+
function ecwid_ajax_crawling_fragment() {
|
748 |
+
if (ecwid_is_api_enabled() && !isset($_GET['_escaped_fragment_']) && ecwid_page_has_productbrowser())
|
749 |
+
echo '<meta name="fragment" content="!">' . PHP_EOL;
|
750 |
+
}
|
751 |
+
|
752 |
+
function ecwid_meta() {
|
753 |
+
|
754 |
+
echo '<link rel="dns-prefetch" href="//images-cdn.ecwid.com/">' . PHP_EOL;
|
755 |
+
echo '<link rel="dns-prefetch" href="//images.ecwid.com/">' . PHP_EOL;
|
756 |
+
echo '<link rel="dns-prefetch" href="//app.ecwid.com/">' . PHP_EOL;
|
757 |
+
|
758 |
+
if (!ecwid_page_has_productbrowser() && ecwid_is_store_page_available()) {
|
759 |
+
$page_url = ecwid_get_store_page_url();
|
760 |
+
echo '<link rel="prefetch" href="' . $page_url . '" />' . PHP_EOL;
|
761 |
+
echo '<link rel="prerender" href="' . $page_url . '" />' . PHP_EOL;
|
762 |
+
}
|
763 |
+
}
|
764 |
+
|
765 |
+
function ecwid_product_browser_url_in_head() {
|
766 |
+
echo ecwid_get_product_browser_url_script();
|
767 |
+
}
|
768 |
+
|
769 |
+
|
770 |
+
function ecwid_canonical() {
|
771 |
+
$allowed = ecwid_is_api_enabled() && isset($_GET['_escaped_fragment_']);
|
772 |
+
if (!$allowed) return;
|
773 |
+
|
774 |
+
$params = ecwid_parse_escaped_fragment($_GET['_escaped_fragment_']);
|
775 |
+
if (!$params) return;
|
776 |
+
|
777 |
+
if (!in_array($params['mode'], array('category', 'product')) || !isset($params['id'])) return;
|
778 |
+
|
779 |
+
$api = ecwid_new_product_api();
|
780 |
+
|
781 |
+
if ($params['mode'] == 'product') {
|
782 |
+
$product = $api->get_product($params['id']);
|
783 |
+
$link = ecwid_get_product_url($product);
|
784 |
+
} else if ($params['mode'] == 'category') {
|
785 |
+
$category = $api->get_category($params['id']);
|
786 |
+
$link = ecwid_get_category_url($category);
|
787 |
+
}
|
788 |
+
|
789 |
+
echo '<link rel="canonical" href="' . esc_attr($link) . '" />' . PHP_EOL;
|
790 |
+
}
|
791 |
+
|
792 |
+
function ecwid_meta_description() {
|
793 |
+
|
794 |
+
$allowed = ecwid_is_api_enabled() && isset($_GET['_escaped_fragment_']);
|
795 |
+
if (!$allowed) return;
|
796 |
+
|
797 |
+
$params = ecwid_parse_escaped_fragment($_GET['_escaped_fragment_']);
|
798 |
+
if (!$params) return;
|
799 |
+
|
800 |
+
if (!in_array($params['mode'], array('category', 'product')) || !isset($params['id'])) return;
|
801 |
+
|
802 |
+
$api = ecwid_new_product_api();
|
803 |
+
if ($params['mode'] == 'product') {
|
804 |
+
$product = $api->get_product($params['id']);
|
805 |
+
$description = $product['description'];
|
806 |
+
} elseif ($params['mode'] == 'category') {
|
807 |
+
$category = $api->get_category($params['id']);
|
808 |
+
$description = $category['description'];
|
809 |
+
} else return;
|
810 |
+
|
811 |
+
$description = strip_tags($description);
|
812 |
+
$description = html_entity_decode($description, ENT_NOQUOTES, 'UTF-8');
|
813 |
+
|
814 |
+
$description = preg_replace('![\p{Z}\s]{1,}!u', ' ', $description);
|
815 |
+
$description = trim($description, " \t\xA0\n\r"); // Space, tab, non-breaking space, newline, carriage return
|
816 |
+
$description = mb_substr($description, 0, 160, 'UTF-8');
|
817 |
+
$description = htmlspecialchars($description, ENT_COMPAT, 'UTF-8');
|
818 |
+
|
819 |
+
echo <<<HTML
|
820 |
+
<meta name="description" content="$description" />
|
821 |
+
HTML;
|
822 |
+
}
|
823 |
+
|
824 |
+
function ecwid_ajax_hide_message($params)
|
825 |
+
{
|
826 |
+
if (Ecwid_Message_Manager::disable_message($_GET['message'])) {
|
827 |
+
wp_send_json(array('status' => 'success'));
|
828 |
+
}
|
829 |
+
}
|
830 |
+
|
831 |
+
function ecwid_hide_vote_message()
|
832 |
+
{
|
833 |
+
update_option('ecwid_show_vote_message', false);
|
834 |
+
}
|
835 |
+
|
836 |
+
function ecwid_get_product_and_category($category_id, $product_id) {
|
837 |
+
$params = array
|
838 |
+
(
|
839 |
+
array("alias" => "c", "action" => "category", "params" => array("id" => $category_id)),
|
840 |
+
array("alias" => "p", "action" => "product", "params" => array("id" => $product_id)),
|
841 |
+
);
|
842 |
+
|
843 |
+
$api = ecwid_new_product_api();
|
844 |
+
$batch_result = $api->get_batch_request($params);
|
845 |
+
|
846 |
+
if (false == $batch_result) {
|
847 |
+
$product = $api->get_product($product_id);
|
848 |
+
$category = false;
|
849 |
+
} else {
|
850 |
+
$category = $batch_result["c"];
|
851 |
+
$product = $batch_result["p"];
|
852 |
+
}
|
853 |
+
|
854 |
+
$return = "";
|
855 |
+
|
856 |
+
if (is_array($product)) {
|
857 |
+
$return .=$product["name"];
|
858 |
+
}
|
859 |
+
|
860 |
+
if(is_array($category)) {
|
861 |
+
$return.=" | ";
|
862 |
+
$return .=$category["name"];
|
863 |
+
}
|
864 |
+
return $return;
|
865 |
+
}
|
866 |
+
|
867 |
+
function ecwid_get_title_separator()
|
868 |
+
{
|
869 |
+
$sep = apply_filters('document_title_separator', '|');
|
870 |
+
|
871 |
+
if (!empty($sep)) {
|
872 |
+
return $sep;
|
873 |
+
}
|
874 |
+
|
875 |
+
return apply_filters('ecwid_title_separator', '|');
|
876 |
+
}
|
877 |
+
|
878 |
+
function ecwid_seo_title($content) {
|
879 |
+
|
880 |
+
$title = _ecwid_get_seo_title();
|
881 |
+
if (!empty($title)) {
|
882 |
+
$sep = ecwid_get_title_separator();
|
883 |
+
|
884 |
+
return "$title $sep $content";
|
885 |
+
}
|
886 |
+
|
887 |
+
return $content;
|
888 |
+
}
|
889 |
+
|
890 |
+
|
891 |
+
function ecwid_seo_title_parts($parts)
|
892 |
+
{
|
893 |
+
$title = _ecwid_get_seo_title();
|
894 |
+
if ($title) {
|
895 |
+
array_unshift($parts, $title);
|
896 |
+
}
|
897 |
+
|
898 |
+
return $parts;
|
899 |
+
}
|
900 |
+
|
901 |
+
function ecwid_ajax_seo_title()
|
902 |
+
{
|
903 |
+
$title = _ecwid_get_seo_title();
|
904 |
+
$template = $_GET['title_template'];
|
905 |
+
|
906 |
+
$result = str_replace('ECWID_SEO_TITLE', $title, $template);
|
907 |
+
|
908 |
+
echo $result;
|
909 |
+
wp_die();
|
910 |
+
}
|
911 |
+
|
912 |
+
|
913 |
+
function _ecwid_get_seo_title()
|
914 |
+
{
|
915 |
+
global $ecwid_seo_title_mode;
|
916 |
+
|
917 |
+
if ($ecwid_seo_title_mode == 'placeholder') {
|
918 |
+
return 'ECWID_SEO_TITLE';
|
919 |
+
} else if ($ecwid_seo_title_mode == 'none') {
|
920 |
+
return '';
|
921 |
+
}
|
922 |
+
|
923 |
+
if (!isset($_GET['_escaped_fragment_']) || !ecwid_is_api_enabled()) return;
|
924 |
+
|
925 |
+
$params = ecwid_parse_escaped_fragment( $_GET['_escaped_fragment_'] );
|
926 |
+
$ecwid_seo_title = '';
|
927 |
+
|
928 |
+
$separator = ecwid_get_title_separator();
|
929 |
+
|
930 |
+
$api = ecwid_new_product_api();
|
931 |
+
|
932 |
+
if ( isset( $params['mode'] ) && ! empty( $params['mode'] ) ) {
|
933 |
+
if ( $params['mode'] == 'product' ) {
|
934 |
+
if ( isset( $params['category'] ) && ! empty( $params['category'] ) ) {
|
935 |
+
$ecwid_seo_title = ecwid_get_product_and_category( $params['category'], $params['id'] );
|
936 |
+
} elseif ( empty( $params['category'] ) ) {
|
937 |
+
$ecwid_product = $api->get_product( $params['id'] );
|
938 |
+
$ecwid_seo_title = $ecwid_product['name'];
|
939 |
+
if ( isset( $ecwid_product['categories'] ) && is_array( $ecwid_product['categories'] ) ) {
|
940 |
+
foreach ( $ecwid_product['categories'] as $ecwid_category ) {
|
941 |
+
if ( $ecwid_category['defaultCategory'] == true ) {
|
942 |
+
$ecwid_seo_title .= ' ' . $separator . ' ';
|
943 |
+
$ecwid_seo_title .= $ecwid_category['name'];
|
944 |
+
}
|
945 |
+
}
|
946 |
+
}
|
947 |
+
}
|
948 |
+
} elseif ( $params['mode'] == 'category' ) {
|
949 |
+
$api = ecwid_new_product_api();
|
950 |
+
$ecwid_category = $api->get_category( $params['id'] );
|
951 |
+
$ecwid_seo_title = $ecwid_category['name'];
|
952 |
+
}
|
953 |
+
}
|
954 |
+
|
955 |
+
if ( ! empty( $ecwid_seo_title ) ) {
|
956 |
+
return $ecwid_seo_title;
|
957 |
+
}
|
958 |
+
|
959 |
+
return "";
|
960 |
+
}
|
961 |
+
|
962 |
+
function ecwid_add_credits($powered_by)
|
963 |
+
{
|
964 |
+
if (!ecwid_is_paid_account()) {
|
965 |
+
|
966 |
+
$new_powered_by = '<li>';
|
967 |
+
$new_powered_by .= sprintf(
|
968 |
+
__('<a %s>Online store powered by Ecwid</a>', 'ecwid-shopping-cart'),
|
969 |
+
'target="_blank" href="//www.ecwid.com?source=wporg-metalink"'
|
970 |
+
);
|
971 |
+
$new_powered_by .= '</li>';
|
972 |
+
|
973 |
+
$powered_by .= $new_powered_by;
|
974 |
+
}
|
975 |
+
|
976 |
+
return $powered_by;
|
977 |
+
}
|
978 |
+
|
979 |
+
function ecwid_content_started($content)
|
980 |
+
{
|
981 |
+
global $ecwid_script_rendered;
|
982 |
+
|
983 |
+
$ecwid_script_rendered = false;
|
984 |
+
|
985 |
+
return $content;
|
986 |
+
}
|
987 |
+
|
988 |
+
function ecwid_wrap_shortcode_content($content, $name, $attrs)
|
989 |
+
{
|
990 |
+
return "<!-- Ecwid shopping cart plugin v 4.0.5 --><!-- noptimize -->"
|
991 |
+
. ecwid_get_scriptjs_code(@$attrs['lang'])
|
992 |
+
. "<div class=\"ecwid-shopping-cart-$name\">$content</div>"
|
993 |
+
. "<!-- /noptimize --><!-- END Ecwid Shopping Cart v 4.0.5 -->";
|
994 |
+
}
|
995 |
+
|
996 |
+
function ecwid_get_scriptjs_code($force_lang = null) {
|
997 |
+
global $ecwid_script_rendered;
|
998 |
+
|
999 |
+
if (!$ecwid_script_rendered) {
|
1000 |
+
$store_id = get_ecwid_store_id();
|
1001 |
+
$force_lang_str = !empty($force_lang) ? "&lang=$force_lang" : '';
|
1002 |
+
$s = '<script data-cfasync="false" type="text/javascript" src="https://' . APP_ECWID_COM . '/script.js?' . $store_id . '&data_platform=wporg' . $force_lang_str . '"></script>';
|
1003 |
+
$s = $s . ecwid_sso();
|
1004 |
+
$ecwid_script_rendered = true;
|
1005 |
+
|
1006 |
+
return $s;
|
1007 |
+
} else {
|
1008 |
+
return '';
|
1009 |
+
}
|
1010 |
+
}
|
1011 |
+
|
1012 |
+
function ecwid_script_shortcode($params) {
|
1013 |
+
|
1014 |
+
$attributes = shortcode_atts(
|
1015 |
+
array(
|
1016 |
+
'lang' => null
|
1017 |
+
), $params
|
1018 |
+
);
|
1019 |
+
|
1020 |
+
$content = "";
|
1021 |
+
if (!is_null($attributes['lang'])) {
|
1022 |
+
$content = ecwid_get_scriptjs_code($attributes['lang']);
|
1023 |
+
}
|
1024 |
+
|
1025 |
+
return ecwid_wrap_shortcode_content($content, 'script', $params);
|
1026 |
+
}
|
1027 |
+
|
1028 |
+
function ecwid_minicart_shortcode($attributes) {
|
1029 |
+
|
1030 |
+
$params = shortcode_atts(
|
1031 |
+
array(
|
1032 |
+
'layout' => null,
|
1033 |
+
'is_ecwid_shortcode' => false,
|
1034 |
+
'lang' => null
|
1035 |
+
), $attributes
|
1036 |
+
);
|
1037 |
+
|
1038 |
+
$layout = $params['layout'];
|
1039 |
+
if (!in_array($layout, array('', 'attachToCategories', 'floating', 'Mini', 'MiniAttachToProductBrowser'), true)) {
|
1040 |
+
$layout = 'MiniAttachToProductBrowser';
|
1041 |
+
}
|
1042 |
+
|
1043 |
+
if ($params['is_ecwid_shortcode']) {
|
1044 |
+
// it is a part of the ecwid shortcode, we need to show it anyways
|
1045 |
+
$ecwid_enable_minicart = $ecwid_show_categories = true;
|
1046 |
+
} else {
|
1047 |
+
// it is a ecwid_minicart widget that works based on appearance settings
|
1048 |
+
$ecwid_enable_minicart = get_option('ecwid_enable_minicart');
|
1049 |
+
$ecwid_show_categories = get_option('ecwid_show_categories');
|
1050 |
+
}
|
1051 |
+
|
1052 |
+
$result = '';
|
1053 |
+
|
1054 |
+
if (!empty($ecwid_enable_minicart) && !empty($ecwid_show_categories)) {
|
1055 |
+
$result = <<<EOT
|
1056 |
+
<script data-cfasync="false" type="text/javascript"> xMinicart("style=","layout=$layout"); </script>
|
1057 |
+
EOT;
|
1058 |
+
}
|
1059 |
+
|
1060 |
+
$result = apply_filters('ecwid_minicart_shortcode_content', $result);
|
1061 |
+
|
1062 |
+
if (!empty($result)) {
|
1063 |
+
$result = ecwid_wrap_shortcode_content($result, 'minicart', $params);
|
1064 |
+
}
|
1065 |
+
|
1066 |
+
return $result;
|
1067 |
+
}
|
1068 |
+
|
1069 |
+
function ecwid_searchbox_shortcode($attributes) {
|
1070 |
+
|
1071 |
+
$params = shortcode_atts(
|
1072 |
+
array(
|
1073 |
+
'is_ecwid_shortcode' => false,
|
1074 |
+
'lang' => null
|
1075 |
+
), $attributes
|
1076 |
+
);
|
1077 |
+
|
1078 |
+
$ecwid_show_search_box = $params['is_ecwid_shortcode'] ? true : get_option('ecwid_show_search_box');
|
1079 |
+
|
1080 |
+
$result = '';
|
1081 |
+
if (!empty($ecwid_show_search_box)) {
|
1082 |
+
$result = <<<EOT
|
1083 |
+
<script data-cfasync="false" type="text/javascript"> xSearchPanel("style="); </script>
|
1084 |
+
EOT;
|
1085 |
+
}
|
1086 |
+
|
1087 |
+
$result = apply_filters('ecwid_search_shortcode_content', $result);
|
1088 |
+
|
1089 |
+
if (!empty($result)) {
|
1090 |
+
$result = ecwid_wrap_shortcode_content($result, 'search', $params);
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
return $result;
|
1094 |
+
}
|
1095 |
+
|
1096 |
+
function ecwid_categories_shortcode($attributes) {
|
1097 |
+
|
1098 |
+
$params = shortcode_atts(
|
1099 |
+
array(
|
1100 |
+
'is_ecwid_shortcode' => false,
|
1101 |
+
'lang' => null
|
1102 |
+
), $attributes
|
1103 |
+
);
|
1104 |
+
|
1105 |
+
$ecwid_show_categories = $params['is_ecwid_shortcode'] ? true : get_option('ecwid_show_categories');
|
1106 |
+
|
1107 |
+
$result = '';
|
1108 |
+
if (!empty($ecwid_show_categories)) {
|
1109 |
+
if (get_option('ecwid_use_new_horizontal_categories')) {
|
1110 |
+
$store_id = get_ecwid_store_id();
|
1111 |
+
$ver = get_option('ecwid_plugin_version');
|
1112 |
+
$result = <<<HTML
|
1113 |
+
<div id="horizontal-menu" data-storeid="$store_id"></div>
|
1114 |
+
<script src="https://djqizrxa6f10j.cloudfront.net/horizontal-category-widget/v1.1/horizontal-widget.js?ver=$ver"></script>
|
1115 |
+
HTML;
|
1116 |
+
} else {
|
1117 |
+
$result = <<<EOT
|
1118 |
+
<script data-cfasync="false" type="text/javascript"> xCategories("style="); </script>
|
1119 |
+
EOT;
|
1120 |
+
}
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
$result = apply_filters('ecwid_categories_shortcode_content', $result);
|
1124 |
+
|
1125 |
+
if (!empty($result)) {
|
1126 |
+
$result = ecwid_wrap_shortcode_content($result, 'categories', $params);
|
1127 |
+
}
|
1128 |
+
|
1129 |
+
return $result;
|
1130 |
+
}
|
1131 |
+
|
1132 |
+
function ecwid_product_shortcode($shortcode_attributes) {
|
1133 |
+
|
1134 |
+
$attributes = shortcode_atts(
|
1135 |
+
array(
|
1136 |
+
'id' => null,
|
1137 |
+
'display' => 'picture title price options addtobag',
|
1138 |
+
'link' => 'yes'
|
1139 |
+
),
|
1140 |
+
$shortcode_attributes
|
1141 |
+
);
|
1142 |
+
|
1143 |
+
$id = $attributes['id'];
|
1144 |
+
|
1145 |
+
if (is_null($id) || !is_numeric($id) || $id <= 0) return;
|
1146 |
+
|
1147 |
+
if ($attributes['link'] == 'yes' && !ecwid_is_store_page_available()) {
|
1148 |
+
$attributes['link'] = 'no';
|
1149 |
+
}
|
1150 |
+
|
1151 |
+
$display_items = array(
|
1152 |
+
'picture' => '<div itemprop="picture"></div>',
|
1153 |
+
'title' => '<div class="ecwid-title" itemprop="title"></div>',
|
1154 |
+
'price' => '<div itemtype="http://schema.org/Offer" itemscope itemprop="offers">'
|
1155 |
+
. '<div class="ecwid-productBrowser-price ecwid-price" itemprop="price"></div>'
|
1156 |
+
. '</div>',
|
1157 |
+
'options' => '<div itemprop="options"></div>',
|
1158 |
+
'qty' => '<div itemprop="qty"></div>',
|
1159 |
+
'addtobag' => '<div itemprop="addtobag"></div>'
|
1160 |
+
);
|
1161 |
+
|
1162 |
+
$result = sprintf(
|
1163 |
+
'<div class="ecwid ecwid-SingleProduct ecwid-Product ecwid-Product-%d" '
|
1164 |
+
. 'itemscope itemtype="http://schema.org/Product" '
|
1165 |
+
. 'data-single-product-id="%d">',
|
1166 |
+
$id, $id
|
1167 |
+
);
|
1168 |
+
|
1169 |
+
$items = preg_split('![^0-9^a-z^A-Z^\-^_]!', $attributes['display']);
|
1170 |
+
|
1171 |
+
if (is_array($items) && count($items) > 0) foreach ($items as $item) {
|
1172 |
+
if (array_key_exists($item, $display_items)) {
|
1173 |
+
if ($attributes['link'] == 'yes' && in_array($item, array('title', 'picture'))) {
|
1174 |
+
$product_link = ecwid_get_store_page_url() . '#!/~/product/id=' . $id;
|
1175 |
+
$result .= '<a href="' . esc_url($product_link) . '">' . $display_items[$item] . '</a>';
|
1176 |
+
} else {
|
1177 |
+
$result .= $display_items[$item];
|
1178 |
+
}
|
1179 |
+
}
|
1180 |
+
}
|
1181 |
+
|
1182 |
+
$result .= '</div>';
|
1183 |
+
|
1184 |
+
$result .= ecwid_get_product_browser_url_script();
|
1185 |
+
$result .= '<script data-cfasync="false" type="text/javascript">xSingleProduct()</script>';
|
1186 |
+
|
1187 |
+
update_option('ecwid_single_product_used', time());
|
1188 |
+
|
1189 |
+
return ecwid_wrap_shortcode_content($result, 'product', $shortcode_attributes);
|
1190 |
+
}
|
1191 |
+
|
1192 |
+
function ecwid_shortcode($attributes)
|
1193 |
+
{
|
1194 |
+
$attributes = shortcode_atts(
|
1195 |
+
array(
|
1196 |
+
'widgets' => 'productbrowser',
|
1197 |
+
'categories_per_row' => '3',
|
1198 |
+
'category_view' => 'grid',
|
1199 |
+
'search_view' => 'grid',
|
1200 |
+
'grid' => '3,3',
|
1201 |
+
'list' => '10',
|
1202 |
+
'table' => '20',
|
1203 |
+
'minicart_layout' => 'MiniAttachToProductBrowser',
|
1204 |
+
'default_category_id' => 0,
|
1205 |
+
'lang' => ''
|
1206 |
+
)
|
1207 |
+
, $attributes
|
1208 |
+
);
|
1209 |
+
|
1210 |
+
$allowed_widgets = array('productbrowser', 'search', 'categories', 'minicart');
|
1211 |
+
$widgets = preg_split('![^0-9^a-z^A-Z^-^_]!', $attributes['widgets']);
|
1212 |
+
foreach ($widgets as $key => $widget) {
|
1213 |
+
if (!in_array($widget, $allowed_widgets)) {
|
1214 |
+
unset($widgets[$key]);
|
1215 |
+
}
|
1216 |
+
}
|
1217 |
+
|
1218 |
+
if (empty($widgets)) {
|
1219 |
+
$widgets = array('productbrowser');
|
1220 |
+
}
|
1221 |
+
|
1222 |
+
$attributes['layout'] = $attributes['minicart_layout'];
|
1223 |
+
$attributes['is_ecwid_shortcode'] = true;
|
1224 |
+
|
1225 |
+
$result = '';
|
1226 |
+
|
1227 |
+
$widgets_order = array('minicart', 'search', 'categories', 'productbrowser');
|
1228 |
+
foreach ($widgets_order as $widget) {
|
1229 |
+
if (in_array($widget, $widgets)) {
|
1230 |
+
if ($widget == 'search') {
|
1231 |
+
$widget = 'searchbox';
|
1232 |
+
}
|
1233 |
+
|
1234 |
+
$result .= call_user_func_array('ecwid_' . $widget . '_shortcode', array($attributes));
|
1235 |
+
}
|
1236 |
+
}
|
1237 |
+
|
1238 |
+
update_option('ecwid_store_shortcode_used', time());
|
1239 |
+
|
1240 |
+
return $result;
|
1241 |
+
}
|
1242 |
+
|
1243 |
+
function ecwid_productbrowser_shortcode($shortcode_params) {
|
1244 |
+
|
1245 |
+
$atts = shortcode_atts(
|
1246 |
+
array(
|
1247 |
+
'categories_per_row' => false,
|
1248 |
+
'grid' => false,
|
1249 |
+
'list' => false,
|
1250 |
+
'table' => false,
|
1251 |
+
'search_view' => false,
|
1252 |
+
'category_view' => false
|
1253 |
+
), $shortcode_params
|
1254 |
+
);
|
1255 |
+
|
1256 |
+
$grid = explode(',', $atts['grid']);
|
1257 |
+
if (count($grid) == 2) {
|
1258 |
+
$atts['grid_rows'] = intval($grid[0]);
|
1259 |
+
$atts['grid_cols'] = intval($grid[1]);
|
1260 |
+
} else {
|
1261 |
+
list($atts['grid_rows'], $atts['grid_cols']) = array(false, false);
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
$store_id = get_ecwid_store_id();
|
1265 |
+
$list_of_views = array('list','grid','table');
|
1266 |
+
|
1267 |
+
$ecwid_pb_categoriesperrow = $atts['categories_per_row'] ? $atts['categories_per_row'] : get_option('ecwid_pb_categoriesperrow');
|
1268 |
+
$ecwid_pb_productspercolumn_grid = $atts['grid_rows'] ? $atts['grid_rows'] : get_option('ecwid_pb_productspercolumn_grid');
|
1269 |
+
$ecwid_pb_productsperrow_grid = $atts['grid_cols'] ? $atts['grid_cols'] : get_option('ecwid_pb_productsperrow_grid');
|
1270 |
+
$ecwid_pb_productsperpage_list = $atts['list'] ? $atts['list'] : get_option('ecwid_pb_productsperpage_list');
|
1271 |
+
$ecwid_pb_productsperpage_table = $atts['table'] ? $atts['table'] : get_option('ecwid_pb_productsperpage_table');
|
1272 |
+
$ecwid_pb_defaultview = $atts['category_view'] ? $atts['category_view'] : get_option('ecwid_pb_defaultview');
|
1273 |
+
$ecwid_pb_searchview = $atts['search_view'] ? $atts['search_view'] : get_option('ecwid_pb_searchview');
|
1274 |
+
|
1275 |
+
$ecwid_mobile_catalog_link = get_option('ecwid_mobile_catalog_link');
|
1276 |
+
$ecwid_default_category_id =
|
1277 |
+
!empty($shortcode_params) && array_key_exists('default_category_id', $shortcode_params)
|
1278 |
+
? $shortcode_params['default_category_id']
|
1279 |
+
: get_option('ecwid_default_category_id');
|
1280 |
+
|
1281 |
+
if (empty($ecwid_pb_categoriesperrow)) {
|
1282 |
+
$ecwid_pb_categoriesperrow = 3;
|
1283 |
+
}
|
1284 |
+
if (empty($ecwid_pb_productspercolumn_grid)) {
|
1285 |
+
$ecwid_pb_productspercolumn_grid = 3;
|
1286 |
+
}
|
1287 |
+
if (empty($ecwid_pb_productsperrow_grid)) {
|
1288 |
+
$ecwid_pb_productsperrow_grid = 3;
|
1289 |
+
}
|
1290 |
+
if (empty($ecwid_pb_productsperpage_list)) {
|
1291 |
+
$ecwid_pb_productsperpage_list = 10;
|
1292 |
+
}
|
1293 |
+
if (empty($ecwid_pb_productsperpage_table)) {
|
1294 |
+
$ecwid_pb_productsperpage_table = 20;
|
1295 |
+
}
|
1296 |
+
|
1297 |
+
if (empty($ecwid_pb_defaultview) || !in_array($ecwid_pb_defaultview, $list_of_views)) {
|
1298 |
+
$ecwid_pb_defaultview = 'grid';
|
1299 |
+
}
|
1300 |
+
if (empty($ecwid_pb_searchview) || !in_array($ecwid_pb_searchview, $list_of_views)) {
|
1301 |
+
$ecwid_pb_searchview = 'list';
|
1302 |
+
}
|
1303 |
+
|
1304 |
+
if (empty($ecwid_default_category_id)) {
|
1305 |
+
$ecwid_default_category_str = '';
|
1306 |
+
} else {
|
1307 |
+
$ecwid_default_category_str = ',"defaultCategoryId='. $ecwid_default_category_id .'"';
|
1308 |
+
}
|
1309 |
+
|
1310 |
+
$plain_content = '';
|
1311 |
+
|
1312 |
+
if (ecwid_can_display_html_catalog()) {
|
1313 |
+
$params = ecwid_parse_escaped_fragment($_GET['_escaped_fragment_']);
|
1314 |
+
include_once WP_PLUGIN_DIR . '/ecwid-shopping-cart/lib/ecwid_product_api.php';
|
1315 |
+
include_once WP_PLUGIN_DIR . '/ecwid-shopping-cart/lib/ecwid_catalog.php';
|
1316 |
+
|
1317 |
+
$page_url = get_page_link();
|
1318 |
+
|
1319 |
+
$catalog = new EcwidCatalog($store_id, $page_url);
|
1320 |
+
|
1321 |
+
if (isset($params['mode']) && !empty($params['mode'])) {
|
1322 |
+
if ($params['mode'] == 'product') {
|
1323 |
+
$plain_content = $catalog->get_product($params['id']);
|
1324 |
+
$url = ecwid_get_product_url(ecwid_new_product_api()->get_product($params['id']));
|
1325 |
+
} elseif ($params['mode'] == 'category') {
|
1326 |
+
$plain_content = $catalog->get_category($params['id']);
|
1327 |
+
$ecwid_default_category_str = ',"defaultCategoryId=' . $params['id'] . '"';
|
1328 |
+
$url = ecwid_get_category_url(ecwid_new_product_api()->get_category($params['id']));
|
1329 |
+
}
|
1330 |
+
|
1331 |
+
} else {
|
1332 |
+
$plain_content = $catalog->get_category(intval($ecwid_default_category_id));
|
1333 |
+
if (empty($plain_content)) {
|
1334 |
+
$plain_content = $catalog->get_category(0);
|
1335 |
+
} else {
|
1336 |
+
$url = ecwid_get_category_url(ecwid_new_product_api()->get_category($params['id']));
|
1337 |
+
}
|
1338 |
+
}
|
1339 |
+
if ($url) {
|
1340 |
+
$parsed = parse_url($url);
|
1341 |
+
$plain_content .= '<script data-cfasync="false" type="text/javascript"> if (!document.location.hash) document.location.hash = "'. $parsed['fragment'] . '";</script>';
|
1342 |
+
}
|
1343 |
+
}
|
1344 |
+
|
1345 |
+
$s = '';
|
1346 |
+
|
1347 |
+
$s = <<<EOT
|
1348 |
+
<div id="ecwid-store-$store_id">
|
1349 |
+
{$plain_content}
|
1350 |
+
</div>
|
1351 |
+
<script data-cfasync="false" type="text/javascript"> xProductBrowser("categoriesPerRow=$ecwid_pb_categoriesperrow","views=grid($ecwid_pb_productspercolumn_grid,$ecwid_pb_productsperrow_grid) list($ecwid_pb_productsperpage_list) table($ecwid_pb_productsperpage_table)","categoryView=$ecwid_pb_defaultview","searchView=$ecwid_pb_searchview","style="$ecwid_default_category_str, "id=ecwid-store-$store_id");</script>
|
1352 |
+
EOT;
|
1353 |
+
return ecwid_wrap_shortcode_content($s, 'product-browser', $shortcode_params);
|
1354 |
+
}
|
1355 |
+
|
1356 |
+
|
1357 |
+
function ecwid_parse_escaped_fragment($escaped_fragment) {
|
1358 |
+
$fragment = urldecode($escaped_fragment);
|
1359 |
+
$return = array();
|
1360 |
+
|
1361 |
+
if (preg_match('/^(\/~\/)([a-z]+)\/(.*)$/', $fragment, $matches)) {
|
1362 |
+
parse_str($matches[3], $return);
|
1363 |
+
$return['mode'] = $matches[2];
|
1364 |
+
} elseif (preg_match('!.*/(p|c)/([0-9]*)!', $fragment, $matches)) {
|
1365 |
+
if (count($matches) == 3 && in_array($matches[1], array('p', 'c'))) {
|
1366 |
+
$return = array(
|
1367 |
+
'mode' => 'p' == $matches[1] ? 'product' : 'category',
|
1368 |
+
'id' => $matches[2]
|
1369 |
+
);
|
1370 |
+
}
|
1371 |
+
}
|
1372 |
+
|
1373 |
+
return $return;
|
1374 |
+
}
|
1375 |
+
|
1376 |
+
function ecwid_ajax_get_product_info() {
|
1377 |
+
$id = $_GET['id'];
|
1378 |
+
|
1379 |
+
if (ecwid_is_api_enabled()) {
|
1380 |
+
$api = ecwid_new_product_api();
|
1381 |
+
$product = $api->get_product_https($id);
|
1382 |
+
|
1383 |
+
echo json_encode($product);
|
1384 |
+
}
|
1385 |
+
|
1386 |
+
exit();
|
1387 |
+
}
|
1388 |
+
|
1389 |
+
add_filter('autoptimize_filter_js_exclude','ecwid_override_jsexclude',10,1);
|
1390 |
+
function ecwid_override_jsexclude($exclude)
|
1391 |
+
{
|
1392 |
+
return $exclude . ', xSearchPanel("style=")';
|
1393 |
+
}
|
1394 |
+
|
1395 |
+
function ecwid_store_activate() {
|
1396 |
+
$my_post = array();
|
1397 |
+
$content = <<<EOT
|
1398 |
+
[ecwid widgets="productbrowser minicart categories search" grid="3,3" list="10" table="20" default_category_id="0" category_view="grid" search_view="grid" minicart_layout="MiniAttachToProductBrowser" ]
|
1399 |
+
EOT;
|
1400 |
+
add_option("ecwid_store_page_id", '', '', 'yes');
|
1401 |
+
add_option("ecwid_store_page_id_auto", '', '', 'yes');
|
1402 |
+
|
1403 |
+
add_option("ecwid_store_id", ECWID_DEMO_STORE_ID, '', 'yes');
|
1404 |
+
|
1405 |
+
add_option("ecwid_enable_minicart", 'Y', '', 'yes');
|
1406 |
+
add_option("ecwid_show_categories", '', '', 'yes');
|
1407 |
+
add_option("ecwid_show_search_box", '', '', 'yes');
|
1408 |
+
|
1409 |
+
add_option("ecwid_pb_categoriesperrow", '3', '', 'yes');
|
1410 |
+
|
1411 |
+
add_option("ecwid_pb_productspercolumn_grid", '3', '', 'yes');
|
1412 |
+
add_option("ecwid_pb_productsperrow_grid", '3', '', 'yes');
|
1413 |
+
add_option("ecwid_pb_productsperpage_list", '10', '', 'yes');
|
1414 |
+
add_option("ecwid_pb_productsperpage_table", '20', '', 'yes');
|
1415 |
+
|
1416 |
+
add_option("ecwid_pb_defaultview", 'grid', '', 'yes');
|
1417 |
+
add_option("ecwid_pb_searchview", 'list', '', 'yes');
|
1418 |
+
|
1419 |
+
add_option("ecwid_mobile_catalog_link", '', '', 'yes');
|
1420 |
+
add_option("ecwid_default_category_id", '', '', 'yes');
|
1421 |
+
|
1422 |
+
add_option('ecwid_is_api_enabled', 'on', '', 'yes');
|
1423 |
+
add_option('ecwid_api_check_time', 0, '', 'yes');
|
1424 |
+
|
1425 |
+
add_option('ecwid_show_vote_message', true);
|
1426 |
+
|
1427 |
+
add_option("ecwid_sso_secret_key", '', '', 'yes');
|
1428 |
+
|
1429 |
+
add_option("ecwid_installation_date", time());
|
1430 |
+
|
1431 |
+
add_option('ecwid_hide_appearance_menu', get_option('ecwid_store_id') == ECWID_DEMO_STORE_ID ? 'Y' : 'N', '', 'yes');
|
1432 |
+
// Does not affect updates, automatically turned on for new users only
|
1433 |
+
add_option("ecwid_advanced_theme_layout", get_option('ecwid_store_id') == ECWID_DEMO_STORE_ID ? 'Y' : 'N', '', 'yes');
|
1434 |
+
|
1435 |
+
add_option('ecwid_chameleon_primary', '');
|
1436 |
+
add_option('ecwid_chameleon_background', '');
|
1437 |
+
add_option('ecwid_chameleon_links', '');
|
1438 |
+
|
1439 |
+
/* All new options should go to check_version thing */
|
1440 |
+
|
1441 |
+
$id = get_option("ecwid_store_page_id");
|
1442 |
+
$_tmp_page = null;
|
1443 |
+
if (!empty($id) and ($id > 0)) {
|
1444 |
+
$_tmp_page = get_post($id);
|
1445 |
+
}
|
1446 |
+
if ($_tmp_page !== null) {
|
1447 |
+
$my_post = array();
|
1448 |
+
$my_post['ID'] = $id;
|
1449 |
+
$my_post['post_status'] = 'publish';
|
1450 |
+
wp_update_post( $my_post );
|
1451 |
+
|
1452 |
+
} else {
|
1453 |
+
ecwid_load_textdomain();
|
1454 |
+
$my_post['post_title'] = __('Store', 'ecwid-shopping-cart');
|
1455 |
+
$my_post['post_content'] = $content;
|
1456 |
+
$my_post['post_status'] = 'publish';
|
1457 |
+
$my_post['post_author'] = 1;
|
1458 |
+
$my_post['post_type'] = 'page';
|
1459 |
+
$my_post['comment_status'] = 'closed';
|
1460 |
+
$id = wp_insert_post( $my_post );
|
1461 |
+
update_option('ecwid_store_page_id', $id);
|
1462 |
+
|
1463 |
+
if (ecwid_get_theme_identification() == 'responsive') {
|
1464 |
+
update_post_meta($id, '_wp_page_template', 'full-width-page.php');
|
1465 |
+
update_option("ecwid_show_search_box", 'Y');
|
1466 |
+
}
|
1467 |
+
}
|
1468 |
+
|
1469 |
+
Ecwid_Message_Manager::enable_message('on_activate');
|
1470 |
+
Ecwid_Kissmetrics::record('wpPluginActivated');
|
1471 |
+
|
1472 |
+
}
|
1473 |
+
|
1474 |
+
function ecwid_show_admin_messages() {
|
1475 |
+
if (is_admin()) {
|
1476 |
+
Ecwid_Message_Manager::show_messages();
|
1477 |
+
}
|
1478 |
+
}
|
1479 |
+
|
1480 |
+
function ecwid_show_admin_message($message) {
|
1481 |
+
|
1482 |
+
$class = version_compare(get_bloginfo('version'), '3.0') < 0 ? "updated fade" : "update-nag";
|
1483 |
+
echo sprintf('<div class="%s" style="margin-top: 5px">%s</div>', $class, $message);
|
1484 |
+
}
|
1485 |
+
|
1486 |
+
function ecwid_store_deactivate() {
|
1487 |
+
$ecwid_page_id = get_option("ecwid_store_page_id");
|
1488 |
+
$_tmp_page = null;
|
1489 |
+
if (!empty($ecwid_page_id) and ($ecwid_page_id > 0)) {
|
1490 |
+
$_tmp_page = get_page($ecwid_page_id);
|
1491 |
+
if ($_tmp_page !== null) {
|
1492 |
+
$my_post = array();
|
1493 |
+
$my_post['ID'] = $ecwid_page_id;
|
1494 |
+
$my_post['post_status'] = 'draft';
|
1495 |
+
wp_update_post( $my_post );
|
1496 |
+
} else {
|
1497 |
+
update_option('ecwid_store_page_id', '');
|
1498 |
+
}
|
1499 |
+
}
|
1500 |
+
|
1501 |
+
Ecwid_Message_Manager::reset_hidden_messages();
|
1502 |
+
Ecwid_Kissmetrics::record('wpPluginDeactivated');
|
1503 |
+
}
|
1504 |
+
|
1505 |
+
function ecwid_uninstall() {
|
1506 |
+
delete_option("ecwid_store_page_id_auto");
|
1507 |
+
delete_option("ecwid_store_id");
|
1508 |
+
delete_option("ecwid_enable_minicart");
|
1509 |
+
delete_option("ecwid_show_categories");
|
1510 |
+
delete_option("ecwid_show_search_box");
|
1511 |
+
delete_option("ecwid_pb_categoriesperrow");
|
1512 |
+
delete_option("ecwid_pb_productspercolumn_grid");
|
1513 |
+
delete_option("ecwid_pb_productsperrow_grid");
|
1514 |
+
delete_option("ecwid_pb_productsperpage_list");
|
1515 |
+
delete_option("ecwid_pb_productsperpage_table");
|
1516 |
+
delete_option("ecwid_pb_defaultview");
|
1517 |
+
delete_option("ecwid_pb_searchview");
|
1518 |
+
delete_option("ecwid_mobile_catalog_link");
|
1519 |
+
delete_option("ecwid_default_category_id");
|
1520 |
+
delete_option('ecwid_is_api_enabled');
|
1521 |
+
delete_option('ecwid_api_check_time');
|
1522 |
+
delete_option('ecwid_show_vote_message');
|
1523 |
+
delete_option("ecwid_sso_secret_key");
|
1524 |
+
delete_option("ecwid_installation_date");
|
1525 |
+
delete_option('ecwid_hide_appearance_menu');
|
1526 |
+
delete_option("ecwid_advanced_theme_layout");
|
1527 |
+
|
1528 |
+
delete_option("ecwid_plugin_version");
|
1529 |
+
delete_option("ecwid_use_chameleon");
|
1530 |
+
}
|
1531 |
+
|
1532 |
+
function ecwid_abs_intval($value) {
|
1533 |
+
if (!is_null($value))
|
1534 |
+
return abs(intval($value));
|
1535 |
+
else
|
1536 |
+
return null;
|
1537 |
+
}
|
1538 |
+
|
1539 |
+
function ecwid_build_menu() {
|
1540 |
+
|
1541 |
+
$is_newbie = get_ecwid_store_id() == ECWID_DEMO_STORE_ID;
|
1542 |
+
|
1543 |
+
add_menu_page(
|
1544 |
+
__('Ecwid shopping cart settings', 'ecwid-shopping-cart'),
|
1545 |
+
__('Ecwid Store', 'ecwid-shopping-cart'),
|
1546 |
+
'manage_options',
|
1547 |
+
'ecwid',
|
1548 |
+
'ecwid_general_settings_do_page',
|
1549 |
+
'',
|
1550 |
+
'2.562347345'
|
1551 |
+
);
|
1552 |
+
|
1553 |
+
if ($is_newbie) {
|
1554 |
+
$title = __('Setup', 'ecwid-shopping-cart');
|
1555 |
+
} else {
|
1556 |
+
$title = __('Dashboard', 'ecwid-shopping-cart');
|
1557 |
+
}
|
1558 |
+
add_submenu_page(
|
1559 |
+
'ecwid',
|
1560 |
+
$title,
|
1561 |
+
$title,
|
1562 |
+
'manage_options',
|
1563 |
+
'ecwid',
|
1564 |
+
'ecwid_general_settings_do_page'
|
1565 |
+
);
|
1566 |
+
|
1567 |
+
global $ecwid_oauth;
|
1568 |
+
if (!$is_newbie && $ecwid_oauth->has_scope( 'allow_sso' )) {
|
1569 |
+
add_submenu_page(
|
1570 |
+
'ecwid',
|
1571 |
+
__('Sales', 'ecwid-shopping-cart'),
|
1572 |
+
__('Sales', 'ecwid-shopping-cart'),
|
1573 |
+
'manage_options',
|
1574 |
+
'ecwid-admin-orders',
|
1575 |
+
'ecwid_admin_orders_do_page'
|
1576 |
+
);
|
1577 |
+
|
1578 |
+
|
1579 |
+
add_submenu_page(
|
1580 |
+
'ecwid',
|
1581 |
+
__('Products', 'ecwid-shopping-cart'),
|
1582 |
+
__('Products', 'ecwid-shopping-cart'),
|
1583 |
+
'manage_options',
|
1584 |
+
'ecwid-admin-products',
|
1585 |
+
'ecwid_admin_products_do_page'
|
1586 |
+
);
|
1587 |
+
}
|
1588 |
+
if (get_option('ecwid_hide_appearance_menu') != 'Y') {
|
1589 |
+
add_submenu_page(
|
1590 |
+
'ecwid',
|
1591 |
+
__('Appearance settings', 'ecwid-shopping-cart'),
|
1592 |
+
__('Appearance', 'ecwid-shopping-cart'),
|
1593 |
+
'manage_options',
|
1594 |
+
'ecwid-appearance',
|
1595 |
+
'ecwid_appearance_settings_do_page'
|
1596 |
+
);
|
1597 |
+
}
|
1598 |
+
|
1599 |
+
if (!$is_newbie || (isset($_GET['page']) && $_GET['page'] == 'ecwid-advanced')) {
|
1600 |
+
add_submenu_page(
|
1601 |
+
'ecwid',
|
1602 |
+
__('Advanced settings', 'ecwid-shopping-cart'),
|
1603 |
+
__('Advanced', 'ecwid-shopping-cart'),
|
1604 |
+
'manage_options',
|
1605 |
+
'ecwid-advanced',
|
1606 |
+
'ecwid_advanced_settings_do_page'
|
1607 |
+
);
|
1608 |
+
}
|
1609 |
+
|
1610 |
+
add_submenu_page('', 'Ecwid debug', '', 'manage_options', 'ecwid-debug', 'ecwid_debug_do_page');
|
1611 |
+
}
|
1612 |
+
|
1613 |
+
function ecwid_add_meta_boxes()
|
1614 |
+
{
|
1615 |
+
add_meta_box( 'ecwid_nav_links', __( 'Store', 'ecwid-shopping-cart' ), 'ecwid_nav_menu_links', 'nav-menus', 'side' );
|
1616 |
+
}
|
1617 |
+
|
1618 |
+
function ecwid_nav_menu_items($items)
|
1619 |
+
{
|
1620 |
+
|
1621 |
+
if (is_admin()) {
|
1622 |
+
return $items;
|
1623 |
+
}
|
1624 |
+
|
1625 |
+
$categories = wp_cache_get('all_categories', 'ecwid');
|
1626 |
+
|
1627 |
+
if ( false == $categories ) {
|
1628 |
+
$callback = 'ecwidcatscallback';
|
1629 |
+
$result = EcwidPlatform::fetch_url(ecwid_get_categories_js_url($callback));
|
1630 |
+
$result = $result['data'];
|
1631 |
+
|
1632 |
+
$prefix_length = strlen($callback . '(');
|
1633 |
+
$suffix_length = strlen(');');
|
1634 |
+
$result = substr($result, $prefix_length, strlen($result) - $suffix_length - $prefix_length - 1);
|
1635 |
+
|
1636 |
+
$categories = json_decode($result);
|
1637 |
+
|
1638 |
+
$result = wp_cache_set('all_categories', $categories, 'ecwid', time() + 60 * 60 * 12);
|
1639 |
+
}
|
1640 |
+
|
1641 |
+
$counter = 0;
|
1642 |
+
foreach ($items as $key => $item) {
|
1643 |
+
|
1644 |
+
$items[$key]->menu_order += $counter;
|
1645 |
+
|
1646 |
+
if (in_array('ecwid-store-with-categories', $item->classes) && !empty($categories)) {
|
1647 |
+
foreach ($categories as $category) {
|
1648 |
+
$counter ++;
|
1649 |
+
$post = new stdClass;
|
1650 |
+
$post->ID = 0;
|
1651 |
+
$post->post_author = '';
|
1652 |
+
$post->post_date = '';
|
1653 |
+
$post->post_date_gmt = '';
|
1654 |
+
$post->post_password = '';
|
1655 |
+
$post->post_name = '';
|
1656 |
+
$post->post_type = $item->post_type;
|
1657 |
+
$post->post_status = 'publish';
|
1658 |
+
$post->to_ping = '';
|
1659 |
+
$post->pinged = '';
|
1660 |
+
$post->post_parent = 0;
|
1661 |
+
$post->menu_order = $item->menu_order + $counter;
|
1662 |
+
$post->menu_item_parent = $item->ID;
|
1663 |
+
$post->url = ecwid_get_store_page_url() . $category->link;
|
1664 |
+
$post->classes = '';
|
1665 |
+
$post->type = 'post';
|
1666 |
+
$post->db_id = 0;
|
1667 |
+
$post->title = $category->name;
|
1668 |
+
$post->target = '';
|
1669 |
+
$post->object = '';
|
1670 |
+
$post->attr_title = '';
|
1671 |
+
$post->description = '';
|
1672 |
+
$post->xfn = '';
|
1673 |
+
$post->object_id = 0;
|
1674 |
+
array_splice($items, $key + $counter, 0, array($post));
|
1675 |
+
}
|
1676 |
+
$counter++;
|
1677 |
+
}
|
1678 |
+
}
|
1679 |
+
return $items;
|
1680 |
+
}
|
1681 |
+
|
1682 |
+
function ecwid_reset_categories_cache()
|
1683 |
+
{
|
1684 |
+
wp_cache_delete('all_categories', 'ecwid');
|
1685 |
+
}
|
1686 |
+
|
1687 |
+
function ecwid_nav_menu_links()
|
1688 |
+
{
|
1689 |
+
$menu_links = array(
|
1690 |
+
'Cart' => array(
|
1691 |
+
'list-name' => __( 'Cart', 'ecwid-shopping-cart' ),
|
1692 |
+
'classes' => 'ecwid-cart',
|
1693 |
+
'url' => 'cart',
|
1694 |
+
'label' => __('Shopping cart', 'ecwid-shopping-cart')
|
1695 |
+
), 'Search' => array(
|
1696 |
+
'list-name' => __( 'Product Search', 'ecwid-shopping-cart' ),
|
1697 |
+
'classes' => 'ecwid-product-search',
|
1698 |
+
'url' => 'search',
|
1699 |
+
'label' => __('Product Search', 'ecwid-shopping-cart')
|
1700 |
+
), 'Account' => array(
|
1701 |
+
'list-name' => __( 'My Account' , 'ecwid-shopping-cart' ),
|
1702 |
+
'classes' => 'ecwid-my-account',
|
1703 |
+
'url' => 'accountSettings',
|
1704 |
+
'label' => __('My Account', 'ecwid-shopping-cart')
|
1705 |
+
), 'Store' => array(
|
1706 |
+
'list-name' => __( 'Store' , 'ecwid-shopping-cart' ),
|
1707 |
+
'classes' => 'ecwid-store',
|
1708 |
+
'url' => '',
|
1709 |
+
'label' => __('Store', 'ecwid-shopping-cart')
|
1710 |
+
), 'Store with categories' => array(
|
1711 |
+
'list-name' => __( 'Store with Categories Menu' , 'ecwid-shopping-cart' ),
|
1712 |
+
'classes' => 'ecwid-store-with-categories',
|
1713 |
+
'url' => '',
|
1714 |
+
'label' => __('Store', 'ecwid-shopping-cart')
|
1715 |
+
)
|
1716 |
+
);
|
1717 |
+
?>
|
1718 |
+
<div id="posttype-ecwid-links" class="posttypediv">
|
1719 |
+
<div id="tabs-panel-ecwid-links" class="tabs-panel tabs-panel-active">
|
1720 |
+
<ul id="ecwid-links-checklist" class="categorychecklist form-no-clear">
|
1721 |
+
<?php
|
1722 |
+
$i = -1;
|
1723 |
+
foreach ( $menu_links as $key => $value ) {
|
1724 |
+
?>
|
1725 |
+
<li>
|
1726 |
+
<label class="menu-item-title">
|
1727 |
+
<input type="checkbox" class="menu-item-checkbox" name="menu-item[<?php echo esc_attr( $i ); ?>][menu-item-object-id]" value="<?php echo esc_attr( $i ); ?>" /> <?php echo $value['list-name']; ?>
|
1728 |
+
</label>
|
1729 |
+
<input type="hidden" class="menu-item-type" name="menu-item[<?php echo esc_attr( $i ); ?>][menu-item-type]" value="custom" />
|
1730 |
+
<input type="hidden" class="menu-item-title" name="menu-item[<?php echo esc_attr( $i ); ?>][menu-item-title]" value="<?php echo esc_html(isset($value['label']) ? $value['label'] : $key ); ?>" />
|
1731 |
+
<input type="hidden" class="menu-item-url" name="menu-item[<?php echo esc_attr( $i ); ?>][menu-item-url]" value="<?php echo esc_url( ecwid_get_store_page_url() . '#!/~/' . $value['url']); ?>" />
|
1732 |
+
<input type="hidden" class="menu-item-classes" name="menu-item[<?php echo esc_attr( $i ); ?>][menu-item-classes]" value="<?php echo $value['classes']; ?>" />
|
1733 |
+
</li>
|
1734 |
+
<?php
|
1735 |
+
$i --;
|
1736 |
+
}
|
1737 |
+
?>
|
1738 |
+
</ul>
|
1739 |
+
</div>
|
1740 |
+
<p class="button-controls">
|
1741 |
+
<span class="list-controls">
|
1742 |
+
<a href="<?php echo admin_url( 'nav-menus.php?page-tab=all&selectall=1#posttype-ecwid-links' ); ?>" class="select-all"><?php _e( 'Select All' ); ?></a>
|
1743 |
+
</span>
|
1744 |
+
<span class="add-to-menu">
|
1745 |
+
<input type="submit" class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-post-type-menu-item" id="submit-posttype-ecwid-links">
|
1746 |
+
<span class="spinner"></span>
|
1747 |
+
</span>
|
1748 |
+
</p>
|
1749 |
+
</div>
|
1750 |
+
<?php
|
1751 |
+
}
|
1752 |
+
|
1753 |
+
function ecwid_admin_products_do_page() {
|
1754 |
+
ecwid_admin_do_page('products');
|
1755 |
+
}
|
1756 |
+
|
1757 |
+
function ecwid_admin_orders_do_page() {
|
1758 |
+
ecwid_admin_do_page('orders');
|
1759 |
+
}
|
1760 |
+
|
1761 |
+
function ecwid_register_admin_styles($hook_suffix) {
|
1762 |
+
|
1763 |
+
wp_enqueue_style('ecwid-admin-css', plugins_url('ecwid-shopping-cart/css/admin.css'), array(), get_option('ecwid_plugin_version'));
|
1764 |
+
wp_enqueue_style('ecwid-fonts-css', plugins_url('ecwid-shopping-cart/css/fonts.css'), array(), get_option('ecwid_plugin_version'));
|
1765 |
+
|
1766 |
+
if (version_compare(get_bloginfo('version'), '3.8-beta') > 0) {
|
1767 |
+
wp_enqueue_style('ecwid-admin38-css', plugins_url('ecwid-shopping-cart/css/admin.3.8.css'), array('ecwid-admin-css'), get_option('ecwid_plugin_version'), 'all');
|
1768 |
+
}
|
1769 |
+
|
1770 |
+
if (isset($_GET['page']) && $_GET['page'] == 'ecwid') {
|
1771 |
+
|
1772 |
+
if (get_option('ecwid_store_id') == ECWID_DEMO_STORE_ID) {
|
1773 |
+
// Open dashboard for the first time, ecwid store id is set to demo => need landing styles/scripts
|
1774 |
+
wp_enqueue_script('ecwid-landing-js', plugins_url('ecwid-shopping-cart/js/landing.js'), array(), get_option('ecwid_plugin_version'));
|
1775 |
+
wp_enqueue_style('ecwid-landing-css', plugins_url('ecwid-shopping-cart/css/landing.css'), array(), get_option('ecwid_plugin_version'), 'all');
|
1776 |
+
wp_enqueue_style('ecwid-landing-fonts', 'http://fonts.googleapis.com/css?family=Open+Sans:400,600,700,300', array(), get_option('ecwid_plugin_version'));
|
1777 |
+
} else {
|
1778 |
+
// We already connected and disconnected the store, no need for fancy landing
|
1779 |
+
wp_enqueue_script('ecwid-connect-js', plugins_url('ecwid-shopping-cart/js/dashboard.js'), array(), get_option('ecwid_plugin_version'));
|
1780 |
+
}
|
1781 |
+
}
|
1782 |
+
|
1783 |
+
wp_enqueue_style('ecwid-nav-menu', plugins_url('ecwid-shopping-cart/css/nav-menu.css'), array(), get_option('ecwid_plugin_version'));
|
1784 |
+
}
|
1785 |
+
|
1786 |
+
function ecwid_register_settings_styles($hook_suffix) {
|
1787 |
+
|
1788 |
+
if ( ($hook_suffix != 'post.php' && $hook_suffix != 'post-new.php') && strpos($hook_suffix, 'ecwid') === false) return;
|
1789 |
+
|
1790 |
+
wp_enqueue_style('ecwid-settings-css', plugins_url('ecwid-shopping-cart/css/settings.css'), array(), get_option('ecwid_plugin_version'), 'all');
|
1791 |
+
|
1792 |
+
if (version_compare(get_bloginfo('version'), '3.8-beta') > 0) {
|
1793 |
+
wp_enqueue_style('ecwid-settings38-css', plugins_url('ecwid-shopping-cart/css/settings.3.8.css'), array('ecwid-settings-css'), '', 'all');
|
1794 |
+
}}
|
1795 |
+
|
1796 |
+
function ecwid_plugin_actions($links) {
|
1797 |
+
$settings_link = "<a href='admin.php?page=ecwid'>"
|
1798 |
+
. (get_ecwid_store_id() == ECWID_DEMO_STORE_ID ? __('Setup', 'ecwid-shopping-cart') : __('Settings') )
|
1799 |
+
. "</a>";
|
1800 |
+
array_unshift( $links, $settings_link );
|
1801 |
+
|
1802 |
+
return $links;
|
1803 |
+
}
|
1804 |
+
|
1805 |
+
function ecwid_settings_api_init() {
|
1806 |
+
|
1807 |
+
if ( isset( $_POST['settings_section'] ) ) {
|
1808 |
+
switch ( $_POST['settings_section'] ) {
|
1809 |
+
case 'appearance':
|
1810 |
+
register_setting( 'ecwid_options_page', 'ecwid_enable_minicart' );
|
1811 |
+
|
1812 |
+
register_setting( 'ecwid_options_page', 'ecwid_show_categories' );
|
1813 |
+
register_setting( 'ecwid_options_page', 'ecwid_show_search_box' );
|
1814 |
+
|
1815 |
+
register_setting( 'ecwid_options_page', 'ecwid_pb_categoriesperrow', 'ecwid_abs_intval' );
|
1816 |
+
register_setting( 'ecwid_options_page', 'ecwid_pb_productspercolumn_grid', 'ecwid_abs_intval' );
|
1817 |
+
register_setting( 'ecwid_options_page', 'ecwid_pb_productsperrow_grid', 'ecwid_abs_intval' );
|
1818 |
+
register_setting( 'ecwid_options_page', 'ecwid_pb_productsperpage_list', 'ecwid_abs_intval' );
|
1819 |
+
register_setting( 'ecwid_options_page', 'ecwid_pb_productsperpage_table', 'ecwid_abs_intval' );
|
1820 |
+
register_setting( 'ecwid_options_page', 'ecwid_pb_defaultview' );
|
1821 |
+
register_setting( 'ecwid_options_page', 'ecwid_pb_searchview' );
|
1822 |
+
break;
|
1823 |
+
|
1824 |
+
case 'general':
|
1825 |
+
register_setting( 'ecwid_options_page', 'ecwid_store_id', 'ecwid_abs_intval' );
|
1826 |
+
if ( isset( $_POST['ecwid_store_id'] ) && intval( $_POST['ecwid_store_id'] ) == 0 ) {
|
1827 |
+
Ecwid_Message_Manager::reset_hidden_messages();
|
1828 |
+
}
|
1829 |
+
break;
|
1830 |
+
|
1831 |
+
case 'advanced':
|
1832 |
+
register_setting( 'ecwid_options_page', 'ecwid_default_category_id', 'ecwid_abs_intval' );
|
1833 |
+
register_setting( 'ecwid_options_page', 'ecwid_sso_secret_key' );
|
1834 |
+
register_setting( 'ecwid_options_page', 'ecwid_enable_advanced_theme_layout' );
|
1835 |
+
register_setting( 'ecwid_options_page', 'ecwid_use_chameleon' );
|
1836 |
+
register_setting( 'ecwid_options_page', 'ecwid_use_new_horizontal_categories' );
|
1837 |
+
break;
|
1838 |
+
}
|
1839 |
+
|
1840 |
+
if (get_option('ecwid_use_chameleon') && !@$_POST['ecwid_use_chameleon']) {
|
1841 |
+
Ecwid_Kissmetrics::record('chameleonSkinOff');
|
1842 |
+
} else if (!get_option('ecwid_use_chameleon') && @$_POST['ecwid_use_chameleon']) {
|
1843 |
+
Ecwid_Kissmetrics::record('chameleonSkinOn');
|
1844 |
+
}
|
1845 |
+
}
|
1846 |
+
|
1847 |
+
if (isset($_POST['ecwid_store_id'])) {
|
1848 |
+
update_option('ecwid_is_api_enabled', 'off');
|
1849 |
+
update_option('ecwid_api_check_time', 0);
|
1850 |
+
update_option('ecwid_last_oauth_fail_time', 0);
|
1851 |
+
}
|
1852 |
+
|
1853 |
+
}
|
1854 |
+
|
1855 |
+
function ecwid_common_admin_scripts() {
|
1856 |
+
|
1857 |
+
wp_enqueue_script('ecwid-admin-js', plugins_url('ecwid-shopping-cart/js/admin.js'), array(), get_option('ecwid_plugin_version'));
|
1858 |
+
wp_enqueue_script('ecwid-modernizr-js', plugins_url('ecwid-shopping-cart/js/modernizr.js'), array(), get_option('ecwid_plugin_version'));
|
1859 |
+
|
1860 |
+
if (function_exists('get_current_screen') ) {
|
1861 |
+
$screen = get_current_screen();
|
1862 |
+
|
1863 |
+
if ($screen->base == 'nav-menus') {
|
1864 |
+
wp_enqueue_script('ecwid-admin-menu-js', plugins_url('ecwid-shopping-cart/js/nav-menu.js'), array(), get_option('ecwid_plugin_version'));
|
1865 |
+
wp_localize_script('ecwid-admin-menu-js', 'ecwid_l10n', array(
|
1866 |
+
'store_page' => __('Store Page', 'ecwid-shopping-cart'),
|
1867 |
+
'reset_cats_cache' => __('Refresh categories list', 'ecwid-shopping-cart'),
|
1868 |
+
'cache_updated' => __('Done', 'ecwid-shopping-cart'),
|
1869 |
+
'reset_cache_message' => __('The store top-level categories are automatically added to this drop-down menu', 'ecwid-shopping-cart')
|
1870 |
+
));
|
1871 |
+
}
|
1872 |
+
|
1873 |
+
}
|
1874 |
+
|
1875 |
+
wp_localize_script('ecwid-admin-js', 'ecwid_l10n', array(
|
1876 |
+
'dashboard' => __('Dashboard', 'ecwid-shopping-cart'),
|
1877 |
+
'dashboard_url' => 'admin.php?page=ecwid',
|
1878 |
+
'products' => __('Products', 'ecwid-shopping-cart'),
|
1879 |
+
'products_url' => 'admin.php?page=ecwid-admin-products',
|
1880 |
+
'orders' => __('Orders', 'ecwid-shopping-cart'),
|
1881 |
+
'orders_url' => 'admin.php?page=ecwid-admin-orders'
|
1882 |
+
));
|
1883 |
+
|
1884 |
+
}
|
1885 |
+
|
1886 |
+
function ecwid_get_register_link()
|
1887 |
+
{
|
1888 |
+
$link = 'https://my.ecwid.com/cp/?source=wporg&partner=wporg%s#register';
|
1889 |
+
|
1890 |
+
global $current_user;
|
1891 |
+
get_currentuserinfo();
|
1892 |
+
|
1893 |
+
$user_data = '';
|
1894 |
+
if ($current_user->ID && function_exists('get_user_meta')) {
|
1895 |
+
$meta = get_user_meta($current_user->ID);
|
1896 |
+
|
1897 |
+
$data = array(
|
1898 |
+
'name' => get_user_meta($current_user->ID, 'first_name', true) . ' ' . get_user_meta($current_user->ID, 'last_name', true),
|
1899 |
+
'nickname' => $current_user->display_name,
|
1900 |
+
'email' => $current_user->user_email
|
1901 |
+
);
|
1902 |
+
|
1903 |
+
foreach ($data as $key => $value) {
|
1904 |
+
if (trim($value) == '') {
|
1905 |
+
unset($data[$key]);
|
1906 |
+
}
|
1907 |
+
}
|
1908 |
+
$user_data = '&' . build_query($data);
|
1909 |
+
}
|
1910 |
+
|
1911 |
+
$link = sprintf($link, $user_data);
|
1912 |
+
|
1913 |
+
return $link;
|
1914 |
+
}
|
1915 |
+
|
1916 |
+
function ecwid_general_settings_do_page() {
|
1917 |
+
|
1918 |
+
//Ecwid_Kissmetrics::record('wpPluginDeactivated');
|
1919 |
+
|
1920 |
+
$store_id = get_option( 'ecwid_store_id' );
|
1921 |
+
|
1922 |
+
$connection_error = isset( $_GET['connection_error'] );
|
1923 |
+
|
1924 |
+
if ( $store_id == ECWID_DEMO_STORE_ID ) {
|
1925 |
+
$no_oauth = @$_GET['oauth'] == 'no';
|
1926 |
+
if ( isset( $connection_error ) && $no_oauth ) {
|
1927 |
+
require_once ECWID_PLUGIN_DIR . '/templates/connect.php';
|
1928 |
+
} else {
|
1929 |
+
$register = ! $connection_error && ! isset( $_GET['connect'] ) && ! @$_COOKIE['ecwid_create_store_clicked'];
|
1930 |
+
|
1931 |
+
Ecwid_Kissmetrics::record( 'Welcome Page Viewed' );
|
1932 |
+
require_once( ECWID_PLUGIN_DIR . '/templates/landing.php' );
|
1933 |
+
}
|
1934 |
+
} else {
|
1935 |
+
global $ecwid_oauth;
|
1936 |
+
|
1937 |
+
if ( !$ecwid_oauth->has_scope( 'allow_sso' ) && !isset($_GET['reconnect']) ) {
|
1938 |
+
if ( ecwid_test_oauth(true) ) {
|
1939 |
+
require_once ECWID_PLUGIN_DIR . '/templates/reconnect-sso.php';
|
1940 |
+
} else {
|
1941 |
+
require_once ECWID_PLUGIN_DIR . 'templates/dashboard.php';
|
1942 |
+
}
|
1943 |
+
} else {
|
1944 |
+
|
1945 |
+
if ($connection_error || isset($_GET['reconnect'])) {
|
1946 |
+
if (isset($_GET['reason'])) switch ($_GET['reason']) {
|
1947 |
+
case '1': $reconnect_message = "Message 1"; break;
|
1948 |
+
case '2': $reconnect_message = "Message 2"; break;
|
1949 |
+
}
|
1950 |
+
|
1951 |
+
$scopes = '';
|
1952 |
+
|
1953 |
+
$connection_error = isset($_GET['connection_error']);
|
1954 |
+
|
1955 |
+
require_once ECWID_PLUGIN_DIR . '/templates/reconnect.php';
|
1956 |
+
} else {
|
1957 |
+
$time = time();
|
1958 |
+
$page = 'dashboard';
|
1959 |
+
$iframe_src = sprintf(
|
1960 |
+
'https://my.ecwid.com/api/v3/%s/sso?token=%s×tamp=%s&signature=%s&place=%s&inline&lang=%s',
|
1961 |
+
get_ecwid_store_id(),
|
1962 |
+
$ecwid_oauth->get_oauth_token(),
|
1963 |
+
$time,
|
1964 |
+
hash( 'sha256', get_ecwid_store_id() . $ecwid_oauth->get_oauth_token() . $time . Ecwid_OAuth::OAUTH_CLIENT_SECRET ),
|
1965 |
+
$page,
|
1966 |
+
substr( get_bloginfo( 'language' ), 0, 2 )
|
1967 |
+
);
|
1968 |
+
|
1969 |
+
$result = wp_remote_get( $iframe_src );
|
1970 |
+
|
1971 |
+
if ( is_array( $result ) && $result['response']['code'] == 200 ) {
|
1972 |
+
ecwid_admin_do_page( 'dashboard' );
|
1973 |
+
} else {
|
1974 |
+
require_once ECWID_PLUGIN_DIR . '/templates/reconnect-sso.php';
|
1975 |
+
}
|
1976 |
+
}
|
1977 |
+
}
|
1978 |
+
}
|
1979 |
+
}
|
1980 |
+
|
1981 |
+
function ecwid_admin_do_page( $page ) {
|
1982 |
+
|
1983 |
+
global $ecwid_oauth;
|
1984 |
+
|
1985 |
+
Ecwid_Message_Manager::reset_hidden_messages();
|
1986 |
+
if ($page == 'dashboard') {
|
1987 |
+
$show_reconnect = true;
|
1988 |
+
}
|
1989 |
+
|
1990 |
+
$time = time();
|
1991 |
+
|
1992 |
+
$iframe_src = sprintf(
|
1993 |
+
'https://my.ecwid.com/api/v3/%s/sso?token=%s×tamp=%s&signature=%s&place=%s&inline&lang=%s',
|
1994 |
+
get_ecwid_store_id(),
|
1995 |
+
$ecwid_oauth->get_oauth_token(),
|
1996 |
+
$time,
|
1997 |
+
hash('sha256', get_ecwid_store_id() . $ecwid_oauth->get_oauth_token(). $time . Ecwid_OAuth::OAUTH_CLIENT_SECRET),
|
1998 |
+
$page,
|
1999 |
+
substr(get_bloginfo('language'), 0, 2)
|
2000 |
+
);
|
2001 |
+
|
2002 |
+
$result = wp_remote_get($iframe_src);
|
2003 |
+
if ($result['response']['code'] != 200) {
|
2004 |
+
|
2005 |
+
if (ecwid_test_oauth(true)) {
|
2006 |
+
require_once ECWID_PLUGIN_DIR . 'templates/reconnect-sso.php';
|
2007 |
+
} else {
|
2008 |
+
require_once ECWID_PLUGIN_DIR . 'templates/dashboard.php';
|
2009 |
+
}
|
2010 |
+
} else {
|
2011 |
+
require_once ECWID_PLUGIN_DIR . '/templates/ecwid-admin.php';
|
2012 |
+
}
|
2013 |
+
}
|
2014 |
+
|
2015 |
+
function _ecwid_general_settings_do_page() {
|
2016 |
+
|
2017 |
+
$connection_error = isset( $_GET['connection_error'] );
|
2018 |
+
|
2019 |
+
$no_oauth = isset( $_GET['oauth'] ) && @$_GET['oauth'] == 'no';
|
2020 |
+
|
2021 |
+
if ( ! $no_oauth ) {
|
2022 |
+
$no_oauth = !ecwid_test_oauth();
|
2023 |
+
}
|
2024 |
+
|
2025 |
+
global $ecwid_oauth;
|
2026 |
+
|
2027 |
+
if ( get_option( 'ecwid_store_id' ) != ECWID_DEMO_STORE_ID && ! $ecwid_oauth->has_scope( 'allow_sso' ) && !isset($_GET['connection_error']) && !$no_oauth ) {
|
2028 |
+
require_once ECWID_PLUGIN_DIR . '/templates/reconnect-sso.php';
|
2029 |
+
|
2030 |
+
} else if (get_option('ecwid_store_id') == ECWID_DEMO_STORE_ID && !$no_oauth) {
|
2031 |
+
|
2032 |
+
$register = !$connection_error && !isset($_GET['connect']) && !@$_COOKIE['ecwid_create_store_clicked'];
|
2033 |
+
|
2034 |
+
require_once(ECWID_PLUGIN_DIR . '/templates/landing.php');
|
2035 |
+
} else if (isset($_GET['reconnect'])) {
|
2036 |
+
if (isset($_GET['reason'])) switch ($_GET['reason']) {
|
2037 |
+
case '1': $reconnect_message = "Message 1"; break;
|
2038 |
+
case '2': $reconnect_message = "Message 2"; break;
|
2039 |
+
}
|
2040 |
+
|
2041 |
+
$scopes = '';
|
2042 |
+
|
2043 |
+
$connection_error = isset($_GET['connection_error']);
|
2044 |
+
|
2045 |
+
require_once ECWID_PLUGIN_DIR . '/templates/reconnect.php';
|
2046 |
+
} else if (get_ecwid_store_id() == ECWID_DEMO_STORE_ID && ( isset($_GET['connection_error']) || $no_oauth ) ) {
|
2047 |
+
|
2048 |
+
require_once ECWID_PLUGIN_DIR . '/templates/connect.php';
|
2049 |
+
} else if ( get_option( 'ecwid_last_oauth_fail_time' ) > 0 ) {
|
2050 |
+
require_once ECWID_PLUGIN_DIR . '/templates/dashboard.php';
|
2051 |
+
} else {
|
2052 |
+
|
2053 |
+
ecwid_admin_do_page( 'dashboard' );
|
2054 |
+
}
|
2055 |
+
}
|
2056 |
+
|
2057 |
+
function ecwid_process_oauth_params() {
|
2058 |
+
|
2059 |
+
if (strtoupper($_SERVER['REQUEST_METHOD']) != 'GET' || !isset($_GET['page'])) {
|
2060 |
+
return;
|
2061 |
+
}
|
2062 |
+
|
2063 |
+
$is_dashboard = $_GET['page'] == 'ecwid';
|
2064 |
+
|
2065 |
+
if (!$is_dashboard) {
|
2066 |
+
return;
|
2067 |
+
}
|
2068 |
+
|
2069 |
+
global $ecwid_oauth;
|
2070 |
+
$is_connect = get_ecwid_store_id() != ECWID_DEMO_STORE_ID && !isset($_GET['connection_error']);
|
2071 |
+
|
2072 |
+
$is_reconnect = isset($_GET['reconnect']) && !isset($_GET['connection_error']);
|
2073 |
+
|
2074 |
+
if ($is_connect) {
|
2075 |
+
$ecwid_oauth->update_state( array( 'mode' => 'connect' ) );
|
2076 |
+
}
|
2077 |
+
|
2078 |
+
if ($is_reconnect) {
|
2079 |
+
$ecwid_oauth->update_state( array(
|
2080 |
+
'mode' => 'reconnect',
|
2081 |
+
// explicitly set to empty array if not available to reset current state
|
2082 |
+
'scope' => isset($_GET['scope']) ? $_GET['scope'] : array(),
|
2083 |
+
// explicitly set to empty string if not available to reset current state
|
2084 |
+
'return_url' => isset($_GET['return-url']) ? $_GET['return-url'] : '',
|
2085 |
+
'reason' => isset($_GET['reason']) ? $_GET['reason'] : ''
|
2086 |
+
));
|
2087 |
+
}
|
2088 |
+
}
|
2089 |
+
|
2090 |
+
function ecwid_admin_post_connect()
|
2091 |
+
{
|
2092 |
+
if (isset($_GET['force_store_id'])) {
|
2093 |
+
update_option('ecwid_store_id', $_GET['force_store_id']);
|
2094 |
+
update_option('ecwid_is_api_enabled', 'off');
|
2095 |
+
update_option('ecwid_api_check_time', 0);
|
2096 |
+
update_option('ecwid_last_oauth_fail_time', 1);
|
2097 |
+
wp_redirect('admin.php?page=ecwid');
|
2098 |
+
exit;
|
2099 |
+
}
|
2100 |
+
global $ecwid_oauth;
|
2101 |
+
|
2102 |
+
if (ecwid_test_oauth(true)) {
|
2103 |
+
|
2104 |
+
wp_redirect($ecwid_oauth->get_auth_dialog_url());
|
2105 |
+
} else if (!isset($_GET['reconnect'])) {
|
2106 |
+
wp_redirect('admin.php?page=ecwid&oauth=no&connection_error');
|
2107 |
+
} else {
|
2108 |
+
wp_redirect('admin.php?page=ecwid&reconnect&connection_error');
|
2109 |
+
}
|
2110 |
+
exit;
|
2111 |
+
}
|
2112 |
+
|
2113 |
+
function ecwid_test_oauth($force = false)
|
2114 |
+
{
|
2115 |
+
global $ecwid_oauth;
|
2116 |
+
|
2117 |
+
$last_fail = get_option('ecwid_last_oauth_fail_time');
|
2118 |
+
|
2119 |
+
if ( ($last_fail > 0 && $last_fail + 60*60*24 < time()) || $force) {
|
2120 |
+
|
2121 |
+
$result = $ecwid_oauth->test_post();
|
2122 |
+
|
2123 |
+
if ($result) {
|
2124 |
+
update_option('ecwid_last_oauth_fail_time', $last_fail = 0);
|
2125 |
+
} else {
|
2126 |
+
update_option('ecwid_last_oauth_fail_time', $last_fail = time());
|
2127 |
+
}
|
2128 |
+
}
|
2129 |
+
|
2130 |
+
return $last_fail == 0;
|
2131 |
+
}
|
2132 |
+
|
2133 |
+
function ecwid_get_categories_for_selector() {
|
2134 |
+
$categories = false;
|
2135 |
+
if (ecwid_is_paid_account()) {
|
2136 |
+
$api = ecwid_new_product_api();
|
2137 |
+
$categories = $api->get_all_categories();
|
2138 |
+
$by_id = array();
|
2139 |
+
|
2140 |
+
if (empty($categories)) return array();
|
2141 |
+
|
2142 |
+
if (is_array($categories)) {
|
2143 |
+
foreach ($categories as $key => $category) {
|
2144 |
+
$by_id[$category['id']] = $category;
|
2145 |
+
}
|
2146 |
+
}
|
2147 |
+
unset($categories);
|
2148 |
+
|
2149 |
+
foreach ($by_id as $id => $category) {
|
2150 |
+
$name_path = array($category['name']);
|
2151 |
+
while (is_array($category) && isset($category['parentId'])) {
|
2152 |
+
$name = '';
|
2153 |
+
if (isset($by_id[$category['parentId']])) {
|
2154 |
+
$name = $by_id[$category['parentId']]['name'];
|
2155 |
+
} else {
|
2156 |
+
$name = __('Hidden category', 'ecwid-shopping-cart');
|
2157 |
+
}
|
2158 |
+
$name_path[] = $name;
|
2159 |
+
$category = isset($by_id[$category['parentId']]) ? $by_id[$category['parentId']] : false;
|
2160 |
+
}
|
2161 |
+
|
2162 |
+
$by_id[$id]['path'] = array_reverse($name_path);
|
2163 |
+
$by_id[$id]['path_str'] = implode(" > ", $by_id[$id]['path']);
|
2164 |
+
}
|
2165 |
+
|
2166 |
+
function sort_by_path($a, $b) {
|
2167 |
+
return strcmp($a['path_str'], $b['path_str']);
|
2168 |
+
}
|
2169 |
+
|
2170 |
+
uasort($by_id, 'sort_by_path');
|
2171 |
+
|
2172 |
+
$categories = $by_id;
|
2173 |
+
}
|
2174 |
+
|
2175 |
+
return $categories;
|
2176 |
+
}
|
2177 |
+
|
2178 |
+
function ecwid_advanced_settings_do_page() {
|
2179 |
+
$categories = ecwid_get_categories_for_selector();
|
2180 |
+
|
2181 |
+
require_once ECWID_PLUGIN_DIR . '/templates/advanced-settings.php';
|
2182 |
+
}
|
2183 |
+
|
2184 |
+
function ecwid_appearance_settings_do_page() {
|
2185 |
+
|
2186 |
+
wp_register_script('ecwid-appearance-js', plugins_url('ecwid-shopping-cart/js/appearance.js'), array(), get_option('ecwid_plugin_version'), true);
|
2187 |
+
wp_enqueue_script('ecwid-appearance-js');
|
2188 |
+
|
2189 |
+
$disabled = false;
|
2190 |
+
if (!empty($ecwid_page_id) && ($ecwid_page_id > 0)) {
|
2191 |
+
$_tmp_page = get_post($ecwid_page_id);
|
2192 |
+
$content = $_tmp_page->post_content;
|
2193 |
+
if ( (strpos($content, "[ecwid_productbrowser]") === false) && (strpos($content, "xProductBrowser") !== false) )
|
2194 |
+
$disabled = true;
|
2195 |
+
}
|
2196 |
+
// $disabled_str is used in appearance settings template
|
2197 |
+
if ($disabled)
|
2198 |
+
$disabled_str = 'disabled = "disabled"';
|
2199 |
+
else
|
2200 |
+
$disabled_str = "";
|
2201 |
+
|
2202 |
+
require_once ECWID_PLUGIN_DIR . 'templates/appearance-settings.php';
|
2203 |
+
}
|
2204 |
+
|
2205 |
+
function ecwid_debug_do_page() {
|
2206 |
+
|
2207 |
+
if (ecwid_is_api_enabled()) {
|
2208 |
+
$remote_get_results = wp_remote_get( 'http://app.ecwid.com/api/v1/' . get_ecwid_store_id() . '/profile' );
|
2209 |
+
|
2210 |
+
global $ecwid_oauth;
|
2211 |
+
$api_v3_profile_results = wp_remote_get( 'https://app.ecwid.com/api/v3/' . get_ecwid_store_id() . '/profile?token=' . $ecwid_oauth->get_oauth_token() );
|
2212 |
+
}
|
2213 |
+
|
2214 |
+
require_once ECWID_PLUGIN_DIR . 'templates/debug.php';
|
2215 |
+
}
|
2216 |
+
|
2217 |
+
function get_ecwid_store_id() {
|
2218 |
+
static $store_id = null;
|
2219 |
+
if (is_null($store_id)) {
|
2220 |
+
$store_id = get_option('ecwid_store_id');
|
2221 |
+
if (empty($store_id))
|
2222 |
+
$store_id = ECWID_DEMO_STORE_ID;
|
2223 |
+
}
|
2224 |
+
|
2225 |
+
return $store_id;
|
2226 |
+
}
|
2227 |
+
|
2228 |
+
function ecwid_dashboard_widget_function() {
|
2229 |
+
require_once ECWID_PLUGIN_DIR . 'templates/wp-dashboard-widget.php';
|
2230 |
+
}
|
2231 |
+
|
2232 |
+
function ecwid_add_dashboard_widgets() {
|
2233 |
+
if (current_user_can('administrator')) {
|
2234 |
+
wp_add_dashboard_widget('ecwid_dashboard_widget', __('Recommendations for Your Online Store', 'ecwid-shopping-cart'), 'ecwid_dashboard_widget_function');
|
2235 |
+
}
|
2236 |
+
}
|
2237 |
+
|
2238 |
+
function ecwid_save_post($post_id)
|
2239 |
+
{
|
2240 |
+
// If primary or auto store page gets updated
|
2241 |
+
if ($post_id == get_option('ecwid_store_page_id') || $post_id == get_option('ecwid_store_page_id_auto')) {
|
2242 |
+
$new_status = get_post_status($post_id);
|
2243 |
+
|
2244 |
+
// and the update either disables the page or removes product browser
|
2245 |
+
if (!in_array($new_status, array('publish', 'private')) || !ecwid_page_has_productbrowser($post_id)) {
|
2246 |
+
|
2247 |
+
// then look for another enabled page that has a product browser in it
|
2248 |
+
$pages = get_pages(array('post_status' => 'publish,private'));
|
2249 |
+
|
2250 |
+
foreach ($pages as $page) {
|
2251 |
+
if (ecwid_page_has_productbrowser($page->ID)) {
|
2252 |
+
update_option('ecwid_store_page_id_auto', $page->ID);
|
2253 |
+
return;
|
2254 |
+
}
|
2255 |
+
}
|
2256 |
+
}
|
2257 |
+
}
|
2258 |
+
|
2259 |
+
// if there is no current store page and this new page has a product browser
|
2260 |
+
if (ecwid_page_has_productbrowser($post_id) && !ecwid_get_current_store_page_id()) {
|
2261 |
+
// then this page becomes a new store page
|
2262 |
+
update_option('ecwid_store_page_id_auto', $post_id);
|
2263 |
+
}
|
2264 |
+
}
|
2265 |
+
|
2266 |
+
function ecwid_get_current_store_page_id()
|
2267 |
+
{
|
2268 |
+
static $page_id = null;
|
2269 |
+
|
2270 |
+
if (is_null($page_id)) {
|
2271 |
+
$page_id = false;
|
2272 |
+
foreach(array('ecwid_store_page_id', 'ecwid_store_page_id_auto') as $option) {
|
2273 |
+
$id = get_option($option);
|
2274 |
+
if ($id) {
|
2275 |
+
$status = get_post_status($id);
|
2276 |
+
|
2277 |
+
if ($status == 'publish' || $status == 'private') {
|
2278 |
+
$page_id = $id;
|
2279 |
+
break;
|
2280 |
+
}
|
2281 |
+
}
|
2282 |
+
}
|
2283 |
+
}
|
2284 |
+
|
2285 |
+
return $page_id;
|
2286 |
+
}
|
2287 |
+
|
2288 |
+
function ecwid_get_store_page_url()
|
2289 |
+
{
|
2290 |
+
static $link = null;
|
2291 |
+
|
2292 |
+
if (in_the_loop() && is_null($link)) {
|
2293 |
+
$link = get_page_link(ecwid_get_current_store_page_id());
|
2294 |
+
}
|
2295 |
+
|
2296 |
+
return $link;
|
2297 |
+
}
|
2298 |
+
|
2299 |
+
function ecwid_is_store_page_available()
|
2300 |
+
{
|
2301 |
+
return ecwid_get_current_store_page_id() != false;
|
2302 |
+
}
|
2303 |
+
|
2304 |
+
function ecwid_get_product_url($product)
|
2305 |
+
{
|
2306 |
+
return ecwid_get_entity_url($product, 'p');
|
2307 |
+
}
|
2308 |
+
|
2309 |
+
function ecwid_get_category_url($category)
|
2310 |
+
{
|
2311 |
+
return ecwid_get_entity_url($category, 'c');
|
2312 |
+
}
|
2313 |
+
|
2314 |
+
function ecwid_get_entity_url($entity, $type) {
|
2315 |
+
|
2316 |
+
$link = ecwid_get_store_page_url();
|
2317 |
+
|
2318 |
+
if (is_numeric($entity)) {
|
2319 |
+
return $link . '#!/' . $type . '/' . $entity;
|
2320 |
+
} elseif (is_array($entity) && isset($entity['url'])) {
|
2321 |
+
$link .= substr($entity['url'], strpos($entity['url'], '#'));
|
2322 |
+
}
|
2323 |
+
|
2324 |
+
return $link;
|
2325 |
+
|
2326 |
+
}
|
2327 |
+
|
2328 |
+
function ecwid_get_product_browser_url_script()
|
2329 |
+
{
|
2330 |
+
$str = '';
|
2331 |
+
if (ecwid_is_store_page_available()) {
|
2332 |
+
$url = ecwid_get_store_page_url();
|
2333 |
+
|
2334 |
+
$str = '<script data-cfasync="false" type="text/javascript">var ecwid_ProductBrowserURL = "' . esc_js($url) . '";</script>';
|
2335 |
+
}
|
2336 |
+
|
2337 |
+
return $str;
|
2338 |
+
|
2339 |
+
}
|
2340 |
+
|
2341 |
+
class EcwidBadgeWidget extends WP_Widget {
|
2342 |
+
|
2343 |
+
var $url_template = "https://dj925myfyz5v.cloudfront.net/badges/%s.png";
|
2344 |
+
var $available_badges;
|
2345 |
+
|
2346 |
+
function __construct() {
|
2347 |
+
$widget_ops = array('classname' => 'widget_ecwid_badge', 'description' => __("Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid.", 'ecwid-shopping-cart') );
|
2348 |
+
parent::__construct('ecwidbadge', __('Ecwid Badge', 'ecwid-shopping-cart'), $widget_ops);
|
2349 |
+
|
2350 |
+
$this->available_badges = array(
|
2351 |
+
'ecwid-shopping-cart-widget-5' => array (
|
2352 |
+
'name' => 'ecwid-shopping-cart-widget-5',
|
2353 |
+
'width' => '73',
|
2354 |
+
'height' => '20',
|
2355 |
+
'alt' => __('Ecwid shopping cart widget', 'ecwid-shopping-cart')
|
2356 |
+
),
|
2357 |
+
'ecwid-shopping-cart-widget-6' => array (
|
2358 |
+
'name' => 'ecwid-shopping-cart-widget-6',
|
2359 |
+
'width' => '73',
|
2360 |
+
'height' => '20',
|
2361 |
+
'alt' => __('Ecwid shopping cart widget', 'ecwid-shopping-cart')
|
2362 |
+
),
|
2363 |
+
'ecwid-ecommerce-solution-2' => array (
|
2364 |
+
'name' => 'ecwid-ecommerce-solution-2',
|
2365 |
+
'width' => '165',
|
2366 |
+
'height' => '58',
|
2367 |
+
'alt' => __('Ecwid ecommerce solution', 'ecwid-shopping-cart')
|
2368 |
+
),
|
2369 |
+
'ecwid-free-shopping-cart-2' => array (
|
2370 |
+
'name' => 'ecwid-free-shopping-cart-2',
|
2371 |
+
'width' => '175',
|
2372 |
+
'height' => '58',
|
2373 |
+
'alt' => __('Ecwid free shopping cart', 'ecwid-shopping-cart')
|
2374 |
+
),
|
2375 |
+
'ecwid-shopping-cart-3' => array (
|
2376 |
+
'name' => 'ecwid-shopping-cart-3',
|
2377 |
+
'width' => '165',
|
2378 |
+
'height' => '56',
|
2379 |
+
'alt' => __('Ecwid shopping cart', 'ecwid-shopping-cart')
|
2380 |
+
),
|
2381 |
+
'ecwid-ecommerce-widgets-3' => array (
|
2382 |
+
'name' => 'ecwid-ecommerce-widgets-3',
|
2383 |
+
'width' => '165',
|
2384 |
+
'height' => '58',
|
2385 |
+
'alt' => __('Ecwid e-commerce widgets', 'ecwid-shopping-cart')
|
2386 |
+
),
|
2387 |
+
'ecwid-shopping-cart-3' => array (
|
2388 |
+
'name' => 'ecwid-shopping-cart-3',
|
2389 |
+
'width' => '165',
|
2390 |
+
'height' => '56',
|
2391 |
+
'alt' => __('Ecwid shopping cart', 'ecwid-shopping-cart')
|
2392 |
+
),
|
2393 |
+
'ecwid-ecommerce-widgets-3' => array (
|
2394 |
+
'name' => 'ecwid-ecommerce-widgets-3',
|
2395 |
+
'width' => '165',
|
2396 |
+
'height' => '58',
|
2397 |
+
'alt' => __('Ecwid e-commerce widgets', 'ecwid-shopping-cart')
|
2398 |
+
),
|
2399 |
+
'ecwid-ecommerce-solution-3' => array (
|
2400 |
+
'name' => 'ecwid-ecommerce-solution-3',
|
2401 |
+
'width' => '165',
|
2402 |
+
'height' => '58',
|
2403 |
+
'alt' => __('Ecwid ecommerce solution', 'ecwid-shopping-cart')
|
2404 |
+
),
|
2405 |
+
'ecwid-free-shopping-cart-3' => array (
|
2406 |
+
'name' => 'ecwid-free-shopping-cart-3',
|
2407 |
+
'width' => '175',
|
2408 |
+
'height' => '58',
|
2409 |
+
'alt' => __('Ecwid free shopping cart', 'ecwid-shopping-cart')
|
2410 |
+
)
|
2411 |
+
);
|
2412 |
+
}
|
2413 |
+
|
2414 |
+
function widget($args, $instance)
|
2415 |
+
{
|
2416 |
+
extract($args);
|
2417 |
+
|
2418 |
+
if (!isset($instance['badge_id']) || !array_key_exists($instance['badge_id'], $this->available_badges)) {
|
2419 |
+
return;
|
2420 |
+
}
|
2421 |
+
$badge = $this->available_badges[$instance['badge_id']];
|
2422 |
+
$url = sprintf($this->url_template, $badge['name']);
|
2423 |
+
|
2424 |
+
echo $before_widget;
|
2425 |
+
|
2426 |
+
echo <<<HTML
|
2427 |
+
<div>
|
2428 |
+
<a target="_blank" rel="nofollow" href="http://www.ecwid.com?source=wporg-badge">
|
2429 |
+
<img src="$url" width="$badge[width]" height="$badge[height]" alt="$badge[alt]" />
|
2430 |
+
</a>
|
2431 |
+
</div>
|
2432 |
+
HTML;
|
2433 |
+
|
2434 |
+
echo $after_widget;
|
2435 |
+
}
|
2436 |
+
|
2437 |
+
function update($new_instance, $old_instance){
|
2438 |
+
$instance = $old_instance;
|
2439 |
+
$instance['badge_id'] =
|
2440 |
+
array_key_exists($new_instance['badge_id'], $this->available_badges)
|
2441 |
+
? $new_instance['badge_id']
|
2442 |
+
: '';
|
2443 |
+
|
2444 |
+
return $instance;
|
2445 |
+
}
|
2446 |
+
|
2447 |
+
function form($instance) {
|
2448 |
+
$instance = wp_parse_args( (array) $instance, array('badge_id' => 'ecwid-shopping-cart-widget-5') );
|
2449 |
+
|
2450 |
+
foreach ($this->available_badges as $id => $widget) {
|
2451 |
+
$element_id = "badge-$id";
|
2452 |
+
$name = $this->get_field_name('badge_id');
|
2453 |
+
$checked = '';
|
2454 |
+
if (isset($instance['badge_id']) && $instance['badge_id'] == $id) {
|
2455 |
+
$checked = 'checked="checked"';
|
2456 |
+
}
|
2457 |
+
$url = sprintf($this->url_template, $id);
|
2458 |
+
$content = <<<HTML
|
2459 |
+
<label class="ecwid-badge">
|
2460 |
+
<div class="checkbox">
|
2461 |
+
<input name="$name" type="radio" value="$widget[name]"$checked/>
|
2462 |
+
</div>
|
2463 |
+
<div class="image">
|
2464 |
+
<img src="$url" width="$widget[width]" height="$widget[height]" alt="$widget[alt]" />
|
2465 |
+
</div>
|
2466 |
+
</label>
|
2467 |
+
HTML;
|
2468 |
+
echo $content;
|
2469 |
+
}
|
2470 |
+
}
|
2471 |
+
}
|
2472 |
+
|
2473 |
+
class EcwidMinicartWidget extends WP_Widget {
|
2474 |
+
|
2475 |
+
function __construct() {
|
2476 |
+
$widget_ops = array('classname' => 'widget_ecwid_minicart', 'description' => __("Adds a cart widget for customer to see the products they added to the cart.", 'ecwid-shopping-cart') );
|
2477 |
+
parent::__construct('ecwidminicart', __('Shopping Cart', 'ecwid-shopping-cart'), $widget_ops);
|
2478 |
+
|
2479 |
+
}
|
2480 |
+
|
2481 |
+
function widget($args, $instance) {
|
2482 |
+
extract($args);
|
2483 |
+
$title = apply_filters('widget_title', empty($instance['title']) ? ' ' : $instance['title']);
|
2484 |
+
|
2485 |
+
echo $before_widget;
|
2486 |
+
|
2487 |
+
if ( $title )
|
2488 |
+
echo $before_title . $title . $after_title;
|
2489 |
+
|
2490 |
+
echo '<div>';
|
2491 |
+
|
2492 |
+
echo '<!-- noptimize -->';
|
2493 |
+
echo ecwid_get_scriptjs_code();
|
2494 |
+
echo ecwid_get_product_browser_url_script();
|
2495 |
+
echo '<script data-cfasync="false" type="text/javascript"> xMinicart("style="); </script>';
|
2496 |
+
|
2497 |
+
echo '<!-- /noptimize -->';
|
2498 |
+
echo '</div>';
|
2499 |
+
|
2500 |
+
echo $after_widget;
|
2501 |
+
}
|
2502 |
+
|
2503 |
+
function update($new_instance, $old_instance){
|
2504 |
+
$instance = $old_instance;
|
2505 |
+
$instance['title'] = strip_tags(stripslashes($new_instance['title']));
|
2506 |
+
|
2507 |
+
return $instance;
|
2508 |
+
}
|
2509 |
+
|
2510 |
+
function form($instance){
|
2511 |
+
$instance = wp_parse_args( (array) $instance, array('title'=>'') );
|
2512 |
+
|
2513 |
+
$title = htmlspecialchars($instance['title']);
|
2514 |
+
|
2515 |
+
echo '<p><label for="' . $this->get_field_name('title') . '">' . __('Title:') . ' <input style="width:100%;" id="' . $this->get_field_id('title') . '" name="' . $this->get_field_name('title') . '" type="text" value="' . $title . '" /></label></p>';
|
2516 |
+
}
|
2517 |
+
|
2518 |
+
}
|
2519 |
+
|
2520 |
+
class EcwidMinicartMiniViewWidget extends WP_Widget {
|
2521 |
+
|
2522 |
+
function __construct() {
|
2523 |
+
$widget_ops = array('classname' => 'widget_ecwid_minicart_miniview', 'description' => __("Adds a compact cart widget for customer to see the products they added to the cart.", 'ecwid-shopping-cart') );
|
2524 |
+
parent::__construct('ecwidminicart_miniview', __('Shopping Cart (Mini)', 'ecwid-shopping-cart'), $widget_ops);
|
2525 |
+
}
|
2526 |
+
|
2527 |
+
function widget($args, $instance) {
|
2528 |
+
extract($args);
|
2529 |
+
$title = apply_filters('widget_title', empty($instance['title']) ? ' ' : $instance['title']);
|
2530 |
+
|
2531 |
+
echo $before_widget;
|
2532 |
+
|
2533 |
+
if ( $title )
|
2534 |
+
echo $before_title . $title . $after_title;
|
2535 |
+
|
2536 |
+
|
2537 |
+
echo '<div>';
|
2538 |
+
echo '<!-- noptimize -->';
|
2539 |
+
|
2540 |
+
echo ecwid_get_scriptjs_code();
|
2541 |
+
echo ecwid_get_product_browser_url_script();
|
2542 |
+
echo '<script data-cfasync="false" type="text/javascript"> xMinicart("style=left:10px","layout=Mini"); </script>';
|
2543 |
+
|
2544 |
+
echo '<!-- /noptimize -->';
|
2545 |
+
echo '</div>';
|
2546 |
+
|
2547 |
+
echo $after_widget;
|
2548 |
+
}
|
2549 |
+
|
2550 |
+
function update($new_instance, $old_instance){
|
2551 |
+
$instance = $old_instance;
|
2552 |
+
$instance['title'] = strip_tags(stripslashes($new_instance['title']));
|
2553 |
+
|
2554 |
+
return $instance;
|
2555 |
+
}
|
2556 |
+
|
2557 |
+
function form($instance){
|
2558 |
+
$instance = wp_parse_args( (array) $instance, array('title'=>'') );
|
2559 |
+
|
2560 |
+
$title = htmlspecialchars($instance['title']);
|
2561 |
+
|
2562 |
+
echo '<p><label for="' . $this->get_field_name('title') . '">' . __('Title:') . ' <input style="width:100%;" id="' . $this->get_field_id('title') . '" name="' . $this->get_field_name('title') . '" type="text" value="' . $title . '" /></label></p>';
|
2563 |
+
}
|
2564 |
+
|
2565 |
+
}
|
2566 |
+
|
2567 |
+
|
2568 |
+
class EcwidSearchWidget extends WP_Widget {
|
2569 |
+
|
2570 |
+
function __construct() {
|
2571 |
+
$widget_ops = array('classname' => 'widget_ecwid_search', 'description' => __("Displays a simple search box for your customers to find a product in your storex", 'ecwid-shopping-cart'));
|
2572 |
+
parent::__construct('ecwidsearch', __('Product Search', 'ecwid-shopping-cart'), $widget_ops);
|
2573 |
+
}
|
2574 |
+
|
2575 |
+
function widget($args, $instance) {
|
2576 |
+
extract($args);
|
2577 |
+
$title = apply_filters('widget_title', empty($instance['title']) ? ' ' : $instance['title']);
|
2578 |
+
|
2579 |
+
echo $before_widget;
|
2580 |
+
|
2581 |
+
if ( $title )
|
2582 |
+
echo $before_title . $title . $after_title;
|
2583 |
+
|
2584 |
+
echo '<div>';
|
2585 |
+
echo '<!-- noptimize -->';
|
2586 |
+
|
2587 |
+
echo ecwid_get_scriptjs_code();
|
2588 |
+
echo ecwid_get_product_browser_url_script();
|
2589 |
+
echo '<script data-cfasync="false" type="text/javascript"> xSearchPanel("style="); </script>';
|
2590 |
+
|
2591 |
+
echo '<!-- /noptimize -->';
|
2592 |
+
echo '</div>';
|
2593 |
+
|
2594 |
+
echo $after_widget;
|
2595 |
+
}
|
2596 |
+
|
2597 |
+
function update($new_instance, $old_instance){
|
2598 |
+
$instance = $old_instance;
|
2599 |
+
$instance['title'] = strip_tags(stripslashes($new_instance['title']));
|
2600 |
+
|
2601 |
+
return $instance;
|
2602 |
+
}
|
2603 |
+
|
2604 |
+
function form($instance){
|
2605 |
+
$instance = wp_parse_args( (array) $instance, array('title'=>'') );
|
2606 |
+
|
2607 |
+
$title = htmlspecialchars($instance['title']);
|
2608 |
+
|
2609 |
+
echo '<p><label for="' . $this->get_field_name('title') . '">' . __('Title:') . ' <input style="width:100%;" id="' . $this->get_field_id('title') . '" name="' . $this->get_field_name('title') . '" type="text" value="' . $title . '" /></label></p>';
|
2610 |
+
}
|
2611 |
+
|
2612 |
+
}
|
2613 |
+
|
2614 |
+
class EcwidVCategoriesWidget extends WP_Widget {
|
2615 |
+
|
2616 |
+
function __construct() {
|
2617 |
+
$widget_ops = array('classname' => 'widget_ecwid_vcategories', 'description' => __('Adds vertical categories block to let the customer navigate your store.', 'ecwid-shopping-cart'));
|
2618 |
+
parent::__construct('ecwidvcategories', __('Store Categories', 'ecwid-shopping-cart'), $widget_ops);
|
2619 |
+
}
|
2620 |
+
|
2621 |
+
function widget($args, $instance) {
|
2622 |
+
extract($args);
|
2623 |
+
$title = apply_filters('widget_title', empty($instance['title']) ? ' ' : $instance['title']);
|
2624 |
+
|
2625 |
+
echo $before_widget;
|
2626 |
+
|
2627 |
+
if ( $title )
|
2628 |
+
echo $before_title . $title . $after_title;
|
2629 |
+
|
2630 |
+
echo '<div>';
|
2631 |
+
echo '<!-- noptimize -->';
|
2632 |
+
|
2633 |
+
echo ecwid_get_scriptjs_code();
|
2634 |
+
echo ecwid_get_product_browser_url_script();
|
2635 |
+
echo '<script data-cfasync="false" type="text/javascript"> xVCategories("style="); </script>';
|
2636 |
+
|
2637 |
+
echo '<!-- /noptimize -->';
|
2638 |
+
echo '</div>';
|
2639 |
+
|
2640 |
+
echo $after_widget;
|
2641 |
+
}
|
2642 |
+
|
2643 |
+
function update($new_instance, $old_instance){
|
2644 |
+
$instance = $old_instance;
|
2645 |
+
$instance['title'] = strip_tags(stripslashes($new_instance['title']));
|
2646 |
+
|
2647 |
+
return $instance;
|
2648 |
+
}
|
2649 |
+
|
2650 |
+
function form($instance){
|
2651 |
+
$instance = wp_parse_args( (array) $instance, array('title'=>'') );
|
2652 |
+
|
2653 |
+
$title = htmlspecialchars($instance['title']);
|
2654 |
+
|
2655 |
+
echo '<p><label for="' . $this->get_field_name('title') . '">' . __('Title:') . ' <input style="width:100%;" id="' . $this->get_field_id('title') . '" name="' . $this->get_field_name('title') . '" type="text" value="' . $title . '" /></label></p>';
|
2656 |
+
}
|
2657 |
+
|
2658 |
+
}
|
2659 |
+
|
2660 |
+
class EcwidStoreLinkWidget extends WP_Widget {
|
2661 |
+
|
2662 |
+
function __construct() {
|
2663 |
+
$widget_ops = array('classname' => 'widget_ecwid_store_link', 'description' => __('Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site.', 'ecwid-shopping-cart'));
|
2664 |
+
parent::__construct('ecwidstorelink', __('Store Page Link', 'ecwid-shopping-cart'), $widget_ops);
|
2665 |
+
}
|
2666 |
+
|
2667 |
+
function widget($args, $instance) {
|
2668 |
+
extract($args);
|
2669 |
+
echo $before_widget;
|
2670 |
+
|
2671 |
+
echo '<div>';
|
2672 |
+
|
2673 |
+
echo '<a href="' . ecwid_get_store_page_url() . '">' . $instance['label'] . '</a>';
|
2674 |
+
echo '</div>';
|
2675 |
+
|
2676 |
+
echo $after_widget;
|
2677 |
+
}
|
2678 |
+
|
2679 |
+
function update($new_instance, $old_instance){
|
2680 |
+
$instance = $old_instance;
|
2681 |
+
$instance['label'] = strip_tags(stripslashes($new_instance['label']));
|
2682 |
+
|
2683 |
+
return $instance;
|
2684 |
+
}
|
2685 |
+
|
2686 |
+
function form($instance){
|
2687 |
+
$instance = wp_parse_args( (array) $instance, array( 'label' => __('Shop', 'ecwid-shopping-cart') ) );
|
2688 |
+
|
2689 |
+
$label = htmlspecialchars($instance['label']);
|
2690 |
+
|
2691 |
+
echo '<p><label for="' . $this->get_field_name('label') . '">' . __('Text') . ': <input style="width:100%;" id="' . $this->get_field_id('label') . '" name="' . $this->get_field_name('label') . '" type="text" value="' . $label . '" /></label></p>';
|
2692 |
+
}
|
2693 |
+
|
2694 |
+
}
|
2695 |
+
|
2696 |
+
class EcwidRecentlyViewedWidget extends WP_Widget {
|
2697 |
+
|
2698 |
+
var $max = 10;
|
2699 |
+
var $min = 1;
|
2700 |
+
var $default = 3;
|
2701 |
+
function __construct() {
|
2702 |
+
$widget_ops = array('classname' => 'widget_ecwid_recently_viewed', 'description' => __('Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop.', 'ecwid-shopping-cart'));
|
2703 |
+
parent::__construct('ecwidrecentlyviewed', __('Recently Viewed Products', 'ecwid-shopping-cart'), $widget_ops);
|
2704 |
+
$recently_viewed = json_decode(stripslashes(@$_COOKIE['ecwid-shopping-cart-recently-viewed']));
|
2705 |
+
|
2706 |
+
if ($recently_viewed && $recently_viewed->store_id != get_ecwid_store_id() && !is_admin()) {
|
2707 |
+
setcookie('ecwid-shopping-cart-recently-viewed', null, strtotime('-1 day'));
|
2708 |
+
}
|
2709 |
+
}
|
2710 |
+
|
2711 |
+
function widget($args, $instance) {
|
2712 |
+
|
2713 |
+
wp_enqueue_script('ecwid-recently-viewed-js', plugins_url('ecwid-shopping-cart/js/recently-viewed.js'), array('jquery', 'utils', 'ecwid-products-list-js'), get_option('ecwid_plugin_version'));
|
2714 |
+
wp_enqueue_style('ecwid-products-list-css');
|
2715 |
+
wp_enqueue_style('ecwid-recently-viewed-css', plugins_url('ecwid-shopping-cart/css/recently-viewed.css'), array(), get_option('ecwid_plugin_version'));
|
2716 |
+
extract($args);
|
2717 |
+
|
2718 |
+
$title = apply_filters('widget_title', empty($instance['title']) ? ' ' : $instance['title']);
|
2719 |
+
|
2720 |
+
echo $before_widget;
|
2721 |
+
|
2722 |
+
if ( $title )
|
2723 |
+
echo $before_title . $title . $after_title;
|
2724 |
+
|
2725 |
+
echo '<!-- noptimize -->' . ecwid_get_scriptjs_code() . '<!-- /noptimize -->';
|
2726 |
+
|
2727 |
+
$recently_viewed = false;
|
2728 |
+
if (isset($_COOKIE['ecwid-shopping-cart-recently-viewed'])) {
|
2729 |
+
$recently_viewed = json_decode(@$_COOKIE['ecwid-shopping-cart-recently-viewed']);
|
2730 |
+
}
|
2731 |
+
$recently_viewed = json_decode(stripslashes(@$_COOKIE['ecwid-shopping-cart-recently-viewed']));
|
2732 |
+
|
2733 |
+
if ($recently_viewed && $recently_viewed->store_id != get_ecwid_store_id()) {
|
2734 |
+
$recently_viewed = null;
|
2735 |
+
}
|
2736 |
+
|
2737 |
+
echo '<div class="ecwid-recently-viewed-products" data-ecwid-max="' . $instance['number_of_products'] . '">';
|
2738 |
+
|
2739 |
+
|
2740 |
+
$api = false;
|
2741 |
+
if (ecwid_is_api_enabled()) {
|
2742 |
+
$api = ecwid_new_product_api();
|
2743 |
+
}
|
2744 |
+
|
2745 |
+
$counter = 0;
|
2746 |
+
$ids = array();
|
2747 |
+
if ($recently_viewed && isset($recently_viewed->products)) {
|
2748 |
+
|
2749 |
+
for ($i = count($recently_viewed->products) - 1; $i >= 0; $i--) {
|
2750 |
+
$product = $recently_viewed->products[$i];
|
2751 |
+
|
2752 |
+
$counter++;
|
2753 |
+
if (isset($product->id) && isset($product->link)) {
|
2754 |
+
$ids[] = $product->id;
|
2755 |
+
$hide = $counter > $instance['number_of_products'] ? ' hidden' : '';
|
2756 |
+
|
2757 |
+
if ($api) {
|
2758 |
+
$product_https = $api->get_product_https($product->id);
|
2759 |
+
}
|
2760 |
+
|
2761 |
+
$name = isset($product_https) ? $product_https['name']: '';
|
2762 |
+
|
2763 |
+
echo <<<HTML
|
2764 |
+
<a class="product$hide" href="$product->link" alt="$name" title="$name">
|
2765 |
+
<div class="ecwid ecwid-SingleProduct ecwid-Product ecwid-Product-$product->id" data-single-product-link="$product->link" itemscope itemtype="http://schema.org/Product" data-single-product-id="$product->id">
|
2766 |
+
<div itemprop="image" data-force-image="$product_https[imageUrl]"></div>
|
2767 |
+
<div class="ecwid-title" itemprop="name"></div>
|
2768 |
+
<div itemtype="http://schema.org/Offer" itemscope itemprop="offers"><div class="ecwid-productBrowser-price ecwid-price" itemprop="price"></div></div>
|
2769 |
+
</div>
|
2770 |
+
|
2771 |
+
<!-- noptimize --><script type="text/javascript">xSingleProduct();</script><!-- /noptimize -->
|
2772 |
+
</a>
|
2773 |
+
HTML;
|
2774 |
+
}
|
2775 |
+
}
|
2776 |
+
} else {
|
2777 |
+
echo <<<HTML
|
2778 |
+
<script type="text/javascript">
|
2779 |
+
jQuery(document).ready(function() {
|
2780 |
+
wpCookies.remove('ecwid-shopping-cart-recently-viewed');
|
2781 |
+
recently_viewed = {products: []};
|
2782 |
+
});
|
2783 |
+
</script>
|
2784 |
+
HTML;
|
2785 |
+
}
|
2786 |
+
$ids_string = '';
|
2787 |
+
if (!empty($ids)) {
|
2788 |
+
$ids_string = implode(',', $ids);
|
2789 |
+
}
|
2790 |
+
|
2791 |
+
echo <<<HTML
|
2792 |
+
<script type="text/javascript">
|
2793 |
+
<!--
|
2794 |
+
jQuery(document).ready(function() {
|
2795 |
+
jQuery('#$this->id .ecwid-recently-viewed-products').recentlyViewedProducts();
|
2796 |
+
});
|
2797 |
+
-->
|
2798 |
+
</script>
|
2799 |
+
HTML;
|
2800 |
+
|
2801 |
+
echo "</div>";
|
2802 |
+
|
2803 |
+
$store_link_message = empty($instance['store_link_title']) ? __('You have not viewed any product yet. Open store.', 'ecwid-shopping-cart') : $instance['store_link_title'];
|
2804 |
+
|
2805 |
+
$page_id = ecwid_get_current_store_page_id();
|
2806 |
+
$post = get_post($page_id);
|
2807 |
+
|
2808 |
+
if (empty($recently_viewed->products)) {
|
2809 |
+
echo '<a class="show-if-empty" href="' . ecwid_get_store_page_url() . '">' . $store_link_message . '</a>';
|
2810 |
+
}
|
2811 |
+
|
2812 |
+
echo $after_widget;
|
2813 |
+
}
|
2814 |
+
|
2815 |
+
function update($new_instance, $old_instance){
|
2816 |
+
$instance = $old_instance;
|
2817 |
+
$instance['title'] = strip_tags(stripslashes($new_instance['title']));
|
2818 |
+
$instance['store_link_title'] = strip_tags(stripslashes($new_instance['store_link_title']));
|
2819 |
+
$num = intval($new_instance['number_of_products']);
|
2820 |
+
if ($num > $this->max || $num < $this->min) {
|
2821 |
+
$num = $this->default;
|
2822 |
+
}
|
2823 |
+
$instance['number_of_products'] = intval($new_instance['number_of_products']);
|
2824 |
+
|
2825 |
+
return $instance;
|
2826 |
+
}
|
2827 |
+
|
2828 |
+
function form($instance){
|
2829 |
+
|
2830 |
+
$instance = wp_parse_args( (array) $instance,
|
2831 |
+
array(
|
2832 |
+
'title' => __('Recently Viewed Products', 'ecwid-shopping-cart'),
|
2833 |
+
'store_link_title' => __('You have not viewed any product yet. Open store.', 'ecwid-shopping-cart'),
|
2834 |
+
'number_of_products' => 3
|
2835 |
+
)
|
2836 |
+
);
|
2837 |
+
|
2838 |
+
$title = htmlspecialchars($instance['title']);
|
2839 |
+
$store_link_title = htmlspecialchars($instance['store_link_title']);
|
2840 |
+
$number_of_products = $instance['number_of_products'];
|
2841 |
+
if ($number_of_products)
|
2842 |
+
|
2843 |
+
echo '<p><label for="' . $this->get_field_name('title') . '">' . __('Title') . ': <input style="width:100%;" id="' . $this->get_field_id('title') . '" name="' . $this->get_field_name('title') . '" type="text" value="' . $title . '" /></label></p>';
|
2844 |
+
echo '<p><label for="' . $this->get_field_name('store_link_title') . '">' . __('Store Link Title', 'ecwid-shopping-cart') . ': <input style="width:100%;" id="' . $this->get_field_id('store_link_title') . '" name="' . $this->get_field_name('store_link_title') . '" type="text" value="' . $store_link_title . '" /></label></p>';
|
2845 |
+
echo '<p><label for="' . $this->get_field_name('number_of_products') . '">' . __( 'Number of products to show', 'ecwid-shopping-cart' ) . ': <input style="width:100%;" id="' . $this->get_field_id('number_of_products') . '" name="' . $this->get_field_name('number_of_products') . '" type="number" min="' . $this->min . '" max="' . $this->max . '" value="' . $number_of_products . '" /></label></p>';
|
2846 |
+
}
|
2847 |
+
|
2848 |
+
function is_valid_number_of_products($num) {
|
2849 |
+
return is_numeric($num) && $num <= $this->max && $num >= $this->min;
|
2850 |
+
}
|
2851 |
+
}
|
2852 |
+
|
2853 |
+
|
2854 |
+
function ecwid_send_stats()
|
2855 |
+
{
|
2856 |
+
$storeid = get_ecwid_store_id();
|
2857 |
+
|
2858 |
+
if ($storeid == ECWID_DEMO_STORE_ID) {
|
2859 |
+
$storeid = 805056;
|
2860 |
+
}
|
2861 |
+
|
2862 |
+
$last_stats_sent = get_option('ecwid_stats_sent_date');
|
2863 |
+
if (!$last_stats_sent) {
|
2864 |
+
add_option('ecwid_stats_sent_date', time());
|
2865 |
+
} else if ($last_stats_sent + 24*60*60 > time()) {
|
2866 |
+
return;
|
2867 |
+
}
|
2868 |
+
|
2869 |
+
$stats = ecwid_gather_stats();
|
2870 |
+
|
2871 |
+
$url = 'http://' . APP_ECWID_COM . '/script.js?' . $storeid . '&data_platform=wporg';
|
2872 |
+
|
2873 |
+
|
2874 |
+
foreach ($stats as $name => $value) {
|
2875 |
+
$url .= '&data_wporg_' . $name . '=' . urlencode($value);
|
2876 |
+
}
|
2877 |
+
|
2878 |
+
$link = '';
|
2879 |
+
if (ecwid_is_store_page_available()) {
|
2880 |
+
$link = ecwid_get_store_page_url();
|
2881 |
+
} else {
|
2882 |
+
$link = get_bloginfo('url');
|
2883 |
+
}
|
2884 |
+
|
2885 |
+
wp_remote_get($url, array('headers' => array('Referer' => $link)));
|
2886 |
+
|
2887 |
+
update_option('ecwid_stats_sent_date', time());
|
2888 |
+
}
|
2889 |
+
|
2890 |
+
function ecwid_gather_stats()
|
2891 |
+
{
|
2892 |
+
$usage_version = 1;
|
2893 |
+
|
2894 |
+
$stats = array();
|
2895 |
+
|
2896 |
+
$stats['version'] = get_bloginfo('version');
|
2897 |
+
$stats['theme'] = ecwid_get_theme_identification();
|
2898 |
+
|
2899 |
+
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
2900 |
+
|
2901 |
+
$vector_contents = array(
|
2902 |
+
'paid',
|
2903 |
+
'display_search',
|
2904 |
+
'horizontal_categories_enabled',
|
2905 |
+
'minicart_enabled',
|
2906 |
+
'search_widget',
|
2907 |
+
'vcategories_widget',
|
2908 |
+
'minicart_normal_widget',
|
2909 |
+
'minicart_mini_widget',
|
2910 |
+
'badge_widget',
|
2911 |
+
'sso_enabled',
|
2912 |
+
'default_category',
|
2913 |
+
'google_xml_sitemaps_used',
|
2914 |
+
'ecwid_product_advisor_used',
|
2915 |
+
'ecwid_single_product_used',
|
2916 |
+
'ecwid_store_shortcode_used',
|
2917 |
+
'store_link_widget',
|
2918 |
+
'recently_viewed_widget',
|
2919 |
+
'avalanche_used',
|
2920 |
+
'chameleon_used',
|
2921 |
+
'http_post_fails',
|
2922 |
+
'ecwid_use_new_horizontal_categories',
|
2923 |
+
'is_wp_newbie',
|
2924 |
+
'ecwid_remote_get_fails',
|
2925 |
+
'has_woocommerce'
|
2926 |
+
);
|
2927 |
+
|
2928 |
+
$usage_stats = ecwid_gather_usage_stats();
|
2929 |
+
$stats['usage'] = '';
|
2930 |
+
|
2931 |
+
$usage = '';
|
2932 |
+
foreach ($vector_contents as $index => $item) {
|
2933 |
+
$usage[$index] = is_string($usage_stats[$item]) ? $usage_stats[$item] : (int)$usage_stats[$item];
|
2934 |
+
}
|
2935 |
+
$stats['usage'] = $usage_version . '_' . implode('', $usage);
|
2936 |
+
|
2937 |
+
$stats['wp_install_date'] = $usage_stats['wp_install_date'];
|
2938 |
+
$stats['plugin_install_date'] = $usage_stats['wp_install_date'];
|
2939 |
+
|
2940 |
+
$checked = get_option('ecwid_checked_for_remote_connection_errors', null);
|
2941 |
+
if (is_null($checked) || $usage_stats['ecwid_remote_get_fails'] || $usage_stats['http_post_fails']) {
|
2942 |
+
$results = ecwid_check_for_remote_connection_errors();
|
2943 |
+
if (!empty($results)) {
|
2944 |
+
$stats = array_merge($stats, $results);
|
2945 |
+
}
|
2946 |
+
get_option('ecwid_checked_for_remote_connection_errors', empty($results));
|
2947 |
+
}
|
2948 |
+
|
2949 |
+
return $stats;
|
2950 |
+
}
|
2951 |
+
|
2952 |
+
function ecwid_gather_usage_stats()
|
2953 |
+
{
|
2954 |
+
$usage_stats = array();
|
2955 |
+
$usage_stats['paid'] = ecwid_is_paid_account();
|
2956 |
+
$usage_stats['display_search'] = (bool) get_option('ecwid_show_search_box');
|
2957 |
+
$usage_stats['horizontal_categories_enabled'] = (bool) get_option('ecwid_show_categories');
|
2958 |
+
$usage_stats['minicart_enabled'] = (bool) get_option('ecwid_enable_minicart');
|
2959 |
+
$usage_stats['search_widget'] = (bool) is_active_widget(false, false, 'ecwidsearch');
|
2960 |
+
$usage_stats['vcategories_widget'] = (bool) is_active_widget(false, false, 'ecwidvcategories');
|
2961 |
+
$usage_stats['minicart_normal_widget'] = (bool) is_active_widget(false, false, 'ecwidminicart');
|
2962 |
+
$usage_stats['minicart_mini_widget'] = (bool) is_active_widget(false, false, 'ecwidminicart_miniview');
|
2963 |
+
$usage_stats['badge_widget'] = (bool) is_active_widget(false, false, 'ecwidbadge');
|
2964 |
+
$usage_stats['sso_enabled'] = (bool) get_option('ecwid_sso_secret_key');
|
2965 |
+
$usage_stats['default_category'] = (bool) get_option('ecwid_default_category_id');
|
2966 |
+
$usage_stats['google_xml_sitemaps_used'] = (bool) is_plugin_active('google-sitemap-generator/sitemap.php');
|
2967 |
+
$usage_stats['ecwid_product_advisor_used'] = (bool) is_plugin_active('ecwid-useful-tools/ecwid-product-advisor.php');
|
2968 |
+
$usage_stats['ecwid_single_product_used'] = (bool) (get_option('ecwid_single_product_used') + 60*60*24*14 > time());
|
2969 |
+
$usage_stats['ecwid_store_shortcode_used'] = (bool) (get_option('ecwid_store_shortcode_used') + 60*60*24*14 > time());
|
2970 |
+
$usage_stats['store_link_widget'] = (bool) is_active_widget(false, false, 'ecwidstorelink');
|
2971 |
+
$usage_stats['recently_viewed_widget'] = (bool) is_active_widget(false, false, 'ecwidrecentlyviewed');
|
2972 |
+
$usage_stats['avalanche_used'] = (bool) is_plugin_active('ecwid-widgets-avalanche/ecwid_widgets_avalanche.php');
|
2973 |
+
$usage_stats['chameleon_used'] = (bool)get_option('ecwid_use_chameleon');
|
2974 |
+
$usage_stats['http_post_fails'] = get_option('ecwid_last_oauth_fail_time') > 0;
|
2975 |
+
$usage_stats['ecwid_use_new_horizontal_categories'] = (bool) get_option('ecwid_use_new_horizontal_categories');
|
2976 |
+
|
2977 |
+
$wp_date = get_option('ecwid_wp_install_date');
|
2978 |
+
if (!$wp_date) {
|
2979 |
+
global $wpdb;
|
2980 |
+
$oldest_user = strtotime($wpdb->get_var("SELECT min(`user_registered`) FROM {$wpdb->users}"));
|
2981 |
+
$oldest_post = strtotime($wpdb->get_var("SELECT min(`post_date`) FROM {$wpdb->posts}"));
|
2982 |
+
$wpconfig_create = filectime(ABSPATH . '/wp-config.php');
|
2983 |
+
|
2984 |
+
$wp_date = min($oldest_user, $oldest_post, $wpconfig_create);
|
2985 |
+
update_option('ecwid_wp_install_date', $wp_date);
|
2986 |
+
}
|
2987 |
+
|
2988 |
+
$ecwid_date = get_option('ecwid_installation_date');
|
2989 |
+
|
2990 |
+
$usage_stats['wp_install_date'] = $wp_date;
|
2991 |
+
$usage_stats['plugin_install_date'] = $ecwid_date;
|
2992 |
+
|
2993 |
+
$usage_stats['is_wp_newbie'] = (bool) (($ecwid_date - $wp_date) / 60 / 60 / 24 <= 30);
|
2994 |
+
|
2995 |
+
$usage_stats['ecwid_remote_get_fails'] = (bool) get_option('ecwid_fetch_url_use_file_get_contents');
|
2996 |
+
|
2997 |
+
$woo = 0;
|
2998 |
+
$all_plugins = get_plugins();
|
2999 |
+
if (array_key_exists('woocommerce/woocommerce.php', $all_plugins)) {
|
3000 |
+
$active_plugins = get_option('active_plugins');
|
3001 |
+
if (in_array('woocommerce/woocommerce.php', $active_plugins)) {
|
3002 |
+
$woo = 2;
|
3003 |
+
} else {
|
3004 |
+
$woo = 1;
|
3005 |
+
}
|
3006 |
+
}
|
3007 |
+
$usage_stats['has_woocommerce'] = $woo;
|
3008 |
+
|
3009 |
+
return $usage_stats;
|
3010 |
+
}
|
3011 |
+
|
3012 |
+
function ecwid_check_for_remote_connection_errors()
|
3013 |
+
{
|
3014 |
+
global $ecwid_oauth;
|
3015 |
+
|
3016 |
+
$results = array();
|
3017 |
+
$results['https_get_error'] = wp_remote_get(ecwid_get_categories_js_url('abc'));
|
3018 |
+
$results['https_post_error'] = wp_remote_post($ecwid_oauth->get_test_post_url());
|
3019 |
+
|
3020 |
+
foreach ($results as $type => $value) {
|
3021 |
+
if (is_wp_error($value)) {
|
3022 |
+
$results[$type] = $value->get_error_message();
|
3023 |
+
} else {
|
3024 |
+
unset($results[$type]);
|
3025 |
+
}
|
3026 |
+
}
|
3027 |
+
|
3028 |
+
return $results;
|
3029 |
+
}
|
3030 |
+
|
3031 |
+
function ecwid_sidebar_widgets_init() {
|
3032 |
+
register_widget('EcwidMinicartWidget');
|
3033 |
+
register_widget('EcwidSearchWidget');
|
3034 |
+
register_widget('EcwidVCategoriesWidget');
|
3035 |
+
register_widget('EcwidMinicartMiniViewWidget');
|
3036 |
+
register_widget('EcwidBadgeWidget');
|
3037 |
+
register_widget('EcwidStoreLinkWidget');
|
3038 |
+
register_widget('EcwidRecentlyViewedWidget');
|
3039 |
+
}
|
3040 |
+
|
3041 |
+
add_action('widgets_init', 'ecwid_sidebar_widgets_init');
|
3042 |
+
|
3043 |
+
function ecwid_sso() {
|
3044 |
+
$key = get_option('ecwid_sso_secret_key');
|
3045 |
+
if (empty($key)) {
|
3046 |
+
return "";
|
3047 |
+
}
|
3048 |
+
|
3049 |
+
global $current_user;
|
3050 |
+
get_currentuserinfo();
|
3051 |
+
|
3052 |
+
$signin_url = wp_login_url(ecwid_get_store_page_url());
|
3053 |
+
$signout_url = wp_logout_url(ecwid_get_store_page_url());
|
3054 |
+
$sign_in_out_urls = <<<JS
|
3055 |
+
window.EcwidSignInUrl = '$signin_url';
|
3056 |
+
window.EcwidSignOutUrl = '$signout_url';
|
3057 |
+
window.Ecwid.OnAPILoaded.add(function() {
|
3058 |
+
|
3059 |
+
window.Ecwid.setSignInUrls({
|
3060 |
+
signInUrl: '$signin_url',
|
3061 |
+
signOutUrl: '$signout_url'
|
3062 |
+
});
|
3063 |
+
});
|
3064 |
+
JS;
|
3065 |
+
|
3066 |
+
/*
|
3067 |
+
$signin_url = wp_login_url("URL_TO_REDIRECT");
|
3068 |
+
$signout_url = wp_logout_url('URL_TO_REDIRECT');
|
3069 |
+
$sign_in_out_urls = <<<JS
|
3070 |
+
window.EcwidSignInUrl = '$signin_url';
|
3071 |
+
window.EcwidSignOutUrl = '$signout_url';
|
3072 |
+
window.Ecwid.OnAPILoaded.add(function() {
|
3073 |
+
|
3074 |
+
window.Ecwid.setSignInUrls({
|
3075 |
+
signInUrl: '$signin_url',
|
3076 |
+
signOutUrl: '$signout_url'
|
3077 |
+
});
|
3078 |
+
|
3079 |
+
|
3080 |
+
window.Ecwid.setSignInProvider({
|
3081 |
+
addSignInLinkToPB: function() { return true; },
|
3082 |
+
signIn: function() {
|
3083 |
+
location.href = window.EcwidSignInUrl.replace('URL_TO_REDIRECT', encodeURIComponent(location.href));
|
3084 |
+
},
|
3085 |
+
signOut: function() {
|
3086 |
+
location.href = window.EcwidSignOutUrl.replace('URL_TO_REDIRECT', encodeURIComponent(location.href));
|
3087 |
+
},
|
3088 |
+
canSignOut: true,
|
3089 |
+
canSignIn: true
|
3090 |
+
});
|
3091 |
+
|
3092 |
+
});
|
3093 |
+
|
3094 |
+
|
3095 |
+
JS;
|
3096 |
+
*/
|
3097 |
+
$ecwid_sso_profile = '';
|
3098 |
+
if ($current_user->ID) {
|
3099 |
+
$meta = get_user_meta($current_user->ID);
|
3100 |
+
|
3101 |
+
|
3102 |
+
$user_data = array(
|
3103 |
+
'appId' => "wp_" . get_ecwid_store_id(),
|
3104 |
+
'userId' => "{$current_user->ID}",
|
3105 |
+
'profile' => array(
|
3106 |
+
'email' => $current_user->user_email,
|
3107 |
+
'billingPerson' => array(
|
3108 |
+
'name' => $meta['first_name'][0] . ' ' . $meta['last_name'][0]
|
3109 |
+
)
|
3110 |
+
)
|
3111 |
+
);
|
3112 |
+
$user_data = base64_encode(json_encode($user_data));
|
3113 |
+
$time = time();
|
3114 |
+
$hmac = ecwid_hmacsha1("$user_data $time", $key);
|
3115 |
+
|
3116 |
+
$ecwid_sso_profile ="$user_data $hmac $time";
|
3117 |
+
}
|
3118 |
+
|
3119 |
+
return <<<HTML
|
3120 |
+
<script data-cfasync="false" type="text/javascript">
|
3121 |
+
|
3122 |
+
var ecwid_sso_profile='$ecwid_sso_profile';
|
3123 |
+
$sign_in_out_urls
|
3124 |
+
</script>
|
3125 |
+
HTML;
|
3126 |
+
}
|
3127 |
+
|
3128 |
+
// from: http://www.php.net/manual/en/function.sha1.php#39492
|
3129 |
+
|
3130 |
+
function ecwid_hmacsha1($data, $key) {
|
3131 |
+
if (function_exists("hash_hmac")) {
|
3132 |
+
return hash_hmac('sha1', $data, $key);
|
3133 |
+
} else {
|
3134 |
+
$blocksize=64;
|
3135 |
+
$hashfunc='sha1';
|
3136 |
+
if (strlen($key)>$blocksize)
|
3137 |
+
$key=pack('H*', $hashfunc($key));
|
3138 |
+
$key=str_pad($key,$blocksize,chr(0x00));
|
3139 |
+
$ipad=str_repeat(chr(0x36),$blocksize);
|
3140 |
+
$opad=str_repeat(chr(0x5c),$blocksize);
|
3141 |
+
$hmac = pack(
|
3142 |
+
'H*',$hashfunc(
|
3143 |
+
($key^$opad).pack(
|
3144 |
+
'H*',$hashfunc(
|
3145 |
+
($key^$ipad).$data
|
3146 |
+
)
|
3147 |
+
)
|
3148 |
+
)
|
3149 |
+
);
|
3150 |
+
return bin2hex($hmac);
|
3151 |
+
}
|
3152 |
+
}
|
3153 |
+
|
3154 |
+
function ecwid_can_display_html_catalog()
|
3155 |
+
{
|
3156 |
+
if (!isset($_GET['_escaped_fragment_'])) return;
|
3157 |
+
|
3158 |
+
$api = ecwid_new_product_api();
|
3159 |
+
if (!$api) return;
|
3160 |
+
|
3161 |
+
$profile = $api->get_profile();
|
3162 |
+
if (!$profile) return;
|
3163 |
+
return $profile['closed'] != true;
|
3164 |
+
}
|
3165 |
+
|
3166 |
+
function ecwid_is_paid_account()
|
3167 |
+
{
|
3168 |
+
return ecwid_is_api_enabled() && get_ecwid_store_id() != ECWID_DEMO_STORE_ID;
|
3169 |
+
}
|
3170 |
+
|
3171 |
+
function ecwid_is_api_enabled()
|
3172 |
+
{
|
3173 |
+
$ecwid_is_api_enabled = get_option('ecwid_is_api_enabled');
|
3174 |
+
$ecwid_api_check_time = get_option('ecwid_api_check_time');
|
3175 |
+
$now = time();
|
3176 |
+
|
3177 |
+
if ( $now > ($ecwid_api_check_time + 60 * 60 * 3) && get_ecwid_store_id() != ECWID_DEMO_STORE_ID ) {
|
3178 |
+
// check whether API is available once in 3 hours
|
3179 |
+
$ecwid = ecwid_new_product_api();
|
3180 |
+
|
3181 |
+
$ecwid_is_api_enabled = ($ecwid->is_api_enabled() ? 'on' : 'off');
|
3182 |
+
|
3183 |
+
update_option('ecwid_is_api_enabled', $ecwid_is_api_enabled);
|
3184 |
+
update_option('ecwid_api_check_time', $now);
|
3185 |
+
}
|
3186 |
+
|
3187 |
+
if ('on' == $ecwid_is_api_enabled)
|
3188 |
+
return true;
|
3189 |
+
else
|
3190 |
+
return false;
|
3191 |
+
}
|
3192 |
+
|
3193 |
+
function ecwid_new_product_api()
|
3194 |
+
{
|
3195 |
+
include_once WP_PLUGIN_DIR . '/ecwid-shopping-cart/lib/ecwid_product_api.php';
|
3196 |
+
$ecwid_store_id = intval(get_ecwid_store_id());
|
3197 |
+
$api = new EcwidProductApi($ecwid_store_id);
|
3198 |
+
|
3199 |
+
return $api;
|
3200 |
+
}
|
3201 |
+
|
3202 |
+
function ecwid_embed_svg($name) {
|
3203 |
+
$code = file_get_contents(ECWID_PLUGIN_DIR . '/images/' . $name . '.svg');
|
3204 |
+
|
3205 |
+
echo $code;
|
3206 |
+
}
|
3207 |
+
|
3208 |
+
function ecwid_get_categories_js_url($callback) {
|
3209 |
+
return 'https://my.ecwid.com/categories.js?ownerid=' . get_ecwid_store_id() . '&callback=' . $callback;
|
3210 |
+
}
|
3211 |
+
|
3212 |
+
/*
|
3213 |
+
* Basically a copy of has_shortcode that returns the matched shortcode
|
3214 |
+
*/
|
3215 |
+
function ecwid_find_shortcodes( $content, $tag ) {
|
3216 |
+
|
3217 |
+
if ( false === strpos( $content, '[' ) ) {
|
3218 |
+
return false;
|
3219 |
+
}
|
3220 |
+
|
3221 |
+
if ( shortcode_exists( $tag ) ) {
|
3222 |
+
preg_match_all( '/' . ecwid_get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER );
|
3223 |
+
if ( empty( $matches ) )
|
3224 |
+
return false;
|
3225 |
+
|
3226 |
+
$result = array();
|
3227 |
+
foreach ( $matches as $shortcode ) {
|
3228 |
+
if ( $tag === $shortcode[2] ) {
|
3229 |
+
$result[] = $shortcode;
|
3230 |
+
} elseif ( !empty($shortcode[5]) && $found = ecwid_find_shortcodes( $shortcode[5], $tag ) ) {
|
3231 |
+
$result[] = $found;
|
3232 |
+
}
|
3233 |
+
}
|
3234 |
+
|
3235 |
+
if (empty($result)) {
|
3236 |
+
$result = false;
|
3237 |
+
}
|
3238 |
+
return $result;
|
3239 |
+
}
|
3240 |
+
return false;
|
3241 |
+
}
|
3242 |
+
|
3243 |
+
// Since we use shortcode regex in our own functions, we need it to be persistent
|
3244 |
+
function ecwid_get_shortcode_regex() {
|
3245 |
+
global $shortcode_tags;
|
3246 |
+
$tagnames = array_keys($shortcode_tags);
|
3247 |
+
$tagregexp = join( '|', array_map('preg_quote', $tagnames) );
|
3248 |
+
|
3249 |
+
// WARNING! Do not change this regex without changing do_shortcode_tag() and strip_shortcode_tag()
|
3250 |
+
// Also, see shortcode_unautop() and shortcode.js.
|
3251 |
+
return
|
3252 |
+
'\\[' // Opening bracket
|
3253 |
+
. '(\\[?)' // 1: Optional second opening bracket for escaping shortcodes: [[tag]]
|
3254 |
+
. "($tagregexp)" // 2: Shortcode name
|
3255 |
+
. '(?![\\w-])' // Not followed by word character or hyphen
|
3256 |
+
. '(' // 3: Unroll the loop: Inside the opening shortcode tag
|
3257 |
+
. '[^\\]\\/]*' // Not a closing bracket or forward slash
|
3258 |
+
. '(?:'
|
3259 |
+
. '\\/(?!\\])' // A forward slash not followed by a closing bracket
|
3260 |
+
. '[^\\]\\/]*' // Not a closing bracket or forward slash
|
3261 |
+
. ')*?'
|
3262 |
+
. ')'
|
3263 |
+
. '(?:'
|
3264 |
+
. '(\\/)' // 4: Self closing tag ...
|
3265 |
+
. '\\]' // ... and closing bracket
|
3266 |
+
. '|'
|
3267 |
+
. '\\]' // Closing bracket
|
3268 |
+
. '(?:'
|
3269 |
+
. '(' // 5: Unroll the loop: Optionally, anything between the opening and closing shortcode tags
|
3270 |
+
. '[^\\[]*+' // Not an opening bracket
|
3271 |
+
. '(?:'
|
3272 |
+
. '\\[(?!\\/\\2\\])' // An opening bracket not followed by the closing shortcode tag
|
3273 |
+
. '[^\\[]*+' // Not an opening bracket
|
3274 |
+
. ')*+'
|
3275 |
+
. ')'
|
3276 |
+
. '\\[\\/\\2\\]' // Closing shortcode tag
|
3277 |
+
. ')?'
|
3278 |
+
. ')'
|
3279 |
+
. '(\\]?)'; // 6: Optional second closing brocket for escaping shortcodes: [[tag]]
|
3280 |
+
}
|
3281 |
+
|
3282 |
+
?>
|
fonts/ecwid-icons.svg
CHANGED
@@ -1,17 +1,17 @@
|
|
1 |
-
<?xml version="1.0" standalone="no"?>
|
2 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
-
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
-
<metadata>Generated by IcoMoon</metadata>
|
5 |
-
<defs>
|
6 |
-
<font id="icomoon" horiz-adv-x="1024">
|
7 |
-
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
8 |
-
<missing-glyph horiz-adv-x="1024" />
|
9 |
-
<glyph unicode=" " d="" horiz-adv-x="512" />
|
10 |
-
<glyph unicode="" d="M930.909 605.091h-837.818c-20.945 0-46.545-17.222-46.545-38.633v-62.836c0-20.945 25.6-38.167 46.545-38.167h346.298v101.004h153.6v-101.004h337.92c20.945 0 46.545 17.222 46.545 38.633v60.044c0 20.945-25.6 40.96-46.545 40.96zM823.855 902.517c-50.269 50.269-89.833 31.651-115.433 0-46.545-58.647-95.418-103.331-125.207-128.465-6.982 7.913-17.222 13.033-28.393 13.033h-76.8c-11.171 0-21.411-5.12-28.393-13.033-29.789 25.135-78.662 69.818-125.207 128.465-25.6 31.651-65.164 50.269-115.433 0-180.131-180.131 59.113-227.607 98.676-227.607h84.247c0 0-202.938 88.436-140.102 164.771 26.531 32.116 48.407 8.844 83.316-13.964 34.444-22.342 79.127-44.684 109.382-58.647-2.793-5.585-5.12-11.636-5.12-18.153v-38.633c0-20.945 17.222-38.633 38.633-38.633h76.8c20.945 0 38.633 17.222 38.633 38.633v38.633c0 6.516-2.327 12.567-5.12 17.687 30.255 14.429 75.404 36.771 109.847 59.113 34.909 22.807 56.785 45.615 83.316 13.498 62.836-75.869-140.102-164.771-140.102-164.771h84.247c39.098 0.465 278.342 47.942 98.211 228.073zM439.389 410.997c0 0-307.2 0-345.833 0v-372.364c0-20.945 17.222-38.633 38.633-38.633h307.2v410.996zM592.989 410.997v-410.996h299.287c20.945 0 38.633 17.222 38.633 38.633v372.364c-38.633 0-337.92 0-337.92 0z" />
|
11 |
-
<glyph unicode="" d="M349.556 716.335c21.876 0 41.425 16.291 41.425 38.633 0 101.935 16.291 126.604 118.225 126.604s118.225-24.669 118.225-126.604c0-21.876 19.084-38.633 41.425-38.633 21.876 0 38.633 16.291 38.633 38.633 0 63.302 2.793 206.196-198.284 206.196s-197.818-142.895-197.818-206.196c2.327-21.876 16.291-38.633 38.167-38.633zM1023.535 47.942l-126.604 602.298c-2.793 16.291-16.291 30.255-33.047 30.255h-703.767c-16.291 0-33.047-13.964-33.047-30.255l-126.604-602.298c-2.793-27.462 11.171-49.338 33.047-49.338h960.233c19.084 0 32.582 21.876 29.789 49.338zM333.265 521.31c-33.047 0-60.509 27.462-60.509 60.509s27.462 60.509 60.509 60.509 60.509-27.462 60.509-60.509-27.462-60.509-60.509-60.509zM690.735 521.31c-33.047 0-60.509 27.462-60.509 60.509s27.462 60.509 60.509 60.509c33.047 0 60.509-27.462 60.509-60.509s-27.462-60.509-60.509-60.509z" />
|
12 |
-
<glyph unicode="" d="M976.524 884.364h-929.047c-26.065 0-47.476-23.273-47.476-54.458v-124.276c0-27.927 21.411-53.993 47.476-53.993h928.582c26.531 0 47.942 23.273 47.942 54.458v123.811c0 31.185-21.411 54.458-47.476 54.458zM976.524 558.546h-929.047c-26.065 0-47.476-23.273-47.476-54.458v-124.276c0-27.927 21.411-53.993 47.476-53.993h928.582c26.065 0 47.476 23.273 47.476 54.458v124.276c0.465 30.72-20.945 53.993-47.011 53.993zM976.524 232.728h-929.047c-26.065 0-47.476-23.273-47.476-54.458v-124.276c0-27.927 21.411-53.993 47.476-53.993h928.582c26.065 0 47.476 23.273 47.476 54.458v124.276c0.465 30.72-20.945 53.993-47.011 53.993z" />
|
13 |
-
<glyph unicode="" d="M848.989 185.717c0-15.424-12.503-27.927-27.927-27.927s-27.927 12.503-27.927 27.927c0 15.424 12.503 27.927 27.927 27.927s27.927-12.503 27.927-27.927zM233.658 184.786c0-15.424-12.503-27.927-27.927-27.927s-27.927 12.503-27.927 27.927c0 15.424 12.503 27.927 27.927 27.927s27.927-12.503 27.927-27.927zM823.389 977.455h-622.778c-110.778 0-200.611-89.833-200.611-200.611v-623.244c0-110.313 89.833-200.145 200.611-200.145h623.244c110.778 0 200.611 89.833 200.611 200.611v622.778c-0.465 110.778-90.298 200.611-201.076 200.611zM642.793 683.288c21.411 0 39.098-17.222 39.098-39.098s-17.687-39.098-39.098-39.098c-21.411 0-39.098 17.222-39.098 39.098 0.465 21.876 17.687 39.098 39.098 39.098zM642.793 543.186c21.411 0 39.098-17.222 39.098-39.098 0-21.411-17.687-39.098-39.098-39.098s-39.098 17.222-39.098 39.098 17.687 39.098 39.098 39.098zM514.793 683.288c21.411 0 39.098-17.222 39.098-39.098 0-21.411-17.222-39.098-39.098-39.098-21.411 0-39.098 17.222-39.098 39.098 0.465 21.876 17.687 39.098 39.098 39.098zM514.793 543.186c21.411 0 39.098-17.222 39.098-39.098 0-21.411-17.222-39.098-39.098-39.098-21.411 0-39.098 17.222-39.098 39.098 0.465 21.876 17.687 39.098 39.098 39.098zM388.655 683.288c21.411 0 39.098-17.222 39.098-39.098 0-21.411-17.222-39.098-39.098-39.098-21.411 0-39.098 17.222-39.098 39.098s17.222 39.098 39.098 39.098zM388.655 543.186c21.411 0 39.098-17.222 39.098-39.098 0-21.411-17.222-39.098-39.098-39.098-21.411 0-39.098 17.222-39.098 39.098s17.222 39.098 39.098 39.098zM205.731 107.055c-42.822 0-77.731 34.909-77.731 77.731s34.909 78.196 77.731 78.196c43.287 0 78.196-34.909 78.196-78.196 0-42.822-34.909-77.731-78.196-77.731zM566.924 284.393c-37.236 0-51.665 15.825-53.527 20.945-1.862-5.12-15.36-20.945-52.596-20.945-39.098 0-40.495 0-81.92 0-48.873 0-124.742 25.6-147.084 103.796-22.807 77.731-54.458 194.56-68.887 246.691-14.429 52.596-16.291 56.32 8.844 56.32 22.807 0 70.284-3.258 85.644-56.32 14.895-53.062 44.684-153.6 56.32-192.698 16.756-55.855 63.302-61.44 93.556-61.44 40.96 0 63.302 1.396 63.302 33.978 13.033 0.465 33.047 0 42.356 0s29.324 0 42.356 0c0-31.185 22.342-34.444 63.302-33.978 47.011 0.465 84.247 12.567 101.935 71.215 15.825 53.527 59.578 221.556 77.731 294.633 10.705 43.753 63.767 48.873 84.713 48.873 24.669 0.465 15.825-20.015 1.862-75.404-15.36-62.371-56.785-237.847-82.851-317.905-25.6-77.265-88.436-118.225-155.927-118.225-41.425 0.465-40.495 0.465-79.127 0.465zM821.062 107.986c-43.287 0-78.196 34.909-78.196 78.196s34.909 78.196 78.196 78.196c42.822 0 78.196-34.909 78.196-78.196s-35.375-78.196-78.196-78.196z" />
|
14 |
-
<glyph unicode="" d="M961.629 121.019c13.498-13.498 21.411-32.582 21.411-51.2 0-19.084-7.913-37.702-21.411-51.2-16.291-16.291-32.582-24.204-51.2-24.204-21.411 0-37.702 7.913-51.2 21.411l-200.145 197.353c-67.491-48.873-146.153-70.284-229.935-70.284-53.993 0-107.985 10.705-156.858 32.582-51.2 21.411-94.487 51.2-129.862 86.575-34.909 34.909-64.698 78.196-86.575 129.862s-32.582 102.865-32.582 156.858 10.705 107.985 32.582 156.858c21.411 51.2 51.2 94.487 86.575 129.862s78.196 64.698 129.862 86.575 102.865 32.582 156.858 32.582 107.985-10.705 156.858-32.582c51.2-21.411 94.487-51.2 129.862-86.575s64.698-78.196 86.575-129.862c21.411-51.2 32.582-102.865 32.582-156.858 0-83.782-24.204-161.978-70.284-229.935l196.887-197.818zM613.004 364.451c51.2 51.2 75.869 110.778 75.869 183.855 0 70.284-24.204 132.655-75.869 183.855s-110.778 75.869-183.855 75.869c-70.284 0-132.655-24.204-183.855-75.869s-75.404-110.778-75.404-183.855c0-70.284 24.204-132.655 75.869-183.855s110.778-75.869 183.855-75.869c69.818 0 132.189 26.996 183.389 75.869z" />
|
15 |
-
<glyph unicode="" d="M50.735 50.735c0 9.309 7.447 16.756 16.756 16.756h890.88c9.309 0 16.756-7.447 16.756-16.756v-33.978c0-9.309-7.447-16.756-16.756-16.756h-891.345c-9.309 0-16.756 7.447-16.756 16.756v33.978zM977.455 608.815c-35.84 71.68-51.2 141.498-71.68 257.396 0 6.516-16.291 28.858-35.84 28.858h-715.869c-19.549 0-35.84-22.342-35.84-28.858 0 0-35.84-221.556-71.68-257.396 0-36.305 0-108.451 0-108.451s0.465-1.396 1.396-2.793h-1.396c0 0 3.258-17.687 25.6-27.927 3.258-1.862 6.516-3.258 10.24-4.189v-324.422c0-19.549 20.48-33.047 40.029-33.047h282.065v296.495c0 19.549 18.618 35.375 38.633 35.375h142.429c19.549 0 35.375-15.825 35.375-35.375v-296.495h284.858c19.549 0 35.375 13.498 35.375 33.047v324.422c28.393 4.655 35.84 33.047 35.84 33.047h-0.931c0.465 1.862 0.931 2.793 0.931 2.793s0.465 71.68 0.465 107.52zM327.215 250.415c0-19.549-8.844-35.84-28.393-35.84h-74.007c-19.549 0-28.858 16.291-28.858 35.84v143.36c0 19.549 9.309 35.84 28.858 35.84h74.007c19.549 0 28.393-16.291 28.393-35.84v-143.36zM827.113 250.415c0-19.549-7.913-35.84-27.462-35.84h-73.076c-19.549 0-28.858 16.291-28.858 35.84v143.36c0 19.549 9.309 35.84 28.858 35.84h73.076c19.549 0 27.462-16.291 27.462-35.84v-143.36zM833.629 829.44c0 0 38.167-181.993 61.44-220.625-35.375 0-97.745 0-97.745 0l-35.84 220.625h72.145zM898.327 572.975l-0.465-27.927c-3.258-24.669-24.204-43.753-49.804-43.753-27.927 0-50.269 16.756-50.269 44.684 0 0.931 1.396 26.996 1.396 26.996h99.142zM628.829 554.357v18.618h101.935l-0.465-28.393c-3.724-24.669-24.669-43.287-49.804-43.287-27.927 0-50.735 22.807-50.735 50.735 0 0.931 0 1.396 0.465 2.327h-1.396zM689.804 829.44c0 0 26.996-177.338 38.167-220.625 11.171 0-99.142 0-99.142 0l-10.705 220.625h71.68zM475.229 829.44h72.611l13.033-220.625h-97.745l12.102 220.625zM462.196 572.975h99.142l0.465-25.135c-1.862-26.065-23.738-46.545-50.269-46.545s-48.407 20.48-50.269 46.545l0.931 25.135zM331.869 829.44h71.68l-10.705-220.625c0 0-69.818 0-95.884 0 11.171 40.029 34.909 220.625 34.909 220.625zM294.633 572.975h99.142l0.931-18.618h-0.465c0-0.931 0.465-1.396 0.465-2.327 0-27.927-22.807-50.735-50.735-50.735-25.6 0-46.080 18.618-49.804 43.287l0.465 28.393zM190.371 829.44h69.818l-29.324-220.625c0 0-71.215 0-97.745 0 27.462 49.804 57.251 220.625 57.251 220.625zM126.604 572.975h99.142c0 0 0-20.015 0-20.945 0-27.927-22.807-50.735-50.735-50.735-24.669 0-45.615 17.687-49.804 41.425l1.396 30.255z" />
|
16 |
-
<glyph unicode="" d="M865.745 109.848c-25.135-24.669-65.629-24.669-90.764 0l-267.636 263.913-272.756-268.567c-25.135-24.669-65.629-24.669-90.764 0s-25.135 64.698 0 89.367l268.567 264.378-269.033 264.378c-25.135 24.669-25.135 64.698 0 89.367s65.629 24.669 90.764 0l267.636-263.447 272.756 268.567c25.135 24.669 65.629 24.669 90.764 0s25.135-64.698 0-89.367l-268.567-264.378 268.567-264.844c25.135-24.669 25.135-64.698 0.465-89.367z" />
|
17 |
</font></defs></svg>
|
1 |
+
<?xml version="1.0" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
+
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
+
<metadata>Generated by IcoMoon</metadata>
|
5 |
+
<defs>
|
6 |
+
<font id="icomoon" horiz-adv-x="1024">
|
7 |
+
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
8 |
+
<missing-glyph horiz-adv-x="1024" />
|
9 |
+
<glyph unicode=" " d="" horiz-adv-x="512" />
|
10 |
+
<glyph unicode="" d="M930.909 605.091h-837.818c-20.945 0-46.545-17.222-46.545-38.633v-62.836c0-20.945 25.6-38.167 46.545-38.167h346.298v101.004h153.6v-101.004h337.92c20.945 0 46.545 17.222 46.545 38.633v60.044c0 20.945-25.6 40.96-46.545 40.96zM823.855 902.517c-50.269 50.269-89.833 31.651-115.433 0-46.545-58.647-95.418-103.331-125.207-128.465-6.982 7.913-17.222 13.033-28.393 13.033h-76.8c-11.171 0-21.411-5.12-28.393-13.033-29.789 25.135-78.662 69.818-125.207 128.465-25.6 31.651-65.164 50.269-115.433 0-180.131-180.131 59.113-227.607 98.676-227.607h84.247c0 0-202.938 88.436-140.102 164.771 26.531 32.116 48.407 8.844 83.316-13.964 34.444-22.342 79.127-44.684 109.382-58.647-2.793-5.585-5.12-11.636-5.12-18.153v-38.633c0-20.945 17.222-38.633 38.633-38.633h76.8c20.945 0 38.633 17.222 38.633 38.633v38.633c0 6.516-2.327 12.567-5.12 17.687 30.255 14.429 75.404 36.771 109.847 59.113 34.909 22.807 56.785 45.615 83.316 13.498 62.836-75.869-140.102-164.771-140.102-164.771h84.247c39.098 0.465 278.342 47.942 98.211 228.073zM439.389 410.997c0 0-307.2 0-345.833 0v-372.364c0-20.945 17.222-38.633 38.633-38.633h307.2v410.996zM592.989 410.997v-410.996h299.287c20.945 0 38.633 17.222 38.633 38.633v372.364c-38.633 0-337.92 0-337.92 0z" />
|
11 |
+
<glyph unicode="" d="M349.556 716.335c21.876 0 41.425 16.291 41.425 38.633 0 101.935 16.291 126.604 118.225 126.604s118.225-24.669 118.225-126.604c0-21.876 19.084-38.633 41.425-38.633 21.876 0 38.633 16.291 38.633 38.633 0 63.302 2.793 206.196-198.284 206.196s-197.818-142.895-197.818-206.196c2.327-21.876 16.291-38.633 38.167-38.633zM1023.535 47.942l-126.604 602.298c-2.793 16.291-16.291 30.255-33.047 30.255h-703.767c-16.291 0-33.047-13.964-33.047-30.255l-126.604-602.298c-2.793-27.462 11.171-49.338 33.047-49.338h960.233c19.084 0 32.582 21.876 29.789 49.338zM333.265 521.31c-33.047 0-60.509 27.462-60.509 60.509s27.462 60.509 60.509 60.509 60.509-27.462 60.509-60.509-27.462-60.509-60.509-60.509zM690.735 521.31c-33.047 0-60.509 27.462-60.509 60.509s27.462 60.509 60.509 60.509c33.047 0 60.509-27.462 60.509-60.509s-27.462-60.509-60.509-60.509z" />
|
12 |
+
<glyph unicode="" d="M976.524 884.364h-929.047c-26.065 0-47.476-23.273-47.476-54.458v-124.276c0-27.927 21.411-53.993 47.476-53.993h928.582c26.531 0 47.942 23.273 47.942 54.458v123.811c0 31.185-21.411 54.458-47.476 54.458zM976.524 558.546h-929.047c-26.065 0-47.476-23.273-47.476-54.458v-124.276c0-27.927 21.411-53.993 47.476-53.993h928.582c26.065 0 47.476 23.273 47.476 54.458v124.276c0.465 30.72-20.945 53.993-47.011 53.993zM976.524 232.728h-929.047c-26.065 0-47.476-23.273-47.476-54.458v-124.276c0-27.927 21.411-53.993 47.476-53.993h928.582c26.065 0 47.476 23.273 47.476 54.458v124.276c0.465 30.72-20.945 53.993-47.011 53.993z" />
|
13 |
+
<glyph unicode="" d="M848.989 185.717c0-15.424-12.503-27.927-27.927-27.927s-27.927 12.503-27.927 27.927c0 15.424 12.503 27.927 27.927 27.927s27.927-12.503 27.927-27.927zM233.658 184.786c0-15.424-12.503-27.927-27.927-27.927s-27.927 12.503-27.927 27.927c0 15.424 12.503 27.927 27.927 27.927s27.927-12.503 27.927-27.927zM823.389 977.455h-622.778c-110.778 0-200.611-89.833-200.611-200.611v-623.244c0-110.313 89.833-200.145 200.611-200.145h623.244c110.778 0 200.611 89.833 200.611 200.611v622.778c-0.465 110.778-90.298 200.611-201.076 200.611zM642.793 683.288c21.411 0 39.098-17.222 39.098-39.098s-17.687-39.098-39.098-39.098c-21.411 0-39.098 17.222-39.098 39.098 0.465 21.876 17.687 39.098 39.098 39.098zM642.793 543.186c21.411 0 39.098-17.222 39.098-39.098 0-21.411-17.687-39.098-39.098-39.098s-39.098 17.222-39.098 39.098 17.687 39.098 39.098 39.098zM514.793 683.288c21.411 0 39.098-17.222 39.098-39.098 0-21.411-17.222-39.098-39.098-39.098-21.411 0-39.098 17.222-39.098 39.098 0.465 21.876 17.687 39.098 39.098 39.098zM514.793 543.186c21.411 0 39.098-17.222 39.098-39.098 0-21.411-17.222-39.098-39.098-39.098-21.411 0-39.098 17.222-39.098 39.098 0.465 21.876 17.687 39.098 39.098 39.098zM388.655 683.288c21.411 0 39.098-17.222 39.098-39.098 0-21.411-17.222-39.098-39.098-39.098-21.411 0-39.098 17.222-39.098 39.098s17.222 39.098 39.098 39.098zM388.655 543.186c21.411 0 39.098-17.222 39.098-39.098 0-21.411-17.222-39.098-39.098-39.098-21.411 0-39.098 17.222-39.098 39.098s17.222 39.098 39.098 39.098zM205.731 107.055c-42.822 0-77.731 34.909-77.731 77.731s34.909 78.196 77.731 78.196c43.287 0 78.196-34.909 78.196-78.196 0-42.822-34.909-77.731-78.196-77.731zM566.924 284.393c-37.236 0-51.665 15.825-53.527 20.945-1.862-5.12-15.36-20.945-52.596-20.945-39.098 0-40.495 0-81.92 0-48.873 0-124.742 25.6-147.084 103.796-22.807 77.731-54.458 194.56-68.887 246.691-14.429 52.596-16.291 56.32 8.844 56.32 22.807 0 70.284-3.258 85.644-56.32 14.895-53.062 44.684-153.6 56.32-192.698 16.756-55.855 63.302-61.44 93.556-61.44 40.96 0 63.302 1.396 63.302 33.978 13.033 0.465 33.047 0 42.356 0s29.324 0 42.356 0c0-31.185 22.342-34.444 63.302-33.978 47.011 0.465 84.247 12.567 101.935 71.215 15.825 53.527 59.578 221.556 77.731 294.633 10.705 43.753 63.767 48.873 84.713 48.873 24.669 0.465 15.825-20.015 1.862-75.404-15.36-62.371-56.785-237.847-82.851-317.905-25.6-77.265-88.436-118.225-155.927-118.225-41.425 0.465-40.495 0.465-79.127 0.465zM821.062 107.986c-43.287 0-78.196 34.909-78.196 78.196s34.909 78.196 78.196 78.196c42.822 0 78.196-34.909 78.196-78.196s-35.375-78.196-78.196-78.196z" />
|
14 |
+
<glyph unicode="" d="M961.629 121.019c13.498-13.498 21.411-32.582 21.411-51.2 0-19.084-7.913-37.702-21.411-51.2-16.291-16.291-32.582-24.204-51.2-24.204-21.411 0-37.702 7.913-51.2 21.411l-200.145 197.353c-67.491-48.873-146.153-70.284-229.935-70.284-53.993 0-107.985 10.705-156.858 32.582-51.2 21.411-94.487 51.2-129.862 86.575-34.909 34.909-64.698 78.196-86.575 129.862s-32.582 102.865-32.582 156.858 10.705 107.985 32.582 156.858c21.411 51.2 51.2 94.487 86.575 129.862s78.196 64.698 129.862 86.575 102.865 32.582 156.858 32.582 107.985-10.705 156.858-32.582c51.2-21.411 94.487-51.2 129.862-86.575s64.698-78.196 86.575-129.862c21.411-51.2 32.582-102.865 32.582-156.858 0-83.782-24.204-161.978-70.284-229.935l196.887-197.818zM613.004 364.451c51.2 51.2 75.869 110.778 75.869 183.855 0 70.284-24.204 132.655-75.869 183.855s-110.778 75.869-183.855 75.869c-70.284 0-132.655-24.204-183.855-75.869s-75.404-110.778-75.404-183.855c0-70.284 24.204-132.655 75.869-183.855s110.778-75.869 183.855-75.869c69.818 0 132.189 26.996 183.389 75.869z" />
|
15 |
+
<glyph unicode="" d="M50.735 50.735c0 9.309 7.447 16.756 16.756 16.756h890.88c9.309 0 16.756-7.447 16.756-16.756v-33.978c0-9.309-7.447-16.756-16.756-16.756h-891.345c-9.309 0-16.756 7.447-16.756 16.756v33.978zM977.455 608.815c-35.84 71.68-51.2 141.498-71.68 257.396 0 6.516-16.291 28.858-35.84 28.858h-715.869c-19.549 0-35.84-22.342-35.84-28.858 0 0-35.84-221.556-71.68-257.396 0-36.305 0-108.451 0-108.451s0.465-1.396 1.396-2.793h-1.396c0 0 3.258-17.687 25.6-27.927 3.258-1.862 6.516-3.258 10.24-4.189v-324.422c0-19.549 20.48-33.047 40.029-33.047h282.065v296.495c0 19.549 18.618 35.375 38.633 35.375h142.429c19.549 0 35.375-15.825 35.375-35.375v-296.495h284.858c19.549 0 35.375 13.498 35.375 33.047v324.422c28.393 4.655 35.84 33.047 35.84 33.047h-0.931c0.465 1.862 0.931 2.793 0.931 2.793s0.465 71.68 0.465 107.52zM327.215 250.415c0-19.549-8.844-35.84-28.393-35.84h-74.007c-19.549 0-28.858 16.291-28.858 35.84v143.36c0 19.549 9.309 35.84 28.858 35.84h74.007c19.549 0 28.393-16.291 28.393-35.84v-143.36zM827.113 250.415c0-19.549-7.913-35.84-27.462-35.84h-73.076c-19.549 0-28.858 16.291-28.858 35.84v143.36c0 19.549 9.309 35.84 28.858 35.84h73.076c19.549 0 27.462-16.291 27.462-35.84v-143.36zM833.629 829.44c0 0 38.167-181.993 61.44-220.625-35.375 0-97.745 0-97.745 0l-35.84 220.625h72.145zM898.327 572.975l-0.465-27.927c-3.258-24.669-24.204-43.753-49.804-43.753-27.927 0-50.269 16.756-50.269 44.684 0 0.931 1.396 26.996 1.396 26.996h99.142zM628.829 554.357v18.618h101.935l-0.465-28.393c-3.724-24.669-24.669-43.287-49.804-43.287-27.927 0-50.735 22.807-50.735 50.735 0 0.931 0 1.396 0.465 2.327h-1.396zM689.804 829.44c0 0 26.996-177.338 38.167-220.625 11.171 0-99.142 0-99.142 0l-10.705 220.625h71.68zM475.229 829.44h72.611l13.033-220.625h-97.745l12.102 220.625zM462.196 572.975h99.142l0.465-25.135c-1.862-26.065-23.738-46.545-50.269-46.545s-48.407 20.48-50.269 46.545l0.931 25.135zM331.869 829.44h71.68l-10.705-220.625c0 0-69.818 0-95.884 0 11.171 40.029 34.909 220.625 34.909 220.625zM294.633 572.975h99.142l0.931-18.618h-0.465c0-0.931 0.465-1.396 0.465-2.327 0-27.927-22.807-50.735-50.735-50.735-25.6 0-46.080 18.618-49.804 43.287l0.465 28.393zM190.371 829.44h69.818l-29.324-220.625c0 0-71.215 0-97.745 0 27.462 49.804 57.251 220.625 57.251 220.625zM126.604 572.975h99.142c0 0 0-20.015 0-20.945 0-27.927-22.807-50.735-50.735-50.735-24.669 0-45.615 17.687-49.804 41.425l1.396 30.255z" />
|
16 |
+
<glyph unicode="" d="M865.745 109.848c-25.135-24.669-65.629-24.669-90.764 0l-267.636 263.913-272.756-268.567c-25.135-24.669-65.629-24.669-90.764 0s-25.135 64.698 0 89.367l268.567 264.378-269.033 264.378c-25.135 24.669-25.135 64.698 0 89.367s65.629 24.669 90.764 0l267.636-263.447 272.756 268.567c25.135 24.669 65.629 24.669 90.764 0s25.135-64.698 0-89.367l-268.567-264.378 268.567-264.844c25.135-24.669 25.135-64.698 0.465-89.367z" />
|
17 |
</font></defs></svg>
|
images/add-store.svg
CHANGED
@@ -1,40 +1,40 @@
|
|
1 |
-
<?xml version="1.0" encoding="utf-8"?>
|
2 |
-
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 143 168" enable-background="new 0 0 143 168" xml:space="preserve">
|
4 |
-
<path class="categories" fill="#D1ECF5" d="M41,49.1H2c-1.1,0-2,0.9-2,2.1V56c0,1.1,0.9,2.1,2,2.1H41c1.1,0,2-0.9,2-2.1v-4.8C43,50,42.1,49.1,41,49.1z"></path>
|
5 |
-
<path class="categories" fill="#D1ECF5" d="M91,49H52c-1.1,0-2,0.9-2,2.1v4.8c0,1.1,0.9,2.1,2,2.1H91c1.1,0,2-0.9,2-2.1v-4.8C93,49.9,92.1,49,91,49z"></path>
|
6 |
-
<path class="categories" fill="#D1ECF5" d="M141,49H102c-1.1,0-2,0.9-2,2.1v4.8c0,1.1,0.9,2.1,2,2.1H141c1.1,0,2-0.9,2-2.1v-4.8
|
7 |
-
C143,49.9,142.1,49,141,49z"></path>
|
8 |
-
|
9 |
-
<path class="minicart" fill="#D1ECF5" d="M115.2,8.9c0.8,0,1.5-0.6,1.5-1.4c0-3.7,0.6-4.6,4.3-4.6c3.7,0,4.3,0.9,4.3,4.6c0,0.8,0.7,1.4,1.5,1.4
|
10 |
-
c0.8,0,1.4-0.6,1.4-1.4c0-2.3,0.1-7.5-7.2-7.5c-7.3,0-7.2,5.2-7.2,7.5C113.9,8.3,114.4,8.9,115.2,8.9z"></path>
|
11 |
-
<path class="minicart" fill="#D1ECF5" d="M139.7,33.2l-4.6-21.9c-0.1-0.6-0.6-1.1-1.2-1.1h-25.6c-0.6,0-1.2,0.5-1.2,1.1l-4.6,21.9
|
12 |
-
c-0.1,1,0.4,1.8,1.2,1.8h34.9C139.3,35,139.8,34.2,139.7,33.2z M114.6,16c-1.2,0-2.2-1-2.2-2.2s1-2.2,2.2-2.2s2.2,1,2.2,2.2
|
13 |
-
S115.8,16,114.6,16z M127.6,16c-1.2,0-2.2-1-2.2-2.2s1-2.2,2.2-2.2c1.2,0,2.2,1,2.2,2.2S128.8,16,127.6,16z"></path>
|
14 |
-
|
15 |
-
<path class="productbrowser" fill="#D1ECF5" d="M40.1,72H2.9C1.4,72,0,73.4,0,74.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
16 |
-
C43,73.4,41.6,72,40.1,72z M30.1,112.6c0,1.3,0,1.5-1.4,1.5H14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
17 |
-
c1.5,0,1.4,0.1,1.4,1.5V112.6z"></path>
|
18 |
-
<path class="productbrowser" fill="#D1ECF5" d="M90.1,72H52.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
19 |
-
C93,73.4,91.6,72,90.1,72z M80.1,112.6c0,1.3,0,1.5-1.4,1.5H64.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
20 |
-
c1.5,0,1.4,0.1,1.4,1.5V112.6z"></path>
|
21 |
-
<path class="productbrowser" fill="#D1ECF5" d="M140.1,72h-37.3c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
22 |
-
C143,73.4,141.6,72,140.1,72z M130.1,112.6c0,1.3,0,1.5-1.4,1.5h-14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
23 |
-
c1.5,0,1.4,0.1,1.4,1.5V112.6z"></path>
|
24 |
-
<path class="productbrowser" fill="#D1ECF5" d="M40.1,123H2.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
25 |
-
C43,124.4,41.6,123,40.1,123z M30.1,163.6c0,1.3,0,1.5-1.4,1.5H14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
26 |
-
c1.5,0,1.4,0.1,1.4,1.5V163.6z"></path>
|
27 |
-
<path class="productbrowser" fill="#D1ECF5" d="M90.1,123H52.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
28 |
-
C93,124.4,91.6,123,90.1,123z M80.1,163.6c0,1.3,0,1.5-1.4,1.5H64.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
29 |
-
c1.5,0,1.4,0.1,1.4,1.5V163.6z"></path>
|
30 |
-
<path class="productbrowser" fill="#D1ECF5" d="M140.1,123h-37.3c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
31 |
-
C143,124.4,141.6,123,140.1,123z M130.1,163.6c0,1.3,0,1.5-1.4,1.5h-14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
32 |
-
c1.5,0,1.4,0.1,1.4,1.5V163.6z"></path>
|
33 |
-
|
34 |
-
<path class="search" fill="#D1ECF5" d="M38.2,31.3c0.5,0.5,0.8,1.2,0.8,1.9c0,0.7-0.3,1.4-0.8,1.9C37.6,35.7,37,36,36.3,36c-0.8,0-1.4-0.3-1.9-0.8
|
35 |
-
L27,27.9c-2.5,1.8-5.4,2.6-8.5,2.6c-2,0-4-0.4-5.8-1.2c-1.9-0.8-3.5-1.9-4.8-3.2c-1.3-1.3-2.4-2.9-3.2-4.8c-0.8-1.9-1.2-3.8-1.2-5.8
|
36 |
-
s0.4-4,1.2-5.8c0.8-1.9,1.9-3.5,3.2-4.8c1.3-1.3,2.9-2.4,4.8-3.2c1.9-0.8,3.8-1.2,5.8-1.2s4,0.4,5.8,1.2c1.9,0.8,3.5,1.9,4.8,3.2
|
37 |
-
c1.3,1.3,2.4,2.9,3.2,4.8c0.8,1.9,1.2,3.8,1.2,5.8c0,3.1-0.9,6-2.6,8.5L38.2,31.3L38.2,31.3z M25.3,22.3c1.9-1.9,2.8-4.1,2.8-6.8
|
38 |
-
c0-2.6-0.9-4.9-2.8-6.8c-1.9-1.9-4.1-2.8-6.8-2.8c-2.6,0-4.9,0.9-6.8,2.8c-1.9,1.9-2.8,4.1-2.8,6.8c0,2.6,0.9,4.9,2.8,6.8
|
39 |
-
c1.9,1.9,4.1,2.8,6.8,2.8C21.1,25.1,23.4,24.1,25.3,22.3z"></path>
|
40 |
</svg>
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 143 168" enable-background="new 0 0 143 168" xml:space="preserve">
|
4 |
+
<path class="categories" fill="#D1ECF5" d="M41,49.1H2c-1.1,0-2,0.9-2,2.1V56c0,1.1,0.9,2.1,2,2.1H41c1.1,0,2-0.9,2-2.1v-4.8C43,50,42.1,49.1,41,49.1z"></path>
|
5 |
+
<path class="categories" fill="#D1ECF5" d="M91,49H52c-1.1,0-2,0.9-2,2.1v4.8c0,1.1,0.9,2.1,2,2.1H91c1.1,0,2-0.9,2-2.1v-4.8C93,49.9,92.1,49,91,49z"></path>
|
6 |
+
<path class="categories" fill="#D1ECF5" d="M141,49H102c-1.1,0-2,0.9-2,2.1v4.8c0,1.1,0.9,2.1,2,2.1H141c1.1,0,2-0.9,2-2.1v-4.8
|
7 |
+
C143,49.9,142.1,49,141,49z"></path>
|
8 |
+
|
9 |
+
<path class="minicart" fill="#D1ECF5" d="M115.2,8.9c0.8,0,1.5-0.6,1.5-1.4c0-3.7,0.6-4.6,4.3-4.6c3.7,0,4.3,0.9,4.3,4.6c0,0.8,0.7,1.4,1.5,1.4
|
10 |
+
c0.8,0,1.4-0.6,1.4-1.4c0-2.3,0.1-7.5-7.2-7.5c-7.3,0-7.2,5.2-7.2,7.5C113.9,8.3,114.4,8.9,115.2,8.9z"></path>
|
11 |
+
<path class="minicart" fill="#D1ECF5" d="M139.7,33.2l-4.6-21.9c-0.1-0.6-0.6-1.1-1.2-1.1h-25.6c-0.6,0-1.2,0.5-1.2,1.1l-4.6,21.9
|
12 |
+
c-0.1,1,0.4,1.8,1.2,1.8h34.9C139.3,35,139.8,34.2,139.7,33.2z M114.6,16c-1.2,0-2.2-1-2.2-2.2s1-2.2,2.2-2.2s2.2,1,2.2,2.2
|
13 |
+
S115.8,16,114.6,16z M127.6,16c-1.2,0-2.2-1-2.2-2.2s1-2.2,2.2-2.2c1.2,0,2.2,1,2.2,2.2S128.8,16,127.6,16z"></path>
|
14 |
+
|
15 |
+
<path class="productbrowser" fill="#D1ECF5" d="M40.1,72H2.9C1.4,72,0,73.4,0,74.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
16 |
+
C43,73.4,41.6,72,40.1,72z M30.1,112.6c0,1.3,0,1.5-1.4,1.5H14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
17 |
+
c1.5,0,1.4,0.1,1.4,1.5V112.6z"></path>
|
18 |
+
<path class="productbrowser" fill="#D1ECF5" d="M90.1,72H52.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
19 |
+
C93,73.4,91.6,72,90.1,72z M80.1,112.6c0,1.3,0,1.5-1.4,1.5H64.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
20 |
+
c1.5,0,1.4,0.1,1.4,1.5V112.6z"></path>
|
21 |
+
<path class="productbrowser" fill="#D1ECF5" d="M140.1,72h-37.3c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
22 |
+
C143,73.4,141.6,72,140.1,72z M130.1,112.6c0,1.3,0,1.5-1.4,1.5h-14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
23 |
+
c1.5,0,1.4,0.1,1.4,1.5V112.6z"></path>
|
24 |
+
<path class="productbrowser" fill="#D1ECF5" d="M40.1,123H2.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
25 |
+
C43,124.4,41.6,123,40.1,123z M30.1,163.6c0,1.3,0,1.5-1.4,1.5H14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
26 |
+
c1.5,0,1.4,0.1,1.4,1.5V163.6z"></path>
|
27 |
+
<path class="productbrowser" fill="#D1ECF5" d="M90.1,123H52.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
28 |
+
C93,124.4,91.6,123,90.1,123z M80.1,163.6c0,1.3,0,1.5-1.4,1.5H64.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
29 |
+
c1.5,0,1.4,0.1,1.4,1.5V163.6z"></path>
|
30 |
+
<path class="productbrowser" fill="#D1ECF5" d="M140.1,123h-37.3c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
31 |
+
C143,124.4,141.6,123,140.1,123z M130.1,163.6c0,1.3,0,1.5-1.4,1.5h-14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
32 |
+
c1.5,0,1.4,0.1,1.4,1.5V163.6z"></path>
|
33 |
+
|
34 |
+
<path class="search" fill="#D1ECF5" d="M38.2,31.3c0.5,0.5,0.8,1.2,0.8,1.9c0,0.7-0.3,1.4-0.8,1.9C37.6,35.7,37,36,36.3,36c-0.8,0-1.4-0.3-1.9-0.8
|
35 |
+
L27,27.9c-2.5,1.8-5.4,2.6-8.5,2.6c-2,0-4-0.4-5.8-1.2c-1.9-0.8-3.5-1.9-4.8-3.2c-1.3-1.3-2.4-2.9-3.2-4.8c-0.8-1.9-1.2-3.8-1.2-5.8
|
36 |
+
s0.4-4,1.2-5.8c0.8-1.9,1.9-3.5,3.2-4.8c1.3-1.3,2.9-2.4,4.8-3.2c1.9-0.8,3.8-1.2,5.8-1.2s4,0.4,5.8,1.2c1.9,0.8,3.5,1.9,4.8,3.2
|
37 |
+
c1.3,1.3,2.4,2.9,3.2,4.8c0.8,1.9,1.2,3.8,1.2,5.8c0,3.1-0.9,6-2.6,8.5L38.2,31.3L38.2,31.3z M25.3,22.3c1.9-1.9,2.8-4.1,2.8-6.8
|
38 |
+
c0-2.6-0.9-4.9-2.8-6.8c-1.9-1.9-4.1-2.8-6.8-2.8c-2.6,0-4.9,0.9-6.8,2.8c-1.9,1.9-2.8,4.1-2.8,6.8c0,2.6,0.9,4.9,2.8,6.8
|
39 |
+
c1.9,1.9,4.1,2.8,6.8,2.8C21.1,25.1,23.4,24.1,25.3,22.3z"></path>
|
40 |
</svg>
|
images/categories.svg
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
<?xml version="1.0" encoding="utf-8"?>
|
2 |
-
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
-
viewBox="0 0 143 168" enable-background="new 0 0 143 168" xml:space="preserve">
|
6 |
-
<path fill="#D1ECF5" d="M41,49.1H2c-1.1,0-2,0.9-2,2.1V56c0,1.1,0.9,2.1,2,2.1H41c1.1,0,2-0.9,2-2.1v-4.8C43,50,42.1,49.1,41,49.1z"
|
7 |
-
/>
|
8 |
-
<path fill="#D1ECF5" d="M91,49H52c-1.1,0-2,0.9-2,2.1v4.8c0,1.1,0.9,2.1,2,2.1H91c1.1,0,2-0.9,2-2.1v-4.8C93,49.9,92.1,49,91,49z"/>
|
9 |
-
<path fill="#D1ECF5" d="M141,49H102c-1.1,0-2,0.9-2,2.1v4.8c0,1.1,0.9,2.1,2,2.1H141c1.1,0,2-0.9,2-2.1v-4.8
|
10 |
-
C143,49.9,142.1,49,141,49z"/>
|
11 |
-
</svg>
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
+
viewBox="0 0 143 168" enable-background="new 0 0 143 168" xml:space="preserve">
|
6 |
+
<path fill="#D1ECF5" d="M41,49.1H2c-1.1,0-2,0.9-2,2.1V56c0,1.1,0.9,2.1,2,2.1H41c1.1,0,2-0.9,2-2.1v-4.8C43,50,42.1,49.1,41,49.1z"
|
7 |
+
/>
|
8 |
+
<path fill="#D1ECF5" d="M91,49H52c-1.1,0-2,0.9-2,2.1v4.8c0,1.1,0.9,2.1,2,2.1H91c1.1,0,2-0.9,2-2.1v-4.8C93,49.9,92.1,49,91,49z"/>
|
9 |
+
<path fill="#D1ECF5" d="M141,49H102c-1.1,0-2,0.9-2,2.1v4.8c0,1.1,0.9,2.1,2,2.1H141c1.1,0,2-0.9,2-2.1v-4.8
|
10 |
+
C143,49.9,142.1,49,141,49z"/>
|
11 |
+
</svg>
|
images/ecwid_logo_symbol_RGB.svg
CHANGED
@@ -1,37 +1,37 @@
|
|
1 |
-
<?xml version="1.0" encoding="utf-8"?>
|
2 |
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
3 |
-
width="500px" height="500px" viewBox="0 0 500 500" enable-background="new 0 0 500 500" xml:space="preserve">
|
4 |
-
<g>
|
5 |
-
<path fill="#007AC9" d="M488.655,395.221c0,51.613-41.821,93.435-93.435,93.435H104.784c-51.595,0-93.44-41.821-93.44-93.435
|
6 |
-
V104.792c0-51.595,41.846-93.447,93.44-93.447h290.437c51.613,0,93.435,41.852,93.435,93.447V395.221z"/>
|
7 |
-
<g>
|
8 |
-
<path fill="#FFFFFF" d="M385.354,279.303c12.294-37.304,31.492-119.104,38.734-148.208c6.396-25.745,10.59-35.345-0.971-35.151
|
9 |
-
c-9.681,0.168-34.354,2.532-39.469,22.901c-8.498,34.025-28.816,112.391-36.257,137.288c-8.188,27.375-25.595,33.1-47.521,33.299
|
10 |
-
c-19.087,0.137-29.589-1.331-29.589-15.864c-6.097-0.125-15.491-0.051-19.809-0.024c-4.306-0.025-13.701-0.101-19.798,0.024
|
11 |
-
c0,15.292-10.501,15.864-29.602,15.864c-14.185,0-35.724-2.649-43.587-28.655c-5.5-18.13-19.237-65.052-26.267-89.838
|
12 |
-
c-7.08-24.774-29.247-26.18-39.892-26.217c-11.69-0.05-10.764,1.841-4.007,26.217c6.731,24.388,21.527,78.776,31.873,115.221
|
13 |
-
c10.372,36.435,45.883,48.315,68.554,48.315c19.473,0,20.17,0,38.287,0c17.396,0,23.505-7.453,24.438-9.817
|
14 |
-
c0.933,2.364,7.651,9.817,25.034,9.817c18.154,0,17.656,0,37.117,0C344.168,334.475,373.521,315.312,385.354,279.303z"/>
|
15 |
-
<path fill="#FFFFFF" d="M192.415,184.674c10.017,0,18.13-8.125,18.13-18.117c0-10.029-8.113-18.154-18.13-18.154
|
16 |
-
c-10.029,0-18.129,8.125-18.129,18.154C174.285,176.549,182.385,184.674,192.415,184.674z"/>
|
17 |
-
<path fill="#FFFFFF" d="M251.344,184.674c10.004,0,18.154-8.125,18.154-18.117c0-10.029-8.15-18.154-18.154-18.154
|
18 |
-
c-10.004,0-18.129,8.125-18.129,18.154C233.214,176.549,241.339,184.674,251.344,184.674z"/>
|
19 |
-
<path fill="#FFFFFF" d="M311.045,184.674c9.992,0,18.143-8.125,18.143-18.117c0-10.029-8.148-18.154-18.143-18.154
|
20 |
-
c-10.017,0-18.129,8.125-18.129,18.154C292.916,176.549,301.028,184.674,311.045,184.674z"/>
|
21 |
-
<path fill="#FFFFFF" d="M192.415,250c10.017,0,18.13-8.125,18.13-18.129c0-10.017-8.113-18.143-18.13-18.143
|
22 |
-
c-10.029,0-18.129,8.125-18.129,18.143C174.285,241.875,182.385,250,192.415,250z"/>
|
23 |
-
<path fill="#FFFFFF" d="M251.344,250c10.004,0,18.154-8.125,18.154-18.129c0-10.017-8.15-18.143-18.154-18.143
|
24 |
-
c-10.004,0-18.129,8.125-18.129,18.143C233.214,241.875,241.339,250,251.344,250z"/>
|
25 |
-
<path fill="#FFFFFF" d="M311.045,250c9.992,0,18.143-8.125,18.143-18.129c0-10.017-8.148-18.143-18.143-18.143
|
26 |
-
c-10.017,0-18.129,8.125-18.129,18.143C292.916,241.875,301.028,250,311.045,250z"/>
|
27 |
-
<path fill="#FFFFFF" d="M107.317,344.441c-20.046,0-36.34,16.312-36.34,36.384c0,20.058,16.294,36.321,36.34,36.321
|
28 |
-
c20.095,0,36.358-16.264,36.358-36.321C143.675,360.756,127.413,344.441,107.317,344.441z M107.317,393.865
|
29 |
-
c-7.18,0-13.028-5.836-13.028-13.04c0-7.205,5.848-13.04,13.028-13.04c7.204,0,13.046,5.835,13.046,13.04
|
30 |
-
C120.363,388.029,114.521,393.865,107.317,393.865z"/>
|
31 |
-
<path fill="#FFFFFF" d="M394.051,344.006c-20.069,0-36.369,16.289-36.369,36.348c0,20.045,16.3,36.383,36.369,36.383
|
32 |
-
c20.07,0,36.347-16.338,36.347-36.383C430.397,360.295,414.123,344.006,394.051,344.006z M394.051,393.393
|
33 |
-
c-7.191,0-13.039-5.836-13.039-13.04c0-7.205,5.848-13.041,13.039-13.041c7.192,0,13.041,5.836,13.041,13.041
|
34 |
-
C407.092,387.557,401.244,393.393,394.051,393.393z"/>
|
35 |
-
</g>
|
36 |
-
</g>
|
37 |
-
</svg>
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
3 |
+
width="500px" height="500px" viewBox="0 0 500 500" enable-background="new 0 0 500 500" xml:space="preserve">
|
4 |
+
<g>
|
5 |
+
<path fill="#007AC9" d="M488.655,395.221c0,51.613-41.821,93.435-93.435,93.435H104.784c-51.595,0-93.44-41.821-93.44-93.435
|
6 |
+
V104.792c0-51.595,41.846-93.447,93.44-93.447h290.437c51.613,0,93.435,41.852,93.435,93.447V395.221z"/>
|
7 |
+
<g>
|
8 |
+
<path fill="#FFFFFF" d="M385.354,279.303c12.294-37.304,31.492-119.104,38.734-148.208c6.396-25.745,10.59-35.345-0.971-35.151
|
9 |
+
c-9.681,0.168-34.354,2.532-39.469,22.901c-8.498,34.025-28.816,112.391-36.257,137.288c-8.188,27.375-25.595,33.1-47.521,33.299
|
10 |
+
c-19.087,0.137-29.589-1.331-29.589-15.864c-6.097-0.125-15.491-0.051-19.809-0.024c-4.306-0.025-13.701-0.101-19.798,0.024
|
11 |
+
c0,15.292-10.501,15.864-29.602,15.864c-14.185,0-35.724-2.649-43.587-28.655c-5.5-18.13-19.237-65.052-26.267-89.838
|
12 |
+
c-7.08-24.774-29.247-26.18-39.892-26.217c-11.69-0.05-10.764,1.841-4.007,26.217c6.731,24.388,21.527,78.776,31.873,115.221
|
13 |
+
c10.372,36.435,45.883,48.315,68.554,48.315c19.473,0,20.17,0,38.287,0c17.396,0,23.505-7.453,24.438-9.817
|
14 |
+
c0.933,2.364,7.651,9.817,25.034,9.817c18.154,0,17.656,0,37.117,0C344.168,334.475,373.521,315.312,385.354,279.303z"/>
|
15 |
+
<path fill="#FFFFFF" d="M192.415,184.674c10.017,0,18.13-8.125,18.13-18.117c0-10.029-8.113-18.154-18.13-18.154
|
16 |
+
c-10.029,0-18.129,8.125-18.129,18.154C174.285,176.549,182.385,184.674,192.415,184.674z"/>
|
17 |
+
<path fill="#FFFFFF" d="M251.344,184.674c10.004,0,18.154-8.125,18.154-18.117c0-10.029-8.15-18.154-18.154-18.154
|
18 |
+
c-10.004,0-18.129,8.125-18.129,18.154C233.214,176.549,241.339,184.674,251.344,184.674z"/>
|
19 |
+
<path fill="#FFFFFF" d="M311.045,184.674c9.992,0,18.143-8.125,18.143-18.117c0-10.029-8.148-18.154-18.143-18.154
|
20 |
+
c-10.017,0-18.129,8.125-18.129,18.154C292.916,176.549,301.028,184.674,311.045,184.674z"/>
|
21 |
+
<path fill="#FFFFFF" d="M192.415,250c10.017,0,18.13-8.125,18.13-18.129c0-10.017-8.113-18.143-18.13-18.143
|
22 |
+
c-10.029,0-18.129,8.125-18.129,18.143C174.285,241.875,182.385,250,192.415,250z"/>
|
23 |
+
<path fill="#FFFFFF" d="M251.344,250c10.004,0,18.154-8.125,18.154-18.129c0-10.017-8.15-18.143-18.154-18.143
|
24 |
+
c-10.004,0-18.129,8.125-18.129,18.143C233.214,241.875,241.339,250,251.344,250z"/>
|
25 |
+
<path fill="#FFFFFF" d="M311.045,250c9.992,0,18.143-8.125,18.143-18.129c0-10.017-8.148-18.143-18.143-18.143
|
26 |
+
c-10.017,0-18.129,8.125-18.129,18.143C292.916,241.875,301.028,250,311.045,250z"/>
|
27 |
+
<path fill="#FFFFFF" d="M107.317,344.441c-20.046,0-36.34,16.312-36.34,36.384c0,20.058,16.294,36.321,36.34,36.321
|
28 |
+
c20.095,0,36.358-16.264,36.358-36.321C143.675,360.756,127.413,344.441,107.317,344.441z M107.317,393.865
|
29 |
+
c-7.18,0-13.028-5.836-13.028-13.04c0-7.205,5.848-13.04,13.028-13.04c7.204,0,13.046,5.835,13.046,13.04
|
30 |
+
C120.363,388.029,114.521,393.865,107.317,393.865z"/>
|
31 |
+
<path fill="#FFFFFF" d="M394.051,344.006c-20.069,0-36.369,16.289-36.369,36.348c0,20.045,16.3,36.383,36.369,36.383
|
32 |
+
c20.07,0,36.347-16.338,36.347-36.383C430.397,360.295,414.123,344.006,394.051,344.006z M394.051,393.393
|
33 |
+
c-7.191,0-13.039-5.836-13.039-13.04c0-7.205,5.848-13.041,13.039-13.041c7.192,0,13.041,5.836,13.041,13.041
|
34 |
+
C407.092,387.557,401.244,393.393,394.051,393.393z"/>
|
35 |
+
</g>
|
36 |
+
</g>
|
37 |
+
</svg>
|
images/grid.svg
CHANGED
@@ -1,23 +1,23 @@
|
|
1 |
-
<?xml version="1.0" encoding="utf-8"?>
|
2 |
-
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
4 |
-
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
-
width="102px" height="68px" viewBox="0 0 102 68" enable-background="new 0 0 102 68" xml:space="preserve">
|
6 |
-
<path fill="#CDCDCD" d="M29,1H3C2.005,1,1,1.99,1,3v27c0,1.012,1.006,2,2,2h26c0.995,0,2-0.988,2-2V3C31,1.99,29.995,1,29,1z M22,29
|
7 |
-
c0,0.929,0.017,1-1,1H11c-1.016,0-1-0.071-1-1v-3c0-0.929-0.016-1,1-1h10c1.017,0,1,0.071,1,1V29z"/>
|
8 |
-
<path fill="#CDCDCD" d="M64.199,1h-26.4C36.806,1,36,1.82,36,2.83v27.34c0,1.012,0.807,1.83,1.8,1.83h26.4
|
9 |
-
C65.193,32,66,31.182,66,30.17V2.83C66,1.82,65.193,1,64.199,1z M57,28.317C57,29.246,56.177,30,55.16,30h-8.322
|
10 |
-
C45.822,30,45,29.246,45,28.317v-1.636c0-0.929,0.823-1.682,1.839-1.682h8.322c1.017,0,1.84,0.753,1.84,1.682V28.317z"/>
|
11 |
-
<path fill="#CDCDCD" d="M99.199,1H72.801C71.807,1,71,1.82,71,2.83v27.34c0,1.012,0.807,1.83,1.801,1.83h26.398
|
12 |
-
c0.994,0,1.801-0.818,1.801-1.83V2.83C101,1.82,100.193,1,99.199,1z M92,28.317C92,29.246,91.177,30,90.16,30h-8.322
|
13 |
-
C80.822,30,80,29.246,80,28.317v-1.636c0-0.929,0.822-1.682,1.838-1.682h8.322c1.017,0,1.84,0.753,1.84,1.682V28.317z"/>
|
14 |
-
<path fill="#CDCDCD" d="M29.2,36h-26.4C1.806,36,1,36.82,1,37.83V64c0,1.012,0.807,1.83,1.8,1.83h26.399c0.995,0,1.8-0.818,1.8-1.83
|
15 |
-
V37.83C31,36.82,30.193,36,29.2,36z M22,62.146c0,0.93-0.823,1.684-1.84,1.684h-8.321c-1.016,0-1.839-0.754-1.839-1.684v-1.636
|
16 |
-
c0-0.929,0.823-1.682,1.839-1.682h8.321c1.017,0,1.84,0.753,1.84,1.682V62.146z"/>
|
17 |
-
<path fill="#CDCDCD" d="M64.199,36h-26.4c-0.994,0-1.8,0.82-1.8,1.83V64c0,1.012,0.807,1.83,1.8,1.83h26.4
|
18 |
-
C65.193,65.83,66,65.012,66,64V37.83C66,36.82,65.193,36,64.199,36z M57,62.146c0,0.93-0.823,1.684-1.84,1.684h-8.322
|
19 |
-
c-1.016,0-1.839-0.754-1.839-1.684v-1.636c0-0.929,0.823-1.682,1.839-1.682h8.322c1.017,0,1.84,0.753,1.84,1.682V62.146z"/>
|
20 |
-
<path fill="#CDCDCD" d="M99.199,36H72.801C71.807,36,71,36.82,71,37.83V64c0,1.012,0.807,1.83,1.801,1.83h26.398
|
21 |
-
c0.994,0,1.801-0.818,1.801-1.83V37.83C101,36.82,100.193,36,99.199,36z M92,62.146c0,0.93-0.823,1.684-1.84,1.684h-8.322
|
22 |
-
c-1.016,0-1.838-0.754-1.838-1.684v-1.636c0-0.929,0.822-1.682,1.838-1.682h8.322c1.017,0,1.84,0.753,1.84,1.682V62.146z"/>
|
23 |
-
</svg>
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
4 |
+
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
+
width="102px" height="68px" viewBox="0 0 102 68" enable-background="new 0 0 102 68" xml:space="preserve">
|
6 |
+
<path fill="#CDCDCD" d="M29,1H3C2.005,1,1,1.99,1,3v27c0,1.012,1.006,2,2,2h26c0.995,0,2-0.988,2-2V3C31,1.99,29.995,1,29,1z M22,29
|
7 |
+
c0,0.929,0.017,1-1,1H11c-1.016,0-1-0.071-1-1v-3c0-0.929-0.016-1,1-1h10c1.017,0,1,0.071,1,1V29z"/>
|
8 |
+
<path fill="#CDCDCD" d="M64.199,1h-26.4C36.806,1,36,1.82,36,2.83v27.34c0,1.012,0.807,1.83,1.8,1.83h26.4
|
9 |
+
C65.193,32,66,31.182,66,30.17V2.83C66,1.82,65.193,1,64.199,1z M57,28.317C57,29.246,56.177,30,55.16,30h-8.322
|
10 |
+
C45.822,30,45,29.246,45,28.317v-1.636c0-0.929,0.823-1.682,1.839-1.682h8.322c1.017,0,1.84,0.753,1.84,1.682V28.317z"/>
|
11 |
+
<path fill="#CDCDCD" d="M99.199,1H72.801C71.807,1,71,1.82,71,2.83v27.34c0,1.012,0.807,1.83,1.801,1.83h26.398
|
12 |
+
c0.994,0,1.801-0.818,1.801-1.83V2.83C101,1.82,100.193,1,99.199,1z M92,28.317C92,29.246,91.177,30,90.16,30h-8.322
|
13 |
+
C80.822,30,80,29.246,80,28.317v-1.636c0-0.929,0.822-1.682,1.838-1.682h8.322c1.017,0,1.84,0.753,1.84,1.682V28.317z"/>
|
14 |
+
<path fill="#CDCDCD" d="M29.2,36h-26.4C1.806,36,1,36.82,1,37.83V64c0,1.012,0.807,1.83,1.8,1.83h26.399c0.995,0,1.8-0.818,1.8-1.83
|
15 |
+
V37.83C31,36.82,30.193,36,29.2,36z M22,62.146c0,0.93-0.823,1.684-1.84,1.684h-8.321c-1.016,0-1.839-0.754-1.839-1.684v-1.636
|
16 |
+
c0-0.929,0.823-1.682,1.839-1.682h8.321c1.017,0,1.84,0.753,1.84,1.682V62.146z"/>
|
17 |
+
<path fill="#CDCDCD" d="M64.199,36h-26.4c-0.994,0-1.8,0.82-1.8,1.83V64c0,1.012,0.807,1.83,1.8,1.83h26.4
|
18 |
+
C65.193,65.83,66,65.012,66,64V37.83C66,36.82,65.193,36,64.199,36z M57,62.146c0,0.93-0.823,1.684-1.84,1.684h-8.322
|
19 |
+
c-1.016,0-1.839-0.754-1.839-1.684v-1.636c0-0.929,0.823-1.682,1.839-1.682h8.322c1.017,0,1.84,0.753,1.84,1.682V62.146z"/>
|
20 |
+
<path fill="#CDCDCD" d="M99.199,36H72.801C71.807,36,71,36.82,71,37.83V64c0,1.012,0.807,1.83,1.801,1.83h26.398
|
21 |
+
c0.994,0,1.801-0.818,1.801-1.83V37.83C101,36.82,100.193,36,99.199,36z M92,62.146c0,0.93-0.823,1.684-1.84,1.684h-8.322
|
22 |
+
c-1.016,0-1.838-0.754-1.838-1.684v-1.636c0-0.929,0.822-1.682,1.838-1.682h8.322c1.017,0,1.84,0.753,1.84,1.682V62.146z"/>
|
23 |
+
</svg>
|
images/landing/global.svg
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
|
4 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#70B4D5" d="M37.5,73.056c-19.637,0-35.556-15.918-35.556-35.557 c0-19.636,15.919-35.555,35.556-35.555s35.556,15.918,35.556,35.555C73.056,57.138,57.137,73.056,37.5,73.056z M61.938,59.137 c4.84-5.474,7.891-12.569,8.188-20.382H56.108c-0.119,6.328-1.131,12.22-2.794,17.268c5.389,1.432,8.624,3.076,8.624,3.076V59.137z M59.889,61.259c-1.645-0.711-4.23-1.697-7.534-2.576c-1.779,4.437-4.102,8.055-6.786,10.49 C51.029,67.786,55.921,65.007,59.889,61.259z M38.817,70.056c4.745-0.702,8.65-5.162,11.208-11.943 c-3.249-0.725-7.036-1.274-11.208-1.381V70.056z M38.817,53.967c4.562,0.103,8.663,0.706,12.101,1.476 c1.443-4.788,2.291-10.479,2.392-16.688H38.817V53.967z M53.307,35.995c-0.123-6.223-1.011-11.92-2.496-16.698 c-3.413,0.762-7.476,1.358-11.993,1.464v15.234H53.307z M36.058,35.995V20.762c-4.475-0.103-8.508-0.685-11.912-1.433 c-1.465,4.771-2.332,10.458-2.452,16.666H36.058z M21.691,38.755c0.1,6.202,0.946,11.889,2.387,16.674 c3.415-0.758,7.473-1.351,11.98-1.46V38.755H21.691z M36.058,70.044V56.73c-4.123,0.101-7.872,0.635-11.094,1.347 C27.5,64.821,31.364,69.281,36.058,70.044z M29.432,69.173c-2.692-2.442-5.02-6.074-6.8-10.528c-3.305,0.873-5.894,1.857-7.56,2.575 C19.047,64.987,23.953,67.781,29.432,69.173z M13.001,59.068c0.353-0.174,3.539-1.71,8.678-3.063 c-1.66-5.045-2.669-10.93-2.788-17.25H4.875C5.17,46.535,8.197,53.604,13.001,59.068z M4.885,35.995h14.012 c0.142-6.324,1.176-12.205,2.86-17.234c-4.661-1.216-7.744-2.59-8.607-2.998C8.311,21.191,5.239,28.232,4.885,35.995z M15.247,13.611c1.697,0.72,4.248,1.672,7.473,2.515c1.77-4.351,4.065-7.898,6.712-10.3C24.033,7.197,19.19,9.929,15.247,13.611z M25.056,16.688c3.202,0.699,6.921,1.218,11.002,1.313V4.955C31.419,5.708,27.593,10.078,25.056,16.688z M38.817,4.945v13.052 c4.113-0.109,7.852-0.648,11.066-1.361C47.307,10.007,43.439,5.646,38.817,4.945z M52.254,16.058 c3.227-0.856,5.765-1.813,7.421-2.521c-3.929-3.646-8.744-6.348-14.106-7.71C48.201,8.215,50.488,11.738,52.254,16.058z M61.777,15.681c-0.539,0.264-3.649,1.733-8.55,3.033c1.693,5.039,2.733,10.938,2.876,17.281h14.012 C69.76,28.193,66.659,21.12,61.777,15.681z"/>
|
5 |
</svg>
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
|
4 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#70B4D5" d="M37.5,73.056c-19.637,0-35.556-15.918-35.556-35.557 c0-19.636,15.919-35.555,35.556-35.555s35.556,15.918,35.556,35.555C73.056,57.138,57.137,73.056,37.5,73.056z M61.938,59.137 c4.84-5.474,7.891-12.569,8.188-20.382H56.108c-0.119,6.328-1.131,12.22-2.794,17.268c5.389,1.432,8.624,3.076,8.624,3.076V59.137z M59.889,61.259c-1.645-0.711-4.23-1.697-7.534-2.576c-1.779,4.437-4.102,8.055-6.786,10.49 C51.029,67.786,55.921,65.007,59.889,61.259z M38.817,70.056c4.745-0.702,8.65-5.162,11.208-11.943 c-3.249-0.725-7.036-1.274-11.208-1.381V70.056z M38.817,53.967c4.562,0.103,8.663,0.706,12.101,1.476 c1.443-4.788,2.291-10.479,2.392-16.688H38.817V53.967z M53.307,35.995c-0.123-6.223-1.011-11.92-2.496-16.698 c-3.413,0.762-7.476,1.358-11.993,1.464v15.234H53.307z M36.058,35.995V20.762c-4.475-0.103-8.508-0.685-11.912-1.433 c-1.465,4.771-2.332,10.458-2.452,16.666H36.058z M21.691,38.755c0.1,6.202,0.946,11.889,2.387,16.674 c3.415-0.758,7.473-1.351,11.98-1.46V38.755H21.691z M36.058,70.044V56.73c-4.123,0.101-7.872,0.635-11.094,1.347 C27.5,64.821,31.364,69.281,36.058,70.044z M29.432,69.173c-2.692-2.442-5.02-6.074-6.8-10.528c-3.305,0.873-5.894,1.857-7.56,2.575 C19.047,64.987,23.953,67.781,29.432,69.173z M13.001,59.068c0.353-0.174,3.539-1.71,8.678-3.063 c-1.66-5.045-2.669-10.93-2.788-17.25H4.875C5.17,46.535,8.197,53.604,13.001,59.068z M4.885,35.995h14.012 c0.142-6.324,1.176-12.205,2.86-17.234c-4.661-1.216-7.744-2.59-8.607-2.998C8.311,21.191,5.239,28.232,4.885,35.995z M15.247,13.611c1.697,0.72,4.248,1.672,7.473,2.515c1.77-4.351,4.065-7.898,6.712-10.3C24.033,7.197,19.19,9.929,15.247,13.611z M25.056,16.688c3.202,0.699,6.921,1.218,11.002,1.313V4.955C31.419,5.708,27.593,10.078,25.056,16.688z M38.817,4.945v13.052 c4.113-0.109,7.852-0.648,11.066-1.361C47.307,10.007,43.439,5.646,38.817,4.945z M52.254,16.058 c3.227-0.856,5.765-1.813,7.421-2.521c-3.929-3.646-8.744-6.348-14.106-7.71C48.201,8.215,50.488,11.738,52.254,16.058z M61.777,15.681c-0.539,0.264-3.649,1.733-8.55,3.033c1.693,5.039,2.733,10.938,2.876,17.281h14.012 C69.76,28.193,66.659,21.12,61.777,15.681z"/>
|
5 |
</svg>
|
images/landing/responsive-grow.svg
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 100 71" enable-background="new 0 0 100 71" xml:space="preserve">
|
5 |
-
<path fill-rule="evenodd" clip-rule="evenodd" fill="#70B4D5" d="M95.5,68.947H52.649c-1.988,0-3.6-1.613-3.6-3.6v-3.312H24.9v3 c0,1.986-1.612,3.6-3.601,3.6H4.5c-1.988,0-3.6-1.613-3.6-3.6V38.652c0-1.988,1.611-3.6,3.6-3.6h6.601V5.653 c0-1.989,1.611-3.601,3.6-3.601h64.8c1.988,0,3.6,1.611,3.6,3.601V26.99h12.4c1.988,0,3.6,1.612,3.6,3.601v34.757 C99.1,67.334,97.488,68.947,95.5,68.947z M6.056,38.033c-1.192,0-2.16,0.967-2.16,2.158v23.285c0,1.193,0.968,2.16,2.16,2.16h13.693 c1.192,0,2.159-0.967,2.159-2.16V40.191c0-1.191-0.967-2.158-2.159-2.158H6.056z M80.108,7.192c0-1.193-0.967-2.16-2.16-2.16H16.256 c-1.193,0-2.16,0.967-2.16,2.16v27.86H21.3c1.988,0,3.601,1.611,3.601,3.6v20.369l24.149,0.016V30.591 c0-1.988,1.611-3.601,3.6-3.601h27.459V7.192z M96.108,32.13c0-1.193-0.967-2.16-2.16-2.16H54.205c-1.193,0-2.16,0.967-2.16,2.16 v31.659c0,1.193,0.967,2.16,2.16,2.16h39.743c1.193,0,2.16-0.967,2.16-2.16V32.13z M57.044,49.777c-0.991,0-1.794-0.803-1.794-1.793 c0-0.992,0.803-1.795,1.794-1.795c0.99,0,1.794,0.803,1.794,1.795C58.838,48.975,58.034,49.777,57.044,49.777z M30.601,11.334 c-0.991,0-1.795-0.804-1.795-1.794c0-0.991,0.804-1.795,1.795-1.795c0.99,0,1.794,0.804,1.794,1.795 C32.395,10.53,31.591,11.334,30.601,11.334z M24.601,11.334c-0.991,0-1.795-0.804-1.795-1.794c0-0.991,0.804-1.795,1.795-1.795 c0.99,0,1.794,0.804,1.794,1.795C26.395,10.53,25.591,11.334,24.601,11.334z M18.601,11.334c-0.991,0-1.795-0.804-1.795-1.794 c0-0.991,0.804-1.795,1.795-1.795c0.99,0,1.794,0.804,1.794,1.795C20.395,10.53,19.591,11.334,18.601,11.334z M13.2,62.934 c-0.991,0-1.794-0.803-1.794-1.795c0-0.99,0.803-1.793,1.794-1.793s1.794,0.803,1.794,1.793 C14.994,62.131,14.191,62.934,13.2,62.934z"/>
|
6 |
</svg>
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 100 71" enable-background="new 0 0 100 71" xml:space="preserve">
|
5 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#70B4D5" d="M95.5,68.947H52.649c-1.988,0-3.6-1.613-3.6-3.6v-3.312H24.9v3 c0,1.986-1.612,3.6-3.601,3.6H4.5c-1.988,0-3.6-1.613-3.6-3.6V38.652c0-1.988,1.611-3.6,3.6-3.6h6.601V5.653 c0-1.989,1.611-3.601,3.6-3.601h64.8c1.988,0,3.6,1.611,3.6,3.601V26.99h12.4c1.988,0,3.6,1.612,3.6,3.601v34.757 C99.1,67.334,97.488,68.947,95.5,68.947z M6.056,38.033c-1.192,0-2.16,0.967-2.16,2.158v23.285c0,1.193,0.968,2.16,2.16,2.16h13.693 c1.192,0,2.159-0.967,2.159-2.16V40.191c0-1.191-0.967-2.158-2.159-2.158H6.056z M80.108,7.192c0-1.193-0.967-2.16-2.16-2.16H16.256 c-1.193,0-2.16,0.967-2.16,2.16v27.86H21.3c1.988,0,3.601,1.611,3.601,3.6v20.369l24.149,0.016V30.591 c0-1.988,1.611-3.601,3.6-3.601h27.459V7.192z M96.108,32.13c0-1.193-0.967-2.16-2.16-2.16H54.205c-1.193,0-2.16,0.967-2.16,2.16 v31.659c0,1.193,0.967,2.16,2.16,2.16h39.743c1.193,0,2.16-0.967,2.16-2.16V32.13z M57.044,49.777c-0.991,0-1.794-0.803-1.794-1.793 c0-0.992,0.803-1.795,1.794-1.795c0.99,0,1.794,0.803,1.794,1.795C58.838,48.975,58.034,49.777,57.044,49.777z M30.601,11.334 c-0.991,0-1.795-0.804-1.795-1.794c0-0.991,0.804-1.795,1.795-1.795c0.99,0,1.794,0.804,1.794,1.795 C32.395,10.53,31.591,11.334,30.601,11.334z M24.601,11.334c-0.991,0-1.795-0.804-1.795-1.794c0-0.991,0.804-1.795,1.795-1.795 c0.99,0,1.794,0.804,1.794,1.795C26.395,10.53,25.591,11.334,24.601,11.334z M18.601,11.334c-0.991,0-1.795-0.804-1.795-1.794 c0-0.991,0.804-1.795,1.795-1.795c0.99,0,1.794,0.804,1.794,1.795C20.395,10.53,19.591,11.334,18.601,11.334z M13.2,62.934 c-0.991,0-1.794-0.803-1.794-1.795c0-0.99,0.803-1.793,1.794-1.793s1.794,0.803,1.794,1.793 C14.994,62.131,14.191,62.934,13.2,62.934z"/>
|
6 |
</svg>
|
images/list.svg
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?xml version="1.0" encoding="utf-8"?>
|
2 |
-
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
4 |
-
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
-
width="102px" height="68px" viewBox="0 0 102 68" enable-background="new 0 0 102 68" xml:space="preserve">
|
6 |
-
<path fill="#CDCDCD" d="M99.572,1H2.427C1.639,1,1,1.638,1,2.425v17.149C1,20.361,1.639,21,2.427,21h97.146
|
7 |
-
c0.788,0,1.427-0.639,1.427-1.426V2.425C101,1.638,100.361,1,99.572,1z M22,10h38v2H22V10z M18,16c0,1.012-1.005,2-2,2H6
|
8 |
-
c-0.994,0-2-0.988-2-2V6c0-1.01,1.006-2,2-2h10c0.995,0,2,0.99,2,2V16z M65,17H22v-2h43V17z M72,7H22V5h50V7z"/>
|
9 |
-
<path fill="#CDCDCD" d="M99.572,24H2.427C1.639,24,1,24.638,1,25.425v17.149C1,43.361,1.639,44,2.427,44h97.146
|
10 |
-
c0.788,0,1.427-0.639,1.427-1.426V25.425C101,24.638,100.361,24,99.572,24z M22,33h38v2H22V33z M18,39c0,1.012-1.005,2-2,2H6
|
11 |
-
c-0.994,0-2-0.988-2-2V29c0-1.01,1.006-2,2-2h10c0.995,0,2,0.99,2,2V39z M65,40H22v-2h43V40z M72,30H22v-2h50V30z"/>
|
12 |
-
<path fill="#CDCDCD" d="M99.572,47H2.427C1.639,47,1,47.639,1,48.425v17.149C1,66.361,1.639,67,2.427,67h97.146
|
13 |
-
c0.788,0,1.427-0.639,1.427-1.426V48.425C101,47.639,100.361,47,99.572,47z M22,56h38v2H22V56z M18,62c0,1.012-1.005,2-2,2H6
|
14 |
-
c-0.994,0-2-0.988-2-2V52c0-1.01,1.006-2,2-2h10c0.995,0,2,0.99,2,2V62z M65,63H22v-2h43V63z M72,53H22v-2h50V53z"/>
|
15 |
-
</svg>
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
4 |
+
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
+
width="102px" height="68px" viewBox="0 0 102 68" enable-background="new 0 0 102 68" xml:space="preserve">
|
6 |
+
<path fill="#CDCDCD" d="M99.572,1H2.427C1.639,1,1,1.638,1,2.425v17.149C1,20.361,1.639,21,2.427,21h97.146
|
7 |
+
c0.788,0,1.427-0.639,1.427-1.426V2.425C101,1.638,100.361,1,99.572,1z M22,10h38v2H22V10z M18,16c0,1.012-1.005,2-2,2H6
|
8 |
+
c-0.994,0-2-0.988-2-2V6c0-1.01,1.006-2,2-2h10c0.995,0,2,0.99,2,2V16z M65,17H22v-2h43V17z M72,7H22V5h50V7z"/>
|
9 |
+
<path fill="#CDCDCD" d="M99.572,24H2.427C1.639,24,1,24.638,1,25.425v17.149C1,43.361,1.639,44,2.427,44h97.146
|
10 |
+
c0.788,0,1.427-0.639,1.427-1.426V25.425C101,24.638,100.361,24,99.572,24z M22,33h38v2H22V33z M18,39c0,1.012-1.005,2-2,2H6
|
11 |
+
c-0.994,0-2-0.988-2-2V29c0-1.01,1.006-2,2-2h10c0.995,0,2,0.99,2,2V39z M65,40H22v-2h43V40z M72,30H22v-2h50V30z"/>
|
12 |
+
<path fill="#CDCDCD" d="M99.572,47H2.427C1.639,47,1,47.639,1,48.425v17.149C1,66.361,1.639,67,2.427,67h97.146
|
13 |
+
c0.788,0,1.427-0.639,1.427-1.426V48.425C101,47.639,100.361,47,99.572,47z M22,56h38v2H22V56z M18,62c0,1.012-1.005,2-2,2H6
|
14 |
+
c-0.994,0-2-0.988-2-2V52c0-1.01,1.006-2,2-2h10c0.995,0,2,0.99,2,2V62z M65,63H22v-2h43V63z M72,53H22v-2h50V53z"/>
|
15 |
+
</svg>
|
images/minicart.svg
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?xml version="1.0" encoding="utf-8"?>
|
2 |
-
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
-
viewBox="0 0 143 168" enable-background="new 0 0 143 168" xml:space="preserve">
|
6 |
-
<g>
|
7 |
-
<path fill="#D1ECF5" d="M115.2,8.9c0.8,0,1.5-0.6,1.5-1.4c0-3.7,0.6-4.6,4.3-4.6c3.7,0,4.3,0.9,4.3,4.6c0,0.8,0.7,1.4,1.5,1.4
|
8 |
-
c0.8,0,1.4-0.6,1.4-1.4c0-2.3,0.1-7.5-7.2-7.5c-7.3,0-7.2,5.2-7.2,7.5C113.9,8.3,114.4,8.9,115.2,8.9z"/>
|
9 |
-
<path fill="#D1ECF5" d="M139.7,33.2l-4.6-21.9c-0.1-0.6-0.6-1.1-1.2-1.1h-25.6c-0.6,0-1.2,0.5-1.2,1.1l-4.6,21.9
|
10 |
-
c-0.1,1,0.4,1.8,1.2,1.8h34.9C139.3,35,139.8,34.2,139.7,33.2z M114.6,16c-1.2,0-2.2-1-2.2-2.2s1-2.2,2.2-2.2s2.2,1,2.2,2.2
|
11 |
-
S115.8,16,114.6,16z M127.6,16c-1.2,0-2.2-1-2.2-2.2s1-2.2,2.2-2.2c1.2,0,2.2,1,2.2,2.2S128.8,16,127.6,16z"/>
|
12 |
-
</g>
|
13 |
-
</svg>
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
+
viewBox="0 0 143 168" enable-background="new 0 0 143 168" xml:space="preserve">
|
6 |
+
<g>
|
7 |
+
<path fill="#D1ECF5" d="M115.2,8.9c0.8,0,1.5-0.6,1.5-1.4c0-3.7,0.6-4.6,4.3-4.6c3.7,0,4.3,0.9,4.3,4.6c0,0.8,0.7,1.4,1.5,1.4
|
8 |
+
c0.8,0,1.4-0.6,1.4-1.4c0-2.3,0.1-7.5-7.2-7.5c-7.3,0-7.2,5.2-7.2,7.5C113.9,8.3,114.4,8.9,115.2,8.9z"/>
|
9 |
+
<path fill="#D1ECF5" d="M139.7,33.2l-4.6-21.9c-0.1-0.6-0.6-1.1-1.2-1.1h-25.6c-0.6,0-1.2,0.5-1.2,1.1l-4.6,21.9
|
10 |
+
c-0.1,1,0.4,1.8,1.2,1.8h34.9C139.3,35,139.8,34.2,139.7,33.2z M114.6,16c-1.2,0-2.2-1-2.2-2.2s1-2.2,2.2-2.2s2.2,1,2.2,2.2
|
11 |
+
S115.8,16,114.6,16z M127.6,16c-1.2,0-2.2-1-2.2-2.2s1-2.2,2.2-2.2c1.2,0,2.2,1,2.2,2.2S128.8,16,127.6,16z"/>
|
12 |
+
</g>
|
13 |
+
</svg>
|
images/product_browser.svg
CHANGED
@@ -1,24 +1,24 @@
|
|
1 |
-
<?xml version="1.0" encoding="utf-8"?>
|
2 |
-
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
-
viewBox="0 0 143 168" enable-background="new 0 0 143 168" xml:space="preserve">
|
6 |
-
<path fill="#D1ECF5" d="M40.1,72H2.9C1.4,72,0,73.4,0,74.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
7 |
-
C43,73.4,41.6,72,40.1,72z M30.1,112.6c0,1.3,0,1.5-1.4,1.5H14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
8 |
-
c1.5,0,1.4,0.1,1.4,1.5V112.6z"/>
|
9 |
-
<path fill="#D1ECF5" d="M90.1,72H52.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
10 |
-
C93,73.4,91.6,72,90.1,72z M80.1,112.6c0,1.3,0,1.5-1.4,1.5H64.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
11 |
-
c1.5,0,1.4,0.1,1.4,1.5V112.6z"/>
|
12 |
-
<path fill="#D1ECF5" d="M140.1,72h-37.3c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
13 |
-
C143,73.4,141.6,72,140.1,72z M130.1,112.6c0,1.3,0,1.5-1.4,1.5h-14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
14 |
-
c1.5,0,1.4,0.1,1.4,1.5V112.6z"/>
|
15 |
-
<path fill="#D1ECF5" d="M40.1,123H2.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
16 |
-
C43,124.4,41.6,123,40.1,123z M30.1,163.6c0,1.3,0,1.5-1.4,1.5H14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
17 |
-
c1.5,0,1.4,0.1,1.4,1.5V163.6z"/>
|
18 |
-
<path fill="#D1ECF5" d="M90.1,123H52.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
19 |
-
C93,124.4,91.6,123,90.1,123z M80.1,163.6c0,1.3,0,1.5-1.4,1.5H64.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
20 |
-
c1.5,0,1.4,0.1,1.4,1.5V163.6z"/>
|
21 |
-
<path fill="#D1ECF5" d="M140.1,123h-37.3c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
22 |
-
C143,124.4,141.6,123,140.1,123z M130.1,163.6c0,1.3,0,1.5-1.4,1.5h-14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
23 |
-
c1.5,0,1.4,0.1,1.4,1.5V163.6z"/>
|
24 |
-
</svg>
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
+
viewBox="0 0 143 168" enable-background="new 0 0 143 168" xml:space="preserve">
|
6 |
+
<path fill="#D1ECF5" d="M40.1,72H2.9C1.4,72,0,73.4,0,74.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
7 |
+
C43,73.4,41.6,72,40.1,72z M30.1,112.6c0,1.3,0,1.5-1.4,1.5H14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
8 |
+
c1.5,0,1.4,0.1,1.4,1.5V112.6z"/>
|
9 |
+
<path fill="#D1ECF5" d="M90.1,72H52.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
10 |
+
C93,73.4,91.6,72,90.1,72z M80.1,112.6c0,1.3,0,1.5-1.4,1.5H64.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
11 |
+
c1.5,0,1.4,0.1,1.4,1.5V112.6z"/>
|
12 |
+
<path fill="#D1ECF5" d="M140.1,72h-37.3c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9V74.9
|
13 |
+
C143,73.4,141.6,72,140.1,72z M130.1,112.6c0,1.3,0,1.5-1.4,1.5h-14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
14 |
+
c1.5,0,1.4,0.1,1.4,1.5V112.6z"/>
|
15 |
+
<path fill="#D1ECF5" d="M40.1,123H2.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
16 |
+
C43,124.4,41.6,123,40.1,123z M30.1,163.6c0,1.3,0,1.5-1.4,1.5H14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
17 |
+
c1.5,0,1.4,0.1,1.4,1.5V163.6z"/>
|
18 |
+
<path fill="#D1ECF5" d="M90.1,123H52.9c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
19 |
+
C93,124.4,91.6,123,90.1,123z M80.1,163.6c0,1.3,0,1.5-1.4,1.5H64.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
20 |
+
c1.5,0,1.4,0.1,1.4,1.5V163.6z"/>
|
21 |
+
<path fill="#D1ECF5" d="M140.1,123h-37.3c-1.4,0-2.9,1.4-2.9,2.9v39.2c0,1.5,1.4,2.9,2.9,2.9h37.3c1.4,0,2.9-1.4,2.9-2.9v-39.2
|
22 |
+
C143,124.4,141.6,123,140.1,123z M130.1,163.6c0,1.3,0,1.5-1.4,1.5h-14.3c-1.5,0-1.4-0.1-1.4-1.5v-4.4c0-1.3,0-1.5,1.4-1.5h14.3
|
23 |
+
c1.5,0,1.4,0.1,1.4,1.5V163.6z"/>
|
24 |
+
</svg>
|
images/search.svg
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
-
<?xml version="1.0" encoding="utf-8"?>
|
2 |
-
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
-
viewBox="0 0 143 168" enable-background="new 0 0 143 168" xml:space="preserve">
|
6 |
-
<path fill="#D1ECF5" d="M38.2,31.3c0.5,0.5,0.8,1.2,0.8,1.9c0,0.7-0.3,1.4-0.8,1.9C37.6,35.7,37,36,36.3,36c-0.8,0-1.4-0.3-1.9-0.8
|
7 |
-
L27,27.9c-2.5,1.8-5.4,2.6-8.5,2.6c-2,0-4-0.4-5.8-1.2c-1.9-0.8-3.5-1.9-4.8-3.2c-1.3-1.3-2.4-2.9-3.2-4.8c-0.8-1.9-1.2-3.8-1.2-5.8
|
8 |
-
s0.4-4,1.2-5.8c0.8-1.9,1.9-3.5,3.2-4.8c1.3-1.3,2.9-2.4,4.8-3.2c1.9-0.8,3.8-1.2,5.8-1.2s4,0.4,5.8,1.2c1.9,0.8,3.5,1.9,4.8,3.2
|
9 |
-
c1.3,1.3,2.4,2.9,3.2,4.8c0.8,1.9,1.2,3.8,1.2,5.8c0,3.1-0.9,6-2.6,8.5L38.2,31.3L38.2,31.3z M25.3,22.3c1.9-1.9,2.8-4.1,2.8-6.8
|
10 |
-
c0-2.6-0.9-4.9-2.8-6.8c-1.9-1.9-4.1-2.8-6.8-2.8c-2.6,0-4.9,0.9-6.8,2.8c-1.9,1.9-2.8,4.1-2.8,6.8c0,2.6,0.9,4.9,2.8,6.8
|
11 |
-
c1.9,1.9,4.1,2.8,6.8,2.8C21.1,25.1,23.4,24.1,25.3,22.3z"/>
|
12 |
-
</svg>
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
+
viewBox="0 0 143 168" enable-background="new 0 0 143 168" xml:space="preserve">
|
6 |
+
<path fill="#D1ECF5" d="M38.2,31.3c0.5,0.5,0.8,1.2,0.8,1.9c0,0.7-0.3,1.4-0.8,1.9C37.6,35.7,37,36,36.3,36c-0.8,0-1.4-0.3-1.9-0.8
|
7 |
+
L27,27.9c-2.5,1.8-5.4,2.6-8.5,2.6c-2,0-4-0.4-5.8-1.2c-1.9-0.8-3.5-1.9-4.8-3.2c-1.3-1.3-2.4-2.9-3.2-4.8c-0.8-1.9-1.2-3.8-1.2-5.8
|
8 |
+
s0.4-4,1.2-5.8c0.8-1.9,1.9-3.5,3.2-4.8c1.3-1.3,2.9-2.4,4.8-3.2c1.9-0.8,3.8-1.2,5.8-1.2s4,0.4,5.8,1.2c1.9,0.8,3.5,1.9,4.8,3.2
|
9 |
+
c1.3,1.3,2.4,2.9,3.2,4.8c0.8,1.9,1.2,3.8,1.2,5.8c0,3.1-0.9,6-2.6,8.5L38.2,31.3L38.2,31.3z M25.3,22.3c1.9-1.9,2.8-4.1,2.8-6.8
|
10 |
+
c0-2.6-0.9-4.9-2.8-6.8c-1.9-1.9-4.1-2.8-6.8-2.8c-2.6,0-4.9,0.9-6.8,2.8c-1.9,1.9-2.8,4.1-2.8,6.8c0,2.6,0.9,4.9,2.8,6.8
|
11 |
+
c1.9,1.9,4.1,2.8,6.8,2.8C21.1,25.1,23.4,24.1,25.3,22.3z"/>
|
12 |
+
</svg>
|
images/store.svg
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?xml version="1.0" encoding="utf-8"?>
|
2 |
-
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
-
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
-
viewBox="0 0 26 26" enable-background="new 0 0 26 26" xml:space="preserve">
|
6 |
-
<g>
|
7 |
-
<path fill="#434343" d="M0.1,24.6c0-0.3,0.2-0.5,0.5-0.5h24.9c0.3,0,0.5,0.2,0.5,0.5v1c0,0.3-0.2,0.5-0.5,0.5H0.6
|
8 |
-
c-0.3,0-0.5-0.2-0.5-0.5V24.6z"/>
|
9 |
-
<path fill="#434343" d="M26,9c-1-2-1.4-3.9-2-7.2C24,1.6,23.6,1,23,1H3C2.4,1,2,1.6,2,1.8C2,1.8,1,8,0,9c0,1,0,3,0,3s0,0,0,0.1h0
|
10 |
-
c0,0,0.1,0.5,0.7,0.8C0.8,12.9,0.9,13,1,13v0v9C1,22.6,1.6,23,2.1,23H10v-8.3c0-0.6,0.5-1,1.1-1h4c0.5,0,1,0.4,1,1V23h8
|
11 |
-
c0.5,0,1-0.4,1-0.9v-9v0c0.8-0.1,1-0.9,1-0.9h0c0,0,0-0.1,0-0.1S26,10,26,9z M7.8,19c0,0.5-0.2,1-0.8,1H5c-0.5,0-0.8-0.5-0.8-1v-4
|
12 |
-
c0-0.6,0.3-1,0.8-1H7c0.6,0,0.8,0.4,0.8,1V19z M21.8,19c0,0.5-0.2,1-0.8,1h-2c-0.5,0-0.8-0.5-0.8-1v-4c0-0.6,0.3-1,0.8-1h2
|
13 |
-
c0.5,0,0.8,0.4,0.8,1V19z M22,2.8c0,0,1.1,5.1,1.7,6.2c-1,0-2.7,0-2.7,0l-1-6.2H22z M23.8,10l0,0.8c-0.1,0.7-0.7,1.2-1.4,1.2
|
14 |
-
c-0.8,0-1.4-0.5-1.4-1.2c0,0,0-0.8,0-0.8H23.8z M16.3,10.5l0-0.5h2.8l0,0.8C19,11.5,18.4,12,17.7,12C16.9,12,16.3,11.4,16.3,10.5
|
15 |
-
C16.3,10.6,16.3,10.5,16.3,10.5L16.3,10.5z M18,2.8c0,0,0.8,4.9,1.1,6.2c0.3,0-2.8,0-2.8,0L16,2.8H18z M12,2.8h2L14.4,9h-2.7
|
16 |
-
L12,2.8z M11.6,10h2.8l0,0.7C14.3,11.4,13.7,12,13,12c-0.7,0-1.3-0.6-1.4-1.3L11.6,10z M8,2.8h2L9.7,9c0,0-2,0-2.7,0
|
17 |
-
C7.3,7.9,8,2.8,8,2.8z M6.9,10h2.8l0,0.5h0c0,0,0,0,0,0.1c0,0.8-0.6,1.4-1.4,1.4c-0.7,0-1.3-0.5-1.4-1.2L6.9,10z M4,2.8h2L5.1,9
|
18 |
-
c0,0-2,0-2.7,0C3.2,7.6,4,2.8,4,2.8z M2.2,10H5c0,0,0,0.6,0,0.6C5,11.4,4.4,12,3.6,12c-0.7,0-1.3-0.5-1.4-1.2L2.2,10z"/>
|
19 |
-
</g>
|
20 |
-
</svg>
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
+
viewBox="0 0 26 26" enable-background="new 0 0 26 26" xml:space="preserve">
|
6 |
+
<g>
|
7 |
+
<path fill="#434343" d="M0.1,24.6c0-0.3,0.2-0.5,0.5-0.5h24.9c0.3,0,0.5,0.2,0.5,0.5v1c0,0.3-0.2,0.5-0.5,0.5H0.6
|
8 |
+
c-0.3,0-0.5-0.2-0.5-0.5V24.6z"/>
|
9 |
+
<path fill="#434343" d="M26,9c-1-2-1.4-3.9-2-7.2C24,1.6,23.6,1,23,1H3C2.4,1,2,1.6,2,1.8C2,1.8,1,8,0,9c0,1,0,3,0,3s0,0,0,0.1h0
|
10 |
+
c0,0,0.1,0.5,0.7,0.8C0.8,12.9,0.9,13,1,13v0v9C1,22.6,1.6,23,2.1,23H10v-8.3c0-0.6,0.5-1,1.1-1h4c0.5,0,1,0.4,1,1V23h8
|
11 |
+
c0.5,0,1-0.4,1-0.9v-9v0c0.8-0.1,1-0.9,1-0.9h0c0,0,0-0.1,0-0.1S26,10,26,9z M7.8,19c0,0.5-0.2,1-0.8,1H5c-0.5,0-0.8-0.5-0.8-1v-4
|
12 |
+
c0-0.6,0.3-1,0.8-1H7c0.6,0,0.8,0.4,0.8,1V19z M21.8,19c0,0.5-0.2,1-0.8,1h-2c-0.5,0-0.8-0.5-0.8-1v-4c0-0.6,0.3-1,0.8-1h2
|
13 |
+
c0.5,0,0.8,0.4,0.8,1V19z M22,2.8c0,0,1.1,5.1,1.7,6.2c-1,0-2.7,0-2.7,0l-1-6.2H22z M23.8,10l0,0.8c-0.1,0.7-0.7,1.2-1.4,1.2
|
14 |
+
c-0.8,0-1.4-0.5-1.4-1.2c0,0,0-0.8,0-0.8H23.8z M16.3,10.5l0-0.5h2.8l0,0.8C19,11.5,18.4,12,17.7,12C16.9,12,16.3,11.4,16.3,10.5
|
15 |
+
C16.3,10.6,16.3,10.5,16.3,10.5L16.3,10.5z M18,2.8c0,0,0.8,4.9,1.1,6.2c0.3,0-2.8,0-2.8,0L16,2.8H18z M12,2.8h2L14.4,9h-2.7
|
16 |
+
L12,2.8z M11.6,10h2.8l0,0.7C14.3,11.4,13.7,12,13,12c-0.7,0-1.3-0.6-1.4-1.3L11.6,10z M8,2.8h2L9.7,9c0,0-2,0-2.7,0
|
17 |
+
C7.3,7.9,8,2.8,8,2.8z M6.9,10h2.8l0,0.5h0c0,0,0,0,0,0.1c0,0.8-0.6,1.4-1.4,1.4c-0.7,0-1.3-0.5-1.4-1.2L6.9,10z M4,2.8h2L5.1,9
|
18 |
+
c0,0-2,0-2.7,0C3.2,7.6,4,2.8,4,2.8z M2.2,10H5c0,0,0,0.6,0,0.6C5,11.4,4.4,12,3.6,12c-0.7,0-1.3-0.5-1.4-1.2L2.2,10z"/>
|
19 |
+
</g>
|
20 |
+
</svg>
|
images/table.svg
CHANGED
@@ -1,32 +1,32 @@
|
|
1 |
-
<?xml version="1.0" encoding="utf-8"?>
|
2 |
-
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
4 |
-
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
-
width="102px" height="68px" viewBox="0 0 102 68" enable-background="new 0 0 102 68" xml:space="preserve">
|
6 |
-
<g>
|
7 |
-
<rect x="1.5" y="3" fill="#CDCDCD" width="30" height="6"/>
|
8 |
-
<rect x="33.5" y="3" fill="#CDCDCD" width="33" height="6"/>
|
9 |
-
<rect x="68.5" y="3" fill="#CDCDCD" width="32" height="6"/>
|
10 |
-
<rect x="33.5" y="11" fill="#CDCDCD" width="33" height="6"/>
|
11 |
-
<rect x="1.5" y="11" fill="#CDCDCD" width="30" height="6"/>
|
12 |
-
<rect x="68.5" y="11" fill="#CDCDCD" width="32" height="6"/>
|
13 |
-
<rect x="68.5" y="19" fill="#CDCDCD" width="32" height="6"/>
|
14 |
-
<rect x="1.5" y="19" fill="#CDCDCD" width="30" height="6"/>
|
15 |
-
<rect x="33.5" y="19" fill="#CDCDCD" width="33" height="6"/>
|
16 |
-
<rect x="1.5" y="27" fill="#CDCDCD" width="30" height="6"/>
|
17 |
-
<rect x="33.5" y="27" fill="#CDCDCD" width="33" height="6"/>
|
18 |
-
<rect x="68.5" y="27" fill="#CDCDCD" width="32" height="6"/>
|
19 |
-
<rect x="68.5" y="35" fill="#CDCDCD" width="32" height="6"/>
|
20 |
-
<rect x="1.5" y="35" fill="#CDCDCD" width="30" height="6"/>
|
21 |
-
<rect x="33.5" y="35" fill="#CDCDCD" width="33" height="6"/>
|
22 |
-
<rect x="1.5" y="43" fill="#CDCDCD" width="30" height="6"/>
|
23 |
-
<rect x="68.5" y="43" fill="#CDCDCD" width="32" height="6"/>
|
24 |
-
<rect x="33.5" y="43" fill="#CDCDCD" width="33" height="6"/>
|
25 |
-
<rect x="1.5" y="51" fill="#CDCDCD" width="30" height="6"/>
|
26 |
-
<rect x="68.5" y="51" fill="#CDCDCD" width="32" height="6"/>
|
27 |
-
<rect x="33.5" y="51" fill="#CDCDCD" width="33" height="6"/>
|
28 |
-
<rect x="1.5" y="59" fill="#CDCDCD" width="30" height="6"/>
|
29 |
-
<rect x="33.5" y="59" fill="#CDCDCD" width="33" height="6"/>
|
30 |
-
<rect x="68.5" y="59" fill="#CDCDCD" width="32" height="6"/>
|
31 |
-
</g>
|
32 |
-
</svg>
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
4 |
+
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5 |
+
width="102px" height="68px" viewBox="0 0 102 68" enable-background="new 0 0 102 68" xml:space="preserve">
|
6 |
+
<g>
|
7 |
+
<rect x="1.5" y="3" fill="#CDCDCD" width="30" height="6"/>
|
8 |
+
<rect x="33.5" y="3" fill="#CDCDCD" width="33" height="6"/>
|
9 |
+
<rect x="68.5" y="3" fill="#CDCDCD" width="32" height="6"/>
|
10 |
+
<rect x="33.5" y="11" fill="#CDCDCD" width="33" height="6"/>
|
11 |
+
<rect x="1.5" y="11" fill="#CDCDCD" width="30" height="6"/>
|
12 |
+
<rect x="68.5" y="11" fill="#CDCDCD" width="32" height="6"/>
|
13 |
+
<rect x="68.5" y="19" fill="#CDCDCD" width="32" height="6"/>
|
14 |
+
<rect x="1.5" y="19" fill="#CDCDCD" width="30" height="6"/>
|
15 |
+
<rect x="33.5" y="19" fill="#CDCDCD" width="33" height="6"/>
|
16 |
+
<rect x="1.5" y="27" fill="#CDCDCD" width="30" height="6"/>
|
17 |
+
<rect x="33.5" y="27" fill="#CDCDCD" width="33" height="6"/>
|
18 |
+
<rect x="68.5" y="27" fill="#CDCDCD" width="32" height="6"/>
|
19 |
+
<rect x="68.5" y="35" fill="#CDCDCD" width="32" height="6"/>
|
20 |
+
<rect x="1.5" y="35" fill="#CDCDCD" width="30" height="6"/>
|
21 |
+
<rect x="33.5" y="35" fill="#CDCDCD" width="33" height="6"/>
|
22 |
+
<rect x="1.5" y="43" fill="#CDCDCD" width="30" height="6"/>
|
23 |
+
<rect x="68.5" y="43" fill="#CDCDCD" width="32" height="6"/>
|
24 |
+
<rect x="33.5" y="43" fill="#CDCDCD" width="33" height="6"/>
|
25 |
+
<rect x="1.5" y="51" fill="#CDCDCD" width="30" height="6"/>
|
26 |
+
<rect x="68.5" y="51" fill="#CDCDCD" width="32" height="6"/>
|
27 |
+
<rect x="33.5" y="51" fill="#CDCDCD" width="33" height="6"/>
|
28 |
+
<rect x="1.5" y="59" fill="#CDCDCD" width="30" height="6"/>
|
29 |
+
<rect x="33.5" y="59" fill="#CDCDCD" width="33" height="6"/>
|
30 |
+
<rect x="68.5" y="59" fill="#CDCDCD" width="32" height="6"/>
|
31 |
+
</g>
|
32 |
+
</svg>
|
includes/class-ecwid-integration-aiosp.php
CHANGED
@@ -1,61 +1,61 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Ecwid_Integration_All_In_One_SEO_Pack
|
4 |
-
{
|
5 |
-
// Store intermediate sitemap generation results here
|
6 |
-
protected $sitemap = array();
|
7 |
-
|
8 |
-
public function __construct()
|
9 |
-
{
|
10 |
-
add_action( 'wp', array( $this, 'disable_seo_on_escaped_fragment' ) );
|
11 |
-
|
12 |
-
add_filter( 'aiosp_sitemap_extra', array( $this, 'aiosp_hook_sitemap_extra' ) );
|
13 |
-
add_filter( 'aiosp_sitemap_custom_ecwid', array( $this, 'aiosp_hook_sitemap_content') );
|
14 |
-
}
|
15 |
-
|
16 |
-
// Disable titles, descriptions and canonical link on ecwid _escaped_fragment_ pages
|
17 |
-
public function disable_seo_on_escaped_fragment()
|
18 |
-
{
|
19 |
-
if (!array_key_exists('_escaped_fragment_', $_GET) || !ecwid_page_has_productbrowser()) {
|
20 |
-
return;
|
21 |
-
}
|
22 |
-
|
23 |
-
global $aioseop_options;
|
24 |
-
|
25 |
-
$aioseop_options['aiosp_can'] = false;
|
26 |
-
add_filter( 'aioseop_title', '__return_null' );
|
27 |
-
add_filter( 'aioseop_description', '__return_null' );
|
28 |
-
}
|
29 |
-
|
30 |
-
// Hook that new sitemap type to aiosp sitemap
|
31 |
-
public function aiosp_hook_sitemap_extra( $params )
|
32 |
-
{
|
33 |
-
return array_merge($params, array('ecwid'));
|
34 |
-
}
|
35 |
-
|
36 |
-
// Hook that adds content to aiosp sitemap
|
37 |
-
public function aiosp_hook_sitemap_content()
|
38 |
-
{
|
39 |
-
|
40 |
-
$this->sitemap = array();
|
41 |
-
|
42 |
-
ecwid_build_sitemap( array($this, 'sitemap_callback') );
|
43 |
-
|
44 |
-
$sitemap = $this->sitemap;
|
45 |
-
$this->sitemap = null;
|
46 |
-
|
47 |
-
return $sitemap;
|
48 |
-
}
|
49 |
-
|
50 |
-
// A callback for the streaming sitemap builder
|
51 |
-
public function sitemap_callback($url, $priority, $frequency)
|
52 |
-
{
|
53 |
-
array_push($this->sitemap, array(
|
54 |
-
'loc' => $url,
|
55 |
-
'priority' => $priority,
|
56 |
-
'changefreq' => $frequency
|
57 |
-
));
|
58 |
-
}
|
59 |
-
}
|
60 |
-
|
61 |
$ecwid_integration_aiosp = new Ecwid_Integration_All_In_One_SEO_Pack();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecwid_Integration_All_In_One_SEO_Pack
|
4 |
+
{
|
5 |
+
// Store intermediate sitemap generation results here
|
6 |
+
protected $sitemap = array();
|
7 |
+
|
8 |
+
public function __construct()
|
9 |
+
{
|
10 |
+
add_action( 'wp', array( $this, 'disable_seo_on_escaped_fragment' ) );
|
11 |
+
|
12 |
+
add_filter( 'aiosp_sitemap_extra', array( $this, 'aiosp_hook_sitemap_extra' ) );
|
13 |
+
add_filter( 'aiosp_sitemap_custom_ecwid', array( $this, 'aiosp_hook_sitemap_content') );
|
14 |
+
}
|
15 |
+
|
16 |
+
// Disable titles, descriptions and canonical link on ecwid _escaped_fragment_ pages
|
17 |
+
public function disable_seo_on_escaped_fragment()
|
18 |
+
{
|
19 |
+
if (!array_key_exists('_escaped_fragment_', $_GET) || !ecwid_page_has_productbrowser()) {
|
20 |
+
return;
|
21 |
+
}
|
22 |
+
|
23 |
+
global $aioseop_options;
|
24 |
+
|
25 |
+
$aioseop_options['aiosp_can'] = false;
|
26 |
+
add_filter( 'aioseop_title', '__return_null' );
|
27 |
+
add_filter( 'aioseop_description', '__return_null' );
|
28 |
+
}
|
29 |
+
|
30 |
+
// Hook that new sitemap type to aiosp sitemap
|
31 |
+
public function aiosp_hook_sitemap_extra( $params )
|
32 |
+
{
|
33 |
+
return array_merge($params, array('ecwid'));
|
34 |
+
}
|
35 |
+
|
36 |
+
// Hook that adds content to aiosp sitemap
|
37 |
+
public function aiosp_hook_sitemap_content()
|
38 |
+
{
|
39 |
+
|
40 |
+
$this->sitemap = array();
|
41 |
+
|
42 |
+
ecwid_build_sitemap( array($this, 'sitemap_callback') );
|
43 |
+
|
44 |
+
$sitemap = $this->sitemap;
|
45 |
+
$this->sitemap = null;
|
46 |
+
|
47 |
+
return $sitemap;
|
48 |
+
}
|
49 |
+
|
50 |
+
// A callback for the streaming sitemap builder
|
51 |
+
public function sitemap_callback($url, $priority, $frequency)
|
52 |
+
{
|
53 |
+
array_push($this->sitemap, array(
|
54 |
+
'loc' => $url,
|
55 |
+
'priority' => $priority,
|
56 |
+
'changefreq' => $frequency
|
57 |
+
));
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
$ecwid_integration_aiosp = new Ecwid_Integration_All_In_One_SEO_Pack();
|
includes/class-ecwid-integration-wpseo.php
CHANGED
@@ -1,104 +1,104 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Ecwid_Integration_WordPress_SEO_By_Yoast
|
4 |
-
{
|
5 |
-
// Store intermediate sitemap generation results here
|
6 |
-
protected $sitemap = array();
|
7 |
-
|
8 |
-
public function __construct()
|
9 |
-
{
|
10 |
-
add_action( 'wp', array( $this, 'disable_seo_on_escaped_fragment' ) );
|
11 |
-
add_action( 'template_redirect', array( $this, 'disable_rewrite_titles' ) );
|
12 |
-
|
13 |
-
if (ecwid_is_paid_account() && ecwid_is_store_page_available()) {
|
14 |
-
add_filter( 'wpseo_sitemap_index', array( $this, 'wpseo_hook_sitemap_index' ) );
|
15 |
-
add_filter( 'wpseo_do_sitemap_ecwid', array( $this, 'wpseo_hook_do_sitemap' ) );
|
16 |
-
}
|
17 |
-
|
18 |
-
add_filter( 'ecwid_title_separator', array( $this, 'get_title_separator' ) );
|
19 |
-
}
|
20 |
-
|
21 |
-
// Disable titles, descriptions and canonical link on ecwid _escaped_fragment_ pages
|
22 |
-
public function disable_seo_on_escaped_fragment()
|
23 |
-
{
|
24 |
-
if (!array_key_exists('_escaped_fragment_', $_GET) || !ecwid_page_has_productbrowser()) {
|
25 |
-
return;
|
26 |
-
}
|
27 |
-
|
28 |
-
global $wpseo_front;
|
29 |
-
// Canonical
|
30 |
-
|
31 |
-
if (empty($wpseo_front)) {
|
32 |
-
$wpseo_front = WPSEO_Frontend::get_instance();
|
33 |
-
}
|
34 |
-
|
35 |
-
remove_action( 'wpseo_head', array( $wpseo_front, 'canonical' ), 20 );
|
36 |
-
// Description
|
37 |
-
remove_action( 'wpseo_head', array( $wpseo_front, 'metadesc' ), 10 );
|
38 |
-
}
|
39 |
-
|
40 |
-
public function disable_rewrite_titles()
|
41 |
-
{
|
42 |
-
global $wpseo_front;
|
43 |
-
|
44 |
-
// Newer versions of Wordpress SEO assign their rewrite on this stage
|
45 |
-
remove_action( 'template_redirect', array( $wpseo_front, 'force_rewrite_output_buffer' ), 99999 );
|
46 |
-
}
|
47 |
-
|
48 |
-
// Hook that new sitemap type to aiosp sitemap
|
49 |
-
public function wpseo_hook_sitemap_index( )
|
50 |
-
{
|
51 |
-
$now = date('c', time());;
|
52 |
-
$sitemap_url = wpseo_xml_sitemaps_base_url('ecwid-sitemap.xml');
|
53 |
-
return <<<XML
|
54 |
-
<sitemap>
|
55 |
-
<loc>$sitemap_url</loc>
|
56 |
-
<lastmod>$now</lastmod>
|
57 |
-
</sitemap>
|
58 |
-
XML;
|
59 |
-
}
|
60 |
-
|
61 |
-
// Hook that adds content to aiosp sitemap
|
62 |
-
public function wpseo_hook_do_sitemap()
|
63 |
-
{
|
64 |
-
|
65 |
-
$this->sitemap = <<<XML
|
66 |
-
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
67 |
-
XML;
|
68 |
-
|
69 |
-
|
70 |
-
ecwid_build_sitemap( array($this, 'sitemap_callback') );
|
71 |
-
|
72 |
-
$this->sitemap .= '</urlset>';
|
73 |
-
|
74 |
-
$sitemap = $this->sitemap;
|
75 |
-
$this->sitemap = null;
|
76 |
-
|
77 |
-
$GLOBALS['wpseo_sitemaps']->set_sitemap($sitemap);
|
78 |
-
}
|
79 |
-
|
80 |
-
// A callback for the streaming sitemap builder
|
81 |
-
public function sitemap_callback($url, $priority, $frequency)
|
82 |
-
{
|
83 |
-
$url = htmlspecialchars($url);
|
84 |
-
$this->sitemap .= <<<XML
|
85 |
-
<url>
|
86 |
-
<loc>$url</loc>
|
87 |
-
<changefreq>$frequency</changefreq>
|
88 |
-
<priority>$priority</priority>
|
89 |
-
</url>
|
90 |
-
|
91 |
-
XML;
|
92 |
-
}
|
93 |
-
|
94 |
-
public function get_title_separator($separator)
|
95 |
-
{
|
96 |
-
if (class_exists('WPSEO_Option_Titles')) {
|
97 |
-
$separator = wpseo_replace_vars( '%%sep%%', array() );
|
98 |
-
}
|
99 |
-
|
100 |
-
return $separator;
|
101 |
-
}
|
102 |
-
}
|
103 |
-
|
104 |
-
$ecwid_integration_wpseo = new Ecwid_Integration_WordPress_SEO_By_Yoast();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecwid_Integration_WordPress_SEO_By_Yoast
|
4 |
+
{
|
5 |
+
// Store intermediate sitemap generation results here
|
6 |
+
protected $sitemap = array();
|
7 |
+
|
8 |
+
public function __construct()
|
9 |
+
{
|
10 |
+
add_action( 'wp', array( $this, 'disable_seo_on_escaped_fragment' ) );
|
11 |
+
add_action( 'template_redirect', array( $this, 'disable_rewrite_titles' ) );
|
12 |
+
|
13 |
+
if (ecwid_is_paid_account() && ecwid_is_store_page_available()) {
|
14 |
+
add_filter( 'wpseo_sitemap_index', array( $this, 'wpseo_hook_sitemap_index' ) );
|
15 |
+
add_filter( 'wpseo_do_sitemap_ecwid', array( $this, 'wpseo_hook_do_sitemap' ) );
|
16 |
+
}
|
17 |
+
|
18 |
+
add_filter( 'ecwid_title_separator', array( $this, 'get_title_separator' ) );
|
19 |
+
}
|
20 |
+
|
21 |
+
// Disable titles, descriptions and canonical link on ecwid _escaped_fragment_ pages
|
22 |
+
public function disable_seo_on_escaped_fragment()
|
23 |
+
{
|
24 |
+
if (!array_key_exists('_escaped_fragment_', $_GET) || !ecwid_page_has_productbrowser()) {
|
25 |
+
return;
|
26 |
+
}
|
27 |
+
|
28 |
+
global $wpseo_front;
|
29 |
+
// Canonical
|
30 |
+
|
31 |
+
if (empty($wpseo_front)) {
|
32 |
+
$wpseo_front = WPSEO_Frontend::get_instance();
|
33 |
+
}
|
34 |
+
|
35 |
+
remove_action( 'wpseo_head', array( $wpseo_front, 'canonical' ), 20 );
|
36 |
+
// Description
|
37 |
+
remove_action( 'wpseo_head', array( $wpseo_front, 'metadesc' ), 10 );
|
38 |
+
}
|
39 |
+
|
40 |
+
public function disable_rewrite_titles()
|
41 |
+
{
|
42 |
+
global $wpseo_front;
|
43 |
+
|
44 |
+
// Newer versions of Wordpress SEO assign their rewrite on this stage
|
45 |
+
remove_action( 'template_redirect', array( $wpseo_front, 'force_rewrite_output_buffer' ), 99999 );
|
46 |
+
}
|
47 |
+
|
48 |
+
// Hook that new sitemap type to aiosp sitemap
|
49 |
+
public function wpseo_hook_sitemap_index( )
|
50 |
+
{
|
51 |
+
$now = date('c', time());;
|
52 |
+
$sitemap_url = wpseo_xml_sitemaps_base_url('ecwid-sitemap.xml');
|
53 |
+
return <<<XML
|
54 |
+
<sitemap>
|
55 |
+
<loc>$sitemap_url</loc>
|
56 |
+
<lastmod>$now</lastmod>
|
57 |
+
</sitemap>
|
58 |
+
XML;
|
59 |
+
}
|
60 |
+
|
61 |
+
// Hook that adds content to aiosp sitemap
|
62 |
+
public function wpseo_hook_do_sitemap()
|
63 |
+
{
|
64 |
+
|
65 |
+
$this->sitemap = <<<XML
|
66 |
+
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
67 |
+
XML;
|
68 |
+
|
69 |
+
|
70 |
+
ecwid_build_sitemap( array($this, 'sitemap_callback') );
|
71 |
+
|
72 |
+
$this->sitemap .= '</urlset>';
|
73 |
+
|
74 |
+
$sitemap = $this->sitemap;
|
75 |
+
$this->sitemap = null;
|
76 |
+
|
77 |
+
$GLOBALS['wpseo_sitemaps']->set_sitemap($sitemap);
|
78 |
+
}
|
79 |
+
|
80 |
+
// A callback for the streaming sitemap builder
|
81 |
+
public function sitemap_callback($url, $priority, $frequency)
|
82 |
+
{
|
83 |
+
$url = htmlspecialchars($url);
|
84 |
+
$this->sitemap .= <<<XML
|
85 |
+
<url>
|
86 |
+
<loc>$url</loc>
|
87 |
+
<changefreq>$frequency</changefreq>
|
88 |
+
<priority>$priority</priority>
|
89 |
+
</url>
|
90 |
+
|
91 |
+
XML;
|
92 |
+
}
|
93 |
+
|
94 |
+
public function get_title_separator($separator)
|
95 |
+
{
|
96 |
+
if (class_exists('WPSEO_Option_Titles')) {
|
97 |
+
$separator = wpseo_replace_vars( '%%sep%%', array() );
|
98 |
+
}
|
99 |
+
|
100 |
+
return $separator;
|
101 |
+
}
|
102 |
+
}
|
103 |
+
|
104 |
+
$ecwid_integration_wpseo = new Ecwid_Integration_WordPress_SEO_By_Yoast();
|
includes/class-ecwid-kissmetrics.php
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecwid_Kissmetrics {
|
4 |
+
|
5 |
+
const API_KEY = '73a63d56f0a933d42635f7a79e540db8cdab1fba';
|
6 |
+
const STORAGE_OPTION_NAME = 'ecwid_kissmetrics';
|
7 |
+
const EVENT_PREFIX = 'wp-plugin ';
|
8 |
+
|
9 |
+
static $instance;
|
10 |
+
|
11 |
+
public static function init() {
|
12 |
+
self::$instance = new Ecwid_Kissmetrics();
|
13 |
+
}
|
14 |
+
|
15 |
+
public static function record($event) {
|
16 |
+
$fire_in_background = array('wpPluginDeactivated');
|
17 |
+
|
18 |
+
if (in_array($event, $fire_in_background)) {
|
19 |
+
self::$instance->_record(self::EVENT_PREFIX . $event);
|
20 |
+
} else {
|
21 |
+
self::$instance->_enqueue_record(self::EVENT_PREFIX . $event);
|
22 |
+
}
|
23 |
+
}
|
24 |
+
|
25 |
+
private function __construct() {
|
26 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_script' ) );
|
27 |
+
}
|
28 |
+
|
29 |
+
public function enqueue_script() {
|
30 |
+
wp_enqueue_script('ecwid-kissmetrics', 'https://scripts.kissmetrics.com/' . self::API_KEY . '.2.js');
|
31 |
+
wp_enqueue_script('ecwid-kissmetrics-events', ECWID_PLUGIN_URL . 'js/kissmetrics.js', array( 'ecwid-kissmetrics' ) );
|
32 |
+
|
33 |
+
$kissmetrics = array(
|
34 |
+
'events' => $this->_get_pending_events()
|
35 |
+
);
|
36 |
+
|
37 |
+
$this->_flush_events();
|
38 |
+
|
39 |
+
$store_id = get_ecwid_store_id();
|
40 |
+
if ($store_id != ECWID_DEMO_STORE_ID) {
|
41 |
+
$kissmetrics['store_id'] = $store_id;
|
42 |
+
}
|
43 |
+
|
44 |
+
wp_localize_script('ecwid-kissmetrics-events', 'ecwid_kissmetrics', $kissmetrics);
|
45 |
+
}
|
46 |
+
|
47 |
+
protected function _record($event) {
|
48 |
+
|
49 |
+
$params = array(
|
50 |
+
'_k' => self::API_KEY,
|
51 |
+
'_p' => $_COOKIE['km_ai'],
|
52 |
+
'_n' => $event
|
53 |
+
);
|
54 |
+
$query = http_build_query($params);
|
55 |
+
//die(var_dump($_COOKIE));
|
56 |
+
|
57 |
+
$result = wp_remote_get('http://trk.kissmetrics.com/e?' . $query);
|
58 |
+
}
|
59 |
+
|
60 |
+
protected function _enqueue_record( $event ) {
|
61 |
+
$events = $this->_get_pending_events();
|
62 |
+
|
63 |
+
array_push( $events, array( 'event' => $event ) );
|
64 |
+
|
65 |
+
update_option ( self::STORAGE_OPTION_NAME, $events );
|
66 |
+
}
|
67 |
+
|
68 |
+
protected function _get_pending_events() {
|
69 |
+
$value = get_option( self::STORAGE_OPTION_NAME );
|
70 |
+
|
71 |
+
if ( !is_array($value) ) {
|
72 |
+
$value = array();
|
73 |
+
}
|
74 |
+
|
75 |
+
return $value;
|
76 |
+
}
|
77 |
+
|
78 |
+
protected function _flush_events() {
|
79 |
+
update_option( self::STORAGE_OPTION_NAME, null );
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
+
Ecwid_Kissmetrics::init();
|
includes/class-ecwid-message-manager.php
CHANGED
@@ -1,298 +1,298 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Ecwid_Message_Manager
|
4 |
-
{
|
5 |
-
protected $messages = array();
|
6 |
-
|
7 |
-
protected function Ecwid_Message_Manager()
|
8 |
-
{
|
9 |
-
$this->init_messages();
|
10 |
-
}
|
11 |
-
|
12 |
-
public static function show_messages()
|
13 |
-
{
|
14 |
-
$mm = self::get_instance();
|
15 |
-
|
16 |
-
foreach ($mm->messages as $name => $message) {
|
17 |
-
if ($mm->need_to_show_message($name)) {
|
18 |
-
$mm->show_message($name);
|
19 |
-
}
|
20 |
-
}
|
21 |
-
}
|
22 |
-
|
23 |
-
public static function get_oauth_message($wp_remote_post_error = '')
|
24 |
-
{
|
25 |
-
if (!$wp_remote_post_error) {
|
26 |
-
$message = sprintf(
|
27 |
-
__( <<<TXT
|
28 |
-
Sorry, there is a problem. This page is supposed to display your store control panel. But this WordPress site doesn't seem to be able to connect to the Ecwid server, that's why there is no dashboard. This is caused by your server misconfiguration and can be fixed by your hosting provider.
|
29 |
-
<br /><br />
|
30 |
-
Here is a more techy description of the problem, please send it to your hosting provider: "The WordPress function wp_remote_post() failed to connect a remote server because of some error. Seems like HTTP POST requests are disabled on this server".
|
31 |
-
<br /><br />
|
32 |
-
Please also feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you handle it with your hosting.
|
33 |
-
<br /><br />
|
34 |
-
Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.
|
35 |
-
TXT
|
36 |
-
|
37 |
-
),
|
38 |
-
'href="mailto:wordpress@ecwid.com"',
|
39 |
-
'target="_blank" href="http://my.ecwid.com"',
|
40 |
-
'href="' . ecwid_get_store_page_url() . '" target="_blank"',
|
41 |
-
ecwid_get_store_page_url()
|
42 |
-
);
|
43 |
-
} else {
|
44 |
-
$message = sprintf(
|
45 |
-
__('Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn\'t seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.'),
|
46 |
-
$wp_remote_post_error,
|
47 |
-
'href="mailto:wordpress@ecwid.com"',
|
48 |
-
'target="_blank" href="http://my.ecwid.com"',
|
49 |
-
'href="' . ecwid_get_store_page_url() . '" target="_blank"',
|
50 |
-
ecwid_get_store_page_url()
|
51 |
-
);
|
52 |
-
}
|
53 |
-
|
54 |
-
return $message;
|
55 |
-
}
|
56 |
-
|
57 |
-
public static function show_message($name, $params = array())
|
58 |
-
{
|
59 |
-
$mm = self::get_instance();
|
60 |
-
|
61 |
-
$mm->need_to_show_message($name);
|
62 |
-
|
63 |
-
if (!isset($mm->messages[$name]) && empty($params)) {
|
64 |
-
trigger_error('Ecwid plugin error: unknown message ' . $name);
|
65 |
-
return;
|
66 |
-
}
|
67 |
-
|
68 |
-
$params = $mm->get_message_params($name, $params);
|
69 |
-
|
70 |
-
$type = $params['type'];
|
71 |
-
|
72 |
-
$title = $params['title'];
|
73 |
-
$message = $params['message'];
|
74 |
-
|
75 |
-
$primary_button = isset($params['primary_title']);
|
76 |
-
if ($primary_button) {
|
77 |
-
$primary_title = $params['primary_title'];
|
78 |
-
$primary_url = $params['primary_url'];
|
79 |
-
$primary_blank = @$params['primary_blank'];
|
80 |
-
}
|
81 |
-
$secondary_button = isset($params['secondary_title']);
|
82 |
-
if ($secondary_button) {
|
83 |
-
$secondary_title = $params['secondary_title'];
|
84 |
-
$secondary_url = $params['secondary_url'];
|
85 |
-
$secondary_blank = @$params['secondary_blank'];
|
86 |
-
}
|
87 |
-
|
88 |
-
$do_not_show_again = true == $params['hideable'];
|
89 |
-
|
90 |
-
include ECWID_PLUGIN_DIR . '/templates/admin-message.php';
|
91 |
-
}
|
92 |
-
|
93 |
-
public static function disable_message($name)
|
94 |
-
{
|
95 |
-
$messages = get_option('ecwid_disabled_messages');
|
96 |
-
$messages[$name] = true;
|
97 |
-
|
98 |
-
update_option('ecwid_disabled_messages', $messages);
|
99 |
-
}
|
100 |
-
|
101 |
-
public static function enable_message($name)
|
102 |
-
{
|
103 |
-
$messages = get_option('ecwid_disabled_messages');
|
104 |
-
if (isset($messages['name']))
|
105 |
-
unset($messages['name']);
|
106 |
-
|
107 |
-
update_option('ecwid_disabled_messages', $messages);
|
108 |
-
}
|
109 |
-
|
110 |
-
public static function reset_hidden_messages()
|
111 |
-
{
|
112 |
-
$hidden_messages = array();
|
113 |
-
|
114 |
-
$messages = self::get_default_messages();
|
115 |
-
foreach ($messages as $name => $message) {
|
116 |
-
if (isset($message['default']) && $message['default'] == 'hidden') {
|
117 |
-
$hidden_messages[$name] = true;
|
118 |
-
}
|
119 |
-
}
|
120 |
-
|
121 |
-
update_option('ecwid_disabled_messages', array());
|
122 |
-
}
|
123 |
-
|
124 |
-
protected static function get_instance()
|
125 |
-
{
|
126 |
-
static $instance = null;
|
127 |
-
|
128 |
-
if (is_null($instance)) {
|
129 |
-
$instance = new Ecwid_Message_Manager();
|
130 |
-
}
|
131 |
-
|
132 |
-
return $instance;
|
133 |
-
}
|
134 |
-
|
135 |
-
protected function init_messages()
|
136 |
-
{
|
137 |
-
$this->messages = $this->get_default_messages();
|
138 |
-
|
139 |
-
$hidden_messages = get_option('ecwid_disabled_messages');
|
140 |
-
|
141 |
-
if ( !empty( $hidden_messages ) ) {
|
142 |
-
foreach ($hidden_messages as $name => $message) {
|
143 |
-
unset ($this->messages[$name]);
|
144 |
-
}
|
145 |
-
}
|
146 |
-
}
|
147 |
-
|
148 |
-
protected function get_message_params($name, $params)
|
149 |
-
{
|
150 |
-
if (is_array($name)) {
|
151 |
-
$params = $name;
|
152 |
-
$name = '';
|
153 |
-
}
|
154 |
-
|
155 |
-
if (isset($this->messages[$name])) {
|
156 |
-
$params = array_merge(
|
157 |
-
array('type' => 'info', 'title' => '', 'message' => '', 'hideable' => false),
|
158 |
-
$this->messages[$name],
|
159 |
-
$params
|
160 |
-
);
|
161 |
-
}
|
162 |
-
|
163 |
-
if ($name == 'on_storeid_set') {
|
164 |
-
$params['primary_url'] = ecwid_get_store_page_url();
|
165 |
-
$params['secondary_url'] = 'post.php?post=' . ecwid_get_current_store_page_id() . '&action=edit&show-ecwid=true';
|
166 |
-
}
|
167 |
-
|
168 |
-
if ($name == 'on_appearance_widgets') {
|
169 |
-
|
170 |
-
if (isset($_GET['from-ecwid']) && $_GET['from-ecwid'] == 'appearance') {
|
171 |
-
$admin_page = 'admin.php?page=ecwid-appearance';
|
172 |
-
} elseif (isset($_GET['from-ecwid']) && $_GET['from-ecwid'] == 'new') {
|
173 |
-
$admin_page = 'post-new.php?post_type=page';
|
174 |
-
} elseif (isset($_GET['from-ecwid']) && is_numeric($_GET['from-ecwid'])) {
|
175 |
-
$admin_page = 'post.php?post=' . $_GET['from-ecwid'] . '&action=edit';
|
176 |
-
}
|
177 |
-
|
178 |
-
$params['secondary_url'] = $admin_page;
|
179 |
-
}
|
180 |
-
$types_map = array(
|
181 |
-
'info' => 'updated',
|
182 |
-
'warning' => 'update-nag',
|
183 |
-
'error' => 'error'
|
184 |
-
);
|
185 |
-
$params['type'] = $types_map[$params['type']];
|
186 |
-
|
187 |
-
return $params;
|
188 |
-
}
|
189 |
-
|
190 |
-
protected static function get_default_messages()
|
191 |
-
{
|
192 |
-
return array(
|
193 |
-
'on_activate' => array(
|
194 |
-
'title' => __('Greetings! Your Ecwid store is now active.', 'ecwid-shopping-cart'),
|
195 |
-
'message' => __('Take a few simple steps to complete store setup', 'ecwid-shopping-cart'),
|
196 |
-
'primary_title' => __('Set up Ecwid Store', 'ecwid-shopping-cart'),
|
197 |
-
'primary_url' => 'admin.php?page=ecwid',
|
198 |
-
'hideable' => true,
|
199 |
-
'default' => 'disabled'
|
200 |
-
),
|
201 |
-
|
202 |
-
'on_storeid_set' => array(
|
203 |
-
'title' => __('Good job! Your store is set up and you\'re ready to sell.', 'ecwid-shopping-cart'),
|
204 |
-
'message' => __('Use the dashboard below to add products, track sales and adjust settings in your store. We also created a store page on your site and now you can fine-tune the storefront appearance.', 'ecwid-shopping-cart'),
|
205 |
-
'primary_title' => __('Visit Storefront', 'ecwid-shopping-cart'),
|
206 |
-
'primary_url' => '',
|
207 |
-
'primary_blank' => true,
|
208 |
-
'secondary_title' => __('Configure Appearance', 'ecwid-shopping-cart'),
|
209 |
-
'secondary_url' => 'admin.php?page=ecwid-appearance',
|
210 |
-
'hideable' => true
|
211 |
-
),
|
212 |
-
|
213 |
-
'on_no_storeid_on_setup_pages' => array(
|
214 |
-
'type' => 'warning',
|
215 |
-
'title' => __('Your store is almost ready!', 'ecwid-shopping-cart' ),
|
216 |
-
'message' => __('Connect your Ecwid account with this site to complete setup and start selling', 'ecwid-shopping-cart' ),
|
217 |
-
'primary_title' => __('Connect Your Ecwid Store', 'ecwid-shopping-cart' ),
|
218 |
-
'primary_url' => 'admin.php?page=ecwid',
|
219 |
-
'hideable' => true
|
220 |
-
),
|
221 |
-
|
222 |
-
'on_appearance_widgets' => array(
|
223 |
-
'message' => __('To add extra functions to your store, drag and drop Ecwid store elements on your site. When you\'re done, you can get back to modifying your settings.', 'ecwid-shopping-cart' ),
|
224 |
-
'secondary_title' => __('Back to Store Settings', 'ecwid-shopping-cart'),
|
225 |
-
'secondary_url' => 'admin.php?page=ecwid-appearance',
|
226 |
-
'hideable' => true
|
227 |
-
),
|
228 |
-
|
229 |
-
'please_vote' => array(
|
230 |
-
'message' => sprintf(
|
231 |
-
__('Do you like your Ecwid online store? We\'d appreciate it if you add your review and vote for the plugin on Wordpress site.', 'ecwid-shopping-cart'),
|
232 |
-
'target="_blank" href="http://wordpress.org/support/view/plugin-reviews/ecwid-shopping-cart"'
|
233 |
-
),
|
234 |
-
'primary_title' => __('Rate Ecwid at WordPress.org', 'ecwid-shopping-cart'),
|
235 |
-
'primary_url' => 'http://wordpress.org/support/view/plugin-reviews/ecwid-shopping-cart',
|
236 |
-
'hideable' => true
|
237 |
-
),
|
238 |
-
|
239 |
-
'no_oauth' => array(
|
240 |
-
|
241 |
-
'message' => Ecwid_Message_Manager::get_oauth_message(),
|
242 |
-
'hideable' => false,
|
243 |
-
'type' => 'error'
|
244 |
-
)
|
245 |
-
);
|
246 |
-
}
|
247 |
-
|
248 |
-
protected function need_to_show_message($name)
|
249 |
-
{
|
250 |
-
$admin_page = '';
|
251 |
-
if (function_exists('get_current_screen')) {
|
252 |
-
$screen = get_current_screen();
|
253 |
-
$admin_page = $screen->base;
|
254 |
-
}
|
255 |
-
|
256 |
-
if ($admin_page == 'toplevel_page_ecwid' && isset($_GET['reconnect'])) {
|
257 |
-
return false;
|
258 |
-
}
|
259 |
-
|
260 |
-
switch ($name) {
|
261 |
-
case 'on_activate':
|
262 |
-
return $admin_page == 'plugins' && get_ecwid_store_id() == ECWID_DEMO_STORE_ID;
|
263 |
-
|
264 |
-
case 'on_storeid_set':
|
265 |
-
return get_ecwid_store_id() != ECWID_DEMO_STORE_ID && @$_GET['settings-updated'] == 'true' && $admin_page == 'toplevel_page_ecwid';
|
266 |
-
|
267 |
-
case 'on_no_storeid_on_setup_pages':
|
268 |
-
$is_newbie = get_ecwid_store_id() == ECWID_DEMO_STORE_ID;
|
269 |
-
|
270 |
-
$is_ecwid_settings = in_array($admin_page, array('ecwid-store_page_ecwid-advanced', 'ecwid-store_page_ecwid-appearance'));
|
271 |
-
$is_store_page = $admin_page == 'post' && isset($_GET['post']) && $_GET['post'] == ecwid_get_current_store_page_id();
|
272 |
-
|
273 |
-
return $is_newbie && ($is_ecwid_settings || $is_store_page);
|
274 |
-
|
275 |
-
case 'on_appearance_widgets':
|
276 |
-
return isset($_GET['from-ecwid']) && $admin_page == 'widgets';
|
277 |
-
|
278 |
-
case 'please_vote':
|
279 |
-
$install_date = get_option('ecwid_installation_date');
|
280 |
-
|
281 |
-
$result = false;
|
282 |
-
if (!$install_date) {
|
283 |
-
add_option('ecwid_installation_date', time());
|
284 |
-
} else {
|
285 |
-
$result = ecwid_is_paid_account() && $install_date + 60*60*24*30 < time();
|
286 |
-
}
|
287 |
-
|
288 |
-
foreach ($this->messages as $_name => $message) {
|
289 |
-
if ($_name != $name && $this->need_to_show_message($_name)) {
|
290 |
-
return false;
|
291 |
-
}
|
292 |
-
}
|
293 |
-
|
294 |
-
return $result;
|
295 |
-
}
|
296 |
-
}
|
297 |
-
|
298 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecwid_Message_Manager
|
4 |
+
{
|
5 |
+
protected $messages = array();
|
6 |
+
|
7 |
+
protected function Ecwid_Message_Manager()
|
8 |
+
{
|
9 |
+
$this->init_messages();
|
10 |
+
}
|
11 |
+
|
12 |
+
public static function show_messages()
|
13 |
+
{
|
14 |
+
$mm = self::get_instance();
|
15 |
+
|
16 |
+
foreach ($mm->messages as $name => $message) {
|
17 |
+
if ($mm->need_to_show_message($name)) {
|
18 |
+
$mm->show_message($name);
|
19 |
+
}
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
public static function get_oauth_message($wp_remote_post_error = '')
|
24 |
+
{
|
25 |
+
if (!$wp_remote_post_error) {
|
26 |
+
$message = sprintf(
|
27 |
+
__( <<<TXT
|
28 |
+
Sorry, there is a problem. This page is supposed to display your store control panel. But this WordPress site doesn't seem to be able to connect to the Ecwid server, that's why there is no dashboard. This is caused by your server misconfiguration and can be fixed by your hosting provider.
|
29 |
+
<br /><br />
|
30 |
+
Here is a more techy description of the problem, please send it to your hosting provider: "The WordPress function wp_remote_post() failed to connect a remote server because of some error. Seems like HTTP POST requests are disabled on this server".
|
31 |
+
<br /><br />
|
32 |
+
Please also feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you handle it with your hosting.
|
33 |
+
<br /><br />
|
34 |
+
Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.
|
35 |
+
TXT
|
36 |
+
|
37 |
+
),
|
38 |
+
'href="mailto:wordpress@ecwid.com"',
|
39 |
+
'target="_blank" href="http://my.ecwid.com"',
|
40 |
+
'href="' . ecwid_get_store_page_url() . '" target="_blank"',
|
41 |
+
ecwid_get_store_page_url()
|
42 |
+
);
|
43 |
+
} else {
|
44 |
+
$message = sprintf(
|
45 |
+
__('Sorry, there is a problem. This page is supposed to display your store Control Panel. However, this Wordpress site doesn\'t seem to be able to connect to the Ecwid server to show your store dashboard here. This is likely caused by your server misconfiguration and can be fixed by your hosting provider. Here is a more techy description of the problem, which you can send to your hosting provider: "The Wordpress function wp_remote_post() failed to connect a remote server because of some error: "%s". Seems like HTTP POST requests are disabled on this server". <br /><br />Please feel free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, to manage your store, you can use the Ecwid Web Control Panel at <a %s>my.ecwid.com</a>. Your store front is working fine as well and you can check it here: <a %s>%s</a>.'),
|
46 |
+
$wp_remote_post_error,
|
47 |
+
'href="mailto:wordpress@ecwid.com"',
|
48 |
+
'target="_blank" href="http://my.ecwid.com"',
|
49 |
+
'href="' . ecwid_get_store_page_url() . '" target="_blank"',
|
50 |
+
ecwid_get_store_page_url()
|
51 |
+
);
|
52 |
+
}
|
53 |
+
|
54 |
+
return $message;
|
55 |
+
}
|
56 |
+
|
57 |
+
public static function show_message($name, $params = array())
|
58 |
+
{
|
59 |
+
$mm = self::get_instance();
|
60 |
+
|
61 |
+
$mm->need_to_show_message($name);
|
62 |
+
|
63 |
+
if (!isset($mm->messages[$name]) && empty($params)) {
|
64 |
+
trigger_error('Ecwid plugin error: unknown message ' . $name);
|
65 |
+
return;
|
66 |
+
}
|
67 |
+
|
68 |
+
$params = $mm->get_message_params($name, $params);
|
69 |
+
|
70 |
+
$type = $params['type'];
|
71 |
+
|
72 |
+
$title = $params['title'];
|
73 |
+
$message = $params['message'];
|
74 |
+
|
75 |
+
$primary_button = isset($params['primary_title']);
|
76 |
+
if ($primary_button) {
|
77 |
+
$primary_title = $params['primary_title'];
|
78 |
+
$primary_url = $params['primary_url'];
|
79 |
+
$primary_blank = @$params['primary_blank'];
|
80 |
+
}
|
81 |
+
$secondary_button = isset($params['secondary_title']);
|
82 |
+
if ($secondary_button) {
|
83 |
+
$secondary_title = $params['secondary_title'];
|
84 |
+
$secondary_url = $params['secondary_url'];
|
85 |
+
$secondary_blank = @$params['secondary_blank'];
|
86 |
+
}
|
87 |
+
|
88 |
+
$do_not_show_again = true == $params['hideable'];
|
89 |
+
|
90 |
+
include ECWID_PLUGIN_DIR . '/templates/admin-message.php';
|
91 |
+
}
|
92 |
+
|
93 |
+
public static function disable_message($name)
|
94 |
+
{
|
95 |
+
$messages = get_option('ecwid_disabled_messages');
|
96 |
+
$messages[$name] = true;
|
97 |
+
|
98 |
+
update_option('ecwid_disabled_messages', $messages);
|
99 |
+
}
|
100 |
+
|
101 |
+
public static function enable_message($name)
|
102 |
+
{
|
103 |
+
$messages = get_option('ecwid_disabled_messages');
|
104 |
+
if (isset($messages['name']))
|
105 |
+
unset($messages['name']);
|
106 |
+
|
107 |
+
update_option('ecwid_disabled_messages', $messages);
|
108 |
+
}
|
109 |
+
|
110 |
+
public static function reset_hidden_messages()
|
111 |
+
{
|
112 |
+
$hidden_messages = array();
|
113 |
+
|
114 |
+
$messages = self::get_default_messages();
|
115 |
+
foreach ($messages as $name => $message) {
|
116 |
+
if (isset($message['default']) && $message['default'] == 'hidden') {
|
117 |
+
$hidden_messages[$name] = true;
|
118 |
+
}
|
119 |
+
}
|
120 |
+
|
121 |
+
update_option('ecwid_disabled_messages', array());
|
122 |
+
}
|
123 |
+
|
124 |
+
protected static function get_instance()
|
125 |
+
{
|
126 |
+
static $instance = null;
|
127 |
+
|
128 |
+
if (is_null($instance)) {
|
129 |
+
$instance = new Ecwid_Message_Manager();
|
130 |
+
}
|
131 |
+
|
132 |
+
return $instance;
|
133 |
+
}
|
134 |
+
|
135 |
+
protected function init_messages()
|
136 |
+
{
|
137 |
+
$this->messages = $this->get_default_messages();
|
138 |
+
|
139 |
+
$hidden_messages = get_option('ecwid_disabled_messages');
|
140 |
+
|
141 |
+
if ( !empty( $hidden_messages ) ) {
|
142 |
+
foreach ($hidden_messages as $name => $message) {
|
143 |
+
unset ($this->messages[$name]);
|
144 |
+
}
|
145 |
+
}
|
146 |
+
}
|
147 |
+
|
148 |
+
protected function get_message_params($name, $params)
|
149 |
+
{
|
150 |
+
if (is_array($name)) {
|
151 |
+
$params = $name;
|
152 |
+
$name = '';
|
153 |
+
}
|
154 |
+
|
155 |
+
if (isset($this->messages[$name])) {
|
156 |
+
$params = array_merge(
|
157 |
+
array('type' => 'info', 'title' => '', 'message' => '', 'hideable' => false),
|
158 |
+
$this->messages[$name],
|
159 |
+
$params
|
160 |
+
);
|
161 |
+
}
|
162 |
+
|
163 |
+
if ($name == 'on_storeid_set') {
|
164 |
+
$params['primary_url'] = ecwid_get_store_page_url();
|
165 |
+
$params['secondary_url'] = 'post.php?post=' . ecwid_get_current_store_page_id() . '&action=edit&show-ecwid=true';
|
166 |
+
}
|
167 |
+
|
168 |
+
if ($name == 'on_appearance_widgets') {
|
169 |
+
|
170 |
+
if (isset($_GET['from-ecwid']) && $_GET['from-ecwid'] == 'appearance') {
|
171 |
+
$admin_page = 'admin.php?page=ecwid-appearance';
|
172 |
+
} elseif (isset($_GET['from-ecwid']) && $_GET['from-ecwid'] == 'new') {
|
173 |
+
$admin_page = 'post-new.php?post_type=page';
|
174 |
+
} elseif (isset($_GET['from-ecwid']) && is_numeric($_GET['from-ecwid'])) {
|
175 |
+
$admin_page = 'post.php?post=' . $_GET['from-ecwid'] . '&action=edit';
|
176 |
+
}
|
177 |
+
|
178 |
+
$params['secondary_url'] = $admin_page;
|
179 |
+
}
|
180 |
+
$types_map = array(
|
181 |
+
'info' => 'updated',
|
182 |
+
'warning' => 'update-nag',
|
183 |
+
'error' => 'error'
|
184 |
+
);
|
185 |
+
$params['type'] = $types_map[$params['type']];
|
186 |
+
|
187 |
+
return $params;
|
188 |
+
}
|
189 |
+
|
190 |
+
protected static function get_default_messages()
|
191 |
+
{
|
192 |
+
return array(
|
193 |
+
'on_activate' => array(
|
194 |
+
'title' => __('Greetings! Your Ecwid store is now active.', 'ecwid-shopping-cart'),
|
195 |
+
'message' => __('Take a few simple steps to complete store setup', 'ecwid-shopping-cart'),
|
196 |
+
'primary_title' => __('Set up Ecwid Store', 'ecwid-shopping-cart'),
|
197 |
+
'primary_url' => 'admin.php?page=ecwid',
|
198 |
+
'hideable' => true,
|
199 |
+
'default' => 'disabled'
|
200 |
+
),
|
201 |
+
|
202 |
+
'on_storeid_set' => array(
|
203 |
+
'title' => __('Good job! Your store is set up and you\'re ready to sell.', 'ecwid-shopping-cart'),
|
204 |
+
'message' => __('Use the dashboard below to add products, track sales and adjust settings in your store. We also created a store page on your site and now you can fine-tune the storefront appearance.', 'ecwid-shopping-cart'),
|
205 |
+
'primary_title' => __('Visit Storefront', 'ecwid-shopping-cart'),
|
206 |
+
'primary_url' => '',
|
207 |
+
'primary_blank' => true,
|
208 |
+
'secondary_title' => __('Configure Appearance', 'ecwid-shopping-cart'),
|
209 |
+
'secondary_url' => 'admin.php?page=ecwid-appearance',
|
210 |
+
'hideable' => true
|
211 |
+
),
|
212 |
+
|
213 |
+
'on_no_storeid_on_setup_pages' => array(
|
214 |
+
'type' => 'warning',
|
215 |
+
'title' => __('Your store is almost ready!', 'ecwid-shopping-cart' ),
|
216 |
+
'message' => __('Connect your Ecwid account with this site to complete setup and start selling', 'ecwid-shopping-cart' ),
|
217 |
+
'primary_title' => __('Connect Your Ecwid Store', 'ecwid-shopping-cart' ),
|
218 |
+
'primary_url' => 'admin.php?page=ecwid',
|
219 |
+
'hideable' => true
|
220 |
+
),
|
221 |
+
|
222 |
+
'on_appearance_widgets' => array(
|
223 |
+
'message' => __('To add extra functions to your store, drag and drop Ecwid store elements on your site. When you\'re done, you can get back to modifying your settings.', 'ecwid-shopping-cart' ),
|
224 |
+
'secondary_title' => __('Back to Store Settings', 'ecwid-shopping-cart'),
|
225 |
+
'secondary_url' => 'admin.php?page=ecwid-appearance',
|
226 |
+
'hideable' => true
|
227 |
+
),
|
228 |
+
|
229 |
+
'please_vote' => array(
|
230 |
+
'message' => sprintf(
|
231 |
+
__('Do you like your Ecwid online store? We\'d appreciate it if you add your review and vote for the plugin on Wordpress site.', 'ecwid-shopping-cart'),
|
232 |
+
'target="_blank" href="http://wordpress.org/support/view/plugin-reviews/ecwid-shopping-cart"'
|
233 |
+
),
|
234 |
+
'primary_title' => __('Rate Ecwid at WordPress.org', 'ecwid-shopping-cart'),
|
235 |
+
'primary_url' => 'http://wordpress.org/support/view/plugin-reviews/ecwid-shopping-cart',
|
236 |
+
'hideable' => true
|
237 |
+
),
|
238 |
+
|
239 |
+
'no_oauth' => array(
|
240 |
+
|
241 |
+
'message' => Ecwid_Message_Manager::get_oauth_message(),
|
242 |
+
'hideable' => false,
|
243 |
+
'type' => 'error'
|
244 |
+
)
|
245 |
+
);
|
246 |
+
}
|
247 |
+
|
248 |
+
protected function need_to_show_message($name)
|
249 |
+
{
|
250 |
+
$admin_page = '';
|
251 |
+
if (function_exists('get_current_screen')) {
|
252 |
+
$screen = get_current_screen();
|
253 |
+
$admin_page = $screen->base;
|
254 |
+
}
|
255 |
+
|
256 |
+
if ($admin_page == 'toplevel_page_ecwid' && isset($_GET['reconnect'])) {
|
257 |
+
return false;
|
258 |
+
}
|
259 |
+
|
260 |
+
switch ($name) {
|
261 |
+
case 'on_activate':
|
262 |
+
return $admin_page == 'plugins' && get_ecwid_store_id() == ECWID_DEMO_STORE_ID;
|
263 |
+
|
264 |
+
case 'on_storeid_set':
|
265 |
+
return get_ecwid_store_id() != ECWID_DEMO_STORE_ID && @$_GET['settings-updated'] == 'true' && $admin_page == 'toplevel_page_ecwid';
|
266 |
+
|
267 |
+
case 'on_no_storeid_on_setup_pages':
|
268 |
+
$is_newbie = get_ecwid_store_id() == ECWID_DEMO_STORE_ID;
|
269 |
+
|
270 |
+
$is_ecwid_settings = in_array($admin_page, array('ecwid-store_page_ecwid-advanced', 'ecwid-store_page_ecwid-appearance'));
|
271 |
+
$is_store_page = $admin_page == 'post' && isset($_GET['post']) && $_GET['post'] == ecwid_get_current_store_page_id();
|
272 |
+
|
273 |
+
return $is_newbie && ($is_ecwid_settings || $is_store_page);
|
274 |
+
|
275 |
+
case 'on_appearance_widgets':
|
276 |
+
return isset($_GET['from-ecwid']) && $admin_page == 'widgets';
|
277 |
+
|
278 |
+
case 'please_vote':
|
279 |
+
$install_date = get_option('ecwid_installation_date');
|
280 |
+
|
281 |
+
$result = false;
|
282 |
+
if (!$install_date) {
|
283 |
+
add_option('ecwid_installation_date', time());
|
284 |
+
} else {
|
285 |
+
$result = ecwid_is_paid_account() && $install_date + 60*60*24*30 < time();
|
286 |
+
}
|
287 |
+
|
288 |
+
foreach ($this->messages as $_name => $message) {
|
289 |
+
if ($_name != $name && $this->need_to_show_message($_name)) {
|
290 |
+
return false;
|
291 |
+
}
|
292 |
+
}
|
293 |
+
|
294 |
+
return $result;
|
295 |
+
}
|
296 |
+
}
|
297 |
+
|
298 |
}
|
includes/class-ecwid-oauth.php
CHANGED
@@ -1,399 +1,400 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
include ECWID_PLUGIN_DIR . "lib/phpseclib/AES.php";
|
4 |
-
|
5 |
-
class Ecwid_OAuth {
|
6 |
-
|
7 |
-
const OAUTH_CLIENT_ID = 'RD4o2KQimiGUrFZc';
|
8 |
-
const OAUTH_CLIENT_SECRET = 'jEPVdcA3KbzKVrG8FZDgNnsY3wKHDTF8';
|
9 |
-
|
10 |
-
const TOKEN_OPTION_NAME = 'ecwid_oauth_token';
|
11 |
-
|
12 |
-
const MODE_CONNECT = 'connect';
|
13 |
-
const MODE_RECONNECT = 'reconnect';
|
14 |
-
|
15 |
-
protected $crypt = null;
|
16 |
-
|
17 |
-
protected $state;
|
18 |
-
|
19 |
-
public function __construct()
|
20 |
-
{
|
21 |
-
add_action('admin_post_ecwid_oauth', array($this, 'process_authorization'));
|
22 |
-
add_action('admin_post_ecwid_oauth_reconnect', array($this, 'process_authorization'));
|
23 |
-
add_action('admin_post_ecwid_disconnect', array($this, 'disconnect_store'));
|
24 |
-
add_action('admin_post_ecwid_show_reconnect', array($this, 'show_reconnect'));
|
25 |
-
|
26 |
-
$this->crypt = new Ecwid_Crypt_AES();
|
27 |
-
$this->_init_crypt();
|
28 |
-
|
29 |
-
$this->_load_state();
|
30 |
-
}
|
31 |
-
|
32 |
-
public function show_reconnect()
|
33 |
-
{
|
34 |
-
$ecwid_oauth = $this;
|
35 |
-
require_once(ECWID_PLUGIN_DIR . '/templates/reconnect.php');
|
36 |
-
}
|
37 |
-
|
38 |
-
public function test_post()
|
39 |
-
{
|
40 |
-
$return = wp_remote_post($this->get_test_post_url());
|
41 |
-
|
42 |
-
return is_array($return);
|
43 |
-
}
|
44 |
-
|
45 |
-
public function get_test_post_url()
|
46 |
-
{
|
47 |
-
return 'https://my.ecwid.com/api/oauth/token';
|
48 |
-
}
|
49 |
-
|
50 |
-
|
51 |
-
public function get_auth_dialog_url()
|
52 |
-
{
|
53 |
-
$action = 'ecwid_oauth';
|
54 |
-
if ( $this->_is_reconnect() ) {
|
55 |
-
$action = 'ecwid_oauth_reconnect';
|
56 |
-
}
|
57 |
-
|
58 |
-
$redirect_uri = 'admin-post.php?action=' . $action;
|
59 |
-
|
60 |
-
$params = array(
|
61 |
-
'scopes' => implode(' ', $this->_get_scope()),
|
62 |
-
'redirect_uri' => admin_url( $redirect_uri )
|
63 |
-
);
|
64 |
-
|
65 |
-
if ( !is_array( $params )
|
66 |
-
|| empty( $params['scopes'] )
|
67 |
-
) {
|
68 |
-
return false;
|
69 |
-
}
|
70 |
-
|
71 |
-
$url = 'https://my.ecwid.com/api/oauth/authorize';
|
72 |
-
|
73 |
-
$query = array();
|
74 |
-
|
75 |
-
$query['source'] = 'wporg';
|
76 |
-
$query['client_id'] = self::OAUTH_CLIENT_ID;
|
77 |
-
$query['redirect_uri'] = $params['redirect_uri'];
|
78 |
-
$query['response_type'] = 'code';
|
79 |
-
$query['scope'] = $params['scopes'];
|
80 |
-
foreach ($query as $key => $value) {
|
81 |
-
$query[$key] = urlencode($value);
|
82 |
-
}
|
83 |
-
|
84 |
-
return $url . '?' . build_query( $query );
|
85 |
-
}
|
86 |
-
|
87 |
-
public function process_authorization()
|
88 |
-
{
|
89 |
-
$reconnect = $_REQUEST['action'] == 'ecwid_oauth_reconnect';
|
90 |
-
|
91 |
-
if ( isset( $_REQUEST['error'] ) || !isset( $_REQUEST['code'] ) ) {
|
92 |
-
if ($reconnect) {
|
93 |
-
$this->update_state(array('mode' => self::MODE_RECONNECT, 'error' => 'cancelled'));
|
94 |
-
} else {
|
95 |
-
$this->update_state(array('mode' => self::MODE_CONNECT, 'error' => 'cancelled'));
|
96 |
-
}
|
97 |
-
|
98 |
-
wp_redirect('admin.php?page=ecwid&connection_error' . ($reconnect ? '&reconnect' : ''));
|
99 |
-
exit;
|
100 |
-
}
|
101 |
-
|
102 |
-
$base_admin_url = 'admin-post.php?action=ecwid_oauth' . ($reconnect ? '_reconnect' : '');
|
103 |
-
|
104 |
-
$params['code'] = $_REQUEST['code'];
|
105 |
-
$params['client_id'] = self::OAUTH_CLIENT_ID;
|
106 |
-
$params['client_secret'] = self::OAUTH_CLIENT_SECRET;
|
107 |
-
$params['redirect_uri'] = admin_url( $base_admin_url );
|
108 |
-
|
109 |
-
$params['grant_type'] = 'authorization_code';
|
110 |
-
|
111 |
-
$return = wp_remote_post('https://my.ecwid.com/api/oauth/token', array('body' => $params));
|
112 |
-
|
113 |
-
if (is_array($return) && isset($return['body'])) {
|
114 |
-
$result = json_decode($return['body']);
|
115 |
-
}
|
116 |
-
|
117 |
-
if (
|
118 |
-
!is_array($return)
|
119 |
-
|| !isset( $result->store_id )
|
120 |
-
|| !isset( $result->scope )
|
121 |
-
|| !isset( $result->access_token )
|
122 |
-
|| ( $result->token_type != 'Bearer' )
|
123 |
-
) {
|
124 |
-
ecwid_log_error(var_export($return, true));
|
125 |
-
return $this->trigger_auth_error($reconnect ? 'reconnect' : 'default');
|
126 |
-
}
|
127 |
-
|
128 |
-
|
129 |
-
update_option( '
|
130 |
-
$
|
131 |
-
$this->
|
132 |
-
|
133 |
-
|
134 |
-
//
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
update_option( '
|
155 |
-
update_option( '
|
156 |
-
update_option( '
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
'
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
$
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
$
|
295 |
-
$
|
296 |
-
$
|
297 |
-
$
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
$this->crypt->
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
$this->state
|
317 |
-
$this->state->
|
318 |
-
$this->state->
|
319 |
-
$this->state->
|
320 |
-
$this->state->
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
}
|
398 |
-
|
399 |
-
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
include ECWID_PLUGIN_DIR . "lib/phpseclib/AES.php";
|
4 |
+
|
5 |
+
class Ecwid_OAuth {
|
6 |
+
|
7 |
+
const OAUTH_CLIENT_ID = 'RD4o2KQimiGUrFZc';
|
8 |
+
const OAUTH_CLIENT_SECRET = 'jEPVdcA3KbzKVrG8FZDgNnsY3wKHDTF8';
|
9 |
+
|
10 |
+
const TOKEN_OPTION_NAME = 'ecwid_oauth_token';
|
11 |
+
|
12 |
+
const MODE_CONNECT = 'connect';
|
13 |
+
const MODE_RECONNECT = 'reconnect';
|
14 |
+
|
15 |
+
protected $crypt = null;
|
16 |
+
|
17 |
+
protected $state;
|
18 |
+
|
19 |
+
public function __construct()
|
20 |
+
{
|
21 |
+
add_action('admin_post_ecwid_oauth', array($this, 'process_authorization'));
|
22 |
+
add_action('admin_post_ecwid_oauth_reconnect', array($this, 'process_authorization'));
|
23 |
+
add_action('admin_post_ecwid_disconnect', array($this, 'disconnect_store'));
|
24 |
+
add_action('admin_post_ecwid_show_reconnect', array($this, 'show_reconnect'));
|
25 |
+
|
26 |
+
$this->crypt = new Ecwid_Crypt_AES();
|
27 |
+
$this->_init_crypt();
|
28 |
+
|
29 |
+
$this->_load_state();
|
30 |
+
}
|
31 |
+
|
32 |
+
public function show_reconnect()
|
33 |
+
{
|
34 |
+
$ecwid_oauth = $this;
|
35 |
+
require_once(ECWID_PLUGIN_DIR . '/templates/reconnect.php');
|
36 |
+
}
|
37 |
+
|
38 |
+
public function test_post()
|
39 |
+
{
|
40 |
+
$return = wp_remote_post($this->get_test_post_url());
|
41 |
+
|
42 |
+
return is_array($return);
|
43 |
+
}
|
44 |
+
|
45 |
+
public function get_test_post_url()
|
46 |
+
{
|
47 |
+
return 'https://my.ecwid.com/api/oauth/token';
|
48 |
+
}
|
49 |
+
|
50 |
+
|
51 |
+
public function get_auth_dialog_url()
|
52 |
+
{
|
53 |
+
$action = 'ecwid_oauth';
|
54 |
+
if ( $this->_is_reconnect() ) {
|
55 |
+
$action = 'ecwid_oauth_reconnect';
|
56 |
+
}
|
57 |
+
|
58 |
+
$redirect_uri = 'admin-post.php?action=' . $action;
|
59 |
+
|
60 |
+
$params = array(
|
61 |
+
'scopes' => implode(' ', $this->_get_scope()),
|
62 |
+
'redirect_uri' => admin_url( $redirect_uri )
|
63 |
+
);
|
64 |
+
|
65 |
+
if ( !is_array( $params )
|
66 |
+
|| empty( $params['scopes'] )
|
67 |
+
) {
|
68 |
+
return false;
|
69 |
+
}
|
70 |
+
|
71 |
+
$url = 'https://my.ecwid.com/api/oauth/authorize';
|
72 |
+
|
73 |
+
$query = array();
|
74 |
+
|
75 |
+
$query['source'] = 'wporg';
|
76 |
+
$query['client_id'] = self::OAUTH_CLIENT_ID;
|
77 |
+
$query['redirect_uri'] = $params['redirect_uri'];
|
78 |
+
$query['response_type'] = 'code';
|
79 |
+
$query['scope'] = $params['scopes'];
|
80 |
+
foreach ($query as $key => $value) {
|
81 |
+
$query[$key] = urlencode($value);
|
82 |
+
}
|
83 |
+
|
84 |
+
return $url . '?' . build_query( $query );
|
85 |
+
}
|
86 |
+
|
87 |
+
public function process_authorization()
|
88 |
+
{
|
89 |
+
$reconnect = $_REQUEST['action'] == 'ecwid_oauth_reconnect';
|
90 |
+
|
91 |
+
if ( isset( $_REQUEST['error'] ) || !isset( $_REQUEST['code'] ) ) {
|
92 |
+
if ($reconnect) {
|
93 |
+
$this->update_state(array('mode' => self::MODE_RECONNECT, 'error' => 'cancelled'));
|
94 |
+
} else {
|
95 |
+
$this->update_state(array('mode' => self::MODE_CONNECT, 'error' => 'cancelled'));
|
96 |
+
}
|
97 |
+
|
98 |
+
wp_redirect('admin.php?page=ecwid&connection_error' . ($reconnect ? '&reconnect' : ''));
|
99 |
+
exit;
|
100 |
+
}
|
101 |
+
|
102 |
+
$base_admin_url = 'admin-post.php?action=ecwid_oauth' . ($reconnect ? '_reconnect' : '');
|
103 |
+
|
104 |
+
$params['code'] = $_REQUEST['code'];
|
105 |
+
$params['client_id'] = self::OAUTH_CLIENT_ID;
|
106 |
+
$params['client_secret'] = self::OAUTH_CLIENT_SECRET;
|
107 |
+
$params['redirect_uri'] = admin_url( $base_admin_url );
|
108 |
+
|
109 |
+
$params['grant_type'] = 'authorization_code';
|
110 |
+
|
111 |
+
$return = wp_remote_post('https://my.ecwid.com/api/oauth/token', array('body' => $params));
|
112 |
+
|
113 |
+
if (is_array($return) && isset($return['body'])) {
|
114 |
+
$result = json_decode($return['body']);
|
115 |
+
}
|
116 |
+
|
117 |
+
if (
|
118 |
+
!is_array($return)
|
119 |
+
|| !isset( $result->store_id )
|
120 |
+
|| !isset( $result->scope )
|
121 |
+
|| !isset( $result->access_token )
|
122 |
+
|| ( $result->token_type != 'Bearer' )
|
123 |
+
) {
|
124 |
+
ecwid_log_error(var_export($return, true));
|
125 |
+
return $this->trigger_auth_error($reconnect ? 'reconnect' : 'default');
|
126 |
+
}
|
127 |
+
|
128 |
+
Ecwid_Kissmetrics::record( $reconnect ? 'accountReconnected' : 'accountConnected' );
|
129 |
+
update_option( 'ecwid_store_id', $result->store_id );
|
130 |
+
update_option( 'ecwid_oauth_scope', $result->scope );
|
131 |
+
$this->_init_crypt();
|
132 |
+
$this->_save_token($result->access_token);
|
133 |
+
|
134 |
+
// Reset "Create store cookie" set previously to display the landing page
|
135 |
+
//in "Connect" mode rather than "Create" mode
|
136 |
+
setcookie('ecwid_create_store_clicked', null, strtotime('-1 day'), ADMIN_COOKIE_PATH, COOKIE_DOMAIN);
|
137 |
+
|
138 |
+
if ( isset( $this->state->return_url ) && !empty( $this->state->return_url ) ) {
|
139 |
+
wp_redirect( admin_url( $this->state->return_url ) );
|
140 |
+
} else {
|
141 |
+
$url = '';
|
142 |
+
if ($reconnect) {
|
143 |
+
$url = 'admin.php?page=ecwid&setting-updated=true';
|
144 |
+
} else {
|
145 |
+
$url = 'admin.php?page=ecwid';
|
146 |
+
}
|
147 |
+
wp_redirect( $url );
|
148 |
+
}
|
149 |
+
exit;
|
150 |
+
}
|
151 |
+
|
152 |
+
public function disconnect_store()
|
153 |
+
{
|
154 |
+
update_option( 'ecwid_store_id', ECWID_DEMO_STORE_ID );
|
155 |
+
update_option( 'ecwid_oauth_token', '' );
|
156 |
+
update_option( 'ecwid_is_api_enabled', 'off' );
|
157 |
+
update_option( 'ecwid_api_check_time', 0 );
|
158 |
+
|
159 |
+
wp_redirect('admin.php?page=ecwid');
|
160 |
+
exit;
|
161 |
+
}
|
162 |
+
|
163 |
+
public function get_safe_scopes_array($scopes)
|
164 |
+
{
|
165 |
+
if (!isset($scopes) || empty($scopes)) {
|
166 |
+
return $this->_get_default_scopes_array();
|
167 |
+
}
|
168 |
+
|
169 |
+
if (!empty($scopes)) {
|
170 |
+
$scopes_array = explode(' ', $scopes);
|
171 |
+
|
172 |
+
foreach ($scopes_array as $key => $scope) {
|
173 |
+
if (!preg_match('/^[a-z_]+$/', $scope)) {
|
174 |
+
unset($scopes_array[$key]);
|
175 |
+
}
|
176 |
+
}
|
177 |
+
}
|
178 |
+
|
179 |
+
return $scopes_array;
|
180 |
+
}
|
181 |
+
|
182 |
+
public function has_scope( $scope ) {
|
183 |
+
$stored_scope = get_option( 'ecwid_oauth_scope' );
|
184 |
+
if (empty($stored_scope)) {
|
185 |
+
$stored_scope = 'read_store_profile read_catalog';
|
186 |
+
}
|
187 |
+
|
188 |
+
return in_array( $scope, explode(' ', $stored_scope) );
|
189 |
+
}
|
190 |
+
|
191 |
+
protected function _get_default_scopes_array() {
|
192 |
+
return array( 'read_store_profile', 'read_catalog', 'allow_sso' );
|
193 |
+
}
|
194 |
+
|
195 |
+
protected function trigger_auth_error($mode = 'default')
|
196 |
+
{
|
197 |
+
update_option('ecwid_last_oauth_fail_time', time());
|
198 |
+
|
199 |
+
$logs = get_option('ecwid_error_log');
|
200 |
+
|
201 |
+
if ($logs) {
|
202 |
+
$logs = json_decode($logs);
|
203 |
+
}
|
204 |
+
|
205 |
+
if (is_array($logs) && count($logs) > 0) {
|
206 |
+
$entry = $logs[count($logs) - 1];
|
207 |
+
if (isset($entry->message)) {
|
208 |
+
$last_error = $entry->message;
|
209 |
+
}
|
210 |
+
}
|
211 |
+
|
212 |
+
if ( $mode == self::MODE_RECONNECT ) {
|
213 |
+
$this->update_state(array(
|
214 |
+
'mode' => 'reconnect',
|
215 |
+
'error' => 'other'
|
216 |
+
));
|
217 |
+
}
|
218 |
+
|
219 |
+
if (isset($last_error)) {
|
220 |
+
$url = 'http://' . APP_ECWID_COM . '/script.js?805056&data_platform=wporg&data_wporg_error=' . urlencode($last_error) . '&url=' . urlencode(get_bloginfo('url'));
|
221 |
+
wp_remote_get($url);
|
222 |
+
}
|
223 |
+
|
224 |
+
wp_redirect('admin.php?page=ecwid&connection_error' . ($mode == self::MODE_RECONNECT ? '&reconnect' : ''));
|
225 |
+
exit;
|
226 |
+
}
|
227 |
+
|
228 |
+
public function get_oauth_token()
|
229 |
+
{
|
230 |
+
if ($this->is_initialized()) {
|
231 |
+
return $this->_load_token();
|
232 |
+
}
|
233 |
+
|
234 |
+
return null;
|
235 |
+
}
|
236 |
+
|
237 |
+
protected function _get_scope() {
|
238 |
+
$default = $this->_get_default_scopes_array();
|
239 |
+
|
240 |
+
$scopes = array();
|
241 |
+
if ( $this->_is_reconnect() ) {
|
242 |
+
$scopes = isset($this->state->reconnect_scopes) && is_array($this->state->reconnect_scopes)
|
243 |
+
? $this->state->reconnect_scopes
|
244 |
+
: array();
|
245 |
+
}
|
246 |
+
|
247 |
+
$scopes = array_merge($scopes, $default);
|
248 |
+
|
249 |
+
return $scopes;
|
250 |
+
}
|
251 |
+
|
252 |
+
public function is_initialized()
|
253 |
+
{
|
254 |
+
return get_option( self::TOKEN_OPTION_NAME );
|
255 |
+
}
|
256 |
+
|
257 |
+
protected function _save_token($token)
|
258 |
+
{
|
259 |
+
$value = base64_encode($this->crypt->encrypt($token));
|
260 |
+
|
261 |
+
update_option(self::TOKEN_OPTION_NAME, $value);
|
262 |
+
}
|
263 |
+
|
264 |
+
protected function _load_token()
|
265 |
+
{
|
266 |
+
|
267 |
+
$db_value = get_option(self::TOKEN_OPTION_NAME);
|
268 |
+
if (empty($db_value)) return false;
|
269 |
+
|
270 |
+
if (strlen($db_value) == 64) {
|
271 |
+
$encrypted = base64_decode($db_value);
|
272 |
+
if (empty($encrypted)) return false;
|
273 |
+
|
274 |
+
$token = $this->crypt->decrypt($encrypted);
|
275 |
+
} else {
|
276 |
+
$token = $db_value;
|
277 |
+
}
|
278 |
+
|
279 |
+
return $token;
|
280 |
+
}
|
281 |
+
|
282 |
+
|
283 |
+
public function get_sso_admin_link() {
|
284 |
+
$url = 'https://my.ecwid.com/api/v3/%s/sso?token=%s×tamp=%s&signature=%s&inline=true';
|
285 |
+
|
286 |
+
$store_id = get_ecwid_store_id();
|
287 |
+
|
288 |
+
$token = $this->get_oauth_token();
|
289 |
+
|
290 |
+
$timestamp = time();
|
291 |
+
$signature = hash('sha256', $store_id . $token . $timestamp . self::OAUTH_CLIENT_SECRET);
|
292 |
+
|
293 |
+
$url = sprintf(
|
294 |
+
$url,
|
295 |
+
$store_id,
|
296 |
+
$token,
|
297 |
+
$timestamp,
|
298 |
+
$signature
|
299 |
+
);
|
300 |
+
|
301 |
+
return $url;
|
302 |
+
}
|
303 |
+
|
304 |
+
public function _init_crypt() {
|
305 |
+
$this->crypt->setIV( substr( md5( SECURE_AUTH_SALT . get_option('ecwid_store_id') ), 0, 16 ) );
|
306 |
+
$this->crypt->setKey( SECURE_AUTH_KEY );
|
307 |
+
}
|
308 |
+
|
309 |
+
protected function _load_state() {
|
310 |
+
if (isset($_COOKIE['ecwid_oauth_state'])) {
|
311 |
+
$this->state = @unserialize( $_COOKIE['ecwid_oauth_state'] );
|
312 |
+
|
313 |
+
}
|
314 |
+
|
315 |
+
if (!is_object($this->state)) {
|
316 |
+
$this->state = new stdClass();
|
317 |
+
$this->state->reconnect_scopes = array();
|
318 |
+
$this->state->reconnect_error = '';
|
319 |
+
$this->state->return_url = '';
|
320 |
+
$this->state->reason = '';
|
321 |
+
$this->state->mode = self::MODE_CONNECT;
|
322 |
+
}
|
323 |
+
|
324 |
+
$this->state->create_store_clicked = @$_COOKIE['ecwid_create_store_clicked'];
|
325 |
+
}
|
326 |
+
|
327 |
+
public function get_state() {
|
328 |
+
return $this->state;
|
329 |
+
}
|
330 |
+
|
331 |
+
public function was_create_store_clicked() {
|
332 |
+
return $this->state->create_store_clicked;
|
333 |
+
}
|
334 |
+
|
335 |
+
protected function _save_state() {
|
336 |
+
setcookie('ecwid_oauth_state', serialize($this->state), strtotime('+1 day'), ADMIN_COOKIE_PATH, COOKIE_DOMAIN);
|
337 |
+
}
|
338 |
+
|
339 |
+
public function get_reconnect_error() {
|
340 |
+
return $this->state->reconnect_error;
|
341 |
+
}
|
342 |
+
|
343 |
+
public function update_state($params) {
|
344 |
+
|
345 |
+
if (isset($params['mode'])) {
|
346 |
+
$this->state->mode = $params['mode'] == self::MODE_RECONNECT ? self::MODE_RECONNECT : self::MODE_CONNECT;
|
347 |
+
}
|
348 |
+
|
349 |
+
if ( $this->_is_reconnect() ) {
|
350 |
+
if ( isset( $params['scope'] ) ) {
|
351 |
+
$this->state->reconnect_scopes = $this->get_safe_scopes_array( @$params['scope'] );
|
352 |
+
}
|
353 |
+
if ( isset( $params['return_url'] ) ) {
|
354 |
+
$this->state->return_url = $params['return_url'];
|
355 |
+
}
|
356 |
+
|
357 |
+
if ( isset( $params['error'] ) ) {
|
358 |
+
$this->state->reconnect_error = $params['error'];
|
359 |
+
}
|
360 |
+
|
361 |
+
if ( isset( $params['reason'] ) ) {
|
362 |
+
$this->state->reason = $params['reason'];
|
363 |
+
}
|
364 |
+
}
|
365 |
+
|
366 |
+
$this->_save_state();
|
367 |
+
}
|
368 |
+
|
369 |
+
public function get_error() {
|
370 |
+
|
371 |
+
if ($this->_is_reconnect()) {
|
372 |
+
return $this->state->reconnect_error;
|
373 |
+
} else {
|
374 |
+
return $this->state->error;
|
375 |
+
}
|
376 |
+
}
|
377 |
+
|
378 |
+
public function get_reconnect_message() {
|
379 |
+
$reconnect_message = '';
|
380 |
+
|
381 |
+
if (isset($this->state->reason)) {
|
382 |
+
switch ( $this->state->reason ) {
|
383 |
+
case '1':
|
384 |
+
$reconnect_message = "Message 1";
|
385 |
+
break;
|
386 |
+
case '2':
|
387 |
+
$reconnect_message = "Message 2";
|
388 |
+
break;
|
389 |
+
}
|
390 |
+
}
|
391 |
+
|
392 |
+
return $reconnect_message;
|
393 |
+
}
|
394 |
+
|
395 |
+
protected function _is_reconnect() {
|
396 |
+
return @$this->state->mode == self::MODE_RECONNECT;
|
397 |
+
}
|
398 |
+
}
|
399 |
+
|
400 |
+
$ecwid_oauth = new Ecwid_OAuth();
|
includes/class-ecwid-sitemap-builder.php
CHANGED
@@ -1,86 +1,86 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once dirname(__FILE__) . '/../lib/JSONStreamingParser/Listener.php';
|
4 |
-
require_once dirname(__FILE__) . '/../lib/JSONStreamingParser/Parser.php';
|
5 |
-
|
6 |
-
|
7 |
-
class EcwidSitemapBuilder implements JsonStreamingParser_Listener {
|
8 |
-
var $_stack;
|
9 |
-
var $_key;
|
10 |
-
var $callback;
|
11 |
-
var $base_url;
|
12 |
-
var $api;
|
13 |
-
var $type;
|
14 |
-
|
15 |
-
public function __construct($base_url, $callback, $api) {
|
16 |
-
$this->callback = $callback;
|
17 |
-
$this->base_url = $base_url;
|
18 |
-
$this->api = $api;
|
19 |
-
}
|
20 |
-
|
21 |
-
public function generate() {
|
22 |
-
|
23 |
-
foreach (array('products', 'categories') as $type) {
|
24 |
-
$this->type = $type;
|
25 |
-
$stream = $this->api->get_method_response_stream($type);
|
26 |
-
if (!is_null($stream)) {
|
27 |
-
try {
|
28 |
-
$parser = new JsonStreamingParser_Parser($stream, $this);
|
29 |
-
$parser->parse();
|
30 |
-
} catch (Exception $e) {
|
31 |
-
fclose($stream);
|
32 |
-
}
|
33 |
-
}
|
34 |
-
}
|
35 |
-
|
36 |
-
return true;
|
37 |
-
}
|
38 |
-
|
39 |
-
public function file_position($line, $char) {
|
40 |
-
|
41 |
-
}
|
42 |
-
|
43 |
-
public function start_document() {
|
44 |
-
$this->_stack = array();
|
45 |
-
|
46 |
-
$this->_key = null;
|
47 |
-
}
|
48 |
-
|
49 |
-
public function end_document() {
|
50 |
-
}
|
51 |
-
|
52 |
-
public function start_object() {
|
53 |
-
array_push($this->_stack, array());
|
54 |
-
}
|
55 |
-
|
56 |
-
public function end_object() {
|
57 |
-
|
58 |
-
$obj = array_pop($this->_stack);
|
59 |
-
if (is_array($obj) && array_key_exists('url', $obj)) {
|
60 |
-
$callback = $this->callback;
|
61 |
-
|
62 |
-
call_user_func(
|
63 |
-
$callback,
|
64 |
-
ecwid_get_entity_url($obj, $this->type == 'products' ? 'p' : 'c'),
|
65 |
-
$this->type == 'products' ? 0.6 : 0.5,
|
66 |
-
'weekly'
|
67 |
-
);
|
68 |
-
}
|
69 |
-
}
|
70 |
-
|
71 |
-
public function start_array() {
|
72 |
-
}
|
73 |
-
|
74 |
-
public function end_array() {
|
75 |
-
}
|
76 |
-
|
77 |
-
public function key($key) {
|
78 |
-
$this->_key = $key;
|
79 |
-
}
|
80 |
-
|
81 |
-
public function value($value) {
|
82 |
-
if ($this->_key == 'url') {
|
83 |
-
$this->_stack[0]['url'] = $value;
|
84 |
-
}
|
85 |
-
}
|
86 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once dirname(__FILE__) . '/../lib/JSONStreamingParser/Listener.php';
|
4 |
+
require_once dirname(__FILE__) . '/../lib/JSONStreamingParser/Parser.php';
|
5 |
+
|
6 |
+
|
7 |
+
class EcwidSitemapBuilder implements JsonStreamingParser_Listener {
|
8 |
+
var $_stack;
|
9 |
+
var $_key;
|
10 |
+
var $callback;
|
11 |
+
var $base_url;
|
12 |
+
var $api;
|
13 |
+
var $type;
|
14 |
+
|
15 |
+
public function __construct($base_url, $callback, $api) {
|
16 |
+
$this->callback = $callback;
|
17 |
+
$this->base_url = $base_url;
|
18 |
+
$this->api = $api;
|
19 |
+
}
|
20 |
+
|
21 |
+
public function generate() {
|
22 |
+
|
23 |
+
foreach (array('products', 'categories') as $type) {
|
24 |
+
$this->type = $type;
|
25 |
+
$stream = $this->api->get_method_response_stream($type);
|
26 |
+
if (!is_null($stream)) {
|
27 |
+
try {
|
28 |
+
$parser = new JsonStreamingParser_Parser($stream, $this);
|
29 |
+
$parser->parse();
|
30 |
+
} catch (Exception $e) {
|
31 |
+
fclose($stream);
|
32 |
+
}
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
return true;
|
37 |
+
}
|
38 |
+
|
39 |
+
public function file_position($line, $char) {
|
40 |
+
|
41 |
+
}
|
42 |
+
|
43 |
+
public function start_document() {
|
44 |
+
$this->_stack = array();
|
45 |
+
|
46 |
+
$this->_key = null;
|
47 |
+
}
|
48 |
+
|
49 |
+
public function end_document() {
|
50 |
+
}
|
51 |
+
|
52 |
+
public function start_object() {
|
53 |
+
array_push($this->_stack, array());
|
54 |
+
}
|
55 |
+
|
56 |
+
public function end_object() {
|
57 |
+
|
58 |
+
$obj = array_pop($this->_stack);
|
59 |
+
if (is_array($obj) && array_key_exists('url', $obj)) {
|
60 |
+
$callback = $this->callback;
|
61 |
+
|
62 |
+
call_user_func(
|
63 |
+
$callback,
|
64 |
+
ecwid_get_entity_url($obj, $this->type == 'products' ? 'p' : 'c'),
|
65 |
+
$this->type == 'products' ? 0.6 : 0.5,
|
66 |
+
'weekly'
|
67 |
+
);
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
public function start_array() {
|
72 |
+
}
|
73 |
+
|
74 |
+
public function end_array() {
|
75 |
+
}
|
76 |
+
|
77 |
+
public function key($key) {
|
78 |
+
$this->_key = $key;
|
79 |
+
}
|
80 |
+
|
81 |
+
public function value($value) {
|
82 |
+
if ($this->_key == 'url') {
|
83 |
+
$this->_stack[0]['url'] = $value;
|
84 |
+
}
|
85 |
+
}
|
86 |
}
|
includes/class-ecwid-store-editor.php
CHANGED
@@ -1,88 +1,88 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Ecwid_Store_Editor {
|
4 |
-
public function __construct()
|
5 |
-
{
|
6 |
-
$version = get_bloginfo( 'version' );
|
7 |
-
if ( version_compare( $version, '3.5' ) < 0 ) {
|
8 |
-
return;
|
9 |
-
}
|
10 |
-
|
11 |
-
add_action( 'template_redirect', array( $this, 'get_store_svg' ) );
|
12 |
-
|
13 |
-
add_action( 'current_screen', array($this, 'init') );
|
14 |
-
}
|
15 |
-
|
16 |
-
public function init()
|
17 |
-
{
|
18 |
-
$current_screen = get_current_screen();
|
19 |
-
|
20 |
-
if ($current_screen->base != 'post') {
|
21 |
-
return;
|
22 |
-
}
|
23 |
-
|
24 |
-
add_filter( 'mce_external_plugins', array( $this, 'add_mce_plugin' ) );
|
25 |
-
add_action( 'media_buttons_context', array( $this, 'add_editor_button' ) );
|
26 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'add_scripts' ) );
|
27 |
-
add_action( 'in_admin_header', array( $this, 'add_popup' ) );
|
28 |
-
}
|
29 |
-
|
30 |
-
public function add_mce_plugin() {
|
31 |
-
|
32 |
-
$plugins_array = array(
|
33 |
-
'ecwid' => plugins_url( 'ecwid-shopping-cart/js/store-editor-mce.js' ),
|
34 |
-
'ecwid_common' => plugins_url( 'ecwid-shopping-cart/js/store-editor-common.js' ),
|
35 |
-
);
|
36 |
-
|
37 |
-
return $plugins_array;
|
38 |
-
}
|
39 |
-
|
40 |
-
public function add_editor_button($context) {
|
41 |
-
|
42 |
-
$image_code = file_get_contents( ECWID_PLUGIN_DIR . 'images/store.svg' );
|
43 |
-
|
44 |
-
$title = __( 'Add Store', 'ecwid-shopping-cart' );
|
45 |
-
$button = <<<HTML
|
46 |
-
<a href="#" id="insert-ecwid-button" class="button add-ecwid ecwid_button" title="$title">
|
47 |
-
<span class="ecwid-store-icon">$image_code</span>
|
48 |
-
$title
|
49 |
-
</a>
|
50 |
-
HTML;
|
51 |
-
|
52 |
-
$title = __( 'Edit Store', 'ecwid-shopping-cart' );
|
53 |
-
$button .= <<<HTML
|
54 |
-
<a href="#" id="update-ecwid-button" class="button update-ecwid ecwid_button" title="$title">
|
55 |
-
<span class="ecwid-store-icon">$image_code</span>
|
56 |
-
$title
|
57 |
-
</a>
|
58 |
-
HTML;
|
59 |
-
|
60 |
-
return $context . $button;
|
61 |
-
}
|
62 |
-
|
63 |
-
public function add_scripts() {
|
64 |
-
wp_enqueue_style( 'ecwid-store-editor-css', plugins_url( 'ecwid-shopping-cart/css/store-popup.css' ), array(), get_option('ecwid_plugin_version') );
|
65 |
-
wp_enqueue_script( 'ecwid-store-editor-common-js', plugins_url( 'ecwid-shopping-cart/js/store-editor-common.js' ), array(), get_option('ecwid_plugin_version') );
|
66 |
-
wp_enqueue_script( 'ecwid-store-editor-page-js', plugins_url('ecwid-shopping-cart/js/store-editor-page.js' ), array(), get_option('ecwid_plugin_version') );
|
67 |
-
wp_localize_script( 'ecwid-store-editor-page-js', 'ecwid_i18n', array( 'edit_store_appearance' => __( 'Edit Appearance', 'ecwid-shopping-cart' ) ) );
|
68 |
-
add_editor_style( plugins_url( 'ecwid-shopping-cart/css/page-editor.css' ) );
|
69 |
-
}
|
70 |
-
|
71 |
-
public function get_store_svg() {
|
72 |
-
// TODO: Move this to admin-post
|
73 |
-
if (isset($_GET['file']) && $_GET['file'] == 'ecwid_store_svg.svg' && current_user_can('administrator')) {
|
74 |
-
ecwid_load_textdomain();
|
75 |
-
header( 'Content-type: image/svg+xml' );
|
76 |
-
require_once( ECWID_PLUGIN_DIR . 'templates/store-svg.php' );
|
77 |
-
die();
|
78 |
-
}
|
79 |
-
}
|
80 |
-
|
81 |
-
public function add_popup() {
|
82 |
-
$categories = ecwid_get_categories_for_selector();
|
83 |
-
|
84 |
-
require_once( ECWID_PLUGIN_DIR . 'templates/store-popup.php' );
|
85 |
-
}
|
86 |
-
}
|
87 |
-
|
88 |
-
$ecwid_store_editor = new Ecwid_Store_Editor();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecwid_Store_Editor {
|
4 |
+
public function __construct()
|
5 |
+
{
|
6 |
+
$version = get_bloginfo( 'version' );
|
7 |
+
if ( version_compare( $version, '3.5' ) < 0 ) {
|
8 |
+
return;
|
9 |
+
}
|
10 |
+
|
11 |
+
add_action( 'template_redirect', array( $this, 'get_store_svg' ) );
|
12 |
+
|
13 |
+
add_action( 'current_screen', array($this, 'init') );
|
14 |
+
}
|
15 |
+
|
16 |
+
public function init()
|
17 |
+
{
|
18 |
+
$current_screen = get_current_screen();
|
19 |
+
|
20 |
+
if ($current_screen->base != 'post') {
|
21 |
+
return;
|
22 |
+
}
|
23 |
+
|
24 |
+
add_filter( 'mce_external_plugins', array( $this, 'add_mce_plugin' ) );
|
25 |
+
add_action( 'media_buttons_context', array( $this, 'add_editor_button' ) );
|
26 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'add_scripts' ) );
|
27 |
+
add_action( 'in_admin_header', array( $this, 'add_popup' ) );
|
28 |
+
}
|
29 |
+
|
30 |
+
public function add_mce_plugin($plugins) {
|
31 |
+
|
32 |
+
$plugins_array = array(
|
33 |
+
'ecwid' => plugins_url( 'ecwid-shopping-cart/js/store-editor-mce.js' ),
|
34 |
+
'ecwid_common' => plugins_url( 'ecwid-shopping-cart/js/store-editor-common.js' ),
|
35 |
+
);
|
36 |
+
|
37 |
+
return array_merge($plugins, $plugins_array);
|
38 |
+
}
|
39 |
+
|
40 |
+
public function add_editor_button($context) {
|
41 |
+
|
42 |
+
$image_code = file_get_contents( ECWID_PLUGIN_DIR . 'images/store.svg' );
|
43 |
+
|
44 |
+
$title = __( 'Add Store', 'ecwid-shopping-cart' );
|
45 |
+
$button = <<<HTML
|
46 |
+
<a href="#" id="insert-ecwid-button" class="button add-ecwid ecwid_button" title="$title">
|
47 |
+
<span class="ecwid-store-icon">$image_code</span>
|
48 |
+
$title
|
49 |
+
</a>
|
50 |
+
HTML;
|
51 |
+
|
52 |
+
$title = __( 'Edit Store', 'ecwid-shopping-cart' );
|
53 |
+
$button .= <<<HTML
|
54 |
+
<a href="#" id="update-ecwid-button" class="button update-ecwid ecwid_button" title="$title">
|
55 |
+
<span class="ecwid-store-icon">$image_code</span>
|
56 |
+
$title
|
57 |
+
</a>
|
58 |
+
HTML;
|
59 |
+
|
60 |
+
return $context . $button;
|
61 |
+
}
|
62 |
+
|
63 |
+
public function add_scripts() {
|
64 |
+
wp_enqueue_style( 'ecwid-store-editor-css', plugins_url( 'ecwid-shopping-cart/css/store-popup.css' ), array(), get_option('ecwid_plugin_version') );
|
65 |
+
wp_enqueue_script( 'ecwid-store-editor-common-js', plugins_url( 'ecwid-shopping-cart/js/store-editor-common.js' ), array(), get_option('ecwid_plugin_version') );
|
66 |
+
wp_enqueue_script( 'ecwid-store-editor-page-js', plugins_url('ecwid-shopping-cart/js/store-editor-page.js' ), array(), get_option('ecwid_plugin_version') );
|
67 |
+
wp_localize_script( 'ecwid-store-editor-page-js', 'ecwid_i18n', array( 'edit_store_appearance' => __( 'Edit Appearance', 'ecwid-shopping-cart' ) ) );
|
68 |
+
add_editor_style( plugins_url( 'ecwid-shopping-cart/css/page-editor.css' ) );
|
69 |
+
}
|
70 |
+
|
71 |
+
public function get_store_svg() {
|
72 |
+
// TODO: Move this to admin-post
|
73 |
+
if (isset($_GET['file']) && $_GET['file'] == 'ecwid_store_svg.svg' && current_user_can('administrator')) {
|
74 |
+
ecwid_load_textdomain();
|
75 |
+
header( 'Content-type: image/svg+xml' );
|
76 |
+
require_once( ECWID_PLUGIN_DIR . 'templates/store-svg.php' );
|
77 |
+
die();
|
78 |
+
}
|
79 |
+
}
|
80 |
+
|
81 |
+
public function add_popup() {
|
82 |
+
$categories = ecwid_get_categories_for_selector();
|
83 |
+
|
84 |
+
require_once( ECWID_PLUGIN_DIR . 'templates/store-popup.php' );
|
85 |
+
}
|
86 |
+
}
|
87 |
+
|
88 |
+
$ecwid_store_editor = new Ecwid_Store_Editor();
|
includes/themes.php
CHANGED
@@ -1,89 +1,89 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
define( 'ECWID_THEMES_DIR', ECWID_PLUGIN_DIR . '/includes/themes' );
|
4 |
-
|
5 |
-
add_action('after_switch_theme', 'ecwid_after_switch_theme');
|
6 |
-
|
7 |
-
|
8 |
-
function ecwid_get_theme_name()
|
9 |
-
{
|
10 |
-
$version = get_bloginfo('version');
|
11 |
-
|
12 |
-
if (version_compare( $version, '3.4' ) < 0) {
|
13 |
-
$theme_name = get_current_theme();
|
14 |
-
} else {
|
15 |
-
$theme = wp_get_theme();
|
16 |
-
$theme_name = $theme->Name;
|
17 |
-
}
|
18 |
-
|
19 |
-
return $theme_name;
|
20 |
-
}
|
21 |
-
|
22 |
-
function ecwid_get_theme_identification()
|
23 |
-
{
|
24 |
-
$version = get_bloginfo('version');
|
25 |
-
|
26 |
-
if (version_compare( $version, '3.4' ) < 0) {
|
27 |
-
$theme_name = get_template();
|
28 |
-
} else {
|
29 |
-
$theme = wp_get_theme();
|
30 |
-
$theme_name = $theme->template;
|
31 |
-
}
|
32 |
-
|
33 |
-
return $theme_name;
|
34 |
-
}
|
35 |
-
|
36 |
-
function ecwid_apply_theme($theme_name = null)
|
37 |
-
{
|
38 |
-
$themes = array(
|
39 |
-
'bretheon',
|
40 |
-
'responsive',
|
41 |
-
'twentyfourteen',
|
42 |
-
'pagelines',
|
43 |
-
'envision',
|
44 |
-
'twentyfifteen',
|
45 |
-
'customizr',
|
46 |
-
'evolve',
|
47 |
-
'twentytwelve',
|
48 |
-
'genesis',
|
49 |
-
'twentysixteen',
|
50 |
-
'mantra',
|
51 |
-
'attitude',
|
52 |
-
'responsiveboat',
|
53 |
-
'central'
|
54 |
-
);
|
55 |
-
|
56 |
-
|
57 |
-
if (empty($theme_name)) {
|
58 |
-
$theme_name = ecwid_get_theme_identification();
|
59 |
-
}
|
60 |
-
|
61 |
-
$theme_file = '';
|
62 |
-
|
63 |
-
if ($theme_name == 'zerif-lite' && function_exists('wp_get_theme') && wp_get_theme()->Name == 'ResponsiveBoat') {
|
64 |
-
$theme_name = 'responsiveboat';
|
65 |
-
}
|
66 |
-
|
67 |
-
if (in_array($theme_name, $themes)) {
|
68 |
-
|
69 |
-
$theme_file = ECWID_THEMES_DIR . '/class-ecwid-theme-' . $theme_name . '.php';
|
70 |
-
}
|
71 |
-
|
72 |
-
$theme_file = apply_filters( 'ecwid_get_theme_file', $theme_file );
|
73 |
-
|
74 |
-
if ( !empty( $theme_file ) && is_file( $theme_file ) && is_readable( $theme_file ) ) {
|
75 |
-
require_once( $theme_file );
|
76 |
-
}
|
77 |
-
}
|
78 |
-
|
79 |
-
function ecwid_after_switch_theme()
|
80 |
-
{
|
81 |
-
ecwid_apply_theme();
|
82 |
-
|
83 |
-
global $ecwid_current_theme;
|
84 |
-
|
85 |
-
update_option(
|
86 |
-
'ecwid_advanced_theme_layout',
|
87 |
-
isset($ecwid_current_theme) && $ecwid_current_theme->has_advanced_layout ? 'Y' : 'N'
|
88 |
-
);
|
89 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
define( 'ECWID_THEMES_DIR', ECWID_PLUGIN_DIR . '/includes/themes' );
|
4 |
+
|
5 |
+
add_action('after_switch_theme', 'ecwid_after_switch_theme');
|
6 |
+
|
7 |
+
|
8 |
+
function ecwid_get_theme_name()
|
9 |
+
{
|
10 |
+
$version = get_bloginfo('version');
|
11 |
+
|
12 |
+
if (version_compare( $version, '3.4' ) < 0) {
|
13 |
+
$theme_name = get_current_theme();
|
14 |
+
} else {
|
15 |
+
$theme = wp_get_theme();
|
16 |
+
$theme_name = $theme->Name;
|
17 |
+
}
|
18 |
+
|
19 |
+
return $theme_name;
|
20 |
+
}
|
21 |
+
|
22 |
+
function ecwid_get_theme_identification()
|
23 |
+
{
|
24 |
+
$version = get_bloginfo('version');
|
25 |
+
|
26 |
+
if (version_compare( $version, '3.4' ) < 0) {
|
27 |
+
$theme_name = get_template();
|
28 |
+
} else {
|
29 |
+
$theme = wp_get_theme();
|
30 |
+
$theme_name = $theme->template;
|
31 |
+
}
|
32 |
+
|
33 |
+
return $theme_name;
|
34 |
+
}
|
35 |
+
|
36 |
+
function ecwid_apply_theme($theme_name = null)
|
37 |
+
{
|
38 |
+
$themes = array(
|
39 |
+
'bretheon',
|
40 |
+
'responsive',
|
41 |
+
'twentyfourteen',
|
42 |
+
'pagelines',
|
43 |
+
'envision',
|
44 |
+
'twentyfifteen',
|
45 |
+
'customizr',
|
46 |
+
'evolve',
|
47 |
+
'twentytwelve',
|
48 |
+
'genesis',
|
49 |
+
'twentysixteen',
|
50 |
+
'mantra',
|
51 |
+
'attitude',
|
52 |
+
'responsiveboat',
|
53 |
+
'central'
|
54 |
+
);
|
55 |
+
|
56 |
+
|
57 |
+
if (empty($theme_name)) {
|
58 |
+
$theme_name = ecwid_get_theme_identification();
|
59 |
+
}
|
60 |
+
|
61 |
+
$theme_file = '';
|
62 |
+
|
63 |
+
if ($theme_name == 'zerif-lite' && function_exists('wp_get_theme') && wp_get_theme()->Name == 'ResponsiveBoat') {
|
64 |
+
$theme_name = 'responsiveboat';
|
65 |
+
}
|
66 |
+
|
67 |
+
if (in_array($theme_name, $themes)) {
|
68 |
+
|
69 |
+
$theme_file = ECWID_THEMES_DIR . '/class-ecwid-theme-' . $theme_name . '.php';
|
70 |
+
}
|
71 |
+
|
72 |
+
$theme_file = apply_filters( 'ecwid_get_theme_file', $theme_file );
|
73 |
+
|
74 |
+
if ( !empty( $theme_file ) && is_file( $theme_file ) && is_readable( $theme_file ) ) {
|
75 |
+
require_once( $theme_file );
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
function ecwid_after_switch_theme()
|
80 |
+
{
|
81 |
+
ecwid_apply_theme();
|
82 |
+
|
83 |
+
global $ecwid_current_theme;
|
84 |
+
|
85 |
+
update_option(
|
86 |
+
'ecwid_advanced_theme_layout',
|
87 |
+
isset($ecwid_current_theme) && $ecwid_current_theme->has_advanced_layout ? 'Y' : 'N'
|
88 |
+
);
|
89 |
}
|
includes/themes/class-ecwid-theme-attitude.php
CHANGED
@@ -1,17 +1,17 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Attitude extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Attitude';
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
parent::__construct();
|
12 |
-
|
13 |
-
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/attitude.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
14 |
-
}
|
15 |
-
}
|
16 |
-
|
17 |
$ecwid_current_theme = new Ecwid_Theme_Attitude();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_Attitude extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Attitude';
|
8 |
+
|
9 |
+
public function __construct()
|
10 |
+
{
|
11 |
+
parent::__construct();
|
12 |
+
|
13 |
+
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/attitude.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
14 |
+
}
|
15 |
+
}
|
16 |
+
|
17 |
$ecwid_current_theme = new Ecwid_Theme_Attitude();
|
includes/themes/class-ecwid-theme-base.php
CHANGED
@@ -1,25 +1,25 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Ecwid_Theme_Base {
|
4 |
-
|
5 |
-
public $has_advanced_layout = false;
|
6 |
-
|
7 |
-
protected $adjust_pb_scroll = false;
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
if ( $this->adjust_pb_scroll ) {
|
12 |
-
wp_enqueue_script(
|
13 |
-
'ecwid-scroller',
|
14 |
-
plugins_url( 'ecwid-shopping-cart/js/create_scroller.js' ),
|
15 |
-
array( 'jquery' ),
|
16 |
-
get_option('ecwid_plugin_version')
|
17 |
-
);
|
18 |
-
}
|
19 |
-
}
|
20 |
-
|
21 |
-
protected function need_advanced_layout()
|
22 |
-
{
|
23 |
-
return get_option('ecwid_advanced_theme_layout') == 'Y';
|
24 |
-
}
|
25 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecwid_Theme_Base {
|
4 |
+
|
5 |
+
public $has_advanced_layout = false;
|
6 |
+
|
7 |
+
protected $adjust_pb_scroll = false;
|
8 |
+
|
9 |
+
public function __construct()
|
10 |
+
{
|
11 |
+
if ( $this->adjust_pb_scroll ) {
|
12 |
+
wp_enqueue_script(
|
13 |
+
'ecwid-scroller',
|
14 |
+
plugins_url( 'ecwid-shopping-cart/js/create_scroller.js' ),
|
15 |
+
array( 'jquery' ),
|
16 |
+
get_option('ecwid_plugin_version')
|
17 |
+
);
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
protected function need_advanced_layout()
|
22 |
+
{
|
23 |
+
return get_option('ecwid_advanced_theme_layout') == 'Y';
|
24 |
+
}
|
25 |
}
|
includes/themes/class-ecwid-theme-bretheon.php
CHANGED
@@ -1,36 +1,36 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Bretheon extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Bretheon';
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
parent::__construct();
|
12 |
-
|
13 |
-
add_filter( 'ecwid_page_has_product_browser', array( $this, 'has_product_browser' ) );
|
14 |
-
}
|
15 |
-
|
16 |
-
public function has_product_browser( $value )
|
17 |
-
{
|
18 |
-
if ( $value ) {
|
19 |
-
return $value;
|
20 |
-
}
|
21 |
-
|
22 |
-
$meta = get_post_meta( get_the_ID(), 'mfn-page-items' );
|
23 |
-
if ( is_array( $meta ) ) {
|
24 |
-
$meta = base64_decode( $meta[0] );
|
25 |
-
|
26 |
-
// not exactly the intended usage, but quite simple and still works
|
27 |
-
// $meta is a serialized array that has the actual content
|
28 |
-
// a right way is to walk through the structure and run has_shortcode against all fields
|
29 |
-
$result = ecwid_content_has_productbrowser($meta);
|
30 |
-
}
|
31 |
-
|
32 |
-
return $result;
|
33 |
-
}
|
34 |
-
}
|
35 |
-
|
36 |
$ecwid_current_theme = new Ecwid_Theme_Bretheon();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_Bretheon extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Bretheon';
|
8 |
+
|
9 |
+
public function __construct()
|
10 |
+
{
|
11 |
+
parent::__construct();
|
12 |
+
|
13 |
+
add_filter( 'ecwid_page_has_product_browser', array( $this, 'has_product_browser' ) );
|
14 |
+
}
|
15 |
+
|
16 |
+
public function has_product_browser( $value )
|
17 |
+
{
|
18 |
+
if ( $value ) {
|
19 |
+
return $value;
|
20 |
+
}
|
21 |
+
|
22 |
+
$meta = get_post_meta( get_the_ID(), 'mfn-page-items' );
|
23 |
+
if ( is_array( $meta ) ) {
|
24 |
+
$meta = base64_decode( $meta[0] );
|
25 |
+
|
26 |
+
// not exactly the intended usage, but quite simple and still works
|
27 |
+
// $meta is a serialized array that has the actual content
|
28 |
+
// a right way is to walk through the structure and run has_shortcode against all fields
|
29 |
+
$result = ecwid_content_has_productbrowser($meta);
|
30 |
+
}
|
31 |
+
|
32 |
+
return $result;
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
$ecwid_current_theme = new Ecwid_Theme_Bretheon();
|
includes/themes/class-ecwid-theme-central.php
CHANGED
@@ -1,29 +1,29 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Central extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Central';
|
8 |
-
|
9 |
-
protected $adjust_pb_scroll = true;
|
10 |
-
|
11 |
-
public function __construct()
|
12 |
-
{
|
13 |
-
parent::__construct();
|
14 |
-
|
15 |
-
add_filter('body_class', array( $this, 'body_class') );
|
16 |
-
}
|
17 |
-
|
18 |
-
public function body_class($classes) {
|
19 |
-
// Yeah, we have to to turn off these ajax click handling routines that break our links
|
20 |
-
if (ecwid_page_has_productbrowser()) {
|
21 |
-
$classes[] = 'woocommerce';
|
22 |
-
}
|
23 |
-
|
24 |
-
return $classes;
|
25 |
-
}
|
26 |
-
|
27 |
-
}
|
28 |
-
|
29 |
$ecwid_current_theme = new Ecwid_Theme_Central();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_Central extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Central';
|
8 |
+
|
9 |
+
protected $adjust_pb_scroll = true;
|
10 |
+
|
11 |
+
public function __construct()
|
12 |
+
{
|
13 |
+
parent::__construct();
|
14 |
+
|
15 |
+
add_filter('body_class', array( $this, 'body_class') );
|
16 |
+
}
|
17 |
+
|
18 |
+
public function body_class($classes) {
|
19 |
+
// Yeah, we have to to turn off these ajax click handling routines that break our links
|
20 |
+
if (ecwid_page_has_productbrowser()) {
|
21 |
+
$classes[] = 'woocommerce';
|
22 |
+
}
|
23 |
+
|
24 |
+
return $classes;
|
25 |
+
}
|
26 |
+
|
27 |
+
}
|
28 |
+
|
29 |
$ecwid_current_theme = new Ecwid_Theme_Central();
|
includes/themes/class-ecwid-theme-customizr.php
CHANGED
@@ -1,20 +1,20 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Customizr extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Customizr';
|
8 |
-
|
9 |
-
protected $adjust_pb_scroll = true;
|
10 |
-
|
11 |
-
public function __construct()
|
12 |
-
{
|
13 |
-
parent::__construct();
|
14 |
-
|
15 |
-
wp_enqueue_script( 'ecwid-theme-js', plugins_url( 'ecwid-shopping-cart/js/themes/customizr.js' ), array( 'jquery' ), get_option('ecwid_plugin_version'), true );
|
16 |
-
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/customizr.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
17 |
-
}
|
18 |
-
}
|
19 |
-
|
20 |
$ecwid_current_theme = new Ecwid_Theme_Customizr();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_Customizr extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Customizr';
|
8 |
+
|
9 |
+
protected $adjust_pb_scroll = true;
|
10 |
+
|
11 |
+
public function __construct()
|
12 |
+
{
|
13 |
+
parent::__construct();
|
14 |
+
|
15 |
+
wp_enqueue_script( 'ecwid-theme-js', plugins_url( 'ecwid-shopping-cart/js/themes/customizr.js' ), array( 'jquery' ), get_option('ecwid_plugin_version'), true );
|
16 |
+
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/customizr.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
17 |
+
}
|
18 |
+
}
|
19 |
+
|
20 |
$ecwid_current_theme = new Ecwid_Theme_Customizr();
|
includes/themes/class-ecwid-theme-envision.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Envision extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Envision';
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
parent::__construct();
|
12 |
-
|
13 |
-
add_filter( 'ecwid_page_has_product_browser', array( $this, 'has_product_browser' ) );
|
14 |
-
}
|
15 |
-
|
16 |
-
public function has_product_browser( $value )
|
17 |
-
{
|
18 |
-
if ( $value ) {
|
19 |
-
return $value;
|
20 |
-
}
|
21 |
-
|
22 |
-
$meta = serialize(get_post_meta( get_the_ID(), 'env_composer' ));
|
23 |
-
//die(print_r(serialize($meta)));
|
24 |
-
|
25 |
-
// not exactly the intended usage, but quite simple and still works
|
26 |
-
// $meta is a serialized array that has the actual content
|
27 |
-
// a right way is to walk through the structure and run has_shortcode against all fields
|
28 |
-
$result = ecwid_content_has_productbrowser($meta);
|
29 |
-
|
30 |
-
return $result;
|
31 |
-
}
|
32 |
-
}
|
33 |
-
|
34 |
$ecwid_current_theme = new Ecwid_Theme_Envision();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_Envision extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Envision';
|
8 |
+
|
9 |
+
public function __construct()
|
10 |
+
{
|
11 |
+
parent::__construct();
|
12 |
+
|
13 |
+
add_filter( 'ecwid_page_has_product_browser', array( $this, 'has_product_browser' ) );
|
14 |
+
}
|
15 |
+
|
16 |
+
public function has_product_browser( $value )
|
17 |
+
{
|
18 |
+
if ( $value ) {
|
19 |
+
return $value;
|
20 |
+
}
|
21 |
+
|
22 |
+
$meta = serialize(get_post_meta( get_the_ID(), 'env_composer' ));
|
23 |
+
//die(print_r(serialize($meta)));
|
24 |
+
|
25 |
+
// not exactly the intended usage, but quite simple and still works
|
26 |
+
// $meta is a serialized array that has the actual content
|
27 |
+
// a right way is to walk through the structure and run has_shortcode against all fields
|
28 |
+
$result = ecwid_content_has_productbrowser($meta);
|
29 |
+
|
30 |
+
return $result;
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
$ecwid_current_theme = new Ecwid_Theme_Envision();
|
includes/themes/class-ecwid-theme-evolve.php
CHANGED
@@ -1,17 +1,17 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Evolve extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Evolve';
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
parent::__construct();
|
12 |
-
|
13 |
-
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/evolve.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
14 |
-
}
|
15 |
-
}
|
16 |
-
|
17 |
$ecwid_current_theme = new Ecwid_Theme_Evolve();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_Evolve extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Evolve';
|
8 |
+
|
9 |
+
public function __construct()
|
10 |
+
{
|
11 |
+
parent::__construct();
|
12 |
+
|
13 |
+
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/evolve.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
14 |
+
}
|
15 |
+
}
|
16 |
+
|
17 |
$ecwid_current_theme = new Ecwid_Theme_Evolve();
|
includes/themes/class-ecwid-theme-genesis.php
CHANGED
@@ -1,19 +1,19 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Genesis extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Genesis';
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
parent::__construct();
|
12 |
-
|
13 |
-
if (array_key_exists('_escaped_fragment_', $_GET) && ecwid_page_has_productbrowser()) {
|
14 |
-
remove_action( 'wp_head', 'genesis_canonical', 5 );
|
15 |
-
}
|
16 |
-
}
|
17 |
-
}
|
18 |
-
|
19 |
$ecwid_current_theme = new Ecwid_Theme_Genesis();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_Genesis extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Genesis';
|
8 |
+
|
9 |
+
public function __construct()
|
10 |
+
{
|
11 |
+
parent::__construct();
|
12 |
+
|
13 |
+
if (array_key_exists('_escaped_fragment_', $_GET) && ecwid_page_has_productbrowser()) {
|
14 |
+
remove_action( 'wp_head', 'genesis_canonical', 5 );
|
15 |
+
}
|
16 |
+
}
|
17 |
+
}
|
18 |
+
|
19 |
$ecwid_current_theme = new Ecwid_Theme_Genesis();
|
includes/themes/class-ecwid-theme-mantra.php
CHANGED
@@ -1,17 +1,17 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Mantra extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Mantra';
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
parent::__construct();
|
12 |
-
|
13 |
-
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/mantra.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
14 |
-
}
|
15 |
-
}
|
16 |
-
|
17 |
$ecwid_current_theme = new Ecwid_Theme_Mantra();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_Mantra extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Mantra';
|
8 |
+
|
9 |
+
public function __construct()
|
10 |
+
{
|
11 |
+
parent::__construct();
|
12 |
+
|
13 |
+
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/mantra.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
14 |
+
}
|
15 |
+
}
|
16 |
+
|
17 |
$ecwid_current_theme = new Ecwid_Theme_Mantra();
|
includes/themes/class-ecwid-theme-pagelines.php
CHANGED
@@ -1,19 +1,19 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Pagelines extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Pagelines';
|
8 |
-
|
9 |
-
protected $adjust_pb_scroll = true;
|
10 |
-
|
11 |
-
public function __construct()
|
12 |
-
{
|
13 |
-
parent::__construct();
|
14 |
-
|
15 |
-
wp_enqueue_script( 'ecwid-theme-js', plugins_url( 'ecwid-shopping-cart/js/themes/pagelines.js' ), array( 'jquery' ), get_option('ecwid_plugin_version'), true );
|
16 |
-
}
|
17 |
-
}
|
18 |
-
|
19 |
$ecwid_current_theme = new Ecwid_Theme_Pagelines();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_Pagelines extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Pagelines';
|
8 |
+
|
9 |
+
protected $adjust_pb_scroll = true;
|
10 |
+
|
11 |
+
public function __construct()
|
12 |
+
{
|
13 |
+
parent::__construct();
|
14 |
+
|
15 |
+
wp_enqueue_script( 'ecwid-theme-js', plugins_url( 'ecwid-shopping-cart/js/themes/pagelines.js' ), array( 'jquery' ), get_option('ecwid_plugin_version'), true );
|
16 |
+
}
|
17 |
+
}
|
18 |
+
|
19 |
$ecwid_current_theme = new Ecwid_Theme_Pagelines();
|
includes/themes/class-ecwid-theme-responsive.php
CHANGED
@@ -1,76 +1,76 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Responsive extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
public $has_advanced_layout = true;
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
parent::__construct();
|
12 |
-
|
13 |
-
if (!is_admin()) {
|
14 |
-
|
15 |
-
if ( $this->need_advanced_layout() ) {
|
16 |
-
wp_enqueue_style( 'ecwid-theme-adjustments' , plugins_url( 'ecwid-shopping-cart/css/themes/responsive-adjustments.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
17 |
-
wp_enqueue_script( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/js/themes/responsive.js' ), array( 'jquery' ), get_option('ecwid_plugin_version'), true );
|
18 |
-
|
19 |
-
add_filter( 'ecwid_minicart_shortcode_content', array( $this, 'minicart_shortcode_content' ) );
|
20 |
-
add_filter( 'ecwid_search_shortcode_content', array( $this, 'search_shortcode_content' ) );
|
21 |
-
}
|
22 |
-
|
23 |
-
wp_enqueue_style( 'ecwid-open-sans' , 'http://fonts.googleapis.com/css?family=Open+Sans:400,700&subset=latin,cyrillic-ext,cyrillic,greek-ext,vietnamese,greek,latin-ext');
|
24 |
-
wp_enqueue_style( 'dashicons' );
|
25 |
-
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/responsive.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
26 |
-
|
27 |
-
add_filter('body_class', array($this, 'body_class'));
|
28 |
-
|
29 |
-
} else {
|
30 |
-
|
31 |
-
add_action('ecwid_store_page_created', array($this, 'on_create_store_page'));
|
32 |
-
add_action('switch_theme', array($this, 'switch_theme'));
|
33 |
-
|
34 |
-
}
|
35 |
-
|
36 |
-
}
|
37 |
-
|
38 |
-
public function switch_theme()
|
39 |
-
{
|
40 |
-
|
41 |
-
}
|
42 |
-
|
43 |
-
public function minicart_shortcode_content( $content )
|
44 |
-
{
|
45 |
-
|
46 |
-
if ( ecwid_page_has_productbrowser() ) {
|
47 |
-
$content = '<script data-cfasync="false" type="text/javascript"> xMinicart("style=","layout=Mini"); </script>';
|
48 |
-
}
|
49 |
-
|
50 |
-
return $content;
|
51 |
-
}
|
52 |
-
|
53 |
-
public function search_shortcode_content( $content ) {
|
54 |
-
|
55 |
-
$content .= '<script data-cfasync="false" type="text/javascript">jQuery(document.body).addClass("ecwid-with-search"); </script>';
|
56 |
-
|
57 |
-
return $content;
|
58 |
-
}
|
59 |
-
|
60 |
-
public function body_class($classes)
|
61 |
-
{
|
62 |
-
if (get_option('ecwid_show_search_box')) {
|
63 |
-
$classes[] = 'ecwid-with-search';
|
64 |
-
}
|
65 |
-
|
66 |
-
return $classes;
|
67 |
-
}
|
68 |
-
|
69 |
-
public function on_create_store_page($page_id)
|
70 |
-
{
|
71 |
-
update_post_meta($page_id, '_wp_page_template', 'full-width-page.php');
|
72 |
-
}
|
73 |
-
}
|
74 |
-
|
75 |
-
global $ecwid_current_theme;
|
76 |
$ecwid_current_theme = new Ecwid_Theme_Responsive();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_Responsive extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
public $has_advanced_layout = true;
|
8 |
+
|
9 |
+
public function __construct()
|
10 |
+
{
|
11 |
+
parent::__construct();
|
12 |
+
|
13 |
+
if (!is_admin()) {
|
14 |
+
|
15 |
+
if ( $this->need_advanced_layout() ) {
|
16 |
+
wp_enqueue_style( 'ecwid-theme-adjustments' , plugins_url( 'ecwid-shopping-cart/css/themes/responsive-adjustments.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
17 |
+
wp_enqueue_script( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/js/themes/responsive.js' ), array( 'jquery' ), get_option('ecwid_plugin_version'), true );
|
18 |
+
|
19 |
+
add_filter( 'ecwid_minicart_shortcode_content', array( $this, 'minicart_shortcode_content' ) );
|
20 |
+
add_filter( 'ecwid_search_shortcode_content', array( $this, 'search_shortcode_content' ) );
|
21 |
+
}
|
22 |
+
|
23 |
+
wp_enqueue_style( 'ecwid-open-sans' , 'http://fonts.googleapis.com/css?family=Open+Sans:400,700&subset=latin,cyrillic-ext,cyrillic,greek-ext,vietnamese,greek,latin-ext');
|
24 |
+
wp_enqueue_style( 'dashicons' );
|
25 |
+
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/responsive.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
26 |
+
|
27 |
+
add_filter('body_class', array($this, 'body_class'));
|
28 |
+
|
29 |
+
} else {
|
30 |
+
|
31 |
+
add_action('ecwid_store_page_created', array($this, 'on_create_store_page'));
|
32 |
+
add_action('switch_theme', array($this, 'switch_theme'));
|
33 |
+
|
34 |
+
}
|
35 |
+
|
36 |
+
}
|
37 |
+
|
38 |
+
public function switch_theme()
|
39 |
+
{
|
40 |
+
|
41 |
+
}
|
42 |
+
|
43 |
+
public function minicart_shortcode_content( $content )
|
44 |
+
{
|
45 |
+
|
46 |
+
if ( ecwid_page_has_productbrowser() ) {
|
47 |
+
$content = '<script data-cfasync="false" type="text/javascript"> xMinicart("style=","layout=Mini"); </script>';
|
48 |
+
}
|
49 |
+
|
50 |
+
return $content;
|
51 |
+
}
|
52 |
+
|
53 |
+
public function search_shortcode_content( $content ) {
|
54 |
+
|
55 |
+
$content .= '<script data-cfasync="false" type="text/javascript">jQuery(document.body).addClass("ecwid-with-search"); </script>';
|
56 |
+
|
57 |
+
return $content;
|
58 |
+
}
|
59 |
+
|
60 |
+
public function body_class($classes)
|
61 |
+
{
|
62 |
+
if (get_option('ecwid_show_search_box')) {
|
63 |
+
$classes[] = 'ecwid-with-search';
|
64 |
+
}
|
65 |
+
|
66 |
+
return $classes;
|
67 |
+
}
|
68 |
+
|
69 |
+
public function on_create_store_page($page_id)
|
70 |
+
{
|
71 |
+
update_post_meta($page_id, '_wp_page_template', 'full-width-page.php');
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
global $ecwid_current_theme;
|
76 |
$ecwid_current_theme = new Ecwid_Theme_Responsive();
|
includes/themes/class-ecwid-theme-responsiveboat.php
CHANGED
@@ -1,17 +1,17 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_ResonsiveBoat extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'ResponsiveBoat';
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
parent::__construct();
|
12 |
-
|
13 |
-
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/responsiveboat.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
14 |
-
}
|
15 |
-
}
|
16 |
-
|
17 |
$ecwid_current_theme = new Ecwid_Theme_ResonsiveBoat();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_ResonsiveBoat extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'ResponsiveBoat';
|
8 |
+
|
9 |
+
public function __construct()
|
10 |
+
{
|
11 |
+
parent::__construct();
|
12 |
+
|
13 |
+
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/responsiveboat.css' ), array(), get_option('ecwid_plugin_version'), 'all' );
|
14 |
+
}
|
15 |
+
}
|
16 |
+
|
17 |
$ecwid_current_theme = new Ecwid_Theme_ResonsiveBoat();
|
includes/themes/class-ecwid-theme-twentyfifteen.php
CHANGED
@@ -1,43 +1,43 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_2015 extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Twenty Fifteen';
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
parent::__construct();
|
12 |
-
|
13 |
-
if (ecwid_page_has_productbrowser()) {
|
14 |
-
wp_enqueue_style( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/css/themes/2015.css' ), array('twentyfifteen-style'), get_option('ecwid_plugin_version') );
|
15 |
-
}
|
16 |
-
|
17 |
-
add_action('ecwid_plugin_installed', array($this, 'on_ecwid_plugin_installed'));
|
18 |
-
}
|
19 |
-
|
20 |
-
public function on_ecwid_plugin_installed()
|
21 |
-
{
|
22 |
-
$widgets = get_option('sidebars_widgets');
|
23 |
-
|
24 |
-
if (strpos(implode(' ', $widgets['sidebar-1']), 'ecwidstorelink') === false) {
|
25 |
-
array_unshift($widgets['sidebar-1'], 'ecwidstorelink-2');
|
26 |
-
wp_set_sidebars_widgets($widgets);
|
27 |
-
|
28 |
-
$options = get_option('widget_ecwidstorelink');
|
29 |
-
if (!$options) {
|
30 |
-
$options = array(
|
31 |
-
2 => array(
|
32 |
-
'label' => __('Shop', 'ecwid-shopping-cart')
|
33 |
-
),
|
34 |
-
'_multiwidget' => 1
|
35 |
-
);
|
36 |
-
}
|
37 |
-
|
38 |
-
update_option('widget_ecwidstorelink', $options);
|
39 |
-
}
|
40 |
-
}
|
41 |
-
}
|
42 |
-
|
43 |
$ecwid_current_theme = new Ecwid_Theme_2015();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_2015 extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Twenty Fifteen';
|
8 |
+
|
9 |
+
public function __construct()
|
10 |
+
{
|
11 |
+
parent::__construct();
|
12 |
+
|
13 |
+
if (ecwid_page_has_productbrowser()) {
|
14 |
+
wp_enqueue_style( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/css/themes/2015.css' ), array('twentyfifteen-style'), get_option('ecwid_plugin_version') );
|
15 |
+
}
|
16 |
+
|
17 |
+
add_action('ecwid_plugin_installed', array($this, 'on_ecwid_plugin_installed'));
|
18 |
+
}
|
19 |
+
|
20 |
+
public function on_ecwid_plugin_installed()
|
21 |
+
{
|
22 |
+
$widgets = get_option('sidebars_widgets');
|
23 |
+
|
24 |
+
if (strpos(implode(' ', $widgets['sidebar-1']), 'ecwidstorelink') === false) {
|
25 |
+
array_unshift($widgets['sidebar-1'], 'ecwidstorelink-2');
|
26 |
+
wp_set_sidebars_widgets($widgets);
|
27 |
+
|
28 |
+
$options = get_option('widget_ecwidstorelink');
|
29 |
+
if (!$options) {
|
30 |
+
$options = array(
|
31 |
+
2 => array(
|
32 |
+
'label' => __('Shop', 'ecwid-shopping-cart')
|
33 |
+
),
|
34 |
+
'_multiwidget' => 1
|
35 |
+
);
|
36 |
+
}
|
37 |
+
|
38 |
+
update_option('widget_ecwidstorelink', $options);
|
39 |
+
}
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
$ecwid_current_theme = new Ecwid_Theme_2015();
|
includes/themes/class-ecwid-theme-twentyfourteen.php
CHANGED
@@ -1,21 +1,21 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_2014 extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Twenty Fourteen';
|
8 |
-
|
9 |
-
protected $adjust_pb_scroll = true;
|
10 |
-
|
11 |
-
public function __construct()
|
12 |
-
{
|
13 |
-
parent::__construct();
|
14 |
-
|
15 |
-
if (ecwid_page_has_productbrowser()) {
|
16 |
-
wp_enqueue_style( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/css/themes/2014.css' ), array('twentyfourteen-style'), get_option('ecwid_plugin_version') );
|
17 |
-
}
|
18 |
-
}
|
19 |
-
}
|
20 |
-
|
21 |
$ecwid_current_theme = new Ecwid_Theme_2014();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_2014 extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Twenty Fourteen';
|
8 |
+
|
9 |
+
protected $adjust_pb_scroll = true;
|
10 |
+
|
11 |
+
public function __construct()
|
12 |
+
{
|
13 |
+
parent::__construct();
|
14 |
+
|
15 |
+
if (ecwid_page_has_productbrowser()) {
|
16 |
+
wp_enqueue_style( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/css/themes/2014.css' ), array('twentyfourteen-style'), get_option('ecwid_plugin_version') );
|
17 |
+
}
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
$ecwid_current_theme = new Ecwid_Theme_2014();
|
includes/themes/class-ecwid-theme-twentysixteen.php
CHANGED
@@ -1,44 +1,44 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_2016 extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Twenty Sixteen';
|
8 |
-
|
9 |
-
protected $adjust_pb_scroll = true;
|
10 |
-
|
11 |
-
public function __construct()
|
12 |
-
{
|
13 |
-
parent::__construct();
|
14 |
-
|
15 |
-
if (ecwid_page_has_productbrowser()) {
|
16 |
-
wp_enqueue_style( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/css/themes/2016.css' ), array('twentysixteen-style'), get_option('ecwid_plugin_version') );
|
17 |
-
}
|
18 |
-
add_action('ecwid_plugin_installed', array($this, 'on_ecwid_plugin_installed'));
|
19 |
-
}
|
20 |
-
|
21 |
-
public function on_ecwid_plugin_installed()
|
22 |
-
{
|
23 |
-
$widgets = get_option('sidebars_widgets');
|
24 |
-
|
25 |
-
if (strpos(implode(' ', $widgets['sidebar-1']), 'ecwidstorelink') === false) {
|
26 |
-
array_unshift($widgets['sidebar-1'], 'ecwidstorelink-2');
|
27 |
-
wp_set_sidebars_widgets($widgets);
|
28 |
-
|
29 |
-
$options = get_option('widget_ecwidstorelink');
|
30 |
-
if (!$options) {
|
31 |
-
$options = array(
|
32 |
-
2 => array(
|
33 |
-
'label' => __('Shop', 'ecwid-shopping-cart')
|
34 |
-
),
|
35 |
-
'_multiwidget' => 1
|
36 |
-
);
|
37 |
-
}
|
38 |
-
|
39 |
-
update_option('widget_ecwidstorelink', $options);
|
40 |
-
}
|
41 |
-
}
|
42 |
-
}
|
43 |
-
|
44 |
$ecwid_current_theme = new Ecwid_Theme_2016();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_2016 extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Twenty Sixteen';
|
8 |
+
|
9 |
+
protected $adjust_pb_scroll = true;
|
10 |
+
|
11 |
+
public function __construct()
|
12 |
+
{
|
13 |
+
parent::__construct();
|
14 |
+
|
15 |
+
if (ecwid_page_has_productbrowser()) {
|
16 |
+
wp_enqueue_style( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/css/themes/2016.css' ), array('twentysixteen-style'), get_option('ecwid_plugin_version') );
|
17 |
+
}
|
18 |
+
add_action('ecwid_plugin_installed', array($this, 'on_ecwid_plugin_installed'));
|
19 |
+
}
|
20 |
+
|
21 |
+
public function on_ecwid_plugin_installed()
|
22 |
+
{
|
23 |
+
$widgets = get_option('sidebars_widgets');
|
24 |
+
|
25 |
+
if (strpos(implode(' ', $widgets['sidebar-1']), 'ecwidstorelink') === false) {
|
26 |
+
array_unshift($widgets['sidebar-1'], 'ecwidstorelink-2');
|
27 |
+
wp_set_sidebars_widgets($widgets);
|
28 |
+
|
29 |
+
$options = get_option('widget_ecwidstorelink');
|
30 |
+
if (!$options) {
|
31 |
+
$options = array(
|
32 |
+
2 => array(
|
33 |
+
'label' => __('Shop', 'ecwid-shopping-cart')
|
34 |
+
),
|
35 |
+
'_multiwidget' => 1
|
36 |
+
);
|
37 |
+
}
|
38 |
+
|
39 |
+
update_option('widget_ecwidstorelink', $options);
|
40 |
+
}
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
$ecwid_current_theme = new Ecwid_Theme_2016();
|
includes/themes/class-ecwid-theme-twentytwelve.php
CHANGED
@@ -1,21 +1,21 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_2012 extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Twenty Twelve';
|
8 |
-
|
9 |
-
protected $adjust_pb_scroll = true;
|
10 |
-
|
11 |
-
public function __construct()
|
12 |
-
{
|
13 |
-
parent::__construct();
|
14 |
-
|
15 |
-
if (ecwid_page_has_productbrowser()) {
|
16 |
-
wp_enqueue_script( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/js/themes/2012.js' ), array( 'jquery' ), get_option('ecwid_plugin_version'), true );
|
17 |
-
}
|
18 |
-
}
|
19 |
-
}
|
20 |
-
|
21 |
$ecwid_current_theme = new Ecwid_Theme_2012();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Theme_2012 extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Twenty Twelve';
|
8 |
+
|
9 |
+
protected $adjust_pb_scroll = true;
|
10 |
+
|
11 |
+
public function __construct()
|
12 |
+
{
|
13 |
+
parent::__construct();
|
14 |
+
|
15 |
+
if (ecwid_page_has_productbrowser()) {
|
16 |
+
wp_enqueue_script( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/js/themes/2012.js' ), array( 'jquery' ), get_option('ecwid_plugin_version'), true );
|
17 |
+
}
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
$ecwid_current_theme = new Ecwid_Theme_2012();
|
js/admin.js
CHANGED
@@ -1,110 +1,139 @@
|
|
1 |
-
jQuery(document).ready(function() {
|
2 |
-
jQuery('#hide-vote-message').click(function() {
|
3 |
-
jQuery('#hide-vote-message').addClass('hiding');
|
4 |
-
jQuery.getJSON(
|
5 |
-
'admin-ajax.php',
|
6 |
-
{ action:'ecwid_hide_vote_message' },
|
7 |
-
function(data) {
|
8 |
-
jQuery('#hide-vote-message').removeClass('hiding')
|
9 |
-
.closest('div.update-nag, div.updated.fade').fadeOut();
|
10 |
-
}
|
11 |
-
);
|
12 |
-
});
|
13 |
-
|
14 |
-
jQuery('a.ecwid-message-hide').click(function() {
|
15 |
-
|
16 |
-
var a = this;
|
17 |
-
jQuery(a).css('cursor', 'wait');
|
18 |
-
jQuery.getJSON(
|
19 |
-
'admin-ajax.php',
|
20 |
-
{
|
21 |
-
action: 'ecwid_hide_message',
|
22 |
-
message: a.name
|
23 |
-
},
|
24 |
-
function(data) {
|
25 |
-
jQuery(a).closest('.ecwid-message').fadeOut();
|
26 |
-
}
|
27 |
-
);
|
28 |
-
});
|
29 |
-
|
30 |
-
if (location.href.match(/wp-admin\/widgets.php/) || location.href.match(/wp-admin\/customize.php/)) {
|
31 |
-
jQuery('div[id^="widget-"]').filter('div[id*="_ecwid"]').each(function(idx, el) {
|
32 |
-
if (location.href.match(/wp-admin\/widgets.php\?from-ecwid=/) && el.id.match(/__i__/)) {
|
33 |
-
if (jQuery('.ecwid-widget').length > 0) {
|
34 |
-
jQuery(el).insertAfter(jQuery('.ecwid-widget:last'));
|
35 |
-
} else {
|
36 |
-
jQuery(el).prependTo(jQuery('#widget-list'));
|
37 |
-
}
|
38 |
-
jQuery('.widget-top', el).addClass('ecwid-widget-highlighted');
|
39 |
-
|
40 |
-
}
|
41 |
-
|
42 |
-
var classname = el.id.match(/ecwid(.*)-__i__/);
|
43 |
-
if (classname) {
|
44 |
-
classname = 'ecwid-widget-' + classname[1];
|
45 |
-
jQuery(el).addClass('ecwid-widget')
|
46 |
-
.find('.widget-top')
|
47 |
-
.addClass(classname);
|
48 |
-
}
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function() {
|
2 |
+
jQuery('#hide-vote-message').click(function() {
|
3 |
+
jQuery('#hide-vote-message').addClass('hiding');
|
4 |
+
jQuery.getJSON(
|
5 |
+
'admin-ajax.php',
|
6 |
+
{ action:'ecwid_hide_vote_message' },
|
7 |
+
function(data) {
|
8 |
+
jQuery('#hide-vote-message').removeClass('hiding')
|
9 |
+
.closest('div.update-nag, div.updated.fade').fadeOut();
|
10 |
+
}
|
11 |
+
);
|
12 |
+
});
|
13 |
+
|
14 |
+
jQuery('a.ecwid-message-hide').click(function() {
|
15 |
+
|
16 |
+
var a = this;
|
17 |
+
jQuery(a).css('cursor', 'wait');
|
18 |
+
jQuery.getJSON(
|
19 |
+
'admin-ajax.php',
|
20 |
+
{
|
21 |
+
action: 'ecwid_hide_message',
|
22 |
+
message: a.name
|
23 |
+
},
|
24 |
+
function(data) {
|
25 |
+
jQuery(a).closest('.ecwid-message').fadeOut();
|
26 |
+
}
|
27 |
+
);
|
28 |
+
});
|
29 |
+
|
30 |
+
if (location.href.match(/wp-admin\/widgets.php/) || location.href.match(/wp-admin\/customize.php/)) {
|
31 |
+
jQuery('div[id^="widget-"]').filter('div[id*="_ecwid"]').each(function(idx, el) {
|
32 |
+
if (location.href.match(/wp-admin\/widgets.php\?from-ecwid=/) && el.id.match(/__i__/)) {
|
33 |
+
if (jQuery('.ecwid-widget').length > 0) {
|
34 |
+
jQuery(el).insertAfter(jQuery('.ecwid-widget:last'));
|
35 |
+
} else {
|
36 |
+
jQuery(el).prependTo(jQuery('#widget-list'));
|
37 |
+
}
|
38 |
+
jQuery('.widget-top', el).addClass('ecwid-widget-highlighted');
|
39 |
+
ecwid_kissmetrics_record('Ecwid-widgets Page Viewed');
|
40 |
+
}
|
41 |
+
|
42 |
+
var classname = el.id.match(/ecwid(.*)-__i__/);
|
43 |
+
if (classname) {
|
44 |
+
classname = 'ecwid-widget-' + classname[1];
|
45 |
+
jQuery(el).addClass('ecwid-widget')
|
46 |
+
.find('.widget-top')
|
47 |
+
.addClass(classname);
|
48 |
+
}
|
49 |
+
|
50 |
+
});
|
51 |
+
|
52 |
+
jQuery(document).on('widget-added', function(event, widgetElement) {
|
53 |
+
if (typeof this.widgets == 'undefined') {
|
54 |
+
this.widgets = {
|
55 |
+
'ecwid-widget-badge': 'ecwidBadge',
|
56 |
+
'ecwid-widget-search': 'productSearch',
|
57 |
+
'ecwid-widget-recentlyviewed': 'recentlyViewedProducts',
|
58 |
+
'ecwid-widget-minicart': 'shoppingCart',
|
59 |
+
'ecwid-widget-minicart_miniview': 'miniShoppingCart',
|
60 |
+
'ecwid-widget-vcategories': 'storeCategories',
|
61 |
+
'ecwid-widget-storelink': 'storePageLink'
|
62 |
+
};
|
63 |
+
}
|
64 |
+
|
65 |
+
for (var i in this.widgets) {
|
66 |
+
if (widgetElement.find('.' + i).length > 0) {
|
67 |
+
ecwid_kissmetrics_record('sb-widget ' + this.widgets[i] + 'Added');
|
68 |
+
break;
|
69 |
+
}
|
70 |
+
}
|
71 |
+
debugger;
|
72 |
+
});
|
73 |
+
}
|
74 |
+
|
75 |
+
jQuery('.drop-down').each(function(idx, el) {
|
76 |
+
jQuery(el).find('>span').click(function (e) {
|
77 |
+
jQuery(e.target).closest('.drop-down').addClass('hover');
|
78 |
+
|
79 |
+
jQuery(window).bind('click.ecwidDropDown', function(e) {
|
80 |
+
if (jQuery(e.target).closest('.drop-down')[0] != el) {
|
81 |
+
jQuery(window).unbind('.ecwidDropDown');
|
82 |
+
jQuery(el).removeClass('hover');
|
83 |
+
}
|
84 |
+
});
|
85 |
+
})
|
86 |
+
});
|
87 |
+
|
88 |
+
jQuery('#ecwid-connect-no-oauth').click(function() {
|
89 |
+
if (jQuery('#ecwid-store-id').val()) {
|
90 |
+
location.href = this.href + '&force_store_id=' + jQuery('#ecwid-store-id').val();
|
91 |
+
}
|
92 |
+
return false;
|
93 |
+
});
|
94 |
+
|
95 |
+
var admin_pages = [
|
96 |
+
{
|
97 |
+
url: ecwid_l10n.dashboard_url,
|
98 |
+
title: ecwid_l10n.dashboard,
|
99 |
+
place: 'dashboard',
|
100 |
+
km: 'Dashboard'
|
101 |
+
},
|
102 |
+
{
|
103 |
+
url: ecwid_l10n.products_url,
|
104 |
+
title: ecwid_l10n.products,
|
105 |
+
place: 'products',
|
106 |
+
km: 'Products'
|
107 |
+
},
|
108 |
+
{
|
109 |
+
url: ecwid_l10n.orders_url,
|
110 |
+
title: ecwid_l10n.orders,
|
111 |
+
place: 'orders',
|
112 |
+
km: 'Sales'
|
113 |
+
},
|
114 |
+
];
|
115 |
+
|
116 |
+
if (jQuery('#ecwid-frame').length > 0) {
|
117 |
+
if (jQuery('div.update-nag').length > 0) {
|
118 |
+
jQuery('#superwrap').addClass('has-wp-message');
|
119 |
+
}
|
120 |
+
for (var i = 0; i < admin_pages.length; i++) {
|
121 |
+
jQuery('li.toplevel_page_ecwid .wp-submenu a[href="' + admin_pages[i].url + '"]')
|
122 |
+
.data('ecwid-menu', admin_pages[i])
|
123 |
+
.click(function() {
|
124 |
+
var ecwidMenu = jQuery(this).data('ecwid-menu');
|
125 |
+
jQuery('.toplevel_page_ecwid *.current').removeClass('current');
|
126 |
+
jQuery(this).addClass('current').closest('li').addClass('current');
|
127 |
+
jQuery('#ecwid-frame')[0].contentWindow.postMessage(JSON.stringify({
|
128 |
+
ecwidAppNs: "ecwid-wp-plugin",
|
129 |
+
method: "openPage",
|
130 |
+
data: ecwidMenu.place
|
131 |
+
}), "*")
|
132 |
+
|
133 |
+
ecwid_kissmetrics_record(ecwidMenu.km + ' Page Viewed');
|
134 |
+
|
135 |
+
return false;
|
136 |
+
});
|
137 |
+
}
|
138 |
+
}
|
139 |
+
});
|
js/appearance.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
-
if (!Modernizr.svg) {
|
2 |
-
for (var i in {grid:1,list:1,table:1}) {
|
3 |
-
var parent = jQuery('.' + i + '.ecwid-pb-view-size .main-area');
|
4 |
-
parent.find('svg').remove();
|
5 |
-
parent.append('<div class="fallback-image ' + i + '-image"></div>');
|
6 |
-
}
|
7 |
}
|
1 |
+
if (!Modernizr.svg) {
|
2 |
+
for (var i in {grid:1,list:1,table:1}) {
|
3 |
+
var parent = jQuery('.' + i + '.ecwid-pb-view-size .main-area');
|
4 |
+
parent.find('svg').remove();
|
5 |
+
parent.append('<div class="fallback-image ' + i + '-image"></div>');
|
6 |
+
}
|
7 |
}
|
js/create_scroller.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
-
jQuery(document).ready(function() {
|
2 |
-
if (jQuery('#ecwid_product_browser_scroller').length == 0) {
|
3 |
-
jQuery('div[id^="ecwid-store-"]').before('<div id="ecwid_product_browser_scroller" class="ecwid-scroller-adjustment"></div>');
|
4 |
-
}
|
5 |
});
|
1 |
+
jQuery(document).ready(function() {
|
2 |
+
if (jQuery('#ecwid_product_browser_scroller').length == 0) {
|
3 |
+
jQuery('div[id^="ecwid-store-"]').before('<div id="ecwid_product_browser_scroller" class="ecwid-scroller-adjustment"></div>');
|
4 |
+
}
|
5 |
});
|
js/dashboard.js
CHANGED
@@ -1,26 +1,26 @@
|
|
1 |
-
jQuery(window).resize(function() {
|
2 |
-
if (jQuery(this).width() < 768) {
|
3 |
-
jQuery('.ecwid-admin').addClass('width-smaller');
|
4 |
-
var head =
|
5 |
-
jQuery('.ecwid-dashboard .box .head');
|
6 |
-
/*
|
7 |
-
head.addClass('drop-down');
|
8 |
-
head.find('h2').addClass('drop-down-head');
|
9 |
-
head.find('ul').addClass('drop-down-content open').removeClass('head-links');*/
|
10 |
-
} else {
|
11 |
-
jQuery('.ecwid-admin').removeClass('width-smaller');
|
12 |
-
}
|
13 |
-
}).trigger('resize');
|
14 |
-
|
15 |
-
show_reconnect = function() {
|
16 |
-
jQuery('<div class="ecwid-popup"></div>').load(
|
17 |
-
'admin-post.php?action=ecwid_show_reconnect',
|
18 |
-
'',
|
19 |
-
function() {
|
20 |
-
jQuery('.ecwid-popup .close').click(function() {
|
21 |
-
jQuery(this).closest('.ecwid-popup').remove();
|
22 |
-
});
|
23 |
-
}
|
24 |
-
).appendTo('body');
|
25 |
-
|
26 |
}
|
1 |
+
jQuery(window).resize(function() {
|
2 |
+
if (jQuery(this).width() < 768) {
|
3 |
+
jQuery('.ecwid-admin').addClass('width-smaller');
|
4 |
+
var head =
|
5 |
+
jQuery('.ecwid-dashboard .box .head');
|
6 |
+
/*
|
7 |
+
head.addClass('drop-down');
|
8 |
+
head.find('h2').addClass('drop-down-head');
|
9 |
+
head.find('ul').addClass('drop-down-content open').removeClass('head-links');*/
|
10 |
+
} else {
|
11 |
+
jQuery('.ecwid-admin').removeClass('width-smaller');
|
12 |
+
}
|
13 |
+
}).trigger('resize');
|
14 |
+
|
15 |
+
show_reconnect = function() {
|
16 |
+
jQuery('<div class="ecwid-popup"></div>').load(
|
17 |
+
'admin-post.php?action=ecwid_show_reconnect',
|
18 |
+
'',
|
19 |
+
function() {
|
20 |
+
jQuery('.ecwid-popup .close').click(function() {
|
21 |
+
jQuery(this).closest('.ecwid-popup').remove();
|
22 |
+
});
|
23 |
+
}
|
24 |
+
).appendTo('body');
|
25 |
+
|
26 |
}
|
js/ecwid-chameleon.js
CHANGED
@@ -1,253 +1,253 @@
|
|
1 |
-
if (typeof(Ecwid) == 'object') {
|
2 |
-
Ecwid.OnAPILoaded.add(function() {
|
3 |
-
|
4 |
-
var html_id = document.getElementsByTagName("html")[0].id;
|
5 |
-
var body_id = document.getElementsByTagName("body")[0].id;;
|
6 |
-
var css_prefix = 'html#'+html_id+' body#'+body_id+'.chameleon';
|
7 |
-
|
8 |
-
var css = '';
|
9 |
-
var parent = document.querySelector('.ecwid-shopping-cart-product-browser').parentNode;
|
10 |
-
var computedStyle = getComputedStyle(parent, null);
|
11 |
-
|
12 |
-
var primary_color = tinycolor( (typeof ecwidChameleon !== 'undefined' && typeof ecwidChameleon.primary_color !== 'undefined') ? ecwidChameleon.primary_color : computedStyle.color );
|
13 |
-
var primary_background = tinycolor( (typeof ecwidChameleon !== 'undefined' && typeof ecwidChameleon.primary_background !== 'undefined') ? ecwidChameleon.primary_background : getBackground(parent) );
|
14 |
-
|
15 |
-
if (typeof ecwidChameleon !== 'undefined' && typeof ecwidChameleon.primary_background !== 'undefined') {
|
16 |
-
var primary_link = tinycolor( ecwidChameleon.primary_link );
|
17 |
-
}
|
18 |
-
else {
|
19 |
-
var a = document.createElement('a');
|
20 |
-
a.href = a.textContent = url = '';
|
21 |
-
parent.appendChild(a);
|
22 |
-
var primary_link = tinycolor( document.defaultView.getComputedStyle(a, null).color );
|
23 |
-
parent.removeChild(a);
|
24 |
-
}
|
25 |
-
|
26 |
-
if (tinycolor.equals(primary_background, 'transparent')) {
|
27 |
-
primary_background = tinycolor('#fff');
|
28 |
-
}
|
29 |
-
|
30 |
-
var accent_color = tinycolor(primary_link.toString()).darken(15).brighten();
|
31 |
-
var muted_accent_color = tinycolor(primary_link.toString()).darken(15).setAlpha(.6);
|
32 |
-
|
33 |
-
var hover_link = tinycolor(primary_link.toString()).lighten(20);
|
34 |
-
var muted_color = (primary_color.isLight()) ? tinycolor(primary_color.toString()).darken(15) : tinycolor(primary_color.toString()).lighten(20);
|
35 |
-
var muted_link = tinycolor(primary_color.toString()).lighten(20);
|
36 |
-
var secondary_link = tinycolor(primary_link.toString()).darken(20);
|
37 |
-
|
38 |
-
var border_color = tinycolor(primary_color.toString()).setAlpha(.1);
|
39 |
-
|
40 |
-
var muted_background = tinycolor(primary_background.toString());
|
41 |
-
var muted_background = (muted_background.isLight()) ? muted_background.darken(5) : muted_background.lighten(15);
|
42 |
-
var muted_soft_background = tinycolor(primary_background.toString());
|
43 |
-
var muted_soft_background = (muted_soft_background.isLight()) ? muted_soft_background.darken(10) : muted_soft_background.lighten(20);
|
44 |
-
var hover_background = tinycolor(primary_link.toString()).lighten(20).setAlpha(.2);
|
45 |
-
|
46 |
-
var button_border_color = tinycolor(hover_link.toString()).darken(5);
|
47 |
-
var button_hover_top = tinycolor(hover_link.toString()).lighten(5);
|
48 |
-
var button_hover_bottom = tinycolor(primary_link.toString()).lighten(5);
|
49 |
-
var button_shadow = tinycolor(button_border_color.toString()).lighten(15).setAlpha(.3);
|
50 |
-
var button_hover_shadow = tinycolor(button_border_color.toString()).lighten(15).setAlpha(.4);
|
51 |
-
var button_border_hover_color = tinycolor(hover_link.toString());
|
52 |
-
|
53 |
-
// Additional rules
|
54 |
-
if (!tinycolor.isReadable(accent_color, muted_soft_background)) {
|
55 |
-
accent_color = tinycolor(secondary_link.toString()).brighten(20);
|
56 |
-
muted_accent_color = tinycolor(secondary_link.toString()).lighten(20);
|
57 |
-
}
|
58 |
-
if (!tinycolor.isReadable(secondary_link, '#F0F0F0')) {
|
59 |
-
secondary_link = (secondary_link.isLight()) ? tinycolor(secondary_link.toString()).darken() : tinycolor(secondary_link.toString()).lighten();
|
60 |
-
}
|
61 |
-
var button_color = tinycolor('#fff');
|
62 |
-
if (!tinycolor.isReadable(button_color, primary_link)) {
|
63 |
-
button_color = tinycolor(primary_background.toString());
|
64 |
-
}
|
65 |
-
|
66 |
-
// Font family
|
67 |
-
css+= css_prefix + ' .ecwid, ' + css_prefix + ' .ecwid * '+ css_prefix + ' .ecwid-minicart *, ' + css_prefix + ' .ecwid-SearchPanel * { font-family: inherit !important; }\n';
|
68 |
-
|
69 |
-
|
70 |
-
// Primary colors
|
71 |
-
css+= css_prefix + ' div.ecwid-productBrowser-head{ color: '+ primary_color.toString() +'; }\n';
|
72 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productNameLink a, ' + css_prefix + ' div.ecwid-productBrowser-productNameLink a:active, ' + css_prefix + ' div.ecwid-productBrowser-productNameLink a:visited{ color: '+ muted_color.toString() +'; }\n';
|
73 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productsGrid-productMiddleFragment-mouseover div.ecwid-productBrowser-productNameLink a, ' + css_prefix + ' div.ecwid-productBrowser-productsGrid-productMiddleFragment-mouseover div.ecwid-productBrowser-productNameLink a:active, ' + css_prefix + ' div.ecwid-productBrowser-productsGrid-productMiddleFragment-mouseover div.ecwid-productBrowser-productNameLink a:visited{ font-size: 17px; color: '+ primary_color.toString() +'; }\n';
|
74 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-productNameLink a, ' + css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-productNameLink a:active, ' + css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-productNameLink a:visited{ color: '+ primary_color.toString() +'; }\n';
|
75 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-price{ color: '+ primary_color.toString() +'; }\n';
|
76 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-subtotalAmount, ' + css_prefix + ' div.ecwid-productBrowser-cart-subtotalAmountMinus, ' + css_prefix + ' div.ecwid-productBrowser-cart-shippingAmount, ' + css_prefix + ' div.ecwid-productBrowser-cart-taxAmount{ color: '+ primary_color.toString() +'; }\n';
|
77 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-totalLabel{ color: '+ primary_color.toString() +'; }\n';
|
78 |
-
css+= css_prefix + ' table.ecwid-productBrowser-productsTable-v2 div.ecwid-productBrowser-productNameLink:hover a, ' + css_prefix + ' table.ecwid-productBrowser-productsList-v2 div.ecwid-productBrowser-productNameLink:hover a, ' + css_prefix + ' table.ecwid-productBrowser-productsGrid-v2 div.ecwid-productBrowser-productNameLink:hover a { color: '+ primary_color.toString() +'; }\n';
|
79 |
-
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-productBrowser-price, ' + css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-Invoice-qtyLabel{ color: '+ primary_color.toString() +'; }\n';
|
80 |
-
css+= css_prefix + ' .ecwid-minicart-mini-count{ color: '+ primary_link.toString() +'; }\n';
|
81 |
-
|
82 |
-
// Muted colors
|
83 |
-
css+= css_prefix + ' .ecwid{ color: '+ muted_color.toString() +'; }\n';
|
84 |
-
css+= css_prefix + ' div.ecwid-productBrowser-categoryPath{ color: '+ muted_color.toString() +'; }\n';
|
85 |
-
css+= css_prefix + ' div.ecwid-productBrowser-subcategories-categoryName{ color: '+ muted_color.toString() +'; }\n';
|
86 |
-
css+= css_prefix + ' div.ecwid-results-topPanel div.ecwid-results-topPanel-itemsCountLabel{ color: '+ muted_color.toString() +'; }\n';
|
87 |
-
css+= css_prefix + ' div.ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
88 |
-
css+= css_prefix + ' div.ecwid-results-topPanel div{ color: '+ muted_color.toString() +'; }\n';
|
89 |
-
css+= css_prefix + ' div.ecwid-productBrowser-details-optionPanel label.ecwid-fieldLabel{ color: '+ muted_color.toString() +'; }\n';
|
90 |
-
css+= css_prefix + ' div.ecwid-productBrowser-details-qtyLabel{ color: '+ muted_color.toString() +'; }\n';
|
91 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
92 |
-
css+= css_prefix + ' span.ecwid-productBrowser-cart-weight{ color: '+ muted_color.toString() +'; }\n';
|
93 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-optionsList{ color: '+ muted_color.toString() +'; }\n';
|
94 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-subtotalLabel,' + css_prefix + ' div.ecwid-productBrowser-cart-shippingLabel,' + css_prefix + ' div.ecwid-productBrowser-cart-taxLabel{ color: '+ muted_color.toString() +'; }\n';
|
95 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-estimationNote{ color: '+ muted_color.toString() +'; }\n';
|
96 |
-
css+= css_prefix + ' label.ecwid-fieldLabel{ color: '+ muted_color.toString() +'; }\n';
|
97 |
-
css+= css_prefix + ' div.ecwid-FormPopup-fieldWrapper label.ecwid-fieldLabel{ color: '+ muted_color.toString() +'; }\n';
|
98 |
-
css+= css_prefix + ' div.ecwid-Checkout-PasswordBlock-tip{ color: '+ muted_color.toString() +'; }\n';
|
99 |
-
css+= css_prefix + ' div.ecwid-pager{ color: '+ muted_color.toString() +'; }\n';
|
100 |
-
css+= css_prefix + ' div.ecwid-pager span.ecwid-pager-link-disabled{ color: '+ muted_color.toString() +'; }\n';
|
101 |
-
css+= css_prefix + ' div.ecwid-productBrowser-details-inTheBag div{ color: '+ muted_color.toString() +'; }\n';
|
102 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productsList-descr{ color: '+ muted_color.toString() +'; }\n';
|
103 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productsTable div.ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
104 |
-
css+= css_prefix + ' div.ecwid-productBrowser-extraFields-side{ color: '+ muted_color.toString() +'; }\n';
|
105 |
-
css+= css_prefix + ' div.ecwid-Invoice-block{ color: '+ muted_color.toString() +'; }\n';
|
106 |
-
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
107 |
-
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-Invoice-optionsList{ color: '+ muted_color.toString() +'; }\n';
|
108 |
-
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-productBrowser-price,' + css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-Invoice-qtyLabel{ color: '+ muted_color.toString() +'; }\n';
|
109 |
-
css+= css_prefix + ' div.ecwid-Invoice-Summary-label,' + css_prefix + ' div.ecwid-Invoice-Summary-value{ color: '+ muted_color.toString() +'; }\n';
|
110 |
-
css+= css_prefix + ' div.ecwid-Invoice-header-placeOrder div.gwt-Label,' + css_prefix + ' div.ecwid-Invoice-footer-placeOrder div.gwt-Label,' + css_prefix + ' td.ecwid-Invoice-header-orderConfirmation-text,' + css_prefix + ' td.ecwid-Invoice-footer-orderConfirmation-text{ color: '+ muted_color.toString() +'; }\n';
|
111 |
-
css+= css_prefix + ' div.ecwid-productBrowser-details-outOfStockLabel{ color: '+ muted_color.toString() +'; }\n';
|
112 |
-
|
113 |
-
// Borders
|
114 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productsGrid-productTopFragment-mouseover,' + css_prefix + ' div.ecwid-productBrowser-productsGrid-productBottomFragment-mouseover{ border-color: '+ border_color.toString() +'; }\n';
|
115 |
-
css+= css_prefix + ' .ecwid-productBrowser-productsGrid-v2 td.ecwid-productBrowser-productsGrid-productInside.ecwid-productBrowser-productsGrid-hover{ border-color: '+ border_color.toString() +'; }\n';
|
116 |
-
css+= css_prefix + ' td.ecwid-productBrowser-productsList-mouseover{ border-color: '+ border_color.toString() +'; }\n';
|
117 |
-
css+= css_prefix + ' .ecwid-productBrowser-relatedProducts .ecwid-productBrowser-relatedProducts-item-top-hover{ border-color: '+ border_color.toString() +'; }\n';
|
118 |
-
css+= css_prefix + ' .ecwid-productBrowser-relatedProducts .ecwid-productBrowser-relatedProducts-item-bottom-hover{ border-color: '+ border_color.toString() +'; }\n';
|
119 |
-
css+= css_prefix + ' table.ecwid-categoriesTabBar div.gwt-TabBarFirst,' + css_prefix + ' table.ecwid-categoriesTabBar div.gwt-TabBarRest,' + css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem,' + css_prefix + ' div.ecwid-categories-horizontal-menuBarContainer,' + css_prefix + ' td.ecwid-categories-vertical-table-cell,' + css_prefix + ' div.ecwid-categories-MenuBarPopup div.menuSeparatorInner{ border-color: '+ border_color.toString() +'; }\n';
|
120 |
-
|
121 |
-
// Accents
|
122 |
-
css+= css_prefix + ' div.ecwid-productBrowser-price{ color: '+ accent_color.toString() +'; }\n';
|
123 |
-
css+= css_prefix + ' div.ecwid-productBrowser-details-inStockLabel{ color: '+ muted_accent_color.toString() +'; }\n';
|
124 |
-
css+= css_prefix + ' div.ecwid-Checkout-blockTitle,' + css_prefix + ' table.ecwid-Checkout-blockTitle div.gwt-Label,' + css_prefix + ' table.ecwid-Checkout-blockTitle div.gwt-HTML{ color: '+ muted_accent_color.toString() +'; }\n';
|
125 |
-
css+= css_prefix + ' div.ecwid-Checkout-BreadCrumbs-link-visited{ color: '+ muted_accent_color.toString() +'; }\n';
|
126 |
-
css+= css_prefix + ' div.ecwid-Checkout-BreadCrumbs-link-current{ color: '+ muted_accent_color.toString() +'; border-color: '+ muted_accent_color.toString() +'; }\n';
|
127 |
-
css+= css_prefix + ' div.ecwid-fieldEnvelope-label{ color: '+ accent_color.toString() +'; }\n';
|
128 |
-
css+= css_prefix + ' input.gwt-PasswordTextBox,' + css_prefix + ' textarea.gwt-TextArea,' + css_prefix + ' input.gwt-DateBox{ color: '+ accent_color.toString() +'; }\n';
|
129 |
-
css+= css_prefix + ' .ecwid div.ecwid-AccentedContinueButton-label{ color: '+ accent_color.toString() +'; }\n';
|
130 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-termsCheckbox-rollover{ background-color: '+ hover_background.toString() +'; }\n';
|
131 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-estimationNote span{ color: '+ muted_accent_color.toString() +'; }\n';
|
132 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-asterisk{ color: '+ muted_accent_color.toString() +'; }\n';
|
133 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-totalAmount{ color: '+ accent_color.toString() +'; }\n';
|
134 |
-
|
135 |
-
// Primary links
|
136 |
-
css+= css_prefix + ' div.ecwid-productBrowser-categoryPath a,' + css_prefix + ' div.ecwid-productBrowser-categoryPath a:active,' + css_prefix + ' div.ecwid-productBrowser-categoryPath a:visited{ color: '+ primary_link.toString() +'; }\n';
|
137 |
-
css+= css_prefix + ' .ecwid a,' + css_prefix + ' .ecwid a:active, ' + css_prefix + ' .ecwid a:visited{ color: '+ primary_link.toString() +'; }\n';
|
138 |
-
css+= css_prefix + ' div.ecwid-results-topPanel div.ecwid-results-topPanel-viewAsPanel-link{ color: '+ primary_link.toString() +'; }\n';
|
139 |
-
css+= css_prefix + ' div.ecwid-pager span.ecwid-pager-link-enabled{ color: '+ primary_link.toString() +'; }\n';
|
140 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productsTable-addToBagLink{ color: '+ primary_link.toString() +'; }\n';
|
141 |
-
|
142 |
-
// Hover links
|
143 |
-
css+= css_prefix + ' div.ecwid-productBrowser-categoryPath a:hover{ color: '+ hover_link.toString() +'; }\n';
|
144 |
-
css+= css_prefix + ' .ecwid a:hover{ color: '+ hover_link.toString() +'; }\n';
|
145 |
-
css+= css_prefix + ' div.ecwid-results-topPanel div.ecwid-results-topPanel-viewAsPanel-link:hover{ color: '+ hover_link.toString() +'; }\n';
|
146 |
-
|
147 |
-
// Backgrounds
|
148 |
-
css+= css_prefix + ' .ecwid .ecwid-ProductDetails-gray-panel-bottom,' + css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel{ background-color: '+ muted_background.toString() +'; }\n';
|
149 |
-
css+= css_prefix + ' .ecwid-productBrowser-details-rightPanel div.ecwid-productBrowser-sharePanel-header{ background-color: '+ muted_background.toString() +'; }\n';
|
150 |
-
css+= css_prefix + ' a.ecwid-productBrowser-nav-left,' + css_prefix + ' a.ecwid-productBrowser-nav-right{ background-color: '+ muted_background.toString() +'; }\n';
|
151 |
-
css+= css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel{ background-color: '+ muted_background.toString() +'; }\n';
|
152 |
-
css+= css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel .ecwid-productBrowser-ask-advice-panel-icon{ background-color: '+ muted_background.toString() +'; }\n';
|
153 |
-
css+= css_prefix + ' div.ecwid-productBrowser-backgroundedPanel{ background-color: '+ muted_soft_background.toString() +'; }\n';
|
154 |
-
css+= css_prefix + ' .ecwid-productBrowser-details-rightPanel .ecwid-productBrowser-sharePanel-buttonsContainer{ background-color: '+ muted_soft_background.toString() +'; border-color: '+ tinycolor(muted_color.toString()).setAlpha(.2).toString() +'}\n';
|
155 |
-
css+= css_prefix + ' tr.ecwid-productBrowser-cart-itemsTable-row-selected,' + css_prefix + ' td.ecwid-productBrowser-cart-itemsTable-cell-selected{ background-color: '+ muted_background.toString() +'; }\n';
|
156 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-EnterCouponBox{ background-color: '+ muted_background.toString() +'; border-color: transparent; }\n';
|
157 |
-
css+= css_prefix + ' div.ecwid-form{ background-color: '+ muted_background.toString() +'; }\n';
|
158 |
-
css+= css_prefix + ' .ecwid input.ecwid-productBrowser-details-qtyTextField{ color: '+ primary_color.toString() +'; }\n';
|
159 |
-
css+= css_prefix + ' td.ecwid-productBrowser-productsTable-cell{ background-color: '+ primary_background.toString() +'; }\n';
|
160 |
-
css+= css_prefix + ' td.ecwid-productBrowser-productsTable-cellOdd{ background-color: '+ muted_background.toString() +'; }\n';
|
161 |
-
css+= css_prefix + ' input.gwt-TextBox, ' + css_prefix + ' input.gwt-PasswordTextBox, ' + css_prefix + ' textarea.gwt-TextArea, ' + css_prefix + ' input.gwt-DateBox, ' + css_prefix + ' .ecwid-SearchPanel-field{ background-color: '+ primary_background.toString() +'; }\n';
|
162 |
-
css+= css_prefix + ' div.ecwid-Invoice-cell-title{ color: '+ muted_color +';background-color: '+ muted_background.toString() +'; }\n';
|
163 |
-
css+= css_prefix + ' div.ecwid-Invoice-blockTitle{ color: '+ muted_color +';background-color: '+ muted_background.toString() +'; }\n';
|
164 |
-
css+= css_prefix + ' td.ecwid-Invoice-cell{ background-color: '+ muted_background.toString() +'; }\n';
|
165 |
-
css+= css_prefix + ' td.ecwid-Invoice-edgeCell{ background-color: '+ muted_background.toString() +'; }\n';
|
166 |
-
|
167 |
-
// Buttons
|
168 |
-
css+= css_prefix + ' div.ecwid-AddToBagButton::after { content: "' + msg('TableProductsContainer.add_to_bag', 'Add To Bag') + '"; white-space: nowrap; }\n';
|
169 |
-
css+= css_prefix + ' div.ecwid-ContinueShoppingButton::after { content: "' + msg('ShoppingCartView.continue', 'Continue Shopping') + '"; white-space: nowrap; }\n';
|
170 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton:after { content: "' + msg('FBAutofillCheckout.Breadcrumbs.checkout', 'Checkout') + '"; white-space: nowrap; }\n';
|
171 |
-
css+= css_prefix + ' div.ecwid-Checkout-placeOrderButton::after { content: "' + msg('FBAutofillCheckout.Breadcrumbs.checkout', 'Place Order') + '"; white-space: nowrap; }\n';
|
172 |
-
|
173 |
-
css+= css_prefix + ' div.ecwid-ContinueShoppingButton::after,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton::after, ' + css_prefix + ' div.ecwid-AddToBagButton::after, ' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton::after, ' + css_prefix + ' button.ecwid-AccentedButton span, ' + css_prefix + ' div.ecwid-Checkout-placeOrderButton::after{ color: '+ button_color +'; }\n';
|
174 |
-
|
175 |
-
css+= css_prefix + ' button.ecwid-AccentedButton,' + css_prefix + ' div.ecwid-AddToBagButton-up, ' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-up,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-up,' + css_prefix + ' div.ecwid-ContinueShoppingButton-up,' + css_prefix + ' div.ecwid-AddToBagButton-up-hovering,' + css_prefix + ' div.ecwid-AddToBagButton-down-hovering,' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-up-hovering,' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-down-hovering,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-down-hovering,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-up-hovering,' + css_prefix + ' div.ecwid-ContinueShoppingButton-up-hovering,' + css_prefix + ' div.ecwid-ContinueShoppingButton-down-hovering,' + css_prefix + ' button.ecwid-AccentedButton:hover { -webkit-box-sizing: border-box; box-sizing: border-box; width: auto; min-width: 160px; height: auto; padding: 11px 40px; background-color: '+primary_link+'; background-image: -webkit-gradient(linear, left top, left bottom, from('+hover_link+'), to('+primary_link+')); background-image: -webkit-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: -moz-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: -ms-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: -o-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: linear-gradient(to bottom, '+hover_link+', '+primary_link+'); border: 1px solid '+button_border_color+'; -webkit-box-shadow: inset 0 1px 0 '+button_shadow+'; box-shadow: inset 0 1px 0 '+button_shadow+'; text-decoration: none; text-shadow: 0 1px 0 rgba(0,0,0,0.1); border-radius: 3px; padding-left: 20px; padding-right: 20px; }\n';
|
176 |
-
|
177 |
-
css+= css_prefix + ' div.ecwid-AddToBagButton-up-hovering,' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-up-hovering,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-up-hovering,' + css_prefix + ' div.ecwid-ContinueShoppingButton-up-hovering { background-image: -webkit-gradient(linear, left top, left bottom, from('+button_hover_top+'), to('+button_hover_bottom+')); background-image: -webkit-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: -moz-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: -ms-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: -o-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: linear-gradient(to bottom, '+button_hover_top+', '+button_hover_bottom+'); border: 1px solid '+button_border_hover_color+'; -webkit-box-shadow: inset 0 1px 0 '+button_hover_shadow+'; box-shadow: inset 0 1px 0 '+button_hover_shadow+'; text-decoration: none; text-shadow: 0 -1px 0 rgba(0,0,0,0.2); } \n';
|
178 |
-
|
179 |
-
|
180 |
-
css+= css_prefix + ' button.gwt-Button,' + css_prefix + ' #wrapper button.gwt-Button{ color: '+ secondary_link +'; }\n';
|
181 |
-
css+= css_prefix + ' button.ecwid-AccentedButton{ line-height: 1; }\n';
|
182 |
-
|
183 |
-
// Search
|
184 |
-
css+= css_prefix + ' .ecwid-SearchPanel-button { background-color: '+ muted_background.toString() +'; border: 1px solid '+ border_color +'; border-radius: 2px; color: '+ primary_color +'; cursor: pointer; font-size: 12px; height: 26px; outline: medium none; padding: 2px 5px; text-decoration: none; vertical-align: baseline; white-space: nowrap; }\n';
|
185 |
-
|
186 |
-
// Categories
|
187 |
-
css+= css_prefix + ' span.ecwid-categories-category{ color: '+ muted_color.toString() +'; }\n';
|
188 |
-
css+= css_prefix + ' div.ecwid-categoriesMenuBar td.gwt-MenuItem-selected span.ecwid-categories-category,' + css_prefix + ' div.ecwid-categoriesMenuBar td.gwt-MenuItem-current span.ecwid-categories-category,' + css_prefix + ' td.ecwid-categories-vertical-table-cell-selected span.ecwid-categories-category,' + css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem-selected span.ecwid-categories-category{ color: '+ primary_link.toString() +'; }\n';
|
189 |
-
|
190 |
-
css+= css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem-selected td { background: none !important; }\n';
|
191 |
-
css+= css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem-selected { border: 1px solid; border-bottom: 0px; border-color: '+ border_color.toString() +'; }\n';
|
192 |
-
css+= css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel { min-height: 18px; height: auto; }\n';
|
193 |
-
|
194 |
-
head = document.getElementsByTagName('head')[0],
|
195 |
-
style = document.createElement('style');
|
196 |
-
style.type = 'text/css';
|
197 |
-
if (style.styleSheet) {
|
198 |
-
style.styleSheet.cssText = css;
|
199 |
-
} else {
|
200 |
-
style.appendChild(document.createTextNode(css));
|
201 |
-
}
|
202 |
-
head.appendChild(style);
|
203 |
-
document.getElementsByTagName("body")[0].className += ' chameleon';
|
204 |
-
});
|
205 |
-
}
|
206 |
-
|
207 |
-
function getLinkColor(url) {
|
208 |
-
var a = document.createElement('a');
|
209 |
-
a.href = a.textContent = url;
|
210 |
-
document.body.appendChild(a);
|
211 |
-
return document.defaultView.getComputedStyle(a, null).color;
|
212 |
-
}
|
213 |
-
|
214 |
-
function toCamelCase(s){
|
215 |
-
for(var exp=/-([a-z])/; exp.test(s); s=s.replace(exp,RegExp.$1.toUpperCase()));
|
216 |
-
return s;
|
217 |
-
}
|
218 |
-
|
219 |
-
function getStyle(e,a){
|
220 |
-
var v=null;
|
221 |
-
if(document.defaultView && document.defaultView.getComputedStyle){
|
222 |
-
var cs = document.defaultView.getComputedStyle(e, null);
|
223 |
-
if(cs && cs.getPropertyValue)
|
224 |
-
v = cs.getPropertyValue(a);
|
225 |
-
}
|
226 |
-
if(!v && e.currentStyle)
|
227 |
-
v = e.currentStyle[toCamelCase(a)];
|
228 |
-
return v;
|
229 |
-
}
|
230 |
-
|
231 |
-
function getBackground(e){
|
232 |
-
var v = getStyle(e,'background-color');
|
233 |
-
while (!v || v=='transparent' || v=='#000000' || v=='rgba(0, 0, 0, 0)'){
|
234 |
-
if( e == document.body )
|
235 |
-
v = '#fff';
|
236 |
-
else {
|
237 |
-
e = e.parentNode;
|
238 |
-
v = getStyle(e, 'background-color');
|
239 |
-
}
|
240 |
-
}
|
241 |
-
return v;
|
242 |
-
}
|
243 |
-
|
244 |
-
function msg(label, defaultValue) {
|
245 |
-
var messageBundles = (window.Ecwid && window.Ecwid.MessageBundles) ? window.Ecwid.MessageBundles : {};
|
246 |
-
var bundle = messageBundles['ru.cdev.xnext.client'] ? messageBundles['ru.cdev.xnext.client'] : {};
|
247 |
-
return bundle[label] || defaultValue;
|
248 |
-
}
|
249 |
-
|
250 |
-
// TinyColor v1.1.2
|
251 |
-
// https://github.com/bgrins/TinyColor
|
252 |
-
// Brian Grinstead, MIT License
|
253 |
-
!function(){function t(r,n){if(r=r?r:"",n=n||{},r instanceof t)return r;if(!(this instanceof t))return new t(r,n);var a=e(r);this._originalInput=r,this._r=a.r,this._g=a.g,this._b=a.b,this._a=a.a,this._roundA=j(100*this._a)/100,this._format=n.format||a.format,this._gradientType=n.gradientType,this._r<1&&(this._r=j(this._r)),this._g<1&&(this._g=j(this._g)),this._b<1&&(this._b=j(this._b)),this._ok=a.ok,this._tc_id=I++}function e(t){var e={r:0,g:0,b:0},n=1,i=!1,o=!1;return"string"==typeof t&&(t=q(t)),"object"==typeof t&&(t.hasOwnProperty("r")&&t.hasOwnProperty("g")&&t.hasOwnProperty("b")?(e=r(t.r,t.g,t.b),i=!0,o="%"===String(t.r).substr(-1)?"prgb":"rgb"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("v")?(t.s=O(t.s),t.v=O(t.v),e=s(t.h,t.s,t.v),i=!0,o="hsv"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("l")&&(t.s=O(t.s),t.l=O(t.l),e=a(t.h,t.s,t.l),i=!0,o="hsl"),t.hasOwnProperty("a")&&(n=t.a)),n=k(n),{ok:i,format:t.format||o,r:T(255,$(e.r,0)),g:T(255,$(e.g,0)),b:T(255,$(e.b,0)),a:n}}function r(t,e,r){return{r:255*A(t,255),g:255*A(e,255),b:255*A(r,255)}}function n(t,e,r){t=A(t,255),e=A(e,255),r=A(r,255);var n,a,i=$(t,e,r),s=T(t,e,r),o=(i+s)/2;if(i==s)n=a=0;else{var f=i-s;switch(a=o>.5?f/(2-i-s):f/(i+s),i){case t:n=(e-r)/f+(r>e?6:0);break;case e:n=(r-t)/f+2;break;case r:n=(t-e)/f+4}n/=6}return{h:n,s:a,l:o}}function a(t,e,r){function n(t,e,r){return 0>r&&(r+=1),r>1&&(r-=1),1/6>r?t+6*(e-t)*r:.5>r?e:2/3>r?t+(e-t)*(2/3-r)*6:t}var a,i,s;if(t=A(t,360),e=A(e,100),r=A(r,100),0===e)a=i=s=r;else{var o=.5>r?r*(1+e):r+e-r*e,f=2*r-o;a=n(f,o,t+1/3),i=n(f,o,t),s=n(f,o,t-1/3)}return{r:255*a,g:255*i,b:255*s}}function i(t,e,r){t=A(t,255),e=A(e,255),r=A(r,255);var n,a,i=$(t,e,r),s=T(t,e,r),o=i,f=i-s;if(a=0===i?0:f/i,i==s)n=0;else{switch(i){case t:n=(e-r)/f+(r>e?6:0);break;case e:n=(r-t)/f+2;break;case r:n=(t-e)/f+4}n/=6}return{h:n,s:a,v:o}}function s(t,e,r){t=6*A(t,360),e=A(e,100),r=A(r,100);var n=N.floor(t),a=t-n,i=r*(1-e),s=r*(1-a*e),o=r*(1-(1-a)*e),f=n%6,h=[r,s,i,i,o,r][f],u=[o,r,r,s,i,i][f],l=[i,i,o,r,r,s][f];return{r:255*h,g:255*u,b:255*l}}function o(t,e,r,n){var a=[M(j(t).toString(16)),M(j(e).toString(16)),M(j(r).toString(16))];return n&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function f(t,e,r,n){var a=[M(P(n)),M(j(t).toString(16)),M(j(e).toString(16)),M(j(r).toString(16))];return a.join("")}function h(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.s-=r/100,n.s=H(n.s),t(n)}function u(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.s+=r/100,n.s=H(n.s),t(n)}function l(e){return t(e).desaturate(100)}function c(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.l+=r/100,n.l=H(n.l),t(n)}function g(e,r){r=0===r?0:r||10;var n=t(e).toRgb();return n.r=$(0,T(255,n.r-j(255*-(r/100)))),n.g=$(0,T(255,n.g-j(255*-(r/100)))),n.b=$(0,T(255,n.b-j(255*-(r/100)))),t(n)}function d(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.l-=r/100,n.l=H(n.l),t(n)}function b(e,r){var n=t(e).toHsl(),a=(j(n.h)+r)%360;return n.h=0>a?360+a:a,t(n)}function p(e){var r=t(e).toHsl();return r.h=(r.h+180)%360,t(r)}function m(e){var r=t(e).toHsl(),n=r.h;return[t(e),t({h:(n+120)%360,s:r.s,l:r.l}),t({h:(n+240)%360,s:r.s,l:r.l})]}function _(e){var r=t(e).toHsl(),n=r.h;return[t(e),t({h:(n+90)%360,s:r.s,l:r.l}),t({h:(n+180)%360,s:r.s,l:r.l}),t({h:(n+270)%360,s:r.s,l:r.l})]}function v(e){var r=t(e).toHsl(),n=r.h;return[t(e),t({h:(n+72)%360,s:r.s,l:r.l}),t({h:(n+216)%360,s:r.s,l:r.l})]}function y(e,r,n){r=r||6,n=n||30;var a=t(e).toHsl(),i=360/n,s=[t(e)];for(a.h=(a.h-(i*r>>1)+720)%360;--r;)a.h=(a.h+i)%360,s.push(t(a));return s}function w(e,r){r=r||6;for(var n=t(e).toHsv(),a=n.h,i=n.s,s=n.v,o=[],f=1/r;r--;)o.push(t({h:a,s:i,v:s})),s=(s+f)%1;return o}function x(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}function k(t){return t=parseFloat(t),(isNaN(t)||0>t||t>1)&&(t=1),t}function A(t,e){R(t)&&(t="100%");var r=F(t);return t=T(e,$(0,parseFloat(t))),r&&(t=parseInt(t*e,10)/100),N.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function H(t){return T(1,$(0,t))}function S(t){return parseInt(t,16)}function R(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)}function F(t){return"string"==typeof t&&-1!=t.indexOf("%")}function M(t){return 1==t.length?"0"+t:""+t}function O(t){return 1>=t&&(t=100*t+"%"),t}function P(t){return Math.round(255*parseFloat(t)).toString(16)}function C(t){return S(t)/255}function q(t){t=t.replace(z,"").replace(E,"").toLowerCase();var e=!1;if(B[t])t=B[t],e=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};var r;return(r=U.rgb.exec(t))?{r:r[1],g:r[2],b:r[3]}:(r=U.rgba.exec(t))?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=U.hsl.exec(t))?{h:r[1],s:r[2],l:r[3]}:(r=U.hsla.exec(t))?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=U.hsv.exec(t))?{h:r[1],s:r[2],v:r[3]}:(r=U.hsva.exec(t))?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=U.hex8.exec(t))?{a:C(r[1]),r:S(r[2]),g:S(r[3]),b:S(r[4]),format:e?"name":"hex8"}:(r=U.hex6.exec(t))?{r:S(r[1]),g:S(r[2]),b:S(r[3]),format:e?"name":"hex"}:(r=U.hex3.exec(t))?{r:S(r[1]+""+r[1]),g:S(r[2]+""+r[2]),b:S(r[3]+""+r[3]),format:e?"name":"hex"}:!1}function L(t){var e,r;return t=t||{level:"AA",size:"small"},e=(t.level||"AA").toUpperCase(),r=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA"),"small"!==r&&"large"!==r&&(r="small"),{level:e,size:r}}var z=/^[\s,#]+/,E=/\s+$/,I=0,N=Math,j=N.round,T=N.min,$=N.max,D=N.random;t.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,e,r,n,a,i,s=this.toRgb();return t=s.r/255,e=s.g/255,r=s.b/255,n=.03928>=t?t/12.92:Math.pow((t+.055)/1.055,2.4),a=.03928>=e?e/12.92:Math.pow((e+.055)/1.055,2.4),i=.03928>=r?r/12.92:Math.pow((r+.055)/1.055,2.4),.2126*n+.7152*a+.0722*i},setAlpha:function(t){return this._a=k(t),this._roundA=j(100*this._a)/100,this},toHsv:function(){var t=i(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=i(this._r,this._g,this._b),e=j(360*t.h),r=j(100*t.s),n=j(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=n(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=n(this._r,this._g,this._b),e=j(360*t.h),r=j(100*t.s),a=j(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+a+"%)":"hsla("+e+", "+r+"%, "+a+"%, "+this._roundA+")"},toHex:function(t){return o(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(){return f(this._r,this._g,this._b,this._a)},toHex8String:function(){return"#"+this.toHex8()},toRgb:function(){return{r:j(this._r),g:j(this._g),b:j(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+j(this._r)+", "+j(this._g)+", "+j(this._b)+")":"rgba("+j(this._r)+", "+j(this._g)+", "+j(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:j(100*A(this._r,255))+"%",g:j(100*A(this._g,255))+"%",b:j(100*A(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+j(100*A(this._r,255))+"%, "+j(100*A(this._g,255))+"%, "+j(100*A(this._b,255))+"%)":"rgba("+j(100*A(this._r,255))+"%, "+j(100*A(this._g,255))+"%, "+j(100*A(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":this._a<1?!1:G[o(this._r,this._g,this._b,!0)]||!1},toFilter:function(e){var r="#"+f(this._r,this._g,this._b,this._a),n=r,a=this._gradientType?"GradientType = 1, ":"";if(e){var i=t(e);n=i.toHex8String()}return"progid:DXImageTransform.Microsoft.gradient("+a+"startColorstr="+r+",endColorstr="+n+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0,a=!e&&n&&("hex"===t||"hex6"===t||"hex3"===t||"name"===t);return a?"name"===t&&0===this._a?this.toName():this.toRgbString():("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),("hex"===t||"hex6"===t)&&(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(c,arguments)},brighten:function(){return this._applyModification(g,arguments)},darken:function(){return this._applyModification(d,arguments)},desaturate:function(){return this._applyModification(h,arguments)},saturate:function(){return this._applyModification(u,arguments)},greyscale:function(){return this._applyModification(l,arguments)},spin:function(){return this._applyModification(b,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(y,arguments)},complement:function(){return this._applyCombination(p,arguments)},monochromatic:function(){return this._applyCombination(w,arguments)},splitcomplement:function(){return this._applyCombination(v,arguments)},triad:function(){return this._applyCombination(m,arguments)},tetrad:function(){return this._applyCombination(_,arguments)}},t.fromRatio=function(e,r){if("object"==typeof e){var n={};for(var a in e)e.hasOwnProperty(a)&&(n[a]="a"===a?e[a]:O(e[a]));e=n}return t(e,r)},t.equals=function(e,r){return e&&r?t(e).toRgbString()==t(r).toRgbString():!1},t.random=function(){return t.fromRatio({r:D(),g:D(),b:D()})},t.mix=function(e,r,n){n=0===n?0:n||50;var a,i=t(e).toRgb(),s=t(r).toRgb(),o=n/100,f=2*o-1,h=s.a-i.a;a=f*h==-1?f:(f+h)/(1+f*h),a=(a+1)/2;var u=1-a,l={r:s.r*a+i.r*u,g:s.g*a+i.g*u,b:s.b*a+i.b*u,a:s.a*o+i.a*(1-o)};return t(l)},t.readability=function(e,r){var n=t(e),a=t(r);return(Math.max(n.getLuminance(),a.getLuminance())+.05)/(Math.min(n.getLuminance(),a.getLuminance())+.05)},t.isReadable=function(e,r,n){var a,i,s=t.readability(e,r);switch(i=!1,a=L(n),a.level+a.size){case"AAsmall":case"AAAlarge":i=s>=4.5;break;case"AAlarge":i=s>=3;break;case"AAAsmall":i=s>=7}return i},t.mostReadable=function(e,r,n){var a,i,s,o,f=null,h=0;n=n||{},i=n.includeFallbackColors,s=n.level,o=n.size;for(var u=0;u<r.length;u++)a=t.readability(e,r[u]),a>h&&(h=a,f=t(r[u]));return t.isReadable(e,f,{level:s,size:o})||!i?f:(n.includeFallbackColors=!1,t.mostReadable(e,["#fff","#000"],n))};var B=t.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},G=t.hexNames=x(B),U=function(){var t="[-\\+]?\\d+%?",e="[-\\+]?\\d*\\.\\d+%?",r="(?:"+e+")|(?:"+t+")",n="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?",a="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?";return{rgb:new RegExp("rgb"+n),rgba:new RegExp("rgba"+a),hsl:new RegExp("hsl"+n),hsla:new RegExp("hsla"+a),hsv:new RegExp("hsv"+n),hsva:new RegExp("hsva"+a),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();"undefined"!=typeof module&&module.exports?module.exports=t:"function"==typeof define&&define.amd?define(function(){return t}):window.tinycolor=t}();
|
1 |
+
if (typeof(Ecwid) == 'object') {
|
2 |
+
Ecwid.OnAPILoaded.add(function() {
|
3 |
+
|
4 |
+
var html_id = document.getElementsByTagName("html")[0].id;
|
5 |
+
var body_id = document.getElementsByTagName("body")[0].id;;
|
6 |
+
var css_prefix = 'html#'+html_id+' body#'+body_id+'.chameleon';
|
7 |
+
|
8 |
+
var css = '';
|
9 |
+
var parent = document.querySelector('.ecwid-shopping-cart-product-browser').parentNode;
|
10 |
+
var computedStyle = getComputedStyle(parent, null);
|
11 |
+
|
12 |
+
var primary_color = tinycolor( (typeof ecwidChameleon !== 'undefined' && typeof ecwidChameleon.primary_color !== 'undefined') ? ecwidChameleon.primary_color : computedStyle.color );
|
13 |
+
var primary_background = tinycolor( (typeof ecwidChameleon !== 'undefined' && typeof ecwidChameleon.primary_background !== 'undefined') ? ecwidChameleon.primary_background : getBackground(parent) );
|
14 |
+
|
15 |
+
if (typeof ecwidChameleon !== 'undefined' && typeof ecwidChameleon.primary_background !== 'undefined') {
|
16 |
+
var primary_link = tinycolor( ecwidChameleon.primary_link );
|
17 |
+
}
|
18 |
+
else {
|
19 |
+
var a = document.createElement('a');
|
20 |
+
a.href = a.textContent = url = '';
|
21 |
+
parent.appendChild(a);
|
22 |
+
var primary_link = tinycolor( document.defaultView.getComputedStyle(a, null).color );
|
23 |
+
parent.removeChild(a);
|
24 |
+
}
|
25 |
+
|
26 |
+
if (tinycolor.equals(primary_background, 'transparent')) {
|
27 |
+
primary_background = tinycolor('#fff');
|
28 |
+
}
|
29 |
+
|
30 |
+
var accent_color = tinycolor(primary_link.toString()).darken(15).brighten();
|
31 |
+
var muted_accent_color = tinycolor(primary_link.toString()).darken(15).setAlpha(.6);
|
32 |
+
|
33 |
+
var hover_link = tinycolor(primary_link.toString()).lighten(20);
|
34 |
+
var muted_color = (primary_color.isLight()) ? tinycolor(primary_color.toString()).darken(15) : tinycolor(primary_color.toString()).lighten(20);
|
35 |
+
var muted_link = tinycolor(primary_color.toString()).lighten(20);
|
36 |
+
var secondary_link = tinycolor(primary_link.toString()).darken(20);
|
37 |
+
|
38 |
+
var border_color = tinycolor(primary_color.toString()).setAlpha(.1);
|
39 |
+
|
40 |
+
var muted_background = tinycolor(primary_background.toString());
|
41 |
+
var muted_background = (muted_background.isLight()) ? muted_background.darken(5) : muted_background.lighten(15);
|
42 |
+
var muted_soft_background = tinycolor(primary_background.toString());
|
43 |
+
var muted_soft_background = (muted_soft_background.isLight()) ? muted_soft_background.darken(10) : muted_soft_background.lighten(20);
|
44 |
+
var hover_background = tinycolor(primary_link.toString()).lighten(20).setAlpha(.2);
|
45 |
+
|
46 |
+
var button_border_color = tinycolor(hover_link.toString()).darken(5);
|
47 |
+
var button_hover_top = tinycolor(hover_link.toString()).lighten(5);
|
48 |
+
var button_hover_bottom = tinycolor(primary_link.toString()).lighten(5);
|
49 |
+
var button_shadow = tinycolor(button_border_color.toString()).lighten(15).setAlpha(.3);
|
50 |
+
var button_hover_shadow = tinycolor(button_border_color.toString()).lighten(15).setAlpha(.4);
|
51 |
+
var button_border_hover_color = tinycolor(hover_link.toString());
|
52 |
+
|
53 |
+
// Additional rules
|
54 |
+
if (!tinycolor.isReadable(accent_color, muted_soft_background)) {
|
55 |
+
accent_color = tinycolor(secondary_link.toString()).brighten(20);
|
56 |
+
muted_accent_color = tinycolor(secondary_link.toString()).lighten(20);
|
57 |
+
}
|
58 |
+
if (!tinycolor.isReadable(secondary_link, '#F0F0F0')) {
|
59 |
+
secondary_link = (secondary_link.isLight()) ? tinycolor(secondary_link.toString()).darken() : tinycolor(secondary_link.toString()).lighten();
|
60 |
+
}
|
61 |
+
var button_color = tinycolor('#fff');
|
62 |
+
if (!tinycolor.isReadable(button_color, primary_link)) {
|
63 |
+
button_color = tinycolor(primary_background.toString());
|
64 |
+
}
|
65 |
+
|
66 |
+
// Font family
|
67 |
+
css+= css_prefix + ' .ecwid, ' + css_prefix + ' .ecwid * '+ css_prefix + ' .ecwid-minicart *, ' + css_prefix + ' .ecwid-SearchPanel * { font-family: inherit !important; }\n';
|
68 |
+
|
69 |
+
|
70 |
+
// Primary colors
|
71 |
+
css+= css_prefix + ' div.ecwid-productBrowser-head{ color: '+ primary_color.toString() +'; }\n';
|
72 |
+
css+= css_prefix + ' div.ecwid-productBrowser-productNameLink a, ' + css_prefix + ' div.ecwid-productBrowser-productNameLink a:active, ' + css_prefix + ' div.ecwid-productBrowser-productNameLink a:visited{ color: '+ muted_color.toString() +'; }\n';
|
73 |
+
css+= css_prefix + ' div.ecwid-productBrowser-productsGrid-productMiddleFragment-mouseover div.ecwid-productBrowser-productNameLink a, ' + css_prefix + ' div.ecwid-productBrowser-productsGrid-productMiddleFragment-mouseover div.ecwid-productBrowser-productNameLink a:active, ' + css_prefix + ' div.ecwid-productBrowser-productsGrid-productMiddleFragment-mouseover div.ecwid-productBrowser-productNameLink a:visited{ font-size: 17px; color: '+ primary_color.toString() +'; }\n';
|
74 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-productNameLink a, ' + css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-productNameLink a:active, ' + css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-productNameLink a:visited{ color: '+ primary_color.toString() +'; }\n';
|
75 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-price{ color: '+ primary_color.toString() +'; }\n';
|
76 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart-subtotalAmount, ' + css_prefix + ' div.ecwid-productBrowser-cart-subtotalAmountMinus, ' + css_prefix + ' div.ecwid-productBrowser-cart-shippingAmount, ' + css_prefix + ' div.ecwid-productBrowser-cart-taxAmount{ color: '+ primary_color.toString() +'; }\n';
|
77 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart-totalLabel{ color: '+ primary_color.toString() +'; }\n';
|
78 |
+
css+= css_prefix + ' table.ecwid-productBrowser-productsTable-v2 div.ecwid-productBrowser-productNameLink:hover a, ' + css_prefix + ' table.ecwid-productBrowser-productsList-v2 div.ecwid-productBrowser-productNameLink:hover a, ' + css_prefix + ' table.ecwid-productBrowser-productsGrid-v2 div.ecwid-productBrowser-productNameLink:hover a { color: '+ primary_color.toString() +'; }\n';
|
79 |
+
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-productBrowser-price, ' + css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-Invoice-qtyLabel{ color: '+ primary_color.toString() +'; }\n';
|
80 |
+
css+= css_prefix + ' .ecwid-minicart-mini-count{ color: '+ primary_link.toString() +'; }\n';
|
81 |
+
|
82 |
+
// Muted colors
|
83 |
+
css+= css_prefix + ' .ecwid{ color: '+ muted_color.toString() +'; }\n';
|
84 |
+
css+= css_prefix + ' div.ecwid-productBrowser-categoryPath{ color: '+ muted_color.toString() +'; }\n';
|
85 |
+
css+= css_prefix + ' div.ecwid-productBrowser-subcategories-categoryName{ color: '+ muted_color.toString() +'; }\n';
|
86 |
+
css+= css_prefix + ' div.ecwid-results-topPanel div.ecwid-results-topPanel-itemsCountLabel{ color: '+ muted_color.toString() +'; }\n';
|
87 |
+
css+= css_prefix + ' div.ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
88 |
+
css+= css_prefix + ' div.ecwid-results-topPanel div{ color: '+ muted_color.toString() +'; }\n';
|
89 |
+
css+= css_prefix + ' div.ecwid-productBrowser-details-optionPanel label.ecwid-fieldLabel{ color: '+ muted_color.toString() +'; }\n';
|
90 |
+
css+= css_prefix + ' div.ecwid-productBrowser-details-qtyLabel{ color: '+ muted_color.toString() +'; }\n';
|
91 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
92 |
+
css+= css_prefix + ' span.ecwid-productBrowser-cart-weight{ color: '+ muted_color.toString() +'; }\n';
|
93 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart-optionsList{ color: '+ muted_color.toString() +'; }\n';
|
94 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart-subtotalLabel,' + css_prefix + ' div.ecwid-productBrowser-cart-shippingLabel,' + css_prefix + ' div.ecwid-productBrowser-cart-taxLabel{ color: '+ muted_color.toString() +'; }\n';
|
95 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart-estimationNote{ color: '+ muted_color.toString() +'; }\n';
|
96 |
+
css+= css_prefix + ' label.ecwid-fieldLabel{ color: '+ muted_color.toString() +'; }\n';
|
97 |
+
css+= css_prefix + ' div.ecwid-FormPopup-fieldWrapper label.ecwid-fieldLabel{ color: '+ muted_color.toString() +'; }\n';
|
98 |
+
css+= css_prefix + ' div.ecwid-Checkout-PasswordBlock-tip{ color: '+ muted_color.toString() +'; }\n';
|
99 |
+
css+= css_prefix + ' div.ecwid-pager{ color: '+ muted_color.toString() +'; }\n';
|
100 |
+
css+= css_prefix + ' div.ecwid-pager span.ecwid-pager-link-disabled{ color: '+ muted_color.toString() +'; }\n';
|
101 |
+
css+= css_prefix + ' div.ecwid-productBrowser-details-inTheBag div{ color: '+ muted_color.toString() +'; }\n';
|
102 |
+
css+= css_prefix + ' div.ecwid-productBrowser-productsList-descr{ color: '+ muted_color.toString() +'; }\n';
|
103 |
+
css+= css_prefix + ' div.ecwid-productBrowser-productsTable div.ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
104 |
+
css+= css_prefix + ' div.ecwid-productBrowser-extraFields-side{ color: '+ muted_color.toString() +'; }\n';
|
105 |
+
css+= css_prefix + ' div.ecwid-Invoice-block{ color: '+ muted_color.toString() +'; }\n';
|
106 |
+
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
107 |
+
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-Invoice-optionsList{ color: '+ muted_color.toString() +'; }\n';
|
108 |
+
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-productBrowser-price,' + css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-Invoice-qtyLabel{ color: '+ muted_color.toString() +'; }\n';
|
109 |
+
css+= css_prefix + ' div.ecwid-Invoice-Summary-label,' + css_prefix + ' div.ecwid-Invoice-Summary-value{ color: '+ muted_color.toString() +'; }\n';
|
110 |
+
css+= css_prefix + ' div.ecwid-Invoice-header-placeOrder div.gwt-Label,' + css_prefix + ' div.ecwid-Invoice-footer-placeOrder div.gwt-Label,' + css_prefix + ' td.ecwid-Invoice-header-orderConfirmation-text,' + css_prefix + ' td.ecwid-Invoice-footer-orderConfirmation-text{ color: '+ muted_color.toString() +'; }\n';
|
111 |
+
css+= css_prefix + ' div.ecwid-productBrowser-details-outOfStockLabel{ color: '+ muted_color.toString() +'; }\n';
|
112 |
+
|
113 |
+
// Borders
|
114 |
+
css+= css_prefix + ' div.ecwid-productBrowser-productsGrid-productTopFragment-mouseover,' + css_prefix + ' div.ecwid-productBrowser-productsGrid-productBottomFragment-mouseover{ border-color: '+ border_color.toString() +'; }\n';
|
115 |
+
css+= css_prefix + ' .ecwid-productBrowser-productsGrid-v2 td.ecwid-productBrowser-productsGrid-productInside.ecwid-productBrowser-productsGrid-hover{ border-color: '+ border_color.toString() +'; }\n';
|
116 |
+
css+= css_prefix + ' td.ecwid-productBrowser-productsList-mouseover{ border-color: '+ border_color.toString() +'; }\n';
|
117 |
+
css+= css_prefix + ' .ecwid-productBrowser-relatedProducts .ecwid-productBrowser-relatedProducts-item-top-hover{ border-color: '+ border_color.toString() +'; }\n';
|
118 |
+
css+= css_prefix + ' .ecwid-productBrowser-relatedProducts .ecwid-productBrowser-relatedProducts-item-bottom-hover{ border-color: '+ border_color.toString() +'; }\n';
|
119 |
+
css+= css_prefix + ' table.ecwid-categoriesTabBar div.gwt-TabBarFirst,' + css_prefix + ' table.ecwid-categoriesTabBar div.gwt-TabBarRest,' + css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem,' + css_prefix + ' div.ecwid-categories-horizontal-menuBarContainer,' + css_prefix + ' td.ecwid-categories-vertical-table-cell,' + css_prefix + ' div.ecwid-categories-MenuBarPopup div.menuSeparatorInner{ border-color: '+ border_color.toString() +'; }\n';
|
120 |
+
|
121 |
+
// Accents
|
122 |
+
css+= css_prefix + ' div.ecwid-productBrowser-price{ color: '+ accent_color.toString() +'; }\n';
|
123 |
+
css+= css_prefix + ' div.ecwid-productBrowser-details-inStockLabel{ color: '+ muted_accent_color.toString() +'; }\n';
|
124 |
+
css+= css_prefix + ' div.ecwid-Checkout-blockTitle,' + css_prefix + ' table.ecwid-Checkout-blockTitle div.gwt-Label,' + css_prefix + ' table.ecwid-Checkout-blockTitle div.gwt-HTML{ color: '+ muted_accent_color.toString() +'; }\n';
|
125 |
+
css+= css_prefix + ' div.ecwid-Checkout-BreadCrumbs-link-visited{ color: '+ muted_accent_color.toString() +'; }\n';
|
126 |
+
css+= css_prefix + ' div.ecwid-Checkout-BreadCrumbs-link-current{ color: '+ muted_accent_color.toString() +'; border-color: '+ muted_accent_color.toString() +'; }\n';
|
127 |
+
css+= css_prefix + ' div.ecwid-fieldEnvelope-label{ color: '+ accent_color.toString() +'; }\n';
|
128 |
+
css+= css_prefix + ' input.gwt-PasswordTextBox,' + css_prefix + ' textarea.gwt-TextArea,' + css_prefix + ' input.gwt-DateBox{ color: '+ accent_color.toString() +'; }\n';
|
129 |
+
css+= css_prefix + ' .ecwid div.ecwid-AccentedContinueButton-label{ color: '+ accent_color.toString() +'; }\n';
|
130 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart-termsCheckbox-rollover{ background-color: '+ hover_background.toString() +'; }\n';
|
131 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart-estimationNote span{ color: '+ muted_accent_color.toString() +'; }\n';
|
132 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart-asterisk{ color: '+ muted_accent_color.toString() +'; }\n';
|
133 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart-totalAmount{ color: '+ accent_color.toString() +'; }\n';
|
134 |
+
|
135 |
+
// Primary links
|
136 |
+
css+= css_prefix + ' div.ecwid-productBrowser-categoryPath a,' + css_prefix + ' div.ecwid-productBrowser-categoryPath a:active,' + css_prefix + ' div.ecwid-productBrowser-categoryPath a:visited{ color: '+ primary_link.toString() +'; }\n';
|
137 |
+
css+= css_prefix + ' .ecwid a,' + css_prefix + ' .ecwid a:active, ' + css_prefix + ' .ecwid a:visited{ color: '+ primary_link.toString() +'; }\n';
|
138 |
+
css+= css_prefix + ' div.ecwid-results-topPanel div.ecwid-results-topPanel-viewAsPanel-link{ color: '+ primary_link.toString() +'; }\n';
|
139 |
+
css+= css_prefix + ' div.ecwid-pager span.ecwid-pager-link-enabled{ color: '+ primary_link.toString() +'; }\n';
|
140 |
+
css+= css_prefix + ' div.ecwid-productBrowser-productsTable-addToBagLink{ color: '+ primary_link.toString() +'; }\n';
|
141 |
+
|
142 |
+
// Hover links
|
143 |
+
css+= css_prefix + ' div.ecwid-productBrowser-categoryPath a:hover{ color: '+ hover_link.toString() +'; }\n';
|
144 |
+
css+= css_prefix + ' .ecwid a:hover{ color: '+ hover_link.toString() +'; }\n';
|
145 |
+
css+= css_prefix + ' div.ecwid-results-topPanel div.ecwid-results-topPanel-viewAsPanel-link:hover{ color: '+ hover_link.toString() +'; }\n';
|
146 |
+
|
147 |
+
// Backgrounds
|
148 |
+
css+= css_prefix + ' .ecwid .ecwid-ProductDetails-gray-panel-bottom,' + css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel{ background-color: '+ muted_background.toString() +'; }\n';
|
149 |
+
css+= css_prefix + ' .ecwid-productBrowser-details-rightPanel div.ecwid-productBrowser-sharePanel-header{ background-color: '+ muted_background.toString() +'; }\n';
|
150 |
+
css+= css_prefix + ' a.ecwid-productBrowser-nav-left,' + css_prefix + ' a.ecwid-productBrowser-nav-right{ background-color: '+ muted_background.toString() +'; }\n';
|
151 |
+
css+= css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel{ background-color: '+ muted_background.toString() +'; }\n';
|
152 |
+
css+= css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel .ecwid-productBrowser-ask-advice-panel-icon{ background-color: '+ muted_background.toString() +'; }\n';
|
153 |
+
css+= css_prefix + ' div.ecwid-productBrowser-backgroundedPanel{ background-color: '+ muted_soft_background.toString() +'; }\n';
|
154 |
+
css+= css_prefix + ' .ecwid-productBrowser-details-rightPanel .ecwid-productBrowser-sharePanel-buttonsContainer{ background-color: '+ muted_soft_background.toString() +'; border-color: '+ tinycolor(muted_color.toString()).setAlpha(.2).toString() +'}\n';
|
155 |
+
css+= css_prefix + ' tr.ecwid-productBrowser-cart-itemsTable-row-selected,' + css_prefix + ' td.ecwid-productBrowser-cart-itemsTable-cell-selected{ background-color: '+ muted_background.toString() +'; }\n';
|
156 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart-EnterCouponBox{ background-color: '+ muted_background.toString() +'; border-color: transparent; }\n';
|
157 |
+
css+= css_prefix + ' div.ecwid-form{ background-color: '+ muted_background.toString() +'; }\n';
|
158 |
+
css+= css_prefix + ' .ecwid input.ecwid-productBrowser-details-qtyTextField{ color: '+ primary_color.toString() +'; }\n';
|
159 |
+
css+= css_prefix + ' td.ecwid-productBrowser-productsTable-cell{ background-color: '+ primary_background.toString() +'; }\n';
|
160 |
+
css+= css_prefix + ' td.ecwid-productBrowser-productsTable-cellOdd{ background-color: '+ muted_background.toString() +'; }\n';
|
161 |
+
css+= css_prefix + ' input.gwt-TextBox, ' + css_prefix + ' input.gwt-PasswordTextBox, ' + css_prefix + ' textarea.gwt-TextArea, ' + css_prefix + ' input.gwt-DateBox, ' + css_prefix + ' .ecwid-SearchPanel-field{ background-color: '+ primary_background.toString() +'; }\n';
|
162 |
+
css+= css_prefix + ' div.ecwid-Invoice-cell-title{ color: '+ muted_color +';background-color: '+ muted_background.toString() +'; }\n';
|
163 |
+
css+= css_prefix + ' div.ecwid-Invoice-blockTitle{ color: '+ muted_color +';background-color: '+ muted_background.toString() +'; }\n';
|
164 |
+
css+= css_prefix + ' td.ecwid-Invoice-cell{ background-color: '+ muted_background.toString() +'; }\n';
|
165 |
+
css+= css_prefix + ' td.ecwid-Invoice-edgeCell{ background-color: '+ muted_background.toString() +'; }\n';
|
166 |
+
|
167 |
+
// Buttons
|
168 |
+
css+= css_prefix + ' div.ecwid-AddToBagButton::after { content: "' + msg('TableProductsContainer.add_to_bag', 'Add To Bag') + '"; white-space: nowrap; }\n';
|
169 |
+
css+= css_prefix + ' div.ecwid-ContinueShoppingButton::after { content: "' + msg('ShoppingCartView.continue', 'Continue Shopping') + '"; white-space: nowrap; }\n';
|
170 |
+
css+= css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton:after { content: "' + msg('FBAutofillCheckout.Breadcrumbs.checkout', 'Checkout') + '"; white-space: nowrap; }\n';
|
171 |
+
css+= css_prefix + ' div.ecwid-Checkout-placeOrderButton::after { content: "' + msg('FBAutofillCheckout.Breadcrumbs.checkout', 'Place Order') + '"; white-space: nowrap; }\n';
|
172 |
+
|
173 |
+
css+= css_prefix + ' div.ecwid-ContinueShoppingButton::after,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton::after, ' + css_prefix + ' div.ecwid-AddToBagButton::after, ' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton::after, ' + css_prefix + ' button.ecwid-AccentedButton span, ' + css_prefix + ' div.ecwid-Checkout-placeOrderButton::after{ color: '+ button_color +'; }\n';
|
174 |
+
|
175 |
+
css+= css_prefix + ' button.ecwid-AccentedButton,' + css_prefix + ' div.ecwid-AddToBagButton-up, ' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-up,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-up,' + css_prefix + ' div.ecwid-ContinueShoppingButton-up,' + css_prefix + ' div.ecwid-AddToBagButton-up-hovering,' + css_prefix + ' div.ecwid-AddToBagButton-down-hovering,' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-up-hovering,' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-down-hovering,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-down-hovering,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-up-hovering,' + css_prefix + ' div.ecwid-ContinueShoppingButton-up-hovering,' + css_prefix + ' div.ecwid-ContinueShoppingButton-down-hovering,' + css_prefix + ' button.ecwid-AccentedButton:hover { -webkit-box-sizing: border-box; box-sizing: border-box; width: auto; min-width: 160px; height: auto; padding: 11px 40px; background-color: '+primary_link+'; background-image: -webkit-gradient(linear, left top, left bottom, from('+hover_link+'), to('+primary_link+')); background-image: -webkit-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: -moz-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: -ms-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: -o-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: linear-gradient(to bottom, '+hover_link+', '+primary_link+'); border: 1px solid '+button_border_color+'; -webkit-box-shadow: inset 0 1px 0 '+button_shadow+'; box-shadow: inset 0 1px 0 '+button_shadow+'; text-decoration: none; text-shadow: 0 1px 0 rgba(0,0,0,0.1); border-radius: 3px; padding-left: 20px; padding-right: 20px; }\n';
|
176 |
+
|
177 |
+
css+= css_prefix + ' div.ecwid-AddToBagButton-up-hovering,' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-up-hovering,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-up-hovering,' + css_prefix + ' div.ecwid-ContinueShoppingButton-up-hovering { background-image: -webkit-gradient(linear, left top, left bottom, from('+button_hover_top+'), to('+button_hover_bottom+')); background-image: -webkit-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: -moz-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: -ms-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: -o-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: linear-gradient(to bottom, '+button_hover_top+', '+button_hover_bottom+'); border: 1px solid '+button_border_hover_color+'; -webkit-box-shadow: inset 0 1px 0 '+button_hover_shadow+'; box-shadow: inset 0 1px 0 '+button_hover_shadow+'; text-decoration: none; text-shadow: 0 -1px 0 rgba(0,0,0,0.2); } \n';
|
178 |
+
|
179 |
+
|
180 |
+
css+= css_prefix + ' button.gwt-Button,' + css_prefix + ' #wrapper button.gwt-Button{ color: '+ secondary_link +'; }\n';
|
181 |
+
css+= css_prefix + ' button.ecwid-AccentedButton{ line-height: 1; }\n';
|
182 |
+
|
183 |
+
// Search
|
184 |
+
css+= css_prefix + ' .ecwid-SearchPanel-button { background-color: '+ muted_background.toString() +'; border: 1px solid '+ border_color +'; border-radius: 2px; color: '+ primary_color +'; cursor: pointer; font-size: 12px; height: 26px; outline: medium none; padding: 2px 5px; text-decoration: none; vertical-align: baseline; white-space: nowrap; }\n';
|
185 |
+
|
186 |
+
// Categories
|
187 |
+
css+= css_prefix + ' span.ecwid-categories-category{ color: '+ muted_color.toString() +'; }\n';
|
188 |
+
css+= css_prefix + ' div.ecwid-categoriesMenuBar td.gwt-MenuItem-selected span.ecwid-categories-category,' + css_prefix + ' div.ecwid-categoriesMenuBar td.gwt-MenuItem-current span.ecwid-categories-category,' + css_prefix + ' td.ecwid-categories-vertical-table-cell-selected span.ecwid-categories-category,' + css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem-selected span.ecwid-categories-category{ color: '+ primary_link.toString() +'; }\n';
|
189 |
+
|
190 |
+
css+= css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem-selected td { background: none !important; }\n';
|
191 |
+
css+= css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem-selected { border: 1px solid; border-bottom: 0px; border-color: '+ border_color.toString() +'; }\n';
|
192 |
+
css+= css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel { min-height: 18px; height: auto; }\n';
|
193 |
+
|
194 |
+
head = document.getElementsByTagName('head')[0],
|
195 |
+
style = document.createElement('style');
|
196 |
+
style.type = 'text/css';
|
197 |
+
if (style.styleSheet) {
|
198 |
+
style.styleSheet.cssText = css;
|
199 |
+
} else {
|
200 |
+
style.appendChild(document.createTextNode(css));
|
201 |
+
}
|
202 |
+
head.appendChild(style);
|
203 |
+
document.getElementsByTagName("body")[0].className += ' chameleon';
|
204 |
+
});
|
205 |
+
}
|
206 |
+
|
207 |
+
function getLinkColor(url) {
|
208 |
+
var a = document.createElement('a');
|
209 |
+
a.href = a.textContent = url;
|
210 |
+
document.body.appendChild(a);
|
211 |
+
return document.defaultView.getComputedStyle(a, null).color;
|
212 |
+
}
|
213 |
+
|
214 |
+
function toCamelCase(s){
|
215 |
+
for(var exp=/-([a-z])/; exp.test(s); s=s.replace(exp,RegExp.$1.toUpperCase()));
|
216 |
+
return s;
|
217 |
+
}
|
218 |
+
|
219 |
+
function getStyle(e,a){
|
220 |
+
var v=null;
|
221 |
+
if(document.defaultView && document.defaultView.getComputedStyle){
|
222 |
+
var cs = document.defaultView.getComputedStyle(e, null);
|
223 |
+
if(cs && cs.getPropertyValue)
|
224 |
+
v = cs.getPropertyValue(a);
|
225 |
+
}
|
226 |
+
if(!v && e.currentStyle)
|
227 |
+
v = e.currentStyle[toCamelCase(a)];
|
228 |
+
return v;
|
229 |
+
}
|
230 |
+
|
231 |
+
function getBackground(e){
|
232 |
+
var v = getStyle(e,'background-color');
|
233 |
+
while (!v || v=='transparent' || v=='#000000' || v=='rgba(0, 0, 0, 0)'){
|
234 |
+
if( e == document.body )
|
235 |
+
v = '#fff';
|
236 |
+
else {
|
237 |
+
e = e.parentNode;
|
238 |
+
v = getStyle(e, 'background-color');
|
239 |
+
}
|
240 |
+
}
|
241 |
+
return v;
|
242 |
+
}
|
243 |
+
|
244 |
+
function msg(label, defaultValue) {
|
245 |
+
var messageBundles = (window.Ecwid && window.Ecwid.MessageBundles) ? window.Ecwid.MessageBundles : {};
|
246 |
+
var bundle = messageBundles['ru.cdev.xnext.client'] ? messageBundles['ru.cdev.xnext.client'] : {};
|
247 |
+
return bundle[label] || defaultValue;
|
248 |
+
}
|
249 |
+
|
250 |
+
// TinyColor v1.1.2
|
251 |
+
// https://github.com/bgrins/TinyColor
|
252 |
+
// Brian Grinstead, MIT License
|
253 |
+
!function(){function t(r,n){if(r=r?r:"",n=n||{},r instanceof t)return r;if(!(this instanceof t))return new t(r,n);var a=e(r);this._originalInput=r,this._r=a.r,this._g=a.g,this._b=a.b,this._a=a.a,this._roundA=j(100*this._a)/100,this._format=n.format||a.format,this._gradientType=n.gradientType,this._r<1&&(this._r=j(this._r)),this._g<1&&(this._g=j(this._g)),this._b<1&&(this._b=j(this._b)),this._ok=a.ok,this._tc_id=I++}function e(t){var e={r:0,g:0,b:0},n=1,i=!1,o=!1;return"string"==typeof t&&(t=q(t)),"object"==typeof t&&(t.hasOwnProperty("r")&&t.hasOwnProperty("g")&&t.hasOwnProperty("b")?(e=r(t.r,t.g,t.b),i=!0,o="%"===String(t.r).substr(-1)?"prgb":"rgb"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("v")?(t.s=O(t.s),t.v=O(t.v),e=s(t.h,t.s,t.v),i=!0,o="hsv"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("l")&&(t.s=O(t.s),t.l=O(t.l),e=a(t.h,t.s,t.l),i=!0,o="hsl"),t.hasOwnProperty("a")&&(n=t.a)),n=k(n),{ok:i,format:t.format||o,r:T(255,$(e.r,0)),g:T(255,$(e.g,0)),b:T(255,$(e.b,0)),a:n}}function r(t,e,r){return{r:255*A(t,255),g:255*A(e,255),b:255*A(r,255)}}function n(t,e,r){t=A(t,255),e=A(e,255),r=A(r,255);var n,a,i=$(t,e,r),s=T(t,e,r),o=(i+s)/2;if(i==s)n=a=0;else{var f=i-s;switch(a=o>.5?f/(2-i-s):f/(i+s),i){case t:n=(e-r)/f+(r>e?6:0);break;case e:n=(r-t)/f+2;break;case r:n=(t-e)/f+4}n/=6}return{h:n,s:a,l:o}}function a(t,e,r){function n(t,e,r){return 0>r&&(r+=1),r>1&&(r-=1),1/6>r?t+6*(e-t)*r:.5>r?e:2/3>r?t+(e-t)*(2/3-r)*6:t}var a,i,s;if(t=A(t,360),e=A(e,100),r=A(r,100),0===e)a=i=s=r;else{var o=.5>r?r*(1+e):r+e-r*e,f=2*r-o;a=n(f,o,t+1/3),i=n(f,o,t),s=n(f,o,t-1/3)}return{r:255*a,g:255*i,b:255*s}}function i(t,e,r){t=A(t,255),e=A(e,255),r=A(r,255);var n,a,i=$(t,e,r),s=T(t,e,r),o=i,f=i-s;if(a=0===i?0:f/i,i==s)n=0;else{switch(i){case t:n=(e-r)/f+(r>e?6:0);break;case e:n=(r-t)/f+2;break;case r:n=(t-e)/f+4}n/=6}return{h:n,s:a,v:o}}function s(t,e,r){t=6*A(t,360),e=A(e,100),r=A(r,100);var n=N.floor(t),a=t-n,i=r*(1-e),s=r*(1-a*e),o=r*(1-(1-a)*e),f=n%6,h=[r,s,i,i,o,r][f],u=[o,r,r,s,i,i][f],l=[i,i,o,r,r,s][f];return{r:255*h,g:255*u,b:255*l}}function o(t,e,r,n){var a=[M(j(t).toString(16)),M(j(e).toString(16)),M(j(r).toString(16))];return n&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function f(t,e,r,n){var a=[M(P(n)),M(j(t).toString(16)),M(j(e).toString(16)),M(j(r).toString(16))];return a.join("")}function h(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.s-=r/100,n.s=H(n.s),t(n)}function u(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.s+=r/100,n.s=H(n.s),t(n)}function l(e){return t(e).desaturate(100)}function c(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.l+=r/100,n.l=H(n.l),t(n)}function g(e,r){r=0===r?0:r||10;var n=t(e).toRgb();return n.r=$(0,T(255,n.r-j(255*-(r/100)))),n.g=$(0,T(255,n.g-j(255*-(r/100)))),n.b=$(0,T(255,n.b-j(255*-(r/100)))),t(n)}function d(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.l-=r/100,n.l=H(n.l),t(n)}function b(e,r){var n=t(e).toHsl(),a=(j(n.h)+r)%360;return n.h=0>a?360+a:a,t(n)}function p(e){var r=t(e).toHsl();return r.h=(r.h+180)%360,t(r)}function m(e){var r=t(e).toHsl(),n=r.h;return[t(e),t({h:(n+120)%360,s:r.s,l:r.l}),t({h:(n+240)%360,s:r.s,l:r.l})]}function _(e){var r=t(e).toHsl(),n=r.h;return[t(e),t({h:(n+90)%360,s:r.s,l:r.l}),t({h:(n+180)%360,s:r.s,l:r.l}),t({h:(n+270)%360,s:r.s,l:r.l})]}function v(e){var r=t(e).toHsl(),n=r.h;return[t(e),t({h:(n+72)%360,s:r.s,l:r.l}),t({h:(n+216)%360,s:r.s,l:r.l})]}function y(e,r,n){r=r||6,n=n||30;var a=t(e).toHsl(),i=360/n,s=[t(e)];for(a.h=(a.h-(i*r>>1)+720)%360;--r;)a.h=(a.h+i)%360,s.push(t(a));return s}function w(e,r){r=r||6;for(var n=t(e).toHsv(),a=n.h,i=n.s,s=n.v,o=[],f=1/r;r--;)o.push(t({h:a,s:i,v:s})),s=(s+f)%1;return o}function x(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}function k(t){return t=parseFloat(t),(isNaN(t)||0>t||t>1)&&(t=1),t}function A(t,e){R(t)&&(t="100%");var r=F(t);return t=T(e,$(0,parseFloat(t))),r&&(t=parseInt(t*e,10)/100),N.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function H(t){return T(1,$(0,t))}function S(t){return parseInt(t,16)}function R(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)}function F(t){return"string"==typeof t&&-1!=t.indexOf("%")}function M(t){return 1==t.length?"0"+t:""+t}function O(t){return 1>=t&&(t=100*t+"%"),t}function P(t){return Math.round(255*parseFloat(t)).toString(16)}function C(t){return S(t)/255}function q(t){t=t.replace(z,"").replace(E,"").toLowerCase();var e=!1;if(B[t])t=B[t],e=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};var r;return(r=U.rgb.exec(t))?{r:r[1],g:r[2],b:r[3]}:(r=U.rgba.exec(t))?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=U.hsl.exec(t))?{h:r[1],s:r[2],l:r[3]}:(r=U.hsla.exec(t))?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=U.hsv.exec(t))?{h:r[1],s:r[2],v:r[3]}:(r=U.hsva.exec(t))?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=U.hex8.exec(t))?{a:C(r[1]),r:S(r[2]),g:S(r[3]),b:S(r[4]),format:e?"name":"hex8"}:(r=U.hex6.exec(t))?{r:S(r[1]),g:S(r[2]),b:S(r[3]),format:e?"name":"hex"}:(r=U.hex3.exec(t))?{r:S(r[1]+""+r[1]),g:S(r[2]+""+r[2]),b:S(r[3]+""+r[3]),format:e?"name":"hex"}:!1}function L(t){var e,r;return t=t||{level:"AA",size:"small"},e=(t.level||"AA").toUpperCase(),r=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA"),"small"!==r&&"large"!==r&&(r="small"),{level:e,size:r}}var z=/^[\s,#]+/,E=/\s+$/,I=0,N=Math,j=N.round,T=N.min,$=N.max,D=N.random;t.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,e,r,n,a,i,s=this.toRgb();return t=s.r/255,e=s.g/255,r=s.b/255,n=.03928>=t?t/12.92:Math.pow((t+.055)/1.055,2.4),a=.03928>=e?e/12.92:Math.pow((e+.055)/1.055,2.4),i=.03928>=r?r/12.92:Math.pow((r+.055)/1.055,2.4),.2126*n+.7152*a+.0722*i},setAlpha:function(t){return this._a=k(t),this._roundA=j(100*this._a)/100,this},toHsv:function(){var t=i(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=i(this._r,this._g,this._b),e=j(360*t.h),r=j(100*t.s),n=j(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=n(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=n(this._r,this._g,this._b),e=j(360*t.h),r=j(100*t.s),a=j(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+a+"%)":"hsla("+e+", "+r+"%, "+a+"%, "+this._roundA+")"},toHex:function(t){return o(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(){return f(this._r,this._g,this._b,this._a)},toHex8String:function(){return"#"+this.toHex8()},toRgb:function(){return{r:j(this._r),g:j(this._g),b:j(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+j(this._r)+", "+j(this._g)+", "+j(this._b)+")":"rgba("+j(this._r)+", "+j(this._g)+", "+j(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:j(100*A(this._r,255))+"%",g:j(100*A(this._g,255))+"%",b:j(100*A(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+j(100*A(this._r,255))+"%, "+j(100*A(this._g,255))+"%, "+j(100*A(this._b,255))+"%)":"rgba("+j(100*A(this._r,255))+"%, "+j(100*A(this._g,255))+"%, "+j(100*A(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":this._a<1?!1:G[o(this._r,this._g,this._b,!0)]||!1},toFilter:function(e){var r="#"+f(this._r,this._g,this._b,this._a),n=r,a=this._gradientType?"GradientType = 1, ":"";if(e){var i=t(e);n=i.toHex8String()}return"progid:DXImageTransform.Microsoft.gradient("+a+"startColorstr="+r+",endColorstr="+n+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0,a=!e&&n&&("hex"===t||"hex6"===t||"hex3"===t||"name"===t);return a?"name"===t&&0===this._a?this.toName():this.toRgbString():("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),("hex"===t||"hex6"===t)&&(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(c,arguments)},brighten:function(){return this._applyModification(g,arguments)},darken:function(){return this._applyModification(d,arguments)},desaturate:function(){return this._applyModification(h,arguments)},saturate:function(){return this._applyModification(u,arguments)},greyscale:function(){return this._applyModification(l,arguments)},spin:function(){return this._applyModification(b,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(y,arguments)},complement:function(){return this._applyCombination(p,arguments)},monochromatic:function(){return this._applyCombination(w,arguments)},splitcomplement:function(){return this._applyCombination(v,arguments)},triad:function(){return this._applyCombination(m,arguments)},tetrad:function(){return this._applyCombination(_,arguments)}},t.fromRatio=function(e,r){if("object"==typeof e){var n={};for(var a in e)e.hasOwnProperty(a)&&(n[a]="a"===a?e[a]:O(e[a]));e=n}return t(e,r)},t.equals=function(e,r){return e&&r?t(e).toRgbString()==t(r).toRgbString():!1},t.random=function(){return t.fromRatio({r:D(),g:D(),b:D()})},t.mix=function(e,r,n){n=0===n?0:n||50;var a,i=t(e).toRgb(),s=t(r).toRgb(),o=n/100,f=2*o-1,h=s.a-i.a;a=f*h==-1?f:(f+h)/(1+f*h),a=(a+1)/2;var u=1-a,l={r:s.r*a+i.r*u,g:s.g*a+i.g*u,b:s.b*a+i.b*u,a:s.a*o+i.a*(1-o)};return t(l)},t.readability=function(e,r){var n=t(e),a=t(r);return(Math.max(n.getLuminance(),a.getLuminance())+.05)/(Math.min(n.getLuminance(),a.getLuminance())+.05)},t.isReadable=function(e,r,n){var a,i,s=t.readability(e,r);switch(i=!1,a=L(n),a.level+a.size){case"AAsmall":case"AAAlarge":i=s>=4.5;break;case"AAlarge":i=s>=3;break;case"AAAsmall":i=s>=7}return i},t.mostReadable=function(e,r,n){var a,i,s,o,f=null,h=0;n=n||{},i=n.includeFallbackColors,s=n.level,o=n.size;for(var u=0;u<r.length;u++)a=t.readability(e,r[u]),a>h&&(h=a,f=t(r[u]));return t.isReadable(e,f,{level:s,size:o})||!i?f:(n.includeFallbackColors=!1,t.mostReadable(e,["#fff","#000"],n))};var B=t.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},G=t.hexNames=x(B),U=function(){var t="[-\\+]?\\d+%?",e="[-\\+]?\\d*\\.\\d+%?",r="(?:"+e+")|(?:"+t+")",n="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?",a="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?";return{rgb:new RegExp("rgb"+n),rgba:new RegExp("rgba"+a),hsl:new RegExp("hsl"+n),hsla:new RegExp("hsla"+a),hsv:new RegExp("hsv"+n),hsva:new RegExp("hsva"+a),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();"undefined"!=typeof module&&module.exports?module.exports=t:"function"==typeof define&&define.amd?define(function(){return t}):window.tinycolor=t}();
|
js/frontend.js
CHANGED
@@ -1,18 +1,18 @@
|
|
1 |
-
jQuery(document).ready(function() {
|
2 |
-
|
3 |
-
/*
|
4 |
-
if (typeof window.Ecwid != 'undefined') {
|
5 |
-
Ecwid.OnPageLoaded.add(function() {
|
6 |
-
jQuery.get(ecwid_ajax_object.ajax_url,
|
7 |
-
{'action': 'ecwid_ajax_seo_title', '_escaped_fragment_': window.location.hash, title_template: ecwid_ajax_object.title_template},
|
8 |
-
function(new_title) {
|
9 |
-
if (new_title == ecwid_ajax_object.title_template.replace('ECWID_SEO_TITLE', '')) {
|
10 |
-
new_title = ecwid_ajax_object.original_title;
|
11 |
-
}
|
12 |
-
jQuery('title').text(new_title);
|
13 |
-
}
|
14 |
-
);
|
15 |
-
});
|
16 |
-
}
|
17 |
-
*/
|
18 |
-
})
|
1 |
+
jQuery(document).ready(function() {
|
2 |
+
|
3 |
+
/*
|
4 |
+
if (typeof window.Ecwid != 'undefined') {
|
5 |
+
Ecwid.OnPageLoaded.add(function() {
|
6 |
+
jQuery.get(ecwid_ajax_object.ajax_url,
|
7 |
+
{'action': 'ecwid_ajax_seo_title', '_escaped_fragment_': window.location.hash, title_template: ecwid_ajax_object.title_template},
|
8 |
+
function(new_title) {
|
9 |
+
if (new_title == ecwid_ajax_object.title_template.replace('ECWID_SEO_TITLE', '')) {
|
10 |
+
new_title = ecwid_ajax_object.original_title;
|
11 |
+
}
|
12 |
+
jQuery('title').text(new_title);
|
13 |
+
}
|
14 |
+
);
|
15 |
+
});
|
16 |
+
}
|
17 |
+
*/
|
18 |
+
})
|
js/kissmetrics.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
if ( typeof ecwid_kissmetrics.store_id != 'undefined' ) {
|
2 |
+
_kmq.push([ 'identify', ecwid_kissmetrics.store_id ] );
|
3 |
+
}
|
4 |
+
|
5 |
+
for (var i = 0; i < ecwid_kissmetrics.events.length; i++) {
|
6 |
+
_kmq.push( [ 'record', ecwid_kissmetrics.events[i].event ] );
|
7 |
+
}
|
8 |
+
|
9 |
+
function ecwid_kissmetrics_record(event) {
|
10 |
+
if (typeof this.fired == 'undefined') {
|
11 |
+
this.fired = [];
|
12 |
+
}
|
13 |
+
|
14 |
+
if (this.fired.indexOf(event) != -1) return;
|
15 |
+
|
16 |
+
_kmq.push( [ 'record', 'wp-plugin ' + event ] );
|
17 |
+
this.fired.push(event);
|
18 |
+
}
|
js/landing.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
-
switch_to_connect = function() {
|
2 |
-
jQuery('.ecwid-landing').removeClass('register').addClass('connect');
|
3 |
-
jQuery('.ecwid-thank-step-one').addClass('active');
|
4 |
-
wpCookies.set('ecwid_create_store_clicked', 1);
|
5 |
}
|
1 |
+
switch_to_connect = function() {
|
2 |
+
jQuery('.ecwid-landing').removeClass('register').addClass('connect');
|
3 |
+
jQuery('.ecwid-thank-step-one').addClass('active');
|
4 |
+
wpCookies.set('ecwid_create_store_clicked', 1);
|
5 |
}
|
js/modernizr.js
CHANGED
@@ -1,1406 +1,1406 @@
|
|
1 |
-
/*!
|
2 |
-
* Modernizr v2.7.0
|
3 |
-
* www.modernizr.com
|
4 |
-
*
|
5 |
-
* Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
|
6 |
-
* Available under the BSD and MIT licenses: www.modernizr.com/license/
|
7 |
-
*/
|
8 |
-
|
9 |
-
/*
|
10 |
-
* Modernizr tests which native CSS3 and HTML5 features are available in
|
11 |
-
* the current UA and makes the results available to you in two ways:
|
12 |
-
* as properties on a global Modernizr object, and as classes on the
|
13 |
-
* <html> element. This information allows you to progressively enhance
|
14 |
-
* your pages with a granular level of control over the experience.
|
15 |
-
*
|
16 |
-
* Modernizr has an optional (not included) conditional resource loader
|
17 |
-
* called Modernizr.load(), based on Yepnope.js (yepnopejs.com).
|
18 |
-
* To get a build that includes Modernizr.load(), as well as choosing
|
19 |
-
* which tests to include, go to www.modernizr.com/download/
|
20 |
-
*
|
21 |
-
* Authors Faruk Ates, Paul Irish, Alex Sexton
|
22 |
-
* Contributors Ryan Seddon, Ben Alman
|
23 |
-
*/
|
24 |
-
|
25 |
-
window.Modernizr = (function( window, document, undefined ) {
|
26 |
-
|
27 |
-
var version = '2.7.0',
|
28 |
-
|
29 |
-
Modernizr = {},
|
30 |
-
|
31 |
-
/*>>cssclasses*/
|
32 |
-
// option for enabling the HTML classes to be added
|
33 |
-
enableClasses = true,
|
34 |
-
/*>>cssclasses*/
|
35 |
-
|
36 |
-
docElement = document.documentElement,
|
37 |
-
|
38 |
-
/**
|
39 |
-
* Create our "modernizr" element that we do most feature tests on.
|
40 |
-
*/
|
41 |
-
mod = 'modernizr',
|
42 |
-
modElem = document.createElement(mod),
|
43 |
-
mStyle = modElem.style,
|
44 |
-
|
45 |
-
/**
|
46 |
-
* Create the input element for various Web Forms feature tests.
|
47 |
-
*/
|
48 |
-
inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ ,
|
49 |
-
|
50 |
-
/*>>smile*/
|
51 |
-
smile = ':)',
|
52 |
-
/*>>smile*/
|
53 |
-
|
54 |
-
toString = {}.toString,
|
55 |
-
|
56 |
-
// TODO :: make the prefixes more granular
|
57 |
-
/*>>prefixes*/
|
58 |
-
// List of property values to set for css tests. See ticket #21
|
59 |
-
prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),
|
60 |
-
/*>>prefixes*/
|
61 |
-
|
62 |
-
/*>>domprefixes*/
|
63 |
-
// Following spec is to expose vendor-specific style properties as:
|
64 |
-
// elem.style.WebkitBorderRadius
|
65 |
-
// and the following would be incorrect:
|
66 |
-
// elem.style.webkitBorderRadius
|
67 |
-
|
68 |
-
// Webkit ghosts their properties in lowercase but Opera & Moz do not.
|
69 |
-
// Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+
|
70 |
-
// erik.eae.net/archives/2008/03/10/21.48.10/
|
71 |
-
|
72 |
-
// More here: github.com/Modernizr/Modernizr/issues/issue/21
|
73 |
-
omPrefixes = 'Webkit Moz O ms',
|
74 |
-
|
75 |
-
cssomPrefixes = omPrefixes.split(' '),
|
76 |
-
|
77 |
-
domPrefixes = omPrefixes.toLowerCase().split(' '),
|
78 |
-
/*>>domprefixes*/
|
79 |
-
|
80 |
-
/*>>ns*/
|
81 |
-
ns = {'svg': 'http://www.w3.org/2000/svg'},
|
82 |
-
/*>>ns*/
|
83 |
-
|
84 |
-
tests = {},
|
85 |
-
inputs = {},
|
86 |
-
attrs = {},
|
87 |
-
|
88 |
-
classes = [],
|
89 |
-
|
90 |
-
slice = classes.slice,
|
91 |
-
|
92 |
-
featureName, // used in testing loop
|
93 |
-
|
94 |
-
|
95 |
-
/*>>teststyles*/
|
96 |
-
// Inject element with style element and some CSS rules
|
97 |
-
injectElementWithStyles = function( rule, callback, nodes, testnames ) {
|
98 |
-
|
99 |
-
var style, ret, node, docOverflow,
|
100 |
-
div = document.createElement('div'),
|
101 |
-
// After page load injecting a fake body doesn't work so check if body exists
|
102 |
-
body = document.body,
|
103 |
-
// IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it.
|
104 |
-
fakeBody = body || document.createElement('body');
|
105 |
-
|
106 |
-
if ( parseInt(nodes, 10) ) {
|
107 |
-
// In order not to give false positives we create a node for each test
|
108 |
-
// This also allows the method to scale for unspecified uses
|
109 |
-
while ( nodes-- ) {
|
110 |
-
node = document.createElement('div');
|
111 |
-
node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
|
112 |
-
div.appendChild(node);
|
113 |
-
}
|
114 |
-
}
|
115 |
-
|
116 |
-
// <style> elements in IE6-9 are considered 'NoScope' elements and therefore will be removed
|
117 |
-
// when injected with innerHTML. To get around this you need to prepend the 'NoScope' element
|
118 |
-
// with a 'scoped' element, in our case the soft-hyphen entity as it won't mess with our measurements.
|
119 |
-
// msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx
|
120 |
-
// Documents served as xml will throw if using ­ so use xml friendly encoded version. See issue #277
|
121 |
-
style = ['­','<style id="s', mod, '">', rule, '</style>'].join('');
|
122 |
-
div.id = mod;
|
123 |
-
// IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.
|
124 |
-
// Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270
|
125 |
-
(body ? div : fakeBody).innerHTML += style;
|
126 |
-
fakeBody.appendChild(div);
|
127 |
-
if ( !body ) {
|
128 |
-
//avoid crashing IE8, if background image is used
|
129 |
-
fakeBody.style.background = '';
|
130 |
-
//Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible
|
131 |
-
fakeBody.style.overflow = 'hidden';
|
132 |
-
docOverflow = docElement.style.overflow;
|
133 |
-
docElement.style.overflow = 'hidden';
|
134 |
-
docElement.appendChild(fakeBody);
|
135 |
-
}
|
136 |
-
|
137 |
-
ret = callback(div, rule);
|
138 |
-
// If this is done after page load we don't want to remove the body so check if body exists
|
139 |
-
if ( !body ) {
|
140 |
-
fakeBody.parentNode.removeChild(fakeBody);
|
141 |
-
docElement.style.overflow = docOverflow;
|
142 |
-
} else {
|
143 |
-
div.parentNode.removeChild(div);
|
144 |
-
}
|
145 |
-
|
146 |
-
return !!ret;
|
147 |
-
|
148 |
-
},
|
149 |
-
/*>>teststyles*/
|
150 |
-
|
151 |
-
/*>>mq*/
|
152 |
-
// adapted from matchMedia polyfill
|
153 |
-
// by Scott Jehl and Paul Irish
|
154 |
-
// gist.github.com/786768
|
155 |
-
testMediaQuery = function( mq ) {
|
156 |
-
|
157 |
-
var matchMedia = window.matchMedia || window.msMatchMedia;
|
158 |
-
if ( matchMedia ) {
|
159 |
-
return matchMedia(mq).matches;
|
160 |
-
}
|
161 |
-
|
162 |
-
var bool;
|
163 |
-
|
164 |
-
injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {
|
165 |
-
bool = (window.getComputedStyle ?
|
166 |
-
getComputedStyle(node, null) :
|
167 |
-
node.currentStyle)['position'] == 'absolute';
|
168 |
-
});
|
169 |
-
|
170 |
-
return bool;
|
171 |
-
|
172 |
-
},
|
173 |
-
/*>>mq*/
|
174 |
-
|
175 |
-
|
176 |
-
/*>>hasevent*/
|
177 |
-
//
|
178 |
-
// isEventSupported determines if a given element supports the given event
|
179 |
-
// kangax.github.com/iseventsupported/
|
180 |
-
//
|
181 |
-
// The following results are known incorrects:
|
182 |
-
// Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative
|
183 |
-
// Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333
|
184 |
-
// ...
|
185 |
-
isEventSupported = (function() {
|
186 |
-
|
187 |
-
var TAGNAMES = {
|
188 |
-
'select': 'input', 'change': 'input',
|
189 |
-
'submit': 'form', 'reset': 'form',
|
190 |
-
'error': 'img', 'load': 'img', 'abort': 'img'
|
191 |
-
};
|
192 |
-
|
193 |
-
function isEventSupported( eventName, element ) {
|
194 |
-
|
195 |
-
element = element || document.createElement(TAGNAMES[eventName] || 'div');
|
196 |
-
eventName = 'on' + eventName;
|
197 |
-
|
198 |
-
// When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those
|
199 |
-
var isSupported = eventName in element;
|
200 |
-
|
201 |
-
if ( !isSupported ) {
|
202 |
-
// If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element
|
203 |
-
if ( !element.setAttribute ) {
|
204 |
-
element = document.createElement('div');
|
205 |
-
}
|
206 |
-
if ( element.setAttribute && element.removeAttribute ) {
|
207 |
-
element.setAttribute(eventName, '');
|
208 |
-
isSupported = is(element[eventName], 'function');
|
209 |
-
|
210 |
-
// If property was created, "remove it" (by setting value to `undefined`)
|
211 |
-
if ( !is(element[eventName], 'undefined') ) {
|
212 |
-
element[eventName] = undefined;
|
213 |
-
}
|
214 |
-
element.removeAttribute(eventName);
|
215 |
-
}
|
216 |
-
}
|
217 |
-
|
218 |
-
element = null;
|
219 |
-
return isSupported;
|
220 |
-
}
|
221 |
-
return isEventSupported;
|
222 |
-
})(),
|
223 |
-
/*>>hasevent*/
|
224 |
-
|
225 |
-
// TODO :: Add flag for hasownprop ? didn't last time
|
226 |
-
|
227 |
-
// hasOwnProperty shim by kangax needed for Safari 2.0 support
|
228 |
-
_hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;
|
229 |
-
|
230 |
-
if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {
|
231 |
-
hasOwnProp = function (object, property) {
|
232 |
-
return _hasOwnProperty.call(object, property);
|
233 |
-
};
|
234 |
-
}
|
235 |
-
else {
|
236 |
-
hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */
|
237 |
-
return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
|
238 |
-
};
|
239 |
-
}
|
240 |
-
|
241 |
-
// Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js
|
242 |
-
// es5.github.com/#x15.3.4.5
|
243 |
-
|
244 |
-
if (!Function.prototype.bind) {
|
245 |
-
Function.prototype.bind = function bind(that) {
|
246 |
-
|
247 |
-
var target = this;
|
248 |
-
|
249 |
-
if (typeof target != "function") {
|
250 |
-
throw new TypeError();
|
251 |
-
}
|
252 |
-
|
253 |
-
var args = slice.call(arguments, 1),
|
254 |
-
bound = function () {
|
255 |
-
|
256 |
-
if (this instanceof bound) {
|
257 |
-
|
258 |
-
var F = function(){};
|
259 |
-
F.prototype = target.prototype;
|
260 |
-
var self = new F();
|
261 |
-
|
262 |
-
var result = target.apply(
|
263 |
-
self,
|
264 |
-
args.concat(slice.call(arguments))
|
265 |
-
);
|
266 |
-
if (Object(result) === result) {
|
267 |
-
return result;
|
268 |
-
}
|
269 |
-
return self;
|
270 |
-
|
271 |
-
} else {
|
272 |
-
|
273 |
-
return target.apply(
|
274 |
-
that,
|
275 |
-
args.concat(slice.call(arguments))
|
276 |
-
);
|
277 |
-
|
278 |
-
}
|
279 |
-
|
280 |
-
};
|
281 |
-
|
282 |
-
return bound;
|
283 |
-
};
|
284 |
-
}
|
285 |
-
|
286 |
-
/**
|
287 |
-
* setCss applies given styles to the Modernizr DOM node.
|
288 |
-
*/
|
289 |
-
function setCss( str ) {
|
290 |
-
mStyle.cssText = str;
|
291 |
-
}
|
292 |
-
|
293 |
-
/**
|
294 |
-
* setCssAll extrapolates all vendor-specific css strings.
|
295 |
-
*/
|
296 |
-
function setCssAll( str1, str2 ) {
|
297 |
-
return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));
|
298 |
-
}
|
299 |
-
|
300 |
-
/**
|
301 |
-
* is returns a boolean for if typeof obj is exactly type.
|
302 |
-
*/
|
303 |
-
function is( obj, type ) {
|
304 |
-
return typeof obj === type;
|
305 |
-
}
|
306 |
-
|
307 |
-
/**
|
308 |
-
* contains returns a boolean for if substr is found within str.
|
309 |
-
*/
|
310 |
-
function contains( str, substr ) {
|
311 |
-
return !!~('' + str).indexOf(substr);
|
312 |
-
}
|
313 |
-
|
314 |
-
/*>>testprop*/
|
315 |
-
|
316 |
-
// testProps is a generic CSS / DOM property test.
|
317 |
-
|
318 |
-
// In testing support for a given CSS property, it's legit to test:
|
319 |
-
// `elem.style[styleName] !== undefined`
|
320 |
-
// If the property is supported it will return an empty string,
|
321 |
-
// if unsupported it will return undefined.
|
322 |
-
|
323 |
-
// We'll take advantage of this quick test and skip setting a style
|
324 |
-
// on our modernizr element, but instead just testing undefined vs
|
325 |
-
// empty string.
|
326 |
-
|
327 |
-
// Because the testing of the CSS property names (with "-", as
|
328 |
-
// opposed to the camelCase DOM properties) is non-portable and
|
329 |
-
// non-standard but works in WebKit and IE (but not Gecko or Opera),
|
330 |
-
// we explicitly reject properties with dashes so that authors
|
331 |
-
// developing in WebKit or IE first don't end up with
|
332 |
-
// browser-specific content by accident.
|
333 |
-
|
334 |
-
function testProps( props, prefixed ) {
|
335 |
-
for ( var i in props ) {
|
336 |
-
var prop = props[i];
|
337 |
-
if ( !contains(prop, "-") && mStyle[prop] !== undefined ) {
|
338 |
-
return prefixed == 'pfx' ? prop : true;
|
339 |
-
}
|
340 |
-
}
|
341 |
-
return false;
|
342 |
-
}
|
343 |
-
/*>>testprop*/
|
344 |
-
|
345 |
-
// TODO :: add testDOMProps
|
346 |
-
/**
|
347 |
-
* testDOMProps is a generic DOM property test; if a browser supports
|
348 |
-
* a certain property, it won't return undefined for it.
|
349 |
-
*/
|
350 |
-
function testDOMProps( props, obj, elem ) {
|
351 |
-
for ( var i in props ) {
|
352 |
-
var item = obj[props[i]];
|
353 |
-
if ( item !== undefined) {
|
354 |
-
|
355 |
-
// return the property name as a string
|
356 |
-
if (elem === false) return props[i];
|
357 |
-
|
358 |
-
// let's bind a function
|
359 |
-
if (is(item, 'function')){
|
360 |
-
// default to autobind unless override
|
361 |
-
return item.bind(elem || obj);
|
362 |
-
}
|
363 |
-
|
364 |
-
// return the unbound function or obj or value
|
365 |
-
return item;
|
366 |
-
}
|
367 |
-
}
|
368 |
-
return false;
|
369 |
-
}
|
370 |
-
|
371 |
-
/*>>testallprops*/
|
372 |
-
/**
|
373 |
-
* testPropsAll tests a list of DOM properties we want to check against.
|
374 |
-
* We specify literally ALL possible (known and/or likely) properties on
|
375 |
-
* the element including the non-vendor prefixed one, for forward-
|
376 |
-
* compatibility.
|
377 |
-
*/
|
378 |
-
function testPropsAll( prop, prefixed, elem ) {
|
379 |
-
|
380 |
-
var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
|
381 |
-
props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
|
382 |
-
|
383 |
-
// did they call .prefixed('boxSizing') or are we just testing a prop?
|
384 |
-
if(is(prefixed, "string") || is(prefixed, "undefined")) {
|
385 |
-
return testProps(props, prefixed);
|
386 |
-
|
387 |
-
// otherwise, they called .prefixed('requestAnimationFrame', window[, elem])
|
388 |
-
} else {
|
389 |
-
props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
|
390 |
-
return testDOMProps(props, prefixed, elem);
|
391 |
-
}
|
392 |
-
}
|
393 |
-
/*>>testallprops*/
|
394 |
-
|
395 |
-
|
396 |
-
/**
|
397 |
-
* Tests
|
398 |
-
* -----
|
399 |
-
*/
|
400 |
-
|
401 |
-
// The *new* flexbox
|
402 |
-
// dev.w3.org/csswg/css3-flexbox
|
403 |
-
|
404 |
-
tests['flexbox'] = function() {
|
405 |
-
return testPropsAll('flexWrap');
|
406 |
-
};
|
407 |
-
|
408 |
-
// The *old* flexbox
|
409 |
-
// www.w3.org/TR/2009/WD-css3-flexbox-20090723/
|
410 |
-
|
411 |
-
tests['flexboxlegacy'] = function() {
|
412 |
-
return testPropsAll('boxDirection');
|
413 |
-
};
|
414 |
-
|
415 |
-
// On the S60 and BB Storm, getContext exists, but always returns undefined
|
416 |
-
// so we actually have to call getContext() to verify
|
417 |
-
// github.com/Modernizr/Modernizr/issues/issue/97/
|
418 |
-
|
419 |
-
tests['canvas'] = function() {
|
420 |
-
var elem = document.createElement('canvas');
|
421 |
-
return !!(elem.getContext && elem.getContext('2d'));
|
422 |
-
};
|
423 |
-
|
424 |
-
tests['canvastext'] = function() {
|
425 |
-
return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));
|
426 |
-
};
|
427 |
-
|
428 |
-
// webk.it/70117 is tracking a legit WebGL feature detect proposal
|
429 |
-
|
430 |
-
// We do a soft detect which may false positive in order to avoid
|
431 |
-
// an expensive context creation: bugzil.la/732441
|
432 |
-
|
433 |
-
tests['webgl'] = function() {
|
434 |
-
return !!window.WebGLRenderingContext;
|
435 |
-
};
|
436 |
-
|
437 |
-
/*
|
438 |
-
* The Modernizr.touch test only indicates if the browser supports
|
439 |
-
* touch events, which does not necessarily reflect a touchscreen
|
440 |
-
* device, as evidenced by tablets running Windows 7 or, alas,
|
441 |
-
* the Palm Pre / WebOS (touch) phones.
|
442 |
-
*
|
443 |
-
* Additionally, Chrome (desktop) used to lie about its support on this,
|
444 |
-
* but that has since been rectified: crbug.com/36415
|
445 |
-
*
|
446 |
-
* We also test for Firefox 4 Multitouch Support.
|
447 |
-
*
|
448 |
-
* For more info, see: modernizr.github.com/Modernizr/touch.html
|
449 |
-
*/
|
450 |
-
|
451 |
-
tests['touch'] = function() {
|
452 |
-
var bool;
|
453 |
-
|
454 |
-
if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
|
455 |
-
bool = true;
|
456 |
-
} else {
|
457 |
-
injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) {
|
458 |
-
bool = node.offsetTop === 9;
|
459 |
-
});
|
460 |
-
}
|
461 |
-
|
462 |
-
return bool;
|
463 |
-
};
|
464 |
-
|
465 |
-
|
466 |
-
// geolocation is often considered a trivial feature detect...
|
467 |
-
// Turns out, it's quite tricky to get right:
|
468 |
-
//
|
469 |
-
// Using !!navigator.geolocation does two things we don't want. It:
|
470 |
-
// 1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513
|
471 |
-
// 2. Disables page caching in WebKit: webk.it/43956
|
472 |
-
//
|
473 |
-
// Meanwhile, in Firefox < 8, an about:config setting could expose
|
474 |
-
// a false positive that would throw an exception: bugzil.la/688158
|
475 |
-
|
476 |
-
tests['geolocation'] = function() {
|
477 |
-
return 'geolocation' in navigator;
|
478 |
-
};
|
479 |
-
|
480 |
-
|
481 |
-
tests['postmessage'] = function() {
|
482 |
-
return !!window.postMessage;
|
483 |
-
};
|
484 |
-
|
485 |
-
|
486 |
-
// Chrome incognito mode used to throw an exception when using openDatabase
|
487 |
-
// It doesn't anymore.
|
488 |
-
tests['websqldatabase'] = function() {
|
489 |
-
return !!window.openDatabase;
|
490 |
-
};
|
491 |
-
|
492 |
-
// Vendors had inconsistent prefixing with the experimental Indexed DB:
|
493 |
-
// - Webkit's implementation is accessible through webkitIndexedDB
|
494 |
-
// - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB
|
495 |
-
// For speed, we don't test the legacy (and beta-only) indexedDB
|
496 |
-
tests['indexedDB'] = function() {
|
497 |
-
return !!testPropsAll("indexedDB", window);
|
498 |
-
};
|
499 |
-
|
500 |
-
// documentMode logic from YUI to filter out IE8 Compat Mode
|
501 |
-
// which false positives.
|
502 |
-
tests['hashchange'] = function() {
|
503 |
-
return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);
|
504 |
-
};
|
505 |
-
|
506 |
-
// Per 1.6:
|
507 |
-
// This used to be Modernizr.historymanagement but the longer
|
508 |
-
// name has been deprecated in favor of a shorter and property-matching one.
|
509 |
-
// The old API is still available in 1.6, but as of 2.0 will throw a warning,
|
510 |
-
// and in the first release thereafter disappear entirely.
|
511 |
-
tests['history'] = function() {
|
512 |
-
return !!(window.history && history.pushState);
|
513 |
-
};
|
514 |
-
|
515 |
-
tests['draganddrop'] = function() {
|
516 |
-
var div = document.createElement('div');
|
517 |
-
return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);
|
518 |
-
};
|
519 |
-
|
520 |
-
// FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10
|
521 |
-
// will be supported until FF19 (2/12/13), at which time, ESR becomes FF17.
|
522 |
-
// FF10 still uses prefixes, so check for it until then.
|
523 |
-
// for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/
|
524 |
-
tests['websockets'] = function() {
|
525 |
-
return 'WebSocket' in window || 'MozWebSocket' in window;
|
526 |
-
};
|
527 |
-
|
528 |
-
|
529 |
-
// css-tricks.com/rgba-browser-support/
|
530 |
-
tests['rgba'] = function() {
|
531 |
-
// Set an rgba() color and check the returned value
|
532 |
-
|
533 |
-
setCss('background-color:rgba(150,255,150,.5)');
|
534 |
-
|
535 |
-
return contains(mStyle.backgroundColor, 'rgba');
|
536 |
-
};
|
537 |
-
|
538 |
-
tests['hsla'] = function() {
|
539 |
-
// Same as rgba(), in fact, browsers re-map hsla() to rgba() internally,
|
540 |
-
// except IE9 who retains it as hsla
|
541 |
-
|
542 |
-
setCss('background-color:hsla(120,40%,100%,.5)');
|
543 |
-
|
544 |
-
return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');
|
545 |
-
};
|
546 |
-
|
547 |
-
tests['multiplebgs'] = function() {
|
548 |
-
// Setting multiple images AND a color on the background shorthand property
|
549 |
-
// and then querying the style.background property value for the number of
|
550 |
-
// occurrences of "url(" is a reliable method for detecting ACTUAL support for this!
|
551 |
-
|
552 |
-
setCss('background:url(https://),url(https://),red url(https://)');
|
553 |
-
|
554 |
-
// If the UA supports multiple backgrounds, there should be three occurrences
|
555 |
-
// of the string "url(" in the return value for elemStyle.background
|
556 |
-
|
557 |
-
return (/(url\s*\(.*?){3}/).test(mStyle.background);
|
558 |
-
};
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
// this will false positive in Opera Mini
|
563 |
-
// github.com/Modernizr/Modernizr/issues/396
|
564 |
-
|
565 |
-
tests['backgroundsize'] = function() {
|
566 |
-
return testPropsAll('backgroundSize');
|
567 |
-
};
|
568 |
-
|
569 |
-
tests['borderimage'] = function() {
|
570 |
-
return testPropsAll('borderImage');
|
571 |
-
};
|
572 |
-
|
573 |
-
|
574 |
-
// Super comprehensive table about all the unique implementations of
|
575 |
-
// border-radius: muddledramblings.com/table-of-css3-border-radius-compliance
|
576 |
-
|
577 |
-
tests['borderradius'] = function() {
|
578 |
-
return testPropsAll('borderRadius');
|
579 |
-
};
|
580 |
-
|
581 |
-
// WebOS unfortunately false positives on this test.
|
582 |
-
tests['boxshadow'] = function() {
|
583 |
-
return testPropsAll('boxShadow');
|
584 |
-
};
|
585 |
-
|
586 |
-
// FF3.0 will false positive on this test
|
587 |
-
tests['textshadow'] = function() {
|
588 |
-
return document.createElement('div').style.textShadow === '';
|
589 |
-
};
|
590 |
-
|
591 |
-
|
592 |
-
tests['opacity'] = function() {
|
593 |
-
// Browsers that actually have CSS Opacity implemented have done so
|
594 |
-
// according to spec, which means their return values are within the
|
595 |
-
// range of [0.0,1.0] - including the leading zero.
|
596 |
-
|
597 |
-
setCssAll('opacity:.55');
|
598 |
-
|
599 |
-
// The non-literal . in this regex is intentional:
|
600 |
-
// German Chrome returns this value as 0,55
|
601 |
-
// github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632
|
602 |
-
return (/^0.55$/).test(mStyle.opacity);
|
603 |
-
};
|
604 |
-
|
605 |
-
|
606 |
-
// Note, Android < 4 will pass this test, but can only animate
|
607 |
-
// a single property at a time
|
608 |
-
// daneden.me/2011/12/putting-up-with-androids-bullshit/
|
609 |
-
tests['cssanimations'] = function() {
|
610 |
-
return testPropsAll('animationName');
|
611 |
-
};
|
612 |
-
|
613 |
-
|
614 |
-
tests['csscolumns'] = function() {
|
615 |
-
return testPropsAll('columnCount');
|
616 |
-
};
|
617 |
-
|
618 |
-
|
619 |
-
tests['cssgradients'] = function() {
|
620 |
-
/**
|
621 |
-
* For CSS Gradients syntax, please see:
|
622 |
-
* webkit.org/blog/175/introducing-css-gradients/
|
623 |
-
* developer.mozilla.org/en/CSS/-moz-linear-gradient
|
624 |
-
* developer.mozilla.org/en/CSS/-moz-radial-gradient
|
625 |
-
* dev.w3.org/csswg/css3-images/#gradients-
|
626 |
-
*/
|
627 |
-
|
628 |
-
var str1 = 'background-image:',
|
629 |
-
str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',
|
630 |
-
str3 = 'linear-gradient(left top,#9f9, white);';
|
631 |
-
|
632 |
-
setCss(
|
633 |
-
// legacy webkit syntax (FIXME: remove when syntax not in use anymore)
|
634 |
-
(str1 + '-webkit- '.split(' ').join(str2 + str1) +
|
635 |
-
// standard syntax // trailing 'background-image:'
|
636 |
-
prefixes.join(str3 + str1)).slice(0, -str1.length)
|
637 |
-
);
|
638 |
-
|
639 |
-
return contains(mStyle.backgroundImage, 'gradient');
|
640 |
-
};
|
641 |
-
|
642 |
-
|
643 |
-
tests['cssreflections'] = function() {
|
644 |
-
return testPropsAll('boxReflect');
|
645 |
-
};
|
646 |
-
|
647 |
-
|
648 |
-
tests['csstransforms'] = function() {
|
649 |
-
return !!testPropsAll('transform');
|
650 |
-
};
|
651 |
-
|
652 |
-
|
653 |
-
tests['csstransforms3d'] = function() {
|
654 |
-
|
655 |
-
var ret = !!testPropsAll('perspective');
|
656 |
-
|
657 |
-
// Webkit's 3D transforms are passed off to the browser's own graphics renderer.
|
658 |
-
// It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in
|
659 |
-
// some conditions. As a result, Webkit typically recognizes the syntax but
|
660 |
-
// will sometimes throw a false positive, thus we must do a more thorough check:
|
661 |
-
if ( ret && 'webkitPerspective' in docElement.style ) {
|
662 |
-
|
663 |
-
// Webkit allows this media query to succeed only if the feature is enabled.
|
664 |
-
// `@media (transform-3d),(-webkit-transform-3d){ ... }`
|
665 |
-
injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) {
|
666 |
-
ret = node.offsetLeft === 9 && node.offsetHeight === 3;
|
667 |
-
});
|
668 |
-
}
|
669 |
-
return ret;
|
670 |
-
};
|
671 |
-
|
672 |
-
|
673 |
-
tests['csstransitions'] = function() {
|
674 |
-
return testPropsAll('transition');
|
675 |
-
};
|
676 |
-
|
677 |
-
|
678 |
-
/*>>fontface*/
|
679 |
-
// @font-face detection routine by Diego Perini
|
680 |
-
// javascript.nwbox.com/CSSSupport/
|
681 |
-
|
682 |
-
// false positives:
|
683 |
-
// WebOS github.com/Modernizr/Modernizr/issues/342
|
684 |
-
// WP7 github.com/Modernizr/Modernizr/issues/538
|
685 |
-
tests['fontface'] = function() {
|
686 |
-
var bool;
|
687 |
-
|
688 |
-
injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) {
|
689 |
-
var style = document.getElementById('smodernizr'),
|
690 |
-
sheet = style.sheet || style.styleSheet,
|
691 |
-
cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : '';
|
692 |
-
|
693 |
-
bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0;
|
694 |
-
});
|
695 |
-
|
696 |
-
return bool;
|
697 |
-
};
|
698 |
-
/*>>fontface*/
|
699 |
-
|
700 |
-
// CSS generated content detection
|
701 |
-
tests['generatedcontent'] = function() {
|
702 |
-
var bool;
|
703 |
-
|
704 |
-
injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) {
|
705 |
-
bool = node.offsetHeight >= 3;
|
706 |
-
});
|
707 |
-
|
708 |
-
return bool;
|
709 |
-
};
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
// These tests evaluate support of the video/audio elements, as well as
|
714 |
-
// testing what types of content they support.
|
715 |
-
//
|
716 |
-
// We're using the Boolean constructor here, so that we can extend the value
|
717 |
-
// e.g. Modernizr.video // true
|
718 |
-
// Modernizr.video.ogg // 'probably'
|
719 |
-
//
|
720 |
-
// Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845
|
721 |
-
// thx to NielsLeenheer and zcorpan
|
722 |
-
|
723 |
-
// Note: in some older browsers, "no" was a return value instead of empty string.
|
724 |
-
// It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2
|
725 |
-
// It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5
|
726 |
-
|
727 |
-
tests['video'] = function() {
|
728 |
-
var elem = document.createElement('video'),
|
729 |
-
bool = false;
|
730 |
-
|
731 |
-
// IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224
|
732 |
-
try {
|
733 |
-
if ( bool = !!elem.canPlayType ) {
|
734 |
-
bool = new Boolean(bool);
|
735 |
-
bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,'');
|
736 |
-
|
737 |
-
// Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546
|
738 |
-
bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,'');
|
739 |
-
|
740 |
-
bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,'');
|
741 |
-
}
|
742 |
-
|
743 |
-
} catch(e) { }
|
744 |
-
|
745 |
-
return bool;
|
746 |
-
};
|
747 |
-
|
748 |
-
tests['audio'] = function() {
|
749 |
-
var elem = document.createElement('audio'),
|
750 |
-
bool = false;
|
751 |
-
|
752 |
-
try {
|
753 |
-
if ( bool = !!elem.canPlayType ) {
|
754 |
-
bool = new Boolean(bool);
|
755 |
-
bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,'');
|
756 |
-
bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,'');
|
757 |
-
|
758 |
-
// Mimetypes accepted:
|
759 |
-
// developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements
|
760 |
-
// bit.ly/iphoneoscodecs
|
761 |
-
bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,'');
|
762 |
-
bool.m4a = ( elem.canPlayType('audio/x-m4a;') ||
|
763 |
-
elem.canPlayType('audio/aac;')) .replace(/^no$/,'');
|
764 |
-
}
|
765 |
-
} catch(e) { }
|
766 |
-
|
767 |
-
return bool;
|
768 |
-
};
|
769 |
-
|
770 |
-
|
771 |
-
// In FF4, if disabled, window.localStorage should === null.
|
772 |
-
|
773 |
-
// Normally, we could not test that directly and need to do a
|
774 |
-
// `('localStorage' in window) && ` test first because otherwise Firefox will
|
775 |
-
// throw bugzil.la/365772 if cookies are disabled
|
776 |
-
|
777 |
-
// Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem
|
778 |
-
// will throw the exception:
|
779 |
-
// QUOTA_EXCEEDED_ERRROR DOM Exception 22.
|
780 |
-
// Peculiarly, getItem and removeItem calls do not throw.
|
781 |
-
|
782 |
-
// Because we are forced to try/catch this, we'll go aggressive.
|
783 |
-
|
784 |
-
// Just FWIW: IE8 Compat mode supports these features completely:
|
785 |
-
// www.quirksmode.org/dom/html5.html
|
786 |
-
// But IE8 doesn't support either with local files
|
787 |
-
|
788 |
-
tests['localstorage'] = function() {
|
789 |
-
try {
|
790 |
-
localStorage.setItem(mod, mod);
|
791 |
-
localStorage.removeItem(mod);
|
792 |
-
return true;
|
793 |
-
} catch(e) {
|
794 |
-
return false;
|
795 |
-
}
|
796 |
-
};
|
797 |
-
|
798 |
-
tests['sessionstorage'] = function() {
|
799 |
-
try {
|
800 |
-
sessionStorage.setItem(mod, mod);
|
801 |
-
sessionStorage.removeItem(mod);
|
802 |
-
return true;
|
803 |
-
} catch(e) {
|
804 |
-
return false;
|
805 |
-
}
|
806 |
-
};
|
807 |
-
|
808 |
-
|
809 |
-
tests['webworkers'] = function() {
|
810 |
-
return !!window.Worker;
|
811 |
-
};
|
812 |
-
|
813 |
-
|
814 |
-
tests['applicationcache'] = function() {
|
815 |
-
return !!window.applicationCache;
|
816 |
-
};
|
817 |
-
|
818 |
-
|
819 |
-
// Thanks to Erik Dahlstrom
|
820 |
-
tests['svg'] = function() {
|
821 |
-
return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;
|
822 |
-
};
|
823 |
-
|
824 |
-
// specifically for SVG inline in HTML, not within XHTML
|
825 |
-
// test page: paulirish.com/demo/inline-svg
|
826 |
-
tests['inlinesvg'] = function() {
|
827 |
-
var div = document.createElement('div');
|
828 |
-
div.innerHTML = '<svg/>';
|
829 |
-
return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;
|
830 |
-
};
|
831 |
-
|
832 |
-
// SVG SMIL animation
|
833 |
-
tests['smil'] = function() {
|
834 |
-
return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));
|
835 |
-
};
|
836 |
-
|
837 |
-
// This test is only for clip paths in SVG proper, not clip paths on HTML content
|
838 |
-
// demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg
|
839 |
-
|
840 |
-
// However read the comments to dig into applying SVG clippaths to HTML content here:
|
841 |
-
// github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491
|
842 |
-
tests['svgclippaths'] = function() {
|
843 |
-
return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));
|
844 |
-
};
|
845 |
-
|
846 |
-
/*>>webforms*/
|
847 |
-
// input features and input types go directly onto the ret object, bypassing the tests loop.
|
848 |
-
// Hold this guy to execute in a moment.
|
849 |
-
function webforms() {
|
850 |
-
/*>>input*/
|
851 |
-
// Run through HTML5's new input attributes to see if the UA understands any.
|
852 |
-
// We're using f which is the <input> element created early on
|
853 |
-
// Mike Taylr has created a comprehensive resource for testing these attributes
|
854 |
-
// when applied to all input types:
|
855 |
-
// miketaylr.com/code/input-type-attr.html
|
856 |
-
// spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
|
857 |
-
|
858 |
-
// Only input placeholder is tested while textarea's placeholder is not.
|
859 |
-
// Currently Safari 4 and Opera 11 have support only for the input placeholder
|
860 |
-
// Both tests are available in feature-detects/forms-placeholder.js
|
861 |
-
Modernizr['input'] = (function( props ) {
|
862 |
-
for ( var i = 0, len = props.length; i < len; i++ ) {
|
863 |
-
attrs[ props[i] ] = !!(props[i] in inputElem);
|
864 |
-
}
|
865 |
-
if (attrs.list){
|
866 |
-
// safari false positive's on datalist: webk.it/74252
|
867 |
-
// see also github.com/Modernizr/Modernizr/issues/146
|
868 |
-
attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);
|
869 |
-
}
|
870 |
-
return attrs;
|
871 |
-
})('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
|
872 |
-
/*>>input*/
|
873 |
-
|
874 |
-
/*>>inputtypes*/
|
875 |
-
// Run through HTML5's new input types to see if the UA understands any.
|
876 |
-
// This is put behind the tests runloop because it doesn't return a
|
877 |
-
// true/false like all the other tests; instead, it returns an object
|
878 |
-
// containing each input type with its corresponding true/false value
|
879 |
-
|
880 |
-
// Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/
|
881 |
-
Modernizr['inputtypes'] = (function(props) {
|
882 |
-
|
883 |
-
for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {
|
884 |
-
|
885 |
-
inputElem.setAttribute('type', inputElemType = props[i]);
|
886 |
-
bool = inputElem.type !== 'text';
|
887 |
-
|
888 |
-
// We first check to see if the type we give it sticks..
|
889 |
-
// If the type does, we feed it a textual value, which shouldn't be valid.
|
890 |
-
// If the value doesn't stick, we know there's input sanitization which infers a custom UI
|
891 |
-
if ( bool ) {
|
892 |
-
|
893 |
-
inputElem.value = smile;
|
894 |
-
inputElem.style.cssText = 'position:absolute;visibility:hidden;';
|
895 |
-
|
896 |
-
if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {
|
897 |
-
|
898 |
-
docElement.appendChild(inputElem);
|
899 |
-
defaultView = document.defaultView;
|
900 |
-
|
901 |
-
// Safari 2-4 allows the smiley as a value, despite making a slider
|
902 |
-
bool = defaultView.getComputedStyle &&
|
903 |
-
defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&
|
904 |
-
// Mobile android web browser has false positive, so must
|
905 |
-
// check the height to see if the widget is actually there.
|
906 |
-
(inputElem.offsetHeight !== 0);
|
907 |
-
|
908 |
-
docElement.removeChild(inputElem);
|
909 |
-
|
910 |
-
} else if ( /^(search|tel)$/.test(inputElemType) ){
|
911 |
-
// Spec doesn't define any special parsing or detectable UI
|
912 |
-
// behaviors so we pass these through as true
|
913 |
-
|
914 |
-
// Interestingly, opera fails the earlier test, so it doesn't
|
915 |
-
// even make it here.
|
916 |
-
|
917 |
-
} else if ( /^(url|email)$/.test(inputElemType) ) {
|
918 |
-
// Real url and email support comes with prebaked validation.
|
919 |
-
bool = inputElem.checkValidity && inputElem.checkValidity() === false;
|
920 |
-
|
921 |
-
} else {
|
922 |
-
// If the upgraded input compontent rejects the :) text, we got a winner
|
923 |
-
bool = inputElem.value != smile;
|
924 |
-
}
|
925 |
-
}
|
926 |
-
|
927 |
-
inputs[ props[i] ] = !!bool;
|
928 |
-
}
|
929 |
-
return inputs;
|
930 |
-
})('search tel url email datetime date month week time datetime-local number range color'.split(' '));
|
931 |
-
/*>>inputtypes*/
|
932 |
-
}
|
933 |
-
/*>>webforms*/
|
934 |
-
|
935 |
-
|
936 |
-
// End of test definitions
|
937 |
-
// -----------------------
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
// Run through all tests and detect their support in the current UA.
|
942 |
-
// todo: hypothetically we could be doing an array of tests and use a basic loop here.
|
943 |
-
for ( var feature in tests ) {
|
944 |
-
if ( hasOwnProp(tests, feature) ) {
|
945 |
-
// run the test, throw the return value into the Modernizr,
|
946 |
-
// then based on that boolean, define an appropriate className
|
947 |
-
// and push it into an array of classes we'll join later.
|
948 |
-
featureName = feature.toLowerCase();
|
949 |
-
Modernizr[featureName] = tests[feature]();
|
950 |
-
|
951 |
-
classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
|
952 |
-
}
|
953 |
-
}
|
954 |
-
|
955 |
-
/*>>webforms*/
|
956 |
-
// input tests need to run.
|
957 |
-
Modernizr.input || webforms();
|
958 |
-
/*>>webforms*/
|
959 |
-
|
960 |
-
|
961 |
-
/**
|
962 |
-
* addTest allows the user to define their own feature tests
|
963 |
-
* the result will be added onto the Modernizr object,
|
964 |
-
* as well as an appropriate className set on the html element
|
965 |
-
*
|
966 |
-
* @param feature - String naming the feature
|
967 |
-
* @param test - Function returning true if feature is supported, false if not
|
968 |
-
*/
|
969 |
-
Modernizr.addTest = function ( feature, test ) {
|
970 |
-
if ( typeof feature == 'object' ) {
|
971 |
-
for ( var key in feature ) {
|
972 |
-
if ( hasOwnProp( feature, key ) ) {
|
973 |
-
Modernizr.addTest( key, feature[ key ] );
|
974 |
-
}
|
975 |
-
}
|
976 |
-
} else {
|
977 |
-
|
978 |
-
feature = feature.toLowerCase();
|
979 |
-
|
980 |
-
if ( Modernizr[feature] !== undefined ) {
|
981 |
-
// we're going to quit if you're trying to overwrite an existing test
|
982 |
-
// if we were to allow it, we'd do this:
|
983 |
-
// var re = new RegExp("\\b(no-)?" + feature + "\\b");
|
984 |
-
// docElement.className = docElement.className.replace( re, '' );
|
985 |
-
// but, no rly, stuff 'em.
|
986 |
-
return Modernizr;
|
987 |
-
}
|
988 |
-
|
989 |
-
test = typeof test == 'function' ? test() : test;
|
990 |
-
|
991 |
-
if (typeof enableClasses !== "undefined" && enableClasses) {
|
992 |
-
docElement.className += ' ' + (test ? '' : 'no-') + feature;
|
993 |
-
}
|
994 |
-
Modernizr[feature] = test;
|
995 |
-
|
996 |
-
}
|
997 |
-
|
998 |
-
return Modernizr; // allow chaining.
|
999 |
-
};
|
1000 |
-
|
1001 |
-
|
1002 |
-
// Reset modElem.cssText to nothing to reduce memory footprint.
|
1003 |
-
setCss('');
|
1004 |
-
modElem = inputElem = null;
|
1005 |
-
|
1006 |
-
/*>>shiv*/
|
1007 |
-
/**
|
1008 |
-
* @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
1009 |
-
*/
|
1010 |
-
;(function(window, document) {
|
1011 |
-
/*jshint evil:true */
|
1012 |
-
/** version */
|
1013 |
-
var version = '3.7.0';
|
1014 |
-
|
1015 |
-
/** Preset options */
|
1016 |
-
var options = window.html5 || {};
|
1017 |
-
|
1018 |
-
/** Used to skip problem elements */
|
1019 |
-
var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
|
1020 |
-
|
1021 |
-
/** Not all elements can be cloned in IE **/
|
1022 |
-
var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
|
1023 |
-
|
1024 |
-
/** Detect whether the browser supports default html5 styles */
|
1025 |
-
var supportsHtml5Styles;
|
1026 |
-
|
1027 |
-
/** Name of the expando, to work with multiple documents or to re-shiv one document */
|
1028 |
-
var expando = '_html5shiv';
|
1029 |
-
|
1030 |
-
/** The id for the the documents expando */
|
1031 |
-
var expanID = 0;
|
1032 |
-
|
1033 |
-
/** Cached data for each document */
|
1034 |
-
var expandoData = {};
|
1035 |
-
|
1036 |
-
/** Detect whether the browser supports unknown elements */
|
1037 |
-
var supportsUnknownElements;
|
1038 |
-
|
1039 |
-
(function() {
|
1040 |
-
try {
|
1041 |
-
var a = document.createElement('a');
|
1042 |
-
a.innerHTML = '<xyz></xyz>';
|
1043 |
-
//if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
|
1044 |
-
supportsHtml5Styles = ('hidden' in a);
|
1045 |
-
|
1046 |
-
supportsUnknownElements = a.childNodes.length == 1 || (function() {
|
1047 |
-
// assign a false positive if unable to shiv
|
1048 |
-
(document.createElement)('a');
|
1049 |
-
var frag = document.createDocumentFragment();
|
1050 |
-
return (
|
1051 |
-
typeof frag.cloneNode == 'undefined' ||
|
1052 |
-
typeof frag.createDocumentFragment == 'undefined' ||
|
1053 |
-
typeof frag.createElement == 'undefined'
|
1054 |
-
);
|
1055 |
-
}());
|
1056 |
-
} catch(e) {
|
1057 |
-
// assign a false positive if detection fails => unable to shiv
|
1058 |
-
supportsHtml5Styles = true;
|
1059 |
-
supportsUnknownElements = true;
|
1060 |
-
}
|
1061 |
-
|
1062 |
-
}());
|
1063 |
-
|
1064 |
-
/*--------------------------------------------------------------------------*/
|
1065 |
-
|
1066 |
-
/**
|
1067 |
-
* Creates a style sheet with the given CSS text and adds it to the document.
|
1068 |
-
* @private
|
1069 |
-
* @param {Document} ownerDocument The document.
|
1070 |
-
* @param {String} cssText The CSS text.
|
1071 |
-
* @returns {StyleSheet} The style element.
|
1072 |
-
*/
|
1073 |
-
function addStyleSheet(ownerDocument, cssText) {
|
1074 |
-
var p = ownerDocument.createElement('p'),
|
1075 |
-
parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
|
1076 |
-
|
1077 |
-
p.innerHTML = 'x<style>' + cssText + '</style>';
|
1078 |
-
return parent.insertBefore(p.lastChild, parent.firstChild);
|
1079 |
-
}
|
1080 |
-
|
1081 |
-
/**
|
1082 |
-
* Returns the value of `html5.elements` as an array.
|
1083 |
-
* @private
|
1084 |
-
* @returns {Array} An array of shived element node names.
|
1085 |
-
*/
|
1086 |
-
function getElements() {
|
1087 |
-
var elements = html5.elements;
|
1088 |
-
return typeof elements == 'string' ? elements.split(' ') : elements;
|
1089 |
-
}
|
1090 |
-
|
1091 |
-
/**
|
1092 |
-
* Returns the data associated to the given document
|
1093 |
-
* @private
|
1094 |
-
* @param {Document} ownerDocument The document.
|
1095 |
-
* @returns {Object} An object of data.
|
1096 |
-
*/
|
1097 |
-
function getExpandoData(ownerDocument) {
|
1098 |
-
var data = expandoData[ownerDocument[expando]];
|
1099 |
-
if (!data) {
|
1100 |
-
data = {};
|
1101 |
-
expanID++;
|
1102 |
-
ownerDocument[expando] = expanID;
|
1103 |
-
expandoData[expanID] = data;
|
1104 |
-
}
|
1105 |
-
return data;
|
1106 |
-
}
|
1107 |
-
|
1108 |
-
/**
|
1109 |
-
* returns a shived element for the given nodeName and document
|
1110 |
-
* @memberOf html5
|
1111 |
-
* @param {String} nodeName name of the element
|
1112 |
-
* @param {Document} ownerDocument The context document.
|
1113 |
-
* @returns {Object} The shived element.
|
1114 |
-
*/
|
1115 |
-
function createElement(nodeName, ownerDocument, data){
|
1116 |
-
if (!ownerDocument) {
|
1117 |
-
ownerDocument = document;
|
1118 |
-
}
|
1119 |
-
if(supportsUnknownElements){
|
1120 |
-
return ownerDocument.createElement(nodeName);
|
1121 |
-
}
|
1122 |
-
if (!data) {
|
1123 |
-
data = getExpandoData(ownerDocument);
|
1124 |
-
}
|
1125 |
-
var node;
|
1126 |
-
|
1127 |
-
if (data.cache[nodeName]) {
|
1128 |
-
node = data.cache[nodeName].cloneNode();
|
1129 |
-
} else if (saveClones.test(nodeName)) {
|
1130 |
-
node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
|
1131 |
-
} else {
|
1132 |
-
node = data.createElem(nodeName);
|
1133 |
-
}
|
1134 |
-
|
1135 |
-
// Avoid adding some elements to fragments in IE < 9 because
|
1136 |
-
// * Attributes like `name` or `type` cannot be set/changed once an element
|
1137 |
-
// is inserted into a document/fragment
|
1138 |
-
// * Link elements with `src` attributes that are inaccessible, as with
|
1139 |
-
// a 403 response, will cause the tab/window to crash
|
1140 |
-
// * Script elements appended to fragments will execute when their `src`
|
1141 |
-
// or `text` property is set
|
1142 |
-
return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
|
1143 |
-
}
|
1144 |
-
|
1145 |
-
/**
|
1146 |
-
* returns a shived DocumentFragment for the given document
|
1147 |
-
* @memberOf html5
|
1148 |
-
* @param {Document} ownerDocument The context document.
|
1149 |
-
* @returns {Object} The shived DocumentFragment.
|
1150 |
-
*/
|
1151 |
-
function createDocumentFragment(ownerDocument, data){
|
1152 |
-
if (!ownerDocument) {
|
1153 |
-
ownerDocument = document;
|
1154 |
-
}
|
1155 |
-
if(supportsUnknownElements){
|
1156 |
-
return ownerDocument.createDocumentFragment();
|
1157 |
-
}
|
1158 |
-
data = data || getExpandoData(ownerDocument);
|
1159 |
-
var clone = data.frag.cloneNode(),
|
1160 |
-
i = 0,
|
1161 |
-
elems = getElements(),
|
1162 |
-
l = elems.length;
|
1163 |
-
for(;i<l;i++){
|
1164 |
-
clone.createElement(elems[i]);
|
1165 |
-
}
|
1166 |
-
return clone;
|
1167 |
-
}
|
1168 |
-
|
1169 |
-
/**
|
1170 |
-
* Shivs the `createElement` and `createDocumentFragment` methods of the document.
|
1171 |
-
* @private
|
1172 |
-
* @param {Document|DocumentFragment} ownerDocument The document.
|
1173 |
-
* @param {Object} data of the document.
|
1174 |
-
*/
|
1175 |
-
function shivMethods(ownerDocument, data) {
|
1176 |
-
if (!data.cache) {
|
1177 |
-
data.cache = {};
|
1178 |
-
data.createElem = ownerDocument.createElement;
|
1179 |
-
data.createFrag = ownerDocument.createDocumentFragment;
|
1180 |
-
data.frag = data.createFrag();
|
1181 |
-
}
|
1182 |
-
|
1183 |
-
|
1184 |
-
ownerDocument.createElement = function(nodeName) {
|
1185 |
-
//abort shiv
|
1186 |
-
if (!html5.shivMethods) {
|
1187 |
-
return data.createElem(nodeName);
|
1188 |
-
}
|
1189 |
-
return createElement(nodeName, ownerDocument, data);
|
1190 |
-
};
|
1191 |
-
|
1192 |
-
ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
|
1193 |
-
'var n=f.cloneNode(),c=n.createElement;' +
|
1194 |
-
'h.shivMethods&&(' +
|
1195 |
-
// unroll the `createElement` calls
|
1196 |
-
getElements().join().replace(/[\w\-]+/g, function(nodeName) {
|
1197 |
-
data.createElem(nodeName);
|
1198 |
-
data.frag.createElement(nodeName);
|
1199 |
-
return 'c("' + nodeName + '")';
|
1200 |
-
}) +
|
1201 |
-
');return n}'
|
1202 |
-
)(html5, data.frag);
|
1203 |
-
}
|
1204 |
-
|
1205 |
-
/*--------------------------------------------------------------------------*/
|
1206 |
-
|
1207 |
-
/**
|
1208 |
-
* Shivs the given document.
|
1209 |
-
* @memberOf html5
|
1210 |
-
* @param {Document} ownerDocument The document to shiv.
|
1211 |
-
* @returns {Document} The shived document.
|
1212 |
-
*/
|
1213 |
-
function shivDocument(ownerDocument) {
|
1214 |
-
if (!ownerDocument) {
|
1215 |
-
ownerDocument = document;
|
1216 |
-
}
|
1217 |
-
var data = getExpandoData(ownerDocument);
|
1218 |
-
|
1219 |
-
if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
|
1220 |
-
data.hasCSS = !!addStyleSheet(ownerDocument,
|
1221 |
-
// corrects block display not defined in IE6/7/8/9
|
1222 |
-
'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
|
1223 |
-
// adds styling not present in IE6/7/8/9
|
1224 |
-
'mark{background:#FF0;color:#000}' +
|
1225 |
-
// hides non-rendered elements
|
1226 |
-
'template{display:none}'
|
1227 |
-
);
|
1228 |
-
}
|
1229 |
-
if (!supportsUnknownElements) {
|
1230 |
-
shivMethods(ownerDocument, data);
|
1231 |
-
}
|
1232 |
-
return ownerDocument;
|
1233 |
-
}
|
1234 |
-
|
1235 |
-
/*--------------------------------------------------------------------------*/
|
1236 |
-
|
1237 |
-
/**
|
1238 |
-
* The `html5` object is exposed so that more elements can be shived and
|
1239 |
-
* existing shiving can be detected on iframes.
|
1240 |
-
* @type Object
|
1241 |
-
* @example
|
1242 |
-
*
|
1243 |
-
* // options can be changed before the script is included
|
1244 |
-
* html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
|
1245 |
-
*/
|
1246 |
-
var html5 = {
|
1247 |
-
|
1248 |
-
/**
|
1249 |
-
* An array or space separated string of node names of the elements to shiv.
|
1250 |
-
* @memberOf html5
|
1251 |
-
* @type Array|String
|
1252 |
-
*/
|
1253 |
-
'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video',
|
1254 |
-
|
1255 |
-
/**
|
1256 |
-
* current version of html5shiv
|
1257 |
-
*/
|
1258 |
-
'version': version,
|
1259 |
-
|
1260 |
-
/**
|
1261 |
-
* A flag to indicate that the HTML5 style sheet should be inserted.
|
1262 |
-
* @memberOf html5
|
1263 |
-
* @type Boolean
|
1264 |
-
*/
|
1265 |
-
'shivCSS': (options.shivCSS !== false),
|
1266 |
-
|
1267 |
-
/**
|
1268 |
-
* Is equal to true if a browser supports creating unknown/HTML5 elements
|
1269 |
-
* @memberOf html5
|
1270 |
-
* @type boolean
|
1271 |
-
*/
|
1272 |
-
'supportsUnknownElements': supportsUnknownElements,
|
1273 |
-
|
1274 |
-
/**
|
1275 |
-
* A flag to indicate that the document's `createElement` and `createDocumentFragment`
|
1276 |
-
* methods should be overwritten.
|
1277 |
-
* @memberOf html5
|
1278 |
-
* @type Boolean
|
1279 |
-
*/
|
1280 |
-
'shivMethods': (options.shivMethods !== false),
|
1281 |
-
|
1282 |
-
/**
|
1283 |
-
* A string to describe the type of `html5` object ("default" or "default print").
|
1284 |
-
* @memberOf html5
|
1285 |
-
* @type String
|
1286 |
-
*/
|
1287 |
-
'type': 'default',
|
1288 |
-
|
1289 |
-
// shivs the document according to the specified `html5` object options
|
1290 |
-
'shivDocument': shivDocument,
|
1291 |
-
|
1292 |
-
//creates a shived element
|
1293 |
-
createElement: createElement,
|
1294 |
-
|
1295 |
-
//creates a shived documentFragment
|
1296 |
-
createDocumentFragment: createDocumentFragment
|
1297 |
-
};
|
1298 |
-
|
1299 |
-
/*--------------------------------------------------------------------------*/
|
1300 |
-
|
1301 |
-
// expose html5
|
1302 |
-
window.html5 = html5;
|
1303 |
-
|
1304 |
-
// shiv the document
|
1305 |
-
shivDocument(document);
|
1306 |
-
|
1307 |
-
}(this, document));
|
1308 |
-
/*>>shiv*/
|
1309 |
-
|
1310 |
-
// Assign private properties to the return object with prefix
|
1311 |
-
Modernizr._version = version;
|
1312 |
-
|
1313 |
-
// expose these for the plugin API. Look in the source for how to join() them against your input
|
1314 |
-
/*>>prefixes*/
|
1315 |
-
Modernizr._prefixes = prefixes;
|
1316 |
-
/*>>prefixes*/
|
1317 |
-
/*>>domprefixes*/
|
1318 |
-
Modernizr._domPrefixes = domPrefixes;
|
1319 |
-
Modernizr._cssomPrefixes = cssomPrefixes;
|
1320 |
-
/*>>domprefixes*/
|
1321 |
-
|
1322 |
-
/*>>mq*/
|
1323 |
-
// Modernizr.mq tests a given media query, live against the current state of the window
|
1324 |
-
// A few important notes:
|
1325 |
-
// * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false
|
1326 |
-
// * A max-width or orientation query will be evaluated against the current state, which may change later.
|
1327 |
-
// * You must specify values. Eg. If you are testing support for the min-width media query use:
|
1328 |
-
// Modernizr.mq('(min-width:0)')
|
1329 |
-
// usage:
|
1330 |
-
// Modernizr.mq('only screen and (max-width:768)')
|
1331 |
-
Modernizr.mq = testMediaQuery;
|
1332 |
-
/*>>mq*/
|
1333 |
-
|
1334 |
-
/*>>hasevent*/
|
1335 |
-
// Modernizr.hasEvent() detects support for a given event, with an optional element to test on
|
1336 |
-
// Modernizr.hasEvent('gesturestart', elem)
|
1337 |
-
Modernizr.hasEvent = isEventSupported;
|
1338 |
-
/*>>hasevent*/
|
1339 |
-
|
1340 |
-
/*>>testprop*/
|
1341 |
-
// Modernizr.testProp() investigates whether a given style property is recognized
|
1342 |
-
// Note that the property names must be provided in the camelCase variant.
|
1343 |
-
// Modernizr.testProp('pointerEvents')
|
1344 |
-
Modernizr.testProp = function(prop){
|
1345 |
-
return testProps([prop]);
|
1346 |
-
};
|
1347 |
-
/*>>testprop*/
|
1348 |
-
|
1349 |
-
/*>>testallprops*/
|
1350 |
-
// Modernizr.testAllProps() investigates whether a given style property,
|
1351 |
-
// or any of its vendor-prefixed variants, is recognized
|
1352 |
-
// Note that the property names must be provided in the camelCase variant.
|
1353 |
-
// Modernizr.testAllProps('boxSizing')
|
1354 |
-
Modernizr.testAllProps = testPropsAll;
|
1355 |
-
/*>>testallprops*/
|
1356 |
-
|
1357 |
-
|
1358 |
-
/*>>teststyles*/
|
1359 |
-
// Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards
|
1360 |
-
// Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... })
|
1361 |
-
Modernizr.testStyles = injectElementWithStyles;
|
1362 |
-
/*>>teststyles*/
|
1363 |
-
|
1364 |
-
|
1365 |
-
/*>>prefixed*/
|
1366 |
-
// Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input
|
1367 |
-
// Modernizr.prefixed('boxSizing') // 'MozBoxSizing'
|
1368 |
-
|
1369 |
-
// Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style.
|
1370 |
-
// Return values will also be the camelCase variant, if you need to translate that to hypenated style use:
|
1371 |
-
//
|
1372 |
-
// str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-');
|
1373 |
-
|
1374 |
-
// If you're trying to ascertain which transition end event to bind to, you might do something like...
|
1375 |
-
//
|
1376 |
-
// var transEndEventNames = {
|
1377 |
-
// 'WebkitTransition' : 'webkitTransitionEnd',
|
1378 |
-
// 'MozTransition' : 'transitionend',
|
1379 |
-
// 'OTransition' : 'oTransitionEnd',
|
1380 |
-
// 'msTransition' : 'MSTransitionEnd',
|
1381 |
-
// 'transition' : 'transitionend'
|
1382 |
-
// },
|
1383 |
-
// transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];
|
1384 |
-
|
1385 |
-
Modernizr.prefixed = function(prop, obj, elem){
|
1386 |
-
if(!obj) {
|
1387 |
-
return testPropsAll(prop, 'pfx');
|
1388 |
-
} else {
|
1389 |
-
// Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame'
|
1390 |
-
return testPropsAll(prop, obj, elem);
|
1391 |
-
}
|
1392 |
-
};
|
1393 |
-
/*>>prefixed*/
|
1394 |
-
|
1395 |
-
|
1396 |
-
/*>>cssclasses*/
|
1397 |
-
// Remove "no-js" class from <html> element, if it exists:
|
1398 |
-
docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') +
|
1399 |
-
|
1400 |
-
// Add the new classes to the <html> element.
|
1401 |
-
(enableClasses ? ' js ' + classes.join(' ') : '');
|
1402 |
-
/*>>cssclasses*/
|
1403 |
-
|
1404 |
-
return Modernizr;
|
1405 |
-
|
1406 |
-
})(this, this.document);
|
1 |
+
/*!
|
2 |
+
* Modernizr v2.7.0
|
3 |
+
* www.modernizr.com
|
4 |
+
*
|
5 |
+
* Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
|
6 |
+
* Available under the BSD and MIT licenses: www.modernizr.com/license/
|
7 |
+
*/
|
8 |
+
|
9 |
+
/*
|
10 |
+
* Modernizr tests which native CSS3 and HTML5 features are available in
|
11 |
+
* the current UA and makes the results available to you in two ways:
|
12 |
+
* as properties on a global Modernizr object, and as classes on the
|
13 |
+
* <html> element. This information allows you to progressively enhance
|
14 |
+
* your pages with a granular level of control over the experience.
|
15 |
+
*
|
16 |
+
* Modernizr has an optional (not included) conditional resource loader
|
17 |
+
* called Modernizr.load(), based on Yepnope.js (yepnopejs.com).
|
18 |
+
* To get a build that includes Modernizr.load(), as well as choosing
|
19 |
+
* which tests to include, go to www.modernizr.com/download/
|
20 |
+
*
|
21 |
+
* Authors Faruk Ates, Paul Irish, Alex Sexton
|
22 |
+
* Contributors Ryan Seddon, Ben Alman
|
23 |
+
*/
|
24 |
+
|
25 |
+
window.Modernizr = (function( window, document, undefined ) {
|
26 |
+
|
27 |
+
var version = '2.7.0',
|
28 |
+
|
29 |
+
Modernizr = {},
|
30 |
+
|
31 |
+
/*>>cssclasses*/
|
32 |
+
// option for enabling the HTML classes to be added
|
33 |
+
enableClasses = true,
|
34 |
+
/*>>cssclasses*/
|
35 |
+
|
36 |
+
docElement = document.documentElement,
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Create our "modernizr" element that we do most feature tests on.
|
40 |
+
*/
|
41 |
+
mod = 'modernizr',
|
42 |
+
modElem = document.createElement(mod),
|
43 |
+
mStyle = modElem.style,
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Create the input element for various Web Forms feature tests.
|
47 |
+
*/
|
48 |
+
inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ ,
|
49 |
+
|
50 |
+
/*>>smile*/
|
51 |
+
smile = ':)',
|
52 |
+
/*>>smile*/
|
53 |
+
|
54 |
+
toString = {}.toString,
|
55 |
+
|
56 |
+
// TODO :: make the prefixes more granular
|
57 |
+
/*>>prefixes*/
|
58 |
+
// List of property values to set for css tests. See ticket #21
|
59 |
+
prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),
|
60 |
+
/*>>prefixes*/
|
61 |
+
|
62 |
+
/*>>domprefixes*/
|
63 |
+
// Following spec is to expose vendor-specific style properties as:
|
64 |
+
// elem.style.WebkitBorderRadius
|
65 |
+
// and the following would be incorrect:
|
66 |
+
// elem.style.webkitBorderRadius
|
67 |
+
|
68 |
+
// Webkit ghosts their properties in lowercase but Opera & Moz do not.
|
69 |
+
// Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+
|
70 |
+
// erik.eae.net/archives/2008/03/10/21.48.10/
|
71 |
+
|
72 |
+
// More here: github.com/Modernizr/Modernizr/issues/issue/21
|
73 |
+
omPrefixes = 'Webkit Moz O ms',
|
74 |
+
|
75 |
+
cssomPrefixes = omPrefixes.split(' '),
|
76 |
+
|
77 |
+
domPrefixes = omPrefixes.toLowerCase().split(' '),
|
78 |
+
/*>>domprefixes*/
|
79 |
+
|
80 |
+
/*>>ns*/
|
81 |
+
ns = {'svg': 'http://www.w3.org/2000/svg'},
|
82 |
+
/*>>ns*/
|
83 |
+
|
84 |
+
tests = {},
|
85 |
+
inputs = {},
|
86 |
+
attrs = {},
|
87 |
+
|
88 |
+
classes = [],
|
89 |
+
|
90 |
+
slice = classes.slice,
|
91 |
+
|
92 |
+
featureName, // used in testing loop
|
93 |
+
|
94 |
+
|
95 |
+
/*>>teststyles*/
|
96 |
+
// Inject element with style element and some CSS rules
|
97 |
+
injectElementWithStyles = function( rule, callback, nodes, testnames ) {
|
98 |
+
|
99 |
+
var style, ret, node, docOverflow,
|
100 |
+
div = document.createElement('div'),
|
101 |
+
// After page load injecting a fake body doesn't work so check if body exists
|
102 |
+
body = document.body,
|
103 |
+
// IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it.
|
104 |
+
fakeBody = body || document.createElement('body');
|
105 |
+
|
106 |
+
if ( parseInt(nodes, 10) ) {
|
107 |
+
// In order not to give false positives we create a node for each test
|
108 |
+
// This also allows the method to scale for unspecified uses
|
109 |
+
while ( nodes-- ) {
|
110 |
+
node = document.createElement('div');
|
111 |
+
node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
|
112 |
+
div.appendChild(node);
|
113 |
+
}
|
114 |
+
}
|
115 |
+
|
116 |
+
// <style> elements in IE6-9 are considered 'NoScope' elements and therefore will be removed
|
117 |
+
// when injected with innerHTML. To get around this you need to prepend the 'NoScope' element
|
118 |
+
// with a 'scoped' element, in our case the soft-hyphen entity as it won't mess with our measurements.
|
119 |
+
// msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx
|
120 |
+
// Documents served as xml will throw if using ­ so use xml friendly encoded version. See issue #277
|
121 |
+
style = ['­','<style id="s', mod, '">', rule, '</style>'].join('');
|
122 |
+
div.id = mod;
|
123 |
+
// IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.
|
124 |
+
// Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270
|
125 |
+
(body ? div : fakeBody).innerHTML += style;
|
126 |
+
fakeBody.appendChild(div);
|
127 |
+
if ( !body ) {
|
128 |
+
//avoid crashing IE8, if background image is used
|
129 |
+
fakeBody.style.background = '';
|
130 |
+
//Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible
|
131 |
+
fakeBody.style.overflow = 'hidden';
|
132 |
+
docOverflow = docElement.style.overflow;
|
133 |
+
docElement.style.overflow = 'hidden';
|
134 |
+
docElement.appendChild(fakeBody);
|
135 |
+
}
|
136 |
+
|
137 |
+
ret = callback(div, rule);
|
138 |
+
// If this is done after page load we don't want to remove the body so check if body exists
|
139 |
+
if ( !body ) {
|
140 |
+
fakeBody.parentNode.removeChild(fakeBody);
|
141 |
+
docElement.style.overflow = docOverflow;
|
142 |
+
} else {
|
143 |
+
div.parentNode.removeChild(div);
|
144 |
+
}
|
145 |
+
|
146 |
+
return !!ret;
|
147 |
+
|
148 |
+
},
|
149 |
+
/*>>teststyles*/
|
150 |
+
|
151 |
+
/*>>mq*/
|
152 |
+
// adapted from matchMedia polyfill
|
153 |
+
// by Scott Jehl and Paul Irish
|
154 |
+
// gist.github.com/786768
|
155 |
+
testMediaQuery = function( mq ) {
|
156 |
+
|
157 |
+
var matchMedia = window.matchMedia || window.msMatchMedia;
|
158 |
+
if ( matchMedia ) {
|
159 |
+
return matchMedia(mq).matches;
|
160 |
+
}
|
161 |
+
|
162 |
+
var bool;
|
163 |
+
|
164 |
+
injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {
|
165 |
+
bool = (window.getComputedStyle ?
|
166 |
+
getComputedStyle(node, null) :
|
167 |
+
node.currentStyle)['position'] == 'absolute';
|
168 |
+
});
|
169 |
+
|
170 |
+
return bool;
|
171 |
+
|
172 |
+
},
|
173 |
+
/*>>mq*/
|
174 |
+
|
175 |
+
|
176 |
+
/*>>hasevent*/
|
177 |
+
//
|
178 |
+
// isEventSupported determines if a given element supports the given event
|
179 |
+
// kangax.github.com/iseventsupported/
|
180 |
+
//
|
181 |
+
// The following results are known incorrects:
|
182 |
+
// Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative
|
183 |
+
// Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333
|
184 |
+
// ...
|
185 |
+
isEventSupported = (function() {
|
186 |
+
|
187 |
+
var TAGNAMES = {
|
188 |
+
'select': 'input', 'change': 'input',
|
189 |
+
'submit': 'form', 'reset': 'form',
|
190 |
+
'error': 'img', 'load': 'img', 'abort': 'img'
|
191 |
+
};
|
192 |
+
|
193 |
+
function isEventSupported( eventName, element ) {
|
194 |
+
|
195 |
+
element = element || document.createElement(TAGNAMES[eventName] || 'div');
|
196 |
+
eventName = 'on' + eventName;
|
197 |
+
|
198 |
+
// When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those
|
199 |
+
var isSupported = eventName in element;
|
200 |
+
|
201 |
+
if ( !isSupported ) {
|
202 |
+
// If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element
|
203 |
+
if ( !element.setAttribute ) {
|
204 |
+
element = document.createElement('div');
|
205 |
+
}
|
206 |
+
if ( element.setAttribute && element.removeAttribute ) {
|
207 |
+
element.setAttribute(eventName, '');
|
208 |
+
isSupported = is(element[eventName], 'function');
|
209 |
+
|
210 |
+
// If property was created, "remove it" (by setting value to `undefined`)
|
211 |
+
if ( !is(element[eventName], 'undefined') ) {
|
212 |
+
element[eventName] = undefined;
|
213 |
+
}
|
214 |
+
element.removeAttribute(eventName);
|
215 |
+
}
|
216 |
+
}
|
217 |
+
|
218 |
+
element = null;
|
219 |
+
return isSupported;
|
220 |
+
}
|
221 |
+
return isEventSupported;
|
222 |
+
})(),
|
223 |
+
/*>>hasevent*/
|
224 |
+
|
225 |
+
// TODO :: Add flag for hasownprop ? didn't last time
|
226 |
+
|
227 |
+
// hasOwnProperty shim by kangax needed for Safari 2.0 support
|
228 |
+
_hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;
|
229 |
+
|
230 |
+
if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {
|
231 |
+
hasOwnProp = function (object, property) {
|
232 |
+
return _hasOwnProperty.call(object, property);
|
233 |
+
};
|
234 |
+
}
|
235 |
+
else {
|
236 |
+
hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */
|
237 |
+
return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
|
238 |
+
};
|
239 |
+
}
|
240 |
+
|
241 |
+
// Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js
|
242 |
+
// es5.github.com/#x15.3.4.5
|
243 |
+
|
244 |
+
if (!Function.prototype.bind) {
|
245 |
+
Function.prototype.bind = function bind(that) {
|
246 |
+
|
247 |
+
var target = this;
|
248 |
+
|
249 |
+
if (typeof target != "function") {
|
250 |
+
throw new TypeError();
|
251 |
+
}
|
252 |
+
|
253 |
+
var args = slice.call(arguments, 1),
|
254 |
+
bound = function () {
|
255 |
+
|
256 |
+
if (this instanceof bound) {
|
257 |
+
|
258 |
+
var F = function(){};
|
259 |
+
F.prototype = target.prototype;
|
260 |
+
var self = new F();
|
261 |
+
|
262 |
+
var result = target.apply(
|
263 |
+
self,
|
264 |
+
args.concat(slice.call(arguments))
|
265 |
+
);
|
266 |
+
if (Object(result) === result) {
|
267 |
+
return result;
|
268 |
+
}
|
269 |
+
return self;
|
270 |
+
|
271 |
+
} else {
|
272 |
+
|
273 |
+
return target.apply(
|
274 |
+
that,
|
275 |
+
args.concat(slice.call(arguments))
|
276 |
+
);
|
277 |
+
|
278 |
+
}
|
279 |
+
|
280 |
+
};
|
281 |
+
|
282 |
+
return bound;
|
283 |
+
};
|
284 |
+
}
|
285 |
+
|
286 |
+
/**
|
287 |
+
* setCss applies given styles to the Modernizr DOM node.
|
288 |
+
*/
|
289 |
+
function setCss( str ) {
|
290 |
+
mStyle.cssText = str;
|
291 |
+
}
|
292 |
+
|
293 |
+
/**
|
294 |
+
* setCssAll extrapolates all vendor-specific css strings.
|
295 |
+
*/
|
296 |
+
function setCssAll( str1, str2 ) {
|
297 |
+
return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));
|
298 |
+
}
|
299 |
+
|
300 |
+
/**
|
301 |
+
* is returns a boolean for if typeof obj is exactly type.
|
302 |
+
*/
|
303 |
+
function is( obj, type ) {
|
304 |
+
return typeof obj === type;
|
305 |
+
}
|
306 |
+
|
307 |
+
/**
|
308 |
+
* contains returns a boolean for if substr is found within str.
|
309 |
+
*/
|
310 |
+
function contains( str, substr ) {
|
311 |
+
return !!~('' + str).indexOf(substr);
|
312 |
+
}
|
313 |
+
|
314 |
+
/*>>testprop*/
|
315 |
+
|
316 |
+
// testProps is a generic CSS / DOM property test.
|
317 |
+
|
318 |
+
// In testing support for a given CSS property, it's legit to test:
|
319 |
+
// `elem.style[styleName] !== undefined`
|
320 |
+
// If the property is supported it will return an empty string,
|
321 |
+
// if unsupported it will return undefined.
|
322 |
+
|
323 |
+
// We'll take advantage of this quick test and skip setting a style
|
324 |
+
// on our modernizr element, but instead just testing undefined vs
|
325 |
+
// empty string.
|
326 |
+
|
327 |
+
// Because the testing of the CSS property names (with "-", as
|
328 |
+
// opposed to the camelCase DOM properties) is non-portable and
|
329 |
+
// non-standard but works in WebKit and IE (but not Gecko or Opera),
|
330 |
+
// we explicitly reject properties with dashes so that authors
|
331 |
+
// developing in WebKit or IE first don't end up with
|
332 |
+
// browser-specific content by accident.
|
333 |
+
|
334 |
+
function testProps( props, prefixed ) {
|
335 |
+
for ( var i in props ) {
|
336 |
+
var prop = props[i];
|
337 |
+
if ( !contains(prop, "-") && mStyle[prop] !== undefined ) {
|
338 |
+
return prefixed == 'pfx' ? prop : true;
|
339 |
+
}
|
340 |
+
}
|
341 |
+
return false;
|
342 |
+
}
|
343 |
+
/*>>testprop*/
|
344 |
+
|
345 |
+
// TODO :: add testDOMProps
|
346 |
+
/**
|
347 |
+
* testDOMProps is a generic DOM property test; if a browser supports
|
348 |
+
* a certain property, it won't return undefined for it.
|
349 |
+
*/
|
350 |
+
function testDOMProps( props, obj, elem ) {
|
351 |
+
for ( var i in props ) {
|
352 |
+
var item = obj[props[i]];
|
353 |
+
if ( item !== undefined) {
|
354 |
+
|
355 |
+
// return the property name as a string
|
356 |
+
if (elem === false) return props[i];
|
357 |
+
|
358 |
+
// let's bind a function
|
359 |
+
if (is(item, 'function')){
|
360 |
+
// default to autobind unless override
|
361 |
+
return item.bind(elem || obj);
|
362 |
+
}
|
363 |
+
|
364 |
+
// return the unbound function or obj or value
|
365 |
+
return item;
|
366 |
+
}
|
367 |
+
}
|
368 |
+
return false;
|
369 |
+
}
|
370 |
+
|
371 |
+
/*>>testallprops*/
|
372 |
+
/**
|
373 |
+
* testPropsAll tests a list of DOM properties we want to check against.
|
374 |
+
* We specify literally ALL possible (known and/or likely) properties on
|
375 |
+
* the element including the non-vendor prefixed one, for forward-
|
376 |
+
* compatibility.
|
377 |
+
*/
|
378 |
+
function testPropsAll( prop, prefixed, elem ) {
|
379 |
+
|
380 |
+
var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),
|
381 |
+
props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
|
382 |
+
|
383 |
+
// did they call .prefixed('boxSizing') or are we just testing a prop?
|
384 |
+
if(is(prefixed, "string") || is(prefixed, "undefined")) {
|
385 |
+
return testProps(props, prefixed);
|
386 |
+
|
387 |
+
// otherwise, they called .prefixed('requestAnimationFrame', window[, elem])
|
388 |
+
} else {
|
389 |
+
props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
|
390 |
+
return testDOMProps(props, prefixed, elem);
|
391 |
+
}
|
392 |
+
}
|
393 |
+
/*>>testallprops*/
|
394 |
+
|
395 |
+
|
396 |
+
/**
|
397 |
+
* Tests
|
398 |
+
* -----
|
399 |
+
*/
|
400 |
+
|
401 |
+
// The *new* flexbox
|
402 |
+
// dev.w3.org/csswg/css3-flexbox
|
403 |
+
|
404 |
+
tests['flexbox'] = function() {
|
405 |
+
return testPropsAll('flexWrap');
|
406 |
+
};
|
407 |
+
|
408 |
+
// The *old* flexbox
|
409 |
+
// www.w3.org/TR/2009/WD-css3-flexbox-20090723/
|
410 |
+
|
411 |
+
tests['flexboxlegacy'] = function() {
|
412 |
+
return testPropsAll('boxDirection');
|
413 |
+
};
|
414 |
+
|
415 |
+
// On the S60 and BB Storm, getContext exists, but always returns undefined
|
416 |
+
// so we actually have to call getContext() to verify
|
417 |
+
// github.com/Modernizr/Modernizr/issues/issue/97/
|
418 |
+
|
419 |
+
tests['canvas'] = function() {
|
420 |
+
var elem = document.createElement('canvas');
|
421 |
+
return !!(elem.getContext && elem.getContext('2d'));
|
422 |
+
};
|
423 |
+
|
424 |
+
tests['canvastext'] = function() {
|
425 |
+
return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));
|
426 |
+
};
|
427 |
+
|
428 |
+
// webk.it/70117 is tracking a legit WebGL feature detect proposal
|
429 |
+
|
430 |
+
// We do a soft detect which may false positive in order to avoid
|
431 |
+
// an expensive context creation: bugzil.la/732441
|
432 |
+
|
433 |
+
tests['webgl'] = function() {
|
434 |
+
return !!window.WebGLRenderingContext;
|
435 |
+
};
|
436 |
+
|
437 |
+
/*
|
438 |
+
* The Modernizr.touch test only indicates if the browser supports
|
439 |
+
* touch events, which does not necessarily reflect a touchscreen
|
440 |
+
* device, as evidenced by tablets running Windows 7 or, alas,
|
441 |
+
* the Palm Pre / WebOS (touch) phones.
|
442 |
+
*
|
443 |
+
* Additionally, Chrome (desktop) used to lie about its support on this,
|
444 |
+
* but that has since been rectified: crbug.com/36415
|
445 |
+
*
|
446 |
+
* We also test for Firefox 4 Multitouch Support.
|
447 |
+
*
|
448 |
+
* For more info, see: modernizr.github.com/Modernizr/touch.html
|
449 |
+
*/
|
450 |
+
|
451 |
+
tests['touch'] = function() {
|
452 |
+
var bool;
|
453 |
+
|
454 |
+
if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
|
455 |
+
bool = true;
|
456 |
+
} else {
|
457 |
+
injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) {
|
458 |
+
bool = node.offsetTop === 9;
|
459 |
+
});
|
460 |
+
}
|
461 |
+
|
462 |
+
return bool;
|
463 |
+
};
|
464 |
+
|
465 |
+
|
466 |
+
// geolocation is often considered a trivial feature detect...
|
467 |
+
// Turns out, it's quite tricky to get right:
|
468 |
+
//
|
469 |
+
// Using !!navigator.geolocation does two things we don't want. It:
|
470 |
+
// 1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513
|
471 |
+
// 2. Disables page caching in WebKit: webk.it/43956
|
472 |
+
//
|
473 |
+
// Meanwhile, in Firefox < 8, an about:config setting could expose
|
474 |
+
// a false positive that would throw an exception: bugzil.la/688158
|
475 |
+
|
476 |
+
tests['geolocation'] = function() {
|
477 |
+
return 'geolocation' in navigator;
|
478 |
+
};
|
479 |
+
|
480 |
+
|
481 |
+
tests['postmessage'] = function() {
|
482 |
+
return !!window.postMessage;
|
483 |
+
};
|
484 |
+
|
485 |
+
|
486 |
+
// Chrome incognito mode used to throw an exception when using openDatabase
|
487 |
+
// It doesn't anymore.
|
488 |
+
tests['websqldatabase'] = function() {
|
489 |
+
return !!window.openDatabase;
|
490 |
+
};
|
491 |
+
|
492 |
+
// Vendors had inconsistent prefixing with the experimental Indexed DB:
|
493 |
+
// - Webkit's implementation is accessible through webkitIndexedDB
|
494 |
+
// - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB
|
495 |
+
// For speed, we don't test the legacy (and beta-only) indexedDB
|
496 |
+
tests['indexedDB'] = function() {
|
497 |
+
return !!testPropsAll("indexedDB", window);
|
498 |
+
};
|
499 |
+
|
500 |
+
// documentMode logic from YUI to filter out IE8 Compat Mode
|
501 |
+
// which false positives.
|
502 |
+
tests['hashchange'] = function() {
|
503 |
+
return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);
|
504 |
+
};
|
505 |
+
|
506 |
+
// Per 1.6:
|
507 |
+
// This used to be Modernizr.historymanagement but the longer
|
508 |
+
// name has been deprecated in favor of a shorter and property-matching one.
|
509 |
+
// The old API is still available in 1.6, but as of 2.0 will throw a warning,
|
510 |
+
// and in the first release thereafter disappear entirely.
|
511 |
+
tests['history'] = function() {
|
512 |
+
return !!(window.history && history.pushState);
|
513 |
+
};
|
514 |
+
|
515 |
+
tests['draganddrop'] = function() {
|
516 |
+
var div = document.createElement('div');
|
517 |
+
return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);
|
518 |
+
};
|
519 |
+
|
520 |
+
// FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10
|
521 |
+
// will be supported until FF19 (2/12/13), at which time, ESR becomes FF17.
|
522 |
+
// FF10 still uses prefixes, so check for it until then.
|
523 |
+
// for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/
|
524 |
+
tests['websockets'] = function() {
|
525 |
+
return 'WebSocket' in window || 'MozWebSocket' in window;
|
526 |
+
};
|
527 |
+
|
528 |
+
|
529 |
+
// css-tricks.com/rgba-browser-support/
|
530 |
+
tests['rgba'] = function() {
|
531 |
+
// Set an rgba() color and check the returned value
|
532 |
+
|
533 |
+
setCss('background-color:rgba(150,255,150,.5)');
|
534 |
+
|
535 |
+
return contains(mStyle.backgroundColor, 'rgba');
|
536 |
+
};
|
537 |
+
|
538 |
+
tests['hsla'] = function() {
|
539 |
+
// Same as rgba(), in fact, browsers re-map hsla() to rgba() internally,
|
540 |
+
// except IE9 who retains it as hsla
|
541 |
+
|
542 |
+
setCss('background-color:hsla(120,40%,100%,.5)');
|
543 |
+
|
544 |
+
return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');
|
545 |
+
};
|
546 |
+
|
547 |
+
tests['multiplebgs'] = function() {
|
548 |
+
// Setting multiple images AND a color on the background shorthand property
|
549 |
+
// and then querying the style.background property value for the number of
|
550 |
+
// occurrences of "url(" is a reliable method for detecting ACTUAL support for this!
|
551 |
+
|
552 |
+
setCss('background:url(https://),url(https://),red url(https://)');
|
553 |
+
|
554 |
+
// If the UA supports multiple backgrounds, there should be three occurrences
|
555 |
+
// of the string "url(" in the return value for elemStyle.background
|
556 |
+
|
557 |
+
return (/(url\s*\(.*?){3}/).test(mStyle.background);
|
558 |
+
};
|
559 |
+
|
560 |
+
|
561 |
+
|
562 |
+
// this will false positive in Opera Mini
|
563 |
+
// github.com/Modernizr/Modernizr/issues/396
|
564 |
+
|
565 |
+
tests['backgroundsize'] = function() {
|
566 |
+
return testPropsAll('backgroundSize');
|
567 |
+
};
|
568 |
+
|
569 |
+
tests['borderimage'] = function() {
|
570 |
+
return testPropsAll('borderImage');
|
571 |
+
};
|
572 |
+
|
573 |
+
|
574 |
+
// Super comprehensive table about all the unique implementations of
|
575 |
+
// border-radius: muddledramblings.com/table-of-css3-border-radius-compliance
|
576 |
+
|
577 |
+
tests['borderradius'] = function() {
|
578 |
+
return testPropsAll('borderRadius');
|
579 |
+
};
|
580 |
+
|
581 |
+
// WebOS unfortunately false positives on this test.
|
582 |
+
tests['boxshadow'] = function() {
|
583 |
+
return testPropsAll('boxShadow');
|
584 |
+
};
|
585 |
+
|
586 |
+
// FF3.0 will false positive on this test
|
587 |
+
tests['textshadow'] = function() {
|
588 |
+
return document.createElement('div').style.textShadow === '';
|
589 |
+
};
|
590 |
+
|
591 |
+
|
592 |
+
tests['opacity'] = function() {
|
593 |
+
// Browsers that actually have CSS Opacity implemented have done so
|
594 |
+
// according to spec, which means their return values are within the
|
595 |
+
// range of [0.0,1.0] - including the leading zero.
|
596 |
+
|
597 |
+
setCssAll('opacity:.55');
|
598 |
+
|
599 |
+
// The non-literal . in this regex is intentional:
|
600 |
+
// German Chrome returns this value as 0,55
|
601 |
+
// github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632
|
602 |
+
return (/^0.55$/).test(mStyle.opacity);
|
603 |
+
};
|
604 |
+
|
605 |
+
|
606 |
+
// Note, Android < 4 will pass this test, but can only animate
|
607 |
+
// a single property at a time
|
608 |
+
// daneden.me/2011/12/putting-up-with-androids-bullshit/
|
609 |
+
tests['cssanimations'] = function() {
|
610 |
+
return testPropsAll('animationName');
|
611 |
+
};
|
612 |
+
|
613 |
+
|
614 |
+
tests['csscolumns'] = function() {
|
615 |
+
return testPropsAll('columnCount');
|
616 |
+
};
|
617 |
+
|
618 |
+
|
619 |
+
tests['cssgradients'] = function() {
|
620 |
+
/**
|
621 |
+
* For CSS Gradients syntax, please see:
|
622 |
+
* webkit.org/blog/175/introducing-css-gradients/
|
623 |
+
* developer.mozilla.org/en/CSS/-moz-linear-gradient
|
624 |
+
* developer.mozilla.org/en/CSS/-moz-radial-gradient
|
625 |
+
* dev.w3.org/csswg/css3-images/#gradients-
|
626 |
+
*/
|
627 |
+
|
628 |
+
var str1 = 'background-image:',
|
629 |
+
str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',
|
630 |
+
str3 = 'linear-gradient(left top,#9f9, white);';
|
631 |
+
|
632 |
+
setCss(
|
633 |
+
// legacy webkit syntax (FIXME: remove when syntax not in use anymore)
|
634 |
+
(str1 + '-webkit- '.split(' ').join(str2 + str1) +
|
635 |
+
// standard syntax // trailing 'background-image:'
|
636 |
+
prefixes.join(str3 + str1)).slice(0, -str1.length)
|
637 |
+
);
|
638 |
+
|
639 |
+
return contains(mStyle.backgroundImage, 'gradient');
|
640 |
+
};
|
641 |
+
|
642 |
+
|
643 |
+
tests['cssreflections'] = function() {
|
644 |
+
return testPropsAll('boxReflect');
|
645 |
+
};
|
646 |
+
|
647 |
+
|
648 |
+
tests['csstransforms'] = function() {
|
649 |
+
return !!testPropsAll('transform');
|
650 |
+
};
|
651 |
+
|
652 |
+
|
653 |
+
tests['csstransforms3d'] = function() {
|
654 |
+
|
655 |
+
var ret = !!testPropsAll('perspective');
|
656 |
+
|
657 |
+
// Webkit's 3D transforms are passed off to the browser's own graphics renderer.
|
658 |
+
// It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in
|
659 |
+
// some conditions. As a result, Webkit typically recognizes the syntax but
|
660 |
+
// will sometimes throw a false positive, thus we must do a more thorough check:
|
661 |
+
if ( ret && 'webkitPerspective' in docElement.style ) {
|
662 |
+
|
663 |
+
// Webkit allows this media query to succeed only if the feature is enabled.
|
664 |
+
// `@media (transform-3d),(-webkit-transform-3d){ ... }`
|
665 |
+
injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) {
|
666 |
+
ret = node.offsetLeft === 9 && node.offsetHeight === 3;
|
667 |
+
});
|
668 |
+
}
|
669 |
+
return ret;
|
670 |
+
};
|
671 |
+
|
672 |
+
|
673 |
+
tests['csstransitions'] = function() {
|
674 |
+
return testPropsAll('transition');
|
675 |
+
};
|
676 |
+
|
677 |
+
|
678 |
+
/*>>fontface*/
|
679 |
+
// @font-face detection routine by Diego Perini
|
680 |
+
// javascript.nwbox.com/CSSSupport/
|
681 |
+
|
682 |
+
// false positives:
|
683 |
+
// WebOS github.com/Modernizr/Modernizr/issues/342
|
684 |
+
// WP7 github.com/Modernizr/Modernizr/issues/538
|
685 |
+
tests['fontface'] = function() {
|
686 |
+
var bool;
|
687 |
+
|
688 |
+
injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) {
|
689 |
+
var style = document.getElementById('smodernizr'),
|
690 |
+
sheet = style.sheet || style.styleSheet,
|
691 |
+
cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : '';
|
692 |
+
|
693 |
+
bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0;
|
694 |
+
});
|
695 |
+
|
696 |
+
return bool;
|
697 |
+
};
|
698 |
+
/*>>fontface*/
|
699 |
+
|
700 |
+
// CSS generated content detection
|
701 |
+
tests['generatedcontent'] = function() {
|
702 |
+
var bool;
|
703 |
+
|
704 |
+
injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) {
|
705 |
+
bool = node.offsetHeight >= 3;
|
706 |
+
});
|
707 |
+
|
708 |
+
return bool;
|
709 |
+
};
|
710 |
+
|
711 |
+
|
712 |
+
|
713 |
+
// These tests evaluate support of the video/audio elements, as well as
|
714 |
+
// testing what types of content they support.
|
715 |
+
//
|
716 |
+
// We're using the Boolean constructor here, so that we can extend the value
|
717 |
+
// e.g. Modernizr.video // true
|
718 |
+
// Modernizr.video.ogg // 'probably'
|
719 |
+
//
|
720 |
+
// Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845
|
721 |
+
// thx to NielsLeenheer and zcorpan
|
722 |
+
|
723 |
+
// Note: in some older browsers, "no" was a return value instead of empty string.
|
724 |
+
// It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2
|
725 |
+
// It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5
|
726 |
+
|
727 |
+
tests['video'] = function() {
|
728 |
+
var elem = document.createElement('video'),
|
729 |
+
bool = false;
|
730 |
+
|
731 |
+
// IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224
|
732 |
+
try {
|
733 |
+
if ( bool = !!elem.canPlayType ) {
|
734 |
+
bool = new Boolean(bool);
|
735 |
+
bool.ogg = elem.canPlayType('video/ogg; codecs="theora"') .replace(/^no$/,'');
|
736 |
+
|
737 |
+
// Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546
|
738 |
+
bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,'');
|
739 |
+
|
740 |
+
bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,'');
|
741 |
+
}
|
742 |
+
|
743 |
+
} catch(e) { }
|
744 |
+
|
745 |
+
return bool;
|
746 |
+
};
|
747 |
+
|
748 |
+
tests['audio'] = function() {
|
749 |
+
var elem = document.createElement('audio'),
|
750 |
+
bool = false;
|
751 |
+
|
752 |
+
try {
|
753 |
+
if ( bool = !!elem.canPlayType ) {
|
754 |
+
bool = new Boolean(bool);
|
755 |
+
bool.ogg = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,'');
|
756 |
+
bool.mp3 = elem.canPlayType('audio/mpeg;') .replace(/^no$/,'');
|
757 |
+
|
758 |
+
// Mimetypes accepted:
|
759 |
+
// developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements
|
760 |
+
// bit.ly/iphoneoscodecs
|
761 |
+
bool.wav = elem.canPlayType('audio/wav; codecs="1"') .replace(/^no$/,'');
|
762 |
+
bool.m4a = ( elem.canPlayType('audio/x-m4a;') ||
|
763 |
+
elem.canPlayType('audio/aac;')) .replace(/^no$/,'');
|
764 |
+
}
|
765 |
+
} catch(e) { }
|
766 |
+
|
767 |
+
return bool;
|
768 |
+
};
|
769 |
+
|
770 |
+
|
771 |
+
// In FF4, if disabled, window.localStorage should === null.
|
772 |
+
|
773 |
+
// Normally, we could not test that directly and need to do a
|
774 |
+
// `('localStorage' in window) && ` test first because otherwise Firefox will
|
775 |
+
// throw bugzil.la/365772 if cookies are disabled
|
776 |
+
|
777 |
+
// Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem
|
778 |
+
// will throw the exception:
|
779 |
+
// QUOTA_EXCEEDED_ERRROR DOM Exception 22.
|
780 |
+
// Peculiarly, getItem and removeItem calls do not throw.
|
781 |
+
|
782 |
+
// Because we are forced to try/catch this, we'll go aggressive.
|
783 |
+
|
784 |
+
// Just FWIW: IE8 Compat mode supports these features completely:
|
785 |
+
// www.quirksmode.org/dom/html5.html
|
786 |
+
// But IE8 doesn't support either with local files
|
787 |
+
|
788 |
+
tests['localstorage'] = function() {
|
789 |
+
try {
|
790 |
+
localStorage.setItem(mod, mod);
|
791 |
+
localStorage.removeItem(mod);
|
792 |
+
return true;
|
793 |
+
} catch(e) {
|
794 |
+
return false;
|
795 |
+
}
|
796 |
+
};
|
797 |
+
|
798 |
+
tests['sessionstorage'] = function() {
|
799 |
+
try {
|
800 |
+
sessionStorage.setItem(mod, mod);
|
801 |
+
sessionStorage.removeItem(mod);
|
802 |
+
return true;
|
803 |
+
} catch(e) {
|
804 |
+
return false;
|
805 |
+
}
|
806 |
+
};
|
807 |
+
|
808 |
+
|
809 |
+
tests['webworkers'] = function() {
|
810 |
+
return !!window.Worker;
|
811 |
+
};
|
812 |
+
|
813 |
+
|
814 |
+
tests['applicationcache'] = function() {
|
815 |
+
return !!window.applicationCache;
|
816 |
+
};
|
817 |
+
|
818 |
+
|
819 |
+
// Thanks to Erik Dahlstrom
|
820 |
+
tests['svg'] = function() {
|
821 |
+
return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;
|
822 |
+
};
|
823 |
+
|
824 |
+
// specifically for SVG inline in HTML, not within XHTML
|
825 |
+
// test page: paulirish.com/demo/inline-svg
|
826 |
+
tests['inlinesvg'] = function() {
|
827 |
+
var div = document.createElement('div');
|
828 |
+
div.innerHTML = '<svg/>';
|
829 |
+
return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;
|
830 |
+
};
|
831 |
+
|
832 |
+
// SVG SMIL animation
|
833 |
+
tests['smil'] = function() {
|
834 |
+
return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));
|
835 |
+
};
|
836 |
+
|
837 |
+
// This test is only for clip paths in SVG proper, not clip paths on HTML content
|
838 |
+
// demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg
|
839 |
+
|
840 |
+
// However read the comments to dig into applying SVG clippaths to HTML content here:
|
841 |
+
// github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491
|
842 |
+
tests['svgclippaths'] = function() {
|
843 |
+
return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));
|
844 |
+
};
|
845 |
+
|
846 |
+
/*>>webforms*/
|
847 |
+
// input features and input types go directly onto the ret object, bypassing the tests loop.
|
848 |
+
// Hold this guy to execute in a moment.
|
849 |
+
function webforms() {
|
850 |
+
/*>>input*/
|
851 |
+
// Run through HTML5's new input attributes to see if the UA understands any.
|
852 |
+
// We're using f which is the <input> element created early on
|
853 |
+
// Mike Taylr has created a comprehensive resource for testing these attributes
|
854 |
+
// when applied to all input types:
|
855 |
+
// miketaylr.com/code/input-type-attr.html
|
856 |
+
// spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
|
857 |
+
|
858 |
+
// Only input placeholder is tested while textarea's placeholder is not.
|
859 |
+
// Currently Safari 4 and Opera 11 have support only for the input placeholder
|
860 |
+
// Both tests are available in feature-detects/forms-placeholder.js
|
861 |
+
Modernizr['input'] = (function( props ) {
|
862 |
+
for ( var i = 0, len = props.length; i < len; i++ ) {
|
863 |
+
attrs[ props[i] ] = !!(props[i] in inputElem);
|
864 |
+
}
|
865 |
+
if (attrs.list){
|
866 |
+
// safari false positive's on datalist: webk.it/74252
|
867 |
+
// see also github.com/Modernizr/Modernizr/issues/146
|
868 |
+
attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);
|
869 |
+
}
|
870 |
+
return attrs;
|
871 |
+
})('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
|
872 |
+
/*>>input*/
|
873 |
+
|
874 |
+
/*>>inputtypes*/
|
875 |
+
// Run through HTML5's new input types to see if the UA understands any.
|
876 |
+
// This is put behind the tests runloop because it doesn't return a
|
877 |
+
// true/false like all the other tests; instead, it returns an object
|
878 |
+
// containing each input type with its corresponding true/false value
|
879 |
+
|
880 |
+
// Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/
|
881 |
+
Modernizr['inputtypes'] = (function(props) {
|
882 |
+
|
883 |
+
for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {
|
884 |
+
|
885 |
+
inputElem.setAttribute('type', inputElemType = props[i]);
|
886 |
+
bool = inputElem.type !== 'text';
|
887 |
+
|
888 |
+
// We first check to see if the type we give it sticks..
|
889 |
+
// If the type does, we feed it a textual value, which shouldn't be valid.
|
890 |
+
// If the value doesn't stick, we know there's input sanitization which infers a custom UI
|
891 |
+
if ( bool ) {
|
892 |
+
|
893 |
+
inputElem.value = smile;
|
894 |
+
inputElem.style.cssText = 'position:absolute;visibility:hidden;';
|
895 |
+
|
896 |
+
if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {
|
897 |
+
|
898 |
+
docElement.appendChild(inputElem);
|
899 |
+
defaultView = document.defaultView;
|
900 |
+
|
901 |
+
// Safari 2-4 allows the smiley as a value, despite making a slider
|
902 |
+
bool = defaultView.getComputedStyle &&
|
903 |
+
defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&
|
904 |
+
// Mobile android web browser has false positive, so must
|
905 |
+
// check the height to see if the widget is actually there.
|
906 |
+
(inputElem.offsetHeight !== 0);
|
907 |
+
|
908 |
+
docElement.removeChild(inputElem);
|
909 |
+
|
910 |
+
} else if ( /^(search|tel)$/.test(inputElemType) ){
|
911 |
+
// Spec doesn't define any special parsing or detectable UI
|
912 |
+
// behaviors so we pass these through as true
|
913 |
+
|
914 |
+
// Interestingly, opera fails the earlier test, so it doesn't
|
915 |
+
// even make it here.
|
916 |
+
|
917 |
+
} else if ( /^(url|email)$/.test(inputElemType) ) {
|
918 |
+
// Real url and email support comes with prebaked validation.
|
919 |
+
bool = inputElem.checkValidity && inputElem.checkValidity() === false;
|
920 |
+
|
921 |
+
} else {
|
922 |
+
// If the upgraded input compontent rejects the :) text, we got a winner
|
923 |
+
bool = inputElem.value != smile;
|
924 |
+
}
|
925 |
+
}
|
926 |
+
|
927 |
+
inputs[ props[i] ] = !!bool;
|
928 |
+
}
|
929 |
+
return inputs;
|
930 |
+
})('search tel url email datetime date month week time datetime-local number range color'.split(' '));
|
931 |
+
/*>>inputtypes*/
|
932 |
+
}
|
933 |
+
/*>>webforms*/
|
934 |
+
|
935 |
+
|
936 |
+
// End of test definitions
|
937 |
+
// -----------------------
|
938 |
+
|
939 |
+
|
940 |
+
|
941 |
+
// Run through all tests and detect their support in the current UA.
|
942 |
+
// todo: hypothetically we could be doing an array of tests and use a basic loop here.
|
943 |
+
for ( var feature in tests ) {
|
944 |
+
if ( hasOwnProp(tests, feature) ) {
|
945 |
+
// run the test, throw the return value into the Modernizr,
|
946 |
+
// then based on that boolean, define an appropriate className
|
947 |
+
// and push it into an array of classes we'll join later.
|
948 |
+
featureName = feature.toLowerCase();
|
949 |
+
Modernizr[featureName] = tests[feature]();
|
950 |
+
|
951 |
+
classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
|
952 |
+
}
|
953 |
+
}
|
954 |
+
|
955 |
+
/*>>webforms*/
|
956 |
+
// input tests need to run.
|
957 |
+
Modernizr.input || webforms();
|
958 |
+
/*>>webforms*/
|
959 |
+
|
960 |
+
|
961 |
+
/**
|
962 |
+
* addTest allows the user to define their own feature tests
|
963 |
+
* the result will be added onto the Modernizr object,
|
964 |
+
* as well as an appropriate className set on the html element
|
965 |
+
*
|
966 |
+
* @param feature - String naming the feature
|
967 |
+
* @param test - Function returning true if feature is supported, false if not
|
968 |
+
*/
|
969 |
+
Modernizr.addTest = function ( feature, test ) {
|
970 |
+
if ( typeof feature == 'object' ) {
|
971 |
+
for ( var key in feature ) {
|
972 |
+
if ( hasOwnProp( feature, key ) ) {
|
973 |
+
Modernizr.addTest( key, feature[ key ] );
|
974 |
+
}
|
975 |
+
}
|
976 |
+
} else {
|
977 |
+
|
978 |
+
feature = feature.toLowerCase();
|
979 |
+
|
980 |
+
if ( Modernizr[feature] !== undefined ) {
|
981 |
+
// we're going to quit if you're trying to overwrite an existing test
|
982 |
+
// if we were to allow it, we'd do this:
|
983 |
+
// var re = new RegExp("\\b(no-)?" + feature + "\\b");
|
984 |
+
// docElement.className = docElement.className.replace( re, '' );
|
985 |
+
// but, no rly, stuff 'em.
|
986 |
+
return Modernizr;
|
987 |
+
}
|
988 |
+
|
989 |
+
test = typeof test == 'function' ? test() : test;
|
990 |
+
|
991 |
+
if (typeof enableClasses !== "undefined" && enableClasses) {
|
992 |
+
docElement.className += ' ' + (test ? '' : 'no-') + feature;
|
993 |
+
}
|
994 |
+
Modernizr[feature] = test;
|
995 |
+
|
996 |
+
}
|
997 |
+
|
998 |
+
return Modernizr; // allow chaining.
|
999 |
+
};
|
1000 |
+
|
1001 |
+
|
1002 |
+
// Reset modElem.cssText to nothing to reduce memory footprint.
|
1003 |
+
setCss('');
|
1004 |
+
modElem = inputElem = null;
|
1005 |
+
|
1006 |
+
/*>>shiv*/
|
1007 |
+
/**
|
1008 |
+
* @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
1009 |
+
*/
|
1010 |
+
;(function(window, document) {
|
1011 |
+
/*jshint evil:true */
|
1012 |
+
/** version */
|
1013 |
+
var version = '3.7.0';
|
1014 |
+
|
1015 |
+
/** Preset options */
|
1016 |
+
var options = window.html5 || {};
|
1017 |
+
|
1018 |
+
/** Used to skip problem elements */
|
1019 |
+
var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
|
1020 |
+
|
1021 |
+
/** Not all elements can be cloned in IE **/
|
1022 |
+
var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
|
1023 |
+
|
1024 |
+
/** Detect whether the browser supports default html5 styles */
|
1025 |
+
var supportsHtml5Styles;
|
1026 |
+
|
1027 |
+
/** Name of the expando, to work with multiple documents or to re-shiv one document */
|
1028 |
+
var expando = '_html5shiv';
|
1029 |
+
|
1030 |
+
/** The id for the the documents expando */
|
1031 |
+
var expanID = 0;
|
1032 |
+
|
1033 |
+
/** Cached data for each document */
|
1034 |
+
var expandoData = {};
|
1035 |
+
|
1036 |
+
/** Detect whether the browser supports unknown elements */
|
1037 |
+
var supportsUnknownElements;
|
1038 |
+
|
1039 |
+
(function() {
|
1040 |
+
try {
|
1041 |
+
var a = document.createElement('a');
|
1042 |
+
a.innerHTML = '<xyz></xyz>';
|
1043 |
+
//if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
|
1044 |
+
supportsHtml5Styles = ('hidden' in a);
|
1045 |
+
|
1046 |
+
supportsUnknownElements = a.childNodes.length == 1 || (function() {
|
1047 |
+
// assign a false positive if unable to shiv
|
1048 |
+
(document.createElement)('a');
|
1049 |
+
var frag = document.createDocumentFragment();
|
1050 |
+
return (
|
1051 |
+
typeof frag.cloneNode == 'undefined' ||
|
1052 |
+
typeof frag.createDocumentFragment == 'undefined' ||
|
1053 |
+
typeof frag.createElement == 'undefined'
|
1054 |
+
);
|
1055 |
+
}());
|
1056 |
+
} catch(e) {
|
1057 |
+
// assign a false positive if detection fails => unable to shiv
|
1058 |
+
supportsHtml5Styles = true;
|
1059 |
+
supportsUnknownElements = true;
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
}());
|
1063 |
+
|
1064 |
+
/*--------------------------------------------------------------------------*/
|
1065 |
+
|
1066 |
+
/**
|
1067 |
+
* Creates a style sheet with the given CSS text and adds it to the document.
|
1068 |
+
* @private
|
1069 |
+
* @param {Document} ownerDocument The document.
|
1070 |
+
* @param {String} cssText The CSS text.
|
1071 |
+
* @returns {StyleSheet} The style element.
|
1072 |
+
*/
|
1073 |
+
function addStyleSheet(ownerDocument, cssText) {
|
1074 |
+
var p = ownerDocument.createElement('p'),
|
1075 |
+
parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
|
1076 |
+
|
1077 |
+
p.innerHTML = 'x<style>' + cssText + '</style>';
|
1078 |
+
return parent.insertBefore(p.lastChild, parent.firstChild);
|
1079 |
+
}
|
1080 |
+
|
1081 |
+
/**
|
1082 |
+
* Returns the value of `html5.elements` as an array.
|
1083 |
+
* @private
|
1084 |
+
* @returns {Array} An array of shived element node names.
|
1085 |
+
*/
|
1086 |
+
function getElements() {
|
1087 |
+
var elements = html5.elements;
|
1088 |
+
return typeof elements == 'string' ? elements.split(' ') : elements;
|
1089 |
+
}
|
1090 |
+
|
1091 |
+
/**
|
1092 |
+
* Returns the data associated to the given document
|
1093 |
+
* @private
|
1094 |
+
* @param {Document} ownerDocument The document.
|
1095 |
+
* @returns {Object} An object of data.
|
1096 |
+
*/
|
1097 |
+
function getExpandoData(ownerDocument) {
|
1098 |
+
var data = expandoData[ownerDocument[expando]];
|
1099 |
+
if (!data) {
|
1100 |
+
data = {};
|
1101 |
+
expanID++;
|
1102 |
+
ownerDocument[expando] = expanID;
|
1103 |
+
expandoData[expanID] = data;
|
1104 |
+
}
|
1105 |
+
return data;
|
1106 |
+
}
|
1107 |
+
|
1108 |
+
/**
|
1109 |
+
* returns a shived element for the given nodeName and document
|
1110 |
+
* @memberOf html5
|
1111 |
+
* @param {String} nodeName name of the element
|
1112 |
+
* @param {Document} ownerDocument The context document.
|
1113 |
+
* @returns {Object} The shived element.
|
1114 |
+
*/
|
1115 |
+
function createElement(nodeName, ownerDocument, data){
|
1116 |
+
if (!ownerDocument) {
|
1117 |
+
ownerDocument = document;
|
1118 |
+
}
|
1119 |
+
if(supportsUnknownElements){
|
1120 |
+
return ownerDocument.createElement(nodeName);
|
1121 |
+
}
|
1122 |
+
if (!data) {
|
1123 |
+
data = getExpandoData(ownerDocument);
|
1124 |
+
}
|
1125 |
+
var node;
|
1126 |
+
|
1127 |
+
if (data.cache[nodeName]) {
|
1128 |
+
node = data.cache[nodeName].cloneNode();
|
1129 |
+
} else if (saveClones.test(nodeName)) {
|
1130 |
+
node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
|
1131 |
+
} else {
|
1132 |
+
node = data.createElem(nodeName);
|
1133 |
+
}
|
1134 |
+
|
1135 |
+
// Avoid adding some elements to fragments in IE < 9 because
|
1136 |
+
// * Attributes like `name` or `type` cannot be set/changed once an element
|
1137 |
+
// is inserted into a document/fragment
|
1138 |
+
// * Link elements with `src` attributes that are inaccessible, as with
|
1139 |
+
// a 403 response, will cause the tab/window to crash
|
1140 |
+
// * Script elements appended to fragments will execute when their `src`
|
1141 |
+
// or `text` property is set
|
1142 |
+
return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
|
1143 |
+
}
|
1144 |
+
|
1145 |
+
/**
|
1146 |
+
* returns a shived DocumentFragment for the given document
|
1147 |
+
* @memberOf html5
|
1148 |
+
* @param {Document} ownerDocument The context document.
|
1149 |
+
* @returns {Object} The shived DocumentFragment.
|
1150 |
+
*/
|
1151 |
+
function createDocumentFragment(ownerDocument, data){
|
1152 |
+
if (!ownerDocument) {
|
1153 |
+
ownerDocument = document;
|
1154 |
+
}
|
1155 |
+
if(supportsUnknownElements){
|
1156 |
+
return ownerDocument.createDocumentFragment();
|
1157 |
+
}
|
1158 |
+
data = data || getExpandoData(ownerDocument);
|
1159 |
+
var clone = data.frag.cloneNode(),
|
1160 |
+
i = 0,
|
1161 |
+
elems = getElements(),
|
1162 |
+
l = elems.length;
|
1163 |
+
for(;i<l;i++){
|
1164 |
+
clone.createElement(elems[i]);
|
1165 |
+
}
|
1166 |
+
return clone;
|
1167 |
+
}
|
1168 |
+
|
1169 |
+
/**
|
1170 |
+
* Shivs the `createElement` and `createDocumentFragment` methods of the document.
|
1171 |
+
* @private
|
1172 |
+
* @param {Document|DocumentFragment} ownerDocument The document.
|
1173 |
+
* @param {Object} data of the document.
|
1174 |
+
*/
|
1175 |
+
function shivMethods(ownerDocument, data) {
|
1176 |
+
if (!data.cache) {
|
1177 |
+
data.cache = {};
|
1178 |
+
data.createElem = ownerDocument.createElement;
|
1179 |
+
data.createFrag = ownerDocument.createDocumentFragment;
|
1180 |
+
data.frag = data.createFrag();
|
1181 |
+
}
|
1182 |
+
|
1183 |
+
|
1184 |
+
ownerDocument.createElement = function(nodeName) {
|
1185 |
+
//abort shiv
|
1186 |
+
if (!html5.shivMethods) {
|
1187 |
+
return data.createElem(nodeName);
|
1188 |
+
}
|
1189 |
+
return createElement(nodeName, ownerDocument, data);
|
1190 |
+
};
|
1191 |
+
|
1192 |
+
ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
|
1193 |
+
'var n=f.cloneNode(),c=n.createElement;' +
|
1194 |
+
'h.shivMethods&&(' +
|
1195 |
+
// unroll the `createElement` calls
|
1196 |
+
getElements().join().replace(/[\w\-]+/g, function(nodeName) {
|
1197 |
+
data.createElem(nodeName);
|
1198 |
+
data.frag.createElement(nodeName);
|
1199 |
+
return 'c("' + nodeName + '")';
|
1200 |
+
}) +
|
1201 |
+
');return n}'
|
1202 |
+
)(html5, data.frag);
|
1203 |
+
}
|
1204 |
+
|
1205 |
+
/*--------------------------------------------------------------------------*/
|
1206 |
+
|
1207 |
+
/**
|
1208 |
+
* Shivs the given document.
|
1209 |
+
* @memberOf html5
|
1210 |
+
* @param {Document} ownerDocument The document to shiv.
|
1211 |
+
* @returns {Document} The shived document.
|
1212 |
+
*/
|
1213 |
+
function shivDocument(ownerDocument) {
|
1214 |
+
if (!ownerDocument) {
|
1215 |
+
ownerDocument = document;
|
1216 |
+
}
|
1217 |
+
var data = getExpandoData(ownerDocument);
|
1218 |
+
|
1219 |
+
if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
|
1220 |
+
data.hasCSS = !!addStyleSheet(ownerDocument,
|
1221 |
+
// corrects block display not defined in IE6/7/8/9
|
1222 |
+
'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
|
1223 |
+
// adds styling not present in IE6/7/8/9
|
1224 |
+
'mark{background:#FF0;color:#000}' +
|
1225 |
+
// hides non-rendered elements
|
1226 |
+
'template{display:none}'
|
1227 |
+
);
|
1228 |
+
}
|
1229 |
+
if (!supportsUnknownElements) {
|
1230 |
+
shivMethods(ownerDocument, data);
|
1231 |
+
}
|
1232 |
+
return ownerDocument;
|
1233 |
+
}
|
1234 |
+
|
1235 |
+
/*--------------------------------------------------------------------------*/
|
1236 |
+
|
1237 |
+
/**
|
1238 |
+
* The `html5` object is exposed so that more elements can be shived and
|
1239 |
+
* existing shiving can be detected on iframes.
|
1240 |
+
* @type Object
|
1241 |
+
* @example
|
1242 |
+
*
|
1243 |
+
* // options can be changed before the script is included
|
1244 |
+
* html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
|
1245 |
+
*/
|
1246 |
+
var html5 = {
|
1247 |
+
|
1248 |
+
/**
|
1249 |
+
* An array or space separated string of node names of the elements to shiv.
|
1250 |
+
* @memberOf html5
|
1251 |
+
* @type Array|String
|
1252 |
+
*/
|
1253 |
+
'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video',
|
1254 |
+
|
1255 |
+
/**
|
1256 |
+
* current version of html5shiv
|
1257 |
+
*/
|
1258 |
+
'version': version,
|
1259 |
+
|
1260 |
+
/**
|
1261 |
+
* A flag to indicate that the HTML5 style sheet should be inserted.
|
1262 |
+
* @memberOf html5
|
1263 |
+
* @type Boolean
|
1264 |
+
*/
|
1265 |
+
'shivCSS': (options.shivCSS !== false),
|
1266 |
+
|
1267 |
+
/**
|
1268 |
+
* Is equal to true if a browser supports creating unknown/HTML5 elements
|
1269 |
+
* @memberOf html5
|
1270 |
+
* @type boolean
|
1271 |
+
*/
|
1272 |
+
'supportsUnknownElements': supportsUnknownElements,
|
1273 |
+
|
1274 |
+
/**
|
1275 |
+
* A flag to indicate that the document's `createElement` and `createDocumentFragment`
|
1276 |
+
* methods should be overwritten.
|
1277 |
+
* @memberOf html5
|
1278 |
+
* @type Boolean
|
1279 |
+
*/
|
1280 |
+
'shivMethods': (options.shivMethods !== false),
|
1281 |
+
|
1282 |
+
/**
|
1283 |
+
* A string to describe the type of `html5` object ("default" or "default print").
|
1284 |
+
* @memberOf html5
|
1285 |
+
* @type String
|
1286 |
+
*/
|
1287 |
+
'type': 'default',
|
1288 |
+
|
1289 |
+
// shivs the document according to the specified `html5` object options
|
1290 |
+
'shivDocument': shivDocument,
|
1291 |
+
|
1292 |
+
//creates a shived element
|
1293 |
+
createElement: createElement,
|
1294 |
+
|
1295 |
+
//creates a shived documentFragment
|
1296 |
+
createDocumentFragment: createDocumentFragment
|
1297 |
+
};
|
1298 |
+
|
1299 |
+
/*--------------------------------------------------------------------------*/
|
1300 |
+
|
1301 |
+
// expose html5
|
1302 |
+
window.html5 = html5;
|
1303 |
+
|
1304 |
+
// shiv the document
|
1305 |
+
shivDocument(document);
|
1306 |
+
|
1307 |
+
}(this, document));
|
1308 |
+
/*>>shiv*/
|
1309 |
+
|
1310 |
+
// Assign private properties to the return object with prefix
|
1311 |
+
Modernizr._version = version;
|
1312 |
+
|
1313 |
+
// expose these for the plugin API. Look in the source for how to join() them against your input
|
1314 |
+
/*>>prefixes*/
|
1315 |
+
Modernizr._prefixes = prefixes;
|
1316 |
+
/*>>prefixes*/
|
1317 |
+
/*>>domprefixes*/
|
1318 |
+
Modernizr._domPrefixes = domPrefixes;
|
1319 |
+
Modernizr._cssomPrefixes = cssomPrefixes;
|
1320 |
+
/*>>domprefixes*/
|
1321 |
+
|
1322 |
+
/*>>mq*/
|
1323 |
+
// Modernizr.mq tests a given media query, live against the current state of the window
|
1324 |
+
// A few important notes:
|
1325 |
+
// * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false
|
1326 |
+
// * A max-width or orientation query will be evaluated against the current state, which may change later.
|
1327 |
+
// * You must specify values. Eg. If you are testing support for the min-width media query use:
|
1328 |
+
// Modernizr.mq('(min-width:0)')
|
1329 |
+
// usage:
|
1330 |
+
// Modernizr.mq('only screen and (max-width:768)')
|
1331 |
+
Modernizr.mq = testMediaQuery;
|
1332 |
+
/*>>mq*/
|
1333 |
+
|
1334 |
+
/*>>hasevent*/
|
1335 |
+
// Modernizr.hasEvent() detects support for a given event, with an optional element to test on
|
1336 |
+
// Modernizr.hasEvent('gesturestart', elem)
|
1337 |
+
Modernizr.hasEvent = isEventSupported;
|
1338 |
+
/*>>hasevent*/
|
1339 |
+
|
1340 |
+
/*>>testprop*/
|
1341 |
+
// Modernizr.testProp() investigates whether a given style property is recognized
|
1342 |
+
// Note that the property names must be provided in the camelCase variant.
|
1343 |
+
// Modernizr.testProp('pointerEvents')
|
1344 |
+
Modernizr.testProp = function(prop){
|
1345 |
+
return testProps([prop]);
|
1346 |
+
};
|
1347 |
+
/*>>testprop*/
|
1348 |
+
|
1349 |
+
/*>>testallprops*/
|
1350 |
+
// Modernizr.testAllProps() investigates whether a given style property,
|
1351 |
+
// or any of its vendor-prefixed variants, is recognized
|
1352 |
+
// Note that the property names must be provided in the camelCase variant.
|
1353 |
+
// Modernizr.testAllProps('boxSizing')
|
1354 |
+
Modernizr.testAllProps = testPropsAll;
|
1355 |
+
/*>>testallprops*/
|
1356 |
+
|
1357 |
+
|
1358 |
+
/*>>teststyles*/
|
1359 |
+
// Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards
|
1360 |
+
// Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... })
|
1361 |
+
Modernizr.testStyles = injectElementWithStyles;
|
1362 |
+
/*>>teststyles*/
|
1363 |
+
|
1364 |
+
|
1365 |
+
/*>>prefixed*/
|
1366 |
+
// Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input
|
1367 |
+
// Modernizr.prefixed('boxSizing') // 'MozBoxSizing'
|
1368 |
+
|
1369 |
+
// Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style.
|
1370 |
+
// Return values will also be the camelCase variant, if you need to translate that to hypenated style use:
|
1371 |
+
//
|
1372 |
+
// str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-');
|
1373 |
+
|
1374 |
+
// If you're trying to ascertain which transition end event to bind to, you might do something like...
|
1375 |
+
//
|
1376 |
+
// var transEndEventNames = {
|
1377 |
+
// 'WebkitTransition' : 'webkitTransitionEnd',
|
1378 |
+
// 'MozTransition' : 'transitionend',
|
1379 |
+
// 'OTransition' : 'oTransitionEnd',
|
1380 |
+
// 'msTransition' : 'MSTransitionEnd',
|
1381 |
+
// 'transition' : 'transitionend'
|
1382 |
+
// },
|
1383 |
+
// transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];
|
1384 |
+
|
1385 |
+
Modernizr.prefixed = function(prop, obj, elem){
|
1386 |
+
if(!obj) {
|
1387 |
+
return testPropsAll(prop, 'pfx');
|
1388 |
+
} else {
|
1389 |
+
// Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame'
|
1390 |
+
return testPropsAll(prop, obj, elem);
|
1391 |
+
}
|
1392 |
+
};
|
1393 |
+
/*>>prefixed*/
|
1394 |
+
|
1395 |
+
|
1396 |
+
/*>>cssclasses*/
|
1397 |
+
// Remove "no-js" class from <html> element, if it exists:
|
1398 |
+
docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') +
|
1399 |
+
|
1400 |
+
// Add the new classes to the <html> element.
|
1401 |
+
(enableClasses ? ' js ' + classes.join(' ') : '');
|
1402 |
+
/*>>cssclasses*/
|
1403 |
+
|
1404 |
+
return Modernizr;
|
1405 |
+
|
1406 |
+
})(this, this.document);
|
js/nav-menu.js
CHANGED
@@ -1,98 +1,116 @@
|
|
1 |
-
jQuery(document).ready(function() {
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
jQuery(element).
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
.
|
25 |
-
.
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
.
|
32 |
-
.
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
.
|
37 |
-
.
|
38 |
-
.
|
39 |
-
.
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
});
|
1 |
+
jQuery(document).ready(function() {
|
2 |
+
var ecwidClasses = {
|
3 |
+
'ecwid-store': 'store',
|
4 |
+
'ecwid-cart': 'cart',
|
5 |
+
'ecwid-my-account': 'account',
|
6 |
+
'ecwid-product-search': 'search',
|
7 |
+
'ecwid-store-with-categories': 'storeWithCategories'
|
8 |
+
};
|
9 |
+
|
10 |
+
processEcwidLinks = function(element) {
|
11 |
+
|
12 |
+
var ecwidLink = findEcwidLink(element);
|
13 |
+
if (!findEcwidLink(element)) return;
|
14 |
+
|
15 |
+
if (jQuery(element).hasClass('ecwid-link')) return;
|
16 |
+
|
17 |
+
jQuery(element).addClass('ecwid-link');
|
18 |
+
jQuery(element).find('.item-type').text(ecwid_l10n.store_page);
|
19 |
+
|
20 |
+
if (isStoreWithCategories(element)) {
|
21 |
+
|
22 |
+
var $message = jQuery('<p>')
|
23 |
+
.addClass('ecwid-store-with-cats-message')
|
24 |
+
.text(ecwid_l10n.reset_cache_message)
|
25 |
+
.insertAfter(jQuery('.field-move', element));
|
26 |
+
|
27 |
+
$target = jQuery('<p class="ecwid-store-with-cats-reset-cache">').insertAfter($message);
|
28 |
+
|
29 |
+
jQuery('<span>')
|
30 |
+
.text(ecwid_l10n.cache_updated)
|
31 |
+
.addClass('ecwid-reset-categories-cache-updated')
|
32 |
+
.appendTo($target);
|
33 |
+
|
34 |
+
jQuery('<a>')
|
35 |
+
.text(ecwid_l10n.reset_cats_cache)
|
36 |
+
.attr('href', 'javascript:void(0);')
|
37 |
+
.addClass('ecwid-reset-categories-cache')
|
38 |
+
.appendTo($target)
|
39 |
+
.click(function() {
|
40 |
+
|
41 |
+
var that = this;
|
42 |
+
jQuery(this).css('cursor', 'wait');
|
43 |
+
resetCache(function() {
|
44 |
+
jQuery(that).fadeOut(100, function() {
|
45 |
+
jQuery(that).prev('.ecwid-reset-categories-cache-updated').fadeIn(100, function() {
|
46 |
+
setTimeout(function () {
|
47 |
+
jQuery(that).prev('.ecwid-reset-categories-cache-updated').fadeOut(500, function () {
|
48 |
+
jQuery(that).fadeIn(500);
|
49 |
+
})
|
50 |
+
}, 4000);
|
51 |
+
});
|
52 |
+
});
|
53 |
+
|
54 |
+
jQuery(that).css('cursor', 'pointer');
|
55 |
+
});
|
56 |
+
});
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
+
trackAddedMenuItems = function(element) {
|
61 |
+
var ecwidLink = findEcwidLink(element);
|
62 |
+
if (!findEcwidLink(element)) return;
|
63 |
+
|
64 |
+
ecwid_kissmetrics_record('menu-items ' + ecwidClasses[ecwidLink] + 'Added');
|
65 |
+
|
66 |
+
}
|
67 |
+
|
68 |
+
findEcwidLink = function(element) {
|
69 |
+
|
70 |
+
var classes = jQuery('.edit-menu-item-classes', element).val().split(' ');
|
71 |
+
for (var i = 0; i < classes.length; i++) {
|
72 |
+
if (ecwidClasses.hasOwnProperty(classes[i])) {
|
73 |
+
return classes[i];
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
return false;
|
78 |
+
}
|
79 |
+
|
80 |
+
isStoreWithCategories = function(element) {
|
81 |
+
for (var i in ecwidClasses) {
|
82 |
+
if (i == 'ecwid-store-with-categories') {
|
83 |
+
return true;
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
+
return false;
|
88 |
+
}
|
89 |
+
|
90 |
+
resetCache = function(callback) {
|
91 |
+
|
92 |
+
jQuery.getJSON(
|
93 |
+
'admin-ajax.php',
|
94 |
+
{
|
95 |
+
action: 'ecwid_reset_categories_cache'
|
96 |
+
},
|
97 |
+
callback
|
98 |
+
);
|
99 |
+
|
100 |
+
}
|
101 |
+
|
102 |
+
jQuery('ul.menu > li.menu-item').each(function(idx, el) {
|
103 |
+
processEcwidLinks(el);
|
104 |
+
});
|
105 |
+
|
106 |
+
jQuery('#ecwid_nav_links').insertAfter(jQuery('#add-page'));
|
107 |
+
|
108 |
+
jQuery('#menu-to-edit').on('DOMNodeInserted', function(e) {
|
109 |
+
if (!jQuery(e.srcElement).hasClass('menu-item')) return;
|
110 |
+
|
111 |
+
processEcwidLinks(e.srcElement);
|
112 |
+
|
113 |
+
trackAddedMenuItems(e.srcElement);
|
114 |
+
});
|
115 |
+
|
116 |
});
|
js/products-list.js
CHANGED
@@ -1,292 +1,292 @@
|
|
1 |
-
jQuery.widget('ecwid.productsList', {
|
2 |
-
|
3 |
-
_create: function() {
|
4 |
-
|
5 |
-
this.products = {};
|
6 |
-
this.container = null;
|
7 |
-
this._prefix = 'ecwid-productsList';
|
8 |
-
this.sort = [];
|
9 |
-
this.options = {
|
10 |
-
max: 3,
|
11 |
-
debug: false
|
12 |
-
};
|
13 |
-
|
14 |
-
|
15 |
-
this.element.addClass(this._prefix);
|
16 |
-
this._removeInitialContent();
|
17 |
-
this.container = jQuery('<ul>').appendTo(this.element);
|
18 |
-
this._initFromHtmlData();
|
19 |
-
this._readSingleProducts();
|
20 |
-
this._onWindowResize();
|
21 |
-
this._render();
|
22 |
-
|
23 |
-
var self = this;
|
24 |
-
jQuery(window).resize(
|
25 |
-
ecwid_debounce(
|
26 |
-
function() {
|
27 |
-
self._onWindowResize();
|
28 |
-
}
|
29 |
-
, 200)
|
30 |
-
);
|
31 |
-
|
32 |
-
this.ajax_url = wp_ecwid_products_list_vars.ajax_url;
|
33 |
-
this.is_api_available = wp_ecwid_products_list_vars.is_api_available;
|
34 |
-
},
|
35 |
-
|
36 |
-
_render: function() {
|
37 |
-
var toShow = this._getProductsToShow();
|
38 |
-
|
39 |
-
for (var i = 0; i < toShow.length; i++) {
|
40 |
-
this._showProduct(this.products[toShow[i]]);
|
41 |
-
}
|
42 |
-
|
43 |
-
for (var id in this.products) {
|
44 |
-
if (toShow.indexOf(id) == -1) {
|
45 |
-
this._hideProduct(this.products[id]);
|
46 |
-
}
|
47 |
-
}
|
48 |
-
|
49 |
-
if (toShow.length > 0) {
|
50 |
-
jQuery('.show-if-empty', this.el).hide();
|
51 |
-
}
|
52 |
-
},
|
53 |
-
|
54 |
-
_setOption: function(key, value) {
|
55 |
-
this._super(key, value);
|
56 |
-
if (key == 'max') {
|
57 |
-
this.refresh();
|
58 |
-
}
|
59 |
-
},
|
60 |
-
|
61 |
-
_getProductClass: function(id) {
|
62 |
-
return this._prefix + '-product-' + id;
|
63 |
-
},
|
64 |
-
|
65 |
-
_getProductElement: function(id) {
|
66 |
-
return this.container.find('.' + this._getProductClass(id));
|
67 |
-
},
|
68 |
-
|
69 |
-
_showProduct: function(product) {
|
70 |
-
var existing = this._getProductElement(product.id);
|
71 |
-
|
72 |
-
if (existing.length == 0) {
|
73 |
-
this._buildProductElement(product);
|
74 |
-
}
|
75 |
-
|
76 |
-
this._fillProductElement(product);
|
77 |
-
|
78 |
-
this._getProductElement(product.id)
|
79 |
-
.addClass('show')
|
80 |
-
.removeClass('hide')
|
81 |
-
.prependTo(this.container);
|
82 |
-
},
|
83 |
-
|
84 |
-
_hideProduct: function(product) {
|
85 |
-
this._getProductElement(product.id)
|
86 |
-
.addClass('hide')
|
87 |
-
.removeClass('show');
|
88 |
-
},
|
89 |
-
|
90 |
-
_buildProductElement: function(product) {
|
91 |
-
var container = jQuery('<li class="' + this._getProductClass(product.id) + '">').appendTo(this.container);
|
92 |
-
|
93 |
-
if (product.link != '') {
|
94 |
-
container = jQuery('<a>')
|
95 |
-
.appendTo(container);
|
96 |
-
}
|
97 |
-
if (product.image) {
|
98 |
-
jQuery('<div class="' + this._prefix + '-image">').append('<img>').appendTo(container);
|
99 |
-
} else {
|
100 |
-
jQuery('<div class="' + this._prefix + '-image ecwid-noimage">').appendTo(container);
|
101 |
-
}
|
102 |
-
jQuery('<div class="' + this._prefix + '-name">').appendTo(container);
|
103 |
-
jQuery('<div class="' + this._prefix + '-price ecwid-productBrowser-price">').appendTo(container);
|
104 |
-
},
|
105 |
-
|
106 |
-
_fillProductElement: function(product) {
|
107 |
-
var container = jQuery('.'+ this._getProductClass(product.id), this.el);
|
108 |
-
|
109 |
-
if (product.link != '') {
|
110 |
-
jQuery('a', container)
|
111 |
-
.attr('href', product.link)
|
112 |
-
.attr('title', product.name);
|
113 |
-
}
|
114 |
-
if (product.image) {
|
115 |
-
jQuery('.' + this._prefix + '-image img', container).attr('src', product.image);
|
116 |
-
}
|
117 |
-
|
118 |
-
jQuery('.' + this._prefix + '-name', container).text(product.name);
|
119 |
-
jQuery('.' + this._prefix + '-price ecwid-productBrowser-price', container).text(product.price);
|
120 |
-
|
121 |
-
},
|
122 |
-
|
123 |
-
_initFromHtmlData: function() {
|
124 |
-
for (var option_name in this.options) {
|
125 |
-
var data_name = 'ecwid-' + option_name;
|
126 |
-
if (typeof(this.element.data(data_name)) != 'undefined') {
|
127 |
-
this._setOption(option_name, this.element.data(data_name));
|
128 |
-
}
|
129 |
-
}
|
130 |
-
},
|
131 |
-
|
132 |
-
_removeInitialContent: function() {
|
133 |
-
this.originalContentContainer = jQuery('<div class="ecwid-initial-productsList-content">')
|
134 |
-
.data('generatedProductsList', this)
|
135 |
-
.append(this.element.find('>*'))
|
136 |
-
.insertAfter(this.element);
|
137 |
-
},
|
138 |
-
|
139 |
-
_readSingleProducts: function() {
|
140 |
-
|
141 |
-
var self = this;
|
142 |
-
var singleProductLoaded = function (container) {
|
143 |
-
return jQuery('.ecwid-title', container).text() != '';
|
144 |
-
}
|
145 |
-
|
146 |
-
jQuery('.ecwid-SingleProduct', this.originalContentContainer).each(function(idx, el) {
|
147 |
-
var interval = setInterval(
|
148 |
-
function() {
|
149 |
-
if (singleProductLoaded(el)) {
|
150 |
-
clearInterval(interval);
|
151 |
-
self._readSingleProduct(el);
|
152 |
-
}
|
153 |
-
},
|
154 |
-
500
|
155 |
-
);
|
156 |
-
});
|
157 |
-
},
|
158 |
-
|
159 |
-
_readSingleProduct: function(singleProductContainer) {
|
160 |
-
|
161 |
-
var forced_image = jQuery('div[itemprop=image]', singleProductContainer).data('force-image');
|
162 |
-
var product = {
|
163 |
-
name: jQuery('.ecwid-title', singleProductContainer).text(),
|
164 |
-
image: forced_image ? forced_image : jQuery('.ecwid-SingleProduct-picture img', singleProductContainer).attr('src'),
|
165 |
-
id: jQuery(singleProductContainer).data('single-product-id'),
|
166 |
-
link: jQuery(singleProductContainer).data('single-product-link'),
|
167 |
-
}
|
168 |
-
if (jQuery('.ecwid-productBrowser-price .gwt-HTML', singleProductContainer).length > 0) {
|
169 |
-
product.price = jQuery('.ecwid-productBrowser-price .gwt-HTML', singleProductContainer).html();
|
170 |
-
} else {
|
171 |
-
product.price = jQuery('.ecwid-price', singleProductContainer).html();
|
172 |
-
}
|
173 |
-
this.addProduct(product, true);
|
174 |
-
},
|
175 |
-
|
176 |
-
_updateFromServer: function(id) {
|
177 |
-
|
178 |
-
var that = this;
|
179 |
-
if (!this.products[id]) return false;
|
180 |
-
jQuery.getJSON(
|
181 |
-
wp_ecwid_products_list_vars.ajax_url,
|
182 |
-
{
|
183 |
-
'action': 'ecwid_get_product_info',
|
184 |
-
'id': id
|
185 |
-
},
|
186 |
-
function(data, result) {
|
187 |
-
if (result == 'success') {
|
188 |
-
that.products[id] = jQuery.extend(
|
189 |
-
that.products[id], {
|
190 |
-
image: data.imageUrl
|
191 |
-
}
|
192 |
-
);
|
193 |
-
|
194 |
-
that._render();
|
195 |
-
}
|
196 |
-
}
|
197 |
-
);
|
198 |
-
},
|
199 |
-
|
200 |
-
_getProductsToShow: function() {
|
201 |
-
return this.sort.slice(0, this.option('max'));
|
202 |
-
},
|
203 |
-
|
204 |
-
_addToSort: function(id) {
|
205 |
-
this.sort.push(id.toString());
|
206 |
-
},
|
207 |
-
|
208 |
-
_triggerError: function(message) {
|
209 |
-
message = 'ecwid.productsList ' + message;
|
210 |
-
if (this.options.debug) {
|
211 |
-
alert(message);
|
212 |
-
}
|
213 |
-
console.log(message);
|
214 |
-
},
|
215 |
-
|
216 |
-
_destroy: function() {
|
217 |
-
this.element.removeClass('.' + this._prefix).find('>*').remove();
|
218 |
-
this.element.append(this.originalContentContainer.find('>*'));
|
219 |
-
this.originalContentContainer.data('generatedProductsList', null);
|
220 |
-
this.originalContentContainer = null;
|
221 |
-
this._superApply(arguments);
|
222 |
-
},
|
223 |
-
|
224 |
-
refresh: function() {
|
225 |
-
this._render();
|
226 |
-
},
|
227 |
-
|
228 |
-
addProduct: function(product, forceRender) {
|
229 |
-
if (typeof(product.id) == 'undefined') {
|
230 |
-
this._triggerError('addProduct error: product must have id');
|
231 |
-
}
|
232 |
-
|
233 |
-
if (typeof this.products[product.id] != 'undefined') {
|
234 |
-
return;
|
235 |
-
}
|
236 |
-
|
237 |
-
this.products[product.id] = jQuery.extend(
|
238 |
-
{}, {
|
239 |
-
id: 0,
|
240 |
-
name: 'no name',
|
241 |
-
image: '',
|
242 |
-
link: '',
|
243 |
-
price: '',
|
244 |
-
toString: function() {return this.name;}
|
245 |
-
},
|
246 |
-
product
|
247 |
-
);
|
248 |
-
|
249 |
-
this._addToSort(product.id);
|
250 |
-
|
251 |
-
if (forceRender) {
|
252 |
-
this._render();
|
253 |
-
}
|
254 |
-
},
|
255 |
-
|
256 |
-
_onWindowResize: function() {
|
257 |
-
if (this.element.width() < 150) {
|
258 |
-
this.element.addClass('width-s').removeClass('width-m width-l');
|
259 |
-
} else if (this.element.width() < 300) {
|
260 |
-
this.element.addClass('width-m').removeClass('width-s width-l');
|
261 |
-
} else {
|
262 |
-
this.element.addClass('width-l').removeClass('width-s width-m');
|
263 |
-
}
|
264 |
-
}
|
265 |
-
});
|
266 |
-
|
267 |
-
|
268 |
-
// Debounce function from http://unscriptable.com/2009/03/20/debouncing-javascript-methods/
|
269 |
-
var ecwid_debounce = function (func, threshold, execAsap) {
|
270 |
-
|
271 |
-
var timeout;
|
272 |
-
|
273 |
-
return function debounced () {
|
274 |
-
var obj = this, args = arguments;
|
275 |
-
function delayed () {
|
276 |
-
if (!execAsap) {
|
277 |
-
func.apply(obj, args);
|
278 |
-
}
|
279 |
-
timeout = null;
|
280 |
-
};
|
281 |
-
|
282 |
-
if (timeout)
|
283 |
-
clearTimeout(timeout);
|
284 |
-
else if (execAsap)
|
285 |
-
func.apply(obj, args);
|
286 |
-
|
287 |
-
timeout = setTimeout(delayed, threshold || 100);
|
288 |
-
};
|
289 |
-
|
290 |
-
}
|
291 |
-
|
292 |
-
jQuery('.ecwid-productsList').trigger('ecwidOnWindowResize');
|
1 |
+
jQuery.widget('ecwid.productsList', {
|
2 |
+
|
3 |
+
_create: function() {
|
4 |
+
|
5 |
+
this.products = {};
|
6 |
+
this.container = null;
|
7 |
+
this._prefix = 'ecwid-productsList';
|
8 |
+
this.sort = [];
|
9 |
+
this.options = {
|
10 |
+
max: 3,
|
11 |
+
debug: false
|
12 |
+
};
|
13 |
+
|
14 |
+
|
15 |
+
this.element.addClass(this._prefix);
|
16 |
+
this._removeInitialContent();
|
17 |
+
this.container = jQuery('<ul>').appendTo(this.element);
|
18 |
+
this._initFromHtmlData();
|
19 |
+
this._readSingleProducts();
|
20 |
+
this._onWindowResize();
|
21 |
+
this._render();
|
22 |
+
|
23 |
+
var self = this;
|
24 |
+
jQuery(window).resize(
|
25 |
+
ecwid_debounce(
|
26 |
+
function() {
|
27 |
+
self._onWindowResize();
|
28 |
+
}
|
29 |
+
, 200)
|
30 |
+
);
|
31 |
+
|
32 |
+
this.ajax_url = wp_ecwid_products_list_vars.ajax_url;
|
33 |
+
this.is_api_available = wp_ecwid_products_list_vars.is_api_available;
|
34 |
+
},
|
35 |
+
|
36 |
+
_render: function() {
|
37 |
+
var toShow = this._getProductsToShow();
|
38 |
+
|
39 |
+
for (var i = 0; i < toShow.length; i++) {
|
40 |
+
this._showProduct(this.products[toShow[i]]);
|
41 |
+
}
|
42 |
+
|
43 |
+
for (var id in this.products) {
|
44 |
+
if (toShow.indexOf(id) == -1) {
|
45 |
+
this._hideProduct(this.products[id]);
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
if (toShow.length > 0) {
|
50 |
+
jQuery('.show-if-empty', this.el).hide();
|
51 |
+
}
|
52 |
+
},
|
53 |
+
|
54 |
+
_setOption: function(key, value) {
|
55 |
+
this._super(key, value);
|
56 |
+
if (key == 'max') {
|
57 |
+
this.refresh();
|
58 |
+
}
|
59 |
+
},
|
60 |
+
|
61 |
+
_getProductClass: function(id) {
|
62 |
+
return this._prefix + '-product-' + id;
|
63 |
+
},
|
64 |
+
|
65 |
+
_getProductElement: function(id) {
|
66 |
+
return this.container.find('.' + this._getProductClass(id));
|
67 |
+
},
|
68 |
+
|
69 |
+
_showProduct: function(product) {
|
70 |
+
var existing = this._getProductElement(product.id);
|
71 |
+
|
72 |
+
if (existing.length == 0) {
|
73 |
+
this._buildProductElement(product);
|
74 |
+
}
|
75 |
+
|
76 |
+
this._fillProductElement(product);
|
77 |
+
|
78 |
+
this._getProductElement(product.id)
|
79 |
+
.addClass('show')
|
80 |
+
.removeClass('hide')
|
81 |
+
.prependTo(this.container);
|
82 |
+
},
|
83 |
+
|
84 |
+
_hideProduct: function(product) {
|
85 |
+
this._getProductElement(product.id)
|
86 |
+
.addClass('hide')
|
87 |
+
.removeClass('show');
|
88 |
+
},
|
89 |
+
|
90 |
+
_buildProductElement: function(product) {
|
91 |
+
var container = jQuery('<li class="' + this._getProductClass(product.id) + '">').appendTo(this.container);
|
92 |
+
|
93 |
+
if (product.link != '') {
|
94 |
+
container = jQuery('<a>')
|
95 |
+
.appendTo(container);
|
96 |
+
}
|
97 |
+
if (product.image) {
|
98 |
+
jQuery('<div class="' + this._prefix + '-image">').append('<img>').appendTo(container);
|
99 |
+
} else {
|
100 |
+
jQuery('<div class="' + this._prefix + '-image ecwid-noimage">').appendTo(container);
|
101 |
+
}
|
102 |
+
jQuery('<div class="' + this._prefix + '-name">').appendTo(container);
|
103 |
+
jQuery('<div class="' + this._prefix + '-price ecwid-productBrowser-price">').appendTo(container);
|
104 |
+
},
|
105 |
+
|
106 |
+
_fillProductElement: function(product) {
|
107 |
+
var container = jQuery('.'+ this._getProductClass(product.id), this.el);
|
108 |
+
|
109 |
+
if (product.link != '') {
|
110 |
+
jQuery('a', container)
|
111 |
+
.attr('href', product.link)
|
112 |
+
.attr('title', product.name);
|
113 |
+
}
|
114 |
+
if (product.image) {
|
115 |
+
jQuery('.' + this._prefix + '-image img', container).attr('src', product.image);
|
116 |
+
}
|
117 |
+
|
118 |
+
jQuery('.' + this._prefix + '-name', container).text(product.name);
|
119 |
+
jQuery('.' + this._prefix + '-price ecwid-productBrowser-price', container).text(product.price);
|
120 |
+
|
121 |
+
},
|
122 |
+
|
123 |
+
_initFromHtmlData: function() {
|
124 |
+
for (var option_name in this.options) {
|
125 |
+
var data_name = 'ecwid-' + option_name;
|
126 |
+
if (typeof(this.element.data(data_name)) != 'undefined') {
|
127 |
+
this._setOption(option_name, this.element.data(data_name));
|
128 |
+
}
|
129 |
+
}
|
130 |
+
},
|
131 |
+
|
132 |
+
_removeInitialContent: function() {
|
133 |
+
this.originalContentContainer = jQuery('<div class="ecwid-initial-productsList-content">')
|
134 |
+
.data('generatedProductsList', this)
|
135 |
+
.append(this.element.find('>*'))
|
136 |
+
.insertAfter(this.element);
|
137 |
+
},
|
138 |
+
|
139 |
+
_readSingleProducts: function() {
|
140 |
+
|
141 |
+
var self = this;
|
142 |
+
var singleProductLoaded = function (container) {
|
143 |
+
return jQuery('.ecwid-title', container).text() != '';
|
144 |
+
}
|
145 |
+
|
146 |
+
jQuery('.ecwid-SingleProduct', this.originalContentContainer).each(function(idx, el) {
|
147 |
+
var interval = setInterval(
|
148 |
+
function() {
|
149 |
+
if (singleProductLoaded(el)) {
|
150 |
+
clearInterval(interval);
|
151 |
+
self._readSingleProduct(el);
|
152 |
+
}
|
153 |
+
},
|
154 |
+
500
|
155 |
+
);
|
156 |
+
});
|
157 |
+
},
|
158 |
+
|
159 |
+
_readSingleProduct: function(singleProductContainer) {
|
160 |
+
|
161 |
+
var forced_image = jQuery('div[itemprop=image]', singleProductContainer).data('force-image');
|
162 |
+
var product = {
|
163 |
+
name: jQuery('.ecwid-title', singleProductContainer).text(),
|
164 |
+
image: forced_image ? forced_image : jQuery('.ecwid-SingleProduct-picture img', singleProductContainer).attr('src'),
|
165 |
+
id: jQuery(singleProductContainer).data('single-product-id'),
|
166 |
+
link: jQuery(singleProductContainer).data('single-product-link'),
|
167 |
+
}
|
168 |
+
if (jQuery('.ecwid-productBrowser-price .gwt-HTML', singleProductContainer).length > 0) {
|
169 |
+
product.price = jQuery('.ecwid-productBrowser-price .gwt-HTML', singleProductContainer).html();
|
170 |
+
} else {
|
171 |
+
product.price = jQuery('.ecwid-price', singleProductContainer).html();
|
172 |
+
}
|
173 |
+
this.addProduct(product, true);
|
174 |
+
},
|
175 |
+
|
176 |
+
_updateFromServer: function(id) {
|
177 |
+
|
178 |
+
var that = this;
|
179 |
+
if (!this.products[id]) return false;
|
180 |
+
jQuery.getJSON(
|
181 |
+
wp_ecwid_products_list_vars.ajax_url,
|
182 |
+
{
|
183 |
+
'action': 'ecwid_get_product_info',
|
184 |
+
'id': id
|
185 |
+
},
|
186 |
+
function(data, result) {
|
187 |
+
if (result == 'success') {
|
188 |
+
that.products[id] = jQuery.extend(
|
189 |
+
that.products[id], {
|
190 |
+
image: data.imageUrl
|
191 |
+
}
|
192 |
+
);
|
193 |
+
|
194 |
+
that._render();
|
195 |
+
}
|
196 |
+
}
|
197 |
+
);
|
198 |
+
},
|
199 |
+
|
200 |
+
_getProductsToShow: function() {
|
201 |
+
return this.sort.slice(0, this.option('max'));
|
202 |
+
},
|
203 |
+
|
204 |
+
_addToSort: function(id) {
|
205 |
+
this.sort.push(id.toString());
|
206 |
+
},
|
207 |
+
|
208 |
+
_triggerError: function(message) {
|
209 |
+
message = 'ecwid.productsList ' + message;
|
210 |
+
if (this.options.debug) {
|
211 |
+
alert(message);
|
212 |
+
}
|
213 |
+
console.log(message);
|
214 |
+
},
|
215 |
+
|
216 |
+
_destroy: function() {
|
217 |
+
this.element.removeClass('.' + this._prefix).find('>*').remove();
|
218 |
+
this.element.append(this.originalContentContainer.find('>*'));
|
219 |
+
this.originalContentContainer.data('generatedProductsList', null);
|
220 |
+
this.originalContentContainer = null;
|
221 |
+
this._superApply(arguments);
|
222 |
+
},
|
223 |
+
|
224 |
+
refresh: function() {
|
225 |
+
this._render();
|
226 |
+
},
|
227 |
+
|
228 |
+
addProduct: function(product, forceRender) {
|
229 |
+
if (typeof(product.id) == 'undefined') {
|
230 |
+
this._triggerError('addProduct error: product must have id');
|
231 |
+
}
|
232 |
+
|
233 |
+
if (typeof this.products[product.id] != 'undefined') {
|
234 |
+
return;
|
235 |
+
}
|
236 |
+
|
237 |
+
this.products[product.id] = jQuery.extend(
|
238 |
+
{}, {
|
239 |
+
id: 0,
|
240 |
+
name: 'no name',
|
241 |
+
image: '',
|
242 |
+
link: '',
|
243 |
+
price: '',
|
244 |
+
toString: function() {return this.name;}
|
245 |
+
},
|
246 |
+
product
|
247 |
+
);
|
248 |
+
|
249 |
+
this._addToSort(product.id);
|
250 |
+
|
251 |
+
if (forceRender) {
|
252 |
+
this._render();
|
253 |
+
}
|
254 |
+
},
|
255 |
+
|
256 |
+
_onWindowResize: function() {
|
257 |
+
if (this.element.width() < 150) {
|
258 |
+
this.element.addClass('width-s').removeClass('width-m width-l');
|
259 |
+
} else if (this.element.width() < 300) {
|
260 |
+
this.element.addClass('width-m').removeClass('width-s width-l');
|
261 |
+
} else {
|
262 |
+
this.element.addClass('width-l').removeClass('width-s width-m');
|
263 |
+
}
|
264 |
+
}
|
265 |
+
});
|
266 |
+
|
267 |
+
|
268 |
+
// Debounce function from http://unscriptable.com/2009/03/20/debouncing-javascript-methods/
|
269 |
+
var ecwid_debounce = function (func, threshold, execAsap) {
|
270 |
+
|
271 |
+
var timeout;
|
272 |
+
|
273 |
+
return function debounced () {
|
274 |
+
var obj = this, args = arguments;
|
275 |
+
function delayed () {
|
276 |
+
if (!execAsap) {
|
277 |
+
func.apply(obj, args);
|
278 |
+
}
|
279 |
+
timeout = null;
|
280 |
+
};
|
281 |
+
|
282 |
+
if (timeout)
|
283 |
+
clearTimeout(timeout);
|
284 |
+
else if (execAsap)
|
285 |
+
func.apply(obj, args);
|
286 |
+
|
287 |
+
timeout = setTimeout(delayed, threshold || 100);
|
288 |
+
};
|
289 |
+
|
290 |
+
}
|
291 |
+
|
292 |
+
jQuery('.ecwid-productsList').trigger('ecwidOnWindowResize');
|
js/recently-viewed-common.js
CHANGED
@@ -1,67 +1,68 @@
|
|
1 |
-
(function() {
|
2 |
-
|
3 |
-
if (typeof jQuery == 'undefined') {
|
4 |
-
console.warn('recently-viewed-common.js requires jquery');
|
5 |
-
}
|
6 |
-
|
7 |
-
if (typeof Ecwid == 'undefined') {
|
8 |
-
console.warn('recently-viewed-common.js must be included after Ecwid object initialization');
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
}
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
product.
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
expires
|
47 |
-
|
48 |
-
|
49 |
-
var
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
|
|
67 |
})();
|
1 |
+
(function() {
|
2 |
+
|
3 |
+
if (typeof jQuery == 'undefined') {
|
4 |
+
console.warn('recently-viewed-common.js requires jquery');
|
5 |
+
}
|
6 |
+
|
7 |
+
if (typeof Ecwid == 'undefined') {
|
8 |
+
console.warn('recently-viewed-common.js must be included after Ecwid object initialization');
|
9 |
+
return;
|
10 |
+
}
|
11 |
+
|
12 |
+
if (typeof wpCookies == 'undefined') {
|
13 |
+
console.warn('recently-viewed-common.js requires utils');
|
14 |
+
}
|
15 |
+
|
16 |
+
if (wpCookies.get('test_ecwid_shopping_cart_recently_products_cookie') != 'test_ecwid_shopping_cart_cookie_value') {
|
17 |
+
wpCookies.set('test_ecwid_shopping_cart_recently_products_cookie', 'test_ecwid_shopping_cart_cookie_value', '', '/');
|
18 |
+
console.warn('recently-viewed-common.js requires enabled cookies');
|
19 |
+
}
|
20 |
+
|
21 |
+
Ecwid.OnPageLoaded.add(function(page) {
|
22 |
+
if (page.type == 'PRODUCT') {
|
23 |
+
var productInfo = fetchProductInfo(page.productId);
|
24 |
+
saveProductToCookies(productInfo);
|
25 |
+
}
|
26 |
+
});
|
27 |
+
|
28 |
+
var fetchProductInfo = function(productId) {
|
29 |
+
var product = {};
|
30 |
+
|
31 |
+
product.id = productId;
|
32 |
+
product.link = window.location.href;
|
33 |
+
|
34 |
+
return product;
|
35 |
+
}
|
36 |
+
|
37 |
+
var saveProductToCookies = function(product) {
|
38 |
+
var cookieName = 'ecwid-shopping-cart-recently-viewed';
|
39 |
+
|
40 |
+
var cookie = JSON.parse(wpCookies.get(cookieName));
|
41 |
+
|
42 |
+
if (cookie == null || typeof(cookie) != 'object') {
|
43 |
+
cookie = {last: 0, products: []};
|
44 |
+
}
|
45 |
+
|
46 |
+
var expires = new Date;
|
47 |
+
expires.setMonth(expires.getMonth() + 1);
|
48 |
+
|
49 |
+
var src = jQuery('script[src*="app.ecwid.com/script.js?"]').attr('src');
|
50 |
+
var re = /app.ecwid.com\/script.js\?(\d*)/;
|
51 |
+
cookie.store_id = src.match(re)[1];
|
52 |
+
|
53 |
+
for (var i = 0; i < cookie.products.length; i++) {
|
54 |
+
if (cookie.products[i].id == product.id) {
|
55 |
+
cookie.products.splice(i, 1);
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
cookie.products.unshift({
|
60 |
+
id: product.id,
|
61 |
+
link: product.link
|
62 |
+
});
|
63 |
+
|
64 |
+
wpCookies.set(cookieName, JSON.stringify(cookie), expires.toUTCString(), '/' );
|
65 |
+
|
66 |
+
}
|
67 |
+
|
68 |
})();
|
js/recently-viewed.js
CHANGED
@@ -1,81 +1,81 @@
|
|
1 |
-
wpCookies.set('test_ecwid_shopping_cart_recently_products_cookie', 'test_ecwid_shopping_cart_cookie_value', { path: '/' });
|
2 |
-
if (wpCookies.get('test_ecwid_shopping_cart_recently_products_cookie') != 'test_ecwid_shopping_cart_cookie_value') {
|
3 |
-
// Cookies do not work, we do nothing
|
4 |
-
exit;
|
5 |
-
}
|
6 |
-
|
7 |
-
jQuery.widget('ecwid.recentlyViewedProducts', jQuery.ecwid.productsList, {
|
8 |
-
|
9 |
-
_create: function() {
|
10 |
-
this._superApply(arguments);
|
11 |
-
|
12 |
-
var self = this;
|
13 |
-
Ecwid.OnPageLoaded.add(
|
14 |
-
function(page) {
|
15 |
-
|
16 |
-
if (page.type == 'PRODUCT') {
|
17 |
-
var product = {
|
18 |
-
id: page.productId.toString(),
|
19 |
-
name: page.name
|
20 |
-
}
|
21 |
-
|
22 |
-
setTimeout(function() {
|
23 |
-
self.addViewedProduct(product);
|
24 |
-
}, 500);
|
25 |
-
} else {
|
26 |
-
self.refresh();
|
27 |
-
}
|
28 |
-
}
|
29 |
-
);
|
30 |
-
},
|
31 |
-
|
32 |
-
addViewedProduct: function(product) {
|
33 |
-
product.image = jQuery('.ecwid-productBrowser-details-thumbnail .gwt-Image').attr('src');
|
34 |
-
product.link = window.location.href;
|
35 |
-
product.name = jQuery('.ecwid-productBrowser-head').text();
|
36 |
-
if (jQuery('.ecwid-productBrowser-price .ecwid-productBrowser-price-value').length > 0) {
|
37 |
-
product.price = jQuery('.ecwid-productBrowser-price .ecwid-productBrowser-price-value').html();
|
38 |
-
} else {
|
39 |
-
product.price = jQuery('.ecwid-productBrowser-price').html();
|
40 |
-
}
|
41 |
-
|
42 |
-
if (typeof this.products[product.id] == 'undefined') {
|
43 |
-
this.addProduct(product);
|
44 |
-
} else {
|
45 |
-
this.sort.splice(this.sort.indexOf(product.id), 1);
|
46 |
-
this._addToSort(product.id);
|
47 |
-
}
|
48 |
-
|
49 |
-
if (this.is_api_available) {
|
50 |
-
this._updateFromServer(product.id);
|
51 |
-
}
|
52 |
-
|
53 |
-
this._render();
|
54 |
-
},
|
55 |
-
|
56 |
-
render: function() {
|
57 |
-
this._superApply(arguments);
|
58 |
-
jQuery('.show-if-empty', this.el).hide();
|
59 |
-
},
|
60 |
-
|
61 |
-
_getProductsToShow: function() {
|
62 |
-
// copy array using slice
|
63 |
-
var sort = this.sort.slice();
|
64 |
-
|
65 |
-
|
66 |
-
if (jQuery('.ecwid-productBrowser-ProductPage').length > 0) {
|
67 |
-
var currentProductId = jQuery('.ecwid-productBrowser-ProductPage').attr('class').match(/ecwid-productBrowser-ProductPage-(\d+)/);
|
68 |
-
|
69 |
-
if (sort.length > 1 && sort.indexOf(currentProductId[1]) != -1) {
|
70 |
-
sort.splice(
|
71 |
-
sort.indexOf(
|
72 |
-
currentProductId[1]
|
73 |
-
), 1
|
74 |
-
);
|
75 |
-
}
|
76 |
-
}
|
77 |
-
|
78 |
-
return sort.reverse().slice(0, this.option('max')).reverse();
|
79 |
-
}
|
80 |
-
});
|
81 |
-
|
1 |
+
wpCookies.set('test_ecwid_shopping_cart_recently_products_cookie', 'test_ecwid_shopping_cart_cookie_value', { path: '/' });
|
2 |
+
if (wpCookies.get('test_ecwid_shopping_cart_recently_products_cookie') != 'test_ecwid_shopping_cart_cookie_value') {
|
3 |
+
// Cookies do not work, we do nothing
|
4 |
+
exit;
|
5 |
+
}
|
6 |
+
|
7 |
+
jQuery.widget('ecwid.recentlyViewedProducts', jQuery.ecwid.productsList, {
|
8 |
+
|
9 |
+
_create: function() {
|
10 |
+
this._superApply(arguments);
|
11 |
+
|
12 |
+
var self = this;
|
13 |
+
Ecwid.OnPageLoaded.add(
|
14 |
+
function(page) {
|
15 |
+
|
16 |
+
if (page.type == 'PRODUCT') {
|
17 |
+
var product = {
|
18 |
+
id: page.productId.toString(),
|
19 |
+
name: page.name
|
20 |
+
}
|
21 |
+
|
22 |
+
setTimeout(function() {
|
23 |
+
self.addViewedProduct(product);
|
24 |
+
}, 500);
|
25 |
+
} else {
|
26 |
+
self.refresh();
|
27 |
+
}
|
28 |
+
}
|
29 |
+
);
|
30 |
+
},
|
31 |
+
|
32 |
+
addViewedProduct: function(product) {
|
33 |
+
product.image = jQuery('.ecwid-productBrowser-details-thumbnail .gwt-Image').attr('src');
|
34 |
+
product.link = window.location.href;
|
35 |
+
product.name = jQuery('.ecwid-productBrowser-head').text();
|
36 |
+
if (jQuery('.ecwid-productBrowser-price .ecwid-productBrowser-price-value').length > 0) {
|
37 |
+
product.price = jQuery('.ecwid-productBrowser-price .ecwid-productBrowser-price-value').html();
|
38 |
+
} else {
|
39 |
+
product.price = jQuery('.ecwid-productBrowser-price').html();
|
40 |
+
}
|
41 |
+
|
42 |
+
if (typeof this.products[product.id] == 'undefined') {
|
43 |
+
this.addProduct(product);
|
44 |
+
} else {
|
45 |
+
this.sort.splice(this.sort.indexOf(product.id), 1);
|
46 |
+
this._addToSort(product.id);
|
47 |
+
}
|
48 |
+
|
49 |
+
if (this.is_api_available) {
|
50 |
+
this._updateFromServer(product.id);
|
51 |
+
}
|
52 |
+
|
53 |
+
this._render();
|
54 |
+
},
|
55 |
+
|
56 |
+
render: function() {
|
57 |
+
this._superApply(arguments);
|
58 |
+
jQuery('.show-if-empty', this.el).hide();
|
59 |
+
},
|
60 |
+
|
61 |
+
_getProductsToShow: function() {
|
62 |
+
// copy array using slice
|
63 |
+
var sort = this.sort.slice();
|
64 |
+
|
65 |
+
|
66 |
+
if (jQuery('.ecwid-productBrowser-ProductPage').length > 0) {
|
67 |
+
var currentProductId = jQuery('.ecwid-productBrowser-ProductPage').attr('class').match(/ecwid-productBrowser-ProductPage-(\d+)/);
|
68 |
+
|
69 |
+
if (sort.length > 1 && sort.indexOf(currentProductId[1]) != -1) {
|
70 |
+
sort.splice(
|
71 |
+
sort.indexOf(
|
72 |
+
currentProductId[1]
|
73 |
+
), 1
|
74 |
+
);
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
return sort.reverse().slice(0, this.option('max')).reverse();
|
79 |
+
}
|
80 |
+
});
|
81 |
+
|
js/store-editor-common.js
CHANGED
@@ -1,25 +1,25 @@
|
|
1 |
-
function ecwid_get_store_shortcode(content) {
|
2 |
-
var found = false;
|
3 |
-
var index = 0;
|
4 |
-
|
5 |
-
while (found = wp.shortcode.next('ecwid', content, index)) {
|
6 |
-
|
7 |
-
if (found && (!found.shortcode.attrs.named.widgets || found.shortcode.attrs.named.widgets.toLowerCase().indexOf('productbrowser') != -1)) {
|
8 |
-
break;
|
9 |
-
}
|
10 |
-
index = found.index + 1;
|
11 |
-
}
|
12 |
-
|
13 |
-
if (typeof found == 'undefined') {
|
14 |
-
found = false;
|
15 |
-
}
|
16 |
-
|
17 |
-
// Workaround for the caching bug that does allow to have properly parsed attributes
|
18 |
-
if (found) {
|
19 |
-
var tmpfound = wp.shortcode.next('ecwid', found.content.replace('[ecwid', '[ecwid timestamp="' + (new Date()).getMilliseconds() + '"'));
|
20 |
-
found.shortcode.attrs = tmpfound.shortcode.attrs;
|
21 |
-
delete found.shortcode.attrs.named.timestamp;
|
22 |
-
}
|
23 |
-
|
24 |
-
return found;
|
25 |
}
|
1 |
+
function ecwid_get_store_shortcode(content) {
|
2 |
+
var found = false;
|
3 |
+
var index = 0;
|
4 |
+
|
5 |
+
while (found = wp.shortcode.next('ecwid', content, index)) {
|
6 |
+
|
7 |
+
if (found && (!found.shortcode.attrs.named.widgets || found.shortcode.attrs.named.widgets.toLowerCase().indexOf('productbrowser') != -1)) {
|
8 |
+
break;
|
9 |
+
}
|
10 |
+
index = found.index + 1;
|
11 |
+
}
|
12 |
+
|
13 |
+
if (typeof found == 'undefined') {
|
14 |
+
found = false;
|
15 |
+
}
|
16 |
+
|
17 |
+
// Workaround for the caching bug that does allow to have properly parsed attributes
|
18 |
+
if (found) {
|
19 |
+
var tmpfound = wp.shortcode.next('ecwid', found.content.replace('[ecwid', '[ecwid timestamp="' + (new Date()).getMilliseconds() + '"'));
|
20 |
+
found.shortcode.attrs = tmpfound.shortcode.attrs;
|
21 |
+
delete found.shortcode.attrs.named.timestamp;
|
22 |
+
}
|
23 |
+
|
24 |
+
return found;
|
25 |
}
|
js/store-editor-mce.js
CHANGED
@@ -1,596 +1,596 @@
|
|
1 |
-
/* global tinymce */
|
2 |
-
tinymce.PluginManager.add( 'ecwid', function( editor ) {
|
3 |
-
var toolbarActive = false;
|
4 |
-
|
5 |
-
// function parseShortcode( content ) {
|
6 |
-
// return content.replace( /(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g, function( a, b, c ) {
|
7 |
-
// var id, cls, w, cap, img, width,
|
8 |
-
// trim = tinymce.trim;
|
9 |
-
//
|
10 |
-
// id = b.match( /id=['"]([^'"]*)['"] ?/ );
|
11 |
-
// if ( id ) {
|
12 |
-
// b = b.replace( id[0], '' );
|
13 |
-
// }
|
14 |
-
//
|
15 |
-
// cls = b.match( /align=['"]([^'"]*)['"] ?/ );
|
16 |
-
// if ( cls ) {
|
17 |
-
// b = b.replace( cls[0], '' );
|
18 |
-
// }
|
19 |
-
//
|
20 |
-
// w = b.match( /width=['"]([0-9]*)['"] ?/ );
|
21 |
-
// if ( w ) {
|
22 |
-
// b = b.replace( w[0], '' );
|
23 |
-
// }
|
24 |
-
//
|
25 |
-
// c = trim( c );
|
26 |
-
// img = c.match( /((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i );
|
27 |
-
//
|
28 |
-
// if ( img && img[2] ) {
|
29 |
-
// cap = trim( img[2] );
|
30 |
-
// img = trim( img[1] );
|
31 |
-
// } else {
|
32 |
-
// // old captions shortcode style
|
33 |
-
// cap = trim( b ).replace( /caption=['"]/, '' ).replace( /['"]$/, '' );
|
34 |
-
// img = c;
|
35 |
-
// }
|
36 |
-
//
|
37 |
-
// id = ( id && id[1] ) ? id[1] : '';
|
38 |
-
// cls = ( cls && cls[1] ) ? cls[1] : 'alignnone';
|
39 |
-
//
|
40 |
-
// if ( ! w && img ) {
|
41 |
-
// w = img.match( /width=['"]([0-9]*)['"]/ );
|
42 |
-
// }
|
43 |
-
//
|
44 |
-
// if ( w && w[1] ) {
|
45 |
-
// w = w[1];
|
46 |
-
// }
|
47 |
-
//
|
48 |
-
// if ( ! w || ! cap ) {
|
49 |
-
// return c;
|
50 |
-
// }
|
51 |
-
//
|
52 |
-
// width = parseInt( w, 10 );
|
53 |
-
// if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
|
54 |
-
// width += 10;
|
55 |
-
// }
|
56 |
-
//
|
57 |
-
// return '<div class="mceTemp"><dl id="'+ id +'" class="wp-caption '+ cls +'" style="width: '+ width +'px">' +
|
58 |
-
// '<dt class="wp-caption-dt">'+ img +'</dt><dd class="wp-caption-dd">'+ cap +'</dd></dl></div>';
|
59 |
-
// });
|
60 |
-
// }
|
61 |
-
//
|
62 |
-
// function getShortcode( content ) {
|
63 |
-
// return content.replace( /<div (?:id="attachment_|class="mceTemp)[^>]*>([\s\S]+?)<\/div>/g, function( a, b ) {
|
64 |
-
// var out = '';
|
65 |
-
//
|
66 |
-
// if ( b.indexOf('<img ') === -1 ) {
|
67 |
-
// // Broken caption. The user managed to drag the image out?
|
68 |
-
// // Try to return the caption text as a paragraph.
|
69 |
-
// out = b.match( /<dd [^>]+>([\s\S]+?)<\/dd>/i );
|
70 |
-
//
|
71 |
-
// if ( out && out[1] ) {
|
72 |
-
// return '<p>' + out[1] + '</p>';
|
73 |
-
// }
|
74 |
-
//
|
75 |
-
// return '';
|
76 |
-
// }
|
77 |
-
//
|
78 |
-
// out = b.replace( /<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>/gi, function( a, b, c, cap ) {
|
79 |
-
// var id, cls, w;
|
80 |
-
//
|
81 |
-
// w = c.match( /width="([0-9]*)"/ );
|
82 |
-
// w = ( w && w[1] ) ? w[1] : '';
|
83 |
-
//
|
84 |
-
// if ( ! w || ! cap ) {
|
85 |
-
// return c;
|
86 |
-
// }
|
87 |
-
//
|
88 |
-
// id = b.match( /id="([^"]*)"/ );
|
89 |
-
// id = ( id && id[1] ) ? id[1] : '';
|
90 |
-
//
|
91 |
-
// cls = b.match( /class="([^"]*)"/ );
|
92 |
-
// cls = ( cls && cls[1] ) ? cls[1] : '';
|
93 |
-
// cls = cls.match( /align[a-z]+/ ) || 'alignnone';
|
94 |
-
//
|
95 |
-
// cap = cap.replace( /\r\n|\r/g, '\n' ).replace( /<[a-zA-Z0-9]+( [^<>]+)?>/g, function( a ) {
|
96 |
-
// // no line breaks inside HTML tags
|
97 |
-
// return a.replace( /[\r\n\t]+/, ' ' );
|
98 |
-
// });
|
99 |
-
//
|
100 |
-
// // convert remaining line breaks to <br>
|
101 |
-
// cap = cap.replace( /\s*\n\s*/g, '<br />' );
|
102 |
-
//
|
103 |
-
// return '[caption id="'+ id +'" align="'+ cls +'" width="'+ w +'"]'+ c +' '+ cap +'[/caption]';
|
104 |
-
// });
|
105 |
-
//
|
106 |
-
// if ( out.indexOf('[caption') !== 0 ) {
|
107 |
-
// // the caption html seems broken, try to find the image that may be wrapped in a link
|
108 |
-
// // and may be followed by <p> with the caption text.
|
109 |
-
// out = b.replace( /[\s\S]*?((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)(<p>[\s\S]*<\/p>)?[\s\S]*/gi, '<p>$1</p>$2' );
|
110 |
-
// }
|
111 |
-
//
|
112 |
-
// return out;
|
113 |
-
// });
|
114 |
-
// }
|
115 |
-
//
|
116 |
-
// function extractImageData( imageNode ) {
|
117 |
-
// var classes, extraClasses, metadata, captionBlock, caption, link, width, height,
|
118 |
-
// dom = editor.dom,
|
119 |
-
// isIntRegExp = /^\d+$/;
|
120 |
-
//
|
121 |
-
// // default attributes
|
122 |
-
// metadata = {
|
123 |
-
// attachment_id: false,
|
124 |
-
// size: 'custom',
|
125 |
-
// caption: '',
|
126 |
-
// align: 'none',
|
127 |
-
// extraClasses: '',
|
128 |
-
// link: false,
|
129 |
-
// linkUrl: '',
|
130 |
-
// linkClassName: '',
|
131 |
-
// linkTargetBlank: false,
|
132 |
-
// linkRel: '',
|
133 |
-
// title: ''
|
134 |
-
// };
|
135 |
-
//
|
136 |
-
// metadata.url = dom.getAttrib( imageNode, 'src' );
|
137 |
-
// metadata.alt = dom.getAttrib( imageNode, 'alt' );
|
138 |
-
// metadata.title = dom.getAttrib( imageNode, 'title' );
|
139 |
-
//
|
140 |
-
// width = dom.getAttrib( imageNode, 'width' );
|
141 |
-
// height = dom.getAttrib( imageNode, 'height' );
|
142 |
-
//
|
143 |
-
// if ( ! isIntRegExp.test( width ) || parseInt( width, 10 ) < 1 ) {
|
144 |
-
// width = imageNode.naturalWidth || imageNode.width;
|
145 |
-
// }
|
146 |
-
//
|
147 |
-
// if ( ! isIntRegExp.test( height ) || parseInt( height, 10 ) < 1 ) {
|
148 |
-
// height = imageNode.naturalHeight || imageNode.height;
|
149 |
-
// }
|
150 |
-
//
|
151 |
-
// metadata.customWidth = metadata.width = width;
|
152 |
-
// metadata.customHeight = metadata.height = height;
|
153 |
-
//
|
154 |
-
// classes = tinymce.explode( imageNode.className, ' ' );
|
155 |
-
// extraClasses = [];
|
156 |
-
//
|
157 |
-
// tinymce.each( classes, function( name ) {
|
158 |
-
//
|
159 |
-
// if ( /^wp-image/.test( name ) ) {
|
160 |
-
// metadata.attachment_id = parseInt( name.replace( 'wp-image-', '' ), 10 );
|
161 |
-
// } else if ( /^align/.test( name ) ) {
|
162 |
-
// metadata.align = name.replace( 'align', '' );
|
163 |
-
// } else if ( /^size/.test( name ) ) {
|
164 |
-
// metadata.size = name.replace( 'size-', '' );
|
165 |
-
// } else {
|
166 |
-
// extraClasses.push( name );
|
167 |
-
// }
|
168 |
-
//
|
169 |
-
// } );
|
170 |
-
//
|
171 |
-
// metadata.extraClasses = extraClasses.join( ' ' );
|
172 |
-
//
|
173 |
-
// // Extract caption
|
174 |
-
// captionBlock = dom.getParents( imageNode, '.wp-caption' );
|
175 |
-
//
|
176 |
-
// if ( captionBlock.length ) {
|
177 |
-
// captionBlock = captionBlock[0];
|
178 |
-
//
|
179 |
-
// classes = captionBlock.className.split( ' ' );
|
180 |
-
// tinymce.each( classes, function( name ) {
|
181 |
-
// if ( /^align/.test( name ) ) {
|
182 |
-
// metadata.align = name.replace( 'align', '' );
|
183 |
-
// }
|
184 |
-
// } );
|
185 |
-
//
|
186 |
-
// caption = dom.select( 'dd.wp-caption-dd', captionBlock );
|
187 |
-
// if ( caption.length ) {
|
188 |
-
// caption = caption[0];
|
189 |
-
//
|
190 |
-
// metadata.caption = editor.serializer.serialize( caption )
|
191 |
-
// .replace( /<br[^>]*>/g, '$&\n' ).replace( /^<p>/, '' ).replace( /<\/p>$/, '' );
|
192 |
-
// }
|
193 |
-
// }
|
194 |
-
//
|
195 |
-
// // Extract linkTo
|
196 |
-
// if ( imageNode.parentNode && imageNode.parentNode.nodeName === 'A' ) {
|
197 |
-
// link = imageNode.parentNode;
|
198 |
-
// metadata.linkUrl = dom.getAttrib( link, 'href' );
|
199 |
-
// metadata.linkTargetBlank = dom.getAttrib( link, 'target' ) === '_blank' ? true : false;
|
200 |
-
// metadata.linkRel = dom.getAttrib( link, 'rel' );
|
201 |
-
// metadata.linkClassName = link.className;
|
202 |
-
// }
|
203 |
-
//
|
204 |
-
// return metadata;
|
205 |
-
// }
|
206 |
-
//
|
207 |
-
// function hasTextContent( node ) {
|
208 |
-
// return node && !! ( node.textContent || node.innerText );
|
209 |
-
// }
|
210 |
-
//
|
211 |
-
// function updateImage( imageNode, imageData ) {
|
212 |
-
// var classes, className, node, html, parent, wrap, linkNode,
|
213 |
-
// captionNode, dd, dl, id, attrs, linkAttrs, width, height,
|
214 |
-
// dom = editor.dom;
|
215 |
-
//
|
216 |
-
// classes = tinymce.explode( imageData.extraClasses, ' ' );
|
217 |
-
//
|
218 |
-
// if ( ! classes ) {
|
219 |
-
// classes = [];
|
220 |
-
// }
|
221 |
-
//
|
222 |
-
// if ( ! imageData.caption ) {
|
223 |
-
// classes.push( 'align' + imageData.align );
|
224 |
-
// }
|
225 |
-
//
|
226 |
-
// if ( imageData.attachment_id ) {
|
227 |
-
// classes.push( 'wp-image-' + imageData.attachment_id );
|
228 |
-
// if ( imageData.size && imageData.size !== 'custom' ) {
|
229 |
-
// classes.push( 'size-' + imageData.size );
|
230 |
-
// }
|
231 |
-
// }
|
232 |
-
//
|
233 |
-
// width = imageData.width;
|
234 |
-
// height = imageData.height;
|
235 |
-
//
|
236 |
-
// if ( imageData.size === 'custom' ) {
|
237 |
-
// width = imageData.customWidth;
|
238 |
-
// height = imageData.customHeight;
|
239 |
-
// }
|
240 |
-
//
|
241 |
-
// attrs = {
|
242 |
-
// src: imageData.url,
|
243 |
-
// width: width || null,
|
244 |
-
// height: height || null,
|
245 |
-
// alt: imageData.alt,
|
246 |
-
// title: imageData.title || null,
|
247 |
-
// 'class': classes.join( ' ' ) || null
|
248 |
-
// };
|
249 |
-
//
|
250 |
-
// dom.setAttribs( imageNode, attrs );
|
251 |
-
//
|
252 |
-
// linkAttrs = {
|
253 |
-
// href: imageData.linkUrl,
|
254 |
-
// rel: imageData.linkRel || null,
|
255 |
-
// target: imageData.linkTargetBlank ? '_blank': null,
|
256 |
-
// 'class': imageData.linkClassName || null
|
257 |
-
// };
|
258 |
-
//
|
259 |
-
// if ( imageNode.parentNode && imageNode.parentNode.nodeName === 'A' && ! hasTextContent( imageNode.parentNode ) ) {
|
260 |
-
// // Update or remove an existing link wrapped around the image
|
261 |
-
// if ( imageData.linkUrl ) {
|
262 |
-
// dom.setAttribs( imageNode.parentNode, linkAttrs );
|
263 |
-
// } else {
|
264 |
-
// dom.remove( imageNode.parentNode, true );
|
265 |
-
// }
|
266 |
-
// } else if ( imageData.linkUrl ) {
|
267 |
-
// if ( linkNode = dom.getParent( imageNode, 'a' ) ) {
|
268 |
-
// // The image is inside a link together with other nodes,
|
269 |
-
// // or is nested in another node, move it out
|
270 |
-
// dom.insertAfter( imageNode, linkNode );
|
271 |
-
// }
|
272 |
-
//
|
273 |
-
// // Add link wrapped around the image
|
274 |
-
// linkNode = dom.create( 'a', linkAttrs );
|
275 |
-
// imageNode.parentNode.insertBefore( linkNode, imageNode );
|
276 |
-
// linkNode.appendChild( imageNode );
|
277 |
-
// }
|
278 |
-
//
|
279 |
-
// captionNode = editor.dom.getParent( imageNode, '.mceTemp' );
|
280 |
-
//
|
281 |
-
// if ( imageNode.parentNode && imageNode.parentNode.nodeName === 'A' && ! hasTextContent( imageNode.parentNode ) ) {
|
282 |
-
// node = imageNode.parentNode;
|
283 |
-
// } else {
|
284 |
-
// node = imageNode;
|
285 |
-
// }
|
286 |
-
//
|
287 |
-
// if ( imageData.caption ) {
|
288 |
-
//
|
289 |
-
// id = imageData.attachment_id ? 'attachment_' + imageData.attachment_id : null;
|
290 |
-
// className = 'wp-caption align' + ( imageData.align || 'none' );
|
291 |
-
//
|
292 |
-
// if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
|
293 |
-
// width = parseInt( width, 10 );
|
294 |
-
// width += 10;
|
295 |
-
// }
|
296 |
-
//
|
297 |
-
// if ( captionNode ) {
|
298 |
-
// dl = dom.select( 'dl.wp-caption', captionNode );
|
299 |
-
//
|
300 |
-
// if ( dl.length ) {
|
301 |
-
// dom.setAttribs( dl, {
|
302 |
-
// id: id,
|
303 |
-
// 'class': className,
|
304 |
-
// style: 'width: ' + width + 'px'
|
305 |
-
// } );
|
306 |
-
// }
|
307 |
-
//
|
308 |
-
// dd = dom.select( '.wp-caption-dd', captionNode );
|
309 |
-
//
|
310 |
-
// if ( dd.length ) {
|
311 |
-
// dom.setHTML( dd[0], imageData.caption );
|
312 |
-
// }
|
313 |
-
//
|
314 |
-
// } else {
|
315 |
-
// id = id ? 'id="'+ id +'" ' : '';
|
316 |
-
//
|
317 |
-
// // should create a new function for generating the caption markup
|
318 |
-
// html = '<dl ' + id + 'class="' + className +'" style="width: '+ width +'px">' +
|
319 |
-
// '<dt class="wp-caption-dt">' + dom.getOuterHTML( node ) + '</dt><dd class="wp-caption-dd">'+ imageData.caption +'</dd></dl>';
|
320 |
-
//
|
321 |
-
// if ( parent = dom.getParent( node, 'p' ) ) {
|
322 |
-
// wrap = dom.create( 'div', { 'class': 'mceTemp' }, html );
|
323 |
-
// parent.parentNode.insertBefore( wrap, parent );
|
324 |
-
// dom.remove( node );
|
325 |
-
//
|
326 |
-
// if ( dom.isEmpty( parent ) ) {
|
327 |
-
// dom.remove( parent );
|
328 |
-
// }
|
329 |
-
// } else {
|
330 |
-
// dom.setOuterHTML( node, '<div class="mceTemp">' + html + '</div>' );
|
331 |
-
// }
|
332 |
-
// }
|
333 |
-
// } else if ( captionNode ) {
|
334 |
-
// // Remove the caption wrapper and place the image in new paragraph
|
335 |
-
// parent = dom.create( 'p' );
|
336 |
-
// captionNode.parentNode.insertBefore( parent, captionNode );
|
337 |
-
// parent.appendChild( node );
|
338 |
-
// dom.remove( captionNode );
|
339 |
-
// }
|
340 |
-
//
|
341 |
-
// if ( wp.media.events ) {
|
342 |
-
// wp.media.events.trigger( 'editor:image-update', {
|
343 |
-
// editor: editor,
|
344 |
-
// metadata: imageData,
|
345 |
-
// image: imageNode
|
346 |
-
// } );
|
347 |
-
// }
|
348 |
-
//
|
349 |
-
// editor.nodeChanged();
|
350 |
-
// // Refresh the toolbar
|
351 |
-
// addToolbar( imageNode );
|
352 |
-
// }
|
353 |
-
|
354 |
-
function editStore( img ) {
|
355 |
-
ecwid_open_store_popup();
|
356 |
-
}
|
357 |
-
|
358 |
-
function removeImage( node ) {
|
359 |
-
var wrap;
|
360 |
-
|
361 |
-
if ( node.nodeName === 'DIV' && editor.dom.hasClass( node, 'ecwid-store-wrap' ) ) {
|
362 |
-
wrap = node;
|
363 |
-
} else if ( node.nodeName === 'IMG' || node.nodeName === 'DT' || node.nodeName === 'A' ) {
|
364 |
-
wrap = editor.dom.getParent( node, 'div.ecwid-store-wrap' );
|
365 |
-
}
|
366 |
-
|
367 |
-
if ( wrap ) {
|
368 |
-
if ( wrap.nextSibling ) {
|
369 |
-
editor.selection.select( wrap.nextSibling );
|
370 |
-
} else if ( wrap.previousSibling ) {
|
371 |
-
editor.selection.select( wrap.previousSibling );
|
372 |
-
} else {
|
373 |
-
editor.selection.select( wrap.parentNode );
|
374 |
-
}
|
375 |
-
|
376 |
-
editor.selection.collapse( true );
|
377 |
-
editor.nodeChanged();
|
378 |
-
editor.dom.remove( wrap );
|
379 |
-
} else {
|
380 |
-
editor.dom.remove( node );
|
381 |
-
}
|
382 |
-
removeToolbar();
|
383 |
-
|
384 |
-
editor.dom.remove(editor.dom.select('#ecwid-edit-store-button'));
|
385 |
-
}
|
386 |
-
|
387 |
-
function addToolbar( node ) {
|
388 |
-
var rectangle, toolbarHtml, toolbar, left,
|
389 |
-
dom = editor.dom;
|
390 |
-
|
391 |
-
removeToolbar(node);
|
392 |
-
|
393 |
-
// Don't add to other images
|
394 |
-
if ( ! node || node.nodeName !== 'IMG' || node.className.indexOf('ecwid-store-editor') == -1 ) {
|
395 |
-
return;
|
396 |
-
}
|
397 |
-
|
398 |
-
dom.setAttrib( node, 'data-ecwid-store-select', 1 );
|
399 |
-
rectangle = dom.getRect( node );
|
400 |
-
|
401 |
-
toolbarHtml = '<div class="dashicons dashicons-no-alt remove" data-mce-bogus="1"></div>';
|
402 |
-
|
403 |
-
toolbar = dom.create( 'div', {
|
404 |
-
'id': 'ecwid-store-toolbar',
|
405 |
-
'data-mce-bogus': '1',
|
406 |
-
'contenteditable': false
|
407 |
-
}, toolbarHtml );
|
408 |
-
|
409 |
-
if ( editor.rtl ) {
|
410 |
-
left = rectangle.x + rectangle.w - 82;
|
411 |
-
} else {
|
412 |
-
left = rectangle.x;
|
413 |
-
}
|
414 |
-
|
415 |
-
editor.getBody().appendChild( toolbar );
|
416 |
-
dom.setStyles( toolbar, {
|
417 |
-
top: rectangle.y,
|
418 |
-
left: left
|
419 |
-
});
|
420 |
-
|
421 |
-
toolbarActive = true;
|
422 |
-
}
|
423 |
-
|
424 |
-
this.addToolbar = function() {
|
425 |
-
addToolbar(
|
426 |
-
jQuery(editor.dom.doc.body).find('.ecwid-store-editor').get(0)
|
427 |
-
);
|
428 |
-
}
|
429 |
-
|
430 |
-
function removeToolbar(parentNode) {
|
431 |
-
|
432 |
-
if (parentNode && editor.dom.getAttrib( parentNode, 'class') == 'ecwid-store-editor' ) {
|
433 |
-
var toolbar = editor.dom.get( 'wp-image-toolbar' );
|
434 |
-
if ( toolbar ) {
|
435 |
-
editor.dom.remove( toolbar );
|
436 |
-
}
|
437 |
-
}
|
438 |
-
|
439 |
-
var toolbar = editor.dom.get( 'ecwid-store-toolbar' );
|
440 |
-
if ( toolbar ) {
|
441 |
-
editor.dom.remove( toolbar );
|
442 |
-
}
|
443 |
-
|
444 |
-
// also remove image toolbar
|
445 |
-
|
446 |
-
editor.dom.setAttrib( editor.dom.select( 'img[data-ecwid-store-select]' ), 'data-ecwid-store-select', null );
|
447 |
-
|
448 |
-
toolbarActive = false;
|
449 |
-
}
|
450 |
-
|
451 |
-
editor.onInit.add(function(editor) {
|
452 |
-
|
453 |
-
dom = editor.dom;
|
454 |
-
dom.bind( editor.getDoc(), 'dragstart', function( event ) {
|
455 |
-
var node = editor.selection.getNode();
|
456 |
-
|
457 |
-
// Prevent dragging images out of the caption elements
|
458 |
-
if ( node.nodeName === 'IMG' && dom.getParent( node, '.wp-caption' ) ) {
|
459 |
-
event.preventDefault();
|
460 |
-
}
|
461 |
-
|
462 |
-
// Remove toolbar to avoid an orphaned toolbar when dragging an image to a new location
|
463 |
-
removeToolbar();
|
464 |
-
});
|
465 |
-
});
|
466 |
-
|
467 |
-
editor.onKeyUp.add( function( editor, event ) {
|
468 |
-
var node, wrap, P, spacer,
|
469 |
-
selection = editor.selection,
|
470 |
-
keyCode = event.keyCode,
|
471 |
-
dom = editor.dom;
|
472 |
-
|
473 |
-
if ( keyCode === 46 || keyCode === 8 ) {
|
474 |
-
checkEcwid();
|
475 |
-
}
|
476 |
-
});
|
477 |
-
|
478 |
-
editor.onKeyDown.add( function( editor, event ) {
|
479 |
-
var node, wrap, P, spacer,
|
480 |
-
selection = editor.selection,
|
481 |
-
keyCode = event.keyCode,
|
482 |
-
dom = editor.dom;
|
483 |
-
|
484 |
-
if ( keyCode == 27 ) {
|
485 |
-
jQuery('#ecwid-store-popup-content').removeClass('open');
|
486 |
-
return false;
|
487 |
-
}
|
488 |
-
|
489 |
-
if ( keyCode === 46 || keyCode === 8 ) {
|
490 |
-
node = selection.getNode();
|
491 |
-
|
492 |
-
if ( node.nodeName === 'DIV' && dom.hasClass( node, 'ecwid-store-wrap' ) ) {
|
493 |
-
wrap = node;
|
494 |
-
} else if ( node.nodeName === 'IMG' ) {
|
495 |
-
wrap = dom.getParent( node, 'div.ecwid-store-wrap' );
|
496 |
-
}
|
497 |
-
|
498 |
-
if ( wrap ) {
|
499 |
-
dom.events.cancel( event );
|
500 |
-
removeImage( node );
|
501 |
-
editor.dom.remove(editor.dom.select('#ecwid-edit-store-button'));
|
502 |
-
|
503 |
-
return false;
|
504 |
-
}
|
505 |
-
|
506 |
-
removeToolbar();
|
507 |
-
}
|
508 |
-
|
509 |
-
// Key presses will replace the image so we need to remove the toolbar
|
510 |
-
if ( toolbarActive ) {
|
511 |
-
if ( event.ctrlKey || event.metaKey || event.altKey ||
|
512 |
-
( keyCode < 48 && keyCode > 90 ) || keyCode > 186 ) {
|
513 |
-
return;
|
514 |
-
}
|
515 |
-
|
516 |
-
removeToolbar();
|
517 |
-
editor.dom.remove(editor.dom.select('#ecwid-edit-store-button'));
|
518 |
-
|
519 |
-
}
|
520 |
-
|
521 |
-
});
|
522 |
-
|
523 |
-
editor.onMouseDown.add( function( editor, event ) {
|
524 |
-
if ( editor.dom.getParent( event.target, '#ecwid-store-toolbar' ) ) {
|
525 |
-
if ( tinymce.Env.ie ) {
|
526 |
-
// Stop IE > 8 from making the wrapper resizable on mousedown
|
527 |
-
event.preventDefault();
|
528 |
-
}
|
529 |
-
} else if ( event.target.nodeName !== 'IMG' ) {
|
530 |
-
removeToolbar();
|
531 |
-
}
|
532 |
-
});
|
533 |
-
|
534 |
-
editor.onMouseUp.add( function( editor, event ) {
|
535 |
-
var image,
|
536 |
-
node = event.target,
|
537 |
-
dom = editor.dom;
|
538 |
-
|
539 |
-
// Don't trigger on right-click
|
540 |
-
if ( event.button && event.button > 1 ) {
|
541 |
-
return;
|
542 |
-
}
|
543 |
-
|
544 |
-
if ( node.nodeName === 'DIV' && dom.getParent( node, '#ecwid-store-toolbar' ) ) {
|
545 |
-
image = dom.select( 'img[data-ecwid-store-select]' )[0];
|
546 |
-
|
547 |
-
if ( image ) {
|
548 |
-
editor.selection.select( image );
|
549 |
-
|
550 |
-
if ( dom.hasClass( node, 'remove' ) ) {
|
551 |
-
removeImage( image );
|
552 |
-
} else if ( dom.hasClass( node, 'edit' ) ) {
|
553 |
-
editStore( image );
|
554 |
-
}
|
555 |
-
}
|
556 |
-
} else if ( node.nodeName === 'IMG' && ! editor.dom.getAttrib( node, 'data-ecwid-store-select' ) ) {
|
557 |
-
addToolbar( node );
|
558 |
-
} else if ( node.nodeName !== 'IMG' ) {
|
559 |
-
removeToolbar();
|
560 |
-
}
|
561 |
-
});
|
562 |
-
|
563 |
-
// Replace Read More/Next Page tags with images
|
564 |
-
editor.onBeforeSetContent.add( function( editor, e ) {
|
565 |
-
if ( e.content ) {
|
566 |
-
|
567 |
-
found = ecwid_get_store_shortcode(e.content);
|
568 |
-
|
569 |
-
if (!found) return;
|
570 |
-
|
571 |
-
var content = e.content;
|
572 |
-
|
573 |
-
var store = '<img height="200" width="100%" data-ecwid-shortcode="' + window.encodeURIComponent(found.content) + '" src="' + ecwid_store_svg + '" data-mce-placeholder="true" data-mce-resize="false" class="ecwid-store-editor mceItem">';
|
574 |
-
|
575 |
-
e.content = e.content.substr(0, found.index) + store + e.content.substr(found.index + found.content.length);
|
576 |
-
}
|
577 |
-
});
|
578 |
-
|
579 |
-
// Replace images with tags
|
580 |
-
editor.onPostProcess.add( function( editor, e ) {
|
581 |
-
|
582 |
-
if ( e.get ) {
|
583 |
-
|
584 |
-
return e.content = e.content.replace( /(<img [^>]*data-ecwid-shortcode=[^>]+>)/g, function( match, image ) {
|
585 |
-
|
586 |
-
var data = window.decodeURIComponent(jQuery(image).attr('data-ecwid-shortcode'));
|
587 |
-
|
588 |
-
if ( data ) {
|
589 |
-
return data;
|
590 |
-
}
|
591 |
-
|
592 |
-
return match;
|
593 |
-
});
|
594 |
-
}
|
595 |
-
});
|
596 |
});
|
1 |
+
/* global tinymce */
|
2 |
+
tinymce.PluginManager.add( 'ecwid', function( editor ) {
|
3 |
+
var toolbarActive = false;
|
4 |
+
|
5 |
+
// function parseShortcode( content ) {
|
6 |
+
// return content.replace( /(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g, function( a, b, c ) {
|
7 |
+
// var id, cls, w, cap, img, width,
|
8 |
+
// trim = tinymce.trim;
|
9 |
+
//
|
10 |
+
// id = b.match( /id=['"]([^'"]*)['"] ?/ );
|
11 |
+
// if ( id ) {
|
12 |
+
// b = b.replace( id[0], '' );
|
13 |
+
// }
|
14 |
+
//
|
15 |
+
// cls = b.match( /align=['"]([^'"]*)['"] ?/ );
|
16 |
+
// if ( cls ) {
|
17 |
+
// b = b.replace( cls[0], '' );
|
18 |
+
// }
|
19 |
+
//
|
20 |
+
// w = b.match( /width=['"]([0-9]*)['"] ?/ );
|
21 |
+
// if ( w ) {
|
22 |
+
// b = b.replace( w[0], '' );
|
23 |
+
// }
|
24 |
+
//
|
25 |
+
// c = trim( c );
|
26 |
+
// img = c.match( /((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i );
|
27 |
+
//
|
28 |
+
// if ( img && img[2] ) {
|
29 |
+
// cap = trim( img[2] );
|
30 |
+
// img = trim( img[1] );
|
31 |
+
// } else {
|
32 |
+
// // old captions shortcode style
|
33 |
+
// cap = trim( b ).replace( /caption=['"]/, '' ).replace( /['"]$/, '' );
|
34 |
+
// img = c;
|
35 |
+
// }
|
36 |
+
//
|
37 |
+
// id = ( id && id[1] ) ? id[1] : '';
|
38 |
+
// cls = ( cls && cls[1] ) ? cls[1] : 'alignnone';
|
39 |
+
//
|
40 |
+
// if ( ! w && img ) {
|
41 |
+
// w = img.match( /width=['"]([0-9]*)['"]/ );
|
42 |
+
// }
|
43 |
+
//
|
44 |
+
// if ( w && w[1] ) {
|
45 |
+
// w = w[1];
|
46 |
+
// }
|
47 |
+
//
|
48 |
+
// if ( ! w || ! cap ) {
|
49 |
+
// return c;
|
50 |
+
// }
|
51 |
+
//
|
52 |
+
// width = parseInt( w, 10 );
|
53 |
+
// if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
|
54 |
+
// width += 10;
|
55 |
+
// }
|
56 |
+
//
|
57 |
+
// return '<div class="mceTemp"><dl id="'+ id +'" class="wp-caption '+ cls +'" style="width: '+ width +'px">' +
|
58 |
+
// '<dt class="wp-caption-dt">'+ img +'</dt><dd class="wp-caption-dd">'+ cap +'</dd></dl></div>';
|
59 |
+
// });
|
60 |
+
// }
|
61 |
+
//
|
62 |
+
// function getShortcode( content ) {
|
63 |
+
// return content.replace( /<div (?:id="attachment_|class="mceTemp)[^>]*>([\s\S]+?)<\/div>/g, function( a, b ) {
|
64 |
+
// var out = '';
|
65 |
+
//
|
66 |
+
// if ( b.indexOf('<img ') === -1 ) {
|
67 |
+
// // Broken caption. The user managed to drag the image out?
|
68 |
+
// // Try to return the caption text as a paragraph.
|
69 |
+
// out = b.match( /<dd [^>]+>([\s\S]+?)<\/dd>/i );
|
70 |
+
//
|
71 |
+
// if ( out && out[1] ) {
|
72 |
+
// return '<p>' + out[1] + '</p>';
|
73 |
+
// }
|
74 |
+
//
|
75 |
+
// return '';
|
76 |
+
// }
|
77 |
+
//
|
78 |
+
// out = b.replace( /<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>/gi, function( a, b, c, cap ) {
|
79 |
+
// var id, cls, w;
|
80 |
+
//
|
81 |
+
// w = c.match( /width="([0-9]*)"/ );
|
82 |
+
// w = ( w && w[1] ) ? w[1] : '';
|
83 |
+
//
|
84 |
+
// if ( ! w || ! cap ) {
|
85 |
+
// return c;
|
86 |
+
// }
|
87 |
+
//
|
88 |
+
// id = b.match( /id="([^"]*)"/ );
|
89 |
+
// id = ( id && id[1] ) ? id[1] : '';
|
90 |
+
//
|
91 |
+
// cls = b.match( /class="([^"]*)"/ );
|
92 |
+
// cls = ( cls && cls[1] ) ? cls[1] : '';
|
93 |
+
// cls = cls.match( /align[a-z]+/ ) || 'alignnone';
|
94 |
+
//
|
95 |
+
// cap = cap.replace( /\r\n|\r/g, '\n' ).replace( /<[a-zA-Z0-9]+( [^<>]+)?>/g, function( a ) {
|
96 |
+
// // no line breaks inside HTML tags
|
97 |
+
// return a.replace( /[\r\n\t]+/, ' ' );
|
98 |
+
// });
|
99 |
+
//
|
100 |
+
// // convert remaining line breaks to <br>
|
101 |
+
// cap = cap.replace( /\s*\n\s*/g, '<br />' );
|
102 |
+
//
|
103 |
+
// return '[caption id="'+ id +'" align="'+ cls +'" width="'+ w +'"]'+ c +' '+ cap +'[/caption]';
|
104 |
+
// });
|
105 |
+
//
|
106 |
+
// if ( out.indexOf('[caption') !== 0 ) {
|
107 |
+
// // the caption html seems broken, try to find the image that may be wrapped in a link
|
108 |
+
// // and may be followed by <p> with the caption text.
|
109 |
+
// out = b.replace( /[\s\S]*?((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)(<p>[\s\S]*<\/p>)?[\s\S]*/gi, '<p>$1</p>$2' );
|
110 |
+
// }
|
111 |
+
//
|
112 |
+
// return out;
|
113 |
+
// });
|
114 |
+
// }
|
115 |
+
//
|
116 |
+
// function extractImageData( imageNode ) {
|
117 |
+
// var classes, extraClasses, metadata, captionBlock, caption, link, width, height,
|
118 |
+
// dom = editor.dom,
|
119 |
+
// isIntRegExp = /^\d+$/;
|
120 |
+
//
|
121 |
+
// // default attributes
|
122 |
+
// metadata = {
|
123 |
+
// attachment_id: false,
|
124 |
+
// size: 'custom',
|
125 |
+
// caption: '',
|
126 |
+
// align: 'none',
|
127 |
+
// extraClasses: '',
|
128 |
+
// link: false,
|
129 |
+
// linkUrl: '',
|
130 |
+
// linkClassName: '',
|
131 |
+
// linkTargetBlank: false,
|
132 |
+
// linkRel: '',
|
133 |
+
// title: ''
|
134 |
+
// };
|
135 |
+
//
|
136 |
+
// metadata.url = dom.getAttrib( imageNode, 'src' );
|
137 |
+
// metadata.alt = dom.getAttrib( imageNode, 'alt' );
|
138 |
+
// metadata.title = dom.getAttrib( imageNode, 'title' );
|
139 |
+
//
|
140 |
+
// width = dom.getAttrib( imageNode, 'width' );
|
141 |
+
// height = dom.getAttrib( imageNode, 'height' );
|
142 |
+
//
|
143 |
+
// if ( ! isIntRegExp.test( width ) || parseInt( width, 10 ) < 1 ) {
|
144 |
+
// width = imageNode.naturalWidth || imageNode.width;
|
145 |
+
// }
|
146 |
+
//
|
147 |
+
// if ( ! isIntRegExp.test( height ) || parseInt( height, 10 ) < 1 ) {
|
148 |
+
// height = imageNode.naturalHeight || imageNode.height;
|
149 |
+
// }
|
150 |
+
//
|
151 |
+
// metadata.customWidth = metadata.width = width;
|
152 |
+
// metadata.customHeight = metadata.height = height;
|
153 |
+
//
|
154 |
+
// classes = tinymce.explode( imageNode.className, ' ' );
|
155 |
+
// extraClasses = [];
|
156 |
+
//
|
157 |
+
// tinymce.each( classes, function( name ) {
|
158 |
+
//
|
159 |
+
// if ( /^wp-image/.test( name ) ) {
|
160 |
+
// metadata.attachment_id = parseInt( name.replace( 'wp-image-', '' ), 10 );
|
161 |
+
// } else if ( /^align/.test( name ) ) {
|
162 |
+
// metadata.align = name.replace( 'align', '' );
|
163 |
+
// } else if ( /^size/.test( name ) ) {
|
164 |
+
// metadata.size = name.replace( 'size-', '' );
|
165 |
+
// } else {
|
166 |
+
// extraClasses.push( name );
|
167 |
+
// }
|
168 |
+
//
|
169 |
+
// } );
|
170 |
+
//
|
171 |
+
// metadata.extraClasses = extraClasses.join( ' ' );
|
172 |
+
//
|
173 |
+
// // Extract caption
|
174 |
+
// captionBlock = dom.getParents( imageNode, '.wp-caption' );
|
175 |
+
//
|
176 |
+
// if ( captionBlock.length ) {
|
177 |
+
// captionBlock = captionBlock[0];
|
178 |
+
//
|
179 |
+
// classes = captionBlock.className.split( ' ' );
|
180 |
+
// tinymce.each( classes, function( name ) {
|
181 |
+
// if ( /^align/.test( name ) ) {
|
182 |
+
// metadata.align = name.replace( 'align', '' );
|
183 |
+
// }
|
184 |
+
// } );
|
185 |
+
//
|
186 |
+
// caption = dom.select( 'dd.wp-caption-dd', captionBlock );
|
187 |
+
// if ( caption.length ) {
|
188 |
+
// caption = caption[0];
|
189 |
+
//
|
190 |
+
// metadata.caption = editor.serializer.serialize( caption )
|
191 |
+
// .replace( /<br[^>]*>/g, '$&\n' ).replace( /^<p>/, '' ).replace( /<\/p>$/, '' );
|
192 |
+
// }
|
193 |
+
// }
|
194 |
+
//
|
195 |
+
// // Extract linkTo
|
196 |
+
// if ( imageNode.parentNode && imageNode.parentNode.nodeName === 'A' ) {
|
197 |
+
// link = imageNode.parentNode;
|
198 |
+
// metadata.linkUrl = dom.getAttrib( link, 'href' );
|
199 |
+
// metadata.linkTargetBlank = dom.getAttrib( link, 'target' ) === '_blank' ? true : false;
|
200 |
+
// metadata.linkRel = dom.getAttrib( link, 'rel' );
|
201 |
+
// metadata.linkClassName = link.className;
|
202 |
+
// }
|
203 |
+
//
|
204 |
+
// return metadata;
|
205 |
+
// }
|
206 |
+
//
|
207 |
+
// function hasTextContent( node ) {
|
208 |
+
// return node && !! ( node.textContent || node.innerText );
|
209 |
+
// }
|
210 |
+
//
|
211 |
+
// function updateImage( imageNode, imageData ) {
|
212 |
+
// var classes, className, node, html, parent, wrap, linkNode,
|
213 |
+
// captionNode, dd, dl, id, attrs, linkAttrs, width, height,
|
214 |
+
// dom = editor.dom;
|
215 |
+
//
|
216 |
+
// classes = tinymce.explode( imageData.extraClasses, ' ' );
|
217 |
+
//
|
218 |
+
// if ( ! classes ) {
|
219 |
+
// classes = [];
|
220 |
+
// }
|
221 |
+
//
|
222 |
+
// if ( ! imageData.caption ) {
|
223 |
+
// classes.push( 'align' + imageData.align );
|
224 |
+
// }
|
225 |
+
//
|
226 |
+
// if ( imageData.attachment_id ) {
|
227 |
+
// classes.push( 'wp-image-' + imageData.attachment_id );
|
228 |
+
// if ( imageData.size && imageData.size !== 'custom' ) {
|
229 |
+
// classes.push( 'size-' + imageData.size );
|
230 |
+
// }
|
231 |
+
// }
|
232 |
+
//
|
233 |
+
// width = imageData.width;
|
234 |
+
// height = imageData.height;
|
235 |
+
//
|
236 |
+
// if ( imageData.size === 'custom' ) {
|
237 |
+
// width = imageData.customWidth;
|
238 |
+
// height = imageData.customHeight;
|
239 |
+
// }
|
240 |
+
//
|
241 |
+
// attrs = {
|
242 |
+
// src: imageData.url,
|
243 |
+
// width: width || null,
|
244 |
+
// height: height || null,
|
245 |
+
// alt: imageData.alt,
|
246 |
+
// title: imageData.title || null,
|
247 |
+
// 'class': classes.join( ' ' ) || null
|
248 |
+
// };
|
249 |
+
//
|
250 |
+
// dom.setAttribs( imageNode, attrs );
|
251 |
+
//
|
252 |
+
// linkAttrs = {
|
253 |
+
// href: imageData.linkUrl,
|
254 |
+
// rel: imageData.linkRel || null,
|
255 |
+
// target: imageData.linkTargetBlank ? '_blank': null,
|
256 |
+
// 'class': imageData.linkClassName || null
|
257 |
+
// };
|
258 |
+
//
|
259 |
+
// if ( imageNode.parentNode && imageNode.parentNode.nodeName === 'A' && ! hasTextContent( imageNode.parentNode ) ) {
|
260 |
+
// // Update or remove an existing link wrapped around the image
|
261 |
+
// if ( imageData.linkUrl ) {
|
262 |
+
// dom.setAttribs( imageNode.parentNode, linkAttrs );
|
263 |
+
// } else {
|
264 |
+
// dom.remove( imageNode.parentNode, true );
|
265 |
+
// }
|
266 |
+
// } else if ( imageData.linkUrl ) {
|
267 |
+
// if ( linkNode = dom.getParent( imageNode, 'a' ) ) {
|
268 |
+
// // The image is inside a link together with other nodes,
|
269 |
+
// // or is nested in another node, move it out
|
270 |
+
// dom.insertAfter( imageNode, linkNode );
|
271 |
+
// }
|
272 |
+
//
|
273 |
+
// // Add link wrapped around the image
|
274 |
+
// linkNode = dom.create( 'a', linkAttrs );
|
275 |
+
// imageNode.parentNode.insertBefore( linkNode, imageNode );
|
276 |
+
// linkNode.appendChild( imageNode );
|
277 |
+
// }
|
278 |
+
//
|
279 |
+
// captionNode = editor.dom.getParent( imageNode, '.mceTemp' );
|
280 |
+
//
|
281 |
+
// if ( imageNode.parentNode && imageNode.parentNode.nodeName === 'A' && ! hasTextContent( imageNode.parentNode ) ) {
|
282 |
+
// node = imageNode.parentNode;
|
283 |
+
// } else {
|
284 |
+
// node = imageNode;
|
285 |
+
// }
|
286 |
+
//
|
287 |
+
// if ( imageData.caption ) {
|
288 |
+
//
|
289 |
+
// id = imageData.attachment_id ? 'attachment_' + imageData.attachment_id : null;
|
290 |
+
// className = 'wp-caption align' + ( imageData.align || 'none' );
|
291 |
+
//
|
292 |
+
// if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
|
293 |
+
// width = parseInt( width, 10 );
|
294 |
+
// width += 10;
|
295 |
+
// }
|
296 |
+
//
|
297 |
+
// if ( captionNode ) {
|
298 |
+
// dl = dom.select( 'dl.wp-caption', captionNode );
|
299 |
+
//
|
300 |
+
// if ( dl.length ) {
|
301 |
+
// dom.setAttribs( dl, {
|
302 |
+
// id: id,
|
303 |
+
// 'class': className,
|
304 |
+
// style: 'width: ' + width + 'px'
|
305 |
+
// } );
|
306 |
+
// }
|
307 |
+
//
|
308 |
+
// dd = dom.select( '.wp-caption-dd', captionNode );
|
309 |
+
//
|
310 |
+
// if ( dd.length ) {
|
311 |
+
// dom.setHTML( dd[0], imageData.caption );
|
312 |
+
// }
|
313 |
+
//
|
314 |
+
// } else {
|
315 |
+
// id = id ? 'id="'+ id +'" ' : '';
|
316 |
+
//
|
317 |
+
// // should create a new function for generating the caption markup
|
318 |
+
// html = '<dl ' + id + 'class="' + className +'" style="width: '+ width +'px">' +
|
319 |
+
// '<dt class="wp-caption-dt">' + dom.getOuterHTML( node ) + '</dt><dd class="wp-caption-dd">'+ imageData.caption +'</dd></dl>';
|
320 |
+
//
|
321 |
+
// if ( parent = dom.getParent( node, 'p' ) ) {
|
322 |
+
// wrap = dom.create( 'div', { 'class': 'mceTemp' }, html );
|
323 |
+
// parent.parentNode.insertBefore( wrap, parent );
|
324 |
+
// dom.remove( node );
|
325 |
+
//
|
326 |
+
// if ( dom.isEmpty( parent ) ) {
|
327 |
+
// dom.remove( parent );
|
328 |
+
// }
|
329 |
+
// } else {
|
330 |
+
// dom.setOuterHTML( node, '<div class="mceTemp">' + html + '</div>' );
|
331 |
+
// }
|
332 |
+
// }
|
333 |
+
// } else if ( captionNode ) {
|
334 |
+
// // Remove the caption wrapper and place the image in new paragraph
|
335 |
+
// parent = dom.create( 'p' );
|
336 |
+
// captionNode.parentNode.insertBefore( parent, captionNode );
|
337 |
+
// parent.appendChild( node );
|
338 |
+
// dom.remove( captionNode );
|
339 |
+
// }
|
340 |
+
//
|
341 |
+
// if ( wp.media.events ) {
|
342 |
+
// wp.media.events.trigger( 'editor:image-update', {
|
343 |
+
// editor: editor,
|
344 |
+
// metadata: imageData,
|
345 |
+
// image: imageNode
|
346 |
+
// } );
|
347 |
+
// }
|
348 |
+
//
|
349 |
+
// editor.nodeChanged();
|
350 |
+
// // Refresh the toolbar
|
351 |
+
// addToolbar( imageNode );
|
352 |
+
// }
|
353 |
+
|
354 |
+
function editStore( img ) {
|
355 |
+
ecwid_open_store_popup();
|
356 |
+
}
|
357 |
+
|
358 |
+
function removeImage( node ) {
|
359 |
+
var wrap;
|
360 |
+
|
361 |
+
if ( node.nodeName === 'DIV' && editor.dom.hasClass( node, 'ecwid-store-wrap' ) ) {
|
362 |
+
wrap = node;
|
363 |
+
} else if ( node.nodeName === 'IMG' || node.nodeName === 'DT' || node.nodeName === 'A' ) {
|
364 |
+
wrap = editor.dom.getParent( node, 'div.ecwid-store-wrap' );
|
365 |
+
}
|
366 |
+
|
367 |
+
if ( wrap ) {
|
368 |
+
if ( wrap.nextSibling ) {
|
369 |
+
editor.selection.select( wrap.nextSibling );
|
370 |
+
} else if ( wrap.previousSibling ) {
|
371 |
+
editor.selection.select( wrap.previousSibling );
|
372 |
+
} else {
|
373 |
+
editor.selection.select( wrap.parentNode );
|
374 |
+
}
|
375 |
+
|
376 |
+
editor.selection.collapse( true );
|
377 |
+
editor.nodeChanged();
|
378 |
+
editor.dom.remove( wrap );
|
379 |
+
} else {
|
380 |
+
editor.dom.remove( node );
|
381 |
+
}
|
382 |
+
removeToolbar();
|
383 |
+
|
384 |
+
editor.dom.remove(editor.dom.select('#ecwid-edit-store-button'));
|
385 |
+
}
|
386 |
+
|
387 |
+
function addToolbar( node ) {
|
388 |
+
var rectangle, toolbarHtml, toolbar, left,
|
389 |
+
dom = editor.dom;
|
390 |
+
|
391 |
+
removeToolbar(node);
|
392 |
+
|
393 |
+
// Don't add to other images
|
394 |
+
if ( ! node || node.nodeName !== 'IMG' || node.className.indexOf('ecwid-store-editor') == -1 ) {
|
395 |
+
return;
|
396 |
+
}
|
397 |
+
|
398 |
+
dom.setAttrib( node, 'data-ecwid-store-select', 1 );
|
399 |
+
rectangle = dom.getRect( node );
|
400 |
+
|
401 |
+
toolbarHtml = '<div class="dashicons dashicons-no-alt remove" data-mce-bogus="1"></div>';
|
402 |
+
|
403 |
+
toolbar = dom.create( 'div', {
|
404 |
+
'id': 'ecwid-store-toolbar',
|
405 |
+
'data-mce-bogus': '1',
|
406 |
+
'contenteditable': false
|
407 |
+
}, toolbarHtml );
|
408 |
+
|
409 |
+
if ( editor.rtl ) {
|
410 |
+
left = rectangle.x + rectangle.w - 82;
|
411 |
+
} else {
|
412 |
+
left = rectangle.x;
|
413 |
+
}
|
414 |
+
|
415 |
+
editor.getBody().appendChild( toolbar );
|
416 |
+
dom.setStyles( toolbar, {
|
417 |
+
top: rectangle.y,
|
418 |
+
left: left
|
419 |
+
});
|
420 |
+
|
421 |
+
toolbarActive = true;
|
422 |
+
}
|
423 |
+
|
424 |
+
this.addToolbar = function() {
|
425 |
+
addToolbar(
|
426 |
+
jQuery(editor.dom.doc.body).find('.ecwid-store-editor').get(0)
|
427 |
+
);
|
428 |
+
}
|
429 |
+
|
430 |
+
function removeToolbar(parentNode) {
|
431 |
+
|
432 |
+
if (parentNode && editor.dom.getAttrib( parentNode, 'class') == 'ecwid-store-editor' ) {
|
433 |
+
var toolbar = editor.dom.get( 'wp-image-toolbar' );
|
434 |
+
if ( toolbar ) {
|
435 |
+
editor.dom.remove( toolbar );
|
436 |
+
}
|
437 |
+
}
|
438 |
+
|
439 |
+
var toolbar = editor.dom.get( 'ecwid-store-toolbar' );
|
440 |
+
if ( toolbar ) {
|
441 |
+
editor.dom.remove( toolbar );
|
442 |
+
}
|
443 |
+
|
444 |
+
// also remove image toolbar
|
445 |
+
|
446 |
+
editor.dom.setAttrib( editor.dom.select( 'img[data-ecwid-store-select]' ), 'data-ecwid-store-select', null );
|
447 |
+
|
448 |
+
toolbarActive = false;
|
449 |
+
}
|
450 |
+
|
451 |
+
editor.onInit.add(function(editor) {
|
452 |
+
|
453 |
+
dom = editor.dom;
|
454 |
+
dom.bind( editor.getDoc(), 'dragstart', function( event ) {
|
455 |
+
var node = editor.selection.getNode();
|
456 |
+
|
457 |
+
// Prevent dragging images out of the caption elements
|
458 |
+
if ( node.nodeName === 'IMG' && dom.getParent( node, '.wp-caption' ) ) {
|
459 |
+
event.preventDefault();
|
460 |
+
}
|
461 |
+
|
462 |
+
// Remove toolbar to avoid an orphaned toolbar when dragging an image to a new location
|
463 |
+
removeToolbar();
|
464 |
+
});
|
465 |
+
});
|
466 |
+
|
467 |
+
editor.onKeyUp.add( function( editor, event ) {
|
468 |
+
var node, wrap, P, spacer,
|
469 |
+
selection = editor.selection,
|
470 |
+
keyCode = event.keyCode,
|
471 |
+
dom = editor.dom;
|
472 |
+
|
473 |
+
if ( keyCode === 46 || keyCode === 8 ) {
|
474 |
+
checkEcwid();
|
475 |
+
}
|
476 |
+
});
|
477 |
+
|
478 |
+
editor.onKeyDown.add( function( editor, event ) {
|
479 |
+
var node, wrap, P, spacer,
|
480 |
+
selection = editor.selection,
|
481 |
+
keyCode = event.keyCode,
|
482 |
+
dom = editor.dom;
|
483 |
+
|
484 |
+
if ( keyCode == 27 ) {
|
485 |
+
jQuery('#ecwid-store-popup-content').removeClass('open');
|
486 |
+
return false;
|
487 |
+
}
|
488 |
+
|
489 |
+
if ( keyCode === 46 || keyCode === 8 ) {
|
490 |
+
node = selection.getNode();
|
491 |
+
|
492 |
+
if ( node.nodeName === 'DIV' && dom.hasClass( node, 'ecwid-store-wrap' ) ) {
|
493 |
+
wrap = node;
|
494 |
+
} else if ( node.nodeName === 'IMG' ) {
|
495 |
+
wrap = dom.getParent( node, 'div.ecwid-store-wrap' );
|
496 |
+
}
|
497 |
+
|
498 |
+
if ( wrap ) {
|
499 |
+
dom.events.cancel( event );
|
500 |
+
removeImage( node );
|
501 |
+
editor.dom.remove(editor.dom.select('#ecwid-edit-store-button'));
|
502 |
+
|
503 |
+
return false;
|
504 |
+
}
|
505 |
+
|
506 |
+
removeToolbar();
|
507 |
+
}
|
508 |
+
|
509 |
+
// Key presses will replace the image so we need to remove the toolbar
|
510 |
+
if ( toolbarActive ) {
|
511 |
+
if ( event.ctrlKey || event.metaKey || event.altKey ||
|
512 |
+
( keyCode < 48 && keyCode > 90 ) || keyCode > 186 ) {
|
513 |
+
return;
|
514 |
+
}
|
515 |
+
|
516 |
+
removeToolbar();
|
517 |
+
editor.dom.remove(editor.dom.select('#ecwid-edit-store-button'));
|
518 |
+
|
519 |
+
}
|
520 |
+
|
521 |
+
});
|
522 |
+
|
523 |
+
editor.onMouseDown.add( function( editor, event ) {
|
524 |
+
if ( editor.dom.getParent( event.target, '#ecwid-store-toolbar' ) ) {
|
525 |
+
if ( tinymce.Env.ie ) {
|
526 |
+
// Stop IE > 8 from making the wrapper resizable on mousedown
|
527 |
+
event.preventDefault();
|
528 |
+
}
|
529 |
+
} else if ( event.target.nodeName !== 'IMG' ) {
|
530 |
+
removeToolbar();
|
531 |
+
}
|
532 |
+
});
|
533 |
+
|
534 |
+
editor.onMouseUp.add( function( editor, event ) {
|
535 |
+
var image,
|
536 |
+
node = event.target,
|
537 |
+
dom = editor.dom;
|
538 |
+
|
539 |
+
// Don't trigger on right-click
|
540 |
+
if ( event.button && event.button > 1 ) {
|
541 |
+
return;
|
542 |
+
}
|
543 |
+
|
544 |
+
if ( node.nodeName === 'DIV' && dom.getParent( node, '#ecwid-store-toolbar' ) ) {
|
545 |
+
image = dom.select( 'img[data-ecwid-store-select]' )[0];
|
546 |
+
|
547 |
+
if ( image ) {
|
548 |
+
editor.selection.select( image );
|
549 |
+
|
550 |
+
if ( dom.hasClass( node, 'remove' ) ) {
|
551 |
+
removeImage( image );
|
552 |
+
} else if ( dom.hasClass( node, 'edit' ) ) {
|
553 |
+
editStore( image );
|
554 |
+
}
|
555 |
+
}
|
556 |
+
} else if ( node.nodeName === 'IMG' && ! editor.dom.getAttrib( node, 'data-ecwid-store-select' ) ) {
|
557 |
+
addToolbar( node );
|
558 |
+
} else if ( node.nodeName !== 'IMG' ) {
|
559 |
+
removeToolbar();
|
560 |
+
}
|
561 |
+
});
|
562 |
+
|
563 |
+
// Replace Read More/Next Page tags with images
|
564 |
+
editor.onBeforeSetContent.add( function( editor, e ) {
|
565 |
+
if ( e.content ) {
|
566 |
+
|
567 |
+
found = ecwid_get_store_shortcode(e.content);
|
568 |
+
|
569 |
+
if (!found) return;
|
570 |
+
|
571 |
+
var content = e.content;
|
572 |
+
|
573 |
+
var store = '<img height="200" width="100%" data-ecwid-shortcode="' + window.encodeURIComponent(found.content) + '" src="' + ecwid_store_svg + '" data-mce-placeholder="true" data-mce-resize="false" class="ecwid-store-editor mceItem">';
|
574 |
+
|
575 |
+
e.content = e.content.substr(0, found.index) + store + e.content.substr(found.index + found.content.length);
|
576 |
+
}
|
577 |
+
});
|
578 |
+
|
579 |
+
// Replace images with tags
|
580 |
+
editor.onPostProcess.add( function( editor, e ) {
|
581 |
+
|
582 |
+
if ( e.get ) {
|
583 |
+
|
584 |
+
return e.content = e.content.replace( /(<img [^>]*data-ecwid-shortcode=[^>]+>)/g, function( match, image ) {
|
585 |
+
|
586 |
+
var data = window.decodeURIComponent(jQuery(image).attr('data-ecwid-shortcode'));
|
587 |
+
|
588 |
+
if ( data ) {
|
589 |
+
return data;
|
590 |
+
}
|
591 |
+
|
592 |
+
return match;
|
593 |
+
});
|
594 |
+
}
|
595 |
+
});
|
596 |
});
|
js/store-editor-page.js
CHANGED
@@ -1,352 +1,353 @@
|
|
1 |
-
jQuery(document).ready(function() {
|
2 |
-
$popup = jQuery('#ecwid-store-popup-content');
|
3 |
-
|
4 |
-
/*
|
5 |
-
* Media buttons handlers
|
6 |
-
*/
|
7 |
-
jQuery('#update-ecwid-button,#insert-ecwid-button').click(ecwid_open_store_popup);
|
8 |
-
|
9 |
-
/*
|
10 |
-
* Close button handler
|
11 |
-
*/
|
12 |
-
jQuery('.media-modal-close', $popup).click(function() {
|
13 |
-
$popup.removeClass('open');
|
14 |
-
return false;
|
15 |
-
});
|
16 |
-
|
17 |
-
jQuery(document).keydown(function(e) {
|
18 |
-
if (e.keyCode == 27 && $popup.hasClass('open')) {
|
19 |
-
$popup.removeClass('open');
|
20 |
-
return false;
|
21 |
-
}
|
22 |
-
});
|
23 |
-
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Builds params object from the wp.shortcode
|
27 |
-
*
|
28 |
-
* @param shortcode
|
29 |
-
* @returns {*}
|
30 |
-
*/
|
31 |
-
buildParams = function(shortcode) {
|
32 |
-
if (!shortcode) return {};
|
33 |
-
|
34 |
-
var attributes = jQuery.extend({}, shortcode.shortcode.attrs.named);
|
35 |
-
|
36 |
-
if (jQuery.inArray(attributes.category_view, ['grid', 'list', 'table']) == -1) {
|
37 |
-
attributes.category_view = undefined;
|
38 |
-
}
|
39 |
-
|
40 |
-
if (!jQuery.inArray(attributes.search_view, ['grid', 'list', 'table']) == -1) {
|
41 |
-
attributes.search_view = undefined;
|
42 |
-
}
|
43 |
-
|
44 |
-
if (!attributes.grid || attributes.grid.match(/^\d+,\d+$/) === null) {
|
45 |
-
attributes.grid = '3,3';
|
46 |
-
}
|
47 |
-
|
48 |
-
var grid = attributes.grid.match(/^(\d+),(\d+)/);
|
49 |
-
attributes.grid_rows = grid[1];
|
50 |
-
attributes.grid_columns = grid[2];
|
51 |
-
|
52 |
-
for (var i in {'categories_per_row': 3, 'list': 10, 'table': 20, 'grid_rows': 3, 'grid_columns': 3, 'default_category_id': 0}) {
|
53 |
-
parsed = parseInt(attributes[i]);
|
54 |
-
if (isNaN(parsed) || parsed < 0) {
|
55 |
-
attributes[i] = undefined;
|
56 |
-
}
|
57 |
-
}
|
58 |
-
|
59 |
-
var widgets = attributes.widgets.split(/[^a-z^A-Z^0-9^-^_]/);
|
60 |
-
|
61 |
-
return {
|
62 |
-
'show_search': jQuery.inArray('search', widgets) != -1,
|
63 |
-
'show_categories': jQuery.inArray('categories', widgets) != -1,
|
64 |
-
'show_minicart': jQuery.inArray('minicart', widgets) != -1,
|
65 |
-
'categories_per_row': attributes.categories_per_row,
|
66 |
-
'category_view': attributes.category_view,
|
67 |
-
'search_view': attributes.search_view,
|
68 |
-
'list_rows': attributes.list,
|
69 |
-
'table_rows': attributes.table,
|
70 |
-
'grid_rows': grid[1],
|
71 |
-
'grid_columns': grid[2],
|
72 |
-
'default_category_id': attributes.default_category_id,
|
73 |
-
'minicart_layout': 'attachToCategories'
|
74 |
-
};
|
75 |
-
|
76 |
-
}
|
77 |
-
|
78 |
-
|
79 |
-
/*
|
80 |
-
* Returns default parameters object
|
81 |
-
*/
|
82 |
-
getDefaultParams = function() {
|
83 |
-
return {
|
84 |
-
'show_search': true,
|
85 |
-
'show_minicart': true,
|
86 |
-
'show_categories': true,
|
87 |
-
'categories_per_row': 3,
|
88 |
-
'grid_rows': 3,
|
89 |
-
'grid_columns': 3,
|
90 |
-
'table_rows': 20,
|
91 |
-
'list_rows': 10,
|
92 |
-
'default_category_id': 0,
|
93 |
-
'category_view': 'grid',
|
94 |
-
'search_view': 'list',
|
95 |
-
'minicart_layout': 'MiniAttachToProductBrowser'
|
96 |
-
}
|
97 |
-
}
|
98 |
-
|
99 |
-
/*
|
100 |
-
* Tests whether there is a valid store shortcode
|
101 |
-
*/
|
102 |
-
checkEcwid = function() {
|
103 |
-
|
104 |
-
var hasEcwid = false;
|
105 |
-
if (tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden()) {
|
106 |
-
content = tinyMCE.activeEditor.getBody();
|
107 |
-
|
108 |
-
hasEcwid = jQuery(content).find('.ecwid-store-editor').length > 0;
|
109 |
-
} else {
|
110 |
-
hasEcwid = ecwid_get_store_shortcode(jQuery('#content').val());
|
111 |
-
}
|
112 |
-
|
113 |
-
if (hasEcwid) {
|
114 |
-
jQuery('.wp-media-buttons').addClass('has-ecwid');
|
115 |
-
} else {
|
116 |
-
jQuery('.wp-media-buttons').removeClass('has-ecwid');
|
117 |
-
}
|
118 |
-
if (tinymce.activeEditor && !tinymce.activeEditor.isHidden()) {
|
119 |
-
var body = tinymce.activeEditor.dom.doc.body;
|
120 |
-
var button = tinymce.activeEditor.dom.select('#ecwid-edit-store-button');
|
121 |
-
|
122 |
-
if (hasEcwid && button.length == 0) {
|
123 |
-
var button = jQuery('<input type="button" id="ecwid-edit-store-button" contenteditable="false" data-mce-bogus="true" value="' + ecwid_i18n.edit_store_appearance + '" />')
|
124 |
-
.appendTo(body);
|
125 |
-
|
126 |
-
button.click(ecwid_open_store_popup);
|
127 |
-
} else if (!hasEcwid && button.length > 0) {
|
128 |
-
tinymce.activeEditor.dom.remove(button);
|
129 |
-
}
|
130 |
-
|
131 |
-
if (hasEcwid) {
|
132 |
-
var store = jQuery(body).find('.ecwid-store-editor');
|
133 |
-
var button = jQuery('#ecwid-edit-store-button', body);
|
134 |
-
|
135 |
-
var width = this.buttonWidth;
|
136 |
-
if (!width) {
|
137 |
-
width = button.outerWidth();
|
138 |
-
this.buttonWidth = width;
|
139 |
-
}
|
140 |
-
button.css({
|
141 |
-
'position': 'absolute',
|
142 |
-
'top': '' + (store.offset().top + 168) + 'px',
|
143 |
-
'left': '' + (store.offset().left + store.outerWidth() / 2 - width / 2 - 2) + 'px'
|
144 |
-
});
|
145 |
-
}
|
146 |
-
|
147 |
-
jQuery('#wp_editbtns').css('display', 'none !important');
|
148 |
-
}
|
149 |
-
|
150 |
-
if (window.location.search.indexOf('show-ecwid=true') != -1 && typeof this.show_ecwid_processed == 'undefined') {
|
151 |
-
ecwid_open_store_popup();
|
152 |
-
this.show_ecwid_processed = true;
|
153 |
-
|
154 |
-
if (tinymce.activeEditor) {
|
155 |
-
tinymce.activeEditor.plugins.ecwid.addToolbar();
|
156 |
-
}
|
157 |
-
}
|
158 |
-
}
|
159 |
-
|
160 |
-
setInterval(checkEcwid, 1000);
|
161 |
-
|
162 |
-
jQuery('#content-tmce').click(function() {
|
163 |
-
checkEcwid()
|
164 |
-
});
|
165 |
-
/*
|
166 |
-
* Handles media modal menus
|
167 |
-
*/
|
168 |
-
jQuery('.media-menu-item', $popup).click(function() {
|
169 |
-
jQuery('.media-menu .media-menu-item', $popup).removeClass('active');
|
170 |
-
jQuery(this).addClass('active');
|
171 |
-
|
172 |
-
jQuery('.media-modal-content', $popup).attr('data-active-dialog', jQuery(this).attr('data-content'));
|
173 |
-
jQuery('.media-menu').removeClass('visible');
|
174 |
-
return false;
|
175 |
-
});
|
176 |
-
|
177 |
-
jQuery('h1', $popup).click(function() {
|
178 |
-
jQuery('.media-menu').toggleClass('visible');
|
179 |
-
})
|
180 |
-
|
181 |
-
/*
|
182 |
-
* Main button click
|
183 |
-
*/
|
184 |
-
jQuery('.button-primary', $popup).click(function() {
|
185 |
-
|
186 |
-
var result = {}, defaults = getDefaultParams();
|
187 |
-
|
188 |
-
result.widgets = 'productbrowser';
|
189 |
-
for (var i in {search:1, categories:1, minicart:1}) {
|
190 |
-
if (jQuery('input[name=show_' + i + ']').prop('checked')) {
|
191 |
-
result.widgets += ' ' + i;
|
192 |
-
}
|
193 |
-
}
|
194 |
-
|
195 |
-
getNumber = function(name, fallback) {
|
196 |
-
var value = parseInt(jQuery('[name=' + name + ']', $popup).val());
|
197 |
-
|
198 |
-
if (isNaN(value) || value < 0) {
|
199 |
-
value = fallback;
|
200 |
-
}
|
201 |
-
|
202 |
-
return value;
|
203 |
-
}
|
204 |
-
|
205 |
-
getString = function(name, values, fallback) {
|
206 |
-
var value = jQuery('[name=' + name + ']', $popup).val();
|
207 |
-
|
208 |
-
if (jQuery.inArray(value, values) == -1) {
|
209 |
-
value = fallback;
|
210 |
-
}
|
211 |
-
|
212 |
-
return value;
|
213 |
-
}
|
214 |
-
|
215 |
-
result.categories_per_row = getNumber('categories_per_row', defaults.categories_per_row);
|
216 |
-
result.grid = getNumber('grid_rows', defaults.grid_rows) + ',' + getNumber('grid_columns', defaults.grid_columns);
|
217 |
-
result.list = getNumber('list_rows', defaults.list_rows);
|
218 |
-
result.table = getNumber('table_rows', defaults.table_rows);
|
219 |
-
result.default_category_id = getNumber('default_category_id', defaults.default_category_id);
|
220 |
-
result.category_view = getString('category_view', ['list', 'grid', 'table'], defaults.category_view);
|
221 |
-
result.search_view = getString('search_view', ['list', 'grid', 'table'], defaults.search_view);
|
222 |
-
result.minicart_layout = defaults.minicart_layout;
|
223 |
-
|
224 |
-
|
225 |
-
var existingShortcode = ecwid_get_store_shortcode(jQuery('#content').val());
|
226 |
-
var shortcode = {};
|
227 |
-
if (!existingShortcode) {
|
228 |
-
shortcode.shortcode = new wp.shortcode();
|
229 |
-
shortcode.shortcode.tag = 'ecwid';
|
230 |
-
shortcode.shortcode.type = 'single';
|
231 |
-
} else {
|
232 |
-
shortcode = existingShortcode;
|
233 |
-
}
|
234 |
-
|
235 |
-
for (var i in result) {
|
236 |
-
shortcode.shortcode.attrs.named[i] = result[i];
|
237 |
-
}
|
238 |
-
|
239 |
-
if (existingShortcode) {
|
240 |
-
jQuery('#content').val(
|
241 |
-
jQuery('#content').val().replace(existingShortcode.content, shortcode.shortcode.string())
|
242 |
-
);
|
243 |
-
if (tinyMCE.activeEditor) {
|
244 |
-
jQuery(tinymce.activeEditor.getBody()).find('.ecwid-store-editor').attr('data-ecwid-shortcode', shortcode.shortcode.string());
|
245 |
-
}
|
246 |
-
} else {
|
247 |
-
|
248 |
-
if (tinymce.activeEditor && !tinymce.activeEditor.isHidden()) {
|
249 |
-
tinymce.activeEditor.execCommand('mceInsertContent', false, shortcode.shortcode.string());
|
250 |
-
tinymce.activeEditor.execCommand('mceSetContent', false, tinymce.activeEditor.getBody().innerHTML);
|
251 |
-
} else {
|
252 |
-
|
253 |
-
getCursorPosition = function(el) {
|
254 |
-
var pos = 0;
|
255 |
-
if('selectionStart' in el) {
|
256 |
-
pos = el.selectionStart;
|
257 |
-
} else if('selection' in document) {
|
258 |
-
el.focus();
|
259 |
-
var Sel = document.selection.createRange();
|
260 |
-
var SelLength = document.selection.createRange().text.length;
|
261 |
-
Sel.moveStart('character', -el.value.length);
|
262 |
-
pos = Sel.text.length - SelLength;
|
263 |
-
}
|
264 |
-
return pos;
|
265 |
-
}
|
266 |
-
|
267 |
-
var el = jQuery('#content');
|
268 |
-
var cursorPosition = getCursorPosition(el.get(0));
|
269 |
-
|
270 |
-
el.val(el.val().substr(0, cursorPosition) + shortcode.shortcode.string() + el.val().substr(cursorPosition));
|
271 |
-
|
272 |
-
}
|
273 |
-
}
|
274 |
-
|
275 |
-
|
276 |
-
jQuery('#ecwid-store-popup-content').removeClass('open');
|
277 |
-
});
|
278 |
-
|
279 |
-
updatePreview = function() {
|
280 |
-
jQuery('.store-settings input[type=checkbox]', $popup).each(function(idx, el) {
|
281 |
-
var widget = jQuery(el).parent().attr('data-ecwid-widget');
|
282 |
-
var preview = jQuery('.store-settings-preview svg path.' + widget, $popup);
|
283 |
-
if (jQuery(el).prop('checked')) {
|
284 |
-
jQuery('.store-settings-wrapper').addClass('ecwid-' + widget);
|
285 |
-
} else {
|
286 |
-
jQuery('.store-settings-wrapper').removeClass('ecwid-' + widget);
|
287 |
-
}
|
288 |
-
});
|
289 |
-
}
|
290 |
-
|
291 |
-
jQuery('.store-settings-wrapper label', $popup).hover(
|
292 |
-
function() {
|
293 |
-
jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', jQuery(this).attr('data-ecwid-widget'));
|
294 |
-
},
|
295 |
-
function() {
|
296 |
-
jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', '');
|
297 |
-
}
|
298 |
-
);
|
299 |
-
|
300 |
-
jQuery('.store-settings input[type=checkbox]', $popup).change(updatePreview);
|
301 |
-
});
|
302 |
-
|
303 |
-
ecwid_open_store_popup = function() {
|
304 |
-
|
305 |
-
var shortcode;
|
306 |
-
|
307 |
-
if (tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden()) {
|
308 |
-
tinyMCE.activeEditor.save();
|
309 |
-
|
310 |
-
var content = jQuery(tinyMCE.activeEditor.getBody())
|
311 |
-
.find('.ecwid-store-editor')
|
312 |
-
.attr('data-ecwid-shortcode');
|
313 |
-
|
314 |
-
var shortcode = ecwid_get_store_shortcode(window.decodeURIComponent(content));
|
315 |
-
} else {
|
316 |
-
shortcode = ecwid_get_store_shortcode(jQuery('#content').val());
|
317 |
-
}
|
318 |
-
|
319 |
-
$popup.addClass('open');
|
320 |
-
|
321 |
-
params = {};
|
322 |
-
jQuery.extend(params, getDefaultParams(), buildParams(shortcode));
|
323 |
-
|
324 |
-
for (var i in params) {
|
325 |
-
var el = jQuery('[name=' + i + ']', $popup);
|
326 |
-
if (el.attr('type') == 'checkbox') {
|
327 |
-
el.prop('checked', params[i]);
|
328 |
-
} else {
|
329 |
-
el.val(params[i]);
|
330 |
-
}
|
331 |
-
}
|
332 |
-
|
333 |
-
// mode determines whether it is a new store or not, and active dialog is the current tab
|
334 |
-
// in other words, mode = [add-store,store-settings] and active dialog is [add-store|store-settings, appearance]
|
335 |
-
// buttons and menu items are for mode, current title and content are for dialog
|
336 |
-
var current = !shortcode ? 'add-store' : 'store-settings';
|
337 |
-
jQuery('.media-modal-content', $popup).attr('data-mode', current);
|
338 |
-
jQuery('.media-modal-content', $popup).attr('data-active-dialog', current);
|
339 |
-
jQuery('.media-menu-item')
|
340 |
-
.removeClass('active')
|
341 |
-
.filter('[data-content=' + current + ']').addClass('active');
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
tinyMCE.activeEditor.
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
|
1 |
+
jQuery(document).ready(function() {
|
2 |
+
$popup = jQuery('#ecwid-store-popup-content');
|
3 |
+
|
4 |
+
/*
|
5 |
+
* Media buttons handlers
|
6 |
+
*/
|
7 |
+
jQuery('#update-ecwid-button,#insert-ecwid-button').click(ecwid_open_store_popup);
|
8 |
+
|
9 |
+
/*
|
10 |
+
* Close button handler
|
11 |
+
*/
|
12 |
+
jQuery('.media-modal-close', $popup).click(function() {
|
13 |
+
$popup.removeClass('open');
|
14 |
+
return false;
|
15 |
+
});
|
16 |
+
|
17 |
+
jQuery(document).keydown(function(e) {
|
18 |
+
if (e.keyCode == 27 && $popup.hasClass('open')) {
|
19 |
+
$popup.removeClass('open');
|
20 |
+
return false;
|
21 |
+
}
|
22 |
+
});
|
23 |
+
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Builds params object from the wp.shortcode
|
27 |
+
*
|
28 |
+
* @param shortcode
|
29 |
+
* @returns {*}
|
30 |
+
*/
|
31 |
+
buildParams = function(shortcode) {
|
32 |
+
if (!shortcode) return {};
|
33 |
+
|
34 |
+
var attributes = jQuery.extend({}, shortcode.shortcode.attrs.named);
|
35 |
+
|
36 |
+
if (jQuery.inArray(attributes.category_view, ['grid', 'list', 'table']) == -1) {
|
37 |
+
attributes.category_view = undefined;
|
38 |
+
}
|
39 |
+
|
40 |
+
if (!jQuery.inArray(attributes.search_view, ['grid', 'list', 'table']) == -1) {
|
41 |
+
attributes.search_view = undefined;
|
42 |
+
}
|
43 |
+
|
44 |
+
if (!attributes.grid || attributes.grid.match(/^\d+,\d+$/) === null) {
|
45 |
+
attributes.grid = '3,3';
|
46 |
+
}
|
47 |
+
|
48 |
+
var grid = attributes.grid.match(/^(\d+),(\d+)/);
|
49 |
+
attributes.grid_rows = grid[1];
|
50 |
+
attributes.grid_columns = grid[2];
|
51 |
+
|
52 |
+
for (var i in {'categories_per_row': 3, 'list': 10, 'table': 20, 'grid_rows': 3, 'grid_columns': 3, 'default_category_id': 0}) {
|
53 |
+
parsed = parseInt(attributes[i]);
|
54 |
+
if (isNaN(parsed) || parsed < 0) {
|
55 |
+
attributes[i] = undefined;
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
var widgets = attributes.widgets.split(/[^a-z^A-Z^0-9^-^_]/);
|
60 |
+
|
61 |
+
return {
|
62 |
+
'show_search': jQuery.inArray('search', widgets) != -1,
|
63 |
+
'show_categories': jQuery.inArray('categories', widgets) != -1,
|
64 |
+
'show_minicart': jQuery.inArray('minicart', widgets) != -1,
|
65 |
+
'categories_per_row': attributes.categories_per_row,
|
66 |
+
'category_view': attributes.category_view,
|
67 |
+
'search_view': attributes.search_view,
|
68 |
+
'list_rows': attributes.list,
|
69 |
+
'table_rows': attributes.table,
|
70 |
+
'grid_rows': grid[1],
|
71 |
+
'grid_columns': grid[2],
|
72 |
+
'default_category_id': attributes.default_category_id,
|
73 |
+
'minicart_layout': 'attachToCategories'
|
74 |
+
};
|
75 |
+
|
76 |
+
}
|
77 |
+
|
78 |
+
|
79 |
+
/*
|
80 |
+
* Returns default parameters object
|
81 |
+
*/
|
82 |
+
getDefaultParams = function() {
|
83 |
+
return {
|
84 |
+
'show_search': true,
|
85 |
+
'show_minicart': true,
|
86 |
+
'show_categories': true,
|
87 |
+
'categories_per_row': 3,
|
88 |
+
'grid_rows': 3,
|
89 |
+
'grid_columns': 3,
|
90 |
+
'table_rows': 20,
|
91 |
+
'list_rows': 10,
|
92 |
+
'default_category_id': 0,
|
93 |
+
'category_view': 'grid',
|
94 |
+
'search_view': 'list',
|
95 |
+
'minicart_layout': 'MiniAttachToProductBrowser'
|
96 |
+
}
|
97 |
+
}
|
98 |
+
|
99 |
+
/*
|
100 |
+
* Tests whether there is a valid store shortcode
|
101 |
+
*/
|
102 |
+
checkEcwid = function() {
|
103 |
+
|
104 |
+
var hasEcwid = false;
|
105 |
+
if (tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden()) {
|
106 |
+
content = tinyMCE.activeEditor.getBody();
|
107 |
+
|
108 |
+
hasEcwid = jQuery(content).find('.ecwid-store-editor').length > 0;
|
109 |
+
} else {
|
110 |
+
hasEcwid = ecwid_get_store_shortcode(jQuery('#content').val());
|
111 |
+
}
|
112 |
+
|
113 |
+
if (hasEcwid) {
|
114 |
+
jQuery('.wp-media-buttons').addClass('has-ecwid');
|
115 |
+
} else {
|
116 |
+
jQuery('.wp-media-buttons').removeClass('has-ecwid');
|
117 |
+
}
|
118 |
+
if (tinymce.activeEditor && !tinymce.activeEditor.isHidden()) {
|
119 |
+
var body = tinymce.activeEditor.dom.doc.body;
|
120 |
+
var button = tinymce.activeEditor.dom.select('#ecwid-edit-store-button');
|
121 |
+
|
122 |
+
if (hasEcwid && button.length == 0) {
|
123 |
+
var button = jQuery('<input type="button" id="ecwid-edit-store-button" contenteditable="false" data-mce-bogus="true" value="' + ecwid_i18n.edit_store_appearance + '" />')
|
124 |
+
.appendTo(body);
|
125 |
+
|
126 |
+
button.click(ecwid_open_store_popup);
|
127 |
+
} else if (!hasEcwid && button.length > 0) {
|
128 |
+
tinymce.activeEditor.dom.remove(button);
|
129 |
+
}
|
130 |
+
|
131 |
+
if (hasEcwid) {
|
132 |
+
var store = jQuery(body).find('.ecwid-store-editor');
|
133 |
+
var button = jQuery('#ecwid-edit-store-button', body);
|
134 |
+
|
135 |
+
var width = this.buttonWidth;
|
136 |
+
if (!width) {
|
137 |
+
width = button.outerWidth();
|
138 |
+
this.buttonWidth = width;
|
139 |
+
}
|
140 |
+
button.css({
|
141 |
+
'position': 'absolute',
|
142 |
+
'top': '' + (store.offset().top + 168) + 'px',
|
143 |
+
'left': '' + (store.offset().left + store.outerWidth() / 2 - width / 2 - 2) + 'px'
|
144 |
+
});
|
145 |
+
}
|
146 |
+
|
147 |
+
jQuery('#wp_editbtns').css('display', 'none !important');
|
148 |
+
}
|
149 |
+
|
150 |
+
if (window.location.search.indexOf('show-ecwid=true') != -1 && typeof this.show_ecwid_processed == 'undefined') {
|
151 |
+
ecwid_open_store_popup();
|
152 |
+
this.show_ecwid_processed = true;
|
153 |
+
|
154 |
+
if (tinymce.activeEditor) {
|
155 |
+
tinymce.activeEditor.plugins.ecwid.addToolbar();
|
156 |
+
}
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
+
setInterval(checkEcwid, 1000);
|
161 |
+
|
162 |
+
jQuery('#content-tmce').click(function() {
|
163 |
+
checkEcwid()
|
164 |
+
});
|
165 |
+
/*
|
166 |
+
* Handles media modal menus
|
167 |
+
*/
|
168 |
+
jQuery('.media-menu-item', $popup).click(function() {
|
169 |
+
jQuery('.media-menu .media-menu-item', $popup).removeClass('active');
|
170 |
+
jQuery(this).addClass('active');
|
171 |
+
|
172 |
+
jQuery('.media-modal-content', $popup).attr('data-active-dialog', jQuery(this).attr('data-content'));
|
173 |
+
jQuery('.media-menu').removeClass('visible');
|
174 |
+
return false;
|
175 |
+
});
|
176 |
+
|
177 |
+
jQuery('h1', $popup).click(function() {
|
178 |
+
jQuery('.media-menu').toggleClass('visible');
|
179 |
+
})
|
180 |
+
|
181 |
+
/*
|
182 |
+
* Main button click
|
183 |
+
*/
|
184 |
+
jQuery('.button-primary', $popup).click(function() {
|
185 |
+
|
186 |
+
var result = {}, defaults = getDefaultParams();
|
187 |
+
|
188 |
+
result.widgets = 'productbrowser';
|
189 |
+
for (var i in {search:1, categories:1, minicart:1}) {
|
190 |
+
if (jQuery('input[name=show_' + i + ']').prop('checked')) {
|
191 |
+
result.widgets += ' ' + i;
|
192 |
+
}
|
193 |
+
}
|
194 |
+
|
195 |
+
getNumber = function(name, fallback) {
|
196 |
+
var value = parseInt(jQuery('[name=' + name + ']', $popup).val());
|
197 |
+
|
198 |
+
if (isNaN(value) || value < 0) {
|
199 |
+
value = fallback;
|
200 |
+
}
|
201 |
+
|
202 |
+
return value;
|
203 |
+
}
|
204 |
+
|
205 |
+
getString = function(name, values, fallback) {
|
206 |
+
var value = jQuery('[name=' + name + ']', $popup).val();
|
207 |
+
|
208 |
+
if (jQuery.inArray(value, values) == -1) {
|
209 |
+
value = fallback;
|
210 |
+
}
|
211 |
+
|
212 |
+
return value;
|
213 |
+
}
|
214 |
+
|
215 |
+
result.categories_per_row = getNumber('categories_per_row', defaults.categories_per_row);
|
216 |
+
result.grid = getNumber('grid_rows', defaults.grid_rows) + ',' + getNumber('grid_columns', defaults.grid_columns);
|
217 |
+
result.list = getNumber('list_rows', defaults.list_rows);
|
218 |
+
result.table = getNumber('table_rows', defaults.table_rows);
|
219 |
+
result.default_category_id = getNumber('default_category_id', defaults.default_category_id);
|
220 |
+
result.category_view = getString('category_view', ['list', 'grid', 'table'], defaults.category_view);
|
221 |
+
result.search_view = getString('search_view', ['list', 'grid', 'table'], defaults.search_view);
|
222 |
+
result.minicart_layout = defaults.minicart_layout;
|
223 |
+
|
224 |
+
|
225 |
+
var existingShortcode = ecwid_get_store_shortcode(jQuery('#content').val());
|
226 |
+
var shortcode = {};
|
227 |
+
if (!existingShortcode) {
|
228 |
+
shortcode.shortcode = new wp.shortcode();
|
229 |
+
shortcode.shortcode.tag = 'ecwid';
|
230 |
+
shortcode.shortcode.type = 'single';
|
231 |
+
} else {
|
232 |
+
shortcode = existingShortcode;
|
233 |
+
}
|
234 |
+
|
235 |
+
for (var i in result) {
|
236 |
+
shortcode.shortcode.attrs.named[i] = result[i];
|
237 |
+
}
|
238 |
+
|
239 |
+
if (existingShortcode) {
|
240 |
+
jQuery('#content').val(
|
241 |
+
jQuery('#content').val().replace(existingShortcode.content, shortcode.shortcode.string())
|
242 |
+
);
|
243 |
+
if (tinyMCE.activeEditor) {
|
244 |
+
jQuery(tinymce.activeEditor.getBody()).find('.ecwid-store-editor').attr('data-ecwid-shortcode', shortcode.shortcode.string());
|
245 |
+
}
|
246 |
+
} else {
|
247 |
+
|
248 |
+
if (tinymce.activeEditor && !tinymce.activeEditor.isHidden()) {
|
249 |
+
tinymce.activeEditor.execCommand('mceInsertContent', false, shortcode.shortcode.string());
|
250 |
+
tinymce.activeEditor.execCommand('mceSetContent', false, tinymce.activeEditor.getBody().innerHTML);
|
251 |
+
} else {
|
252 |
+
|
253 |
+
getCursorPosition = function(el) {
|
254 |
+
var pos = 0;
|
255 |
+
if('selectionStart' in el) {
|
256 |
+
pos = el.selectionStart;
|
257 |
+
} else if('selection' in document) {
|
258 |
+
el.focus();
|
259 |
+
var Sel = document.selection.createRange();
|
260 |
+
var SelLength = document.selection.createRange().text.length;
|
261 |
+
Sel.moveStart('character', -el.value.length);
|
262 |
+
pos = Sel.text.length - SelLength;
|
263 |
+
}
|
264 |
+
return pos;
|
265 |
+
}
|
266 |
+
|
267 |
+
var el = jQuery('#content');
|
268 |
+
var cursorPosition = getCursorPosition(el.get(0));
|
269 |
+
|
270 |
+
el.val(el.val().substr(0, cursorPosition) + shortcode.shortcode.string() + el.val().substr(cursorPosition));
|
271 |
+
|
272 |
+
}
|
273 |
+
}
|
274 |
+
|
275 |
+
|
276 |
+
jQuery('#ecwid-store-popup-content').removeClass('open');
|
277 |
+
});
|
278 |
+
|
279 |
+
updatePreview = function() {
|
280 |
+
jQuery('.store-settings input[type=checkbox]', $popup).each(function(idx, el) {
|
281 |
+
var widget = jQuery(el).parent().attr('data-ecwid-widget');
|
282 |
+
var preview = jQuery('.store-settings-preview svg path.' + widget, $popup);
|
283 |
+
if (jQuery(el).prop('checked')) {
|
284 |
+
jQuery('.store-settings-wrapper').addClass('ecwid-' + widget);
|
285 |
+
} else {
|
286 |
+
jQuery('.store-settings-wrapper').removeClass('ecwid-' + widget);
|
287 |
+
}
|
288 |
+
});
|
289 |
+
}
|
290 |
+
|
291 |
+
jQuery('.store-settings-wrapper label', $popup).hover(
|
292 |
+
function() {
|
293 |
+
jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', jQuery(this).attr('data-ecwid-widget'));
|
294 |
+
},
|
295 |
+
function() {
|
296 |
+
jQuery('.store-settings-wrapper').attr('data-ecwid-widget-hover', '');
|
297 |
+
}
|
298 |
+
);
|
299 |
+
|
300 |
+
jQuery('.store-settings input[type=checkbox]', $popup).change(updatePreview);
|
301 |
+
});
|
302 |
+
|
303 |
+
ecwid_open_store_popup = function() {
|
304 |
+
|
305 |
+
var shortcode;
|
306 |
+
|
307 |
+
if (tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden()) {
|
308 |
+
tinyMCE.activeEditor.save();
|
309 |
+
|
310 |
+
var content = jQuery(tinyMCE.activeEditor.getBody())
|
311 |
+
.find('.ecwid-store-editor')
|
312 |
+
.attr('data-ecwid-shortcode');
|
313 |
+
|
314 |
+
var shortcode = ecwid_get_store_shortcode(window.decodeURIComponent(content));
|
315 |
+
} else {
|
316 |
+
shortcode = ecwid_get_store_shortcode(jQuery('#content').val());
|
317 |
+
}
|
318 |
+
|
319 |
+
$popup.addClass('open');
|
320 |
+
|
321 |
+
params = {};
|
322 |
+
jQuery.extend(params, getDefaultParams(), buildParams(shortcode));
|
323 |
+
|
324 |
+
for (var i in params) {
|
325 |
+
var el = jQuery('[name=' + i + ']', $popup);
|
326 |
+
if (el.attr('type') == 'checkbox') {
|
327 |
+
el.prop('checked', params[i]);
|
328 |
+
} else {
|
329 |
+
el.val(params[i]);
|
330 |
+
}
|
331 |
+
}
|
332 |
+
|
333 |
+
// mode determines whether it is a new store or not, and active dialog is the current tab
|
334 |
+
// in other words, mode = [add-store,store-settings] and active dialog is [add-store|store-settings, appearance]
|
335 |
+
// buttons and menu items are for mode, current title and content are for dialog
|
336 |
+
var current = !shortcode ? 'add-store' : 'store-settings';
|
337 |
+
jQuery('.media-modal-content', $popup).attr('data-mode', current);
|
338 |
+
jQuery('.media-modal-content', $popup).attr('data-active-dialog', current);
|
339 |
+
jQuery('.media-menu-item')
|
340 |
+
.removeClass('active')
|
341 |
+
.filter('[data-content=' + current + ']').addClass('active');
|
342 |
+
|
343 |
+
ecwid_kissmetrics_record(shortcode ? 'editStoreButtonClick' : 'addStoreButtonClick');
|
344 |
+
|
345 |
+
updatePreview();
|
346 |
+
|
347 |
+
if (tinymce.activeEditor && !tinymce.activeEditor.isHidden()) {
|
348 |
+
tinyMCE.activeEditor.execCommand('SelectAll');
|
349 |
+
tinyMCE.activeEditor.selection.collapse(true);
|
350 |
+
}
|
351 |
+
|
352 |
+
return false;
|
353 |
+
};
|
js/themes/2012.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
Ecwid.OnPageLoaded.add(function() {
|
2 |
-
document.activeElement.blur();
|
3 |
-
jQuery('.nav-menu,.nav-menu *.focus').removeClass('focus');
|
4 |
});
|
1 |
+
Ecwid.OnPageLoaded.add(function() {
|
2 |
+
document.activeElement.blur();
|
3 |
+
jQuery('.nav-menu,.nav-menu *.focus').removeClass('focus');
|
4 |
});
|
js/themes/customizr.js
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
jQuery(document).ready(function() {
|
2 |
-
|
3 |
-
var fixedNav = jQuery('header.tc-header'),
|
4 |
-
ecwid_pb_scroller = jQuery('#ecwid_product_browser_scroller');
|
5 |
-
|
6 |
-
ecwid_pb_scroller.css('top', (- fixedNav.height()) + 'px');
|
7 |
-
|
8 |
-
jQuery(window).scroll(function() {
|
9 |
-
ecwid_pb_scroller.css('top', (- fixedNav.height()) + 'px');
|
10 |
-
});
|
11 |
});
|
1 |
+
jQuery(document).ready(function() {
|
2 |
+
|
3 |
+
var fixedNav = jQuery('header.tc-header'),
|
4 |
+
ecwid_pb_scroller = jQuery('#ecwid_product_browser_scroller');
|
5 |
+
|
6 |
+
ecwid_pb_scroller.css('top', (- fixedNav.height()) + 'px');
|
7 |
+
|
8 |
+
jQuery(window).scroll(function() {
|
9 |
+
ecwid_pb_scroller.css('top', (- fixedNav.height()) + 'px');
|
10 |
+
});
|
11 |
});
|
js/themes/pagelines.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
jQuery(document).ready(function() {
|
2 |
-
var fixedNav = jQuery('#navbar');
|
3 |
-
if (fixedNav.css('position') == 'fixed') {
|
4 |
-
jQuery('#ecwid_product_browser_scroller').css({
|
5 |
-
'position': 'relative',
|
6 |
-
'top': -fixedNav.height()
|
7 |
-
});
|
8 |
-
}
|
9 |
});
|
1 |
+
jQuery(document).ready(function() {
|
2 |
+
var fixedNav = jQuery('#navbar');
|
3 |
+
if (fixedNav.css('position') == 'fixed') {
|
4 |
+
jQuery('#ecwid_product_browser_scroller').css({
|
5 |
+
'position': 'relative',
|
6 |
+
'top': -fixedNav.height()
|
7 |
+
});
|
8 |
+
}
|
9 |
});
|
js/themes/responsive.js
CHANGED
@@ -1,88 +1,88 @@
|
|
1 |
-
(function($) {
|
2 |
-
|
3 |
-
function doDefaultLayout()
|
4 |
-
{
|
5 |
-
$('.ecwid-shopping-cart-search .ecwid-SearchPanel-button').text('');
|
6 |
-
|
7 |
-
$('.ecwid-minicart-mini-rolloverContainer').show();
|
8 |
-
$('.ecwid-shopping-cart-minicart')
|
9 |
-
.css({
|
10 |
-
'top': '2px'
|
11 |
-
})
|
12 |
-
.show();
|
13 |
-
|
14 |
-
var topElement = $('.ecwid-shopping-cart-categories');
|
15 |
-
if (topElement.length == 0) {
|
16 |
-
topElement = $('.ecwid-shopping-cart-product-browser')
|
17 |
-
}
|
18 |
-
if (topElement.length > 0) {
|
19 |
-
$('.ecwid-productBrowser-auth-mini').css({
|
20 |
-
'position': 'absolute',
|
21 |
-
'top': topElement.prop('offsetTop') - 50
|
22 |
-
});
|
23 |
-
|
24 |
-
$('.ecwid-shopping-cart-search').css({
|
25 |
-
'position': 'absolute',
|
26 |
-
'top': topElement.prop('offsetTop') - 50 + 8
|
27 |
-
});
|
28 |
-
|
29 |
-
if (navigator.userAgent.match(/firefox/i)) {
|
30 |
-
$('.ecwid-SearchPanel-button').css('right', '3px');
|
31 |
-
}
|
32 |
-
}
|
33 |
-
|
34 |
-
$('.ecwid-shopping-cart-minicart').css(
|
35 |
-
'margin-right', $('.ecwid-minicart-mini-rolloverContainer').width() - $('.ecwid-shopping-cart-minicart').width()
|
36 |
-
);
|
37 |
-
|
38 |
-
if ($('.ecwid-search-placeholder').length == 0) {
|
39 |
-
$('.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel').after('<div class="ecwid-search-placeholder"></div>');
|
40 |
-
}
|
41 |
-
|
42 |
-
$('.ecwid-search-placeholder').click(function() {
|
43 |
-
$('body').addClass('ecwid-search-open');
|
44 |
-
$('.ecwid-shopping-cart-search .ecwid-SearchPanel-field').focus();
|
45 |
-
});
|
46 |
-
}
|
47 |
-
|
48 |
-
$('body').click(function(e) {
|
49 |
-
if ($('.ecwid-shopping-cart-search').has(e.target).length == 0) {
|
50 |
-
$(this).removeClass('ecwid-search-open');
|
51 |
-
}
|
52 |
-
});
|
53 |
-
|
54 |
-
function doMobileLayout()
|
55 |
-
{
|
56 |
-
$('.ecwid-minicart-mini-rolloverContainer').hide();
|
57 |
-
$('.ecwid-shopping-cart-minicart').hide();
|
58 |
-
$('.ecwid-productBrowser-auth-mini').css({
|
59 |
-
'position': 'inherit',
|
60 |
-
'top': 'auto'
|
61 |
-
});
|
62 |
-
$('.ecwid-shopping-cart-search').css({
|
63 |
-
'position': 'absolute',
|
64 |
-
'top': $('.ecwid-productBrowser').prop('offsetTop') - 50 + 8
|
65 |
-
});
|
66 |
-
}
|
67 |
-
if (typeof Ecwid != 'undefined') {
|
68 |
-
Ecwid.OnPageLoaded.add(function(args) {
|
69 |
-
if ($(window).width() < 650) {
|
70 |
-
doMobileLayout();
|
71 |
-
} else {
|
72 |
-
doDefaultLayout();
|
73 |
-
}
|
74 |
-
});
|
75 |
-
}
|
76 |
-
|
77 |
-
$(window).resize(function() {
|
78 |
-
if ($(window).width() < 650) {
|
79 |
-
doMobileLayout();
|
80 |
-
} else {
|
81 |
-
doDefaultLayout();
|
82 |
-
}
|
83 |
-
});
|
84 |
-
|
85 |
-
})(jQuery);
|
86 |
-
/*});*/
|
87 |
-
|
88 |
-
|
1 |
+
(function($) {
|
2 |
+
|
3 |
+
function doDefaultLayout()
|
4 |
+
{
|
5 |
+
$('.ecwid-shopping-cart-search .ecwid-SearchPanel-button').text('');
|
6 |
+
|
7 |
+
$('.ecwid-minicart-mini-rolloverContainer').show();
|
8 |
+
$('.ecwid-shopping-cart-minicart')
|
9 |
+
.css({
|
10 |
+
'top': '2px'
|
11 |
+
})
|
12 |
+
.show();
|
13 |
+
|
14 |
+
var topElement = $('.ecwid-shopping-cart-categories');
|
15 |
+
if (topElement.length == 0) {
|
16 |
+
topElement = $('.ecwid-shopping-cart-product-browser')
|
17 |
+
}
|
18 |
+
if (topElement.length > 0) {
|
19 |
+
$('.ecwid-productBrowser-auth-mini').css({
|
20 |
+
'position': 'absolute',
|
21 |
+
'top': topElement.prop('offsetTop') - 50
|
22 |
+
});
|
23 |
+
|
24 |
+
$('.ecwid-shopping-cart-search').css({
|
25 |
+
'position': 'absolute',
|
26 |
+
'top': topElement.prop('offsetTop') - 50 + 8
|
27 |
+
});
|
28 |
+
|
29 |
+
if (navigator.userAgent.match(/firefox/i)) {
|
30 |
+
$('.ecwid-SearchPanel-button').css('right', '3px');
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
$('.ecwid-shopping-cart-minicart').css(
|
35 |
+
'margin-right', $('.ecwid-minicart-mini-rolloverContainer').width() - $('.ecwid-shopping-cart-minicart').width()
|
36 |
+
);
|
37 |
+
|
38 |
+
if ($('.ecwid-search-placeholder').length == 0) {
|
39 |
+
$('.ecwid-shopping-cart .ecwid-shopping-cart-search .ecwid-SearchPanel').after('<div class="ecwid-search-placeholder"></div>');
|
40 |
+
}
|
41 |
+
|
42 |
+
$('.ecwid-search-placeholder').click(function() {
|
43 |
+
$('body').addClass('ecwid-search-open');
|
44 |
+
$('.ecwid-shopping-cart-search .ecwid-SearchPanel-field').focus();
|
45 |
+
});
|
46 |
+
}
|
47 |
+
|
48 |
+
$('body').click(function(e) {
|
49 |
+
if ($('.ecwid-shopping-cart-search').has(e.target).length == 0) {
|
50 |
+
$(this).removeClass('ecwid-search-open');
|
51 |
+
}
|
52 |
+
});
|
53 |
+
|
54 |
+
function doMobileLayout()
|
55 |
+
{
|
56 |
+
$('.ecwid-minicart-mini-rolloverContainer').hide();
|
57 |
+
$('.ecwid-shopping-cart-minicart').hide();
|
58 |
+
$('.ecwid-productBrowser-auth-mini').css({
|
59 |
+
'position': 'inherit',
|
60 |
+
'top': 'auto'
|
61 |
+
});
|
62 |
+
$('.ecwid-shopping-cart-search').css({
|
63 |
+
'position': 'absolute',
|
64 |
+
'top': $('.ecwid-productBrowser').prop('offsetTop') - 50 + 8
|
65 |
+
});
|
66 |
+
}
|
67 |
+
if (typeof Ecwid != 'undefined') {
|
68 |
+
Ecwid.OnPageLoaded.add(function(args) {
|
69 |
+
if ($(window).width() < 650) {
|
70 |
+
doMobileLayout();
|
71 |
+
} else {
|
72 |
+
doDefaultLayout();
|
73 |
+
}
|
74 |
+
});
|
75 |
+
}
|
76 |
+
|
77 |
+
$(window).resize(function() {
|
78 |
+
if ($(window).width() < 650) {
|
79 |
+
doMobileLayout();
|
80 |
+
} else {
|
81 |
+
doDefaultLayout();
|
82 |
+
}
|
83 |
+
});
|
84 |
+
|
85 |
+
})(jQuery);
|
86 |
+
/*});*/
|
87 |
+
|
88 |
+
|
languages/ecwid-shopping-cart-de_DE.po
CHANGED
@@ -1,459 +1,459 @@
|
|
1 |
-
msgid "Ecwid Shopping Cart"
|
2 |
-
msgstr "Ecwid Onlineshop"
|
3 |
-
|
4 |
-
msgid "Ecwid Team"
|
5 |
-
msgstr "Ecwid-Team"
|
6 |
-
|
7 |
-
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
8 |
-
msgstr "Ecwid ist ein kostenloser, leistungsstarker Onlineshop. Er ist kinderleicht in jedes WordPress-Blog integrierbar und in weniger als 5 Minuten eingerichtet."
|
9 |
-
|
10 |
-
msgid "Get help"
|
11 |
-
msgstr "Hilfe"
|
12 |
-
|
13 |
-
msgid "Go to Ecwid site"
|
14 |
-
msgstr "zur Ecwid-Website"
|
15 |
-
|
16 |
-
msgid "Visit storefront"
|
17 |
-
msgstr "zum Shop"
|
18 |
-
|
19 |
-
msgid "Manage my store"
|
20 |
-
msgstr "Shop verwalten"
|
21 |
-
|
22 |
-
msgid "Manage plugin settings"
|
23 |
-
msgstr "Plugin-Einstellungen verwalten"
|
24 |
-
|
25 |
-
msgid "→ Sell on Facebook"
|
26 |
-
msgstr "→ auf Facebook verkaufen"
|
27 |
-
|
28 |
-
msgid "<a %s>Online store powered by Ecwid</a>"
|
29 |
-
msgstr "<a %s>Onlineshop von Ecwid</a>"
|
30 |
-
|
31 |
-
msgid "Store"
|
32 |
-
msgstr "Shop"
|
33 |
-
|
34 |
-
msgid "Ecwid shopping cart settings"
|
35 |
-
msgstr "Ecwid Onlineshop-Einstellungen"
|
36 |
-
|
37 |
-
msgid "Ecwid Store"
|
38 |
-
msgstr "Ecwid-Onlineshop"
|
39 |
-
|
40 |
-
msgid "Setup"
|
41 |
-
msgstr "Einrichtung"
|
42 |
-
|
43 |
-
msgid "Dashboard"
|
44 |
-
msgstr "Hauptmenü"
|
45 |
-
|
46 |
-
msgid "Appearance settings"
|
47 |
-
msgstr "Anzeigeneinstellungen"
|
48 |
-
|
49 |
-
msgid "Appearance"
|
50 |
-
msgstr "Anzeige"
|
51 |
-
|
52 |
-
msgid "Advanced settings"
|
53 |
-
msgstr "Erweiterte Einstellungen"
|
54 |
-
|
55 |
-
msgid "Advanced"
|
56 |
-
msgstr "Erweitert"
|
57 |
-
|
58 |
-
msgid "Hidden category"
|
59 |
-
msgstr "ausgeblendete Kategorie"
|
60 |
-
|
61 |
-
msgid "If you like Ecwid and want to help it grow and become the most popular e-commerce solution, you can now add a fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid."
|
62 |
-
msgstr "Wenn Ihnen Ecwid gefällt und Sie uns dabei unterstützen möchten, die beliebteste Ecommerce-Lösung zu werden, können Sie Ihrer Website jetzt ein schickes Abzeichen mit \"Bereitgestellt von Ecwid\" hinzufügen, um Ihre Websitebesucher darauf aufmerksam zu machen, dass Sie ein stolzer Nutzer von Ecwid sind."
|
63 |
-
|
64 |
-
msgid "Ecwid Badge"
|
65 |
-
msgstr "Ecwid-Abzeichen"
|
66 |
-
|
67 |
-
msgid "Ecwid shopping cart widget"
|
68 |
-
msgstr "Ecwid Onlineshop-Widget"
|
69 |
-
|
70 |
-
msgid "Ecwid ecommerce solution"
|
71 |
-
msgstr "Ecwid Ecommerce-Lösung"
|
72 |
-
|
73 |
-
msgid "Ecwid free shopping cart"
|
74 |
-
msgstr "Ecwid kostenloser Onlineshop"
|
75 |
-
|
76 |
-
msgid "Ecwid shopping cart"
|
77 |
-
msgstr "Ecwid Onlineshop"
|
78 |
-
|
79 |
-
msgid "Ecwid e-commerce widgets"
|
80 |
-
msgstr "Ecwid Ecommerce-Widgets"
|
81 |
-
|
82 |
-
msgid "Your store's minicart"
|
83 |
-
msgstr "Miniwarenkorb Ihres Shops"
|
84 |
-
|
85 |
-
msgid "Ecwid Shopping Bag (Normal)"
|
86 |
-
msgstr "Ecwid-Warenkorb (normal)"
|
87 |
-
|
88 |
-
msgid "Ecwid Shopping Bag (Mini view)"
|
89 |
-
msgstr "Ecwid-Warenkorb (Miniansicht)"
|
90 |
-
|
91 |
-
msgid "Your store's search box"
|
92 |
-
msgstr "Suchfeld Ihres Shops"
|
93 |
-
|
94 |
-
msgid "Ecwid Search Box"
|
95 |
-
msgstr "Ecwid-Suchfeld"
|
96 |
-
|
97 |
-
msgid "Vertical menu of categories"
|
98 |
-
msgstr "Vertikale Kategoriennavigation"
|
99 |
-
|
100 |
-
msgid "Ecwid Vertical Categories"
|
101 |
-
msgstr "Ecwid vertikale Kategorien"
|
102 |
-
|
103 |
-
msgid "A link to your store page"
|
104 |
-
msgstr "ein Link zu Ihrer Shopseite"
|
105 |
-
|
106 |
-
msgid "Ecwid Store Page Link"
|
107 |
-
msgstr "Link zur Ecwid-Shopseite"
|
108 |
-
|
109 |
-
msgid "Shop"
|
110 |
-
msgstr "Shop"
|
111 |
-
|
112 |
-
msgid "A list of products recently viewed by a customer. Add this widget to the sidebar to let them later return to the products they saw in your shop."
|
113 |
-
msgstr "Eine Liste von Artikeln, die kürzlich von Kunden angezeigt wurden. Fügen Sie dieses Widget der Seitenleiste hinzu, damit Kunden später zu von ihnen bereits angesehenen Artikeln zurückkehren können."
|
114 |
-
|
115 |
-
msgid "Recently Viewed Products"
|
116 |
-
msgstr "Zuletzt angezeigte Artikel"
|
117 |
-
|
118 |
-
msgid "Number of products to show"
|
119 |
-
msgstr "Anzahl der anzuzeigenden Artikel"
|
120 |
-
|
121 |
-
msgid "Greetings! Your Ecwid store is now active."
|
122 |
-
msgstr "Hallo! Ihr Ecwid-Shop ist jetzt aktiv."
|
123 |
-
|
124 |
-
msgid "Take a few simple steps to complete store setup"
|
125 |
-
msgstr "Führen Sie ein paar einfache Schritte zur Einrichtung Ihres Shops durch"
|
126 |
-
|
127 |
-
msgid "Set up Ecwid Store"
|
128 |
-
msgstr "Ecwid-Shop einrichten"
|
129 |
-
|
130 |
-
msgid "Good job! Your store is set up and you're ready to sell."
|
131 |
-
msgstr "Gute Arbeit! Ihr Shop ist eingerichtet und Sie können mit dem Verkauf loslegen."
|
132 |
-
|
133 |
-
msgid "Now you can fine-tune your store's appearance"
|
134 |
-
msgstr "Jetzt können Sie die Ansicht Ihres Shops abrunden"
|
135 |
-
|
136 |
-
msgid "Visit Storefront"
|
137 |
-
msgstr "zur Shopansicht"
|
138 |
-
|
139 |
-
msgid "Configure Appearance"
|
140 |
-
msgstr "Ansicht konfigurieren"
|
141 |
-
|
142 |
-
msgid "Your store is almost ready!"
|
143 |
-
msgstr "Ihr Shop ist fast fertig!"
|
144 |
-
|
145 |
-
msgid "Connect your Ecwid account with this site to complete setup and start selling"
|
146 |
-
msgstr "Verbinden Sie Ihr Ecwid-Konto mit dieser Website, um die Einrichtung durchzuführen und mit dem Verkauf zu beginnen"
|
147 |
-
|
148 |
-
msgid "Connect Your Ecwid Store"
|
149 |
-
msgstr "Ecwid-Shop verbinden"
|
150 |
-
|
151 |
-
msgid "To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings."
|
152 |
-
msgstr "Um Ihrem Shop zusätzliche Funktionen hinzuzufügen, ziehen Sie Ecwid-Shop-Elemente auf Ihre Website und legen Sie sie ab. Anschließend können Sie zur Anpassung Ihrer Einstellungen zurückgehen."
|
153 |
-
|
154 |
-
msgid "Back to Store Settings"
|
155 |
-
msgstr "Zurück zu Shopeinstellungen"
|
156 |
-
|
157 |
-
msgid "Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site."
|
158 |
-
msgstr "Gefällt Ihnen Ihr Ecwid-Onlineshop? Wir würden uns freuen, wenn Sie Ihren Kommentar und Bewertung für das Plugin auf der WordPress-Website hinterließen."
|
159 |
-
|
160 |
-
msgid "Rate Ecwid at WordPress.org"
|
161 |
-
msgstr "Bewerten Sie Ecwid auf WordPress.org"
|
162 |
-
|
163 |
-
msgid "Add Store"
|
164 |
-
msgstr "Shop hinzufügen"
|
165 |
-
|
166 |
-
msgid "Edit Store"
|
167 |
-
msgstr "Shop bearbeiten"
|
168 |
-
|
169 |
-
msgid "Edit Appearance"
|
170 |
-
msgstr "Ansicht bearbeiten"
|
171 |
-
|
172 |
-
msgid "Price"
|
173 |
-
msgstr "Preis"
|
174 |
-
|
175 |
-
msgid "Never show this message again"
|
176 |
-
msgstr "diese Meldung nicht mehr anzeigen"
|
177 |
-
|
178 |
-
msgid "Ecwid Shopping Cart — Advanced settings"
|
179 |
-
msgstr "Ecwid-Onlineshop — Erweiterte Einstellungen"
|
180 |
-
|
181 |
-
msgid "Category shown by default"
|
182 |
-
msgstr "standardmäßig angezeigte Kategorie"
|
183 |
-
|
184 |
-
msgid "Store root category"
|
185 |
-
msgstr "Shop-Grundkategorie"
|
186 |
-
|
187 |
-
msgid "Default category ID"
|
188 |
-
msgstr "Standardkategorien-ID"
|
189 |
-
|
190 |
-
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
191 |
-
msgstr "Standardmäßig zeigt der Shop eine Liste von Grundkategorien an. Sie können diese Einstellung überschreiben und eine andere Kategorie anzeigen, wenn Kunden Ihren Shop zum ersten Mal öffnen. Dies ist sinnvoll, wenn Sie nur eine Kategorie haben oder allen neuen Besuchern einen bestimmten Satz von Artikeln (z.B. \"Ausgewählte Produkte\") anzeigen möchten."
|
192 |
-
|
193 |
-
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
194 |
-
msgstr "Zur Einstellung dieser Option <a %s>suchen Sie die ID der nötigen Kategorie</a> und speichern Sie diese hier."
|
195 |
-
|
196 |
-
msgid "Single Sign-On Secret Key"
|
197 |
-
msgstr "Single-Sign-on-Sicherheitsschlüssel"
|
198 |
-
|
199 |
-
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
200 |
-
msgstr "Diese optionale Funktion bietet Single-Sign-On: Wenn Kunden auf Ihrer Website eingeloggt sind, sind sie automatisch auch in Ihrem Ecwid-Onlineshop eingeloggt, selbst wenn sie bisher noch kein Konto für den Shop hatten. Die Aktivierung dieser Funktion ist sinnvoll, wenn Ihre Besucher eigentlich Konten auf Ihrer WordPress-Website erstellen."
|
201 |
-
|
202 |
-
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
203 |
-
msgstr "Zur Aktivierung dieser Funktion wählen Sie die Verwendung eines Sicherheitsschlüssels. Diesen Schlüssel finden Sie in Ihrem Ecwid-Steuermenü unter \"Systemeinstellungen > Apps > Alte API-Schlüssel > Sicherheitsschlüssel einmaliges Einloggen\". Diese Funktion ist nur bei <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">kostenpflichtigen Paketen</a> verfügbar."
|
204 |
-
|
205 |
-
msgid "Save changes"
|
206 |
-
msgstr "Änderungen speichern"
|
207 |
-
|
208 |
-
msgid "Ecwid Shopping Cart — Appearance settings"
|
209 |
-
msgstr "Ecwid-Onlineshop — Anzeigeneinstellungen"
|
210 |
-
|
211 |
-
msgid "Display search box above products"
|
212 |
-
msgstr "Suchfeld oberhalb der Artikel anzeigen"
|
213 |
-
|
214 |
-
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
215 |
-
msgstr "Oder fügen Sie der Toolbar Ihrer Website mit den <a href=\"%s\">vorhandenen WordPress-Widgets</a> ein Suchfeld hinzu"
|
216 |
-
|
217 |
-
msgid "Display horizontal categories above products"
|
218 |
-
msgstr "horizontale Kategorien oberhalb der Artikel anzeigen"
|
219 |
-
|
220 |
-
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
221 |
-
msgstr "Oder fügen Sie der Toolbar Ihrer Website mit den <a href=\"%s\">vorhandenen WordPress-Widgets</a> vertikale Kategorien hinzu"
|
222 |
-
|
223 |
-
msgid "Enable minicart attached to horizontal categories"
|
224 |
-
msgstr "Miniwarenkorb Ihres Shops an horizontale Kategorien heften"
|
225 |
-
|
226 |
-
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
227 |
-
msgstr "Diese Option sollten Sie deaktivieren, wenn Sie den Miniwarenkorb der Seitenleiste Ihrer Website hinzugefügt haben"
|
228 |
-
|
229 |
-
msgid "Number of categories per row"
|
230 |
-
msgstr "Anzahl Kategorien pro Zeile"
|
231 |
-
|
232 |
-
msgid "Number of products per page"
|
233 |
-
msgstr "Anzahl Kategorien pro Seite"
|
234 |
-
|
235 |
-
msgid "Grid view"
|
236 |
-
msgstr "Gitteransicht"
|
237 |
-
|
238 |
-
msgid "List view"
|
239 |
-
msgstr "Listenansicht"
|
240 |
-
|
241 |
-
msgid "Table view"
|
242 |
-
msgstr "Tabellenansicht"
|
243 |
-
|
244 |
-
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
245 |
-
msgstr "Hier können Sie einstellen, wie viele Artikel pro Seite angezeigt werden sollen. Diese Optionen legen Maximalwerte fest. Falls nicht ausreichend Platz ist, um alle Artikelspalten anzuzeigen, passt Ecwid zur Berücksichtigung aller Artikel die Anzahl der Spalten an."
|
246 |
-
|
247 |
-
msgid "Default view mode on product pages"
|
248 |
-
msgstr "Standardanzeigemodus auf Artikelseiten"
|
249 |
-
|
250 |
-
msgid "Grid"
|
251 |
-
msgstr "Gitter"
|
252 |
-
|
253 |
-
msgid "List"
|
254 |
-
msgstr "Liste"
|
255 |
-
|
256 |
-
msgid "Table"
|
257 |
-
msgstr "Tabelle"
|
258 |
-
|
259 |
-
msgid "Default view mode on search results"
|
260 |
-
msgstr "Standardanzeigemodus für Suchergebnisse"
|
261 |
-
|
262 |
-
msgid "Connect your store<br /> to this WordPress site"
|
263 |
-
msgstr "Verbinden Sie Ihren Shop<br />mit dieser WordPress-Website"
|
264 |
-
|
265 |
-
msgid "Connect Ecwid store"
|
266 |
-
msgstr "Ecwid-Shop verbinden"
|
267 |
-
|
268 |
-
msgid "After clicking button you need to login and accept permissions to use our plugin"
|
269 |
-
msgstr "Nach Klick auf die Schaltfläche müssen Sie sich einloggen und zur Nutzung unseres Plugins Zugriffsrechte erteilen"
|
270 |
-
|
271 |
-
msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again."
|
272 |
-
msgstr "Verbindungsfehler - nach Klick auf die Schaltfläche müssen Sie sich einloggen und zur Nutzung unseres Plugins Zugriffsrechte erteilen. Bitte versuchen Sie es erneut."
|
273 |
-
|
274 |
-
msgid "Don't have Ecwid account? Create it here"
|
275 |
-
msgstr "Haben Sie noch kein Ecwid-Konto? Legen Sie hier eins an"
|
276 |
-
|
277 |
-
msgid "Questions? Visit <a %s>Ecwid support center</a>"
|
278 |
-
msgstr "Fragen? Gehen Sie zum <a %s>Ecwid-Hilfebereich</a>"
|
279 |
-
|
280 |
-
msgid "Store ID"
|
281 |
-
msgstr "Shop-ID"
|
282 |
-
|
283 |
-
msgid "Disconnect store"
|
284 |
-
msgstr "Shopverbindung trennen"
|
285 |
-
|
286 |
-
msgid "Congratulations!"
|
287 |
-
msgstr "Herzlichen Glückwunsch!"
|
288 |
-
|
289 |
-
msgid "Your Ecwid store is now connected<br /> to your WordPress website"
|
290 |
-
msgstr "Ihr Ecwid-Shop ist jetzt mit Ihrer<br />WordPress-Website verbunden"
|
291 |
-
|
292 |
-
msgid "Greetings!"
|
293 |
-
msgstr "Hallo!"
|
294 |
-
|
295 |
-
msgid "Your Ecwid store is connected<br /> to your WordPress website"
|
296 |
-
msgstr "Ihr Ecwid-Shop ist mit Ihrer<br />WordPress-Website verbunden"
|
297 |
-
|
298 |
-
msgid "Open control panel"
|
299 |
-
msgstr "Steuermenü öffnen"
|
300 |
-
|
301 |
-
msgid "Plugin is installed successfully!"
|
302 |
-
msgstr "Plugin erfolgreich installiert!"
|
303 |
-
|
304 |
-
msgid "There are just a few steps left to start selling<br /> on your WordPress site"
|
305 |
-
msgstr "Nur noch wenige Schritte bis zum Verkaufsstart<br />auf Ihrer WordPress-Website"
|
306 |
-
|
307 |
-
msgid "There are few little steps left to start selling<br /> on your WordPress site"
|
308 |
-
msgstr "Nur noch wenige Schritte bis zum Verkaufsstart<br />auf Ihrer WordPress-Website"
|
309 |
-
|
310 |
-
msgid "Register"
|
311 |
-
msgstr "Anmelden"
|
312 |
-
|
313 |
-
msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required"
|
314 |
-
msgstr "Erstellen Sie ein kostenloses Ecwid-Konto, um Shop und Lagerbestand zu verwalten.<br />Kreditkarte nicht erforderlich"
|
315 |
-
|
316 |
-
msgid "Connect"
|
317 |
-
msgstr "Verbinden"
|
318 |
-
|
319 |
-
msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>"
|
320 |
-
msgstr "Fügen Sie Ihrer Website Ihren Ecwid-Shop <nobr>mit nur zwei Klicks</nobr> hinzu"
|
321 |
-
|
322 |
-
msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>"
|
323 |
-
msgstr "Verbinden Sie Ihren Ecwid-Shop mit dieser Website <nobr>mit nur zwei Klicks</nobr>"
|
324 |
-
|
325 |
-
msgid "Start selling"
|
326 |
-
msgstr "Mit Verkauf beginnen"
|
327 |
-
|
328 |
-
msgid "Your storefront is ready"
|
329 |
-
msgstr "Shopansicht ist fertig"
|
330 |
-
|
331 |
-
msgid "Create Ecwid store"
|
332 |
-
msgstr "Ecwid-Shop erstellen"
|
333 |
-
|
334 |
-
msgid "Connect your store"
|
335 |
-
msgstr "Shop verbinden"
|
336 |
-
|
337 |
-
msgid "Free registration, No credit card required"
|
338 |
-
msgstr "Kostenlose Anmeldung, keine Kreditkarte erforderlich"
|
339 |
-
|
340 |
-
msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site."
|
341 |
-
msgstr "Verbindungsfehler: Bitte klicken Sie erneut auf die Schaltfläche und erteilen Sie Zugriffsrechte für dieses Plugin,<br />um Ihren Ecwid-Shop auf dieser Website anzuzeigen."
|
342 |
-
|
343 |
-
msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site"
|
344 |
-
msgstr "Sie werden zum Einloggen in Ihr Ecwid-Steuermenü <br />und zur Erteilung von Zugriffsrechten aufgefordert, um Ihren Shop auf dieser Website anzuzeigen."
|
345 |
-
|
346 |
-
msgid "Already have Ecwid account?"
|
347 |
-
msgstr "Sie haben bereits ein Ecwid-Konto?"
|
348 |
-
|
349 |
-
msgid "Connect your store to Wordpress site"
|
350 |
-
msgstr "Shop mit WordPress-Website verbinden"
|
351 |
-
|
352 |
-
msgid "Don't have an Ecwid account?"
|
353 |
-
msgstr "Sie haben noch kein Ecwid-Konto?"
|
354 |
-
|
355 |
-
msgid "Register at Ecwid for free"
|
356 |
-
msgstr "Kostenlos bei Ecwid anmelden"
|
357 |
-
|
358 |
-
msgid "No credit card required"
|
359 |
-
msgstr "Kreditkarte nicht erforderlich"
|
360 |
-
|
361 |
-
msgid "Get ready to sell online"
|
362 |
-
msgstr "Jetzt online verkaufen"
|
363 |
-
|
364 |
-
msgid "Sell Everywhere<br>with your Ecwid store"
|
365 |
-
msgstr "Mit Ecwid-Shop<br>überall verkaufen"
|
366 |
-
|
367 |
-
msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com."
|
368 |
-
msgstr "Verkaufen Sie jetzt auf Ihrer WordPress-Website. Spiegeln Sie dann Ihren Shop auf Ihrer Facebook-Seite, Blog und Onlinemarktplätzen wie Google Shopping, Yahoo und Shopping.com."
|
369 |
-
|
370 |
-
msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store."
|
371 |
-
msgstr "Verwenden Sie die mobile Ecwid-Verkaufsstelle zum Einlesen von Kreditkarten und dem Verkauf von unterwegs. Bestellungen und Lagerbestand werden stets mit Ihrem Onlineshop synchronisiert."
|
372 |
-
|
373 |
-
msgid "Features"
|
374 |
-
msgstr "Funktionen"
|
375 |
-
|
376 |
-
msgid "Compatible with your theme"
|
377 |
-
msgstr "Mit Ihrem Design kompatibel"
|
378 |
-
|
379 |
-
msgid "Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box."
|
380 |
-
msgstr "Ecwid ist mit Ihrem vorgefertigten<br>WordPress Design \"%s\"<br>kompatibel."
|
381 |
-
|
382 |
-
msgid "Free and always up to date"
|
383 |
-
msgstr "Kostenlos und immer aktuell"
|
384 |
-
|
385 |
-
msgid "Free plan always available with tons of features<br>at no additional cost. Seamless upgrades occur<br>automatically for free."
|
386 |
-
msgstr "Kostenlose Pakete immer mit unzähligen Funktionen<br>ohne zusätzliche Kosten. Reibungslose Aktualisierungen werden<br>automatisch und kostenlos durchgeführt."
|
387 |
-
|
388 |
-
msgid "Responsive design"
|
389 |
-
msgstr "Adaptives Design"
|
390 |
-
|
391 |
-
msgid "Your store looks perfect<br />on all devices"
|
392 |
-
msgstr "Ihr Shop sieht auf allen<br />Endgeräten perfekt aus"
|
393 |
-
|
394 |
-
msgid "PCI-DSS Certified"
|
395 |
-
msgstr "PCI-DSS-zertifiziert"
|
396 |
-
|
397 |
-
msgid "Secure checkout with over 40<br />payment options"
|
398 |
-
msgstr "sichere Zahlung mit über 40<br />Zahlungsoptionen"
|
399 |
-
|
400 |
-
msgid "Global Reach"
|
401 |
-
msgstr "globale Reichweite"
|
402 |
-
|
403 |
-
msgid "More than 700,000 merchants in 175 countries"
|
404 |
-
msgstr "über 700.000 Verkäufer in 175 Ländern"
|
405 |
-
|
406 |
-
msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>"
|
407 |
-
msgstr "Verkaufen Sie jetzt kostenlos<br>auf Ihrer WordPress-<nobr>Website</nobr>"
|
408 |
-
|
409 |
-
msgid "Get Started, Create Ecwid Account"
|
410 |
-
msgstr "Steigen Sie jetzt ein, erstellen Sie ein Ecwid-Konto"
|
411 |
-
|
412 |
-
msgid "Connect your store to this site"
|
413 |
-
msgstr "Shop mit dieser Website verbinden"
|
414 |
-
|
415 |
-
msgid "Reconnect your store<br /> to this WordPress site"
|
416 |
-
msgstr "Shop mit dieser WordPress-Website<br />wieder verbinden"
|
417 |
-
|
418 |
-
msgid "Reconnect Ecwid store"
|
419 |
-
msgstr "Ecwid-Shop wieder verbinden"
|
420 |
-
|
421 |
-
msgid "New features available, reconnect to be in touch with our updates"
|
422 |
-
msgstr "Neue Funktionen verfügbar, stellen Sie die Verbindung wieder her, um unsere Aktualisierungen zu erhalten"
|
423 |
-
|
424 |
-
msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>"
|
425 |
-
msgstr "Fragen? Wechseln Sie zum <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid-Supportcenter</a>"
|
426 |
-
|
427 |
-
msgid "Store settings"
|
428 |
-
msgstr "Shopeinstellungen"
|
429 |
-
|
430 |
-
msgid "Choose widgets to show"
|
431 |
-
msgstr "Anzuzeigende Widgets wählen"
|
432 |
-
|
433 |
-
msgid "Product catalog will be shown automatically"
|
434 |
-
msgstr "Artikelkatalog wird automatisch angezeigt"
|
435 |
-
|
436 |
-
msgid "Show search"
|
437 |
-
msgstr "Suche anzeigen"
|
438 |
-
|
439 |
-
msgid "Show minicart"
|
440 |
-
msgstr "Miniwarenkorb anzeigen"
|
441 |
-
|
442 |
-
msgid "Show horizontal categories"
|
443 |
-
msgstr "Kategorien horizontal anzeigen"
|
444 |
-
|
445 |
-
msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>"
|
446 |
-
msgstr "Zusätzlich können Sie der Funktionsleiste Ihrer Website Shopsteuerelemente mit <a %s>eigenen WordPress-Widgets</a> hinzufügen"
|
447 |
-
|
448 |
-
msgid "Demo store"
|
449 |
-
msgstr "Demoshop"
|
450 |
-
|
451 |
-
msgid "Ecwid plugin settings"
|
452 |
-
msgstr "Ecwid-Plugineinstellungen"
|
453 |
-
|
454 |
-
msgid "Your store will be shown here!"
|
455 |
-
msgstr "Hier wird Ihr Shop angezeigt!"
|
456 |
-
|
457 |
-
msgid "Demo Store"
|
458 |
-
msgstr "Demoshop"
|
459 |
-
|
1 |
+
msgid "Ecwid Shopping Cart"
|
2 |
+
msgstr "Ecwid Onlineshop"
|
3 |
+
|
4 |
+
msgid "Ecwid Team"
|
5 |
+
msgstr "Ecwid-Team"
|
6 |
+
|
7 |
+
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
8 |
+
msgstr "Ecwid ist ein kostenloser, leistungsstarker Onlineshop. Er ist kinderleicht in jedes WordPress-Blog integrierbar und in weniger als 5 Minuten eingerichtet."
|
9 |
+
|
10 |
+
msgid "Get help"
|
11 |
+
msgstr "Hilfe"
|
12 |
+
|
13 |
+
msgid "Go to Ecwid site"
|
14 |
+
msgstr "zur Ecwid-Website"
|
15 |
+
|
16 |
+
msgid "Visit storefront"
|
17 |
+
msgstr "zum Shop"
|
18 |
+
|
19 |
+
msgid "Manage my store"
|
20 |
+
msgstr "Shop verwalten"
|
21 |
+
|
22 |
+
msgid "Manage plugin settings"
|
23 |
+
msgstr "Plugin-Einstellungen verwalten"
|
24 |
+
|
25 |
+
msgid "→ Sell on Facebook"
|
26 |
+
msgstr "→ auf Facebook verkaufen"
|
27 |
+
|
28 |
+
msgid "<a %s>Online store powered by Ecwid</a>"
|
29 |
+
msgstr "<a %s>Onlineshop von Ecwid</a>"
|
30 |
+
|
31 |
+
msgid "Store"
|
32 |
+
msgstr "Shop"
|
33 |
+
|
34 |
+
msgid "Ecwid shopping cart settings"
|
35 |
+
msgstr "Ecwid Onlineshop-Einstellungen"
|
36 |
+
|
37 |
+
msgid "Ecwid Store"
|
38 |
+
msgstr "Ecwid-Onlineshop"
|
39 |
+
|
40 |
+
msgid "Setup"
|
41 |
+
msgstr "Einrichtung"
|
42 |
+
|
43 |
+
msgid "Dashboard"
|
44 |
+
msgstr "Hauptmenü"
|
45 |
+
|
46 |
+
msgid "Appearance settings"
|
47 |
+
msgstr "Anzeigeneinstellungen"
|
48 |
+
|
49 |
+
msgid "Appearance"
|
50 |
+
msgstr "Anzeige"
|
51 |
+
|
52 |
+
msgid "Advanced settings"
|
53 |
+
msgstr "Erweiterte Einstellungen"
|
54 |
+
|
55 |
+
msgid "Advanced"
|
56 |
+
msgstr "Erweitert"
|
57 |
+
|
58 |
+
msgid "Hidden category"
|
59 |
+
msgstr "ausgeblendete Kategorie"
|
60 |
+
|
61 |
+
msgid "If you like Ecwid and want to help it grow and become the most popular e-commerce solution, you can now add a fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid."
|
62 |
+
msgstr "Wenn Ihnen Ecwid gefällt und Sie uns dabei unterstützen möchten, die beliebteste Ecommerce-Lösung zu werden, können Sie Ihrer Website jetzt ein schickes Abzeichen mit \"Bereitgestellt von Ecwid\" hinzufügen, um Ihre Websitebesucher darauf aufmerksam zu machen, dass Sie ein stolzer Nutzer von Ecwid sind."
|
63 |
+
|
64 |
+
msgid "Ecwid Badge"
|
65 |
+
msgstr "Ecwid-Abzeichen"
|
66 |
+
|
67 |
+
msgid "Ecwid shopping cart widget"
|
68 |
+
msgstr "Ecwid Onlineshop-Widget"
|
69 |
+
|
70 |
+
msgid "Ecwid ecommerce solution"
|
71 |
+
msgstr "Ecwid Ecommerce-Lösung"
|
72 |
+
|
73 |
+
msgid "Ecwid free shopping cart"
|
74 |
+
msgstr "Ecwid kostenloser Onlineshop"
|
75 |
+
|
76 |
+
msgid "Ecwid shopping cart"
|
77 |
+
msgstr "Ecwid Onlineshop"
|
78 |
+
|
79 |
+
msgid "Ecwid e-commerce widgets"
|
80 |
+
msgstr "Ecwid Ecommerce-Widgets"
|
81 |
+
|
82 |
+
msgid "Your store's minicart"
|
83 |
+
msgstr "Miniwarenkorb Ihres Shops"
|
84 |
+
|
85 |
+
msgid "Ecwid Shopping Bag (Normal)"
|
86 |
+
msgstr "Ecwid-Warenkorb (normal)"
|
87 |
+
|
88 |
+
msgid "Ecwid Shopping Bag (Mini view)"
|
89 |
+
msgstr "Ecwid-Warenkorb (Miniansicht)"
|
90 |
+
|
91 |
+
msgid "Your store's search box"
|
92 |
+
msgstr "Suchfeld Ihres Shops"
|
93 |
+
|
94 |
+
msgid "Ecwid Search Box"
|
95 |
+
msgstr "Ecwid-Suchfeld"
|
96 |
+
|
97 |
+
msgid "Vertical menu of categories"
|
98 |
+
msgstr "Vertikale Kategoriennavigation"
|
99 |
+
|
100 |
+
msgid "Ecwid Vertical Categories"
|
101 |
+
msgstr "Ecwid vertikale Kategorien"
|
102 |
+
|
103 |
+
msgid "A link to your store page"
|
104 |
+
msgstr "ein Link zu Ihrer Shopseite"
|
105 |
+
|
106 |
+
msgid "Ecwid Store Page Link"
|
107 |
+
msgstr "Link zur Ecwid-Shopseite"
|
108 |
+
|
109 |
+
msgid "Shop"
|
110 |
+
msgstr "Shop"
|
111 |
+
|
112 |
+
msgid "A list of products recently viewed by a customer. Add this widget to the sidebar to let them later return to the products they saw in your shop."
|
113 |
+
msgstr "Eine Liste von Artikeln, die kürzlich von Kunden angezeigt wurden. Fügen Sie dieses Widget der Seitenleiste hinzu, damit Kunden später zu von ihnen bereits angesehenen Artikeln zurückkehren können."
|
114 |
+
|
115 |
+
msgid "Recently Viewed Products"
|
116 |
+
msgstr "Zuletzt angezeigte Artikel"
|
117 |
+
|
118 |
+
msgid "Number of products to show"
|
119 |
+
msgstr "Anzahl der anzuzeigenden Artikel"
|
120 |
+
|
121 |
+
msgid "Greetings! Your Ecwid store is now active."
|
122 |
+
msgstr "Hallo! Ihr Ecwid-Shop ist jetzt aktiv."
|
123 |
+
|
124 |
+
msgid "Take a few simple steps to complete store setup"
|
125 |
+
msgstr "Führen Sie ein paar einfache Schritte zur Einrichtung Ihres Shops durch"
|
126 |
+
|
127 |
+
msgid "Set up Ecwid Store"
|
128 |
+
msgstr "Ecwid-Shop einrichten"
|
129 |
+
|
130 |
+
msgid "Good job! Your store is set up and you're ready to sell."
|
131 |
+
msgstr "Gute Arbeit! Ihr Shop ist eingerichtet und Sie können mit dem Verkauf loslegen."
|
132 |
+
|
133 |
+
msgid "Now you can fine-tune your store's appearance"
|
134 |
+
msgstr "Jetzt können Sie die Ansicht Ihres Shops abrunden"
|
135 |
+
|
136 |
+
msgid "Visit Storefront"
|
137 |
+
msgstr "zur Shopansicht"
|
138 |
+
|
139 |
+
msgid "Configure Appearance"
|
140 |
+
msgstr "Ansicht konfigurieren"
|
141 |
+
|
142 |
+
msgid "Your store is almost ready!"
|
143 |
+
msgstr "Ihr Shop ist fast fertig!"
|
144 |
+
|
145 |
+
msgid "Connect your Ecwid account with this site to complete setup and start selling"
|
146 |
+
msgstr "Verbinden Sie Ihr Ecwid-Konto mit dieser Website, um die Einrichtung durchzuführen und mit dem Verkauf zu beginnen"
|
147 |
+
|
148 |
+
msgid "Connect Your Ecwid Store"
|
149 |
+
msgstr "Ecwid-Shop verbinden"
|
150 |
+
|
151 |
+
msgid "To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings."
|
152 |
+
msgstr "Um Ihrem Shop zusätzliche Funktionen hinzuzufügen, ziehen Sie Ecwid-Shop-Elemente auf Ihre Website und legen Sie sie ab. Anschließend können Sie zur Anpassung Ihrer Einstellungen zurückgehen."
|
153 |
+
|
154 |
+
msgid "Back to Store Settings"
|
155 |
+
msgstr "Zurück zu Shopeinstellungen"
|
156 |
+
|
157 |
+
msgid "Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site."
|
158 |
+
msgstr "Gefällt Ihnen Ihr Ecwid-Onlineshop? Wir würden uns freuen, wenn Sie Ihren Kommentar und Bewertung für das Plugin auf der WordPress-Website hinterließen."
|
159 |
+
|
160 |
+
msgid "Rate Ecwid at WordPress.org"
|
161 |
+
msgstr "Bewerten Sie Ecwid auf WordPress.org"
|
162 |
+
|
163 |
+
msgid "Add Store"
|
164 |
+
msgstr "Shop hinzufügen"
|
165 |
+
|
166 |
+
msgid "Edit Store"
|
167 |
+
msgstr "Shop bearbeiten"
|
168 |
+
|
169 |
+
msgid "Edit Appearance"
|
170 |
+
msgstr "Ansicht bearbeiten"
|
171 |
+
|
172 |
+
msgid "Price"
|
173 |
+
msgstr "Preis"
|
174 |
+
|
175 |
+
msgid "Never show this message again"
|
176 |
+
msgstr "diese Meldung nicht mehr anzeigen"
|
177 |
+
|
178 |
+
msgid "Ecwid Shopping Cart — Advanced settings"
|
179 |
+
msgstr "Ecwid-Onlineshop — Erweiterte Einstellungen"
|
180 |
+
|
181 |
+
msgid "Category shown by default"
|
182 |
+
msgstr "standardmäßig angezeigte Kategorie"
|
183 |
+
|
184 |
+
msgid "Store root category"
|
185 |
+
msgstr "Shop-Grundkategorie"
|
186 |
+
|
187 |
+
msgid "Default category ID"
|
188 |
+
msgstr "Standardkategorien-ID"
|
189 |
+
|
190 |
+
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
191 |
+
msgstr "Standardmäßig zeigt der Shop eine Liste von Grundkategorien an. Sie können diese Einstellung überschreiben und eine andere Kategorie anzeigen, wenn Kunden Ihren Shop zum ersten Mal öffnen. Dies ist sinnvoll, wenn Sie nur eine Kategorie haben oder allen neuen Besuchern einen bestimmten Satz von Artikeln (z.B. \"Ausgewählte Produkte\") anzeigen möchten."
|
192 |
+
|
193 |
+
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
194 |
+
msgstr "Zur Einstellung dieser Option <a %s>suchen Sie die ID der nötigen Kategorie</a> und speichern Sie diese hier."
|
195 |
+
|
196 |
+
msgid "Single Sign-On Secret Key"
|
197 |
+
msgstr "Single-Sign-on-Sicherheitsschlüssel"
|
198 |
+
|
199 |
+
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
200 |
+
msgstr "Diese optionale Funktion bietet Single-Sign-On: Wenn Kunden auf Ihrer Website eingeloggt sind, sind sie automatisch auch in Ihrem Ecwid-Onlineshop eingeloggt, selbst wenn sie bisher noch kein Konto für den Shop hatten. Die Aktivierung dieser Funktion ist sinnvoll, wenn Ihre Besucher eigentlich Konten auf Ihrer WordPress-Website erstellen."
|
201 |
+
|
202 |
+
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
203 |
+
msgstr "Zur Aktivierung dieser Funktion wählen Sie die Verwendung eines Sicherheitsschlüssels. Diesen Schlüssel finden Sie in Ihrem Ecwid-Steuermenü unter \"Systemeinstellungen > Apps > Alte API-Schlüssel > Sicherheitsschlüssel einmaliges Einloggen\". Diese Funktion ist nur bei <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">kostenpflichtigen Paketen</a> verfügbar."
|
204 |
+
|
205 |
+
msgid "Save changes"
|
206 |
+
msgstr "Änderungen speichern"
|
207 |
+
|
208 |
+
msgid "Ecwid Shopping Cart — Appearance settings"
|
209 |
+
msgstr "Ecwid-Onlineshop — Anzeigeneinstellungen"
|
210 |
+
|
211 |
+
msgid "Display search box above products"
|
212 |
+
msgstr "Suchfeld oberhalb der Artikel anzeigen"
|
213 |
+
|
214 |
+
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
215 |
+
msgstr "Oder fügen Sie der Toolbar Ihrer Website mit den <a href=\"%s\">vorhandenen WordPress-Widgets</a> ein Suchfeld hinzu"
|
216 |
+
|
217 |
+
msgid "Display horizontal categories above products"
|
218 |
+
msgstr "horizontale Kategorien oberhalb der Artikel anzeigen"
|
219 |
+
|
220 |
+
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
221 |
+
msgstr "Oder fügen Sie der Toolbar Ihrer Website mit den <a href=\"%s\">vorhandenen WordPress-Widgets</a> vertikale Kategorien hinzu"
|
222 |
+
|
223 |
+
msgid "Enable minicart attached to horizontal categories"
|
224 |
+
msgstr "Miniwarenkorb Ihres Shops an horizontale Kategorien heften"
|
225 |
+
|
226 |
+
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
227 |
+
msgstr "Diese Option sollten Sie deaktivieren, wenn Sie den Miniwarenkorb der Seitenleiste Ihrer Website hinzugefügt haben"
|
228 |
+
|
229 |
+
msgid "Number of categories per row"
|
230 |
+
msgstr "Anzahl Kategorien pro Zeile"
|
231 |
+
|
232 |
+
msgid "Number of products per page"
|
233 |
+
msgstr "Anzahl Kategorien pro Seite"
|
234 |
+
|
235 |
+
msgid "Grid view"
|
236 |
+
msgstr "Gitteransicht"
|
237 |
+
|
238 |
+
msgid "List view"
|
239 |
+
msgstr "Listenansicht"
|
240 |
+
|
241 |
+
msgid "Table view"
|
242 |
+
msgstr "Tabellenansicht"
|
243 |
+
|
244 |
+
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
245 |
+
msgstr "Hier können Sie einstellen, wie viele Artikel pro Seite angezeigt werden sollen. Diese Optionen legen Maximalwerte fest. Falls nicht ausreichend Platz ist, um alle Artikelspalten anzuzeigen, passt Ecwid zur Berücksichtigung aller Artikel die Anzahl der Spalten an."
|
246 |
+
|
247 |
+
msgid "Default view mode on product pages"
|
248 |
+
msgstr "Standardanzeigemodus auf Artikelseiten"
|
249 |
+
|
250 |
+
msgid "Grid"
|
251 |
+
msgstr "Gitter"
|
252 |
+
|
253 |
+
msgid "List"
|
254 |
+
msgstr "Liste"
|
255 |
+
|
256 |
+
msgid "Table"
|
257 |
+
msgstr "Tabelle"
|
258 |
+
|
259 |
+
msgid "Default view mode on search results"
|
260 |
+
msgstr "Standardanzeigemodus für Suchergebnisse"
|
261 |
+
|
262 |
+
msgid "Connect your store<br /> to this WordPress site"
|
263 |
+
msgstr "Verbinden Sie Ihren Shop<br />mit dieser WordPress-Website"
|
264 |
+
|
265 |
+
msgid "Connect Ecwid store"
|
266 |
+
msgstr "Ecwid-Shop verbinden"
|
267 |
+
|
268 |
+
msgid "After clicking button you need to login and accept permissions to use our plugin"
|
269 |
+
msgstr "Nach Klick auf die Schaltfläche müssen Sie sich einloggen und zur Nutzung unseres Plugins Zugriffsrechte erteilen"
|
270 |
+
|
271 |
+
msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again."
|
272 |
+
msgstr "Verbindungsfehler - nach Klick auf die Schaltfläche müssen Sie sich einloggen und zur Nutzung unseres Plugins Zugriffsrechte erteilen. Bitte versuchen Sie es erneut."
|
273 |
+
|
274 |
+
msgid "Don't have Ecwid account? Create it here"
|
275 |
+
msgstr "Haben Sie noch kein Ecwid-Konto? Legen Sie hier eins an"
|
276 |
+
|
277 |
+
msgid "Questions? Visit <a %s>Ecwid support center</a>"
|
278 |
+
msgstr "Fragen? Gehen Sie zum <a %s>Ecwid-Hilfebereich</a>"
|
279 |
+
|
280 |
+
msgid "Store ID"
|
281 |
+
msgstr "Shop-ID"
|
282 |
+
|
283 |
+
msgid "Disconnect store"
|
284 |
+
msgstr "Shopverbindung trennen"
|
285 |
+
|
286 |
+
msgid "Congratulations!"
|
287 |
+
msgstr "Herzlichen Glückwunsch!"
|
288 |
+
|
289 |
+
msgid "Your Ecwid store is now connected<br /> to your WordPress website"
|
290 |
+
msgstr "Ihr Ecwid-Shop ist jetzt mit Ihrer<br />WordPress-Website verbunden"
|
291 |
+
|
292 |
+
msgid "Greetings!"
|
293 |
+
msgstr "Hallo!"
|
294 |
+
|
295 |
+
msgid "Your Ecwid store is connected<br /> to your WordPress website"
|
296 |
+
msgstr "Ihr Ecwid-Shop ist mit Ihrer<br />WordPress-Website verbunden"
|
297 |
+
|
298 |
+
msgid "Open control panel"
|
299 |
+
msgstr "Steuermenü öffnen"
|
300 |
+
|
301 |
+
msgid "Plugin is installed successfully!"
|
302 |
+
msgstr "Plugin erfolgreich installiert!"
|
303 |
+
|
304 |
+
msgid "There are just a few steps left to start selling<br /> on your WordPress site"
|
305 |
+
msgstr "Nur noch wenige Schritte bis zum Verkaufsstart<br />auf Ihrer WordPress-Website"
|
306 |
+
|
307 |
+
msgid "There are few little steps left to start selling<br /> on your WordPress site"
|
308 |
+
msgstr "Nur noch wenige Schritte bis zum Verkaufsstart<br />auf Ihrer WordPress-Website"
|
309 |
+
|
310 |
+
msgid "Register"
|
311 |
+
msgstr "Anmelden"
|
312 |
+
|
313 |
+
msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required"
|
314 |
+
msgstr "Erstellen Sie ein kostenloses Ecwid-Konto, um Shop und Lagerbestand zu verwalten.<br />Kreditkarte nicht erforderlich"
|
315 |
+
|
316 |
+
msgid "Connect"
|
317 |
+
msgstr "Verbinden"
|
318 |
+
|
319 |
+
msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>"
|
320 |
+
msgstr "Fügen Sie Ihrer Website Ihren Ecwid-Shop <nobr>mit nur zwei Klicks</nobr> hinzu"
|
321 |
+
|
322 |
+
msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>"
|
323 |
+
msgstr "Verbinden Sie Ihren Ecwid-Shop mit dieser Website <nobr>mit nur zwei Klicks</nobr>"
|
324 |
+
|
325 |
+
msgid "Start selling"
|
326 |
+
msgstr "Mit Verkauf beginnen"
|
327 |
+
|
328 |
+
msgid "Your storefront is ready"
|
329 |
+
msgstr "Shopansicht ist fertig"
|
330 |
+
|
331 |
+
msgid "Create Ecwid store"
|
332 |
+
msgstr "Ecwid-Shop erstellen"
|
333 |
+
|
334 |
+
msgid "Connect your store"
|
335 |
+
msgstr "Shop verbinden"
|
336 |
+
|
337 |
+
msgid "Free registration, No credit card required"
|
338 |
+
msgstr "Kostenlose Anmeldung, keine Kreditkarte erforderlich"
|
339 |
+
|
340 |
+
msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site."
|
341 |
+
msgstr "Verbindungsfehler: Bitte klicken Sie erneut auf die Schaltfläche und erteilen Sie Zugriffsrechte für dieses Plugin,<br />um Ihren Ecwid-Shop auf dieser Website anzuzeigen."
|
342 |
+
|
343 |
+
msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site"
|
344 |
+
msgstr "Sie werden zum Einloggen in Ihr Ecwid-Steuermenü <br />und zur Erteilung von Zugriffsrechten aufgefordert, um Ihren Shop auf dieser Website anzuzeigen."
|
345 |
+
|
346 |
+
msgid "Already have Ecwid account?"
|
347 |
+
msgstr "Sie haben bereits ein Ecwid-Konto?"
|
348 |
+
|
349 |
+
msgid "Connect your store to Wordpress site"
|
350 |
+
msgstr "Shop mit WordPress-Website verbinden"
|
351 |
+
|
352 |
+
msgid "Don't have an Ecwid account?"
|
353 |
+
msgstr "Sie haben noch kein Ecwid-Konto?"
|
354 |
+
|
355 |
+
msgid "Register at Ecwid for free"
|
356 |
+
msgstr "Kostenlos bei Ecwid anmelden"
|
357 |
+
|
358 |
+
msgid "No credit card required"
|
359 |
+
msgstr "Kreditkarte nicht erforderlich"
|
360 |
+
|
361 |
+
msgid "Get ready to sell online"
|
362 |
+
msgstr "Jetzt online verkaufen"
|
363 |
+
|
364 |
+
msgid "Sell Everywhere<br>with your Ecwid store"
|
365 |
+
msgstr "Mit Ecwid-Shop<br>überall verkaufen"
|
366 |
+
|
367 |
+
msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com."
|
368 |
+
msgstr "Verkaufen Sie jetzt auf Ihrer WordPress-Website. Spiegeln Sie dann Ihren Shop auf Ihrer Facebook-Seite, Blog und Onlinemarktplätzen wie Google Shopping, Yahoo und Shopping.com."
|
369 |
+
|
370 |
+
msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store."
|
371 |
+
msgstr "Verwenden Sie die mobile Ecwid-Verkaufsstelle zum Einlesen von Kreditkarten und dem Verkauf von unterwegs. Bestellungen und Lagerbestand werden stets mit Ihrem Onlineshop synchronisiert."
|
372 |
+
|
373 |
+
msgid "Features"
|
374 |
+
msgstr "Funktionen"
|
375 |
+
|
376 |
+
msgid "Compatible with your theme"
|
377 |
+
msgstr "Mit Ihrem Design kompatibel"
|
378 |
+
|
379 |
+
msgid "Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box."
|
380 |
+
msgstr "Ecwid ist mit Ihrem vorgefertigten<br>WordPress Design \"%s\"<br>kompatibel."
|
381 |
+
|
382 |
+
msgid "Free and always up to date"
|
383 |
+
msgstr "Kostenlos und immer aktuell"
|
384 |
+
|
385 |
+
msgid "Free plan always available with tons of features<br>at no additional cost. Seamless upgrades occur<br>automatically for free."
|
386 |
+
msgstr "Kostenlose Pakete immer mit unzähligen Funktionen<br>ohne zusätzliche Kosten. Reibungslose Aktualisierungen werden<br>automatisch und kostenlos durchgeführt."
|
387 |
+
|
388 |
+
msgid "Responsive design"
|
389 |
+
msgstr "Adaptives Design"
|
390 |
+
|
391 |
+
msgid "Your store looks perfect<br />on all devices"
|
392 |
+
msgstr "Ihr Shop sieht auf allen<br />Endgeräten perfekt aus"
|
393 |
+
|
394 |
+
msgid "PCI-DSS Certified"
|
395 |
+
msgstr "PCI-DSS-zertifiziert"
|
396 |
+
|
397 |
+
msgid "Secure checkout with over 40<br />payment options"
|
398 |
+
msgstr "sichere Zahlung mit über 40<br />Zahlungsoptionen"
|
399 |
+
|
400 |
+
msgid "Global Reach"
|
401 |
+
msgstr "globale Reichweite"
|
402 |
+
|
403 |
+
msgid "More than 700,000 merchants in 175 countries"
|
404 |
+
msgstr "über 700.000 Verkäufer in 175 Ländern"
|
405 |
+
|
406 |
+
msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>"
|
407 |
+
msgstr "Verkaufen Sie jetzt kostenlos<br>auf Ihrer WordPress-<nobr>Website</nobr>"
|
408 |
+
|
409 |
+
msgid "Get Started, Create Ecwid Account"
|
410 |
+
msgstr "Steigen Sie jetzt ein, erstellen Sie ein Ecwid-Konto"
|
411 |
+
|
412 |
+
msgid "Connect your store to this site"
|
413 |
+
msgstr "Shop mit dieser Website verbinden"
|
414 |
+
|
415 |
+
msgid "Reconnect your store<br /> to this WordPress site"
|
416 |
+
msgstr "Shop mit dieser WordPress-Website<br />wieder verbinden"
|
417 |
+
|
418 |
+
msgid "Reconnect Ecwid store"
|
419 |
+
msgstr "Ecwid-Shop wieder verbinden"
|
420 |
+
|
421 |
+
msgid "New features available, reconnect to be in touch with our updates"
|
422 |
+
msgstr "Neue Funktionen verfügbar, stellen Sie die Verbindung wieder her, um unsere Aktualisierungen zu erhalten"
|
423 |
+
|
424 |
+
msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>"
|
425 |
+
msgstr "Fragen? Wechseln Sie zum <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid-Supportcenter</a>"
|
426 |
+
|
427 |
+
msgid "Store settings"
|
428 |
+
msgstr "Shopeinstellungen"
|
429 |
+
|
430 |
+
msgid "Choose widgets to show"
|
431 |
+
msgstr "Anzuzeigende Widgets wählen"
|
432 |
+
|
433 |
+
msgid "Product catalog will be shown automatically"
|
434 |
+
msgstr "Artikelkatalog wird automatisch angezeigt"
|
435 |
+
|
436 |
+
msgid "Show search"
|
437 |
+
msgstr "Suche anzeigen"
|
438 |
+
|
439 |
+
msgid "Show minicart"
|
440 |
+
msgstr "Miniwarenkorb anzeigen"
|
441 |
+
|
442 |
+
msgid "Show horizontal categories"
|
443 |
+
msgstr "Kategorien horizontal anzeigen"
|
444 |
+
|
445 |
+
msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>"
|
446 |
+
msgstr "Zusätzlich können Sie der Funktionsleiste Ihrer Website Shopsteuerelemente mit <a %s>eigenen WordPress-Widgets</a> hinzufügen"
|
447 |
+
|
448 |
+
msgid "Demo store"
|
449 |
+
msgstr "Demoshop"
|
450 |
+
|
451 |
+
msgid "Ecwid plugin settings"
|
452 |
+
msgstr "Ecwid-Plugineinstellungen"
|
453 |
+
|
454 |
+
msgid "Your store will be shown here!"
|
455 |
+
msgstr "Hier wird Ihr Shop angezeigt!"
|
456 |
+
|
457 |
+
msgid "Demo Store"
|
458 |
+
msgstr "Demoshop"
|
459 |
+
|
languages/ecwid-shopping-cart-es_ES.po
CHANGED
@@ -1,261 +1,261 @@
|
|
1 |
-
|
2 |
-
msgid "Ecwid Shopping Cart"
|
3 |
-
msgstr ""
|
4 |
-
|
5 |
-
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
6 |
-
msgstr ""
|
7 |
-
|
8 |
-
msgid "Ecwid Team"
|
9 |
-
msgstr ""
|
10 |
-
|
11 |
-
msgid "Get help"
|
12 |
-
msgstr "Obtener ayuda"
|
13 |
-
|
14 |
-
msgid "Go to Ecwid site"
|
15 |
-
msgstr "Ir al sitio Ecwid"
|
16 |
-
|
17 |
-
msgid "Visit storefront"
|
18 |
-
msgstr "Visitar escaparate"
|
19 |
-
|
20 |
-
msgid "Manage my store"
|
21 |
-
msgstr "Gestionar mi tienda"
|
22 |
-
|
23 |
-
msgid "Manage plugin settings"
|
24 |
-
msgstr "Administrar la configuración de conexión"
|
25 |
-
|
26 |
-
msgid "→ Sell on Facebook"
|
27 |
-
msgstr "→ Vender en Facebook"
|
28 |
-
|
29 |
-
msgid "Online store powered by <a %s>Ecwid</a>"
|
30 |
-
msgstr ""
|
31 |
-
|
32 |
-
msgid "Store"
|
33 |
-
msgstr "Tienda"
|
34 |
-
|
35 |
-
msgid "<strong>Ecwid shopping cart is almost ready</strong>. Please visit <a target=\"_blank\" href=\"%s\">the created page</a> to see your store with demo products. In order to finish the installation, please go to the <a href=\"admin.php?page=ecwid\"><strong>Ecwid settings</strong></a> and configure the plugin."
|
36 |
-
msgstr "<strong>Ecwid la tarjeta de compras Ecwid está casi lista </strong>. Por favor visite <a target=\"_blank\" href=\"%s\">la página creada </a> para ver su tienda con productos de demostración. Para finalizar la instalación, por favor vaya a <a href=\"admin.php?page=ecwid\"><strong>ajustes Ecwid</strong></a> y configure la conexión."
|
37 |
-
|
38 |
-
msgid "Do you like your Ecwid online store? We'd appreciate it if you <a %s>add your review and vote</a> for the plugin on Wordpress site. (<a id=\"hide-vote-message\">Close</a> and do not show this message anymore)"
|
39 |
-
msgstr ""
|
40 |
-
|
41 |
-
msgid "Ecwid shopping cart settings"
|
42 |
-
msgstr ""
|
43 |
-
|
44 |
-
msgid "Ecwid Store"
|
45 |
-
msgstr "Tienda Ecwid"
|
46 |
-
|
47 |
-
msgid "General settings"
|
48 |
-
msgstr "Configuración general"
|
49 |
-
|
50 |
-
msgid "General"
|
51 |
-
msgstr "General"
|
52 |
-
|
53 |
-
msgid "Appearance settings"
|
54 |
-
msgstr "Opciones de aspecto"
|
55 |
-
|
56 |
-
msgid "Appearance"
|
57 |
-
msgstr "Aspecto"
|
58 |
-
|
59 |
-
msgid "Advanced settings"
|
60 |
-
msgstr "Opciones avanzadas"
|
61 |
-
|
62 |
-
msgid "Advanced"
|
63 |
-
msgstr "Avanzadas"
|
64 |
-
|
65 |
-
msgid "Setup"
|
66 |
-
msgstr ""
|
67 |
-
|
68 |
-
msgid "Your store's minicart"
|
69 |
-
msgstr "Mini carro de su tienda"
|
70 |
-
|
71 |
-
msgid "Ecwid Shopping Bag (Normal)"
|
72 |
-
msgstr "Bolsa de compras Ecwid (Normal)"
|
73 |
-
|
74 |
-
msgid "Ecwid Shopping Bag (Mini view)"
|
75 |
-
msgstr "Bolsa de compras Ecwid (Mini vista)"
|
76 |
-
|
77 |
-
msgid "Your store's search box"
|
78 |
-
msgstr "Caja de búsqueda de tu tienda"
|
79 |
-
|
80 |
-
msgid "Ecwid Search Box"
|
81 |
-
msgstr "Caja de búsqueda Ecwid"
|
82 |
-
|
83 |
-
msgid "Vertical menu of categories"
|
84 |
-
msgstr "Menú vertical de categorías"
|
85 |
-
|
86 |
-
msgid "Ecwid Vertical Categories"
|
87 |
-
msgstr "Categorías verticales Ecwid"
|
88 |
-
|
89 |
-
msgid "Price"
|
90 |
-
msgstr ""
|
91 |
-
|
92 |
-
msgid "Ecwid Shopping Cart — Advanced settings"
|
93 |
-
msgstr "Carro de compras Ecwid — Opciones avanzadas"
|
94 |
-
|
95 |
-
msgid "Category shown by default"
|
96 |
-
msgstr "Categoría mostrada por defecto"
|
97 |
-
|
98 |
-
msgid "Store root category"
|
99 |
-
msgstr "Categoría raíz de la tienda"
|
100 |
-
|
101 |
-
msgid "Default category ID"
|
102 |
-
msgstr "Identificación de categoría estandar"
|
103 |
-
|
104 |
-
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
105 |
-
msgstr "Por defecto, la entrada principal muestra una lista de categorías de raíz. Puede anular este comportamiento y mostrar una categoría diferente cuando los clientes abren su tienda por primera vez. Es útil si usted tiene una sola categoría o quiere mostrar un conjunto específico de elementos (por ejemplo, \"productos destacados\") para todos los nuevos visitantes."
|
106 |
-
|
107 |
-
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
108 |
-
msgstr "Para fijar esta opción, <a %s> encuentre una identificación de la categoría necesaria </a> y guárdela aquí."
|
109 |
-
|
110 |
-
msgid "Single Sign-On Secret Key"
|
111 |
-
msgstr "Clave única secreta de registro"
|
112 |
-
|
113 |
-
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
114 |
-
msgstr "Esta característica opcional le permite activar la inscripción única: cuando los clientes han iniciado sesión en su página, también inician sesión automáticamente en su tienda Ecwid, incluso si antes no tenían una cuenta en la tienda. Tiene sentido activar esta característica, si sus visitantes en efecto crean cuentas en su página WordPress."
|
115 |
-
|
116 |
-
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > API > Single Sign-On API\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
117 |
-
msgstr "Para activar esta característica usted debería enviar una clave secreta. Encontrará esta clave en su panel de control Ecwid, en la página \"Configuración del sistema > API > Single Sign-on API\" . Esta característica está disponible sólo para <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">utilizadores de pago</a>."
|
118 |
-
|
119 |
-
msgid "Save changes"
|
120 |
-
msgstr "Guardar los cambios"
|
121 |
-
|
122 |
-
msgid "Ecwid Shopping Cart — Appearance settings"
|
123 |
-
msgstr "Tarjeta de Compras Ecwid — Ajustes de apariencia"
|
124 |
-
|
125 |
-
msgid "Display search box above products"
|
126 |
-
msgstr "Mostrar caja de búsqueda de productos de arriba"
|
127 |
-
|
128 |
-
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
129 |
-
msgstr "O puede añadir una caja de búsqueda a la barra de herramientas de su página web utilizando <a href=\"%s\">WordPress native widgets</a>"
|
130 |
-
|
131 |
-
msgid "Display horizontal categories above products"
|
132 |
-
msgstr "Mostrar categorías horizontales sobre los productos"
|
133 |
-
|
134 |
-
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
135 |
-
msgstr "O puede añadir categorías verticales a la barra de herramientas de su página utilizando <a href=\"%s\">WordPress native widgets</a>"
|
136 |
-
|
137 |
-
msgid "Enable minicart attached to horizontal categories"
|
138 |
-
msgstr "Active minicarrito unido a las categorías horizontales "
|
139 |
-
|
140 |
-
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
141 |
-
msgstr "Debería desabilitar esta opción, si añade un minicarro a su página web barra lateral"
|
142 |
-
|
143 |
-
msgid "Number of categories per row"
|
144 |
-
msgstr "Número de categorías por fila"
|
145 |
-
|
146 |
-
msgid "Number of products per page"
|
147 |
-
msgstr "Número dde productos por página"
|
148 |
-
|
149 |
-
msgid "Grid view"
|
150 |
-
msgstr "Vista de cuadro"
|
151 |
-
|
152 |
-
msgid "List view"
|
153 |
-
msgstr "Vista de lista"
|
154 |
-
|
155 |
-
msgid "Table view"
|
156 |
-
msgstr "Vista de tabla"
|
157 |
-
|
158 |
-
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
159 |
-
msgstr "Aquí usted puede controlar cuantos productos serán mostrados por página. Estas opciones definen valores maximos. Si no hay suficiente espacio para mostrar todas las cdolumnas de produtos, Ecwid adaptará el número de columnas para contener todos los productos."
|
160 |
-
|
161 |
-
msgid "Default view mode on product pages"
|
162 |
-
msgstr "Vista del modo predefinido en páginas de productos"
|
163 |
-
|
164 |
-
msgid "Grid"
|
165 |
-
msgstr "Cuadro"
|
166 |
-
|
167 |
-
msgid "List"
|
168 |
-
msgstr "Lista"
|
169 |
-
|
170 |
-
msgid "Table"
|
171 |
-
msgstr "Tabla"
|
172 |
-
|
173 |
-
msgid "Default view mode on search results"
|
174 |
-
msgstr "Vista del modo predefinido en búsqueda de resultados"
|
175 |
-
|
176 |
-
msgid "Store powered by Ecwid"
|
177 |
-
msgstr ""
|
178 |
-
|
179 |
-
msgid "Ecwid Shopping Cart — General settings"
|
180 |
-
msgstr "Carro de Compras Ecwid — Configuración general"
|
181 |
-
|
182 |
-
msgid "Thank you for choosing Ecwid to build your online store"
|
183 |
-
msgstr "Gracias por elegir Ecwid para cosntruir su tienda online"
|
184 |
-
|
185 |
-
msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps."
|
186 |
-
msgstr "El primer paso para abrir su negocio online: <br /> Vamos a empezar y añadir una tienda a su página web WordPress en <strong>3</strong> simples pasos."
|
187 |
-
|
188 |
-
msgid "Register at Ecwid"
|
189 |
-
msgstr "Registrarse en Ecwid"
|
190 |
-
|
191 |
-
msgid "Create a new Ecwid account which you will use to manage your store and inventory. The registration is free."
|
192 |
-
msgstr "Crear una nueva cuenta Ecwid que utilizará para gestionar su tienda e inventario. El registro es gratuíto."
|
193 |
-
|
194 |
-
msgid "Create new Ecwid account"
|
195 |
-
msgstr "Crear una nueva cuenta Ecwid"
|
196 |
-
|
197 |
-
msgid "I already have Ecwid account, sign in"
|
198 |
-
msgstr "Ya tengo una cuenta Ecwid, registrar"
|
199 |
-
|
200 |
-
msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well."
|
201 |
-
msgstr "Será además capaz de inscribirse a través de su perfil Google, Facebook o PayPal."
|
202 |
-
|
203 |
-
msgid "Find your Store ID"
|
204 |
-
msgstr "Encuentre la Identificación de su tienda"
|
205 |
-
|
206 |
-
msgid "Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the \"Dashboard\" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration."
|
207 |
-
msgstr "El Identificador de su tienda es un Identificador único de cualquier tienda Ecwid, consiste en varios dígitos. Puede encontrarlo en la página \"Dashboard\" del panel de control Ecwid. Además la Identificación de la Tienda le será enviada en el e-mail de bienvenida después del registro."
|
208 |
-
|
209 |
-
msgid "Enter your Store ID"
|
210 |
-
msgstr "Introduzca la Identificación de su tienda "
|
211 |
-
|
212 |
-
msgid "Enter your Store ID here:"
|
213 |
-
msgstr "Introduzca la Identificación de su tienda aquí:"
|
214 |
-
|
215 |
-
msgid "Store ID"
|
216 |
-
msgstr "Identificación de tienda"
|
217 |
-
|
218 |
-
msgid "Save and connect your Ecwid store to the site"
|
219 |
-
msgstr "Guarde y conecte su tienda Ecwid al site"
|
220 |
-
|
221 |
-
msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>"
|
222 |
-
msgstr "Preguntas? Visite <a href=\"http://help.ecwid.com/?source=wporg\">el centro de ayuda Ecwid</a>"
|
223 |
-
|
224 |
-
msgid "Congratulations!"
|
225 |
-
msgstr "Enhorabuena!"
|
226 |
-
|
227 |
-
msgid "Your Ecwid store is now connected to your WordPress website"
|
228 |
-
msgstr "Su tienda Ecwid está conectada a su página web WordPress"
|
229 |
-
|
230 |
-
msgid "Greetings!"
|
231 |
-
msgstr "Saludos!"
|
232 |
-
|
233 |
-
msgid "Your Ecwid store is connected to your WordPress website"
|
234 |
-
msgstr "Su tienda Ecwid está conectadaa su página web WordPress"
|
235 |
-
|
236 |
-
msgid "Control panel"
|
237 |
-
msgstr "Panel de control"
|
238 |
-
|
239 |
-
msgid "Account status"
|
240 |
-
msgstr "Estado de cuenta"
|
241 |
-
|
242 |
-
msgid "Paid"
|
243 |
-
msgstr "Pagado"
|
244 |
-
|
245 |
-
msgid "Free"
|
246 |
-
msgstr "Gratis"
|
247 |
-
|
248 |
-
msgid "Thank you for supporting Ecwid!"
|
249 |
-
msgstr "Gracias por apoyar a Ecwid!"
|
250 |
-
|
251 |
-
msgid "Upgrade to get access to cool premium features."
|
252 |
-
msgstr "Actualice para obtener acceso a interesantes funciones avanzadas."
|
253 |
-
|
254 |
-
msgid "Billing and plans"
|
255 |
-
msgstr ""
|
256 |
-
|
257 |
-
msgid "Upgrade"
|
258 |
-
msgstr ""
|
259 |
-
|
260 |
-
msgid "If you want to connect another Ecwid store, you can <a %s>disconnect the current one and change Store ID</a>."
|
261 |
-
msgstr ""
|
1 |
+
|
2 |
+
msgid "Ecwid Shopping Cart"
|
3 |
+
msgstr ""
|
4 |
+
|
5 |
+
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
6 |
+
msgstr ""
|
7 |
+
|
8 |
+
msgid "Ecwid Team"
|
9 |
+
msgstr ""
|
10 |
+
|
11 |
+
msgid "Get help"
|
12 |
+
msgstr "Obtener ayuda"
|
13 |
+
|
14 |
+
msgid "Go to Ecwid site"
|
15 |
+
msgstr "Ir al sitio Ecwid"
|
16 |
+
|
17 |
+
msgid "Visit storefront"
|
18 |
+
msgstr "Visitar escaparate"
|
19 |
+
|
20 |
+
msgid "Manage my store"
|
21 |
+
msgstr "Gestionar mi tienda"
|
22 |
+
|
23 |
+
msgid "Manage plugin settings"
|
24 |
+
msgstr "Administrar la configuración de conexión"
|
25 |
+
|
26 |
+
msgid "→ Sell on Facebook"
|
27 |
+
msgstr "→ Vender en Facebook"
|
28 |
+
|
29 |
+
msgid "Online store powered by <a %s>Ecwid</a>"
|
30 |
+
msgstr ""
|
31 |
+
|
32 |
+
msgid "Store"
|
33 |
+
msgstr "Tienda"
|
34 |
+
|
35 |
+
msgid "<strong>Ecwid shopping cart is almost ready</strong>. Please visit <a target=\"_blank\" href=\"%s\">the created page</a> to see your store with demo products. In order to finish the installation, please go to the <a href=\"admin.php?page=ecwid\"><strong>Ecwid settings</strong></a> and configure the plugin."
|
36 |
+
msgstr "<strong>Ecwid la tarjeta de compras Ecwid está casi lista </strong>. Por favor visite <a target=\"_blank\" href=\"%s\">la página creada </a> para ver su tienda con productos de demostración. Para finalizar la instalación, por favor vaya a <a href=\"admin.php?page=ecwid\"><strong>ajustes Ecwid</strong></a> y configure la conexión."
|
37 |
+
|
38 |
+
msgid "Do you like your Ecwid online store? We'd appreciate it if you <a %s>add your review and vote</a> for the plugin on Wordpress site. (<a id=\"hide-vote-message\">Close</a> and do not show this message anymore)"
|
39 |
+
msgstr ""
|
40 |
+
|
41 |
+
msgid "Ecwid shopping cart settings"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
msgid "Ecwid Store"
|
45 |
+
msgstr "Tienda Ecwid"
|
46 |
+
|
47 |
+
msgid "General settings"
|
48 |
+
msgstr "Configuración general"
|
49 |
+
|
50 |
+
msgid "General"
|
51 |
+
msgstr "General"
|
52 |
+
|
53 |
+
msgid "Appearance settings"
|
54 |
+
msgstr "Opciones de aspecto"
|
55 |
+
|
56 |
+
msgid "Appearance"
|
57 |
+
msgstr "Aspecto"
|
58 |
+
|
59 |
+
msgid "Advanced settings"
|
60 |
+
msgstr "Opciones avanzadas"
|
61 |
+
|
62 |
+
msgid "Advanced"
|
63 |
+
msgstr "Avanzadas"
|
64 |
+
|
65 |
+
msgid "Setup"
|
66 |
+
msgstr ""
|
67 |
+
|
68 |
+
msgid "Your store's minicart"
|
69 |
+
msgstr "Mini carro de su tienda"
|
70 |
+
|
71 |
+
msgid "Ecwid Shopping Bag (Normal)"
|
72 |
+
msgstr "Bolsa de compras Ecwid (Normal)"
|
73 |
+
|
74 |
+
msgid "Ecwid Shopping Bag (Mini view)"
|
75 |
+
msgstr "Bolsa de compras Ecwid (Mini vista)"
|
76 |
+
|
77 |
+
msgid "Your store's search box"
|
78 |
+
msgstr "Caja de búsqueda de tu tienda"
|
79 |
+
|
80 |
+
msgid "Ecwid Search Box"
|
81 |
+
msgstr "Caja de búsqueda Ecwid"
|
82 |
+
|
83 |
+
msgid "Vertical menu of categories"
|
84 |
+
msgstr "Menú vertical de categorías"
|
85 |
+
|
86 |
+
msgid "Ecwid Vertical Categories"
|
87 |
+
msgstr "Categorías verticales Ecwid"
|
88 |
+
|
89 |
+
msgid "Price"
|
90 |
+
msgstr ""
|
91 |
+
|
92 |
+
msgid "Ecwid Shopping Cart — Advanced settings"
|
93 |
+
msgstr "Carro de compras Ecwid — Opciones avanzadas"
|
94 |
+
|
95 |
+
msgid "Category shown by default"
|
96 |
+
msgstr "Categoría mostrada por defecto"
|
97 |
+
|
98 |
+
msgid "Store root category"
|
99 |
+
msgstr "Categoría raíz de la tienda"
|
100 |
+
|
101 |
+
msgid "Default category ID"
|
102 |
+
msgstr "Identificación de categoría estandar"
|
103 |
+
|
104 |
+
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
105 |
+
msgstr "Por defecto, la entrada principal muestra una lista de categorías de raíz. Puede anular este comportamiento y mostrar una categoría diferente cuando los clientes abren su tienda por primera vez. Es útil si usted tiene una sola categoría o quiere mostrar un conjunto específico de elementos (por ejemplo, \"productos destacados\") para todos los nuevos visitantes."
|
106 |
+
|
107 |
+
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
108 |
+
msgstr "Para fijar esta opción, <a %s> encuentre una identificación de la categoría necesaria </a> y guárdela aquí."
|
109 |
+
|
110 |
+
msgid "Single Sign-On Secret Key"
|
111 |
+
msgstr "Clave única secreta de registro"
|
112 |
+
|
113 |
+
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
114 |
+
msgstr "Esta característica opcional le permite activar la inscripción única: cuando los clientes han iniciado sesión en su página, también inician sesión automáticamente en su tienda Ecwid, incluso si antes no tenían una cuenta en la tienda. Tiene sentido activar esta característica, si sus visitantes en efecto crean cuentas en su página WordPress."
|
115 |
+
|
116 |
+
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > API > Single Sign-On API\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
117 |
+
msgstr "Para activar esta característica usted debería enviar una clave secreta. Encontrará esta clave en su panel de control Ecwid, en la página \"Configuración del sistema > API > Single Sign-on API\" . Esta característica está disponible sólo para <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">utilizadores de pago</a>."
|
118 |
+
|
119 |
+
msgid "Save changes"
|
120 |
+
msgstr "Guardar los cambios"
|
121 |
+
|
122 |
+
msgid "Ecwid Shopping Cart — Appearance settings"
|
123 |
+
msgstr "Tarjeta de Compras Ecwid — Ajustes de apariencia"
|
124 |
+
|
125 |
+
msgid "Display search box above products"
|
126 |
+
msgstr "Mostrar caja de búsqueda de productos de arriba"
|
127 |
+
|
128 |
+
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
129 |
+
msgstr "O puede añadir una caja de búsqueda a la barra de herramientas de su página web utilizando <a href=\"%s\">WordPress native widgets</a>"
|
130 |
+
|
131 |
+
msgid "Display horizontal categories above products"
|
132 |
+
msgstr "Mostrar categorías horizontales sobre los productos"
|
133 |
+
|
134 |
+
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
135 |
+
msgstr "O puede añadir categorías verticales a la barra de herramientas de su página utilizando <a href=\"%s\">WordPress native widgets</a>"
|
136 |
+
|
137 |
+
msgid "Enable minicart attached to horizontal categories"
|
138 |
+
msgstr "Active minicarrito unido a las categorías horizontales "
|
139 |
+
|
140 |
+
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
141 |
+
msgstr "Debería desabilitar esta opción, si añade un minicarro a su página web barra lateral"
|
142 |
+
|
143 |
+
msgid "Number of categories per row"
|
144 |
+
msgstr "Número de categorías por fila"
|
145 |
+
|
146 |
+
msgid "Number of products per page"
|
147 |
+
msgstr "Número dde productos por página"
|
148 |
+
|
149 |
+
msgid "Grid view"
|
150 |
+
msgstr "Vista de cuadro"
|
151 |
+
|
152 |
+
msgid "List view"
|
153 |
+
msgstr "Vista de lista"
|
154 |
+
|
155 |
+
msgid "Table view"
|
156 |
+
msgstr "Vista de tabla"
|
157 |
+
|
158 |
+
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
159 |
+
msgstr "Aquí usted puede controlar cuantos productos serán mostrados por página. Estas opciones definen valores maximos. Si no hay suficiente espacio para mostrar todas las cdolumnas de produtos, Ecwid adaptará el número de columnas para contener todos los productos."
|
160 |
+
|
161 |
+
msgid "Default view mode on product pages"
|
162 |
+
msgstr "Vista del modo predefinido en páginas de productos"
|
163 |
+
|
164 |
+
msgid "Grid"
|
165 |
+
msgstr "Cuadro"
|
166 |
+
|
167 |
+
msgid "List"
|
168 |
+
msgstr "Lista"
|
169 |
+
|
170 |
+
msgid "Table"
|
171 |
+
msgstr "Tabla"
|
172 |
+
|
173 |
+
msgid "Default view mode on search results"
|
174 |
+
msgstr "Vista del modo predefinido en búsqueda de resultados"
|
175 |
+
|
176 |
+
msgid "Store powered by Ecwid"
|
177 |
+
msgstr ""
|
178 |
+
|
179 |
+
msgid "Ecwid Shopping Cart — General settings"
|
180 |
+
msgstr "Carro de Compras Ecwid — Configuración general"
|
181 |
+
|
182 |
+
msgid "Thank you for choosing Ecwid to build your online store"
|
183 |
+
msgstr "Gracias por elegir Ecwid para cosntruir su tienda online"
|
184 |
+
|
185 |
+
msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps."
|
186 |
+
msgstr "El primer paso para abrir su negocio online: <br /> Vamos a empezar y añadir una tienda a su página web WordPress en <strong>3</strong> simples pasos."
|
187 |
+
|
188 |
+
msgid "Register at Ecwid"
|
189 |
+
msgstr "Registrarse en Ecwid"
|
190 |
+
|
191 |
+
msgid "Create a new Ecwid account which you will use to manage your store and inventory. The registration is free."
|
192 |
+
msgstr "Crear una nueva cuenta Ecwid que utilizará para gestionar su tienda e inventario. El registro es gratuíto."
|
193 |
+
|
194 |
+
msgid "Create new Ecwid account"
|
195 |
+
msgstr "Crear una nueva cuenta Ecwid"
|
196 |
+
|
197 |
+
msgid "I already have Ecwid account, sign in"
|
198 |
+
msgstr "Ya tengo una cuenta Ecwid, registrar"
|
199 |
+
|
200 |
+
msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well."
|
201 |
+
msgstr "Será además capaz de inscribirse a través de su perfil Google, Facebook o PayPal."
|
202 |
+
|
203 |
+
msgid "Find your Store ID"
|
204 |
+
msgstr "Encuentre la Identificación de su tienda"
|
205 |
+
|
206 |
+
msgid "Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the \"Dashboard\" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration."
|
207 |
+
msgstr "El Identificador de su tienda es un Identificador único de cualquier tienda Ecwid, consiste en varios dígitos. Puede encontrarlo en la página \"Dashboard\" del panel de control Ecwid. Además la Identificación de la Tienda le será enviada en el e-mail de bienvenida después del registro."
|
208 |
+
|
209 |
+
msgid "Enter your Store ID"
|
210 |
+
msgstr "Introduzca la Identificación de su tienda "
|
211 |
+
|
212 |
+
msgid "Enter your Store ID here:"
|
213 |
+
msgstr "Introduzca la Identificación de su tienda aquí:"
|
214 |
+
|
215 |
+
msgid "Store ID"
|
216 |
+
msgstr "Identificación de tienda"
|
217 |
+
|
218 |
+
msgid "Save and connect your Ecwid store to the site"
|
219 |
+
msgstr "Guarde y conecte su tienda Ecwid al site"
|
220 |
+
|
221 |
+
msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>"
|
222 |
+
msgstr "Preguntas? Visite <a href=\"http://help.ecwid.com/?source=wporg\">el centro de ayuda Ecwid</a>"
|
223 |
+
|
224 |
+
msgid "Congratulations!"
|
225 |
+
msgstr "Enhorabuena!"
|
226 |
+
|
227 |
+
msgid "Your Ecwid store is now connected to your WordPress website"
|
228 |
+
msgstr "Su tienda Ecwid está conectada a su página web WordPress"
|
229 |
+
|
230 |
+
msgid "Greetings!"
|
231 |
+
msgstr "Saludos!"
|
232 |
+
|
233 |
+
msgid "Your Ecwid store is connected to your WordPress website"
|
234 |
+
msgstr "Su tienda Ecwid está conectadaa su página web WordPress"
|
235 |
+
|
236 |
+
msgid "Control panel"
|
237 |
+
msgstr "Panel de control"
|
238 |
+
|
239 |
+
msgid "Account status"
|
240 |
+
msgstr "Estado de cuenta"
|
241 |
+
|
242 |
+
msgid "Paid"
|
243 |
+
msgstr "Pagado"
|
244 |
+
|
245 |
+
msgid "Free"
|
246 |
+
msgstr "Gratis"
|
247 |
+
|
248 |
+
msgid "Thank you for supporting Ecwid!"
|
249 |
+
msgstr "Gracias por apoyar a Ecwid!"
|
250 |
+
|
251 |
+
msgid "Upgrade to get access to cool premium features."
|
252 |
+
msgstr "Actualice para obtener acceso a interesantes funciones avanzadas."
|
253 |
+
|
254 |
+
msgid "Billing and plans"
|
255 |
+
msgstr ""
|
256 |
+
|
257 |
+
msgid "Upgrade"
|
258 |
+
msgstr ""
|
259 |
+
|
260 |
+
msgid "If you want to connect another Ecwid store, you can <a %s>disconnect the current one and change Store ID</a>."
|
261 |
+
msgstr ""
|
languages/ecwid-shopping-cart-fr_FR.po
CHANGED
@@ -1,261 +1,261 @@
|
|
1 |
-
|
2 |
-
msgid "Ecwid Shopping Cart"
|
3 |
-
msgstr ""
|
4 |
-
|
5 |
-
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
6 |
-
msgstr ""
|
7 |
-
|
8 |
-
msgid "Ecwid Team"
|
9 |
-
msgstr ""
|
10 |
-
|
11 |
-
msgid "Get help"
|
12 |
-
msgstr "Obtenir de l'assistance"
|
13 |
-
|
14 |
-
msgid "Go to Ecwid site"
|
15 |
-
msgstr "Aller au site Ecwid"
|
16 |
-
|
17 |
-
msgid "Visit storefront"
|
18 |
-
msgstr "Visiter la vitrine"
|
19 |
-
|
20 |
-
msgid "Manage my store"
|
21 |
-
msgstr "Gérer ma boutique"
|
22 |
-
|
23 |
-
msgid "Manage plugin settings"
|
24 |
-
msgstr "Gérer mes paramètres de plugin"
|
25 |
-
|
26 |
-
msgid "→ Sell on Facebook"
|
27 |
-
msgstr "→ Vendre sur Facebook"
|
28 |
-
|
29 |
-
msgid "Online store powered by <a %s>Ecwid</a>"
|
30 |
-
msgstr ""
|
31 |
-
|
32 |
-
msgid "Store"
|
33 |
-
msgstr "Boutique"
|
34 |
-
|
35 |
-
msgid "<strong>Ecwid shopping cart is almost ready</strong>. Please visit <a target=\"_blank\" href=\"%s\">the created page</a> to see your store with demo products. In order to finish the installation, please go to the <a href=\"admin.php?page=ecwid\"><strong>Ecwid settings</strong></a> and configure the plugin."
|
36 |
-
msgstr "<strong>Le panier virtuel Ecwid est quasiment prêt</strong>. Veuillez visiter <a target=\"_blank\" href=\"%s\">la page créée</a> pour voir votre boutique et des produits de démonstration. Afin de terminer l'installation, veuillez naviguer vers les <a href=\"admin.php?page=ecwid\"><strong>réglages Ecwid</strong></a> et configurer le plugin."
|
37 |
-
|
38 |
-
msgid "Do you like your Ecwid online store? We'd appreciate it if you <a %s>add your review and vote</a> for the plugin on Wordpress site. (<a id=\"hide-vote-message\">Close</a> and do not show this message anymore)"
|
39 |
-
msgstr ""
|
40 |
-
|
41 |
-
msgid "Ecwid shopping cart settings"
|
42 |
-
msgstr ""
|
43 |
-
|
44 |
-
msgid "Ecwid Store"
|
45 |
-
msgstr "Boutique Ecwid"
|
46 |
-
|
47 |
-
msgid "General settings"
|
48 |
-
msgstr "Réglages généraux"
|
49 |
-
|
50 |
-
msgid "General"
|
51 |
-
msgstr "Général"
|
52 |
-
|
53 |
-
msgid "Appearance settings"
|
54 |
-
msgstr "Réglages d'apparence"
|
55 |
-
|
56 |
-
msgid "Appearance"
|
57 |
-
msgstr "Apparence"
|
58 |
-
|
59 |
-
msgid "Advanced settings"
|
60 |
-
msgstr "Réglages avancés"
|
61 |
-
|
62 |
-
msgid "Advanced"
|
63 |
-
msgstr "Avancés"
|
64 |
-
|
65 |
-
msgid "Setup"
|
66 |
-
msgstr ""
|
67 |
-
|
68 |
-
msgid "Your store's minicart"
|
69 |
-
msgstr "Le mini-panier de votre boutique"
|
70 |
-
|
71 |
-
msgid "Ecwid Shopping Bag (Normal)"
|
72 |
-
msgstr "Le Panier Ecwid (Normal)"
|
73 |
-
|
74 |
-
msgid "Ecwid Shopping Bag (Mini view)"
|
75 |
-
msgstr "Le Panier Ecwid (Mini-vue)"
|
76 |
-
|
77 |
-
msgid "Your store's search box"
|
78 |
-
msgstr "La boîte de recherche de votre boutique"
|
79 |
-
|
80 |
-
msgid "Ecwid Search Box"
|
81 |
-
msgstr "Boîte de Recherche Ecwid"
|
82 |
-
|
83 |
-
msgid "Vertical menu of categories"
|
84 |
-
msgstr "Menu vertical de catégories"
|
85 |
-
|
86 |
-
msgid "Ecwid Vertical Categories"
|
87 |
-
msgstr "Catégories Verticales Ecwid"
|
88 |
-
|
89 |
-
msgid "Price"
|
90 |
-
msgstr ""
|
91 |
-
|
92 |
-
msgid "Ecwid Shopping Cart — Advanced settings"
|
93 |
-
msgstr "Panier Ecwid — Réglages avancés"
|
94 |
-
|
95 |
-
msgid "Category shown by default"
|
96 |
-
msgstr "Catégorie affichée par défaut"
|
97 |
-
|
98 |
-
msgid "Store root category"
|
99 |
-
msgstr "Catégorie racine de la boutique"
|
100 |
-
|
101 |
-
msgid "Default category ID"
|
102 |
-
msgstr "Numéro de la catégorie par défaut"
|
103 |
-
|
104 |
-
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
105 |
-
msgstr "Par défaut, la vitrine présente une liste de catégories racines. Vous pouvez changer ce comportement et afficher une catégorie différente lorsque les clients accèdent à votre boutique pour la première fois. Cette fonction est pratique lorsque vous n'avez qu'une seule catégorie ou si vous souhaitez afficher une gamme spécifique d'articles (par ex. \"Produits Phares\") à tous vos clients."
|
106 |
-
|
107 |
-
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
108 |
-
msgstr "Afin de régler cette option, <a %s>trouvez le numéro de catégorie nécessaire</a> puis sauvegardez-le ici."
|
109 |
-
|
110 |
-
msgid "Single Sign-On Secret Key"
|
111 |
-
msgstr "Clé Secrète Single Sign-on"
|
112 |
-
|
113 |
-
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
114 |
-
msgstr "Cette fonction optionnelle permet d'activer Single Sign-on : lorsque les clients sont authentifiés sur votre site, ils sont automatiquement connectés à votre boutique Ecwid, même s'ils n'avaient pas auparavant de compte dans la boutique. Il est logique d'activer cette fonction lorsque vos visiteurs créent typiquement un compte sur votre site WordPress."
|
115 |
-
|
116 |
-
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > API > Single Sign-On API\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
117 |
-
msgstr "Afin d'activer cette fonction vous devez soumettre une clé secrète. Vous trouverez cette clé dans votre panneau de contrôle Ecwid, sur la page \"Paramètres Système > API > Single Sign-on API\". Cette fonction n'est disponible que pour les <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">utilisateurs payants</a>."
|
118 |
-
|
119 |
-
msgid "Save changes"
|
120 |
-
msgstr "Sauvegarder les modifications"
|
121 |
-
|
122 |
-
msgid "Ecwid Shopping Cart — Appearance settings"
|
123 |
-
msgstr "Panier Ecwid — Réglages d'apparence"
|
124 |
-
|
125 |
-
msgid "Display search box above products"
|
126 |
-
msgstr "Afficher la boîte de recherche au-dessus des produits"
|
127 |
-
|
128 |
-
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
129 |
-
msgstr "Vous pouvez aussi ajouter une boîte de recherche à la barre d'outils de votre site via les <a href=\"%s\">widgets natifs de WordPress</a>"
|
130 |
-
|
131 |
-
msgid "Display horizontal categories above products"
|
132 |
-
msgstr "Afficher les catégories horizontales au-dessus des produits"
|
133 |
-
|
134 |
-
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
135 |
-
msgstr "Vous pouvez aussi ajouter des catégories verticales à la barre d'outils de votre site via les <a href=\"%s\">widgets natifs de WordPress</a>"
|
136 |
-
|
137 |
-
msgid "Enable minicart attached to horizontal categories"
|
138 |
-
msgstr "Activer le mini-panier attaché aux catégories horizontales"
|
139 |
-
|
140 |
-
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
141 |
-
msgstr "Cette option devrait être désactivée si vous avez ajouté un mini-panier à la barre latérale de votre site"
|
142 |
-
|
143 |
-
msgid "Number of categories per row"
|
144 |
-
msgstr "Nombre de catégories par rangée"
|
145 |
-
|
146 |
-
msgid "Number of products per page"
|
147 |
-
msgstr "Nombre de produits par page"
|
148 |
-
|
149 |
-
msgid "Grid view"
|
150 |
-
msgstr "Affichage Vignettes"
|
151 |
-
|
152 |
-
msgid "List view"
|
153 |
-
msgstr "Affichage Liste"
|
154 |
-
|
155 |
-
msgid "Table view"
|
156 |
-
msgstr "Affichage Tableau"
|
157 |
-
|
158 |
-
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
159 |
-
msgstr "Vous pouvez contrôler ici le nombre de produits affichés par page. Ces options définissent des valeurs maximales. S'il n'y pas assez de place pour afficher toutes les colonnes de produits, Ecwid modifiera le nombre de colonnes pour conserver tous les produits."
|
160 |
-
|
161 |
-
msgid "Default view mode on product pages"
|
162 |
-
msgstr "Mode d'affichage par défaut des pages de produits"
|
163 |
-
|
164 |
-
msgid "Grid"
|
165 |
-
msgstr "Vignettes"
|
166 |
-
|
167 |
-
msgid "List"
|
168 |
-
msgstr "Liste"
|
169 |
-
|
170 |
-
msgid "Table"
|
171 |
-
msgstr "Tableau"
|
172 |
-
|
173 |
-
msgid "Default view mode on search results"
|
174 |
-
msgstr "Mode d'affichage par défaut des résultats de recherche"
|
175 |
-
|
176 |
-
msgid "Store powered by Ecwid"
|
177 |
-
msgstr ""
|
178 |
-
|
179 |
-
msgid "Ecwid Shopping Cart — General settings"
|
180 |
-
msgstr "Panier Ecwid — Réglages généraux"
|
181 |
-
|
182 |
-
msgid "Thank you for choosing Ecwid to build your online store"
|
183 |
-
msgstr "Merci d'avoir choisi Ecwid pour construire votre boutique en ligne"
|
184 |
-
|
185 |
-
msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps."
|
186 |
-
msgstr "La première étape vers l'ouverture de votre commerce en ligne : <br />Lançons-nous et ajoutons une boutique à votre site WordPress en <strong>3</strong> étapes faciles."
|
187 |
-
|
188 |
-
msgid "Register at Ecwid"
|
189 |
-
msgstr "Inscrivez-vous chez Ecwid"
|
190 |
-
|
191 |
-
msgid "Create a new Ecwid account which you will use to manage your store and inventory. The registration is free."
|
192 |
-
msgstr "Créez un nouveau compte Ecwid afin de pouvoir gérer votre boutique et votre inventaire. L'inscription est gratuite."
|
193 |
-
|
194 |
-
msgid "Create new Ecwid account"
|
195 |
-
msgstr "Créer un nouveau compte Ecwid"
|
196 |
-
|
197 |
-
msgid "I already have Ecwid account, sign in"
|
198 |
-
msgstr "J'ai déjà un compte Ecwid, se connecter"
|
199 |
-
|
200 |
-
msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well."
|
201 |
-
msgstr "Vous pourrez aussi vous connecter avec vos comptes Google, Facebook ou PayPal existants."
|
202 |
-
|
203 |
-
msgid "Find your Store ID"
|
204 |
-
msgstr "Trouver votre Numéro de Boutique."
|
205 |
-
|
206 |
-
msgid "Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the \"Dashboard\" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration."
|
207 |
-
msgstr "Le Numéro de Boutique est le code unique de votre boutique Ecwid, il est constitué de plusieurs chiffres. Vous pouvez le trouver sur la page \"Tableau de Bord\" du panneau de contrôle d'Ecwid. Le Numéro de Boutique sera aussi envoyé dans l'email de bienvenu après l'inscription."
|
208 |
-
|
209 |
-
msgid "Enter your Store ID"
|
210 |
-
msgstr "Entrer votre Numéro de Boutique"
|
211 |
-
|
212 |
-
msgid "Enter your Store ID here:"
|
213 |
-
msgstr "Entrez votre Numéro de Boutique ici :"
|
214 |
-
|
215 |
-
msgid "Store ID"
|
216 |
-
msgstr "Numéro de Boutique"
|
217 |
-
|
218 |
-
msgid "Save and connect your Ecwid store to the site"
|
219 |
-
msgstr "Sauvegardez et connectez votre boutique Ecwid au site."
|
220 |
-
|
221 |
-
msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>"
|
222 |
-
msgstr "Des questions? Visitez le <a href=\"http://help.ecwid.com/?source=wporg\">centre d'assistance Ecwid</a>"
|
223 |
-
|
224 |
-
msgid "Congratulations!"
|
225 |
-
msgstr "Félicitations !"
|
226 |
-
|
227 |
-
msgid "Your Ecwid store is now connected to your WordPress website"
|
228 |
-
msgstr "Votre boutique Ecwid est maintenant connectée à votre site WordPress"
|
229 |
-
|
230 |
-
msgid "Greetings!"
|
231 |
-
msgstr "Salutations !"
|
232 |
-
|
233 |
-
msgid "Your Ecwid store is connected to your WordPress website"
|
234 |
-
msgstr "Votre boutique Ecwid est connectée à votre site WordPress"
|
235 |
-
|
236 |
-
msgid "Control panel"
|
237 |
-
msgstr "Panneau de contrôle"
|
238 |
-
|
239 |
-
msgid "Account status"
|
240 |
-
msgstr "Statut du compte"
|
241 |
-
|
242 |
-
msgid "Paid"
|
243 |
-
msgstr "Payant"
|
244 |
-
|
245 |
-
msgid "Free"
|
246 |
-
msgstr "Gratuit"
|
247 |
-
|
248 |
-
msgid "Thank you for supporting Ecwid!"
|
249 |
-
msgstr "Merci pour le soutien apporté à Ecwid !"
|
250 |
-
|
251 |
-
msgid "Upgrade to get access to cool premium features."
|
252 |
-
msgstr "Surclassez votre compte pour accéder à de super fonctionnalités premium."
|
253 |
-
|
254 |
-
msgid "Billing and plans"
|
255 |
-
msgstr ""
|
256 |
-
|
257 |
-
msgid "Upgrade"
|
258 |
-
msgstr ""
|
259 |
-
|
260 |
-
msgid "If you want to connect another Ecwid store, you can <a %s>disconnect the current one and change Store ID</a>."
|
261 |
-
msgstr ""
|
1 |
+
|
2 |
+
msgid "Ecwid Shopping Cart"
|
3 |
+
msgstr ""
|
4 |
+
|
5 |
+
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
6 |
+
msgstr ""
|
7 |
+
|
8 |
+
msgid "Ecwid Team"
|
9 |
+
msgstr ""
|
10 |
+
|
11 |
+
msgid "Get help"
|
12 |
+
msgstr "Obtenir de l'assistance"
|
13 |
+
|
14 |
+
msgid "Go to Ecwid site"
|
15 |
+
msgstr "Aller au site Ecwid"
|
16 |
+
|
17 |
+
msgid "Visit storefront"
|
18 |
+
msgstr "Visiter la vitrine"
|
19 |
+
|
20 |
+
msgid "Manage my store"
|
21 |
+
msgstr "Gérer ma boutique"
|
22 |
+
|
23 |
+
msgid "Manage plugin settings"
|
24 |
+
msgstr "Gérer mes paramètres de plugin"
|
25 |
+
|
26 |
+
msgid "→ Sell on Facebook"
|
27 |
+
msgstr "→ Vendre sur Facebook"
|
28 |
+
|
29 |
+
msgid "Online store powered by <a %s>Ecwid</a>"
|
30 |
+
msgstr ""
|
31 |
+
|
32 |
+
msgid "Store"
|
33 |
+
msgstr "Boutique"
|
34 |
+
|
35 |
+
msgid "<strong>Ecwid shopping cart is almost ready</strong>. Please visit <a target=\"_blank\" href=\"%s\">the created page</a> to see your store with demo products. In order to finish the installation, please go to the <a href=\"admin.php?page=ecwid\"><strong>Ecwid settings</strong></a> and configure the plugin."
|
36 |
+
msgstr "<strong>Le panier virtuel Ecwid est quasiment prêt</strong>. Veuillez visiter <a target=\"_blank\" href=\"%s\">la page créée</a> pour voir votre boutique et des produits de démonstration. Afin de terminer l'installation, veuillez naviguer vers les <a href=\"admin.php?page=ecwid\"><strong>réglages Ecwid</strong></a> et configurer le plugin."
|
37 |
+
|
38 |
+
msgid "Do you like your Ecwid online store? We'd appreciate it if you <a %s>add your review and vote</a> for the plugin on Wordpress site. (<a id=\"hide-vote-message\">Close</a> and do not show this message anymore)"
|
39 |
+
msgstr ""
|
40 |
+
|
41 |
+
msgid "Ecwid shopping cart settings"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
msgid "Ecwid Store"
|
45 |
+
msgstr "Boutique Ecwid"
|
46 |
+
|
47 |
+
msgid "General settings"
|
48 |
+
msgstr "Réglages généraux"
|
49 |
+
|
50 |
+
msgid "General"
|
51 |
+
msgstr "Général"
|
52 |
+
|
53 |
+
msgid "Appearance settings"
|
54 |
+
msgstr "Réglages d'apparence"
|
55 |
+
|
56 |
+
msgid "Appearance"
|
57 |
+
msgstr "Apparence"
|
58 |
+
|
59 |
+
msgid "Advanced settings"
|
60 |
+
msgstr "Réglages avancés"
|
61 |
+
|
62 |
+
msgid "Advanced"
|
63 |
+
msgstr "Avancés"
|
64 |
+
|
65 |
+
msgid "Setup"
|
66 |
+
msgstr ""
|
67 |
+
|
68 |
+
msgid "Your store's minicart"
|
69 |
+
msgstr "Le mini-panier de votre boutique"
|
70 |
+
|
71 |
+
msgid "Ecwid Shopping Bag (Normal)"
|
72 |
+
msgstr "Le Panier Ecwid (Normal)"
|
73 |
+
|
74 |
+
msgid "Ecwid Shopping Bag (Mini view)"
|
75 |
+
msgstr "Le Panier Ecwid (Mini-vue)"
|
76 |
+
|
77 |
+
msgid "Your store's search box"
|
78 |
+
msgstr "La boîte de recherche de votre boutique"
|
79 |
+
|
80 |
+
msgid "Ecwid Search Box"
|
81 |
+
msgstr "Boîte de Recherche Ecwid"
|
82 |
+
|
83 |
+
msgid "Vertical menu of categories"
|
84 |
+
msgstr "Menu vertical de catégories"
|
85 |
+
|
86 |
+
msgid "Ecwid Vertical Categories"
|
87 |
+
msgstr "Catégories Verticales Ecwid"
|
88 |
+
|
89 |
+
msgid "Price"
|
90 |
+
msgstr ""
|
91 |
+
|
92 |
+
msgid "Ecwid Shopping Cart — Advanced settings"
|
93 |
+
msgstr "Panier Ecwid — Réglages avancés"
|
94 |
+
|
95 |
+
msgid "Category shown by default"
|
96 |
+
msgstr "Catégorie affichée par défaut"
|
97 |
+
|
98 |
+
msgid "Store root category"
|
99 |
+
msgstr "Catégorie racine de la boutique"
|
100 |
+
|
101 |
+
msgid "Default category ID"
|
102 |
+
msgstr "Numéro de la catégorie par défaut"
|
103 |
+
|
104 |
+
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
105 |
+
msgstr "Par défaut, la vitrine présente une liste de catégories racines. Vous pouvez changer ce comportement et afficher une catégorie différente lorsque les clients accèdent à votre boutique pour la première fois. Cette fonction est pratique lorsque vous n'avez qu'une seule catégorie ou si vous souhaitez afficher une gamme spécifique d'articles (par ex. \"Produits Phares\") à tous vos clients."
|
106 |
+
|
107 |
+
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
108 |
+
msgstr "Afin de régler cette option, <a %s>trouvez le numéro de catégorie nécessaire</a> puis sauvegardez-le ici."
|
109 |
+
|
110 |
+
msgid "Single Sign-On Secret Key"
|
111 |
+
msgstr "Clé Secrète Single Sign-on"
|
112 |
+
|
113 |
+
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
114 |
+
msgstr "Cette fonction optionnelle permet d'activer Single Sign-on : lorsque les clients sont authentifiés sur votre site, ils sont automatiquement connectés à votre boutique Ecwid, même s'ils n'avaient pas auparavant de compte dans la boutique. Il est logique d'activer cette fonction lorsque vos visiteurs créent typiquement un compte sur votre site WordPress."
|
115 |
+
|
116 |
+
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > API > Single Sign-On API\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
117 |
+
msgstr "Afin d'activer cette fonction vous devez soumettre une clé secrète. Vous trouverez cette clé dans votre panneau de contrôle Ecwid, sur la page \"Paramètres Système > API > Single Sign-on API\". Cette fonction n'est disponible que pour les <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">utilisateurs payants</a>."
|
118 |
+
|
119 |
+
msgid "Save changes"
|
120 |
+
msgstr "Sauvegarder les modifications"
|
121 |
+
|
122 |
+
msgid "Ecwid Shopping Cart — Appearance settings"
|
123 |
+
msgstr "Panier Ecwid — Réglages d'apparence"
|
124 |
+
|
125 |
+
msgid "Display search box above products"
|
126 |
+
msgstr "Afficher la boîte de recherche au-dessus des produits"
|
127 |
+
|
128 |
+
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
129 |
+
msgstr "Vous pouvez aussi ajouter une boîte de recherche à la barre d'outils de votre site via les <a href=\"%s\">widgets natifs de WordPress</a>"
|
130 |
+
|
131 |
+
msgid "Display horizontal categories above products"
|
132 |
+
msgstr "Afficher les catégories horizontales au-dessus des produits"
|
133 |
+
|
134 |
+
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
135 |
+
msgstr "Vous pouvez aussi ajouter des catégories verticales à la barre d'outils de votre site via les <a href=\"%s\">widgets natifs de WordPress</a>"
|
136 |
+
|
137 |
+
msgid "Enable minicart attached to horizontal categories"
|
138 |
+
msgstr "Activer le mini-panier attaché aux catégories horizontales"
|
139 |
+
|
140 |
+
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
141 |
+
msgstr "Cette option devrait être désactivée si vous avez ajouté un mini-panier à la barre latérale de votre site"
|
142 |
+
|
143 |
+
msgid "Number of categories per row"
|
144 |
+
msgstr "Nombre de catégories par rangée"
|
145 |
+
|
146 |
+
msgid "Number of products per page"
|
147 |
+
msgstr "Nombre de produits par page"
|
148 |
+
|
149 |
+
msgid "Grid view"
|
150 |
+
msgstr "Affichage Vignettes"
|
151 |
+
|
152 |
+
msgid "List view"
|
153 |
+
msgstr "Affichage Liste"
|
154 |
+
|
155 |
+
msgid "Table view"
|
156 |
+
msgstr "Affichage Tableau"
|
157 |
+
|
158 |
+
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
159 |
+
msgstr "Vous pouvez contrôler ici le nombre de produits affichés par page. Ces options définissent des valeurs maximales. S'il n'y pas assez de place pour afficher toutes les colonnes de produits, Ecwid modifiera le nombre de colonnes pour conserver tous les produits."
|
160 |
+
|
161 |
+
msgid "Default view mode on product pages"
|
162 |
+
msgstr "Mode d'affichage par défaut des pages de produits"
|
163 |
+
|
164 |
+
msgid "Grid"
|
165 |
+
msgstr "Vignettes"
|
166 |
+
|
167 |
+
msgid "List"
|
168 |
+
msgstr "Liste"
|
169 |
+
|
170 |
+
msgid "Table"
|
171 |
+
msgstr "Tableau"
|
172 |
+
|
173 |
+
msgid "Default view mode on search results"
|
174 |
+
msgstr "Mode d'affichage par défaut des résultats de recherche"
|
175 |
+
|
176 |
+
msgid "Store powered by Ecwid"
|
177 |
+
msgstr ""
|
178 |
+
|
179 |
+
msgid "Ecwid Shopping Cart — General settings"
|
180 |
+
msgstr "Panier Ecwid — Réglages généraux"
|
181 |
+
|
182 |
+
msgid "Thank you for choosing Ecwid to build your online store"
|
183 |
+
msgstr "Merci d'avoir choisi Ecwid pour construire votre boutique en ligne"
|
184 |
+
|
185 |
+
msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps."
|
186 |
+
msgstr "La première étape vers l'ouverture de votre commerce en ligne : <br />Lançons-nous et ajoutons une boutique à votre site WordPress en <strong>3</strong> étapes faciles."
|
187 |
+
|
188 |
+
msgid "Register at Ecwid"
|
189 |
+
msgstr "Inscrivez-vous chez Ecwid"
|
190 |
+
|
191 |
+
msgid "Create a new Ecwid account which you will use to manage your store and inventory. The registration is free."
|
192 |
+
msgstr "Créez un nouveau compte Ecwid afin de pouvoir gérer votre boutique et votre inventaire. L'inscription est gratuite."
|
193 |
+
|
194 |
+
msgid "Create new Ecwid account"
|
195 |
+
msgstr "Créer un nouveau compte Ecwid"
|
196 |
+
|
197 |
+
msgid "I already have Ecwid account, sign in"
|
198 |
+
msgstr "J'ai déjà un compte Ecwid, se connecter"
|
199 |
+
|
200 |
+
msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well."
|
201 |
+
msgstr "Vous pourrez aussi vous connecter avec vos comptes Google, Facebook ou PayPal existants."
|
202 |
+
|
203 |
+
msgid "Find your Store ID"
|
204 |
+
msgstr "Trouver votre Numéro de Boutique."
|
205 |
+
|
206 |
+
msgid "Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the \"Dashboard\" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration."
|
207 |
+
msgstr "Le Numéro de Boutique est le code unique de votre boutique Ecwid, il est constitué de plusieurs chiffres. Vous pouvez le trouver sur la page \"Tableau de Bord\" du panneau de contrôle d'Ecwid. Le Numéro de Boutique sera aussi envoyé dans l'email de bienvenu après l'inscription."
|
208 |
+
|
209 |
+
msgid "Enter your Store ID"
|
210 |
+
msgstr "Entrer votre Numéro de Boutique"
|
211 |
+
|
212 |
+
msgid "Enter your Store ID here:"
|
213 |
+
msgstr "Entrez votre Numéro de Boutique ici :"
|
214 |
+
|
215 |
+
msgid "Store ID"
|
216 |
+
msgstr "Numéro de Boutique"
|
217 |
+
|
218 |
+
msgid "Save and connect your Ecwid store to the site"
|
219 |
+
msgstr "Sauvegardez et connectez votre boutique Ecwid au site."
|
220 |
+
|
221 |
+
msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>"
|
222 |
+
msgstr "Des questions? Visitez le <a href=\"http://help.ecwid.com/?source=wporg\">centre d'assistance Ecwid</a>"
|
223 |
+
|
224 |
+
msgid "Congratulations!"
|
225 |
+
msgstr "Félicitations !"
|
226 |
+
|
227 |
+
msgid "Your Ecwid store is now connected to your WordPress website"
|
228 |
+
msgstr "Votre boutique Ecwid est maintenant connectée à votre site WordPress"
|
229 |
+
|
230 |
+
msgid "Greetings!"
|
231 |
+
msgstr "Salutations !"
|
232 |
+
|
233 |
+
msgid "Your Ecwid store is connected to your WordPress website"
|
234 |
+
msgstr "Votre boutique Ecwid est connectée à votre site WordPress"
|
235 |
+
|
236 |
+
msgid "Control panel"
|
237 |
+
msgstr "Panneau de contrôle"
|
238 |
+
|
239 |
+
msgid "Account status"
|
240 |
+
msgstr "Statut du compte"
|
241 |
+
|
242 |
+
msgid "Paid"
|
243 |
+
msgstr "Payant"
|
244 |
+
|
245 |
+
msgid "Free"
|
246 |
+
msgstr "Gratuit"
|
247 |
+
|
248 |
+
msgid "Thank you for supporting Ecwid!"
|
249 |
+
msgstr "Merci pour le soutien apporté à Ecwid !"
|
250 |
+
|
251 |
+
msgid "Upgrade to get access to cool premium features."
|
252 |
+
msgstr "Surclassez votre compte pour accéder à de super fonctionnalités premium."
|
253 |
+
|
254 |
+
msgid "Billing and plans"
|
255 |
+
msgstr ""
|
256 |
+
|
257 |
+
msgid "Upgrade"
|
258 |
+
msgstr ""
|
259 |
+
|
260 |
+
msgid "If you want to connect another Ecwid store, you can <a %s>disconnect the current one and change Store ID</a>."
|
261 |
+
msgstr ""
|
languages/ecwid-shopping-cart-it_IT.po
CHANGED
@@ -1,516 +1,516 @@
|
|
1 |
-
msgid "Ecwid Shopping Cart"
|
2 |
-
msgstr "Ecwid Shopping Cart"
|
3 |
-
|
4 |
-
msgid "Ecwid Team"
|
5 |
-
msgstr "Ecwid Team"
|
6 |
-
|
7 |
-
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
8 |
-
msgstr "Ecwid è un negozio online, completamente gratuito. E' facilmente integrabile con qualsiasi blog Wordpress e sono necessari meno di 5 minuti per configurarlo."
|
9 |
-
|
10 |
-
msgid "Get help"
|
11 |
-
msgstr "Chiedi aiuto"
|
12 |
-
|
13 |
-
msgid "Go to Ecwid site"
|
14 |
-
msgstr "Vai al sito Ecwid"
|
15 |
-
|
16 |
-
msgid "Visit storefront"
|
17 |
-
msgstr "Visita la vetrina del negozio"
|
18 |
-
|
19 |
-
msgid "Manage my store"
|
20 |
-
msgstr "Gestione negozio"
|
21 |
-
|
22 |
-
msgid "Manage plugin settings"
|
23 |
-
msgstr "Impostazioni plugin"
|
24 |
-
|
25 |
-
msgid "→ Sell on Facebook"
|
26 |
-
msgstr "→ Vendi su Facebook"
|
27 |
-
|
28 |
-
msgid "<a %s>Online store powered by Ecwid</a>"
|
29 |
-
msgstr "<a %s>Negozio online powered by Ecwid</a>"
|
30 |
-
|
31 |
-
msgid "Store"
|
32 |
-
msgstr "Negozio"
|
33 |
-
|
34 |
-
msgid "Ecwid shopping cart settings"
|
35 |
-
msgstr "Impostazioni Ecwid shopping cart"
|
36 |
-
|
37 |
-
msgid "Ecwid Store"
|
38 |
-
msgstr "Negozio Ecwid"
|
39 |
-
|
40 |
-
msgid "Setup"
|
41 |
-
msgstr "Opzioni"
|
42 |
-
|
43 |
-
msgid "Dashboard"
|
44 |
-
msgstr "Pannello"
|
45 |
-
|
46 |
-
msgid "Appearance settings"
|
47 |
-
msgstr "Impostazioni visualizzazione"
|
48 |
-
|
49 |
-
msgid "Appearance"
|
50 |
-
msgstr "Visualizzazione"
|
51 |
-
|
52 |
-
msgid "Advanced settings"
|
53 |
-
msgstr "Impostazioni avanzate"
|
54 |
-
|
55 |
-
msgid "Advanced"
|
56 |
-
msgstr "Avanzate"
|
57 |
-
|
58 |
-
msgid "Hidden category"
|
59 |
-
msgstr "Categoria nascosta"
|
60 |
-
|
61 |
-
msgid "Recommendations for Your Online Store"
|
62 |
-
msgstr "Consigli per il tuo negozio Online"
|
63 |
-
|
64 |
-
msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid."
|
65 |
-
msgstr "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid."
|
66 |
-
|
67 |
-
msgid "Ecwid Badge"
|
68 |
-
msgstr "Ecwid Badge"
|
69 |
-
|
70 |
-
msgid "Ecwid shopping cart widget"
|
71 |
-
msgstr "Widget Ecwid"
|
72 |
-
|
73 |
-
msgid "Ecwid ecommerce solution"
|
74 |
-
msgstr "Soluzione ecommerce Ecwid"
|
75 |
-
|
76 |
-
msgid "Ecwid free shopping cart"
|
77 |
-
msgstr "Ecwid carrello gratuito"
|
78 |
-
|
79 |
-
msgid "Ecwid shopping cart"
|
80 |
-
msgstr "Ecwid shopping cart"
|
81 |
-
|
82 |
-
msgid "Ecwid e-commerce widgets"
|
83 |
-
msgstr "Widget Ecwid e-commerce "
|
84 |
-
|
85 |
-
msgid "Adds a cart widget for customer to see the products they added to the cart."
|
86 |
-
msgstr "Adds a cart widget for customer to see the products they added to the cart."
|
87 |
-
|
88 |
-
msgid "Shopping Cart"
|
89 |
-
msgstr "Shopping Cart"
|
90 |
-
|
91 |
-
msgid "Adds a compact cart widget for customer to see the products they added to the cart."
|
92 |
-
msgstr "Adds a compact cart widget for customer to see the products they added to the cart."
|
93 |
-
|
94 |
-
msgid "Shopping Cart (Mini)"
|
95 |
-
msgstr "Shopping Cart (Mini)"
|
96 |
-
|
97 |
-
msgid "Displays a simple search box for your customers to find a product in your storex"
|
98 |
-
msgstr "Displays a simple search box for your customers to find a product in your storex"
|
99 |
-
|
100 |
-
msgid "Product Search"
|
101 |
-
msgstr "Product Search"
|
102 |
-
|
103 |
-
msgid "Adds vertical categories block to let the customer navigate your store."
|
104 |
-
msgstr "Adds vertical categories block to let the customer navigate your store."
|
105 |
-
|
106 |
-
msgid "Store Categories"
|
107 |
-
msgstr "Store Categories"
|
108 |
-
|
109 |
-
msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site."
|
110 |
-
msgstr "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site."
|
111 |
-
|
112 |
-
msgid "Store Page Link"
|
113 |
-
msgstr "Store Page Link"
|
114 |
-
|
115 |
-
msgid "Shop"
|
116 |
-
msgstr "Negozio"
|
117 |
-
|
118 |
-
msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop."
|
119 |
-
msgstr "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop."
|
120 |
-
|
121 |
-
msgid "Recently Viewed Products"
|
122 |
-
msgstr "Prodotti visti recentemente"
|
123 |
-
|
124 |
-
msgid "You have not viewed any product yet. Open store."
|
125 |
-
msgstr "You have not viewed any product yet. Open store."
|
126 |
-
|
127 |
-
msgid "Store Link Title"
|
128 |
-
msgstr "Titolo link per il negozio"
|
129 |
-
|
130 |
-
msgid "Number of products to show"
|
131 |
-
msgstr "Numero di prodotti da mostrare"
|
132 |
-
|
133 |
-
msgid "Greetings! Your Ecwid store is now active."
|
134 |
-
msgstr "Congratulazioni! Il tuo negozio Ecwid è ora attivo."
|
135 |
-
|
136 |
-
msgid "Take a few simple steps to complete store setup"
|
137 |
-
msgstr "Ora esegui alcuni semplici step per completare la configurazione del negozio"
|
138 |
-
|
139 |
-
msgid "Set up Ecwid Store"
|
140 |
-
msgstr "Imposta Negozio Ecwid"
|
141 |
-
|
142 |
-
msgid "Good job! Your store is set up and you're ready to sell."
|
143 |
-
msgstr "Ottimo lavoro! Il tuo negozio è stato configurato e ora sei pronto a vendere."
|
144 |
-
|
145 |
-
msgid "Now you can fine-tune your store's appearance"
|
146 |
-
msgstr "Ora è possibile ottimizzare l'aspetto del tuo negozio"
|
147 |
-
|
148 |
-
msgid "Visit Storefront"
|
149 |
-
msgstr "Visita la vetrina del negozio"
|
150 |
-
|
151 |
-
msgid "Configure Appearance"
|
152 |
-
msgstr "Configurare l'aspetto"
|
153 |
-
|
154 |
-
msgid "Your store is almost ready!"
|
155 |
-
msgstr "Il negozio è quasi pronto!"
|
156 |
-
|
157 |
-
msgid "Connect your Ecwid account with this site to complete setup and start selling"
|
158 |
-
msgstr "Collega il tuo account Ecwid con questo sito per completare l'installazione e iniziare a vendere"
|
159 |
-
|
160 |
-
msgid "Connect Your Ecwid Store"
|
161 |
-
msgstr "Collega il tuo negozio Ecwid"
|
162 |
-
|
163 |
-
msgid "To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings."
|
164 |
-
msgstr "Per aggiungere funzioni extra al tuo negozio, trascina e rilascia gli elementi del negozio Ecwid sul tuo sito. Quando hai finito, è possibile tornare indietro per modificare le impostazioni."
|
165 |
-
|
166 |
-
msgid "Back to Store Settings"
|
167 |
-
msgstr "Torna alle impostazioni del negozio"
|
168 |
-
|
169 |
-
msgid "Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site."
|
170 |
-
msgstr "Ti piace il tuo negozio online Ecwid? Apprezzeremmo se aggiungi la recensione e il voto per il plugin sul sito Wordpress."
|
171 |
-
|
172 |
-
msgid "Rate Ecwid at WordPress.org"
|
173 |
-
msgstr "Valuta Ecwid su WordPress.org"
|
174 |
-
|
175 |
-
msgid "Add Store"
|
176 |
-
msgstr "Aggiungi Negozio"
|
177 |
-
|
178 |
-
msgid "Edit Store"
|
179 |
-
msgstr "Modifica Negozio"
|
180 |
-
|
181 |
-
msgid "Edit Appearance"
|
182 |
-
msgstr "Modifica l'aspetto"
|
183 |
-
|
184 |
-
msgid "Price"
|
185 |
-
msgstr "Prezzo"
|
186 |
-
|
187 |
-
msgid "Never show this message again"
|
188 |
-
msgstr "Non mostrare più questo messaggio"
|
189 |
-
|
190 |
-
msgid "Ecwid Shopping Cart — Advanced settings"
|
191 |
-
msgstr "Ecwid Shopping Cart — Impostazioni Avanzate"
|
192 |
-
|
193 |
-
msgid "Category shown by default"
|
194 |
-
msgstr "Categoria visualizzata come predefinita"
|
195 |
-
|
196 |
-
msgid "Store root category"
|
197 |
-
msgstr "Categoria principale negozio"
|
198 |
-
|
199 |
-
msgid "Default category ID"
|
200 |
-
msgstr "ID categoria predefinita"
|
201 |
-
|
202 |
-
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
203 |
-
msgstr "Per impostazione predefinita, la vetrina mostra un elenco di categorie principali. È possibile ignorare questo comportamento e mostrare una categoria diversa quando i clienti aprono il negozio per la prima volta. E 'utile se si dispone di una sola categoria o si desidera visualizzare uno specifico insieme di elementi (es. \"Prodotti in evidenza\") a tutti i nuovi visitatori."
|
204 |
-
|
205 |
-
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
206 |
-
msgstr "Per attivare questa opzione, <a %s> cerca un ID della categoria necessaria</a> e salvalo qui."
|
207 |
-
|
208 |
-
msgid "Single Sign-On Secret Key"
|
209 |
-
msgstr "Registrazione Sign-On Secret Key"
|
210 |
-
|
211 |
-
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
212 |
-
msgstr "Questa funzione opzionale consente di abilitare la Sign-on Secret Key, quando i clienti sono registrati al sito, si accede automaticamente al tuo negozio Ecwid, anche se non dispongono di un account del negozio . Ha senso attivare questa funzione, se i visitatori effettivamente hanno creato un account nel tuo sito WordPress."
|
213 |
-
|
214 |
-
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
215 |
-
msgstr "Per abilitare questa funzione è necessario essere in possesso di una chiave segreta. Troverai questo pulsante nel pannello di controllo Ecwid, in \"Impostazioni di sistema > Apps > Single Sign-on API secret key\" . Questa funzione è disponibile per tutti gli <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">utenti paganti</a>."
|
216 |
-
|
217 |
-
msgid "Chameleon skin <sup>beta</sup>"
|
218 |
-
msgstr "Tema Chameleon <sup>beta</sup>"
|
219 |
-
|
220 |
-
msgid "Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog."
|
221 |
-
msgstr "Regolazione automatica del design del tuo negozio per il tema Wordpress. Qualsiasi tema Wordpress utilizzi, Ecwid rileverà font e colori predominanti e li utilizzerà nel tuo catalogo prodotti."
|
222 |
-
|
223 |
-
msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>."
|
224 |
-
msgstr "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>."
|
225 |
-
|
226 |
-
msgid "Enable the new category menu"
|
227 |
-
msgstr "Enable the new category menu"
|
228 |
-
|
229 |
-
msgid "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)"
|
230 |
-
msgstr "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)"
|
231 |
-
|
232 |
-
msgid "Save changes"
|
233 |
-
msgstr "Salva modifiche"
|
234 |
-
|
235 |
-
msgid "Ecwid Shopping Cart — Appearance settings"
|
236 |
-
msgstr "Ecwid Shopping Cart — Impostazioni di visualizzazione"
|
237 |
-
|
238 |
-
msgid "Display search box above products"
|
239 |
-
msgstr "Mostra casella di ricerca sopra prodotti"
|
240 |
-
|
241 |
-
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
242 |
-
msgstr "Puoi anche aggiungere alla barra degli strumenti la casella di ricerca del tuo sito web utilizzando i <a href=\"%s\">widgets nativi di WordPress</a>"
|
243 |
-
|
244 |
-
msgid "Display categories above products"
|
245 |
-
msgstr "Display categories above products"
|
246 |
-
|
247 |
-
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
248 |
-
msgstr "Puoi anche aggiungere alla barra degli strumenti le categorie verticali utilizzando i <a href=\"%s\">widgets nativi di WordPress</a>"
|
249 |
-
|
250 |
-
msgid "Enable minicart attached to categories"
|
251 |
-
msgstr "Enable minicart attached to categories"
|
252 |
-
|
253 |
-
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
254 |
-
msgstr "È necessario disattivare questa opzione, se hai aggiunto il carrello al tuo sito web sidebar"
|
255 |
-
|
256 |
-
msgid "Number of categories per row"
|
257 |
-
msgstr "Numero di categorie per riga"
|
258 |
-
|
259 |
-
msgid "Number of products per page"
|
260 |
-
msgstr "Numero di prodotti per pagina"
|
261 |
-
|
262 |
-
msgid "Grid view"
|
263 |
-
msgstr "Visualizza come griglia"
|
264 |
-
|
265 |
-
msgid "List view"
|
266 |
-
msgstr "Visualizza come elenco"
|
267 |
-
|
268 |
-
msgid "Table view"
|
269 |
-
msgstr "Visualizza come tabella"
|
270 |
-
|
271 |
-
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
272 |
-
msgstr "Qui è possibile controllare il numero di prodotti da visualizzare per pagina. Queste opzioni definiscono valori massimi. Se non c'è abbastanza spazio per mostrare tutte le colonne dei prodotto, Ecwid adatterà il numero di colonne a tutti i prodotti."
|
273 |
-
|
274 |
-
msgid "Default view mode on product pages"
|
275 |
-
msgstr "Modalità di visualizzazione predefinita sulle pagine prodotti"
|
276 |
-
|
277 |
-
msgid "Grid"
|
278 |
-
msgstr "Griglia"
|
279 |
-
|
280 |
-
msgid "List"
|
281 |
-
msgstr "Elenco"
|
282 |
-
|
283 |
-
msgid "Table"
|
284 |
-
msgstr "Tabella"
|
285 |
-
|
286 |
-
msgid "Default view mode on search results"
|
287 |
-
msgstr "Modalità di visualizzazione predefinita nei risultati di ricerca"
|
288 |
-
|
289 |
-
msgid "Connect your store<br /> to this WordPress site"
|
290 |
-
msgstr "Collega il tuo negozio<br /> a questo sito WordPress"
|
291 |
-
|
292 |
-
msgid "Enter your Store ID"
|
293 |
-
msgstr "Enter your Store ID"
|
294 |
-
|
295 |
-
msgid "Connect Ecwid store"
|
296 |
-
msgstr "Collega Ecwid store"
|
297 |
-
|
298 |
-
msgid "Save and connect"
|
299 |
-
msgstr "Save and connect"
|
300 |
-
|
301 |
-
msgid "After clicking button you need to login and accept permissions to use our plugin"
|
302 |
-
msgstr "Dopo aver cliccato il pulsante devi accedere e accettare le autorizzazioni necessarie per utilizzare il nostro plugin"
|
303 |
-
|
304 |
-
msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again."
|
305 |
-
msgstr "Errore di connessione - dopo aver cliccato il pulsante, è necessario accedere e accettare le autorizzazioni necessarie per utilizzare il nostro plugin. Per favore, riprova."
|
306 |
-
|
307 |
-
msgid "Where to find your Store ID:"
|
308 |
-
msgstr "Where to find your Store ID:"
|
309 |
-
|
310 |
-
msgid "Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID."
|
311 |
-
msgstr "Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID."
|
312 |
-
|
313 |
-
msgid "Don't have Ecwid account? Create it here"
|
314 |
-
msgstr "Non hai un accont Ecwid? Crealo qui"
|
315 |
-
|
316 |
-
msgid "Questions? Visit <a %s>Ecwid support center</a>"
|
317 |
-
msgstr "Hai domande? Visita il <a %s>Centro di supporto Ecwid</a>"
|
318 |
-
|
319 |
-
msgid "Store ID"
|
320 |
-
msgstr "ID Negozio"
|
321 |
-
|
322 |
-
msgid "Disconnect store"
|
323 |
-
msgstr "Scollega il negozio"
|
324 |
-
|
325 |
-
msgid "Congratulations!"
|
326 |
-
msgstr "Congratulazioni!"
|
327 |
-
|
328 |
-
msgid "Your Ecwid store is now connected<br /> to your WordPress website"
|
329 |
-
msgstr "Il tuo negozio Ecwid è ora collegato<br /> al tuo sito Web WordPress"
|
330 |
-
|
331 |
-
msgid "Greetings!"
|
332 |
-
msgstr "Auguri!"
|
333 |
-
|
334 |
-
msgid "Your Ecwid store is connected<br /> to your WordPress website"
|
335 |
-
msgstr "Il tuo negozio Ecwid è collegato<br /> al tuo sito WordPress"
|
336 |
-
|
337 |
-
msgid "Open control panel"
|
338 |
-
msgstr "Apri pannello di controllo"
|
339 |
-
|
340 |
-
msgid "Plugin is installed successfully!"
|
341 |
-
msgstr "Plugin installato con successo!"
|
342 |
-
|
343 |
-
msgid "There are just a few steps left to start selling<br /> on your WordPress site"
|
344 |
-
msgstr "Ci sono pochi step da fare per iniziare a vendere<br /> sul tuo sito WordPress"
|
345 |
-
|
346 |
-
msgid "There are few little steps left to start selling<br /> on your WordPress site"
|
347 |
-
msgstr "Ci sono alcuni piccoli step da fare per iniziare a vendere<br /> sul tuo sito WordPress"
|
348 |
-
|
349 |
-
msgid "Register"
|
350 |
-
msgstr "Registra"
|
351 |
-
|
352 |
-
msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required"
|
353 |
-
msgstr "Crea un account gratuito di Ecwid per gestire il tuo negozio e le tue giacenze.<br /> Nessuna carta di credito necessaria"
|
354 |
-
|
355 |
-
msgid "Connect"
|
356 |
-
msgstr "Collegati"
|
357 |
-
|
358 |
-
msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>"
|
359 |
-
msgstr "Aggiungi il tuo negozio Ecwid per il tuo sito <nobr>in due click</nobr>"
|
360 |
-
|
361 |
-
msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>"
|
362 |
-
msgstr "Collega il tuo negozio di Ecwid a questo sito <nobr>in due click</nobr>"
|
363 |
-
|
364 |
-
msgid "Start selling"
|
365 |
-
msgstr "Iniziare a vendere"
|
366 |
-
|
367 |
-
msgid "Your storefront is ready"
|
368 |
-
msgstr "Il tuo negozio virtuale è pronto"
|
369 |
-
|
370 |
-
msgid "Create Ecwid store"
|
371 |
-
msgstr "Crea un negozio Ecwid"
|
372 |
-
|
373 |
-
msgid "Connect your store"
|
374 |
-
msgstr "Collega il tuo negozio"
|
375 |
-
|
376 |
-
msgid "Free registration, No credit card required"
|
377 |
-
msgstr "Registrazione gratuita, nessuna carta di credito necessaria"
|
378 |
-
|
379 |
-
msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site."
|
380 |
-
msgstr "Errore di connessione: per mostrare il tuo negozio Ecwid su questo sito<br /> clicca ancora sul pulsante e concedi le autorizzazioni per questo plugin."
|
381 |
-
|
382 |
-
msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site"
|
383 |
-
msgstr "Verrà chiesto di accedere al tuo pannello di controllo Ecwid<br />quindi devi dare le autorizzazioni per mostrare il tuo negozio su questo sito"
|
384 |
-
|
385 |
-
msgid "Already have Ecwid account?"
|
386 |
-
msgstr "Hai già un accont Ecwid?"
|
387 |
-
|
388 |
-
msgid "Connect your store to Wordpress site"
|
389 |
-
msgstr "Collega il tuo negozio al sito Wordpress"
|
390 |
-
|
391 |
-
msgid "Don't have an Ecwid account?"
|
392 |
-
msgstr "Non disponi di un account Ecwid?"
|
393 |
-
|
394 |
-
msgid "Register at Ecwid for free"
|
395 |
-
msgstr "Registrati gratuitamente a Ecwid"
|
396 |
-
|
397 |
-
msgid "No credit card required"
|
398 |
-
msgstr "Nessuna carta di credito necessaria"
|
399 |
-
|
400 |
-
msgid "Get ready to sell online"
|
401 |
-
msgstr "Preparati a vendere online"
|
402 |
-
|
403 |
-
msgid "Sell Everywhere<br>with your Ecwid store"
|
404 |
-
msgstr "Vendi ovunque<br>con il tuo negozio Ecwid"
|
405 |
-
|
406 |
-
msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com."
|
407 |
-
msgstr "Inizia a vendere sul tuo sito WordPress. Puoi ottenere una copia del tuo negozio anche sulla tua pagina Facebook, su un blog o su un Marketplace come Google Shopping, Yahoo e Shopping.com."
|
408 |
-
|
409 |
-
msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store."
|
410 |
-
msgstr "Usa un POS-Mobile Ecwid per vendere e pagare con carte di credito. I tuoi ordini e l'inventario dei tuoi prodotti sono sempre sincronizzati con il tuo negozio online."
|
411 |
-
|
412 |
-
msgid "Features"
|
413 |
-
msgstr "Funzionalità"
|
414 |
-
|
415 |
-
msgid "Compatible with your theme"
|
416 |
-
msgstr "Compatibile con il tuo tema"
|
417 |
-
|
418 |
-
msgid "Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box."
|
419 |
-
msgstr "Ecwid i comatibile con il tuo<br>“%s” tema WordPress<br>e altri temi WordPress."
|
420 |
-
|
421 |
-
msgid "Free and always up to date"
|
422 |
-
msgstr "Gratuito e sempre aggiornato"
|
423 |
-
|
424 |
-
msgid "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge."
|
425 |
-
msgstr "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge."
|
426 |
-
|
427 |
-
msgid "Responsive design"
|
428 |
-
msgstr "Design eccezionale"
|
429 |
-
|
430 |
-
msgid "Your store looks perfect<br />on all devices"
|
431 |
-
msgstr "Il tuo negozio è perfetto<br />su tutti i dispositivi"
|
432 |
-
|
433 |
-
msgid "PCI-DSS Certified"
|
434 |
-
msgstr "PCI-DSS Certificato"
|
435 |
-
|
436 |
-
msgid "Secure checkout with over 40<br />payment options"
|
437 |
-
msgstr "Checkout sicuro con oltre 40<br />opzioni di pagamento"
|
438 |
-
|
439 |
-
msgid "Global Reach"
|
440 |
-
msgstr "Portata globale"
|
441 |
-
|
442 |
-
msgid "More than 800,000 merchants in 175 countries"
|
443 |
-
msgstr "More than 800,000 merchants in 175 countries"
|
444 |
-
|
445 |
-
msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>"
|
446 |
-
msgstr "Inizia a vendere <br>sul tuo WordPress <nobr>sito gratis</nobr>"
|
447 |
-
|
448 |
-
msgid "Get Started, Create Ecwid Account"
|
449 |
-
msgstr "Per iniziare, crea un Account Ecwid"
|
450 |
-
|
451 |
-
msgid "Connect your store to this site"
|
452 |
-
msgstr "Collega il tuo negozio a questo sito"
|
453 |
-
|
454 |
-
msgid "Reconnect your store<br /> to this WordPress site"
|
455 |
-
msgstr "Reconnect your store<br /> to this WordPress site"
|
456 |
-
|
457 |
-
msgid "Reconnect Ecwid store"
|
458 |
-
msgstr "Reconnect Ecwid store"
|
459 |
-
|
460 |
-
msgid "New features available, reconnect to be in touch with our updates"
|
461 |
-
msgstr "New features available, reconnect to be in touch with our updates"
|
462 |
-
|
463 |
-
msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>"
|
464 |
-
msgstr "Domande? Visita il <a href=\"http://help.ecwid.com/?source=wporg\">Centro di Supporto Ecwid</a>"
|
465 |
-
|
466 |
-
msgid "Store settings"
|
467 |
-
msgstr "Impostazioni Negozio"
|
468 |
-
|
469 |
-
msgid "Choose widgets to show"
|
470 |
-
msgstr "Scegli il widget da mostrare"
|
471 |
-
|
472 |
-
msgid "Product catalog will be shown automatically"
|
473 |
-
msgstr "Il catalogo prodotti verrà mostrato automaticamente"
|
474 |
-
|
475 |
-
msgid "Show search"
|
476 |
-
msgstr "Mostra ricerca"
|
477 |
-
|
478 |
-
msgid "Show minicart"
|
479 |
-
msgstr "Mostra carrello"
|
480 |
-
|
481 |
-
msgid "Show categories"
|
482 |
-
msgstr "Show categories"
|
483 |
-
|
484 |
-
msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>"
|
485 |
-
msgstr "Inoltre, è possibile aggiungere altri controlli alla barra degli strumenti del tuo sito Web utilizzando i <a %s>widgets nativi WordPress</a>"
|
486 |
-
|
487 |
-
msgid "Demo store"
|
488 |
-
msgstr "Negozio demo"
|
489 |
-
|
490 |
-
msgid "Ecwid plugin settings"
|
491 |
-
msgstr "Impostazioni plugin Ecwid"
|
492 |
-
|
493 |
-
msgid "Your store will be shown here!"
|
494 |
-
msgstr "Qui verrà mostrato il tuo negozio!"
|
495 |
-
|
496 |
-
msgid "Demo Store"
|
497 |
-
msgstr "Negozio demo"
|
498 |
-
|
499 |
-
msgid "Sell On The Go with Ecwid iOS Application"
|
500 |
-
msgstr "Sell On The Go with Ecwid iOS Application"
|
501 |
-
|
502 |
-
msgid "Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!"
|
503 |
-
msgstr "Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!"
|
504 |
-
|
505 |
-
msgid "Get Your Products Found on Google using XML Sitemap"
|
506 |
-
msgstr "Get Your Products Found on Google using XML Sitemap"
|
507 |
-
|
508 |
-
msgid "Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results."
|
509 |
-
msgstr "Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results."
|
510 |
-
|
511 |
-
msgid "Add Product Slider to Your Store"
|
512 |
-
msgstr "Add Product Slider to Your Store"
|
513 |
-
|
514 |
-
msgid "Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid"
|
515 |
-
msgstr "Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid"
|
516 |
-
|
1 |
+
msgid "Ecwid Shopping Cart"
|
2 |
+
msgstr "Ecwid Shopping Cart"
|
3 |
+
|
4 |
+
msgid "Ecwid Team"
|
5 |
+
msgstr "Ecwid Team"
|
6 |
+
|
7 |
+
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
8 |
+
msgstr "Ecwid è un negozio online, completamente gratuito. E' facilmente integrabile con qualsiasi blog Wordpress e sono necessari meno di 5 minuti per configurarlo."
|
9 |
+
|
10 |
+
msgid "Get help"
|
11 |
+
msgstr "Chiedi aiuto"
|
12 |
+
|
13 |
+
msgid "Go to Ecwid site"
|
14 |
+
msgstr "Vai al sito Ecwid"
|
15 |
+
|
16 |
+
msgid "Visit storefront"
|
17 |
+
msgstr "Visita la vetrina del negozio"
|
18 |
+
|
19 |
+
msgid "Manage my store"
|
20 |
+
msgstr "Gestione negozio"
|
21 |
+
|
22 |
+
msgid "Manage plugin settings"
|
23 |
+
msgstr "Impostazioni plugin"
|
24 |
+
|
25 |
+
msgid "→ Sell on Facebook"
|
26 |
+
msgstr "→ Vendi su Facebook"
|
27 |
+
|
28 |
+
msgid "<a %s>Online store powered by Ecwid</a>"
|
29 |
+
msgstr "<a %s>Negozio online powered by Ecwid</a>"
|
30 |
+
|
31 |
+
msgid "Store"
|
32 |
+
msgstr "Negozio"
|
33 |
+
|
34 |
+
msgid "Ecwid shopping cart settings"
|
35 |
+
msgstr "Impostazioni Ecwid shopping cart"
|
36 |
+
|
37 |
+
msgid "Ecwid Store"
|
38 |
+
msgstr "Negozio Ecwid"
|
39 |
+
|
40 |
+
msgid "Setup"
|
41 |
+
msgstr "Opzioni"
|
42 |
+
|
43 |
+
msgid "Dashboard"
|
44 |
+
msgstr "Pannello"
|
45 |
+
|
46 |
+
msgid "Appearance settings"
|
47 |
+
msgstr "Impostazioni visualizzazione"
|
48 |
+
|
49 |
+
msgid "Appearance"
|
50 |
+
msgstr "Visualizzazione"
|
51 |
+
|
52 |
+
msgid "Advanced settings"
|
53 |
+
msgstr "Impostazioni avanzate"
|
54 |
+
|
55 |
+
msgid "Advanced"
|
56 |
+
msgstr "Avanzate"
|
57 |
+
|
58 |
+
msgid "Hidden category"
|
59 |
+
msgstr "Categoria nascosta"
|
60 |
+
|
61 |
+
msgid "Recommendations for Your Online Store"
|
62 |
+
msgstr "Consigli per il tuo negozio Online"
|
63 |
+
|
64 |
+
msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid."
|
65 |
+
msgstr "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid."
|
66 |
+
|
67 |
+
msgid "Ecwid Badge"
|
68 |
+
msgstr "Ecwid Badge"
|
69 |
+
|
70 |
+
msgid "Ecwid shopping cart widget"
|
71 |
+
msgstr "Widget Ecwid"
|
72 |
+
|
73 |
+
msgid "Ecwid ecommerce solution"
|
74 |
+
msgstr "Soluzione ecommerce Ecwid"
|
75 |
+
|
76 |
+
msgid "Ecwid free shopping cart"
|
77 |
+
msgstr "Ecwid carrello gratuito"
|
78 |
+
|
79 |
+
msgid "Ecwid shopping cart"
|
80 |
+
msgstr "Ecwid shopping cart"
|
81 |
+
|
82 |
+
msgid "Ecwid e-commerce widgets"
|
83 |
+
msgstr "Widget Ecwid e-commerce "
|
84 |
+
|
85 |
+
msgid "Adds a cart widget for customer to see the products they added to the cart."
|
86 |
+
msgstr "Adds a cart widget for customer to see the products they added to the cart."
|
87 |
+
|
88 |
+
msgid "Shopping Cart"
|
89 |
+
msgstr "Shopping Cart"
|
90 |
+
|
91 |
+
msgid "Adds a compact cart widget for customer to see the products they added to the cart."
|
92 |
+
msgstr "Adds a compact cart widget for customer to see the products they added to the cart."
|
93 |
+
|
94 |
+
msgid "Shopping Cart (Mini)"
|
95 |
+
msgstr "Shopping Cart (Mini)"
|
96 |
+
|
97 |
+
msgid "Displays a simple search box for your customers to find a product in your storex"
|
98 |
+
msgstr "Displays a simple search box for your customers to find a product in your storex"
|
99 |
+
|
100 |
+
msgid "Product Search"
|
101 |
+
msgstr "Product Search"
|
102 |
+
|
103 |
+
msgid "Adds vertical categories block to let the customer navigate your store."
|
104 |
+
msgstr "Adds vertical categories block to let the customer navigate your store."
|
105 |
+
|
106 |
+
msgid "Store Categories"
|
107 |
+
msgstr "Store Categories"
|
108 |
+
|
109 |
+
msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site."
|
110 |
+
msgstr "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site."
|
111 |
+
|
112 |
+
msgid "Store Page Link"
|
113 |
+
msgstr "Store Page Link"
|
114 |
+
|
115 |
+
msgid "Shop"
|
116 |
+
msgstr "Negozio"
|
117 |
+
|
118 |
+
msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop."
|
119 |
+
msgstr "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop."
|
120 |
+
|
121 |
+
msgid "Recently Viewed Products"
|
122 |
+
msgstr "Prodotti visti recentemente"
|
123 |
+
|
124 |
+
msgid "You have not viewed any product yet. Open store."
|
125 |
+
msgstr "You have not viewed any product yet. Open store."
|
126 |
+
|
127 |
+
msgid "Store Link Title"
|
128 |
+
msgstr "Titolo link per il negozio"
|
129 |
+
|
130 |
+
msgid "Number of products to show"
|
131 |
+
msgstr "Numero di prodotti da mostrare"
|
132 |
+
|
133 |
+
msgid "Greetings! Your Ecwid store is now active."
|
134 |
+
msgstr "Congratulazioni! Il tuo negozio Ecwid è ora attivo."
|
135 |
+
|
136 |
+
msgid "Take a few simple steps to complete store setup"
|
137 |
+
msgstr "Ora esegui alcuni semplici step per completare la configurazione del negozio"
|
138 |
+
|
139 |
+
msgid "Set up Ecwid Store"
|
140 |
+
msgstr "Imposta Negozio Ecwid"
|
141 |
+
|
142 |
+
msgid "Good job! Your store is set up and you're ready to sell."
|
143 |
+
msgstr "Ottimo lavoro! Il tuo negozio è stato configurato e ora sei pronto a vendere."
|
144 |
+
|
145 |
+
msgid "Now you can fine-tune your store's appearance"
|
146 |
+
msgstr "Ora è possibile ottimizzare l'aspetto del tuo negozio"
|
147 |
+
|
148 |
+
msgid "Visit Storefront"
|
149 |
+
msgstr "Visita la vetrina del negozio"
|
150 |
+
|
151 |
+
msgid "Configure Appearance"
|
152 |
+
msgstr "Configurare l'aspetto"
|
153 |
+
|
154 |
+
msgid "Your store is almost ready!"
|
155 |
+
msgstr "Il negozio è quasi pronto!"
|
156 |
+
|
157 |
+
msgid "Connect your Ecwid account with this site to complete setup and start selling"
|
158 |
+
msgstr "Collega il tuo account Ecwid con questo sito per completare l'installazione e iniziare a vendere"
|
159 |
+
|
160 |
+
msgid "Connect Your Ecwid Store"
|
161 |
+
msgstr "Collega il tuo negozio Ecwid"
|
162 |
+
|
163 |
+
msgid "To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings."
|
164 |
+
msgstr "Per aggiungere funzioni extra al tuo negozio, trascina e rilascia gli elementi del negozio Ecwid sul tuo sito. Quando hai finito, è possibile tornare indietro per modificare le impostazioni."
|
165 |
+
|
166 |
+
msgid "Back to Store Settings"
|
167 |
+
msgstr "Torna alle impostazioni del negozio"
|
168 |
+
|
169 |
+
msgid "Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site."
|
170 |
+
msgstr "Ti piace il tuo negozio online Ecwid? Apprezzeremmo se aggiungi la recensione e il voto per il plugin sul sito Wordpress."
|
171 |
+
|
172 |
+
msgid "Rate Ecwid at WordPress.org"
|
173 |
+
msgstr "Valuta Ecwid su WordPress.org"
|
174 |
+
|
175 |
+
msgid "Add Store"
|
176 |
+
msgstr "Aggiungi Negozio"
|
177 |
+
|
178 |
+
msgid "Edit Store"
|
179 |
+
msgstr "Modifica Negozio"
|
180 |
+
|
181 |
+
msgid "Edit Appearance"
|
182 |
+
msgstr "Modifica l'aspetto"
|
183 |
+
|
184 |
+
msgid "Price"
|
185 |
+
msgstr "Prezzo"
|
186 |
+
|
187 |
+
msgid "Never show this message again"
|
188 |
+
msgstr "Non mostrare più questo messaggio"
|
189 |
+
|
190 |
+
msgid "Ecwid Shopping Cart — Advanced settings"
|
191 |
+
msgstr "Ecwid Shopping Cart — Impostazioni Avanzate"
|
192 |
+
|
193 |
+
msgid "Category shown by default"
|
194 |
+
msgstr "Categoria visualizzata come predefinita"
|
195 |
+
|
196 |
+
msgid "Store root category"
|
197 |
+
msgstr "Categoria principale negozio"
|
198 |
+
|
199 |
+
msgid "Default category ID"
|
200 |
+
msgstr "ID categoria predefinita"
|
201 |
+
|
202 |
+
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
203 |
+
msgstr "Per impostazione predefinita, la vetrina mostra un elenco di categorie principali. È possibile ignorare questo comportamento e mostrare una categoria diversa quando i clienti aprono il negozio per la prima volta. E 'utile se si dispone di una sola categoria o si desidera visualizzare uno specifico insieme di elementi (es. \"Prodotti in evidenza\") a tutti i nuovi visitatori."
|
204 |
+
|
205 |
+
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
206 |
+
msgstr "Per attivare questa opzione, <a %s> cerca un ID della categoria necessaria</a> e salvalo qui."
|
207 |
+
|
208 |
+
msgid "Single Sign-On Secret Key"
|
209 |
+
msgstr "Registrazione Sign-On Secret Key"
|
210 |
+
|
211 |
+
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
212 |
+
msgstr "Questa funzione opzionale consente di abilitare la Sign-on Secret Key, quando i clienti sono registrati al sito, si accede automaticamente al tuo negozio Ecwid, anche se non dispongono di un account del negozio . Ha senso attivare questa funzione, se i visitatori effettivamente hanno creato un account nel tuo sito WordPress."
|
213 |
+
|
214 |
+
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
215 |
+
msgstr "Per abilitare questa funzione è necessario essere in possesso di una chiave segreta. Troverai questo pulsante nel pannello di controllo Ecwid, in \"Impostazioni di sistema > Apps > Single Sign-on API secret key\" . Questa funzione è disponibile per tutti gli <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">utenti paganti</a>."
|
216 |
+
|
217 |
+
msgid "Chameleon skin <sup>beta</sup>"
|
218 |
+
msgstr "Tema Chameleon <sup>beta</sup>"
|
219 |
+
|
220 |
+
msgid "Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog."
|
221 |
+
msgstr "Regolazione automatica del design del tuo negozio per il tema Wordpress. Qualsiasi tema Wordpress utilizzi, Ecwid rileverà font e colori predominanti e li utilizzerà nel tuo catalogo prodotti."
|
222 |
+
|
223 |
+
msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>."
|
224 |
+
msgstr "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>."
|
225 |
+
|
226 |
+
msgid "Enable the new category menu"
|
227 |
+
msgstr "Enable the new category menu"
|
228 |
+
|
229 |
+
msgid "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)"
|
230 |
+
msgstr "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)"
|
231 |
+
|
232 |
+
msgid "Save changes"
|
233 |
+
msgstr "Salva modifiche"
|
234 |
+
|
235 |
+
msgid "Ecwid Shopping Cart — Appearance settings"
|
236 |
+
msgstr "Ecwid Shopping Cart — Impostazioni di visualizzazione"
|
237 |
+
|
238 |
+
msgid "Display search box above products"
|
239 |
+
msgstr "Mostra casella di ricerca sopra prodotti"
|
240 |
+
|
241 |
+
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
242 |
+
msgstr "Puoi anche aggiungere alla barra degli strumenti la casella di ricerca del tuo sito web utilizzando i <a href=\"%s\">widgets nativi di WordPress</a>"
|
243 |
+
|
244 |
+
msgid "Display categories above products"
|
245 |
+
msgstr "Display categories above products"
|
246 |
+
|
247 |
+
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
248 |
+
msgstr "Puoi anche aggiungere alla barra degli strumenti le categorie verticali utilizzando i <a href=\"%s\">widgets nativi di WordPress</a>"
|
249 |
+
|
250 |
+
msgid "Enable minicart attached to categories"
|
251 |
+
msgstr "Enable minicart attached to categories"
|
252 |
+
|
253 |
+
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
254 |
+
msgstr "È necessario disattivare questa opzione, se hai aggiunto il carrello al tuo sito web sidebar"
|
255 |
+
|
256 |
+
msgid "Number of categories per row"
|
257 |
+
msgstr "Numero di categorie per riga"
|
258 |
+
|
259 |
+
msgid "Number of products per page"
|
260 |
+
msgstr "Numero di prodotti per pagina"
|
261 |
+
|
262 |
+
msgid "Grid view"
|
263 |
+
msgstr "Visualizza come griglia"
|
264 |
+
|
265 |
+
msgid "List view"
|
266 |
+
msgstr "Visualizza come elenco"
|
267 |
+
|
268 |
+
msgid "Table view"
|
269 |
+
msgstr "Visualizza come tabella"
|
270 |
+
|
271 |
+
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
272 |
+
msgstr "Qui è possibile controllare il numero di prodotti da visualizzare per pagina. Queste opzioni definiscono valori massimi. Se non c'è abbastanza spazio per mostrare tutte le colonne dei prodotto, Ecwid adatterà il numero di colonne a tutti i prodotti."
|
273 |
+
|
274 |
+
msgid "Default view mode on product pages"
|
275 |
+
msgstr "Modalità di visualizzazione predefinita sulle pagine prodotti"
|
276 |
+
|
277 |
+
msgid "Grid"
|
278 |
+
msgstr "Griglia"
|
279 |
+
|
280 |
+
msgid "List"
|
281 |
+
msgstr "Elenco"
|
282 |
+
|
283 |
+
msgid "Table"
|
284 |
+
msgstr "Tabella"
|
285 |
+
|
286 |
+
msgid "Default view mode on search results"
|
287 |
+
msgstr "Modalità di visualizzazione predefinita nei risultati di ricerca"
|
288 |
+
|
289 |
+
msgid "Connect your store<br /> to this WordPress site"
|
290 |
+
msgstr "Collega il tuo negozio<br /> a questo sito WordPress"
|
291 |
+
|
292 |
+
msgid "Enter your Store ID"
|
293 |
+
msgstr "Enter your Store ID"
|
294 |
+
|
295 |
+
msgid "Connect Ecwid store"
|
296 |
+
msgstr "Collega Ecwid store"
|
297 |
+
|
298 |
+
msgid "Save and connect"
|
299 |
+
msgstr "Save and connect"
|
300 |
+
|
301 |
+
msgid "After clicking button you need to login and accept permissions to use our plugin"
|
302 |
+
msgstr "Dopo aver cliccato il pulsante devi accedere e accettare le autorizzazioni necessarie per utilizzare il nostro plugin"
|
303 |
+
|
304 |
+
msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again."
|
305 |
+
msgstr "Errore di connessione - dopo aver cliccato il pulsante, è necessario accedere e accettare le autorizzazioni necessarie per utilizzare il nostro plugin. Per favore, riprova."
|
306 |
+
|
307 |
+
msgid "Where to find your Store ID:"
|
308 |
+
msgstr "Where to find your Store ID:"
|
309 |
+
|
310 |
+
msgid "Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID."
|
311 |
+
msgstr "Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID."
|
312 |
+
|
313 |
+
msgid "Don't have Ecwid account? Create it here"
|
314 |
+
msgstr "Non hai un accont Ecwid? Crealo qui"
|
315 |
+
|
316 |
+
msgid "Questions? Visit <a %s>Ecwid support center</a>"
|
317 |
+
msgstr "Hai domande? Visita il <a %s>Centro di supporto Ecwid</a>"
|
318 |
+
|
319 |
+
msgid "Store ID"
|
320 |
+
msgstr "ID Negozio"
|
321 |
+
|
322 |
+
msgid "Disconnect store"
|
323 |
+
msgstr "Scollega il negozio"
|
324 |
+
|
325 |
+
msgid "Congratulations!"
|
326 |
+
msgstr "Congratulazioni!"
|
327 |
+
|
328 |
+
msgid "Your Ecwid store is now connected<br /> to your WordPress website"
|
329 |
+
msgstr "Il tuo negozio Ecwid è ora collegato<br /> al tuo sito Web WordPress"
|
330 |
+
|
331 |
+
msgid "Greetings!"
|
332 |
+
msgstr "Auguri!"
|
333 |
+
|
334 |
+
msgid "Your Ecwid store is connected<br /> to your WordPress website"
|
335 |
+
msgstr "Il tuo negozio Ecwid è collegato<br /> al tuo sito WordPress"
|
336 |
+
|
337 |
+
msgid "Open control panel"
|
338 |
+
msgstr "Apri pannello di controllo"
|
339 |
+
|
340 |
+
msgid "Plugin is installed successfully!"
|
341 |
+
msgstr "Plugin installato con successo!"
|
342 |
+
|
343 |
+
msgid "There are just a few steps left to start selling<br /> on your WordPress site"
|
344 |
+
msgstr "Ci sono pochi step da fare per iniziare a vendere<br /> sul tuo sito WordPress"
|
345 |
+
|
346 |
+
msgid "There are few little steps left to start selling<br /> on your WordPress site"
|
347 |
+
msgstr "Ci sono alcuni piccoli step da fare per iniziare a vendere<br /> sul tuo sito WordPress"
|
348 |
+
|
349 |
+
msgid "Register"
|
350 |
+
msgstr "Registra"
|
351 |
+
|
352 |
+
msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required"
|
353 |
+
msgstr "Crea un account gratuito di Ecwid per gestire il tuo negozio e le tue giacenze.<br /> Nessuna carta di credito necessaria"
|
354 |
+
|
355 |
+
msgid "Connect"
|
356 |
+
msgstr "Collegati"
|
357 |
+
|
358 |
+
msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>"
|
359 |
+
msgstr "Aggiungi il tuo negozio Ecwid per il tuo sito <nobr>in due click</nobr>"
|
360 |
+
|
361 |
+
msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>"
|
362 |
+
msgstr "Collega il tuo negozio di Ecwid a questo sito <nobr>in due click</nobr>"
|
363 |
+
|
364 |
+
msgid "Start selling"
|
365 |
+
msgstr "Iniziare a vendere"
|
366 |
+
|
367 |
+
msgid "Your storefront is ready"
|
368 |
+
msgstr "Il tuo negozio virtuale è pronto"
|
369 |
+
|
370 |
+
msgid "Create Ecwid store"
|
371 |
+
msgstr "Crea un negozio Ecwid"
|
372 |
+
|
373 |
+
msgid "Connect your store"
|
374 |
+
msgstr "Collega il tuo negozio"
|
375 |
+
|
376 |
+
msgid "Free registration, No credit card required"
|
377 |
+
msgstr "Registrazione gratuita, nessuna carta di credito necessaria"
|
378 |
+
|
379 |
+
msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site."
|
380 |
+
msgstr "Errore di connessione: per mostrare il tuo negozio Ecwid su questo sito<br /> clicca ancora sul pulsante e concedi le autorizzazioni per questo plugin."
|
381 |
+
|
382 |
+
msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site"
|
383 |
+
msgstr "Verrà chiesto di accedere al tuo pannello di controllo Ecwid<br />quindi devi dare le autorizzazioni per mostrare il tuo negozio su questo sito"
|
384 |
+
|
385 |
+
msgid "Already have Ecwid account?"
|
386 |
+
msgstr "Hai già un accont Ecwid?"
|
387 |
+
|
388 |
+
msgid "Connect your store to Wordpress site"
|
389 |
+
msgstr "Collega il tuo negozio al sito Wordpress"
|
390 |
+
|
391 |
+
msgid "Don't have an Ecwid account?"
|
392 |
+
msgstr "Non disponi di un account Ecwid?"
|
393 |
+
|
394 |
+
msgid "Register at Ecwid for free"
|
395 |
+
msgstr "Registrati gratuitamente a Ecwid"
|
396 |
+
|
397 |
+
msgid "No credit card required"
|
398 |
+
msgstr "Nessuna carta di credito necessaria"
|
399 |
+
|
400 |
+
msgid "Get ready to sell online"
|
401 |
+
msgstr "Preparati a vendere online"
|
402 |
+
|
403 |
+
msgid "Sell Everywhere<br>with your Ecwid store"
|
404 |
+
msgstr "Vendi ovunque<br>con il tuo negozio Ecwid"
|
405 |
+
|
406 |
+
msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com."
|
407 |
+
msgstr "Inizia a vendere sul tuo sito WordPress. Puoi ottenere una copia del tuo negozio anche sulla tua pagina Facebook, su un blog o su un Marketplace come Google Shopping, Yahoo e Shopping.com."
|
408 |
+
|
409 |
+
msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store."
|
410 |
+
msgstr "Usa un POS-Mobile Ecwid per vendere e pagare con carte di credito. I tuoi ordini e l'inventario dei tuoi prodotti sono sempre sincronizzati con il tuo negozio online."
|
411 |
+
|
412 |
+
msgid "Features"
|
413 |
+
msgstr "Funzionalità"
|
414 |
+
|
415 |
+
msgid "Compatible with your theme"
|
416 |
+
msgstr "Compatibile con il tuo tema"
|
417 |
+
|
418 |
+
msgid "Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box."
|
419 |
+
msgstr "Ecwid i comatibile con il tuo<br>“%s” tema WordPress<br>e altri temi WordPress."
|
420 |
+
|
421 |
+
msgid "Free and always up to date"
|
422 |
+
msgstr "Gratuito e sempre aggiornato"
|
423 |
+
|
424 |
+
msgid "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge."
|
425 |
+
msgstr "Free plan always available with tons of features<br>at no additional cost. Updates are seamless, automatic<br>and free of charge."
|
426 |
+
|
427 |
+
msgid "Responsive design"
|
428 |
+
msgstr "Design eccezionale"
|
429 |
+
|
430 |
+
msgid "Your store looks perfect<br />on all devices"
|
431 |
+
msgstr "Il tuo negozio è perfetto<br />su tutti i dispositivi"
|
432 |
+
|
433 |
+
msgid "PCI-DSS Certified"
|
434 |
+
msgstr "PCI-DSS Certificato"
|
435 |
+
|
436 |
+
msgid "Secure checkout with over 40<br />payment options"
|
437 |
+
msgstr "Checkout sicuro con oltre 40<br />opzioni di pagamento"
|
438 |
+
|
439 |
+
msgid "Global Reach"
|
440 |
+
msgstr "Portata globale"
|
441 |
+
|
442 |
+
msgid "More than 800,000 merchants in 175 countries"
|
443 |
+
msgstr "More than 800,000 merchants in 175 countries"
|
444 |
+
|
445 |
+
msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>"
|
446 |
+
msgstr "Inizia a vendere <br>sul tuo WordPress <nobr>sito gratis</nobr>"
|
447 |
+
|
448 |
+
msgid "Get Started, Create Ecwid Account"
|
449 |
+
msgstr "Per iniziare, crea un Account Ecwid"
|
450 |
+
|
451 |
+
msgid "Connect your store to this site"
|
452 |
+
msgstr "Collega il tuo negozio a questo sito"
|
453 |
+
|
454 |
+
msgid "Reconnect your store<br /> to this WordPress site"
|
455 |
+
msgstr "Reconnect your store<br /> to this WordPress site"
|
456 |
+
|
457 |
+
msgid "Reconnect Ecwid store"
|
458 |
+
msgstr "Reconnect Ecwid store"
|
459 |
+
|
460 |
+
msgid "New features available, reconnect to be in touch with our updates"
|
461 |
+
msgstr "New features available, reconnect to be in touch with our updates"
|
462 |
+
|
463 |
+
msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>"
|
464 |
+
msgstr "Domande? Visita il <a href=\"http://help.ecwid.com/?source=wporg\">Centro di Supporto Ecwid</a>"
|
465 |
+
|
466 |
+
msgid "Store settings"
|
467 |
+
msgstr "Impostazioni Negozio"
|
468 |
+
|
469 |
+
msgid "Choose widgets to show"
|
470 |
+
msgstr "Scegli il widget da mostrare"
|
471 |
+
|
472 |
+
msgid "Product catalog will be shown automatically"
|
473 |
+
msgstr "Il catalogo prodotti verrà mostrato automaticamente"
|
474 |
+
|
475 |
+
msgid "Show search"
|
476 |
+
msgstr "Mostra ricerca"
|
477 |
+
|
478 |
+
msgid "Show minicart"
|
479 |
+
msgstr "Mostra carrello"
|
480 |
+
|
481 |
+
msgid "Show categories"
|
482 |
+
msgstr "Show categories"
|
483 |
+
|
484 |
+
msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>"
|
485 |
+
msgstr "Inoltre, è possibile aggiungere altri controlli alla barra degli strumenti del tuo sito Web utilizzando i <a %s>widgets nativi WordPress</a>"
|
486 |
+
|
487 |
+
msgid "Demo store"
|
488 |
+
msgstr "Negozio demo"
|
489 |
+
|
490 |
+
msgid "Ecwid plugin settings"
|
491 |
+
msgstr "Impostazioni plugin Ecwid"
|
492 |
+
|
493 |
+
msgid "Your store will be shown here!"
|
494 |
+
msgstr "Qui verrà mostrato il tuo negozio!"
|
495 |
+
|
496 |
+
msgid "Demo Store"
|
497 |
+
msgstr "Negozio demo"
|
498 |
+
|
499 |
+
msgid "Sell On The Go with Ecwid iOS Application"
|
500 |
+
msgstr "Sell On The Go with Ecwid iOS Application"
|
501 |
+
|
502 |
+
msgid "Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!"
|
503 |
+
msgstr "Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!"
|
504 |
+
|
505 |
+
msgid "Get Your Products Found on Google using XML Sitemap"
|
506 |
+
msgstr "Get Your Products Found on Google using XML Sitemap"
|
507 |
+
|
508 |
+
msgid "Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results."
|
509 |
+
msgstr "Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results."
|
510 |
+
|
511 |
+
msgid "Add Product Slider to Your Store"
|
512 |
+
msgstr "Add Product Slider to Your Store"
|
513 |
+
|
514 |
+
msgid "Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid"
|
515 |
+
msgstr "Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid"
|
516 |
+
|
languages/ecwid-shopping-cart-pt_BR.po
CHANGED
@@ -1,269 +1,269 @@
|
|
1 |
-
# This file was generated by Easy Translator Lite -- a WordPress plugin translator
|
2 |
-
# Your Name:
|
3 |
-
# Your Email: test@example.com
|
4 |
-
# Your Website: wordpress36
|
5 |
-
# Your URL: http://localhost/wordpress36
|
6 |
-
# Your Locale: ru_RU (MO: /languages/ecwid-shopping-cart-ru_RU.mo)
|
7 |
-
# Your Language: ru-RU
|
8 |
-
#, fuzzy
|
9 |
-
|
10 |
-
msgid "Ecwid Shopping Cart"
|
11 |
-
msgstr ""
|
12 |
-
|
13 |
-
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
14 |
-
msgstr ""
|
15 |
-
|
16 |
-
msgid "Ecwid Team"
|
17 |
-
msgstr ""
|
18 |
-
|
19 |
-
msgid "Get help"
|
20 |
-
msgstr "Obter Ajuda"
|
21 |
-
|
22 |
-
msgid "Go to Ecwid site"
|
23 |
-
msgstr "Ir para o sítio Ecwid"
|
24 |
-
|
25 |
-
msgid "Visit storefront"
|
26 |
-
msgstr "Visitar frente da loja"
|
27 |
-
|
28 |
-
msgid "Manage my store"
|
29 |
-
msgstr "Gerir a minha loja"
|
30 |
-
|
31 |
-
msgid "Manage plugin settings"
|
32 |
-
msgstr "Gerir definições de plugin"
|
33 |
-
|
34 |
-
msgid "→ Sell on Facebook"
|
35 |
-
msgstr "→ Vender no Facebook"
|
36 |
-
|
37 |
-
msgid "Online store powered by <a %s>Ecwid</a>"
|
38 |
-
msgstr ""
|
39 |
-
|
40 |
-
msgid "Store"
|
41 |
-
msgstr "Loja"
|
42 |
-
|
43 |
-
msgid "<strong>Ecwid shopping cart is almost ready</strong>. Please visit <a target=\"_blank\" href=\"%s\">the created page</a> to see your store with demo products. In order to finish the installation, please go to the <a href=\"admin.php?page=ecwid\"><strong>Ecwid settings</strong></a> and configure the plugin."
|
44 |
-
msgstr "<strong> O carrinho de compras Ecwid está quase pronto </strong> Por favor visite <a target=\"_blank\" href=\"%s\">a página criada</a> para ver os produtos demonstração na sua loja. De modo a terminar a instalação, por favor vá a <a href=\"admin.php?page=ecwid\"><strong>definições Ecwid </strong></a> e configure o plugin."
|
45 |
-
|
46 |
-
msgid "Do you like your Ecwid online store? We'd appreciate it if you <a %s>add your review and vote</a> for the plugin on Wordpress site. (<a id=\"hide-vote-message\">Close</a> and do not show this message anymore)"
|
47 |
-
msgstr ""
|
48 |
-
|
49 |
-
msgid "Ecwid shopping cart settings"
|
50 |
-
msgstr ""
|
51 |
-
|
52 |
-
msgid "Ecwid Store"
|
53 |
-
msgstr "Loja Ecwid"
|
54 |
-
|
55 |
-
msgid "General settings"
|
56 |
-
msgstr "Definições Gerais"
|
57 |
-
|
58 |
-
msgid "General"
|
59 |
-
msgstr "Geral"
|
60 |
-
|
61 |
-
msgid "Appearance settings"
|
62 |
-
msgstr "Definições de Aparência"
|
63 |
-
|
64 |
-
msgid "Appearance"
|
65 |
-
msgstr "Aparência"
|
66 |
-
|
67 |
-
msgid "Advanced settings"
|
68 |
-
msgstr "Definições Avançadas"
|
69 |
-
|
70 |
-
msgid "Advanced"
|
71 |
-
msgstr "Avançadas"
|
72 |
-
|
73 |
-
msgid "Setup"
|
74 |
-
msgstr ""
|
75 |
-
|
76 |
-
msgid "Your store's minicart"
|
77 |
-
msgstr "O minicart da sua loja"
|
78 |
-
|
79 |
-
msgid "Ecwid Shopping Bag (Normal)"
|
80 |
-
msgstr "Saco de compras Ecwid (Normal)"
|
81 |
-
|
82 |
-
msgid "Ecwid Shopping Bag (Mini view)"
|
83 |
-
msgstr "Saco de compras Ecwid (Vista mini)"
|
84 |
-
|
85 |
-
msgid "Your store's search box"
|
86 |
-
msgstr "A barra de pesquisa da sua loja"
|
87 |
-
|
88 |
-
msgid "Ecwid Search Box"
|
89 |
-
msgstr "Barra de pesquisa Ecwid"
|
90 |
-
|
91 |
-
msgid "Vertical menu of categories"
|
92 |
-
msgstr "Menu vertical de categorias"
|
93 |
-
|
94 |
-
msgid "Ecwid Vertical Categories"
|
95 |
-
msgstr "Categorias verticais Ecwid"
|
96 |
-
|
97 |
-
msgid "Price"
|
98 |
-
msgstr ""
|
99 |
-
|
100 |
-
msgid "Ecwid Shopping Cart — Advanced settings"
|
101 |
-
msgstr "Carrinho de compras Ecwid — Definições Avançadas"
|
102 |
-
|
103 |
-
msgid "Category shown by default"
|
104 |
-
msgstr "Categoria mostrada por defeito"
|
105 |
-
|
106 |
-
msgid "Store root category"
|
107 |
-
msgstr "Categoria de raiz de loja"
|
108 |
-
|
109 |
-
msgid "Default category ID"
|
110 |
-
msgstr "Identificação de categoria por defeito"
|
111 |
-
|
112 |
-
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
113 |
-
msgstr "Por defeito, a frente de loja mostra uma lista de categorias de raiz. Você pode ignorar este comportamento e mostrar uma categoria diferente quando os clientes abrirem a sua loja pela primeira vez. É util se você tem apenas uma categoria ou quer mostrar produtos especifícos (e.g. \"Produtos em Destaque\") para todos os novos visitantes."
|
114 |
-
|
115 |
-
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
116 |
-
msgstr "De modo a configurar esta opção, <a %s> encontra um ID da categoria necessária</a>, salvando-a."
|
117 |
-
|
118 |
-
msgid "Single Sign-On Secret Key"
|
119 |
-
msgstr "Chave Secreta e Iniciar Sessão Único"
|
120 |
-
|
121 |
-
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
122 |
-
msgstr "Esta característica opcional permite ativar o Iniciar Sessão Único: Quando os clientes estão inscritos no seu sítio, eles automaticamente se ligam na sua loja Ecwid, mesmo que eles não tenham conta na loja antes. Faz sentido ativar esta característica, se os seus visitantes realmente criarem contas no seu sítio WordPress."
|
123 |
-
|
124 |
-
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > API > Single Sign-On API\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
125 |
-
msgstr "De modo a ativar esta caracterísitca você deverá submeter uma chave secreta. Você encontrará essa chave no painel de controle Ecwid, nas \"Definições de Sistema\" > API > Iniciar Sessão Único na página API. Esta característica está disponível para <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">usuários pagos</a> apenas."
|
126 |
-
|
127 |
-
msgid "Save changes"
|
128 |
-
msgstr "Salvar alterações"
|
129 |
-
|
130 |
-
msgid "Ecwid Shopping Cart — Appearance settings"
|
131 |
-
msgstr "Carrinho de compras Ecwid — Definições Aparência"
|
132 |
-
|
133 |
-
msgid "Display search box above products"
|
134 |
-
msgstr "Mostrar barra de pesquisa acima dos produtos"
|
135 |
-
|
136 |
-
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
137 |
-
msgstr "Ou você pode adicionar uma barra de pesquisa no seu sítio usando <a href=\"%s\">widgets nativos do WordPress</a>"
|
138 |
-
|
139 |
-
msgid "Display horizontal categories above products"
|
140 |
-
msgstr "Mostrar categorias horizontais acima dos produtos"
|
141 |
-
|
142 |
-
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
143 |
-
msgstr "Ou você pode adicionar categorias verticais na barra de ferramentas do seu sítio através de <a href=\"%s\">widgets nativos do WordPress</a>"
|
144 |
-
|
145 |
-
msgid "Enable minicart attached to horizontal categories"
|
146 |
-
msgstr "Ativar minicart anexado às categorias horizontais"
|
147 |
-
|
148 |
-
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
149 |
-
msgstr "Deverá desativar esta opção se você adicionou o minicart à barra lateral do seu sítio"
|
150 |
-
|
151 |
-
msgid "Number of categories per row"
|
152 |
-
msgstr "Número de categorias por fila"
|
153 |
-
|
154 |
-
msgid "Number of products per page"
|
155 |
-
msgstr "Número de produtos por página"
|
156 |
-
|
157 |
-
msgid "Grid view"
|
158 |
-
msgstr "Vista Grelha"
|
159 |
-
|
160 |
-
msgid "List view"
|
161 |
-
msgstr "Vista Lista"
|
162 |
-
|
163 |
-
msgid "Table view"
|
164 |
-
msgstr "Vista Tabela"
|
165 |
-
|
166 |
-
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
167 |
-
msgstr "Aqui você poderá controlar quando produtos quer que sejam mostrados por página. Estas opções definem valores máximos. Se não houver espaço suficiente para mostrar todas as colunas de produtos, a Ecwid irá adaptar o número de colunas a mostrar todos os produtos."
|
168 |
-
|
169 |
-
msgid "Default view mode on product pages"
|
170 |
-
msgstr "Vista padrão nas páginas de produtos"
|
171 |
-
|
172 |
-
msgid "Grid"
|
173 |
-
msgstr "Grelha"
|
174 |
-
|
175 |
-
msgid "List"
|
176 |
-
msgstr "Lista"
|
177 |
-
|
178 |
-
msgid "Table"
|
179 |
-
msgstr "Tabela"
|
180 |
-
|
181 |
-
msgid "Default view mode on search results"
|
182 |
-
msgstr "Vista Padrão nos resultados de pesquisa"
|
183 |
-
|
184 |
-
msgid "Store powered by Ecwid"
|
185 |
-
msgstr ""
|
186 |
-
|
187 |
-
msgid "Ecwid Shopping Cart — General settings"
|
188 |
-
msgstr "Carrinho de Compras Ecwid — Definições Gerais"
|
189 |
-
|
190 |
-
msgid "Thank you for choosing Ecwid to build your online store"
|
191 |
-
msgstr "Obrigado por escolher Ecwid para construir a sua loja online"
|
192 |
-
|
193 |
-
msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps."
|
194 |
-
msgstr "Os primeiros passos para abrir o seu negócio online<br />Vamos começar e adicionar uma loja no seu sítio WordPress em <strong>3</strong> passos simples."
|
195 |
-
|
196 |
-
msgid "Register at Ecwid"
|
197 |
-
msgstr "Registe-se na Ecwid"
|
198 |
-
|
199 |
-
msgid "Create a new Ecwid account which you will use to manage your store and inventory. The registration is free."
|
200 |
-
msgstr "Crie uma nova conta Ecwid que você utilizará para gerir a sua loja e inventário. O registo é grátis."
|
201 |
-
|
202 |
-
msgid "Create new Ecwid account"
|
203 |
-
msgstr "Crie uma nova conta Ecwid"
|
204 |
-
|
205 |
-
msgid "I already have Ecwid account, sign in"
|
206 |
-
msgstr "Já tenho uma conta Ecwid, iniciar sessão"
|
207 |
-
|
208 |
-
msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well."
|
209 |
-
msgstr "Você conseguirá iniciar sessão atráves dos seus perfis existentes do Google, Facebook ou PayPal."
|
210 |
-
|
211 |
-
msgid "Find your Store ID"
|
212 |
-
msgstr "Obtenha a sua ID de loja"
|
213 |
-
|
214 |
-
msgid "Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the \"Dashboard\" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration."
|
215 |
-
msgstr "ID de loja é um identificador único de qualquer loja Ecwid, consiste em vários digitos. Poderá encontrá-lo no \"Painel\" da página \"Painel de Controle\" da Ecwid. Mais, a ID de loja será enviada na mensagem de correio eletrônico de boas-vindas após o registo. "
|
216 |
-
|
217 |
-
msgid "Enter your Store ID"
|
218 |
-
msgstr "Insira a sua ID de Loja"
|
219 |
-
|
220 |
-
msgid "Enter your Store ID here:"
|
221 |
-
msgstr "Insira a sua ID de Loja aqui:"
|
222 |
-
|
223 |
-
msgid "Store ID"
|
224 |
-
msgstr "ID de Loja "
|
225 |
-
|
226 |
-
msgid "Save and connect your Ecwid store to the site"
|
227 |
-
msgstr "Salve e conete a sua loja Ecwid ao sítio"
|
228 |
-
|
229 |
-
msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>"
|
230 |
-
msgstr "Questões? Visite <a href=\"http://help.ecwid.com/?source=wporg\"> Centro de Apoio Ecwid</a>"
|
231 |
-
|
232 |
-
msgid "Congratulations!"
|
233 |
-
msgstr "Parabéns!"
|
234 |
-
|
235 |
-
msgid "Your Ecwid store is now connected to your WordPress website"
|
236 |
-
msgstr "A sua loja Ecwid está agora conetada ao seu sítio WorkPress"
|
237 |
-
|
238 |
-
msgid "Greetings!"
|
239 |
-
msgstr "Saudações!"
|
240 |
-
|
241 |
-
msgid "Your Ecwid store is connected to your WordPress website"
|
242 |
-
msgstr "A sua loja Ecwid está agora conetada ao seu sítio WorkPress"
|
243 |
-
|
244 |
-
msgid "Control panel"
|
245 |
-
msgstr "Painel de Controle"
|
246 |
-
|
247 |
-
msgid "Account status"
|
248 |
-
msgstr "Estado de Conta"
|
249 |
-
|
250 |
-
msgid "Paid"
|
251 |
-
msgstr "Pago"
|
252 |
-
|
253 |
-
msgid "Free"
|
254 |
-
msgstr "Grátis"
|
255 |
-
|
256 |
-
msgid "Thank you for supporting Ecwid!"
|
257 |
-
msgstr "Obrigado por apoiar Ecwid!"
|
258 |
-
|
259 |
-
msgid "Upgrade to get access to cool premium features."
|
260 |
-
msgstr "Atualize para ter acesso a características premium convenientes."
|
261 |
-
|
262 |
-
msgid "Billing and plans"
|
263 |
-
msgstr ""
|
264 |
-
|
265 |
-
msgid "Upgrade"
|
266 |
-
msgstr ""
|
267 |
-
|
268 |
-
msgid "If you want to connect another Ecwid store, you can <a %s>disconnect the current one and change Store ID</a>."
|
269 |
msgstr ""
|
1 |
+
# This file was generated by Easy Translator Lite -- a WordPress plugin translator
|
2 |
+
# Your Name:
|
3 |
+
# Your Email: test@example.com
|
4 |
+
# Your Website: wordpress36
|
5 |
+
# Your URL: http://localhost/wordpress36
|
6 |
+
# Your Locale: ru_RU (MO: /languages/ecwid-shopping-cart-ru_RU.mo)
|
7 |
+
# Your Language: ru-RU
|
8 |
+
#, fuzzy
|
9 |
+
|
10 |
+
msgid "Ecwid Shopping Cart"
|
11 |
+
msgstr ""
|
12 |
+
|
13 |
+
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
14 |
+
msgstr ""
|
15 |
+
|
16 |
+
msgid "Ecwid Team"
|
17 |
+
msgstr ""
|
18 |
+
|
19 |
+
msgid "Get help"
|
20 |
+
msgstr "Obter Ajuda"
|
21 |
+
|
22 |
+
msgid "Go to Ecwid site"
|
23 |
+
msgstr "Ir para o sítio Ecwid"
|
24 |
+
|
25 |
+
msgid "Visit storefront"
|
26 |
+
msgstr "Visitar frente da loja"
|
27 |
+
|
28 |
+
msgid "Manage my store"
|
29 |
+
msgstr "Gerir a minha loja"
|
30 |
+
|
31 |
+
msgid "Manage plugin settings"
|
32 |
+
msgstr "Gerir definições de plugin"
|
33 |
+
|
34 |
+
msgid "→ Sell on Facebook"
|
35 |
+
msgstr "→ Vender no Facebook"
|
36 |
+
|
37 |
+
msgid "Online store powered by <a %s>Ecwid</a>"
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
msgid "Store"
|
41 |
+
msgstr "Loja"
|
42 |
+
|
43 |
+
msgid "<strong>Ecwid shopping cart is almost ready</strong>. Please visit <a target=\"_blank\" href=\"%s\">the created page</a> to see your store with demo products. In order to finish the installation, please go to the <a href=\"admin.php?page=ecwid\"><strong>Ecwid settings</strong></a> and configure the plugin."
|
44 |
+
msgstr "<strong> O carrinho de compras Ecwid está quase pronto </strong> Por favor visite <a target=\"_blank\" href=\"%s\">a página criada</a> para ver os produtos demonstração na sua loja. De modo a terminar a instalação, por favor vá a <a href=\"admin.php?page=ecwid\"><strong>definições Ecwid </strong></a> e configure o plugin."
|
45 |
+
|
46 |
+
msgid "Do you like your Ecwid online store? We'd appreciate it if you <a %s>add your review and vote</a> for the plugin on Wordpress site. (<a id=\"hide-vote-message\">Close</a> and do not show this message anymore)"
|
47 |
+
msgstr ""
|
48 |
+
|
49 |
+
msgid "Ecwid shopping cart settings"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
msgid "Ecwid Store"
|
53 |
+
msgstr "Loja Ecwid"
|
54 |
+
|
55 |
+
msgid "General settings"
|
56 |
+
msgstr "Definições Gerais"
|
57 |
+
|
58 |
+
msgid "General"
|
59 |
+
msgstr "Geral"
|
60 |
+
|
61 |
+
msgid "Appearance settings"
|
62 |
+
msgstr "Definições de Aparência"
|
63 |
+
|
64 |
+
msgid "Appearance"
|
65 |
+
msgstr "Aparência"
|
66 |
+
|
67 |
+
msgid "Advanced settings"
|
68 |
+
msgstr "Definições Avançadas"
|
69 |
+
|
70 |
+
msgid "Advanced"
|
71 |
+
msgstr "Avançadas"
|
72 |
+
|
73 |
+
msgid "Setup"
|
74 |
+
msgstr ""
|
75 |
+
|
76 |
+
msgid "Your store's minicart"
|
77 |
+
msgstr "O minicart da sua loja"
|
78 |
+
|
79 |
+
msgid "Ecwid Shopping Bag (Normal)"
|
80 |
+
msgstr "Saco de compras Ecwid (Normal)"
|
81 |
+
|
82 |
+
msgid "Ecwid Shopping Bag (Mini view)"
|
83 |
+
msgstr "Saco de compras Ecwid (Vista mini)"
|
84 |
+
|
85 |
+
msgid "Your store's search box"
|
86 |
+
msgstr "A barra de pesquisa da sua loja"
|
87 |
+
|
88 |
+
msgid "Ecwid Search Box"
|
89 |
+
msgstr "Barra de pesquisa Ecwid"
|
90 |
+
|
91 |
+
msgid "Vertical menu of categories"
|
92 |
+
msgstr "Menu vertical de categorias"
|
93 |
+
|
94 |
+
msgid "Ecwid Vertical Categories"
|
95 |
+
msgstr "Categorias verticais Ecwid"
|
96 |
+
|
97 |
+
msgid "Price"
|
98 |
+
msgstr ""
|
99 |
+
|
100 |
+
msgid "Ecwid Shopping Cart — Advanced settings"
|
101 |
+
msgstr "Carrinho de compras Ecwid — Definições Avançadas"
|
102 |
+
|
103 |
+
msgid "Category shown by default"
|
104 |
+
msgstr "Categoria mostrada por defeito"
|
105 |
+
|
106 |
+
msgid "Store root category"
|
107 |
+
msgstr "Categoria de raiz de loja"
|
108 |
+
|
109 |
+
msgid "Default category ID"
|
110 |
+
msgstr "Identificação de categoria por defeito"
|
111 |
+
|
112 |
+
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
113 |
+
msgstr "Por defeito, a frente de loja mostra uma lista de categorias de raiz. Você pode ignorar este comportamento e mostrar uma categoria diferente quando os clientes abrirem a sua loja pela primeira vez. É util se você tem apenas uma categoria ou quer mostrar produtos especifícos (e.g. \"Produtos em Destaque\") para todos os novos visitantes."
|
114 |
+
|
115 |
+
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
116 |
+
msgstr "De modo a configurar esta opção, <a %s> encontra um ID da categoria necessária</a>, salvando-a."
|
117 |
+
|
118 |
+
msgid "Single Sign-On Secret Key"
|
119 |
+
msgstr "Chave Secreta e Iniciar Sessão Único"
|
120 |
+
|
121 |
+
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
122 |
+
msgstr "Esta característica opcional permite ativar o Iniciar Sessão Único: Quando os clientes estão inscritos no seu sítio, eles automaticamente se ligam na sua loja Ecwid, mesmo que eles não tenham conta na loja antes. Faz sentido ativar esta característica, se os seus visitantes realmente criarem contas no seu sítio WordPress."
|
123 |
+
|
124 |
+
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > API > Single Sign-On API\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
125 |
+
msgstr "De modo a ativar esta caracterísitca você deverá submeter uma chave secreta. Você encontrará essa chave no painel de controle Ecwid, nas \"Definições de Sistema\" > API > Iniciar Sessão Único na página API. Esta característica está disponível para <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">usuários pagos</a> apenas."
|
126 |
+
|
127 |
+
msgid "Save changes"
|
128 |
+
msgstr "Salvar alterações"
|
129 |
+
|
130 |
+
msgid "Ecwid Shopping Cart — Appearance settings"
|
131 |
+
msgstr "Carrinho de compras Ecwid — Definições Aparência"
|
132 |
+
|
133 |
+
msgid "Display search box above products"
|
134 |
+
msgstr "Mostrar barra de pesquisa acima dos produtos"
|
135 |
+
|
136 |
+
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
137 |
+
msgstr "Ou você pode adicionar uma barra de pesquisa no seu sítio usando <a href=\"%s\">widgets nativos do WordPress</a>"
|
138 |
+
|
139 |
+
msgid "Display horizontal categories above products"
|
140 |
+
msgstr "Mostrar categorias horizontais acima dos produtos"
|
141 |
+
|
142 |
+
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
143 |
+
msgstr "Ou você pode adicionar categorias verticais na barra de ferramentas do seu sítio através de <a href=\"%s\">widgets nativos do WordPress</a>"
|
144 |
+
|
145 |
+
msgid "Enable minicart attached to horizontal categories"
|
146 |
+
msgstr "Ativar minicart anexado às categorias horizontais"
|
147 |
+
|
148 |
+
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
149 |
+
msgstr "Deverá desativar esta opção se você adicionou o minicart à barra lateral do seu sítio"
|
150 |
+
|
151 |
+
msgid "Number of categories per row"
|
152 |
+
msgstr "Número de categorias por fila"
|
153 |
+
|
154 |
+
msgid "Number of products per page"
|
155 |
+
msgstr "Número de produtos por página"
|
156 |
+
|
157 |
+
msgid "Grid view"
|
158 |
+
msgstr "Vista Grelha"
|
159 |
+
|
160 |
+
msgid "List view"
|
161 |
+
msgstr "Vista Lista"
|
162 |
+
|
163 |
+
msgid "Table view"
|
164 |
+
msgstr "Vista Tabela"
|
165 |
+
|
166 |
+
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
167 |
+
msgstr "Aqui você poderá controlar quando produtos quer que sejam mostrados por página. Estas opções definem valores máximos. Se não houver espaço suficiente para mostrar todas as colunas de produtos, a Ecwid irá adaptar o número de colunas a mostrar todos os produtos."
|
168 |
+
|
169 |
+
msgid "Default view mode on product pages"
|
170 |
+
msgstr "Vista padrão nas páginas de produtos"
|
171 |
+
|
172 |
+
msgid "Grid"
|
173 |
+
msgstr "Grelha"
|
174 |
+
|
175 |
+
msgid "List"
|
176 |
+
msgstr "Lista"
|
177 |
+
|
178 |
+
msgid "Table"
|
179 |
+
msgstr "Tabela"
|
180 |
+
|
181 |
+
msgid "Default view mode on search results"
|
182 |
+
msgstr "Vista Padrão nos resultados de pesquisa"
|
183 |
+
|
184 |
+
msgid "Store powered by Ecwid"
|
185 |
+
msgstr ""
|
186 |
+
|
187 |
+
msgid "Ecwid Shopping Cart — General settings"
|
188 |
+
msgstr "Carrinho de Compras Ecwid — Definições Gerais"
|
189 |
+
|
190 |
+
msgid "Thank you for choosing Ecwid to build your online store"
|
191 |
+
msgstr "Obrigado por escolher Ecwid para construir a sua loja online"
|
192 |
+
|
193 |
+
msgid "The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps."
|
194 |
+
msgstr "Os primeiros passos para abrir o seu negócio online<br />Vamos começar e adicionar uma loja no seu sítio WordPress em <strong>3</strong> passos simples."
|
195 |
+
|
196 |
+
msgid "Register at Ecwid"
|
197 |
+
msgstr "Registe-se na Ecwid"
|
198 |
+
|
199 |
+
msgid "Create a new Ecwid account which you will use to manage your store and inventory. The registration is free."
|
200 |
+
msgstr "Crie uma nova conta Ecwid que você utilizará para gerir a sua loja e inventário. O registo é grátis."
|
201 |
+
|
202 |
+
msgid "Create new Ecwid account"
|
203 |
+
msgstr "Crie uma nova conta Ecwid"
|
204 |
+
|
205 |
+
msgid "I already have Ecwid account, sign in"
|
206 |
+
msgstr "Já tenho uma conta Ecwid, iniciar sessão"
|
207 |
+
|
208 |
+
msgid "You will be able to sign up through your existing Google, Facebook or PayPal profiles as well."
|
209 |
+
msgstr "Você conseguirá iniciar sessão atráves dos seus perfis existentes do Google, Facebook ou PayPal."
|
210 |
+
|
211 |
+
msgid "Find your Store ID"
|
212 |
+
msgstr "Obtenha a sua ID de loja"
|
213 |
+
|
214 |
+
msgid "Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the \"Dashboard\" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration."
|
215 |
+
msgstr "ID de loja é um identificador único de qualquer loja Ecwid, consiste em vários digitos. Poderá encontrá-lo no \"Painel\" da página \"Painel de Controle\" da Ecwid. Mais, a ID de loja será enviada na mensagem de correio eletrônico de boas-vindas após o registo. "
|
216 |
+
|
217 |
+
msgid "Enter your Store ID"
|
218 |
+
msgstr "Insira a sua ID de Loja"
|
219 |
+
|
220 |
+
msgid "Enter your Store ID here:"
|
221 |
+
msgstr "Insira a sua ID de Loja aqui:"
|
222 |
+
|
223 |
+
msgid "Store ID"
|
224 |
+
msgstr "ID de Loja "
|
225 |
+
|
226 |
+
msgid "Save and connect your Ecwid store to the site"
|
227 |
+
msgstr "Salve e conete a sua loja Ecwid ao sítio"
|
228 |
+
|
229 |
+
msgid "Questions? Visit <a href=\"http://help.ecwid.com/?source=wporg\">Ecwid support center</a>"
|
230 |
+
msgstr "Questões? Visite <a href=\"http://help.ecwid.com/?source=wporg\"> Centro de Apoio Ecwid</a>"
|
231 |
+
|
232 |
+
msgid "Congratulations!"
|
233 |
+
msgstr "Parabéns!"
|
234 |
+
|
235 |
+
msgid "Your Ecwid store is now connected to your WordPress website"
|
236 |
+
msgstr "A sua loja Ecwid está agora conetada ao seu sítio WorkPress"
|
237 |
+
|
238 |
+
msgid "Greetings!"
|
239 |
+
msgstr "Saudações!"
|
240 |
+
|
241 |
+
msgid "Your Ecwid store is connected to your WordPress website"
|
242 |
+
msgstr "A sua loja Ecwid está agora conetada ao seu sítio WorkPress"
|
243 |
+
|
244 |
+
msgid "Control panel"
|
245 |
+
msgstr "Painel de Controle"
|
246 |
+
|
247 |
+
msgid "Account status"
|
248 |
+
msgstr "Estado de Conta"
|
249 |
+
|
250 |
+
msgid "Paid"
|
251 |
+
msgstr "Pago"
|
252 |
+
|
253 |
+
msgid "Free"
|
254 |
+
msgstr "Grátis"
|
255 |
+
|
256 |
+
msgid "Thank you for supporting Ecwid!"
|
257 |
+
msgstr "Obrigado por apoiar Ecwid!"
|
258 |
+
|
259 |
+
msgid "Upgrade to get access to cool premium features."
|
260 |
+
msgstr "Atualize para ter acesso a características premium convenientes."
|
261 |
+
|
262 |
+
msgid "Billing and plans"
|
263 |
+
msgstr ""
|
264 |
+
|
265 |
+
msgid "Upgrade"
|
266 |
+
msgstr ""
|
267 |
+
|
268 |
+
msgid "If you want to connect another Ecwid store, you can <a %s>disconnect the current one and change Store ID</a>."
|
269 |
msgstr ""
|
languages/ecwid-shopping-cart-ru_RU.po
CHANGED
@@ -1,524 +1,524 @@
|
|
1 |
-
msgid "Ecwid Shopping Cart"
|
2 |
-
msgstr "Интернет-магазин Эквид"
|
3 |
-
|
4 |
-
msgid "Ecwid Team"
|
5 |
-
msgstr "Ecwid Team"
|
6 |
-
|
7 |
-
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
8 |
-
msgstr "Эквид – бесплатный полнофункциональный интернет-магазин. Легко встраивается в любой WordPress сайт и настраивается за 5 минут."
|
9 |
-
|
10 |
-
msgid "Get help"
|
11 |
-
msgstr "Получить помощь"
|
12 |
-
|
13 |
-
msgid "Go to Ecwid site"
|
14 |
-
msgstr "Пройти на сайт Эквида"
|
15 |
-
|
16 |
-
msgid "Visit storefront"
|
17 |
-
msgstr "Открыть страницу магазина"
|
18 |
-
|
19 |
-
msgid "Manage my store"
|
20 |
-
msgstr "Управлять магазином"
|
21 |
-
|
22 |
-
msgid "→ Sell on Facebook"
|
23 |
-
msgstr "→ Начать продавать на Facebook"
|
24 |
-
|
25 |
-
msgid "<a %s>Online store powered by Ecwid</a>"
|
26 |
-
msgstr "<a %s>Интернет магазин построен на Эквиде</a>"
|
27 |
-
|
28 |
-
msgid "Store"
|
29 |
-
msgstr "Магазин"
|
30 |
-
|
31 |
-
msgid "Ecwid shopping cart settings"
|
32 |
-
msgstr "Настройки Ecwid"
|
33 |
-
|
34 |
-
msgid "Ecwid Store"
|
35 |
-
msgstr "Магазин Ecwid"
|
36 |
-
|
37 |
-
msgid "Setup"
|
38 |
-
msgstr "Настройки"
|
39 |
-
|
40 |
-
msgid "Dashboard"
|
41 |
-
msgstr "Консоль"
|
42 |
-
|
43 |
-
msgid "Appearance settings"
|
44 |
-
msgstr "Настройки внешнего вида"
|
45 |
-
|
46 |
-
msgid "Appearance"
|
47 |
-
msgstr "Внешний вид"
|
48 |
-
|
49 |
-
msgid "Advanced settings"
|
50 |
-
msgstr "Дополнительные настройки"
|
51 |
-
|
52 |
-
msgid "Advanced"
|
53 |
-
msgstr "Дополнительные"
|
54 |
-
|
55 |
-
msgid "Hidden category"
|
56 |
-
msgstr "Скрытая категория"
|
57 |
-
|
58 |
-
msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid."
|
59 |
-
msgstr "Если вам нравится Эквид и вы хотите помочь ему стать самым популярным конструктором интернет-магазинов, вы можете добавить значок на сайт, чтобы показать посетителям, что вы пользуетесь Эквидом."
|
60 |
-
|
61 |
-
msgid "Ecwid Badge"
|
62 |
-
msgstr "Значок Эквида"
|
63 |
-
|
64 |
-
msgid "Ecwid shopping cart widget"
|
65 |
-
msgstr "Виджет интернет-магазина Эквид"
|
66 |
-
|
67 |
-
msgid "Ecwid ecommerce solution"
|
68 |
-
msgstr "Решение для электронной коммерции Эквид"
|
69 |
-
|
70 |
-
msgid "Ecwid free shopping cart"
|
71 |
-
msgstr "Беспланный конструктов интернет-магазинов Эквид"
|
72 |
-
|
73 |
-
msgid "Ecwid shopping cart"
|
74 |
-
msgstr "Интернет-магазин Эквид"
|
75 |
-
|
76 |
-
msgid "Ecwid e-commerce widgets"
|
77 |
-
msgstr "Виджеты для электронной коммерции Эквид"
|
78 |
-
|
79 |
-
msgid "Your store's minicart"
|
80 |
-
msgstr "Корзина вашего магазина"
|
81 |
-
|
82 |
-
msgid "Shopping Cart"
|
83 |
-
msgstr "Корзина"
|
84 |
-
|
85 |
-
msgid "Cart"
|
86 |
-
msgstr "Корзина"
|
87 |
-
|
88 |
-
msgid "My Account"
|
89 |
-
msgstr "Профиль"
|
90 |
-
|
91 |
-
msgid "Store with Categories Menu"
|
92 |
-
msgstr "Магазин с меню категорий"
|
93 |
-
|
94 |
-
msgid "Store Page"
|
95 |
-
msgstr "Страница магазина"
|
96 |
-
|
97 |
-
msgid "Adds a cart widget for customer to see the products they added to the cart."
|
98 |
-
msgstr "Добавляет виджет корзины покупателя для быстрого доступа к добавленным товарам."
|
99 |
-
|
100 |
-
msgid "Shopping Cart (Mini)"
|
101 |
-
msgstr "Корзина (Мини)"
|
102 |
-
|
103 |
-
msgid "Adds a compact cart widget for customer to see the products they added to the cart."
|
104 |
-
msgstr "Добавляет компактный виджет корзины покупателя для быстрого доступа к добавленным товарам."
|
105 |
-
|
106 |
-
msgid "Displays a simple search box for your customers to find a product in your store"
|
107 |
-
msgstr "Показывает покупателю поле поиска товаров в магазине"
|
108 |
-
|
109 |
-
msgid "Product Search"
|
110 |
-
msgstr "Поиск товаров"
|
111 |
-
|
112 |
-
msgid "Adds vertical categories block to let the customer navigate your store."
|
113 |
-
msgstr "Показывает вертикальный список категорий для удобной навигации по магазину."
|
114 |
-
|
115 |
-
msgid "Store Categories"
|
116 |
-
msgstr "Категории магазина"
|
117 |
-
|
118 |
-
msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site."
|
119 |
-
msgstr "Показывает ссылку на страницу магазина, позволяющую покупателю быстро открыть магазин из любой страницы на сайте."
|
120 |
-
|
121 |
-
msgid "Store Page Link"
|
122 |
-
msgstr "Ссылка на магазин"
|
123 |
-
|
124 |
-
msgid "Shop"
|
125 |
-
msgstr "Магазин"
|
126 |
-
|
127 |
-
msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop."
|
128 |
-
msgstr "Показывает список товаров, просмотренных покупателем. Позволяет покупателю быстро перейти к товарам, которые их заинтересовали раньше."
|
129 |
-
|
130 |
-
msgid "Recently Viewed Products"
|
131 |
-
msgstr "Просмотренные товары"
|
132 |
-
|
133 |
-
msgid "Number of products to show"
|
134 |
-
msgstr "Количество товаров для отображения"
|
135 |
-
|
136 |
-
msgid "Greetings! Your Ecwid store is now active."
|
137 |
-
msgstr "Добро пожаловать в Эквид!"
|
138 |
-
|
139 |
-
msgid "Take a few simple steps to complete store setup"
|
140 |
-
msgstr "Магазин почти готов — осталось несколько простых шагов"
|
141 |
-
|
142 |
-
msgid "Set up Ecwid Store"
|
143 |
-
msgstr "Настроить магазин"
|
144 |
-
|
145 |
-
msgid "Good job! Your store is set up and you're ready to sell."
|
146 |
-
msgstr "Отлично! Магазин установлен и готов к продажам."
|
147 |
-
|
148 |
-
msgid "Use the dashboard below to add products, track sales and adjust settings in your store. We also created a store page on your site and now you can fine-tune the storefront appearance."
|
149 |
-
msgstr "На этой странице вы можете добавлять товары, следить за заказами и управлять настройками магазина. Мы создали страницу витрины магазина на сайте, и теперь вы можете посмотреть витрину и настроить её внешний вид. "
|
150 |
-
|
151 |
-
msgid "Visit Storefront"
|
152 |
-
msgstr "Открыть витрину"
|
153 |
-
|
154 |
-
msgid "Configure Appearance"
|
155 |
-
msgstr "Настроить внешний вид"
|
156 |
-
|
157 |
-
msgid "Your store is almost ready!"
|
158 |
-
msgstr "Магазин почти готов!"
|
159 |
-
|
160 |
-
msgid "Connect your Ecwid account with this site to complete setup and start selling"
|
161 |
-
msgstr "Привяжите Эквид-аккаунт к сайту, чтобы завершить установку и начать продавать"
|
162 |
-
|
163 |
-
msgid "Connect Your Ecwid Store"
|
164 |
-
msgstr "Привязать Эквид-аккаунт"
|
165 |
-
|
166 |
-
msgid "To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings."
|
167 |
-
msgstr "Добавьте дополнительные элементы магазина, перетащив виджеты Эквида в нужное место сайта. После установки виджетов можете вернуться к настройкам магазина."
|
168 |
-
|
169 |
-
msgid "Back to Store Settings"
|
170 |
-
msgstr "Вернуться к настройкам"
|
171 |
-
|
172 |
-
msgid "Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site."
|
173 |
-
msgstr "Вам нравится ваш Эквид-магазин? Будем благодарны, если вы оставите отзыв и проголосуете за Эквид на сайте WordPress."
|
174 |
-
|
175 |
-
msgid "Rate Ecwid at WordPress.org"
|
176 |
-
msgstr "Оценить Эквид на WordPress.org"
|
177 |
-
|
178 |
-
msgid "Add Store"
|
179 |
-
msgstr "Добавить магазин"
|
180 |
-
|
181 |
-
msgid "Edit Store"
|
182 |
-
msgstr "Настройки магазина"
|
183 |
-
|
184 |
-
msgid "Edit Appearance"
|
185 |
-
msgstr "Настроить внешний вид"
|
186 |
-
|
187 |
-
msgid "Price"
|
188 |
-
msgstr "Цена"
|
189 |
-
|
190 |
-
msgid "Never show this message again"
|
191 |
-
msgstr "Больше не показывать это сообщение"
|
192 |
-
|
193 |
-
msgid "Ecwid Shopping Cart — Advanced settings"
|
194 |
-
msgstr "Магазин Ecwid — Дополнительные настройки"
|
195 |
-
|
196 |
-
msgid "Category shown by default"
|
197 |
-
msgstr "Категория, показываемая по умолчанию"
|
198 |
-
|
199 |
-
msgid "Store root category"
|
200 |
-
msgstr "Корневая категория магазина"
|
201 |
-
|
202 |
-
msgid "Default category ID"
|
203 |
-
msgstr "ID категории по умолчанию"
|
204 |
-
|
205 |
-
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
206 |
-
msgstr "По умолчанию, магазин показывает корневые категории. Здесь можно выбрать другую категорию для отображения, когда покупатель впервые открывает ваш магазин. Это может быть полезно, если у вас есть только одна категория или вы хотите показывать определённые набор товаров (например, специальные предложения) новым пользователям."
|
207 |
-
|
208 |
-
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
209 |
-
msgstr "Чтобы выставить категорию, <a %s>найдите ID нужной категории</a> и введите в это поле."
|
210 |
-
|
211 |
-
msgid "Single Sign-On Secret Key"
|
212 |
-
msgstr "Секретный ключ системы единой авторизации"
|
213 |
-
|
214 |
-
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
215 |
-
msgstr "Эта функция позволяет включить систему единой авторизации: когда покупатели вошли в свой аккаунт на вашем сайте, они автоматически входят в свой Эквид-аккаунт, даже если раньше у них его не было. Эта функция может быть полезна в случае, если ваши посетители создают свои аккаунты на вашем сайте."
|
216 |
-
|
217 |
-
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
218 |
-
msgstr "Чтобы включить эту функцию, вам необходимо ввести секретный ключ. Его можно найти в панели управления Эквида в секции \"Настройки > Apps > Legacy API Keys > Секретный ключ SSO\". Эта функция доступна только пользователям с <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">платным аккаунтом</a>."
|
219 |
-
|
220 |
-
msgid "Save changes"
|
221 |
-
msgstr "Сохранить изменения"
|
222 |
-
|
223 |
-
msgid "Ecwid Shopping Cart — Appearance settings"
|
224 |
-
msgstr "Магазин Ecwid — Настройки внешнего вида"
|
225 |
-
|
226 |
-
msgid "Display search box above products"
|
227 |
-
msgstr "Показывать форму поиска над списком продуктов"
|
228 |
-
|
229 |
-
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
230 |
-
msgstr "Или вы можете добавить форму поиска на ваш сайт с помощью <a href=\"%s\">виджетов WordPress</a>"
|
231 |
-
|
232 |
-
msgid "Display categories above products"
|
233 |
-
msgstr "Показывать меню категорий над списком продуктов"
|
234 |
-
|
235 |
-
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
236 |
-
msgstr "Или вы можете добавить вертикальное меню категорий на ваш сайт с помощью <a href=\"%s\">виджетов WordPress</a>"
|
237 |
-
|
238 |
-
msgid "Enable minicart attached to categories"
|
239 |
-
msgstr "Показывать корзину у меню категорий"
|
240 |
-
|
241 |
-
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
242 |
-
msgstr "Если вы добавили виджет корзины в боковое меню, следует отключить эту настройку"
|
243 |
-
|
244 |
-
msgid "Number of categories per row"
|
245 |
-
msgstr "Количество категорий в ряд"
|
246 |
-
|
247 |
-
msgid "Number of products per page"
|
248 |
-
msgstr "Количество продуктов на странице"
|
249 |
-
|
250 |
-
msgid "Grid view"
|
251 |
-
msgstr "Вид \"сетка\""
|
252 |
-
|
253 |
-
msgid "List view"
|
254 |
-
msgstr "Вид \"список\""
|
255 |
-
|
256 |
-
msgid "Table view"
|
257 |
-
msgstr "Вид \"таблица\""
|
258 |
-
|
259 |
-
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
260 |
-
msgstr "Здесь вы можете задать количество отображаемых продуктов на странице. Эти цифры определяют максимальные значения. Если на странице в сетке продуктов будет недостаточно места для отображения всех столбцов, Эквид уменьшит их количество."
|
261 |
-
|
262 |
-
msgid "Default view mode on product pages"
|
263 |
-
msgstr "Вид страницы продуктов по умолчанию"
|
264 |
-
|
265 |
-
msgid "Grid"
|
266 |
-
msgstr "Сетка"
|
267 |
-
|
268 |
-
msgid "List"
|
269 |
-
msgstr "Список"
|
270 |
-
|
271 |
-
msgid "Table"
|
272 |
-
msgstr "Таблица"
|
273 |
-
|
274 |
-
msgid "Default view mode on search results"
|
275 |
-
msgstr "Вид страницы результатов поиска по умолчанию"
|
276 |
-
|
277 |
-
msgid "Connect your store<br /> to this WordPress site"
|
278 |
-
msgstr "Подключите магазин<br /> к своему WordPress сайту"
|
279 |
-
|
280 |
-
msgid "Connect Ecwid store"
|
281 |
-
msgstr "Подключить"
|
282 |
-
|
283 |
-
msgid "After clicking button you need to login and accept permissions to use our plugin"
|
284 |
-
msgstr "Нажмите на кнопку, авторизуйтесь в Эквиде и выдайте запрошенные права доступа"
|
285 |
-
|
286 |
-
msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again."
|
287 |
-
msgstr "Ошибка подключения: после нажатия на кнопку, авторизуйтесь в Эквиде и предоставьте запрашиваемые права."
|
288 |
-
|
289 |
-
msgid "Don't have Ecwid account? Create it here"
|
290 |
-
msgstr "Ещё нет аккаунта в Эквиде? Зарегистрируйтесь"
|
291 |
-
|
292 |
-
msgid "Questions? <a %s>Read FAQ</a> or contact support at <a %s>wordpress@ecwid.com</a>"
|
293 |
-
msgstr "Есть вопросы? Посетите <a %s>Центр поддержки Эквида (англ)</a> или напишите нам на <a %s>wordpress@ecwid.com</a>"
|
294 |
-
|
295 |
-
msgid "Store ID"
|
296 |
-
msgstr "ID Магазина"
|
297 |
-
|
298 |
-
msgid "Disconnect store"
|
299 |
-
msgstr "Отсоединить магазин"
|
300 |
-
|
301 |
-
msgid "Congratulations!"
|
302 |
-
msgstr "Поздравляем!"
|
303 |
-
|
304 |
-
msgid "Your Ecwid store is now connected<br /> to your WordPress website"
|
305 |
-
msgstr "Эквид-магазин успешно подключен<br /> к вашему WordPress сайту"
|
306 |
-
|
307 |
-
msgid "Greetings!"
|
308 |
-
msgstr "Приветствуем!"
|
309 |
-
|
310 |
-
msgid "Your Ecwid store is connected<br /> to your WordPress website"
|
311 |
-
msgstr "Эквид-магазин подключен<br /> к вашему WordPress сайту"
|
312 |
-
|
313 |
-
msgid "Open control panel"
|
314 |
-
msgstr "Открыть панель управления"
|
315 |
-
|
316 |
-
msgid "Plugin is installed successfully!"
|
317 |
-
msgstr "Плагин успешно установлен!"
|
318 |
-
|
319 |
-
msgid "There are just a few steps left to start selling<br /> on your WordPress site"
|
320 |
-
msgstr "До открытия магазина на вашем WordPress сайте<br /> осталось несколько простых шагов"
|
321 |
-
|
322 |
-
msgid "There are few little steps left to start selling<br /> on your WordPress site"
|
323 |
-
msgstr "До открытия магазина на вашем WordPress сайте<br /> осталось несколько простых шагов"
|
324 |
-
|
325 |
-
msgid "Register"
|
326 |
-
msgstr "Зарегистрируйтесь"
|
327 |
-
|
328 |
-
msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required"
|
329 |
-
msgstr "Зарегистрируйте бесплатный аккаунт в Эквиде.<br /> Кредитная карта не требуется"
|
330 |
-
|
331 |
-
msgid "Connect"
|
332 |
-
msgstr "Подключите магазин"
|
333 |
-
|
334 |
-
msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>"
|
335 |
-
msgstr "Подключите свой Эквид-магазин к сайту <nobr>в два клика</nobr>"
|
336 |
-
|
337 |
-
msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>"
|
338 |
-
msgstr "Подключите свой Эквид-магазин к сайту <nobr>в два клика</nobr>"
|
339 |
-
|
340 |
-
msgid "Start selling"
|
341 |
-
msgstr "Начните продавать"
|
342 |
-
|
343 |
-
msgid "Your storefront is ready"
|
344 |
-
msgstr "Магазин открыт для покупателей"
|
345 |
-
|
346 |
-
msgid "Create Ecwid store"
|
347 |
-
msgstr "Создать магазин бесплатно"
|
348 |
-
|
349 |
-
msgid "Connect your store"
|
350 |
-
msgstr "Подключить магазин"
|
351 |
-
|
352 |
-
msgid "Free registration, No credit card required"
|
353 |
-
msgstr "Регистрация бесплатна, кредитная карта не требуется"
|
354 |
-
|
355 |
-
msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site."
|
356 |
-
msgstr "Ошибка подключения: пожалуйста, нажмите кнопку ещё раз и предоставьте права доступа плагину<br /> для публикации своего Эквид-магазина на этом сайте."
|
357 |
-
|
358 |
-
msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site"
|
359 |
-
msgstr "Вам будет предложено войти в панель управления Эквида<br />и предоставить права доступа для отображения магазина на вашем сайте"
|
360 |
-
|
361 |
-
msgid "Already have Ecwid account?"
|
362 |
-
msgstr "Уже есть аккаунт в Эквиде?"
|
363 |
-
|
364 |
-
msgid "Connect your store to Wordpress site"
|
365 |
-
msgstr "Подключить магазин к своему сайту"
|
366 |
-
|
367 |
-
msgid "Don't have an Ecwid account?"
|
368 |
-
msgstr "Ещё нет аккаунта в Эквиде?"
|
369 |
-
|
370 |
-
msgid "Register at Ecwid for free"
|
371 |
-
msgstr "Зарегистрироваться бесплатно"
|
372 |
-
|
373 |
-
msgid "No credit card required"
|
374 |
-
msgstr "Кредитная карта не требуется"
|
375 |
-
|
376 |
-
msgid "Get ready to sell online"
|
377 |
-
msgstr "Продавать онлайн – это просто"
|
378 |
-
|
379 |
-
msgid "Sell Everywhere<br>with your Ecwid store"
|
380 |
-
msgstr "Продавайте там,<br> где ваши клиенты"
|
381 |
-
|
382 |
-
msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com."
|
383 |
-
msgstr "Откройте продажи на своём WordPress сайте, а затем разместите витрину магазина в социальных сетях, блоге, и выгрузите товары на торговые площадки Яндекс.Маркет, eBay и Google Shopping."
|
384 |
-
|
385 |
-
msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store."
|
386 |
-
msgstr "Используйте наше мобильное приложение, чтобы получать и обрабатывать заказы в любой точке продаж. Все изменения синхронизируются с магазином на лету."
|
387 |
-
|
388 |
-
msgid "Features"
|
389 |
-
msgstr "Преимущества"
|
390 |
-
|
391 |
-
msgid "Compatible with your theme"
|
392 |
-
msgstr "Работает с вашей темой"
|
393 |
-
|
394 |
-
msgid "Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box."
|
395 |
-
msgstr "Эквид совместим с темой<br>\"%s\" вашего сайта из коробки."
|
396 |
-
|
397 |
-
msgid "Free and always up to date"
|
398 |
-
msgstr "Бесплатный план и обновления"
|
399 |
-
|
400 |
-
msgid "Free plan always available with tons of features<br>at no additional cost. Seamless upgrades occur<br>automatically for free."
|
401 |
-
msgstr "Всегда доступный бесплатный план с множеством<br>возможностей. Обновления магазина автоматизированы,<br> бесплатны и не требуют вашего участия."
|
402 |
-
|
403 |
-
msgid "Responsive design"
|
404 |
-
msgstr "Адаптивный дизайн"
|
405 |
-
|
406 |
-
msgid "Your store looks perfect<br />on all devices"
|
407 |
-
msgstr "Ваш магазин выглядит превосходно<br />на любом устройстве: планшете, смартфоне и ноутбуке."
|
408 |
-
|
409 |
-
msgid "PCI-DSS Certified"
|
410 |
-
msgstr "Сертификация по PCI-DSS"
|
411 |
-
|
412 |
-
msgid "Secure checkout with over 40<br />payment options"
|
413 |
-
msgstr "Эквид сертифицирован по стандарту Level 1 PCI-DSS – самому высокому уровню безопасности передачи данных."
|
414 |
-
|
415 |
-
msgid "Global Reach"
|
416 |
-
msgstr "Глобальное решение"
|
417 |
-
|
418 |
-
msgid "More than 800,000 merchants in 175 countries"
|
419 |
-
msgstr "Эквид уже используют 800,000 продавцов из 175 стран"
|
420 |
-
|
421 |
-
msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>"
|
422 |
-
msgstr "Начните продавать<br>на своём Wordpress <nobr>сайте бесплатно</nobr>"
|
423 |
-
|
424 |
-
msgid "Get Started, Create Ecwid Account"
|
425 |
-
msgstr "Зарегистрировать аккаунт"
|
426 |
-
|
427 |
-
msgid "Connect your store to this site"
|
428 |
-
msgstr "Подключить магазин к своему сайту"
|
429 |
-
|
430 |
-
msgid "Reconnect your store<br /> to this WordPress site"
|
431 |
-
msgstr "Reconnect your store<br /> to this WordPress site"
|
432 |
-
|
433 |
-
msgid "Reconnect Ecwid store"
|
434 |
-
msgstr "Reconnect Ecwid store"
|
435 |
-
|
436 |
-
msgid "New features available, reconnect to be in touch with our updates"
|
437 |
-
msgstr "New features available, reconnect to be in touch with our updates"
|
438 |
-
|
439 |
-
msgid "Add store"
|
440 |
-
msgstr "Add store"
|
441 |
-
|
442 |
-
msgid "Store elements"
|
443 |
-
msgstr "Витрина"
|
444 |
-
|
445 |
-
msgid "Choose widgets to show"
|
446 |
-
msgstr "Виджеты витрины магазина"
|
447 |
-
|
448 |
-
msgid "Product catalog will be shown automatically"
|
449 |
-
msgstr "Каталог товаров отображается по умолчанию"
|
450 |
-
|
451 |
-
msgid "Show search"
|
452 |
-
msgstr "Поиск"
|
453 |
-
|
454 |
-
msgid "Show minicart"
|
455 |
-
msgstr "Мини-корзина"
|
456 |
-
|
457 |
-
msgid "Show categories"
|
458 |
-
msgstr "Меню категорий"
|
459 |
-
|
460 |
-
msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>"
|
461 |
-
msgstr "Кроме того, вы можете добавить отдельные элементы магазина в сайдбар сайта используя <a %s>встроенные виджеты WordPress</a>"
|
462 |
-
|
463 |
-
msgid "Demo store"
|
464 |
-
msgstr "Демонстрационный магазин"
|
465 |
-
|
466 |
-
msgid "Open store dashboard"
|
467 |
-
msgstr "Настройки магазина"
|
468 |
-
|
469 |
-
msgid "Your store will be shown here!"
|
470 |
-
msgstr "Здесь будет отображаться ваш магазин."
|
471 |
-
|
472 |
-
msgid "Demo Store"
|
473 |
-
msgstr "Демонстрационный магазин"
|
474 |
-
|
475 |
-
msgid "Chameleon skin <sup>beta</sup>"
|
476 |
-
msgstr "Тема \"Хамелеон\" <sup>бета</sup>"
|
477 |
-
|
478 |
-
msgid "Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog."
|
479 |
-
msgstr "Автоматическая подстройка внешнего вида магазина под стили темы сайта. Включите эту опцию, чтобы Эквид определял цвета и шрифты сайта и исопльзовал их в каталоге товаров."
|
480 |
-
|
481 |
-
msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>."
|
482 |
-
msgstr "Мы добавили этот инструмент недавно, и он сейчас работает в бета-режиме. Если вы обнаружите какие-либо проблемы в его работе, пожалуйста, <a %s>сообщите нам</a>."
|
483 |
-
|
484 |
-
msgid "Enter your Store ID"
|
485 |
-
msgstr "Введите ваш ID Магазина"
|
486 |
-
|
487 |
-
msgid "Where to find your Store ID:"
|
488 |
-
msgstr "
|
489 |
-
|
490 |
-
msgid "You will also get your Store ID by email."
|
491 |
-
msgstr "Также вы получите ID вашего магазина на ваш e-mail."
|
492 |
-
|
493 |
-
msgid "You have not viewed any product yet."
|
494 |
-
msgstr "Вы пока что не просмотрели ни одного товара."
|
495 |
-
|
496 |
-
msgid "Open {{store page title}}"
|
497 |
-
msgstr "Открыть {{store page title}}"
|
498 |
-
|
499 |
-
msgid "Store ID is a unique identifier of your Ecwid account. You can find it in your Ecwid control panel: open the <a %s>Dashboard page</a> and find the \"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store ID."
|
500 |
-
msgstr "ID магазина – это уникальный номер аккаунта в Эквиде. Вы можете его найти в панели управления Эквид-магазина: откройте страницу \"<a %s>Консоль</a>\" и найдите текст \"<b>ID Магазина NNNNNNN</b>\". "
|
501 |
-
|
502 |
-
msgid "Enable the new category menu"
|
503 |
-
msgstr "Включить новое меню категорий"
|
504 |
-
|
505 |
-
msgid "The new category menu looks better and is more mobile-friendly. If you haven't yet added category menu to your store page, you can do that in the <a %s>store page editor</a> (enable the \"Show categories\" option)"
|
506 |
-
msgstr "Новое меню категорий лучше выглядит и отлично работает на мобильных устройствах. Если у вас на странице магазина пока нет меню категорий, добавьте его в <a %s>настройках страницы магазина</a> (включите виджет \"Категории\")."
|
507 |
-
|
508 |
-
msgid "Products"
|
509 |
-
msgstr "Товары"
|
510 |
-
|
511 |
-
msgid "Sales"
|
512 |
-
msgstr "Продажи"
|
513 |
-
|
514 |
-
msgid "If you want to connect another Ecwid store, you can re-connect on <a %s>this page</a>"
|
515 |
-
msgstr "Чтобы отвязать Эквид-аккаунт от сайта и подключить другой, воспользуйтесь <a %s>этой страницей<a>"
|
516 |
-
|
517 |
-
msgid "Your store Control Panel. Right here in WordPress."
|
518 |
-
msgstr "Панель управления магазином, встроенная в Wordpress."
|
519 |
-
|
520 |
-
msgid "Manage products, track sales, adjust settings - <nobr>All without</nobr> leaving this page."
|
521 |
-
msgstr "Вы сможете добавлять товары, обрабатывать заказы и управлять магазином прямо на этой странице."
|
522 |
-
|
523 |
-
msgid "Re-connect to Enable Control Panel"
|
524 |
-
msgstr "Подключить панель управления"
|
1 |
+
msgid "Ecwid Shopping Cart"
|
2 |
+
msgstr "Интернет-магазин Эквид"
|
3 |
+
|
4 |
+
msgid "Ecwid Team"
|
5 |
+
msgstr "Ecwid Team"
|
6 |
+
|
7 |
+
msgid "Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up."
|
8 |
+
msgstr "Эквид – бесплатный полнофункциональный интернет-магазин. Легко встраивается в любой WordPress сайт и настраивается за 5 минут."
|
9 |
+
|
10 |
+
msgid "Get help"
|
11 |
+
msgstr "Получить помощь"
|
12 |
+
|
13 |
+
msgid "Go to Ecwid site"
|
14 |
+
msgstr "Пройти на сайт Эквида"
|
15 |
+
|
16 |
+
msgid "Visit storefront"
|
17 |
+
msgstr "Открыть страницу магазина"
|
18 |
+
|
19 |
+
msgid "Manage my store"
|
20 |
+
msgstr "Управлять магазином"
|
21 |
+
|
22 |
+
msgid "→ Sell on Facebook"
|
23 |
+
msgstr "→ Начать продавать на Facebook"
|
24 |
+
|
25 |
+
msgid "<a %s>Online store powered by Ecwid</a>"
|
26 |
+
msgstr "<a %s>Интернет магазин построен на Эквиде</a>"
|
27 |
+
|
28 |
+
msgid "Store"
|
29 |
+
msgstr "Магазин"
|
30 |
+
|
31 |
+
msgid "Ecwid shopping cart settings"
|
32 |
+
msgstr "Настройки Ecwid"
|
33 |
+
|
34 |
+
msgid "Ecwid Store"
|
35 |
+
msgstr "Магазин Ecwid"
|
36 |
+
|
37 |
+
msgid "Setup"
|
38 |
+
msgstr "Настройки"
|
39 |
+
|
40 |
+
msgid "Dashboard"
|
41 |
+
msgstr "Консоль"
|
42 |
+
|
43 |
+
msgid "Appearance settings"
|
44 |
+
msgstr "Настройки внешнего вида"
|
45 |
+
|
46 |
+
msgid "Appearance"
|
47 |
+
msgstr "Внешний вид"
|
48 |
+
|
49 |
+
msgid "Advanced settings"
|
50 |
+
msgstr "Дополнительные настройки"
|
51 |
+
|
52 |
+
msgid "Advanced"
|
53 |
+
msgstr "Дополнительные"
|
54 |
+
|
55 |
+
msgid "Hidden category"
|
56 |
+
msgstr "Скрытая категория"
|
57 |
+
|
58 |
+
msgid "Do you like Ecwid and want to help it grow? You can add this fancy 'Powered by Ecwid' badge on your site to show your visitors that you're a proud user of Ecwid."
|
59 |
+
msgstr "Если вам нравится Эквид и вы хотите помочь ему стать самым популярным конструктором интернет-магазинов, вы можете добавить значок на сайт, чтобы показать посетителям, что вы пользуетесь Эквидом."
|
60 |
+
|
61 |
+
msgid "Ecwid Badge"
|
62 |
+
msgstr "Значок Эквида"
|
63 |
+
|
64 |
+
msgid "Ecwid shopping cart widget"
|
65 |
+
msgstr "Виджет интернет-магазина Эквид"
|
66 |
+
|
67 |
+
msgid "Ecwid ecommerce solution"
|
68 |
+
msgstr "Решение для электронной коммерции Эквид"
|
69 |
+
|
70 |
+
msgid "Ecwid free shopping cart"
|
71 |
+
msgstr "Беспланный конструктов интернет-магазинов Эквид"
|
72 |
+
|
73 |
+
msgid "Ecwid shopping cart"
|
74 |
+
msgstr "Интернет-магазин Эквид"
|
75 |
+
|
76 |
+
msgid "Ecwid e-commerce widgets"
|
77 |
+
msgstr "Виджеты для электронной коммерции Эквид"
|
78 |
+
|
79 |
+
msgid "Your store's minicart"
|
80 |
+
msgstr "Корзина вашего магазина"
|
81 |
+
|
82 |
+
msgid "Shopping Cart"
|
83 |
+
msgstr "Корзина"
|
84 |
+
|
85 |
+
msgid "Cart"
|
86 |
+
msgstr "Корзина"
|
87 |
+
|
88 |
+
msgid "My Account"
|
89 |
+
msgstr "Профиль"
|
90 |
+
|
91 |
+
msgid "Store with Categories Menu"
|
92 |
+
msgstr "Магазин с меню категорий"
|
93 |
+
|
94 |
+
msgid "Store Page"
|
95 |
+
msgstr "Страница магазина"
|
96 |
+
|
97 |
+
msgid "Adds a cart widget for customer to see the products they added to the cart."
|
98 |
+
msgstr "Добавляет виджет корзины покупателя для быстрого доступа к добавленным товарам."
|
99 |
+
|
100 |
+
msgid "Shopping Cart (Mini)"
|
101 |
+
msgstr "Корзина (Мини)"
|
102 |
+
|
103 |
+
msgid "Adds a compact cart widget for customer to see the products they added to the cart."
|
104 |
+
msgstr "Добавляет компактный виджет корзины покупателя для быстрого доступа к добавленным товарам."
|
105 |
+
|
106 |
+
msgid "Displays a simple search box for your customers to find a product in your store"
|
107 |
+
msgstr "Показывает покупателю поле поиска товаров в магазине"
|
108 |
+
|
109 |
+
msgid "Product Search"
|
110 |
+
msgstr "Поиск товаров"
|
111 |
+
|
112 |
+
msgid "Adds vertical categories block to let the customer navigate your store."
|
113 |
+
msgstr "Показывает вертикальный список категорий для удобной навигации по магазину."
|
114 |
+
|
115 |
+
msgid "Store Categories"
|
116 |
+
msgstr "Категории магазина"
|
117 |
+
|
118 |
+
msgid "Displays a link to the store page in sidebar for customer to quickly access your store from any page on the site."
|
119 |
+
msgstr "Показывает ссылку на страницу магазина, позволяющую покупателю быстро открыть магазин из любой страницы на сайте."
|
120 |
+
|
121 |
+
msgid "Store Page Link"
|
122 |
+
msgstr "Ссылка на магазин"
|
123 |
+
|
124 |
+
msgid "Shop"
|
125 |
+
msgstr "Магазин"
|
126 |
+
|
127 |
+
msgid "Displays a list of products recently viewed by the customer to easily return to the products they saw in your shop."
|
128 |
+
msgstr "Показывает список товаров, просмотренных покупателем. Позволяет покупателю быстро перейти к товарам, которые их заинтересовали раньше."
|
129 |
+
|
130 |
+
msgid "Recently Viewed Products"
|
131 |
+
msgstr "Просмотренные товары"
|
132 |
+
|
133 |
+
msgid "Number of products to show"
|
134 |
+
msgstr "Количество товаров для отображения"
|
135 |
+
|
136 |
+
msgid "Greetings! Your Ecwid store is now active."
|
137 |
+
msgstr "Добро пожаловать в Эквид!"
|
138 |
+
|
139 |
+
msgid "Take a few simple steps to complete store setup"
|
140 |
+
msgstr "Магазин почти готов — осталось несколько простых шагов"
|
141 |
+
|
142 |
+
msgid "Set up Ecwid Store"
|
143 |
+
msgstr "Настроить магазин"
|
144 |
+
|
145 |
+
msgid "Good job! Your store is set up and you're ready to sell."
|
146 |
+
msgstr "Отлично! Магазин установлен и готов к продажам."
|
147 |
+
|
148 |
+
msgid "Use the dashboard below to add products, track sales and adjust settings in your store. We also created a store page on your site and now you can fine-tune the storefront appearance."
|
149 |
+
msgstr "На этой странице вы можете добавлять товары, следить за заказами и управлять настройками магазина. Мы создали страницу витрины магазина на сайте, и теперь вы можете посмотреть витрину и настроить её внешний вид. "
|
150 |
+
|
151 |
+
msgid "Visit Storefront"
|
152 |
+
msgstr "Открыть витрину"
|
153 |
+
|
154 |
+
msgid "Configure Appearance"
|
155 |
+
msgstr "Настроить внешний вид"
|
156 |
+
|
157 |
+
msgid "Your store is almost ready!"
|
158 |
+
msgstr "Магазин почти готов!"
|
159 |
+
|
160 |
+
msgid "Connect your Ecwid account with this site to complete setup and start selling"
|
161 |
+
msgstr "Привяжите Эквид-аккаунт к сайту, чтобы завершить установку и начать продавать"
|
162 |
+
|
163 |
+
msgid "Connect Your Ecwid Store"
|
164 |
+
msgstr "Привязать Эквид-аккаунт"
|
165 |
+
|
166 |
+
msgid "To add extra functions to your store, drag and drop Ecwid store elements on your site. When you're done, you can get back to modifying your settings."
|
167 |
+
msgstr "Добавьте дополнительные элементы магазина, перетащив виджеты Эквида в нужное место сайта. После установки виджетов можете вернуться к настройкам магазина."
|
168 |
+
|
169 |
+
msgid "Back to Store Settings"
|
170 |
+
msgstr "Вернуться к настройкам"
|
171 |
+
|
172 |
+
msgid "Do you like your Ecwid online store? We'd appreciate it if you add your review and vote for the plugin on Wordpress site."
|
173 |
+
msgstr "Вам нравится ваш Эквид-магазин? Будем благодарны, если вы оставите отзыв и проголосуете за Эквид на сайте WordPress."
|
174 |
+
|
175 |
+
msgid "Rate Ecwid at WordPress.org"
|
176 |
+
msgstr "Оценить Эквид на WordPress.org"
|
177 |
+
|
178 |
+
msgid "Add Store"
|
179 |
+
msgstr "Добавить магазин"
|
180 |
+
|
181 |
+
msgid "Edit Store"
|
182 |
+
msgstr "Настройки магазина"
|
183 |
+
|
184 |
+
msgid "Edit Appearance"
|
185 |
+
msgstr "Настроить внешний вид"
|
186 |
+
|
187 |
+
msgid "Price"
|
188 |
+
msgstr "Цена"
|
189 |
+
|
190 |
+
msgid "Never show this message again"
|
191 |
+
msgstr "Больше не показывать это сообщение"
|
192 |
+
|
193 |
+
msgid "Ecwid Shopping Cart — Advanced settings"
|
194 |
+
msgstr "Магазин Ecwid — Дополнительные настройки"
|
195 |
+
|
196 |
+
msgid "Category shown by default"
|
197 |
+
msgstr "Категория, показываемая по умолчанию"
|
198 |
+
|
199 |
+
msgid "Store root category"
|
200 |
+
msgstr "Корневая категория магазина"
|
201 |
+
|
202 |
+
msgid "Default category ID"
|
203 |
+
msgstr "ID категории по умолчанию"
|
204 |
+
|
205 |
+
msgid "By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
206 |
+
msgstr "По умолчанию, магазин показывает корневые категории. Здесь можно выбрать другую категорию для отображения, когда покупатель впервые открывает ваш магазин. Это может быть полезно, если у вас есть только одна категория или вы хотите показывать определённые набор товаров (например, специальные предложения) новым пользователям."
|
207 |
+
|
208 |
+
msgid "In order to set this option, <a %s>find an ID of the necessary category</a> and save it here."
|
209 |
+
msgstr "Чтобы выставить категорию, <a %s>найдите ID нужной категории</a> и введите в это поле."
|
210 |
+
|
211 |
+
msgid "Single Sign-On Secret Key"
|
212 |
+
msgstr "Секретный ключ системы единой авторизации"
|
213 |
+
|
214 |
+
msgid "Single Sign-On Secret Key is an option that allows your customers access to your WordPress site as well as the Ecwid shopping cart. When customers log in to your site, they will automatically be logged in to your Ecwid store as well. It makes sense to enable this feature if your visitors actually create accounts in your WordPress website."
|
215 |
+
msgstr "Эта функция позволяет включить систему единой авторизации: когда покупатели вошли в свой аккаунт на вашем сайте, они автоматически входят в свой Эквид-аккаунт, даже если раньше у них его не было. Эта функция может быть полезна в случае, если ваши посетители создают свои аккаунты на вашем сайте."
|
216 |
+
|
217 |
+
msgid "In order to enable this feature, opt to use a secret key. You will find this key in your Ecwid control panel, at \"System Settings > Apps > Legacy API Keys > Single Sign-On Secret Key\" page. This feature is available for <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">paid users</a> only."
|
218 |
+
msgstr "Чтобы включить эту функцию, вам необходимо ввести секретный ключ. Его можно найти в панели управления Эквида в секции \"Настройки > Apps > Legacy API Keys > Секретный ключ SSO\". Эта функция доступна только пользователям с <a href=\"http://www.ecwid.com/compare-plans.html\" target=\"_blank\">платным аккаунтом</a>."
|
219 |
+
|
220 |
+
msgid "Save changes"
|
221 |
+
msgstr "Сохранить изменения"
|
222 |
+
|
223 |
+
msgid "Ecwid Shopping Cart — Appearance settings"
|
224 |
+
msgstr "Магазин Ecwid — Настройки внешнего вида"
|
225 |
+
|
226 |
+
msgid "Display search box above products"
|
227 |
+
msgstr "Показывать форму поиска над списком продуктов"
|
228 |
+
|
229 |
+
msgid "Or you can add search box to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
230 |
+
msgstr "Или вы можете добавить форму поиска на ваш сайт с помощью <a href=\"%s\">виджетов WordPress</a>"
|
231 |
+
|
232 |
+
msgid "Display categories above products"
|
233 |
+
msgstr "Показывать меню категорий над списком продуктов"
|
234 |
+
|
235 |
+
msgid "Or you can add vertical categories to your website's toolbar using <a href=\"%s\">WordPress native widgets</a>"
|
236 |
+
msgstr "Или вы можете добавить вертикальное меню категорий на ваш сайт с помощью <a href=\"%s\">виджетов WordPress</a>"
|
237 |
+
|
238 |
+
msgid "Enable minicart attached to categories"
|
239 |
+
msgstr "Показывать корзину у меню категорий"
|
240 |
+
|
241 |
+
msgid "You should disable this option, if you added minicart to your website's sidebar"
|
242 |
+
msgstr "Если вы добавили виджет корзины в боковое меню, следует отключить эту настройку"
|
243 |
+
|
244 |
+
msgid "Number of categories per row"
|
245 |
+
msgstr "Количество категорий в ряд"
|
246 |
+
|
247 |
+
msgid "Number of products per page"
|
248 |
+
msgstr "Количество продуктов на странице"
|
249 |
+
|
250 |
+
msgid "Grid view"
|
251 |
+
msgstr "Вид \"сетка\""
|
252 |
+
|
253 |
+
msgid "List view"
|
254 |
+
msgstr "Вид \"список\""
|
255 |
+
|
256 |
+
msgid "Table view"
|
257 |
+
msgstr "Вид \"таблица\""
|
258 |
+
|
259 |
+
msgid "Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, Ecwid will adapt the number of columns to hold all products."
|
260 |
+
msgstr "Здесь вы можете задать количество отображаемых продуктов на странице. Эти цифры определяют максимальные значения. Если на странице в сетке продуктов будет недостаточно места для отображения всех столбцов, Эквид уменьшит их количество."
|
261 |
+
|
262 |
+
msgid "Default view mode on product pages"
|
263 |
+
msgstr "Вид страницы продуктов по умолчанию"
|
264 |
+
|
265 |
+
msgid "Grid"
|
266 |
+
msgstr "Сетка"
|
267 |
+
|
268 |
+
msgid "List"
|
269 |
+
msgstr "Список"
|
270 |
+
|
271 |
+
msgid "Table"
|
272 |
+
msgstr "Таблица"
|
273 |
+
|
274 |
+
msgid "Default view mode on search results"
|
275 |
+
msgstr "Вид страницы результатов поиска по умолчанию"
|
276 |
+
|
277 |
+
msgid "Connect your store<br /> to this WordPress site"
|
278 |
+
msgstr "Подключите магазин<br /> к своему WordPress сайту"
|
279 |
+
|
280 |
+
msgid "Connect Ecwid store"
|
281 |
+
msgstr "Подключить"
|
282 |
+
|
283 |
+
msgid "After clicking button you need to login and accept permissions to use our plugin"
|
284 |
+
msgstr "Нажмите на кнопку, авторизуйтесь в Эквиде и выдайте запрошенные права доступа"
|
285 |
+
|
286 |
+
msgid "Connection error - after clicking button you need to login and accept permissions to use our plugin. Please, try again."
|
287 |
+
msgstr "Ошибка подключения: после нажатия на кнопку, авторизуйтесь в Эквиде и предоставьте запрашиваемые права."
|
288 |
+
|
289 |
+
msgid "Don't have Ecwid account? Create it here"
|
290 |
+
msgstr "Ещё нет аккаунта в Эквиде? Зарегистрируйтесь"
|
291 |
+
|
292 |
+
msgid "Questions? <a %s>Read FAQ</a> or contact support at <a %s>wordpress@ecwid.com</a>"
|
293 |
+
msgstr "Есть вопросы? Посетите <a %s>Центр поддержки Эквида (англ)</a> или напишите нам на <a %s>wordpress@ecwid.com</a>"
|
294 |
+
|
295 |
+
msgid "Store ID"
|
296 |
+
msgstr "ID Магазина"
|
297 |
+
|
298 |
+
msgid "Disconnect store"
|
299 |
+
msgstr "Отсоединить магазин"
|
300 |
+
|
301 |
+
msgid "Congratulations!"
|
302 |
+
msgstr "Поздравляем!"
|
303 |
+
|
304 |
+
msgid "Your Ecwid store is now connected<br /> to your WordPress website"
|
305 |
+
msgstr "Эквид-магазин успешно подключен<br /> к вашему WordPress сайту"
|
306 |
+
|
307 |
+
msgid "Greetings!"
|
308 |
+
msgstr "Приветствуем!"
|
309 |
+
|
310 |
+
msgid "Your Ecwid store is connected<br /> to your WordPress website"
|
311 |
+
msgstr "Эквид-магазин подключен<br /> к вашему WordPress сайту"
|
312 |
+
|
313 |
+
msgid "Open control panel"
|
314 |
+
msgstr "Открыть панель управления"
|
315 |
+
|
316 |
+
msgid "Plugin is installed successfully!"
|
317 |
+
msgstr "Плагин успешно установлен!"
|
318 |
+
|
319 |
+
msgid "There are just a few steps left to start selling<br /> on your WordPress site"
|
320 |
+
msgstr "До открытия магазина на вашем WordPress сайте<br /> осталось несколько простых шагов"
|
321 |
+
|
322 |
+
msgid "There are few little steps left to start selling<br /> on your WordPress site"
|
323 |
+
msgstr "До открытия магазина на вашем WordPress сайте<br /> осталось несколько простых шагов"
|
324 |
+
|
325 |
+
msgid "Register"
|
326 |
+
msgstr "Зарегистрируйтесь"
|
327 |
+
|
328 |
+
msgid "Create a free Ecwid account to manage your store and inventory.<br /> No credit card required"
|
329 |
+
msgstr "Зарегистрируйте бесплатный аккаунт в Эквиде.<br /> Кредитная карта не требуется"
|
330 |
+
|
331 |
+
msgid "Connect"
|
332 |
+
msgstr "Подключите магазин"
|
333 |
+
|
334 |
+
msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>"
|
335 |
+
msgstr "Подключите свой Эквид-магазин к сайту <nobr>в два клика</nobr>"
|
336 |
+
|
337 |
+
msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>"
|
338 |
+
msgstr "Подключите свой Эквид-магазин к сайту <nobr>в два клика</nobr>"
|
339 |
+
|
340 |
+
msgid "Start selling"
|
341 |
+
msgstr "Начните продавать"
|
342 |
+
|
343 |
+
msgid "Your storefront is ready"
|
344 |
+
msgstr "Магазин открыт для покупателей"
|
345 |
+
|
346 |
+
msgid "Create Ecwid store"
|
347 |
+
msgstr "Создать магазин бесплатно"
|
348 |
+
|
349 |
+
msgid "Connect your store"
|
350 |
+
msgstr "Подключить магазин"
|
351 |
+
|
352 |
+
msgid "Free registration, No credit card required"
|
353 |
+
msgstr "Регистрация бесплатна, кредитная карта не требуется"
|
354 |
+
|
355 |
+
msgid "Connection error: please click the button again and give permissions for this plugin<br /> to show your Ecwid store on this site."
|
356 |
+
msgstr "Ошибка подключения: пожалуйста, нажмите кнопку ещё раз и предоставьте права доступа плагину<br /> для публикации своего Эквид-магазина на этом сайте."
|
357 |
+
|
358 |
+
msgid "You will be asked to log in to your Ecwid Control Panel<br />and give permissions to show your store on this site"
|
359 |
+
msgstr "Вам будет предложено войти в панель управления Эквида<br />и предоставить права доступа для отображения магазина на вашем сайте"
|
360 |
+
|
361 |
+
msgid "Already have Ecwid account?"
|
362 |
+
msgstr "Уже есть аккаунт в Эквиде?"
|
363 |
+
|
364 |
+
msgid "Connect your store to Wordpress site"
|
365 |
+
msgstr "Подключить магазин к своему сайту"
|
366 |
+
|
367 |
+
msgid "Don't have an Ecwid account?"
|
368 |
+
msgstr "Ещё нет аккаунта в Эквиде?"
|
369 |
+
|
370 |
+
msgid "Register at Ecwid for free"
|
371 |
+
msgstr "Зарегистрироваться бесплатно"
|
372 |
+
|
373 |
+
msgid "No credit card required"
|
374 |
+
msgstr "Кредитная карта не требуется"
|
375 |
+
|
376 |
+
msgid "Get ready to sell online"
|
377 |
+
msgstr "Продавать онлайн – это просто"
|
378 |
+
|
379 |
+
msgid "Sell Everywhere<br>with your Ecwid store"
|
380 |
+
msgstr "Продавайте там,<br> где ваши клиенты"
|
381 |
+
|
382 |
+
msgid "Start selling on your WordPress site. Then mirror your shop on your Facebook page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com."
|
383 |
+
msgstr "Откройте продажи на своём WordPress сайте, а затем разместите витрину магазина в социальных сетях, блоге, и выгрузите товары на торговые площадки Яндекс.Маркет, eBay и Google Shopping."
|
384 |
+
|
385 |
+
msgid "Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders and inventory are always synchronized with your online store."
|
386 |
+
msgstr "Используйте наше мобильное приложение, чтобы получать и обрабатывать заказы в любой точке продаж. Все изменения синхронизируются с магазином на лету."
|
387 |
+
|
388 |
+
msgid "Features"
|
389 |
+
msgstr "Преимущества"
|
390 |
+
|
391 |
+
msgid "Compatible with your theme"
|
392 |
+
msgstr "Работает с вашей темой"
|
393 |
+
|
394 |
+
msgid "Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box."
|
395 |
+
msgstr "Эквид совместим с темой<br>\"%s\" вашего сайта из коробки."
|
396 |
+
|
397 |
+
msgid "Free and always up to date"
|
398 |
+
msgstr "Бесплатный план и обновления"
|
399 |
+
|
400 |
+
msgid "Free plan always available with tons of features<br>at no additional cost. Seamless upgrades occur<br>automatically for free."
|
401 |
+
msgstr "Всегда доступный бесплатный план с множеством<br>возможностей. Обновления магазина автоматизированы,<br> бесплатны и не требуют вашего участия."
|
402 |
+
|
403 |
+
msgid "Responsive design"
|
404 |
+
msgstr "Адаптивный дизайн"
|
405 |
+
|
406 |
+
msgid "Your store looks perfect<br />on all devices"
|
407 |
+
msgstr "Ваш магазин выглядит превосходно<br />на любом устройстве: планшете, смартфоне и ноутбуке."
|
408 |
+
|
409 |
+
msgid "PCI-DSS Certified"
|
410 |
+
msgstr "Сертификация по PCI-DSS"
|
411 |
+
|
412 |
+
msgid "Secure checkout with over 40<br />payment options"
|
413 |
+
msgstr "Эквид сертифицирован по стандарту Level 1 PCI-DSS – самому высокому уровню безопасности передачи данных."
|
414 |
+
|
415 |
+
msgid "Global Reach"
|
416 |
+
msgstr "Глобальное решение"
|
417 |
+
|
418 |
+
msgid "More than 800,000 merchants in 175 countries"
|
419 |
+
msgstr "Эквид уже используют 800,000 продавцов из 175 стран"
|
420 |
+
|
421 |
+
msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>"
|
422 |
+
msgstr "Начните продавать<br>на своём Wordpress <nobr>сайте бесплатно</nobr>"
|
423 |
+
|
424 |
+
msgid "Get Started, Create Ecwid Account"
|
425 |
+
msgstr "Зарегистрировать аккаунт"
|
426 |
+
|
427 |
+
msgid "Connect your store to this site"
|
428 |
+
msgstr "Подключить магазин к своему сайту"
|
429 |
+
|
430 |
+
msgid "Reconnect your store<br /> to this WordPress site"
|
431 |
+
msgstr "Reconnect your store<br /> to this WordPress site"
|
432 |
+
|
433 |
+
msgid "Reconnect Ecwid store"
|
434 |
+
msgstr "Reconnect Ecwid store"
|
435 |
+
|
436 |
+
msgid "New features available, reconnect to be in touch with our updates"
|
437 |
+
msgstr "New features available, reconnect to be in touch with our updates"
|
438 |
+
|
439 |
+
msgid "Add store"
|
440 |
+
msgstr "Add store"
|
441 |
+
|
442 |
+
msgid "Store elements"
|
443 |
+
msgstr "Витрина"
|
444 |
+
|
445 |
+
msgid "Choose widgets to show"
|
446 |
+
msgstr "Виджеты витрины магазина"
|
447 |
+
|
448 |
+
msgid "Product catalog will be shown automatically"
|
449 |
+
msgstr "Каталог товаров отображается по умолчанию"
|
450 |
+
|
451 |
+
msgid "Show search"
|
452 |
+
msgstr "Поиск"
|
453 |
+
|
454 |
+
msgid "Show minicart"
|
455 |
+
msgstr "Мини-корзина"
|
456 |
+
|
457 |
+
msgid "Show categories"
|
458 |
+
msgstr "Меню категорий"
|
459 |
+
|
460 |
+
msgid "Additionally, you can add store controls to your website's toolbar using <a %s>WordPress native widgets</a>"
|
461 |
+
msgstr "Кроме того, вы можете добавить отдельные элементы магазина в сайдбар сайта используя <a %s>встроенные виджеты WordPress</a>"
|
462 |
+
|
463 |
+
msgid "Demo store"
|
464 |
+
msgstr "Демонстрационный магазин"
|
465 |
+
|
466 |
+
msgid "Open store dashboard"
|
467 |
+
msgstr "Настройки магазина"
|
468 |
+
|
469 |
+
msgid "Your store will be shown here!"
|
470 |
+
msgstr "Здесь будет отображаться ваш магазин."
|
471 |
+
|
472 |
+
msgid "Demo Store"
|
473 |
+
msgstr "Демонстрационный магазин"
|
474 |
+
|
475 |
+
msgid "Chameleon skin <sup>beta</sup>"
|
476 |
+
msgstr "Тема \"Хамелеон\" <sup>бета</sup>"
|
477 |
+
|
478 |
+
msgid "Automatic adjustment of your store design to your Wordpress theme. Whatever Wordpress theme you use, Ecwid will detect predominant colors and font and use them in your product catalog."
|
479 |
+
msgstr "Автоматическая подстройка внешнего вида магазина под стили темы сайта. Включите эту опцию, чтобы Эквид определял цвета и шрифты сайта и исопльзовал их в каталоге товаров."
|
480 |
+
|
481 |
+
msgid "Please note this functionality is in beta. So if you run into difficulties or find problems with Chameleon, please <a %s>let us know</a>."
|
482 |
+
msgstr "Мы добавили этот инструмент недавно, и он сейчас работает в бета-режиме. Если вы обнаружите какие-либо проблемы в его работе, пожалуйста, <a %s>сообщите нам</a>."
|
483 |
+
|
484 |
+
msgid "Enter your Store ID"
|
485 |
+
msgstr "Введите ваш ID Магазина"
|
486 |
+
|
487 |
+
msgid "Where to find your Store ID:"
|
488 |
+
msgstr "Гд�
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|