Compare commits
1767
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7f02c8ca58 | ||
|
|
bfed3532bf | ||
|
|
2962141d51 | ||
|
|
73bf2a7db1 | ||
|
|
9aa656c9d7 | ||
|
|
1140b5e8b5 | ||
|
|
6a690b255b | ||
|
|
152960639f | ||
|
|
448a4c9994 | ||
|
|
7526fe4766 | ||
|
|
50eee795ed | ||
|
|
97be96ede8 | ||
|
|
0b47ef1b3b | ||
|
|
ba15d975bc | ||
|
|
47d58ff930 | ||
|
|
d06bf10bbb | ||
|
|
d0d234f555 | ||
|
|
19d975a0b4 | ||
|
|
6393746f04 | ||
|
|
db99f188a2 | ||
|
|
fe8e349931 | ||
|
|
3f8b76f78c | ||
|
|
947f9bb21c | ||
|
|
83400c691c | ||
|
|
f4601d9680 | ||
|
|
28e1a94bb6 | ||
|
|
ad6367f2bf | ||
|
|
5a8c335d78 | ||
|
|
4479db88a0 | ||
|
|
339c954cb3 | ||
|
|
c4837e65ec | ||
|
|
2117c89352 | ||
|
|
9f10a851e5 | ||
|
|
66a9ee03fc | ||
|
|
c69688cc11 | ||
|
|
26d1ad0668 | ||
|
|
6a99b84452 | ||
|
|
6ddf220aee | ||
|
|
9328a3c473 | ||
|
|
c8dfe1c174 | ||
|
|
75df12dd94 | ||
|
|
6d7e2055ce | ||
|
|
4d327a537f | ||
|
|
747926039a | ||
|
|
5e4382eb08 | ||
|
|
036e2362c9 | ||
|
|
fc193d5c8b | ||
|
|
75e6a03591 | ||
|
|
dd05692400 | ||
|
|
b5eb7c5c28 | ||
|
|
f0f3679cbd | ||
|
|
175da3ecf6 | ||
|
|
743c4f4607 | ||
|
|
40abef8aac | ||
|
|
8be339463d | ||
|
|
f0f630fb50 | ||
|
|
3f42a381a4 | ||
|
|
0e1898be09 | ||
|
|
c1969028f2 | ||
|
|
cd83ec93c7 | ||
|
|
ab730dc3da | ||
|
|
7523828a7a | ||
|
|
e2d8a33a81 | ||
|
|
a7869a1f06 | ||
|
|
de404706d9 | ||
|
|
3f9338e13d | ||
|
|
38da826671 | ||
|
|
fee461fdf1 | ||
|
|
8dd951c2df | ||
|
|
7e93b2cffd | ||
|
|
19da345531 | ||
|
|
bd8eebdc33 | ||
|
|
4312d241f3 | ||
|
|
7eb70486e0 | ||
|
|
ebc3dfee62 | ||
|
|
ee487fde59 | ||
|
|
c7f1fcb49a | ||
|
|
530b6dc501 | ||
|
|
5364be686e | ||
|
|
aaaf8588c1 | ||
|
|
6ee2852fa5 | ||
|
|
02acd47c9e | ||
|
|
32e92762f5 | ||
|
|
3b7387ffe8 | ||
|
|
472dc8c27d | ||
|
|
92cf31e5c3 | ||
|
|
fa7d44d67f | ||
|
|
b9c4b5d2a7 | ||
|
|
fbd28f3e49 | ||
|
|
8c8340db4e | ||
|
|
7cc351e83d | ||
|
|
91cde1ab3a | ||
|
|
e6f9f806bf | ||
|
|
fc4a660f76 | ||
|
|
f3147b4e57 | ||
|
|
514c087962 | ||
|
|
00887942d3 | ||
|
|
afe6c9bc6f | ||
|
|
fc6041fa33 | ||
|
|
76b03856e2 | ||
|
|
ef5779f63f | ||
|
|
d0522417eb | ||
|
|
50c95f568c | ||
|
|
d321b9a5bc | ||
|
|
d95885caae | ||
|
|
71139df65f | ||
|
|
1fb8ef823d | ||
|
|
29001b3392 | ||
|
|
eac7fbb694 | ||
|
|
fa4b5e0b7d | ||
|
|
d30830f6fe | ||
|
|
b2e5c6090d | ||
|
|
2556a7bb68 | ||
|
|
7226f33f90 | ||
|
|
3f3dc0feb9 | ||
|
|
d4253b9849 | ||
|
|
2b8d069cf9 | ||
|
|
9817ef6840 | ||
|
|
581645ce6d | ||
|
|
87be153e42 | ||
|
|
f85c6b59c8 | ||
|
|
99e98a5164 | ||
|
|
4c1ad83b18 | ||
|
|
26a43260c5 | ||
|
|
c69429c126 | ||
|
|
02c04a9884 | ||
|
|
cf65877f3f | ||
|
|
f0abdca08f | ||
|
|
0e54bf0f76 | ||
|
|
12276f41fb | ||
|
|
be13f82b30 | ||
|
|
f5cc6862cb | ||
|
|
0a65de5e5f | ||
|
|
f4740088c1 | ||
|
|
c44b1d617c | ||
|
|
c452444620 | ||
|
|
3f817e8729 | ||
|
|
66f314bbb2 | ||
|
|
bf8cd29868 | ||
|
|
b8b7fbaf71 | ||
|
|
9ea79f8cb5 | ||
|
|
b3c54a59dd | ||
|
|
06d73554be | ||
|
|
ad555f1d30 | ||
|
|
4b6ee72072 | ||
|
|
e000f8c627 | ||
|
|
6ef7f258ea | ||
|
|
2be72f50d1 | ||
|
|
d49c4cf62e | ||
|
|
c7323c2bfe | ||
|
|
2a3192d98c | ||
|
|
b16e4b5a8e | ||
|
|
8f72282594 | ||
|
|
a5bb4f0323 | ||
|
|
062fb90c2e | ||
|
|
9193a29a44 | ||
|
|
671062af07 | ||
|
|
80c60be952 | ||
|
|
1b019dffc5 | ||
|
|
f9dc0b0252 | ||
|
|
9611ea1f70 | ||
|
|
d17515a728 | ||
|
|
036fa7cba6 | ||
|
|
9c57c71deb | ||
|
|
7812731095 | ||
|
|
a8a204edf3 | ||
|
|
11f60492be | ||
|
|
f919cc899d | ||
|
|
fbdddba753 | ||
|
|
cbfa8dfc30 | ||
|
|
8547f663d1 | ||
|
|
372130f7d7 | ||
|
|
f78cde96d6 | ||
|
|
48f00b2367 | ||
|
|
c958436a76 | ||
|
|
a56fb7c639 | ||
|
|
16efe89bed | ||
|
|
56799f53c8 | ||
|
|
da43700361 | ||
|
|
d7b46e80af | ||
|
|
b311a0c719 | ||
|
|
a0f4eab4c1 | ||
|
|
9ef10ee806 | ||
|
|
f9b1545037 | ||
|
|
c56e8471c2 | ||
|
|
8953c55b7f | ||
|
|
653c38e01a | ||
|
|
78af47e2d3 | ||
|
|
26b4fbf883 | ||
|
|
c98b5e0c78 | ||
|
|
6d5ca9969e | ||
|
|
90bef56c84 | ||
|
|
75cde08776 | ||
|
|
c6319a754e | ||
|
|
9d18ef8186 | ||
|
|
f58526c701 | ||
|
|
d5eedd5eaa | ||
|
|
a43851469e | ||
|
|
0288696c90 | ||
|
|
64706075d5 | ||
|
|
7c1623c7fa | ||
|
|
ed2fbba996 | ||
|
|
87bb957431 | ||
|
|
7b029457e4 | ||
|
|
b605f33359 | ||
|
|
580e201c48 | ||
|
|
d409614222 | ||
|
|
e1c7541a38 | ||
|
|
1bee84d26c | ||
|
|
af61191a7e | ||
|
|
07222be5dd | ||
|
|
9f2580f3bd | ||
|
|
d2e475dd3a | ||
|
|
2b67d7072c | ||
|
|
b885c63564 | ||
|
|
d74291e5b5 | ||
|
|
1d90218e0d | ||
|
|
9660cef0aa | ||
|
|
4b1f198cc4 | ||
|
|
0aca1d4a67 | ||
|
|
526f32b6a0 | ||
|
|
faa4a18a82 | ||
|
|
79cba4b655 | ||
|
|
0ba8fbc39a | ||
|
|
edf54eb2ca | ||
|
|
e86c56172d | ||
|
|
48b7a49b1a | ||
|
|
12a257db7a | ||
|
|
63141a9c4d | ||
|
|
c84689ec71 | ||
|
|
4103339f53 | ||
|
|
9a879bc133 | ||
|
|
e1d1479f22 | ||
|
|
2dbaa5f73b | ||
|
|
9a3cfece69 | ||
|
|
ee06d3114d | ||
|
|
c5c861b59e | ||
|
|
0bc1d21432 | ||
|
|
4c484afda1 | ||
|
|
025b62f995 | ||
|
|
8f6a5bb3a1 | ||
|
|
a7d0794c43 | ||
|
|
6359c1ca33 | ||
|
|
9a26cf02a8 | ||
|
|
eb8ea1cba5 | ||
|
|
4e6585a1b8 | ||
|
|
a03efe152c | ||
|
|
942d3c7151 | ||
|
|
1e094f4016 | ||
|
|
a9643c80c3 | ||
|
|
438a3dda2b | ||
|
|
4cd3e1b830 | ||
|
|
97ef888345 | ||
|
|
4207bdff32 | ||
|
|
6f57093f50 | ||
|
|
8cb1806e49 | ||
|
|
759fe2f671 | ||
|
|
0416aca547 | ||
|
|
cc3363011e | ||
|
|
c516035e0e | ||
|
|
c5324a653b | ||
|
|
3cd702da42 | ||
|
|
65401efcb6 | ||
|
|
84454bbc1c | ||
|
|
f0ed5a303c | ||
|
|
4803530eed | ||
|
|
ea8a5277f2 | ||
|
|
2ffc296279 | ||
|
|
971722a13f | ||
|
|
fc9b39968b | ||
|
|
81945cef71 | ||
|
|
1cc0134ec3 | ||
|
|
b9de912dd3 | ||
|
|
6d3640e895 | ||
|
|
56693da6e0 | ||
|
|
3e33a259ef | ||
|
|
8e506ddff2 | ||
|
|
03ad842697 | ||
|
|
554ab9414f | ||
|
|
747ec9a2c4 | ||
|
|
2f5e15e2b1 | ||
|
|
373604fc97 | ||
|
|
101b37b40a | ||
|
|
ad4ecefcf9 | ||
|
|
3e999ab591 | ||
|
|
010ad76e6f | ||
|
|
5fd3ad5adf | ||
|
|
6cddb57ce3 | ||
|
|
ae63336a37 | ||
|
|
feca06417f | ||
|
|
5d28d38a22 | ||
|
|
398548fecf | ||
|
|
83d4d0d258 | ||
|
|
c401e61b81 | ||
|
|
5bb4d48ddd | ||
|
|
e557db6429 | ||
|
|
ce4170574c | ||
|
|
e6e2db8400 | ||
|
|
70d2e6e10b | ||
|
|
7cbaada844 | ||
|
|
bc7e8eb355 | ||
|
|
bc38b542fe | ||
|
|
2989538ce1 | ||
|
|
e857fb5978 | ||
|
|
1ae587475b | ||
|
|
d20aea0563 | ||
|
|
ce8d01ad4c | ||
|
|
2aa52356ad | ||
|
|
c1ecf43be8 | ||
|
|
16ffbd8ee5 | ||
|
|
61884ec223 | ||
|
|
a05c748e81 | ||
|
|
a9e45fccf3 | ||
|
|
d25b41ef97 | ||
|
|
5d8c0a0fc2 | ||
|
|
15cd0b9fbc | ||
|
|
3dea171047 | ||
|
|
35df3f463c | ||
|
|
198e75245d | ||
|
|
8ef22c3548 | ||
|
|
9b8a7edad8 | ||
|
|
332c8ff49f | ||
|
|
c9d20f35b3 | ||
|
|
f2d70076bd | ||
|
|
c36625a136 | ||
|
|
5daa79c1e1 | ||
|
|
8ef1e043af | ||
|
|
6965bb29c1 | ||
|
|
72ccc90cc9 | ||
|
|
7133e74c17 | ||
|
|
2e2151a1bb | ||
|
|
8a682081de | ||
|
|
6747d3bbac | ||
|
|
b8273a13e6 | ||
|
|
3a38af9982 | ||
|
|
6b1d69dd7d | ||
|
|
eb14e25e2a | ||
|
|
f1ea9ba5b4 | ||
|
|
e4faa2bb75 | ||
|
|
3ba5905042 | ||
|
|
22fd1b84c4 | ||
|
|
ad27dbe8d1 | ||
|
|
6ee538c710 | ||
|
|
237b950eb6 | ||
|
|
7ae9832992 | ||
|
|
81497be5ab | ||
|
|
837ca34e7e | ||
|
|
9c861642a5 | ||
|
|
dec9ef40a8 | ||
|
|
b4e18954f9 | ||
|
|
fd2dc4ff64 | ||
|
|
f25a418785 | ||
|
|
6f4b85430c | ||
|
|
2a28e47650 | ||
|
|
f3755e2d0a | ||
|
|
bce6e8f09f | ||
|
|
cc8ec4fd45 | ||
|
|
80f6f4e223 | ||
|
|
50002ec714 | ||
|
|
c6e3e28894 | ||
|
|
f8edca8ac8 | ||
|
|
2a54296b96 | ||
|
|
1adfa1584c | ||
|
|
1358c696cd | ||
|
|
5e407db21e | ||
|
|
3282bd19e4 | ||
|
|
3bc02bbe10 | ||
|
|
af9182dad5 | ||
|
|
3539eb3697 | ||
|
|
a377ecd571 | ||
|
|
8d7e96176c | ||
|
|
f9cfde9a05 | ||
|
|
ee29f4365e | ||
|
|
a10dcab6e7 | ||
|
|
0a441b9a4b | ||
|
|
4f9191fe0c | ||
|
|
2afbe8fd04 | ||
|
|
85c6e799c3 | ||
|
|
418155cf2b | ||
|
|
3f6139be42 | ||
|
|
9d5a9225e5 | ||
|
|
0dbaa59985 | ||
|
|
06c62c1684 | ||
|
|
0f9c81a683 | ||
|
|
a07733fcec | ||
|
|
1786f8e907 | ||
|
|
9fc9df6ba4 | ||
|
|
9e3b82e8ed | ||
|
|
8cfe9a2065 | ||
|
|
45e9040606 | ||
|
|
1a1f3de775 | ||
|
|
6c739ee2b3 | ||
|
|
5c66ed4791 | ||
|
|
d1a7ff50d5 | ||
|
|
7b02da5fdf | ||
|
|
36ca7bc508 | ||
|
|
075a911cee | ||
|
|
6f878353a6 | ||
|
|
bb96c8754f | ||
|
|
dc1632a8b0 | ||
|
|
a87bbf84b4 | ||
|
|
4505387046 | ||
|
|
286084c42d | ||
|
|
789911184b | ||
|
|
39a543188a | ||
|
|
9bae53a4d9 | ||
|
|
819dac6622 | ||
|
|
8d1bca5542 | ||
|
|
246340b78c | ||
|
|
75ffa8c4f8 | ||
|
|
f6bbb6e241 | ||
|
|
68d84892c7 | ||
|
|
2feb5dd8d2 | ||
|
|
d0a4636966 | ||
|
|
d796d0012e | ||
|
|
df4ae671a2 | ||
|
|
df97566018 | ||
|
|
338efcad7f | ||
|
|
7a6dea4964 | ||
|
|
008c6ce759 | ||
|
|
85946bacbe | ||
|
|
cd8af9ae67 | ||
|
|
fa88a0bd93 | ||
|
|
2899dfba5e | ||
|
|
ae7d33effe | ||
|
|
e4a642128a | ||
|
|
30adb0932d | ||
|
|
7d0e9a5f06 | ||
|
|
4daaa206d2 | ||
|
|
644e38c05f | ||
|
|
77b2b4b6ca | ||
|
|
d63288affd | ||
|
|
c51fe5b22d | ||
|
|
717e195f57 | ||
|
|
f78a093a1c | ||
|
|
f9f5a4b090 | ||
|
|
92ffb1eab1 | ||
|
|
f4610c06e0 | ||
|
|
68cba08303 | ||
|
|
2969a7f74c | ||
|
|
1ed26e2d4e | ||
|
|
302260539b | ||
|
|
d125ca0a36 | ||
|
|
adb1779764 | ||
|
|
a652590885 | ||
|
|
2515d81bdd | ||
|
|
bf65404413 | ||
|
|
e3db5570d0 | ||
|
|
68131dc28b | ||
|
|
7a7da1097d | ||
|
|
df0a24d63c | ||
|
|
4254ae6edc | ||
|
|
3f4f298ad4 | ||
|
|
2a475d066f | ||
|
|
b941ac007b | ||
|
|
d6ffb45eb1 | ||
|
|
b6bba0c787 | ||
|
|
3477cac1e0 | ||
|
|
d3d0897012 | ||
|
|
e0978a0b84 | ||
|
|
148348855e | ||
|
|
b61e3e68b9 | ||
|
|
98aea24fc3 | ||
|
|
1787923c4c | ||
|
|
481cb5c28a | ||
|
|
b2b0c4f00b | ||
|
|
2aee99c0b0 | ||
|
|
48f20a4393 | ||
|
|
139a74e4cd | ||
|
|
121fcdc39f | ||
|
|
fe6494bf35 | ||
|
|
a4b7fc942f | ||
|
|
fef8d2beac | ||
|
|
6dacc07e62 | ||
|
|
805989da39 | ||
|
|
093bf9e065 | ||
|
|
75cb92c329 | ||
|
|
f28131fe9b | ||
|
|
96646b5c7a | ||
|
|
18ab409eeb | ||
|
|
a92ced814a | ||
|
|
3d8591c588 | ||
|
|
09ad15730b | ||
|
|
6c9b71ee58 | ||
|
|
0af24ab034 | ||
|
|
f100027e5d | ||
|
|
6a0c376a18 | ||
|
|
62d946ea68 | ||
|
|
31f421153d | ||
|
|
c75cda2429 | ||
|
|
e7c860a3dd | ||
|
|
8580dd0b39 | ||
|
|
9e837d1ecc | ||
|
|
cfd70bf660 | ||
|
|
0662cd3b12 | ||
|
|
6c4a69ea0b | ||
|
|
b92c9869a4 | ||
|
|
992cc6b437 | ||
|
|
7f32e8d187 | ||
|
|
cafe2ed9d2 | ||
|
|
e38d808a85 | ||
|
|
86631202df | ||
|
|
d601844e82 | ||
|
|
ea57b3fdd1 | ||
|
|
f979cbef57 | ||
|
|
8b2215eec5 | ||
|
|
0f288583ca | ||
|
|
8762c310b9 | ||
|
|
6e0c3e1aa2 | ||
|
|
8f09d49ffc | ||
|
|
3585bf33c8 | ||
|
|
6610bd2067 | ||
|
|
43a60f1b57 | ||
|
|
f2e39488b6 | ||
|
|
e190c8df9f | ||
|
|
d1956572a5 | ||
|
|
ca1bc3daa8 | ||
|
|
d87c816038 | ||
|
|
3b75dd6785 | ||
|
|
89d86793b0 | ||
|
|
33b5971a7a | ||
|
|
711f5b0bdf | ||
|
|
4668d8ffa2 | ||
|
|
e9a3c98af9 | ||
|
|
da48cea96e | ||
|
|
a40356d21c | ||
|
|
3a0081912d | ||
|
|
a027dbd061 | ||
|
|
3d1d178bba | ||
|
|
4bb4199f5a | ||
|
|
3e0c5e71f4 | ||
|
|
fe7035aae9 | ||
|
|
96be4068f5 | ||
|
|
250a9f17a2 | ||
|
|
bf6a0e0077 | ||
|
|
6974a88b59 | ||
|
|
f4cadbdfd6 | ||
|
|
1ccc25f56c | ||
|
|
c4e549db13 | ||
|
|
a876b13c1c | ||
|
|
eb7655e318 | ||
|
|
99f325dc3c | ||
|
|
c466320887 | ||
|
|
a6e8af99f9 | ||
|
|
6bbcbb536f | ||
|
|
294384d9ea | ||
|
|
953f0641e8 | ||
|
|
a5dc1ce6f6 | ||
|
|
172986a461 | ||
|
|
23df6cb875 | ||
|
|
f4c2bacea3 | ||
|
|
626ccf0985 | ||
|
|
a76a7273ea | ||
|
|
9e4b6c020f | ||
|
|
9e64ecc887 | ||
|
|
9ad046677c | ||
|
|
4fcbde878d | ||
|
|
f30bc80485 | ||
|
|
e706b531bc | ||
|
|
340f6cebe4 | ||
|
|
97a25eb9c6 | ||
|
|
ecb4ccfdda | ||
|
|
2b55944874 | ||
|
|
452e07ab0b | ||
|
|
4a66bdcdf9 | ||
|
|
f899380e3b | ||
|
|
1b9472cc37 | ||
|
|
9c04f1dace | ||
|
|
1cce312aaa | ||
|
|
f39c2c40cf | ||
|
|
b7ff8d634a | ||
|
|
f983e0eaf1 | ||
|
|
6bb1fa6a4d | ||
|
|
05eafdb14f | ||
|
|
cfc41ec4ef | ||
|
|
6822373378 | ||
|
|
dd5cd33bb4 | ||
|
|
7eddca6d15 | ||
|
|
7d764c5ce8 | ||
|
|
f9ad0d1b79 | ||
|
|
e040c096d1 | ||
|
|
b6f13648db | ||
|
|
22173355a5 | ||
|
|
06b6facc2d | ||
|
|
e0e5f80767 | ||
|
|
3e85622972 | ||
|
|
67d0ac95b5 | ||
|
|
6e191fe054 | ||
|
|
5ebc2e5e91 | ||
|
|
813ef8bc7e | ||
|
|
c2b9ff40ef | ||
|
|
a4178a9fd2 | ||
|
|
40617c0a81 | ||
|
|
ca01b58262 | ||
|
|
9d94337c9b | ||
|
|
6449ecfb32 | ||
|
|
6d8cc454e1 | ||
|
|
345d4cdbcf | ||
|
|
66435cbf4a | ||
|
|
84d8ccfa2b | ||
|
|
2be5233584 | ||
|
|
33c2669692 | ||
|
|
6b30cc5084 | ||
|
|
19fb32545d | ||
|
|
4e472fae50 | ||
|
|
30367e6427 | ||
|
|
126c21d39a | ||
|
|
50bd3d613d | ||
|
|
98148cfe03 | ||
|
|
4fc4ee721e | ||
|
|
d3ad12e536 | ||
|
|
8c1240cb2c | ||
|
|
81ec2822ec | ||
|
|
7a7a2fb8c3 | ||
|
|
47bf9a397a | ||
|
|
f3e36b896b | ||
|
|
1abb064958 | ||
|
|
252ab56d75 | ||
|
|
9109708944 | ||
|
|
e21eef3a87 | ||
|
|
3ded9549cf | ||
|
|
37170c74b3 | ||
|
|
017d19330a | ||
|
|
78c1dce528 | ||
|
|
37f928ade9 | ||
|
|
48d9c37590 | ||
|
|
a6e67b078e | ||
|
|
7486844222 | ||
|
|
95a2b2a8a8 | ||
|
|
757fe64217 | ||
|
|
5245038ea1 | ||
|
|
91d495a4a8 | ||
|
|
ae8c8218fd | ||
|
|
81e66233d8 | ||
|
|
1800c6589c | ||
|
|
bdd84771b7 | ||
|
|
54b3ac5a32 | ||
|
|
7f9183b1d4 | ||
|
|
931d240ca1 | ||
|
|
e900474b8e | ||
|
|
69cb20d5e8 | ||
|
|
81ca3ac1f9 | ||
|
|
6f840eceba | ||
|
|
5e7dbea970 | ||
|
|
beb0a74135 | ||
|
|
0f4781053b | ||
|
|
10d6e97aca | ||
|
|
3448027861 | ||
|
|
89ac0bc439 | ||
|
|
3d477c62eb | ||
|
|
c9b53685c5 | ||
|
|
1cc92fc9c2 | ||
|
|
17323a04b6 | ||
|
|
1d6593612f | ||
|
|
4c399875d9 | ||
|
|
92b987c0f8 | ||
|
|
41af17e06b | ||
|
|
6acebca8fa | ||
|
|
6850db0612 | ||
|
|
aefab21a62 | ||
|
|
d9a24d61ac | ||
|
|
6195d0c319 | ||
|
|
b3a425c73a | ||
|
|
ccb3179c1a | ||
|
|
b4547568a5 | ||
|
|
d37f545058 | ||
|
|
5c4de83e91 | ||
|
|
6796b64e18 | ||
|
|
3b075e049b | ||
|
|
84dc75f57e | ||
|
|
92382e347c | ||
|
|
dedc59f1db | ||
|
|
c6222c51c8 | ||
|
|
a1555c3fc8 | ||
|
|
31697fde3c | ||
|
|
5206496f64 | ||
|
|
cf82157d47 | ||
|
|
7dbb6088a4 | ||
|
|
50bbf1a547 | ||
|
|
32a7a28567 | ||
|
|
a578cfb2e2 | ||
|
|
39468476ab | ||
|
|
214b844ef7 | ||
|
|
5c3b8015e5 | ||
|
|
7aa348eb93 | ||
|
|
e2a1f5101c | ||
|
|
7d05da1618 | ||
|
|
429c9442a3 | ||
|
|
2dc91758c3 | ||
|
|
9b878a33a8 | ||
|
|
7eb3b22829 | ||
|
|
e2ac223f4e | ||
|
|
5b7580d487 | ||
|
|
1cebd5920e | ||
|
|
4f639329e9 | ||
|
|
91ae972655 | ||
|
|
f8ca06d927 | ||
|
|
eb6600e840 | ||
|
|
14cd72121a | ||
|
|
42cdc988ac | ||
|
|
8c6aaa3c7d | ||
|
|
63f4743134 | ||
|
|
e0b59082f9 | ||
|
|
0361d5db8d | ||
|
|
ea6ea955bb | ||
|
|
803b6ce8ec | ||
|
|
0c511dead5 | ||
|
|
6b47f5713e | ||
|
|
5eb4c93b8c | ||
|
|
0a9f425281 | ||
|
|
65559c5cf4 | ||
|
|
e7286c44f2 | ||
|
|
4e1d6de9b0 | ||
|
|
75a9629b8a | ||
|
|
27f14b9a31 | ||
|
|
70d48d0af1 | ||
|
|
f6dc81d0f1 | ||
|
|
2e311410b2 | ||
|
|
0452979ce7 | ||
|
|
3aec242600 | ||
|
|
93aae26269 | ||
|
|
f293562ea4 | ||
|
|
66f46eee03 | ||
|
|
672da852c5 | ||
|
|
965b8a1bf3 | ||
|
|
47c5f400ee | ||
|
|
322654cacf | ||
|
|
3151064daf | ||
|
|
e6e8efc19a | ||
|
|
6ee6317fee | ||
|
|
2d5bd901f4 | ||
|
|
b9b4265517 | ||
|
|
15dd1cf96f | ||
|
|
1c58c1ea6b | ||
|
|
852faeab7a | ||
|
|
8504574ae1 | ||
|
|
e68c124218 | ||
|
|
08efa4e313 | ||
|
|
e0739ea1e0 | ||
|
|
0e3d53321a | ||
|
|
d7c1cd90bf | ||
|
|
c0afb55d11 | ||
|
|
3b9c125198 | ||
|
|
08373c0541 | ||
|
|
73dd524de8 | ||
|
|
10472ef83c | ||
|
|
6da1228359 | ||
|
|
d0ef8cca8f | ||
|
|
97ec6341e8 | ||
|
|
5363e75238 | ||
|
|
a3d9643833 | ||
|
|
4f06b74a29 | ||
|
|
61295e4e21 | ||
|
|
d9bc07d030 | ||
|
|
3eb4d65fc9 | ||
|
|
452f41df8d | ||
|
|
db4b69d10c | ||
|
|
5095b45e47 | ||
|
|
30591b7c28 | ||
|
|
f9b1f0ab5e | ||
|
|
cc36eb2d27 | ||
|
|
53c1e56c51 | ||
|
|
8590b0e699 | ||
|
|
876be3b452 | ||
|
|
e5276ff531 | ||
|
|
90091d4f2c | ||
|
|
3870388e1c | ||
|
|
ea1bdbc849 | ||
|
|
f0297824d7 | ||
|
|
c91a86740f | ||
|
|
a37033e478 | ||
|
|
9fa6c86a94 | ||
|
|
f4f3084c35 | ||
|
|
a4d131eac9 | ||
|
|
e2dac03baa | ||
|
|
dfdbe39ee3 | ||
|
|
31c94caebc | ||
|
|
4a3e0c5075 | ||
|
|
c42d71b8f5 | ||
|
|
669c3791b5 | ||
|
|
3e750490fe | ||
|
|
01be908e51 | ||
|
|
9f12ff15be | ||
|
|
53805f2b93 | ||
|
|
614e56283a | ||
|
|
85a471a690 | ||
|
|
86d3a8afe1 | ||
|
|
f94f0f14a4 | ||
|
|
31d762b88a | ||
|
|
9713f93075 | ||
|
|
c5afbc75bd | ||
|
|
332d68c7ec | ||
|
|
f30a088848 | ||
|
|
3c090535a9 | ||
|
|
c4681c1fb1 | ||
|
|
021790a3e2 | ||
|
|
4968a792b4 | ||
|
|
a383d55421 | ||
|
|
00f3045690 | ||
|
|
5362f4d426 | ||
|
|
9880d152d4 | ||
|
|
990a889b1c | ||
|
|
e6d0a3e5a4 | ||
|
|
242556e176 | ||
|
|
c502c9766f | ||
|
|
54f7c65165 | ||
|
|
641cf225f2 | ||
|
|
6ea3783013 | ||
|
|
dcad699ede | ||
|
|
e1d0347757 | ||
|
|
b975a9375c | ||
|
|
9c756a7fcb | ||
|
|
6b03af9ef9 | ||
|
|
ec556bb307 | ||
|
|
e6f8dba2e6 | ||
|
|
25ba388d69 | ||
|
|
e5337f5e76 | ||
|
|
683513a9d2 | ||
|
|
19a6c4373e | ||
|
|
2874f14983 | ||
|
|
7491f46322 | ||
|
|
4c49048e39 | ||
|
|
e5f53afd5f | ||
|
|
9377775eca | ||
|
|
768a8b36d5 | ||
|
|
1b0c5be93d | ||
|
|
663f592306 | ||
|
|
ec11b7e064 | ||
|
|
7e1c0d5a24 | ||
|
|
53241af228 | ||
|
|
a7d619b208 | ||
|
|
6b080e1f02 | ||
|
|
0f81518ba2 | ||
|
|
6e5fb47642 | ||
|
|
824a6b90f3 | ||
|
|
284711b22f | ||
|
|
2f6e0e3fae | ||
|
|
d59f3383cf | ||
|
|
4d68595447 | ||
|
|
07bdcd4129 | ||
|
|
e9d066c981 | ||
|
|
56a1449c69 | ||
|
|
63c19ce1a9 | ||
|
|
3ca2c8da95 | ||
|
|
00c1860d22 | ||
|
|
9348768ceb | ||
|
|
7b0349ca33 | ||
|
|
efa81a7107 | ||
|
|
da353c884d | ||
|
|
df56d7af42 | ||
|
|
87567ed1a0 | ||
|
|
5d38743b72 | ||
|
|
75a663b6e3 | ||
|
|
f4892686c1 | ||
|
|
b55a84e961 | ||
|
|
6daf8ebbfa | ||
|
|
5d8e187faa | ||
|
|
0891c986d6 | ||
|
|
8fedbe189c | ||
|
|
cd7d604b75 | ||
|
|
5caae97813 | ||
|
|
572a2e45aa | ||
|
|
98f60d039b | ||
|
|
656717fb4c | ||
|
|
e08c8b2d25 | ||
|
|
97f1db480a | ||
|
|
c3772fb355 | ||
|
|
da12fbdd5e | ||
|
|
94bdde4630 | ||
|
|
abf5ad195c | ||
|
|
b2ccf88296 | ||
|
|
f7eb6b3a16 | ||
|
|
6059b4301a | ||
|
|
36d9e0eed5 | ||
|
|
c6d2e1252e | ||
|
|
fe209e0c55 | ||
|
|
f535d60a29 | ||
|
|
36ca7f294a | ||
|
|
477457a44f | ||
|
|
6177589cd3 | ||
|
|
4853772198 | ||
|
|
62303e58df | ||
|
|
82939730dd | ||
|
|
397e42637a | ||
|
|
6dc0edec3a | ||
|
|
d019500d81 | ||
|
|
00afa8ae47 | ||
|
|
a013be8380 | ||
|
|
a436456fa4 | ||
|
|
5f1e08e7e2 | ||
|
|
4c633b8b46 | ||
|
|
9cd73b411d | ||
|
|
805e80e54c | ||
|
|
d0087267df | ||
|
|
f7fefe789d | ||
|
|
37e3b9e9e4 | ||
|
|
b72f2a7176 | ||
|
|
39c8a8fc2d | ||
|
|
24146181c6 | ||
|
|
e6abe1c5a0 | ||
|
|
eec8aaa4f8 | ||
|
|
08b8277a7a | ||
|
|
51083e17af | ||
|
|
40c64b54e2 | ||
|
|
4a8f6c3116 | ||
|
|
ffdc7b51b7 | ||
|
|
1196c5d736 | ||
|
|
01cbffad9b | ||
|
|
c736c28ab5 | ||
|
|
6d1c8c54af | ||
|
|
be83f1364d | ||
|
|
fb397d3163 | ||
|
|
f24391be5a | ||
|
|
5dee3ca245 | ||
|
|
75303e82e0 | ||
|
|
ddc16a2f65 | ||
|
|
c72fd867fe | ||
|
|
63d9005a10 | ||
|
|
0a2d8175a7 | ||
|
|
7a429cd3ea | ||
|
|
330aed3f7a | ||
|
|
efc44392b6 | ||
|
|
ffd712312d | ||
|
|
6a4680b4f0 | ||
|
|
5c367cd6e7 | ||
|
|
41a5eb8411 | ||
|
|
9b7f32cbac | ||
|
|
901c08cac8 | ||
|
|
4bb0e16509 | ||
|
|
39c882cdb4 | ||
|
|
30a914b148 | ||
|
|
598469e41e | ||
|
|
17618efb8b | ||
|
|
6aad506c80 | ||
|
|
99b162d16b | ||
|
|
de200e1c5e | ||
|
|
2620242176 | ||
|
|
6fd7f0114e | ||
|
|
1a5b9de372 | ||
|
|
5a685537a4 | ||
|
|
a964162a01 | ||
|
|
536bdb550b | ||
|
|
1673a080a0 | ||
|
|
2435edc98c | ||
|
|
1033c61ced | ||
|
|
1b26cfffd9 | ||
|
|
4c5c38fe61 | ||
|
|
0a4264c947 | ||
|
|
0ccbe8cb15 | ||
|
|
ad428dfb2b | ||
|
|
b7a03bdffa | ||
|
|
08dadb7fd3 | ||
|
|
a23772dfb7 | ||
|
|
bc071f2b04 | ||
|
|
9f2423c2c5 | ||
|
|
235bfada7e | ||
|
|
1e1aff517f | ||
|
|
fad94047ff | ||
|
|
b1a0e715a6 | ||
|
|
8412192822 | ||
|
|
c4bb5a99e4 | ||
|
|
9e9eb37978 | ||
|
|
d48df48a03 | ||
|
|
7bcd8ee83c | ||
|
|
03dc07de2f | ||
|
|
8ff8ea416d | ||
|
|
5c1e8e2d79 | ||
|
|
94133bf734 | ||
|
|
813c32df2f | ||
|
|
fb4a9cdb36 | ||
|
|
73515f6401 | ||
|
|
e06b01699b | ||
|
|
2082e2ad19 | ||
|
|
a21d3fd22e | ||
|
|
29cb603804 | ||
|
|
b67827772b | ||
|
|
47827a1a1b | ||
|
|
4de8013b5e | ||
|
|
bbea6c4a9b | ||
|
|
f476b34139 | ||
|
|
9d261b8f1f | ||
|
|
907d81c32e | ||
|
|
6ad274e39d | ||
|
|
eea79052e0 | ||
|
|
ba95c9a63a | ||
|
|
099baaef70 | ||
|
|
3fcf166a9d | ||
|
|
dd9aa9fdb5 | ||
|
|
5faaef9f21 | ||
|
|
eb69498d2c | ||
|
|
df418a80db | ||
|
|
4d3fc8c314 | ||
|
|
600b027efd | ||
|
|
cf35d3762b | ||
|
|
65c6d86e6e | ||
|
|
3287e1664c | ||
|
|
65becc8550 | ||
|
|
50d5a71ca6 | ||
|
|
20e2f07939 | ||
|
|
ad2702e609 | ||
|
|
3fcb65ca0f | ||
|
|
e80e2ac5e3 | ||
|
|
750f374036 | ||
|
|
57d8d9c232 | ||
|
|
eeb469dda5 | ||
|
|
43c544465e | ||
|
|
f71d4a63cf | ||
|
|
258d381083 | ||
|
|
496db1d13e | ||
|
|
c5f635f967 | ||
|
|
cf1798d2a1 | ||
|
|
8a0745e8de | ||
|
|
f610b0d844 | ||
|
|
415ca83b62 | ||
|
|
1a81191c09 | ||
|
|
155fd516ba | ||
|
|
a7f6e91ac0 | ||
|
|
dc4978ff57 | ||
|
|
bad151a66f | ||
|
|
1138e8d01a | ||
|
|
218ce59de6 | ||
|
|
c5097b19cc | ||
|
|
13c5450ca1 | ||
|
|
add997dbba | ||
|
|
8cd3fd0cfe | ||
|
|
c180a20cf9 | ||
|
|
274c90468f | ||
|
|
d40d841cf3 | ||
|
|
24ac8582bf | ||
|
|
6cff684af1 | ||
|
|
ec39b9e701 | ||
|
|
3d591be8c6 | ||
|
|
cecaee8e68 | ||
|
|
7f3652bea0 | ||
|
|
b22c2b28ec | ||
|
|
0bd04d9f3e | ||
|
|
1a1666c399 | ||
|
|
533b28ce32 | ||
|
|
f459af7090 | ||
|
|
7d0e0a7f38 | ||
|
|
26036cf7b2 | ||
|
|
b9808c5b5e | ||
|
|
c6d3545b8b | ||
|
|
f8acc2a15e | ||
|
|
dab86dffe1 | ||
|
|
62ab457908 | ||
|
|
c11c55e83c | ||
|
|
1984cb6272 | ||
|
|
5123d2505e | ||
|
|
f9fdcb1103 | ||
|
|
6e386868a6 | ||
|
|
e8685b1430 | ||
|
|
1e10dab8f8 | ||
|
|
8051b0021e | ||
|
|
b1b636a911 | ||
|
|
86fba93f63 | ||
|
|
a2d005701e | ||
|
|
b9b03d8259 | ||
|
|
4a6d1e8ff6 | ||
|
|
9c523cf7eb | ||
|
|
da02895432 | ||
|
|
6cfde246a2 | ||
|
|
3aff1341f6 | ||
|
|
284f758cb4 | ||
|
|
0cd6c5b200 | ||
|
|
5d0f1499ac | ||
|
|
30d9ebe68f | ||
|
|
7ec55106ce | ||
|
|
a06dfafb9a | ||
|
|
e2e5fbe33a | ||
|
|
7cc59b2f49 | ||
|
|
7a06dca942 | ||
|
|
a1be985067 | ||
|
|
7ff8e44386 | ||
|
|
06cdeb45a5 | ||
|
|
de41faff80 | ||
|
|
bae9df61dc | ||
|
|
136586830d | ||
|
|
30c9156a41 | ||
|
|
52806c0056 | ||
|
|
1359f46bae | ||
|
|
4c47c980f8 | ||
|
|
627e3d8a77 | ||
|
|
6befd831c9 | ||
|
|
3664f4c394 | ||
|
|
7b92675778 | ||
|
|
b7232aabd7 | ||
|
|
ce20d55e77 | ||
|
|
54189a5d97 | ||
|
|
f119b8e64f | ||
|
|
7b41098a5d | ||
|
|
8be3344e41 | ||
|
|
bc7d16ede6 | ||
|
|
501cbea5aa | ||
|
|
67a0c96ea2 | ||
|
|
41d29b5445 | ||
|
|
92840f85fe | ||
|
|
eb0d2d47e4 | ||
|
|
971b45e630 | ||
|
|
431aa78b6f | ||
|
|
8733b968f5 | ||
|
|
a38fe5ddd3 | ||
|
|
c35d846f60 | ||
|
|
2820314586 | ||
|
|
75f0b38ff1 | ||
|
|
1183b14ea9 | ||
|
|
328c6a5439 | ||
|
|
2549924cef | ||
|
|
f41bf1dcca | ||
|
|
617c1e01d2 | ||
|
|
a5be1f147f | ||
|
|
1571dd60c8 | ||
|
|
13be8db639 | ||
|
|
cac7b267e6 | ||
|
|
eed7ceb37a | ||
|
|
cbc7b9567a | ||
|
|
0fc1c9184c | ||
|
|
64698d1590 | ||
|
|
84ded9f3db | ||
|
|
f5e28b9212 | ||
|
|
9ccd9b7cad | ||
|
|
e923455f6d | ||
|
|
50cba2b12b | ||
|
|
95680e0158 | ||
|
|
390b49122e | ||
|
|
d2f41d7467 | ||
|
|
589052325b | ||
|
|
be9398c6c5 | ||
|
|
d5cdcab859 | ||
|
|
16fec55c6f | ||
|
|
49b6fda40f | ||
|
|
cbdea59753 | ||
|
|
0023950c72 | ||
|
|
5832ab3eb5 | ||
|
|
567321dd3d | ||
|
|
169c3fbc6b | ||
|
|
7d4feac247 | ||
|
|
8e72d122e6 | ||
|
|
5b3dda1cfb | ||
|
|
1c80b5fdfe | ||
|
|
4709f4a3c0 | ||
|
|
bb45c93d4f | ||
|
|
a9b44884f1 | ||
|
|
c31c2ca0e9 | ||
|
|
55fc51f20b | ||
|
|
1bfa43fa8b | ||
|
|
0f4562eb44 | ||
|
|
4abff03244 | ||
|
|
d6ab0696e6 | ||
|
|
ff69638595 | ||
|
|
05946f2932 | ||
|
|
0550ad5135 | ||
|
|
f89e42a5c5 | ||
|
|
601bfa628b | ||
|
|
73f40a6cc6 | ||
|
|
a1786b97b3 | ||
|
|
1c6eb93951 | ||
|
|
44f7356d44 | ||
|
|
de3b121b11 | ||
|
|
239c5adb5a | ||
|
|
5df213f5ae | ||
|
|
942a946147 | ||
|
|
5f1506ffc2 | ||
|
|
d916e65a14 | ||
|
|
6ccf3e839d | ||
|
|
e43f0619ca | ||
|
|
cd1ed74d8e | ||
|
|
82621c08ec | ||
|
|
d99a5a740e | ||
|
|
843989489d | ||
|
|
e6a819e5dd | ||
|
|
a32ff1e930 | ||
|
|
ac21fa9808 | ||
|
|
3213b5dffb | ||
|
|
f8efd7a329 | ||
|
|
7089ce10ef | ||
|
|
b1ea66d510 | ||
|
|
bf355e934e | ||
|
|
67b44b5f17 | ||
|
|
bfa5bae702 | ||
|
|
5be8e169f5 | ||
|
|
ea5f4476a6 | ||
|
|
5ed75901fb | ||
|
|
2303677ebf | ||
|
|
a1cf8d462f | ||
|
|
b701acc8cf | ||
|
|
e4a42ab2b1 | ||
|
|
d4270289c1 | ||
|
|
bcaa625f4c | ||
|
|
c8564fa6b2 | ||
|
|
d783160af0 | ||
|
|
375fa451d8 | ||
|
|
38753716e2 | ||
|
|
598a5b3188 | ||
|
|
cd254f8795 | ||
|
|
5e73f0cb07 | ||
|
|
6a54f6efd5 | ||
|
|
4bd59c14cc | ||
|
|
a739117f0d | ||
|
|
8103e89874 | ||
|
|
a0ee3d3c34 | ||
|
|
dbb2b50555 | ||
|
|
c966eea140 | ||
|
|
9caf97ff30 | ||
|
|
c9bf17f400 | ||
|
|
12a3ef3a12 | ||
|
|
3839dbee9a | ||
|
|
85e15c00f1 | ||
|
|
4d29142907 | ||
|
|
ba69e48f72 | ||
|
|
818e82c09c | ||
|
|
3f6ee7cfdd | ||
|
|
7b600ad07f | ||
|
|
fe0afeadc9 | ||
|
|
478e338df0 | ||
|
|
6449437f58 | ||
|
|
084880abda | ||
|
|
16d942b7b6 | ||
|
|
81e4a5f635 | ||
|
|
c0bc3bda29 | ||
|
|
33bdfa9c96 | ||
|
|
1b93d251aa | ||
|
|
edfe77b74f | ||
|
|
a69d1c6d05 | ||
|
|
f557f24df4 | ||
|
|
77ba55b090 | ||
|
|
5bcfc7d4e9 | ||
|
|
83740496de | ||
|
|
fe58053439 | ||
|
|
0139e3f877 | ||
|
|
23b9c3b8f9 | ||
|
|
88d4f57894 | ||
|
|
29bbe81ae6 | ||
|
|
0b99a7b331 | ||
|
|
5f0ef76731 | ||
|
|
f3361fbedf | ||
|
|
faec5a9226 | ||
|
|
adceb5ccf5 | ||
|
|
9f13b9f7b1 | ||
|
|
8be06bba2d | ||
|
|
d585b015c1 | ||
|
|
931cfee258 | ||
|
|
ea10b94ef2 | ||
|
|
9dfeb1d528 | ||
|
|
cf9d20f83b | ||
|
|
9ca9928c58 | ||
|
|
5cd75f23ff | ||
|
|
3a75a783f6 | ||
|
|
a98740d25c | ||
|
|
fc54ddb86f | ||
|
|
114eb3b78b | ||
|
|
58b5028147 | ||
|
|
176c6a8767 | ||
|
|
48f041f035 | ||
|
|
b81c021144 | ||
|
|
3317ab878d | ||
|
|
07181a37f5 | ||
|
|
db951f5b76 | ||
|
|
f217061e27 | ||
|
|
f3b87f126a | ||
|
|
ed887fd5c3 | ||
|
|
2ea0dc7749 | ||
|
|
d1631e6920 | ||
|
|
5a88dc0f8b | ||
|
|
b8e5ad0e44 | ||
|
|
2de866eff3 | ||
|
|
13b3adb8c0 | ||
|
|
8c2af798a4 | ||
|
|
144c85ed4f | ||
|
|
581dcec718 | ||
|
|
7f4e4efbd8 | ||
|
|
19918dea8e | ||
|
|
166d8a69fa | ||
|
|
003c05a729 | ||
|
|
9ff0d60158 | ||
|
|
055134719d | ||
|
|
47b7e6aab5 | ||
|
|
33116dfa47 | ||
|
|
be93a00277 | ||
|
|
f55a8c2dd5 | ||
|
|
02fdc5fe24 | ||
|
|
f2146ac2ae | ||
|
|
46d0663b2f | ||
|
|
9e720da3d6 | ||
|
|
fc63b8ad7f | ||
|
|
32b50b4dad | ||
|
|
268b3c6bda | ||
|
|
b51d4f4c7d | ||
|
|
28de7890d2 | ||
|
|
d8f5caee7b | ||
|
|
ac48c1b786 | ||
|
|
3f2da1095f | ||
|
|
07ce127723 | ||
|
|
7e7b5af26e | ||
|
|
1447be6f3c | ||
|
|
fa958c9a5e | ||
|
|
6a073143f2 | ||
|
|
ccc2312053 | ||
|
|
1028c8671c | ||
|
|
adede4f7ea | ||
|
|
9c86943e2a | ||
|
|
c0db0bfca9 | ||
|
|
b27d030fd2 | ||
|
|
79a4a84163 | ||
|
|
f5454748b2 | ||
|
|
9df90cc575 | ||
|
|
c9b1546a2e | ||
|
|
550aa01faf | ||
|
|
48067e1a3d | ||
|
|
7fb483eaa2 | ||
|
|
c9bb88cac7 | ||
|
|
99ebde1e8e | ||
|
|
37cd2a3ab3 | ||
|
|
fd7facc9b1 | ||
|
|
8a9376ae22 | ||
|
|
2b6b65a303 | ||
|
|
409bc533cd | ||
|
|
c6c4fd03e8 | ||
|
|
0898a63060 | ||
|
|
82a912e3f1 | ||
|
|
3cfa17b837 | ||
|
|
afd41af8c5 | ||
|
|
5f9d83dd37 | ||
|
|
59fca8eb85 | ||
|
|
3e75881bdc | ||
|
|
dfb1924884 | ||
|
|
184a1c561c | ||
|
|
c432c44987 | ||
|
|
bf7c38ef49 | ||
|
|
af9397a11b | ||
|
|
ebe8d6294d | ||
|
|
0d7ca1d8cf | ||
|
|
168759a383 | ||
|
|
e930d40482 | ||
|
|
33951c1834 | ||
|
|
d3b000e72f | ||
|
|
e1fa26d002 | ||
|
|
32f23a79a4 | ||
|
|
60ecfaafd2 | ||
|
|
c41537f4e4 | ||
|
|
e85ffae69d | ||
|
|
5e0b5db23b | ||
|
|
69944e1618 | ||
|
|
175427cb2e | ||
|
|
304e479ca5 | ||
|
|
1187e7cb09 | ||
|
|
b0ac617e9f | ||
|
|
6f27508972 | ||
|
|
fd339d96b2 | ||
|
|
b362c808dc | ||
|
|
e3265dcb1b | ||
|
|
be7e4b4128 | ||
|
|
80c2e3ea60 | ||
|
|
d68363fdda | ||
|
|
e1b7470845 | ||
|
|
0e3f2d6a82 | ||
|
|
f28a480bf9 | ||
|
|
f606cb4efb | ||
|
|
6600112ab1 | ||
|
|
9ae8667783 | ||
|
|
024800d4f9 | ||
|
|
edb8cce49f | ||
|
|
5677826b2f | ||
|
|
0821194f94 | ||
|
|
d6856a5c62 | ||
|
|
e0f1041070 | ||
|
|
d68d844303 | ||
|
|
800c63036e | ||
|
|
be613fa008 | ||
|
|
d50b8c679f | ||
|
|
fcc1867a94 | ||
|
|
9bf6871e8d | ||
|
|
cf694be5a1 | ||
|
|
a93667a58b | ||
|
|
062a4250cc | ||
|
|
6ddf2ee1ab | ||
|
|
d9ce51f38c | ||
|
|
f59bd2f55f | ||
|
|
28c0ef2b7d | ||
|
|
cba79bdcd6 | ||
|
|
3d40814739 | ||
|
|
9ba17d642a | ||
|
|
5929727be1 | ||
|
|
3814a8c735 | ||
|
|
4185026880 | ||
|
|
a36ac7784d | ||
|
|
7d57255b70 | ||
|
|
192940946d | ||
|
|
b004151695 | ||
|
|
918ceb3ed5 | ||
|
|
a23a576d47 | ||
|
|
8ddd592da1 | ||
|
|
53c195e9d9 | ||
|
|
39a6d0a42d | ||
|
|
db98509443 | ||
|
|
0ecc2fb0a0 | ||
|
|
0e6f1598f7 | ||
|
|
5f791dc839 | ||
|
|
b8dc750547 | ||
|
|
72dc8b943f | ||
|
|
aa9a6e66b8 | ||
|
|
d356fe684a | ||
|
|
d76059ff23 | ||
|
|
44b9909d4f | ||
|
|
65287d71c3 | ||
|
|
101d9283ae | ||
|
|
ab0189a726 | ||
|
|
c1b0d32d32 | ||
|
|
0de4642d09 | ||
|
|
ad9d3af3ad | ||
|
|
155102da4b | ||
|
|
4291b23e23 | ||
|
|
e1b408f1f3 | ||
|
|
210d24343c | ||
|
|
1c37fdbc23 | ||
|
|
60d67a7798 | ||
|
|
95ca638ec9 | ||
|
|
c089b1e69e | ||
|
|
85553525e9 | ||
|
|
a786606c9a | ||
|
|
77f4eec64f | ||
|
|
159d0b3904 | ||
|
|
0d76af7f41 | ||
|
|
c0cf92cbdf | ||
|
|
42c5335f27 | ||
|
|
2704f52fe4 | ||
|
|
076b6d11a2 | ||
|
|
5d2e19fe3b | ||
|
|
23e0467993 | ||
|
|
e80364984a | ||
|
|
30c689df22 | ||
|
|
5015f88a46 | ||
|
|
7d06d50d40 | ||
|
|
a35011e9a5 | ||
|
|
c9e87d99da | ||
|
|
ceee011d5c | ||
|
|
d2acb9dedb | ||
|
|
9848468f3e | ||
|
|
e6ecf0c177 | ||
|
|
eff81dfe05 | ||
|
|
6531572c15 | ||
|
|
a9e233b209 | ||
|
|
a54ac39632 | ||
|
|
3896453c7c | ||
|
|
bff2844adf | ||
|
|
53526304a5 | ||
|
|
b4d3b631ad | ||
|
|
ae7ee01028 | ||
|
|
56aa91a3fa | ||
|
|
2e7f3c296b | ||
|
|
21cf113c44 | ||
|
|
5ee247ad23 | ||
|
|
cfeaf0fa36 | ||
|
|
7b980217b5 | ||
|
|
541a4525b5 | ||
|
|
ef22b9d5d4 | ||
|
|
ae7f47a275 | ||
|
|
aaaa5cb086 | ||
|
|
a406778e17 | ||
|
|
08aa1f90c6 | ||
|
|
71c0a483e1 | ||
|
|
056ced75b5 | ||
|
|
daec59d13d | ||
|
|
063fd9941c | ||
|
|
cfa6e61acb | ||
|
|
6ac3f1133a | ||
|
|
2af3afcc13 | ||
|
|
26247a18c3 | ||
|
|
1c71dc54dc | ||
|
|
c025b8cb2b | ||
|
|
166a133080 | ||
|
|
f8bff15894 | ||
|
|
9b9e5a122a | ||
|
|
2e3f13db95 | ||
|
|
71271ded7f | ||
|
|
d241013692 | ||
|
|
4aab4f88cd | ||
|
|
abf6f0d626 | ||
|
|
a5e7f7fdac | ||
|
|
2e6e5a2604 | ||
|
|
c829ac5b7d | ||
|
|
87a4b75df4 | ||
|
|
6ed713e847 | ||
|
|
dbe26e0a1d | ||
|
|
0ddf5d1025 | ||
|
|
a805941c1f | ||
|
|
3b213a505c | ||
|
|
63b2f63058 | ||
|
|
209615d4f4 | ||
|
|
07e3354d0e | ||
|
|
9169995adc | ||
|
|
91c5d184b6 | ||
|
|
4b6642d76c | ||
|
|
3503670478 | ||
|
|
928181bd1f | ||
|
|
2e860d6750 | ||
|
|
939f7d7770 | ||
|
|
3ecf929ff0 | ||
|
|
0f7d59ad26 | ||
|
|
b88ddf4483 | ||
|
|
b87e934a66 | ||
|
|
794475a9cc | ||
|
|
d79365fe4d | ||
|
|
32c02bba5f | ||
|
|
b8d272a459 | ||
|
|
f76fe635ff | ||
|
|
3c59c5e779 | ||
|
|
ca9f2c9459 | ||
|
|
287cf0c955 | ||
|
|
3556e75ce3 | ||
|
|
838a4e8bc9 | ||
|
|
3483706951 | ||
|
|
1581a371c5 | ||
|
|
aa276aeee6 | ||
|
|
5825dda836 | ||
|
|
2f6a53f971 | ||
|
|
b1f380c120 | ||
|
|
19fb1da4f2 | ||
|
|
abf874d576 | ||
|
|
84d9caca81 | ||
|
|
5646e682bc | ||
|
|
3389cf8acb | ||
|
|
8d034a7ebf | ||
|
|
95122e8849 | ||
|
|
8c47ca3edf | ||
|
|
989dafce21 | ||
|
|
7570c9eb87 | ||
|
|
bd4ece095b | ||
|
|
eb6b233e31 | ||
|
|
219ec6e8be | ||
|
|
78ddec3ac7 | ||
|
|
a6a700c9d8 | ||
|
|
236aaa9354 | ||
|
|
54fe5dfe96 | ||
|
|
ac02e5191a | ||
|
|
c90ba4c406 | ||
|
|
066b791cf7 | ||
|
|
354622857f | ||
|
|
958d92c9fa | ||
|
|
c70fe92dac | ||
|
|
a71a5d7c18 | ||
|
|
e3d9dd89e9 | ||
|
|
caf321e691 | ||
|
|
d879fb15a9 | ||
|
|
dd78e97b4a | ||
|
|
3693349643 | ||
|
|
2c6978e97c | ||
|
|
6ae0717e32 | ||
|
|
a6b2299ed1 | ||
|
|
a6da3e94f0 | ||
|
|
6293631ac4 | ||
|
|
69066361a6 | ||
|
|
d99a1eba24 | ||
|
|
108bd92c3b | ||
|
|
c1a4dd6b66 | ||
|
|
3be36f9897 | ||
|
|
2e3ec0f038 | ||
|
|
40389822c3 | ||
|
|
5939f65fac | ||
|
|
eecfdae0b6 | ||
|
|
1537f0e9eb | ||
|
|
312e066751 | ||
|
|
cf04c18ce6 | ||
|
|
8d5027a89b | ||
|
|
5c6640c258 | ||
|
|
458838e598 | ||
|
|
ffb62426d8 | ||
|
|
8d5a632c92 | ||
|
|
014758d1d8 | ||
|
|
3f7bf5c6b0 | ||
|
|
c9d2cf8ed2 | ||
|
|
6884d7c5de | ||
|
|
24b2e1ec8c | ||
|
|
d55f31d3b5 | ||
|
|
2d1ec5f642 | ||
|
|
421c199e1f | ||
|
|
1b9892b944 | ||
|
|
899dc30097 | ||
|
|
1199ad8cf2 | ||
|
|
ea89c2235d | ||
|
|
d66f407fcb | ||
|
|
ae5b6b79ee | ||
|
|
e7eae03508 | ||
|
|
82c7e3eeff | ||
|
|
145df5a26e | ||
|
|
8d39f32506 | ||
|
|
d2ff50ddb7 | ||
|
|
3d283000a0 | ||
|
|
672f2d9dd1 | ||
|
|
97b16d2726 | ||
|
|
e48b2a411e | ||
|
|
a6d0ef744e | ||
|
|
b67ffb1a50 | ||
|
|
272f2ec8f7 | ||
|
|
d9c2ec37d4 | ||
|
|
a3039024e7 | ||
|
|
c253a8edf4 | ||
|
|
7a27b11309 | ||
|
|
f9c5bf0bf2 | ||
|
|
f6ef6f5d0e | ||
|
|
01bad90b29 | ||
|
|
4b8a756add | ||
|
|
ca4a73ddf4 | ||
|
|
1a056d5e33 | ||
|
|
f1dcf02caf | ||
|
|
e30e15d76d | ||
|
|
ee1187d821 | ||
|
|
db7f0da746 | ||
|
|
cf7f72fc30 | ||
|
|
6ea4a2c553 | ||
|
|
324dff0595 | ||
|
|
795976cadb | ||
|
|
e34289b0b7 | ||
|
|
c89281166b | ||
|
|
5083cd6b5e | ||
|
|
e23854d143 | ||
|
|
5b6c6a3ce9 | ||
|
|
39a23e1494 | ||
|
|
b25b88cf33 | ||
|
|
0453698f50 | ||
|
|
9c44faf295 | ||
|
|
4e0723b3cc | ||
|
|
105b1422a3 | ||
|
|
38b32f7e1a | ||
|
|
f82e748fc8 | ||
|
|
9fec968488 | ||
|
|
8588978e03 | ||
|
|
24d124f190 | ||
|
|
876c49b690 | ||
|
|
b880bc3a18 | ||
|
|
6f9e415ca7 | ||
|
|
e4173fbc98 | ||
|
|
1c960da57a | ||
|
|
0928efb112 | ||
|
|
c3b7e1dad9 | ||
|
|
44debd682f | ||
|
|
4b492046c0 | ||
|
|
8fcca7999d | ||
|
|
994d43d3e4 | ||
|
|
f1049c021a | ||
|
|
25b5d2857b | ||
|
|
e28a1e793a | ||
|
|
bd432641a0 | ||
|
|
5d8d7c0383 | ||
|
|
68d135b4cf | ||
|
|
291cec36ab | ||
|
|
9af2d3946f | ||
|
|
a5ee2c2f4f | ||
|
|
293d1afbc7 | ||
|
|
27a72f9b2c | ||
|
|
184515a27c | ||
|
|
d8a444335f | ||
|
|
d0cf8fce18 | ||
|
|
20b5449231 | ||
|
|
17ee071bdf | ||
|
|
004e833b24 | ||
|
|
d772d97bfa | ||
|
|
d0e4e956c4 | ||
|
|
7cc5196fec | ||
|
|
c0cdd0a0e1 | ||
|
|
2578ffb6e1 | ||
|
|
105ae7e59f | ||
|
|
9f2dad0c6c | ||
|
|
8b16bd44aa | ||
|
|
53ec2aab7e | ||
|
|
02faf9d18e | ||
|
|
e8b8fa0527 | ||
|
|
32a83e20c4 | ||
|
|
5e0893979b | ||
|
|
4f5661572e | ||
|
|
bad15211a8 | ||
|
|
7b62144220 | ||
|
|
bfa82c9648 | ||
|
|
00425a4c1a | ||
|
|
c0c6c10bba | ||
|
|
18b247be94 | ||
|
|
f413d9e6e6 | ||
|
|
1bdc07be20 | ||
|
|
4b88e8cc06 | ||
|
|
1a6518689c | ||
|
|
3166573aa9 | ||
|
|
19c9ae0a5c | ||
|
|
cf849077ed | ||
|
|
391c7301da | ||
|
|
a70d3145cd | ||
|
|
9f0867b700 | ||
|
|
62ff976d69 | ||
|
|
91cd196cf6 | ||
|
|
128ceffcc0 | ||
|
|
268f1fd030 | ||
|
|
2489778b3c | ||
|
|
54b882e936 | ||
|
|
8a7edf3668 | ||
|
|
58091a3b0e | ||
|
|
df7b5c9861 | ||
|
|
12e7e3a44a | ||
|
|
c335115f68 | ||
|
|
c360e841b3 | ||
|
|
0bddd17889 | ||
|
|
fd14268da3 | ||
|
|
47d343df90 | ||
|
|
ae03669541 | ||
|
|
ec981b7f86 | ||
|
|
d2440df8ca | ||
|
|
f78f3dc3a8 | ||
|
|
36e3956267 | ||
|
|
afda9cdd94 | ||
|
|
ae0299a6eb | ||
|
|
16e90488c4 | ||
|
|
1208e45958 | ||
|
|
8d3f330b2d | ||
|
|
5789e6eb51 | ||
|
|
fe660c097c | ||
|
|
bfa2f33c65 | ||
|
|
92959311d9 | ||
|
|
c60c3da6a1 | ||
|
|
86bdcd99e9 | ||
|
|
6b71ec8b09 | ||
|
|
854c16997c | ||
|
|
84c88dab65 | ||
|
|
b8bfdcd3f5 | ||
|
|
75942074d2 | ||
|
|
9dfe65cb17 | ||
|
|
25dc4e25ac | ||
|
|
f204f80c99 | ||
|
|
d05968823e | ||
|
|
cab425e819 | ||
|
|
0ff23eee9f | ||
|
|
0d7af59657 | ||
|
|
7c2323f1cc | ||
|
|
679ee351df | ||
|
|
a617bec39b | ||
|
|
0de8c2dbc6 | ||
|
|
f2e08c9c94 | ||
|
|
9b16761a68 | ||
|
|
7f7cd3bdaa | ||
|
|
f4fc1d3cab | ||
|
|
f4a5dd1409 | ||
|
|
dc133e3e41 | ||
|
|
783b02b34f | ||
|
|
6e383a2d38 | ||
|
|
c94dbb36ce | ||
|
|
663ec76bb9 | ||
|
|
77864b88ae | ||
|
|
e65f68107f | ||
|
|
12ab790579 | ||
|
|
66522c4a2c | ||
|
|
371edf9edb | ||
|
|
879aa9f98a | ||
|
|
10e3fec8a2 | ||
|
|
6ae0dbb4ca | ||
|
|
58e5ea606c | ||
|
|
f7f6175191 | ||
|
|
b6fbbe6187 | ||
|
|
051adc7b36 | ||
|
|
8331ab0c1a | ||
|
|
a994c93dee | ||
|
|
34644ee6eb | ||
|
|
624fed3710 | ||
|
|
07979774f6 | ||
|
|
18edd9bf75 | ||
|
|
5b058e6723 | ||
|
|
312e16a926 | ||
|
|
47d3085a4a | ||
|
|
f9f673d78f | ||
|
|
d59ea3e6dd | ||
|
|
0036768ae5 |
+160
-79
@@ -1,80 +1,161 @@
|
|||||||
- (d)oekia
|
- adonis karavokyros
|
||||||
- Alexander Otchenashev
|
- aFolletete
|
||||||
- Benjamin PONGY
|
- Agence CINS
|
||||||
- Burhan
|
- aKorczak
|
||||||
- Caleydon Media
|
- Alexander Otchenashev
|
||||||
- Damien Metzger
|
- anat
|
||||||
- DamienMetzger
|
- Andrew
|
||||||
- Damon Skelhorn
|
- aNiassy
|
||||||
- Daniel
|
- antoniofr
|
||||||
- David Gasperoni
|
- AntonLejon
|
||||||
- DrySs
|
- Arnaud Lemercier
|
||||||
- DrÿSs'
|
- Axome
|
||||||
- François Gaillard
|
- Benjamin PONGY
|
||||||
- Gabriel Schwardy
|
- BigZ
|
||||||
- Gregory Roussac
|
- bLeveque
|
||||||
- Ha!*!*y
|
- bMancone
|
||||||
- Jonathan Danse
|
- bumbu
|
||||||
- Krystian Podemski
|
- Burhan
|
||||||
- Marco Cervellin
|
- Caleydon Media
|
||||||
- Michel Courtade
|
- cam.lafit
|
||||||
- Milow
|
- Captain FLAM
|
||||||
- Patanock
|
- Captain-FLAM
|
||||||
- Pierre
|
- ccauw
|
||||||
- PrestaEdit
|
- Cédric Mouleyre
|
||||||
- Raphaël Malié
|
- ChristopheBoucaut
|
||||||
- Rémi Gaillard
|
- CINS
|
||||||
- Samy Rabih
|
- cippest
|
||||||
- Sarah Lorenzini
|
- cmouleyre
|
||||||
- Shagshag
|
- Corentin Delcourt
|
||||||
- Vincent Augagneur
|
- Cosmin Hutanu
|
||||||
- Xavier POITAU
|
- Damien Metzger
|
||||||
- aFolletete
|
- DamienMetzger
|
||||||
- aKorczak
|
- Damon Skelhorn
|
||||||
- aNiassy
|
- Daniel
|
||||||
- adonis karavokyros
|
- David Gasperoni
|
||||||
- anat
|
- Davy Rolink
|
||||||
- bLeveque
|
- djfm
|
||||||
- bMancone
|
- dlage
|
||||||
- bumbu
|
- dMetzger
|
||||||
- cmouleyre
|
- (d)oekia
|
||||||
- dMetzger
|
- Dragan Skrbic
|
||||||
- dSevere
|
- dreammeup
|
||||||
- djfm
|
- DrySs
|
||||||
- fBrignoli
|
- DrÿSs
|
||||||
- fSerny
|
- DrÿSs'
|
||||||
- fram
|
- dSevere
|
||||||
- gBrunier
|
- Edouard Gaulué
|
||||||
- gCharmes
|
- emily-d
|
||||||
- gPoulain
|
- Fabio Chelly
|
||||||
- gRoussac
|
- fBrignoli
|
||||||
- hAitmansour
|
- fram
|
||||||
- ivancasasempere
|
- Francois Gaillard
|
||||||
- jBreux
|
- François Gaillard
|
||||||
- jObregon
|
- Fran?s Gaillard
|
||||||
- jessylenne
|
- fSerny
|
||||||
- jmCollin
|
- Gabriel Schwardy
|
||||||
- kpodemski
|
- gBrunier
|
||||||
- lBrieu
|
- gCharmes
|
||||||
- lCherifi
|
- gPoulain
|
||||||
- lLefevre
|
- gr4devel
|
||||||
- mBertholino
|
- Grégoire Bélorgey
|
||||||
- mDeflotte
|
- Gregory Roussac
|
||||||
- mMarinetti
|
- gRoussac
|
||||||
- marcinsz101
|
- Guillaume DELOINCE
|
||||||
- montes
|
- ha99y
|
||||||
- nPellicari
|
- hAitmansour
|
||||||
- nezenmoins
|
- Ha!*!*y
|
||||||
- oleacorner
|
- indesign47
|
||||||
- rGaillard
|
- inem0o
|
||||||
- rMalie
|
- ivancasasempere
|
||||||
- rMontagne
|
- jBreux
|
||||||
- root
|
- jeckyl
|
||||||
- sLorenzini
|
- jeromenadaud
|
||||||
- sThiebaut
|
- Jerome Nadaud
|
||||||
- tDidierjean
|
- Jérôme Nadaud
|
||||||
- vAugagneur
|
- jessylenne
|
||||||
- vChabot
|
- jmCollin
|
||||||
- vKham
|
- jObregon
|
||||||
- vSchoener
|
- Jonathan Danse
|
||||||
|
- joseantgv
|
||||||
|
- Julien
|
||||||
|
- Kevin Granger
|
||||||
|
- kpodemski
|
||||||
|
- Krystian Podemski
|
||||||
|
- lBrieu
|
||||||
|
- lCherifi
|
||||||
|
- ldecoker
|
||||||
|
- lLefevre
|
||||||
|
- LOIC ROSSET ltd
|
||||||
|
- makk1ntosh
|
||||||
|
- marcinsz101
|
||||||
|
- Marco Cervellin
|
||||||
|
- matiasiglesias
|
||||||
|
- Mats Rynge
|
||||||
|
- MatthieuB
|
||||||
|
- Maxence
|
||||||
|
- mBertholino
|
||||||
|
- mDeflotte
|
||||||
|
- Michel Courtade
|
||||||
|
- Milow
|
||||||
|
- minic studio
|
||||||
|
- misthero
|
||||||
|
- mMarinetti
|
||||||
|
- montes
|
||||||
|
- nezenmoins
|
||||||
|
- Nicolas Sorosac
|
||||||
|
- Nils-Helge Garli Hegvik
|
||||||
|
- nPellicari
|
||||||
|
- nturato
|
||||||
|
- oleacorner
|
||||||
|
- Otto Nascarella
|
||||||
|
- Patanock
|
||||||
|
- PhpMadman
|
||||||
|
- Pierre
|
||||||
|
- Piotr Kaczor
|
||||||
|
- Piotr Mocko
|
||||||
|
- PrestaEdit
|
||||||
|
- prestarocket
|
||||||
|
- Prestaspirit
|
||||||
|
- pxls
|
||||||
|
- Raphaël Malié
|
||||||
|
- raulgundin
|
||||||
|
- Rémi Gaillard
|
||||||
|
- rGaillard
|
||||||
|
- Rimas Kudelis
|
||||||
|
- rMalie
|
||||||
|
- rMontagne
|
||||||
|
- romainberger
|
||||||
|
- root
|
||||||
|
- runningz
|
||||||
|
- sagaradonis
|
||||||
|
- Samy Rabih
|
||||||
|
- Sarah Lorenzini
|
||||||
|
- Seb
|
||||||
|
- Sébastien
|
||||||
|
- Sébastien Bocahu
|
||||||
|
- Seynaeve
|
||||||
|
- Shagshag
|
||||||
|
- sjousse
|
||||||
|
- sLorenzini
|
||||||
|
- smartdatasoft
|
||||||
|
- soufyan
|
||||||
|
- soware
|
||||||
|
- Staging
|
||||||
|
- sThiebaut
|
||||||
|
- Sylvain WITMEYER
|
||||||
|
- tDidierjean
|
||||||
|
- unknown
|
||||||
|
- vAugagneur
|
||||||
|
- vChabot
|
||||||
|
- Vincent Augagneur
|
||||||
|
- Vincent Schoener
|
||||||
|
- Vincent Terenti
|
||||||
|
- vinvin27
|
||||||
|
- vKham
|
||||||
|
- vSchoener
|
||||||
|
- Xavier
|
||||||
|
- Xavier POITAU
|
||||||
|
- Yoozio
|
||||||
|
- zimmi1
|
||||||
|
|
||||||
|
|||||||
@@ -2,47 +2,48 @@ README
|
|||||||
======
|
======
|
||||||

|

|
||||||
|
|
||||||
PREPARATION
|
ABOUT
|
||||||
--------
|
--------
|
||||||
|
|
||||||
To install PrestaShop, you need a remote web server or on your computer (MAMP), with access to a database like MySQL.
|
PrestaShop is a free and open-source e-commerce web application, committed to providing the best shopping cart experience for both merchants and consumers.
|
||||||
You'll need access to phpMyAdmin to create a database and to indicate the information in the database in the installer.
|
|
||||||
|
|
||||||
|
SERVER CONFIGURATION
|
||||||
|
--------
|
||||||
|
|
||||||
|
To install PrestaShop, you need a web server running PHP5 and any flavor of MySQL5 (MySQL, MariaDB, Percona Server...).
|
||||||
|
You will also need a database administration tool, such as phpMyAdmin, in order to create a database for PrestaShop.
|
||||||
|
We recommend the Apache or Nginx web servers.
|
||||||
|
|
||||||
|
If your host does not offer PHP5 by default, here are a few [explanations][2] about PHP5 or the .htaccess file for certain hosting services (1&1, Free, Lycos, OVH, Infomaniak, Amen, GoDaddy, etc).
|
||||||
|
|
||||||
|
If you want your online store ready to go, visit [http://www.prestabox.com][1]: it lets you create your online store in less than 10 minutes without any technical knowledge.
|
||||||
|
|
||||||
If you do not host and unable to create your store, we offer a turnkey store, which lets you create your online store in less than 10 minutes without any technical knowledge.
|
|
||||||
We invite you to visit: [http://www.prestabox.com][1]
|
|
||||||
|
|
||||||
INSTALLATION
|
INSTALLATION
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Simply go to your PrestaShop web directory and use installer :-)
|
With your web browser, go to the root of your PrestaShop directory, and the installer will start. Follow the instructions until PrestaShop is installed.
|
||||||
|
|
||||||
If you have any PHP error, perhaps you don't have PHP5 or you need to activate it on your web host.
|
If you have any PHP error, perhaps you don't have PHP5 or you need to activate it on your web host. See the page linked above.
|
||||||
Please go to our forum to find pre-installation settings (PHP 5, htaccess) for certain hosting services (1&1, Free, Lycos, OVH, Infomaniak, Amen, GoDaddy, etc).
|
If you don't find any solution to start the installer, please post on [the PrestaShop forums][3].
|
||||||
|
|
||||||
English webhost [specifics settings][2]
|
|
||||||
|
|
||||||
|
|
||||||
If you don't find any solution to launch installer, please post on [our forum][3]
|
|
||||||
|
|
||||||
|
|
||||||
There are always solutions for your issues ;-)
|
|
||||||
|
|
||||||
DOCUMENTATION
|
DOCUMENTATION
|
||||||
--------
|
--------
|
||||||
|
|
||||||
For any extra documentation (how-to), please read our [Online documentation][4]
|
The official PrestaShop documentation is available online [on its own website][4].
|
||||||
|
|
||||||
|
|
||||||
FORUMS
|
FORUMS
|
||||||
--------
|
--------
|
||||||
|
|
||||||
You can also discuss, help and contribute with PrestaShop community on [our forums][5]
|
You can discuss, help and contribute with PrestaShop community on [the PrestaShop forums][5].
|
||||||
|
|
||||||
|
Thank you for downloading and using PrestaShop e-commerce Open-source solution!
|
||||||
Thanks for downloading and using PrestaShop e-commerce Open-source solution!
|
|
||||||
|
|
||||||
[1]: http://www.prestabox.com
|
[1]: http://www.prestabox.com
|
||||||
[2]: http://www.prestashop.com/forums/topic/2946-pre-installation-settings-php-5-htaccess-for-certain-hosting-services/
|
[2]: http://www.prestashop.com/forums/topic/2946-pre-installation-settings-php-5-htaccess-for-certain-hosting-services/
|
||||||
[3]: http://www.prestashop.com/forums/forum/7-installing-prestashop/
|
[3]: http://www.prestashop.com/forums/forum/7-installing-prestashop/
|
||||||
[4]: http://doc.prestashop.com
|
[4]: http://doc.prestashop.com
|
||||||
[5]: http://www.prestashop.com/forums/
|
[5]: http://www.prestashop.com/forums/
|
||||||
|
|||||||
+1
-92
@@ -26,45 +26,12 @@
|
|||||||
|
|
||||||
define('_PS_ADMIN_DIR_', getcwd());
|
define('_PS_ADMIN_DIR_', getcwd());
|
||||||
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
|
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
|
||||||
|
|
||||||
/* Getting cookie or logout */
|
/* Getting cookie or logout */
|
||||||
require_once(_PS_ADMIN_DIR_.'/init.php');
|
require_once(_PS_ADMIN_DIR_.'/init.php');
|
||||||
|
|
||||||
$context = Context::getContext();
|
$context = Context::getContext();
|
||||||
|
|
||||||
if (Tools::isSubmit('changeParentUrl'))
|
|
||||||
echo '<script type="text/javascript">parent.parent.document.location.href = "'.addslashes(urldecode(Tools::getValue('changeParentUrl'))).'";</script>';
|
|
||||||
if (Tools::isSubmit('installBoughtModule'))
|
|
||||||
{
|
|
||||||
$file = false;
|
|
||||||
while ($file === false OR file_exists(_PS_MODULE_DIR_.$file))
|
|
||||||
$file = uniqid();
|
|
||||||
$file = _PS_MODULE_DIR_.$file.'.zip';
|
|
||||||
$sourceFile = 'http://addons.prestashop.com/iframe/getboughtfile.php?id_order_detail='.Tools::getValue('id_order_detail').'&token='.Tools::getValue('token');
|
|
||||||
if (!copy($sourceFile, $file))
|
|
||||||
{
|
|
||||||
if (!($content = file_get_contents($sourceFile)))
|
|
||||||
die(displayJavascriptAlert('Access denied: Please download your module directly from PrestaShop Addons website'));
|
|
||||||
elseif (!file_put_contents($file, $content))
|
|
||||||
die(displayJavascriptAlert('Local error: your module directory is not writable'));
|
|
||||||
}
|
|
||||||
$first6 = fread($fd = fopen($file, 'r'), 6);
|
|
||||||
if (!strncmp($first6, 'Error:', 6))
|
|
||||||
{
|
|
||||||
$displayJavascriptAlert = displayJavascriptAlert(fread($fd, 1024));
|
|
||||||
fclose($fd);
|
|
||||||
unlink($file);
|
|
||||||
die($displayJavascriptAlert);
|
|
||||||
}
|
|
||||||
fclose($fd);
|
|
||||||
if (!Tools::ZipExtract($file, _PS_MODULE_DIR_))
|
|
||||||
{
|
|
||||||
unlink($file);
|
|
||||||
die(displayJavascriptAlert('Cannot unzip file'));
|
|
||||||
}
|
|
||||||
unlink($file);
|
|
||||||
die(displayJavascriptAlert('Module copied to disk'));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Tools::isSubmit('ajaxReferrers'))
|
if (Tools::isSubmit('ajaxReferrers'))
|
||||||
{
|
{
|
||||||
require(_PS_CONTROLLER_DIR_.'admin/AdminReferrersController.php');
|
require(_PS_CONTROLLER_DIR_.'admin/AdminReferrersController.php');
|
||||||
@@ -101,39 +68,6 @@ if (Tools::isSubmit('ajaxProductPackItems'))
|
|||||||
die('['.implode(',', $jsonArray).']');
|
die('['.implode(',', $jsonArray).']');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Tools::isSubmit('ajaxStates') AND Tools::isSubmit('id_country'))
|
|
||||||
{
|
|
||||||
$states = Db::getInstance()->executeS('
|
|
||||||
SELECT s.id_state, s.name
|
|
||||||
FROM '._DB_PREFIX_.'state s
|
|
||||||
LEFT JOIN '._DB_PREFIX_.'country c ON (s.`id_country` = c.`id_country`)
|
|
||||||
WHERE s.id_country = '.(int)(Tools::getValue('id_country')).' AND s.active = 1 AND c.`contains_states` = 1
|
|
||||||
ORDER BY s.`name` ASC');
|
|
||||||
|
|
||||||
if (is_array($states) AND !empty($states))
|
|
||||||
{
|
|
||||||
$list = '';
|
|
||||||
if (Tools::getValue('no_empty') != true)
|
|
||||||
{
|
|
||||||
$empty_value = (Tools::isSubmit('empty_value')) ? Tools::getValue('empty_value') : '----------';
|
|
||||||
$list = '<option value="0">'.Tools::htmlentitiesUTF8($empty_value).'</option>'."\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($states AS $state)
|
|
||||||
$list .= '<option value="'.(int)($state['id_state']).'"'.((isset($_GET['id_state']) AND $_GET['id_state'] == $state['id_state']) ? ' selected="selected"' : '').'>'.$state['name'].'</option>'."\n";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$list = 'false';
|
|
||||||
|
|
||||||
die($list);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Tools::getValue('form_language_id'))
|
|
||||||
{
|
|
||||||
if (!($context->cookie->employee_form_lang = (int)(Tools::getValue('form_language_id'))))
|
|
||||||
die ('Error while updating cookie.');
|
|
||||||
die ('Form language updated.');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Tools::isSubmit('submitTrackClickOnHelp'))
|
if (Tools::isSubmit('submitTrackClickOnHelp'))
|
||||||
{
|
{
|
||||||
@@ -144,15 +78,6 @@ if (Tools::isSubmit('submitTrackClickOnHelp'))
|
|||||||
HelpAccess::trackClick($label, $version);
|
HelpAccess::trackClick($label, $version);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Tools::isSubmit('toggleScreencast'))
|
|
||||||
{
|
|
||||||
if (Validate::isLoadedObject($context->employee))
|
|
||||||
{
|
|
||||||
$context->employee->bo_show_screencast = !$context->employee->bo_show_screencast;
|
|
||||||
$context->employee->update();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Tools::isSubmit('getChildrenCategories') && Tools::isSubmit('id_category_parent'))
|
if (Tools::isSubmit('getChildrenCategories') && Tools::isSubmit('id_category_parent'))
|
||||||
{
|
{
|
||||||
$children_categories = Category::getChildrenWithNbSelectedSubCat(Tools::getValue('id_category_parent'), Tools::getValue('selectedCat'), Context::getContext()->language->id, null, Tools::getValue('use_shop_context'));
|
$children_categories = Category::getChildrenWithNbSelectedSubCat(Tools::getValue('id_category_parent'), Tools::getValue('selectedCat'), Context::getContext()->language->id, null, Tools::getValue('use_shop_context'));
|
||||||
@@ -200,17 +125,6 @@ if (Tools::isSubmit('getParentCategoriesId') && $id_category = Tools::getValue('
|
|||||||
die(Tools::jsonEncode($output));
|
die(Tools::jsonEncode($output));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update attribute */
|
|
||||||
if (Tools::isSubmit('ajaxUpdateTaxRule'))
|
|
||||||
{
|
|
||||||
$id_tax_rule = Tools::getValue('id_tax_rule');
|
|
||||||
$tax_rules = new TaxRule((int)$id_tax_rule);
|
|
||||||
$output = array();
|
|
||||||
foreach ($tax_rules as $key => $result)
|
|
||||||
$output[$key] = $result;
|
|
||||||
die(Tools::jsonEncode($output));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Tools::isSubmit('getZones'))
|
if (Tools::isSubmit('getZones'))
|
||||||
{
|
{
|
||||||
$zones = Zone::getZones();
|
$zones = Zone::getZones();
|
||||||
@@ -223,8 +137,3 @@ if (Tools::isSubmit('getZones'))
|
|||||||
$array = array('hasError' => false, 'errors' => '', 'data' => $html);
|
$array = array('hasError' => false, 'errors' => '', 'data' => $html);
|
||||||
die(Tools::jsonEncode($html));
|
die(Tools::jsonEncode($html));
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayJavascriptAlert($s)
|
|
||||||
{
|
|
||||||
echo '<script type="text/javascript">alert(\''.addslashes($s).'\');</script>';
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -22,26 +22,18 @@
|
|||||||
|
|
||||||
$upload->setInvalidFileExt(explode(",", CONFIG_UPLOAD_INVALID_EXTS));
|
$upload->setInvalidFileExt(explode(",", CONFIG_UPLOAD_INVALID_EXTS));
|
||||||
if(CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_UPLOAD)
|
if(CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_UPLOAD)
|
||||||
{
|
|
||||||
$error = SYS_DISABLED;
|
$error = SYS_DISABLED;
|
||||||
}
|
|
||||||
elseif(empty($_GET['folder']) || !isUnderRoot($_GET['folder']))
|
elseif(empty($_GET['folder']) || !isUnderRoot($_GET['folder']))
|
||||||
{
|
|
||||||
$error = ERR_FOLDER_PATH_NOT_ALLOWED;
|
$error = ERR_FOLDER_PATH_NOT_ALLOWED;
|
||||||
}else if(!$upload->isFileUploaded('file'))
|
elseif (!$upload->isFileUploaded('file'))
|
||||||
{
|
|
||||||
$error = ERR_FILE_NOT_UPLOADED;
|
$error = ERR_FILE_NOT_UPLOADED;
|
||||||
}else if(!$upload->moveUploadedFile($_GET['folder']))
|
elseif (!$upload->isPermittedFileExt(explode(",", CONFIG_UPLOAD_VALID_EXTS)))
|
||||||
{
|
|
||||||
$error = ERR_FILE_MOVE_FAILED;
|
|
||||||
}
|
|
||||||
elseif(!$upload->isPermittedFileExt(explode(",", CONFIG_UPLOAD_VALID_EXTS)))
|
|
||||||
{
|
|
||||||
$error = ERR_FILE_TYPE_NOT_ALLOWED;
|
$error = ERR_FILE_TYPE_NOT_ALLOWED;
|
||||||
}elseif(defined('CONFIG_UPLOAD_MAXSIZE') && CONFIG_UPLOAD_MAXSIZE && $upload->isSizeTooBig(CONFIG_UPLOAD_MAXSIZE))
|
elseif (defined('CONFIG_UPLOAD_MAXSIZE') && CONFIG_UPLOAD_MAXSIZE && $upload->isSizeTooBig(CONFIG_UPLOAD_MAXSIZE))
|
||||||
{
|
|
||||||
$error = sprintf(ERROR_FILE_TOO_BID, transformFileSize(CONFIG_UPLOAD_MAXSIZE));
|
$error = sprintf(ERROR_FILE_TOO_BID, transformFileSize(CONFIG_UPLOAD_MAXSIZE));
|
||||||
}else
|
elseif (!$upload->moveUploadedFile($_GET['folder']))
|
||||||
|
$error = ERR_FILE_MOVE_FAILED;
|
||||||
|
else
|
||||||
{
|
{
|
||||||
include_once(CLASS_FILE);
|
include_once(CLASS_FILE);
|
||||||
$path = $upload->getFilePath();
|
$path = $upload->getFilePath();
|
||||||
|
|||||||
@@ -24,7 +24,8 @@
|
|||||||
if(!empty($_GET['search']))
|
if(!empty($_GET['search']))
|
||||||
{
|
{
|
||||||
include_once(CLASS_SEARCH);
|
include_once(CLASS_SEARCH);
|
||||||
|
if (!preg_match('/^'.Tools::pRegexp(realpath(dirname(__FILE__).'/'.$_GET['search_folder']), '/').'/i', _PS_ROOT_DIR_.'/img/cms'))
|
||||||
|
exit;
|
||||||
$search = new Search($_GET['search_folder']);
|
$search = new Search($_GET['search_folder']);
|
||||||
$search->addSearchKeyword('recursive', @$_GET['search_recursively']);
|
$search->addSearchKeyword('recursive', @$_GET['search_recursively']);
|
||||||
$search->addSearchKeyword('mtime_from', @$_GET['search_mtime_from']);
|
$search->addSearchKeyword('mtime_from', @$_GET['search_mtime_from']);
|
||||||
|
|||||||
@@ -78,9 +78,9 @@
|
|||||||
define('CONFIG_EDITABLE_VALID_EXTS', 'txt,htm,html,xml,js,css'); //make you include all these extension in CONFIG_UPLOAD_VALID_EXTS if you want all valid
|
define('CONFIG_EDITABLE_VALID_EXTS', 'txt,htm,html,xml,js,css'); //make you include all these extension in CONFIG_UPLOAD_VALID_EXTS if you want all valid
|
||||||
|
|
||||||
define('CONFIG_OVERWRITTEN', false); //overwirte when processing paste
|
define('CONFIG_OVERWRITTEN', false); //overwirte when processing paste
|
||||||
define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png');// //
|
define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,jpeg,png');// //
|
||||||
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,bmp,tif,zip,sit,rar,gz,tar,htm,html,mov,mpg,avi,asf,mpeg,wmv,aif,aiff,wav,mp3,swf,ppt,rtf,doc,pdf,xls,txt,xml,xsl,dtd');//
|
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,bmp,tif,zip,sit,rar,gz,tar,htm,html,mov,mpg,avi,asf,mpeg,wmv,aif,aiff,wav,mp3,swf,ppt,rtf,doc,pdf,xls,txt,xml,xsl,dtd');//
|
||||||
define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,jpg,png');
|
define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,jpg,jpeg,jpeg,png');
|
||||||
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); //
|
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); //
|
||||||
define('CONFIG_UPLOAD_INVALID_EXTS', '');
|
define('CONFIG_UPLOAD_INVALID_EXTS', '');
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,9 @@
|
|||||||
|
|
||||||
//FILESYSTEM CONFIG <br>
|
//FILESYSTEM CONFIG <br>
|
||||||
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "class.auth.php");
|
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "class.auth.php");
|
||||||
|
if (_PS_MODE_DEMO_)
|
||||||
|
die('This functionality has been disabled.');
|
||||||
|
|
||||||
define('CONFIG_QUERY_STRING_ENABLE', true); //Enable passed query string to setting the system configuration
|
define('CONFIG_QUERY_STRING_ENABLE', true); //Enable passed query string to setting the system configuration
|
||||||
if(!isset($_SESSION))
|
if(!isset($_SESSION))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -73,9 +73,9 @@
|
|||||||
define('CONFIG_EDITABLE_VALID_EXTS', 'txt,htm,html,xml,js,css'); //make you include all these extension in CONFIG_UPLOAD_VALID_EXTS if you want all valid
|
define('CONFIG_EDITABLE_VALID_EXTS', 'txt,htm,html,xml,js,css'); //make you include all these extension in CONFIG_UPLOAD_VALID_EXTS if you want all valid
|
||||||
|
|
||||||
define('CONFIG_OVERWRITTEN', false); //overwirte when processing paste
|
define('CONFIG_OVERWRITTEN', false); //overwirte when processing paste
|
||||||
define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); //
|
define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,jpeg,png,txt'); //
|
||||||
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,bmp,tif,zip,sit,rar,gz,tar,htm,html,mov,mpg,avi,asf,mpeg,wmv,aif,aiff,wav,mp3,swf,ppt,rtf,doc,pdf,xls,txt,xml,xsl,dtd');//
|
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,bmp,tif,zip,sit,rar,gz,tar,htm,html,mov,mpg,avi,asf,mpeg,wmv,aif,aiff,wav,mp3,swf,ppt,rtf,doc,pdf,xls,txt,xml,xsl,dtd');//
|
||||||
define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,bmp,txt,jpg,png,tif,html,htm,js,css,xml,xsl,dtd,mp3,wav,wmv,wma,rm,rmvb,mov,swf');
|
define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,bmp,txt,jpg,jpeg,png,tif,html,htm,js,css,xml,xsl,dtd,mp3,wav,wmv,wma,rm,rmvb,mov,swf');
|
||||||
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); //
|
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); //
|
||||||
define('CONFIG_UPLOAD_INVALID_EXTS', '');
|
define('CONFIG_UPLOAD_INVALID_EXTS', '');
|
||||||
|
|
||||||
|
|||||||
+45
-2
@@ -37,7 +37,6 @@ $height = Tools::getValue('height');
|
|||||||
$id_employee = Tools::getValue('id_employee');
|
$id_employee = Tools::getValue('id_employee');
|
||||||
$id_lang = Tools::getValue('id_lang');
|
$id_lang = Tools::getValue('id_lang');
|
||||||
|
|
||||||
|
|
||||||
if (!isset($cookie->id_employee) || !$cookie->id_employee || $cookie->id_employee != $id_employee)
|
if (!isset($cookie->id_employee) || !$cookie->id_employee || $cookie->id_employee != $id_employee)
|
||||||
die(Tools::displayError());
|
die(Tools::displayError());
|
||||||
|
|
||||||
@@ -47,6 +46,51 @@ if (!Validate::isModuleName($module))
|
|||||||
if (!Tools::file_exists_cache($module_path = dirname(__FILE__).'/../modules/'.$module.'/'.$module.'.php'))
|
if (!Tools::file_exists_cache($module_path = dirname(__FILE__).'/../modules/'.$module.'/'.$module.'.php'))
|
||||||
die(Tools::displayError());
|
die(Tools::displayError());
|
||||||
|
|
||||||
|
$shop_id = '';
|
||||||
|
Shop::setContext(Shop::CONTEXT_ALL);
|
||||||
|
if (Context::getContext()->cookie->shopContext)
|
||||||
|
{
|
||||||
|
$split = explode('-', Context::getContext()->cookie->shopContext);
|
||||||
|
if (count($split) == 2)
|
||||||
|
{
|
||||||
|
if ($split[0] == 'g')
|
||||||
|
{
|
||||||
|
if (Context::getContext()->employee->hasAuthOnShopGroup($split[1]))
|
||||||
|
Shop::setContext(Shop::CONTEXT_GROUP, $split[1]);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$shop_id = Context::getContext()->employee->getDefaultShopID();
|
||||||
|
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (Shop::getShop($split[1]) && Context::getContext()->employee->hasAuthOnShop($split[1]))
|
||||||
|
{
|
||||||
|
$shop_id = $split[1];
|
||||||
|
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$shop_id = Context::getContext()->employee->getDefaultShopID();
|
||||||
|
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check multishop context and set right context if need
|
||||||
|
if (Shop::getContext())
|
||||||
|
{
|
||||||
|
if (Shop::getContext() == Shop::CONTEXT_SHOP && !Shop::CONTEXT_SHOP)
|
||||||
|
Shop::setContext(Shop::CONTEXT_GROUP, Shop::getContextShopGroupID());
|
||||||
|
if (Shop::getContext() == Shop::CONTEXT_GROUP && !Shop::CONTEXT_GROUP)
|
||||||
|
Shop::setContext(Shop::CONTEXT_ALL);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace existing shop if necessary
|
||||||
|
if (!$shop_id)
|
||||||
|
Context::getContext()->shop = new Shop(Configuration::get('PS_SHOP_DEFAULT'));
|
||||||
|
elseif (Context::getContext()->shop->id != $shop_id)
|
||||||
|
Context::getContext()->shop = new Shop($shop_id);
|
||||||
|
|
||||||
require_once($module_path);
|
require_once($module_path);
|
||||||
|
|
||||||
$graph = new $module();
|
$graph = new $module();
|
||||||
@@ -57,4 +101,3 @@ if ($option)
|
|||||||
|
|
||||||
$graph->create($render, $type, $width, $height, $layers);
|
$graph->create($render, $type, $width, $height, $layers);
|
||||||
$graph->draw();
|
$graph->draw();
|
||||||
|
|
||||||
|
|||||||
@@ -30,14 +30,14 @@ echo ' </div>
|
|||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div style="float:left;margin-left:10px;padding-top:6px">
|
<div style="float:left;margin-left:10px;padding-top:6px">
|
||||||
<a href="http://www.prestashop.com/" target="_blank" style="font-weight:700;color:#666666">PrestaShop™ '._PS_VERSION_.'</a><br />
|
<a href="http://www.prestashop.com/" target="_blank" style="font-weight:700;color:#666666">PrestaShop™ '._PS_VERSION_.'</a><br />
|
||||||
<span style="font-size:10px">'.translate('Load time:').' '.number_format(microtime(true) - $timerStart, 3, '.', '').'s</span>
|
<span style="font-size:10px">'.Translate::getAdminTranslation('Load time:').' '.number_format(microtime(true) - $timerStart, 3, '.', '').'s</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="float:right;height:40px;margin-right:10px;line-height:38px;vertical-align:middle">';
|
<div style="float:right;height:40px;margin-right:10px;line-height:38px;vertical-align:middle">';
|
||||||
if (strtoupper(Context::getContext()->language->iso_code) == 'FR') echo '<span style="color: #812143; font-weight: bold;">Questions / Renseignements / Formations :</span> <strong>+33 (0)1.40.18.30.04</strong> de 09h à 18h ';
|
if (strtoupper(Context::getContext()->language->iso_code) == 'FR') echo '<span style="color: #812143; font-weight: bold;">Questions / Renseignements / Formations :</span> <strong>+33 (0)1.40.18.30.04</strong> de 09h à 18h ';
|
||||||
|
|
||||||
echo ' | <a href="http://www.prestashop.com/en/contact_us/" target="_blank" class="footer_link">'.translate('Contact').'</a>
|
echo ' | <a href="http://www.prestashop.com/en/contact_us/" target="_blank" class="footer_link">'.Translate::getAdminTranslation('Contact').'</a>
|
||||||
| <a href="http://forge.prestashop.com" target="_blank" class="footer_link">'.translate('Bug Tracker').'</a>
|
| <a href="http://forge.prestashop.com" target="_blank" class="footer_link">'.Translate::getAdminTranslation('Bug Tracker').'</a>
|
||||||
| <a href="http://www.prestashop.com/forums/" target="_blank" class="footer_link">'.translate('Forum').'</a>
|
| <a href="http://www.prestashop.com/forums/" target="_blank" class="footer_link">'.Translate::getAdminTranslation('Forum').'</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+16
-9
@@ -223,8 +223,16 @@ function checkPSVersion()
|
|||||||
return $upgrader->checkPSVersion();
|
return $upgrader->checkPSVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deprecated since > 1.5.4.1
|
||||||
|
* Use Translate::getAdminTranslation($string) instead
|
||||||
|
*
|
||||||
|
* @param string $string
|
||||||
|
*/
|
||||||
function translate($string)
|
function translate($string)
|
||||||
{
|
{
|
||||||
|
Tools::displayAsDeprecated();
|
||||||
|
|
||||||
global $_LANGADM;
|
global $_LANGADM;
|
||||||
if (!is_array($_LANGADM))
|
if (!is_array($_LANGADM))
|
||||||
return str_replace('"', '"', $string);
|
return str_replace('"', '"', $string);
|
||||||
@@ -233,7 +241,6 @@ function translate($string)
|
|||||||
return str_replace('"', '"', stripslashes($str));
|
return str_replace('"', '"', stripslashes($str));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a new Tab object
|
* Returns a new Tab object
|
||||||
*
|
*
|
||||||
@@ -461,7 +468,7 @@ function runAdminTab($tab, $ajaxMode = false)
|
|||||||
echo '<div class="path_bar">
|
echo '<div class="path_bar">
|
||||||
<div id="help-button" class="floatr" style="display: none; font-family: Verdana; font-size: 10px; margin-right: 4px; margin-top: 4px;">
|
<div id="help-button" class="floatr" style="display: none; font-family: Verdana; font-size: 10px; margin-right: 4px; margin-top: 4px;">
|
||||||
</div>
|
</div>
|
||||||
<a href="?token='.Tools::getAdminToken($tab.intval(Tab::getIdFromClassName($tab)).(int)Context::getContext()->employee->id).'">'.translate('Back Office').'</a>
|
<a href="?token='.Tools::getAdminToken($tab.intval(Tab::getIdFromClassName($tab)).(int)Context::getContext()->employee->id).'">'.Translate::getAdminTranslation('Back Office').'</a>
|
||||||
'.$bread.'</div>';
|
'.$bread.'</div>';
|
||||||
|
|
||||||
if (!$ajaxMode && Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_ALL && Context::getContext()->controller->multishop_context != Shop::CONTEXT_ALL)
|
if (!$ajaxMode && Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_ALL && Context::getContext()->controller->multishop_context != Shop::CONTEXT_ALL)
|
||||||
@@ -470,10 +477,10 @@ function runAdminTab($tab, $ajaxMode = false)
|
|||||||
if (Shop::getContext() == Shop::CONTEXT_GROUP)
|
if (Shop::getContext() == Shop::CONTEXT_GROUP)
|
||||||
{
|
{
|
||||||
$shop_group = new ShopGroup((int)Shop::getContextShopGroupID());
|
$shop_group = new ShopGroup((int)Shop::getContextShopGroupID());
|
||||||
printf(translate('You are configuring your store for group shop %s'), '<b>'.$shop_group->name.'</b>');
|
printf(Translate::getAdminTranslation('You are configuring your store for group shop %s'), '<b>'.$shop_group->name.'</b>');
|
||||||
}
|
}
|
||||||
elseif (Shop::getContext() == Shop::CONTEXT_SHOP)
|
elseif (Shop::getContext() == Shop::CONTEXT_SHOP)
|
||||||
printf(translate('You are configuring your store for shop %s'), '<b>'.Context::getContext()->shop->name.'</b>');
|
printf(Translate::getAdminTranslation('You are configuring your store for shop %s'), '<b>'.Context::getContext()->shop->name.'</b>');
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
if (Validate::isLoadedObject($adminObj))
|
if (Validate::isLoadedObject($adminObj))
|
||||||
@@ -546,8 +553,8 @@ function runAdminTab($tab, $ajaxMode = false)
|
|||||||
|
|
||||||
|
|
||||||
// we can display the correct url
|
// we can display the correct url
|
||||||
// die(Tools::jsonEncode(array(translate('Invalid security token'),$url)));
|
// die(Tools::jsonEncode(array(Translate::getAdminTranslation('Invalid security token'),$url)));
|
||||||
die(Tools::jsonEncode(translate('Invalid security token')));
|
die(Tools::jsonEncode(Translate::getAdminTranslation('Invalid security token')));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -559,17 +566,17 @@ function runAdminTab($tab, $ajaxMode = false)
|
|||||||
if (false === strpos($url, '?token=') AND false === strpos($url, '&token='))
|
if (false === strpos($url, '?token=') AND false === strpos($url, '&token='))
|
||||||
$url .= '&token='.$adminObj->token;
|
$url .= '&token='.$adminObj->token;
|
||||||
|
|
||||||
$message = translate('Invalid security token');
|
$message = Translate::getAdminTranslation('Invalid security token');
|
||||||
echo '<html><head><title>'.$message.'</title></head><body style="font-family:Arial,Verdana,Helvetica,sans-serif;background-color:#EC8686">
|
echo '<html><head><title>'.$message.'</title></head><body style="font-family:Arial,Verdana,Helvetica,sans-serif;background-color:#EC8686">
|
||||||
<div style="background-color:#FAE2E3;border:1px solid #000000;color:#383838;font-weight:700;line-height:20px;margin:0 0 10px;padding:10px 15px;width:500px">
|
<div style="background-color:#FAE2E3;border:1px solid #000000;color:#383838;font-weight:700;line-height:20px;margin:0 0 10px;padding:10px 15px;width:500px">
|
||||||
<img src="../img/admin/error2.png" style="margin:-4px 5px 0 0;vertical-align:middle">
|
<img src="../img/admin/error2.png" style="margin:-4px 5px 0 0;vertical-align:middle">
|
||||||
'.$message.'
|
'.$message.'
|
||||||
</div>';
|
</div>';
|
||||||
echo '<a href="'.htmlentities($url).'" method="get" style="float:left;margin:10px">
|
echo '<a href="'.htmlentities($url).'" method="get" style="float:left;margin:10px">
|
||||||
<input type="button" value="'.Tools::htmlentitiesUTF8(translate('I understand the risks and I really want to display this page')).'" style="height:30px;margin-top:5px" />
|
<input type="button" value="'.Tools::htmlentitiesUTF8(Translate::getAdminTranslation('I understand the risks and I really want to display this page')).'" style="height:30px;margin-top:5px" />
|
||||||
</a>
|
</a>
|
||||||
<a href="index.php" method="get" style="float:left;margin:10px">
|
<a href="index.php" method="get" style="float:left;margin:10px">
|
||||||
<input type="button" value="'.Tools::htmlentitiesUTF8(translate('Take me out of here!')).'" style="height:40px" />
|
<input type="button" value="'.Tools::htmlentitiesUTF8(Translate::getAdminTranslation('Take me out of here!')).'" style="height:40px" />
|
||||||
</a>
|
</a>
|
||||||
</body></html>';
|
</body></html>';
|
||||||
die;
|
die;
|
||||||
|
|||||||
@@ -50,6 +50,53 @@ if (!Validate::isModuleName($module))
|
|||||||
if (!Tools::file_exists_cache($module_path = dirname(__FILE__).'/../modules/'.$module.'/'.$module.'.php'))
|
if (!Tools::file_exists_cache($module_path = dirname(__FILE__).'/../modules/'.$module.'/'.$module.'.php'))
|
||||||
die(Tools::displayError());
|
die(Tools::displayError());
|
||||||
|
|
||||||
|
|
||||||
|
$shop_id = '';
|
||||||
|
Shop::setContext(Shop::CONTEXT_ALL);
|
||||||
|
if (Context::getContext()->cookie->shopContext)
|
||||||
|
{
|
||||||
|
$split = explode('-', Context::getContext()->cookie->shopContext);
|
||||||
|
if (count($split) == 2)
|
||||||
|
{
|
||||||
|
if ($split[0] == 'g')
|
||||||
|
{
|
||||||
|
if (Context::getContext()->employee->hasAuthOnShopGroup($split[1]))
|
||||||
|
Shop::setContext(Shop::CONTEXT_GROUP, $split[1]);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$shop_id = Context::getContext()->employee->getDefaultShopID();
|
||||||
|
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (Shop::getShop($split[1]) && Context::getContext()->employee->hasAuthOnShop($split[1]))
|
||||||
|
{
|
||||||
|
$shop_id = $split[1];
|
||||||
|
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$shop_id = Context::getContext()->employee->getDefaultShopID();
|
||||||
|
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check multishop context and set right context if need
|
||||||
|
if (Shop::getContext())
|
||||||
|
{
|
||||||
|
if (Shop::getContext() == Shop::CONTEXT_SHOP && !Shop::CONTEXT_SHOP)
|
||||||
|
Shop::setContext(Shop::CONTEXT_GROUP, Shop::getContextShopGroupID());
|
||||||
|
if (Shop::getContext() == Shop::CONTEXT_GROUP && !Shop::CONTEXT_GROUP)
|
||||||
|
Shop::setContext(Shop::CONTEXT_ALL);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace existing shop if necessary
|
||||||
|
if (!$shop_id)
|
||||||
|
Context::getContext()->shop = new Shop(Configuration::get('PS_SHOP_DEFAULT'));
|
||||||
|
elseif (Context::getContext()->shop->id != $shop_id)
|
||||||
|
Context::getContext()->shop = new Shop($shop_id);
|
||||||
|
|
||||||
|
|
||||||
require_once($module_path);
|
require_once($module_path);
|
||||||
|
|
||||||
$grid = new $module();
|
$grid = new $module();
|
||||||
|
|||||||
+35
-35
@@ -41,7 +41,7 @@ echo '
|
|||||||
<link type="text/css" rel="stylesheet" href="'._PS_JS_DIR_.'jquery/plugins/cluetip/jquery.cluetip.css" />
|
<link type="text/css" rel="stylesheet" href="'._PS_JS_DIR_.'jquery/plugins/cluetip/jquery.cluetip.css" />
|
||||||
<link type="text/css" rel="stylesheet" href="themes/'.Context::getContext()->employee->bo_theme.'/css/admin.css" />
|
<link type="text/css" rel="stylesheet" href="themes/'.Context::getContext()->employee->bo_theme.'/css/admin.css" />
|
||||||
<link type="text/css" rel="stylesheet" href="'._PS_JS_DIR_.'jquery/plugins/chosen/jquery.chosen.css" />
|
<link type="text/css" rel="stylesheet" href="'._PS_JS_DIR_.'jquery/plugins/chosen/jquery.chosen.css" />
|
||||||
<title>PrestaShop™ - '.translate('Administration panel').'</title>
|
<title>PrestaShop™ - '.Translate::getAdminTranslation('Administration panel').'</title>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var helpboxes = '.Configuration::get('PS_HELPBOX').';
|
var helpboxes = '.Configuration::get('PS_HELPBOX').';
|
||||||
var roundMode = '.Configuration::get('PS_PRICE_ROUND_MODE').';
|
var roundMode = '.Configuration::get('PS_PRICE_ROUND_MODE').';
|
||||||
@@ -78,7 +78,7 @@ echo '
|
|||||||
html = "";
|
html = "";
|
||||||
nb_notifs = 0;
|
nb_notifs = 0;
|
||||||
$.each(json.order, function(property, value) {
|
$.each(json.order, function(property, value) {
|
||||||
html += "<li>'.translate('A new order has been made on your shop.').'<br />'.translate('Order number : ').'<strong>#" + parseInt(value.id_order) + "</strong><br />'.translate('Total : ').'<strong>" + value.total_paid_real + "</strong><br />'.translate('From : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'&vieworder&id_order=" + parseInt(value.id_order) + "\">'.translate('Click here to see that order').'</a></li>";
|
html += "<li>'.Translate::getAdminTranslation('A new order has been made on your shop.').'<br />'.Translate::getAdminTranslation('Order number : ').'<strong>#" + parseInt(value.id_order) + "</strong><br />'.Translate::getAdminTranslation('Total : ').'<strong>" + value.total_paid_real + "</strong><br />'.Translate::getAdminTranslation('From : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'&vieworder&id_order=" + parseInt(value.id_order) + "\">'.Translate::getAdminTranslation('Click here to see that order').'</a></li>";
|
||||||
});
|
});
|
||||||
|
|
||||||
if (html != "")
|
if (html != "")
|
||||||
@@ -99,7 +99,7 @@ echo '
|
|||||||
html = "";
|
html = "";
|
||||||
nb_notifs = 0;
|
nb_notifs = 0;
|
||||||
$.each(json.customer, function(property, value) {
|
$.each(json.customer, function(property, value) {
|
||||||
html += "<li>'.translate('A new customer registered on your shop.').'<br />'.translate('Customer name : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'&viewcustomer&id_customer=" + parseInt(value.id_customer) + "\">'.translate('Click here to see that customer').'</a></li>";
|
html += "<li>'.Translate::getAdminTranslation('A new customer registered on your shop.').'<br />'.Translate::getAdminTranslation('Customer name : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'&viewcustomer&id_customer=" + parseInt(value.id_customer) + "\">'.Translate::getAdminTranslation('Click here to see that customer').'</a></li>";
|
||||||
});
|
});
|
||||||
if (html != "")
|
if (html != "")
|
||||||
{
|
{
|
||||||
@@ -121,7 +121,7 @@ echo '
|
|||||||
html = "";
|
html = "";
|
||||||
nb_notifs = 0;
|
nb_notifs = 0;
|
||||||
$.each(json.customer_message, function(property, value) {
|
$.each(json.customer_message, function(property, value) {
|
||||||
html += "<li>'.translate('A new message posted on your shop.').'<br />'.translate('From : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminCustomerThreads&token='.Tools::getAdminTokenLite('AdminCustomerThreads').'&viewcustomer_thread&id_customer_thread=" + parseInt(value.id_customer_thread) + "\">'.translate('Click here to see that message').'</a></li>";
|
html += "<li>'.Translate::getAdminTranslation('A new message posted on your shop.').'<br />'.Translate::getAdminTranslation('From : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminCustomerThreads&token='.Tools::getAdminTokenLite('AdminCustomerThreads').'&viewcustomer_thread&id_customer_thread=" + parseInt(value.id_customer_thread) + "\">'.Translate::getAdminTranslation('Click here to see that message').'</a></li>";
|
||||||
});
|
});
|
||||||
|
|
||||||
if (html != "")
|
if (html != "")
|
||||||
@@ -149,14 +149,14 @@ echo '
|
|||||||
if (Shop::isFeatureActive())
|
if (Shop::isFeatureActive())
|
||||||
{
|
{
|
||||||
if (Shop::getContext() == Shop::CONTEXT_ALL)
|
if (Shop::getContext() == Shop::CONTEXT_ALL)
|
||||||
$youEditFieldFor = translate('A modification of this field will be applied for all shops');
|
$youEditFieldFor = Translate::getAdminTranslation('A modification of this field will be applied for all shops');
|
||||||
elseif (Shop::getContext() == Shop::CONTEXT_GROUP)
|
elseif (Shop::getContext() == Shop::CONTEXT_GROUP)
|
||||||
{
|
{
|
||||||
$shop_group = new ShopGroup((int)Shop::getContextShopGroupID());
|
$shop_group = new ShopGroup((int)Shop::getContextShopGroupID());
|
||||||
$youEditFieldFor = sprintf(translate('A modification of this field will be applied for all shops of group %s'), '<b>'.$shop_group->name.'</b>');
|
$youEditFieldFor = sprintf(Translate::getAdminTranslation('A modification of this field will be applied for all shops of group %s'), '<b>'.$shop_group->name.'</b>');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$youEditFieldFor = sprintf(translate('A modification of this field will be applied for the shop %s'), '<b>'.Context::getContext()->shop->name.'</b>');
|
$youEditFieldFor = sprintf(Translate::getAdminTranslation('A modification of this field will be applied for the shop %s'), '<b>'.Context::getContext()->shop->name.'</b>');
|
||||||
echo 'hints.html(hints.html()+\'<br /><span class="red">'.addslashes($youEditFieldFor).'</span>\');';
|
echo 'hints.html(hints.html()+\'<br /><span class="red">'.addslashes($youEditFieldFor).'</span>\');';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -202,10 +202,10 @@ echo ' var html = "";
|
|||||||
{
|
{
|
||||||
echo '<div id="orders_notif" class="notifs"><span id="orders_notif_number_wrapper" class="number_wrapper"><span id="orders_notif_value">0</span></span>
|
echo '<div id="orders_notif" class="notifs"><span id="orders_notif_number_wrapper" class="number_wrapper"><span id="orders_notif_value">0</span></span>
|
||||||
<div id="orders_notif_wrapper" class="notifs_wrapper">
|
<div id="orders_notif_wrapper" class="notifs_wrapper">
|
||||||
<h3>'.translate('Last orders').'</h3>
|
<h3>'.Translate::getAdminTranslation('Last orders').'</h3>
|
||||||
<p class="no_notifs">'.translate('No new orders has been made on your shop').'</p>
|
<p class="no_notifs">'.Translate::getAdminTranslation('No new orders has been made on your shop').'</p>
|
||||||
<ul id="list_orders_notif"></ul>
|
<ul id="list_orders_notif"></ul>
|
||||||
<p><a href="index.php?tab=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'">'.translate('Show all orders').'</a></p>
|
<p><a href="index.php?tab=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'">'.Translate::getAdminTranslation('Show all orders').'</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
}
|
}
|
||||||
@@ -213,10 +213,10 @@ echo ' var html = "";
|
|||||||
{
|
{
|
||||||
echo '<div id="customers_notif" class="notifs notifs_alternate"><span id="customers_notif_number_wrapper" class="number_wrapper"><span id="customers_notif_value">0</span></span>
|
echo '<div id="customers_notif" class="notifs notifs_alternate"><span id="customers_notif_number_wrapper" class="number_wrapper"><span id="customers_notif_value">0</span></span>
|
||||||
<div id="customers_notif_wrapper" class="notifs_wrapper">
|
<div id="customers_notif_wrapper" class="notifs_wrapper">
|
||||||
<h3>'.translate('Last customers').'</h3>
|
<h3>'.Translate::getAdminTranslation('Last customers').'</h3>
|
||||||
<p class="no_notifs">'.translate('No new customers registered on your shop').'</p>
|
<p class="no_notifs">'.Translate::getAdminTranslation('No new customers registered on your shop').'</p>
|
||||||
<ul id="list_customers_notif"></ul>
|
<ul id="list_customers_notif"></ul>
|
||||||
<p><a href="index.php?tab=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'">'.translate('Show all customers').'</a></p>
|
<p><a href="index.php?tab=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'">'.Translate::getAdminTranslation('Show all customers').'</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
}
|
}
|
||||||
@@ -224,26 +224,26 @@ echo ' var html = "";
|
|||||||
{
|
{
|
||||||
echo '<div id="customer_messages_notif" class="notifs"><span id="customer_messages_notif_number_wrapper" class="number_wrapper"><span id="customer_messages_notif_value">0</span></span>
|
echo '<div id="customer_messages_notif" class="notifs"><span id="customer_messages_notif_number_wrapper" class="number_wrapper"><span id="customer_messages_notif_value">0</span></span>
|
||||||
<div id="customer_messages_notif_wrapper" class="notifs_wrapper">
|
<div id="customer_messages_notif_wrapper" class="notifs_wrapper">
|
||||||
<h3>'.translate('Last messages').'</h3>
|
<h3>'.Translate::getAdminTranslation('Last messages').'</h3>
|
||||||
<p class="no_notifs">'.translate('No new messages posted on your shop').'</p>
|
<p class="no_notifs">'.Translate::getAdminTranslation('No new messages posted on your shop').'</p>
|
||||||
<ul id="list_customer_messages_notif"></ul>
|
<ul id="list_customer_messages_notif"></ul>
|
||||||
<p><a href="index.php?tab=AdminCustomerThreads&token='.Tools::getAdminTokenLite('AdminCustomerThreads').'">'.translate('Show all messages').'</a></p>
|
<p><a href="index.php?tab=AdminCustomerThreads&token='.Tools::getAdminTokenLite('AdminCustomerThreads').'">'.Translate::getAdminTranslation('Show all messages').'</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
}
|
}
|
||||||
echo '</div>
|
echo '</div>
|
||||||
|
|
||||||
<div id="employee_box">
|
<div id="employee_box">
|
||||||
<div id="employee_infos">
|
<div id="employee_infos">
|
||||||
<div class="employee_name">'.translate('Welcome,').' <strong>'.Context::getContext()->employee->firstname.' '.Context::getContext()->employee->lastname.'</strong></div>
|
<div class="employee_name">'.Translate::getAdminTranslation('Welcome,').' <strong>'.Context::getContext()->employee->firstname.' '.Context::getContext()->employee->lastname.'</strong></div>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
<ul id="employee_links">
|
<ul id="employee_links">
|
||||||
<li><a href="'.htmlentities(Context::getContext()->link->getAdminLink('AdminEmployees'), ENT_COMPAT, 'UTF-8').'&id_employee={$employee->id}&updateemployee">'.translate('My preferences').'</a></li>
|
<li><a href="'.htmlentities(Context::getContext()->link->getAdminLink('AdminEmployees'), ENT_COMPAT, 'UTF-8').'&id_employee={$employee->id}&updateemployee">'.Translate::getAdminTranslation('My preferences').'</a></li>
|
||||||
<li class="separator"> </li>
|
<li class="separator"> </li>
|
||||||
<li><a id="header_logout" href="index.php?logout">'.translate('logout').'</a></li>
|
<li><a id="header_logout" href="index.php?logout">'.Translate::getAdminTranslation('logout').'</a></li>
|
||||||
</ul>';
|
</ul>';
|
||||||
if (defined(_PS_BASE_URL_))
|
if (defined(_PS_BASE_URL_))
|
||||||
echo '<a href="'._PS_BASE_URL_.'" id="header_foaccess" target="_blank" title="'.translate('View my shop').'">'.translate('View my shop').'</a>';
|
echo '<a href="'._PS_BASE_URL_.'" id="header_foaccess" target="_blank" title="'.Translate::getAdminTranslation('View my shop').'">'.Translate::getAdminTranslation('View my shop').'</a>';
|
||||||
echo '</div>
|
echo '</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -252,18 +252,18 @@ echo ' var html = "";
|
|||||||
<form method="post" action="index.php?controller=AdminSearch&token='.Tools::getAdminTokenLite('AdminSearch').'">
|
<form method="post" action="index.php?controller=AdminSearch&token='.Tools::getAdminTokenLite('AdminSearch').'">
|
||||||
<input type="text" name="bo_query" id="bo_query" value="'.Tools::safeOutput(Tools::stripslashes(Tools::getValue('bo_query'))).'" />
|
<input type="text" name="bo_query" id="bo_query" value="'.Tools::safeOutput(Tools::stripslashes(Tools::getValue('bo_query'))).'" />
|
||||||
<select name="bo_search_type" id="bo_search_type" class="chosen no-search">
|
<select name="bo_search_type" id="bo_search_type" class="chosen no-search">
|
||||||
<option value="0">'.translate('everywhere').'</option>
|
<option value="0">'.Translate::getAdminTranslation('everywhere').'</option>
|
||||||
<option value="1" '.(Tools::getValue('bo_search_type') == 1 ? 'selected="selected"' : '').'>'.translate('catalog').'</option>
|
<option value="1" '.(Tools::getValue('bo_search_type') == 1 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('catalog').'</option>
|
||||||
<optgroup label="'.translate('customers').':">
|
<optgroup label="'.Translate::getAdminTranslation('customers').':">
|
||||||
<option value="2" '.(Tools::getValue('bo_search_type') == 2 ? 'selected="selected"' : '').'>'.translate('by name').'</option>
|
<option value="2" '.(Tools::getValue('bo_search_type') == 2 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('by name').'</option>
|
||||||
<option value="6" '.(Tools::getValue('bo_search_type') == 6 ? 'selected="selected"' : '').'>'.translate('by ip address').'</option>
|
<option value="6" '.(Tools::getValue('bo_search_type') == 6 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('by ip address').'</option>
|
||||||
</optgroup>
|
</optgroup>
|
||||||
<option value="3" '.(Tools::getValue('bo_search_type') == 3 ? 'selected="selected"' : '').'>'.translate('orders').'</option>
|
<option value="3" '.(Tools::getValue('bo_search_type') == 3 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('orders').'</option>
|
||||||
<option value="4" '.(Tools::getValue('bo_search_type') == 4 ? 'selected="selected"' : '').'>'.translate('invoices').'</option>
|
<option value="4" '.(Tools::getValue('bo_search_type') == 4 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('invoices').'</option>
|
||||||
<option value="5" '.(Tools::getValue('bo_search_type') == 5 ? 'selected="selected"' : '').'>'.translate('carts').'</option>
|
<option value="5" '.(Tools::getValue('bo_search_type') == 5 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('carts').'</option>
|
||||||
<option value="7" '.(Tools::getValue('bo_search_type') == 7 ? 'selected="selected"' : '').'>'.translate('modules').'</option>
|
<option value="7" '.(Tools::getValue('bo_search_type') == 7 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('modules').'</option>
|
||||||
</select>
|
</select>
|
||||||
<input type="submit" id="bo_search_submit" class="button" value="'.translate('Search').'"/>
|
<input type="submit" id="bo_search_submit" class="button" value="'.Translate::getAdminTranslation('Search').'"/>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div id="header_quick">
|
<div id="header_quick">
|
||||||
@@ -277,7 +277,7 @@ echo ' var html = "";
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<select onchange="quickSelect(this);" id="quick_select">
|
<select onchange="quickSelect(this);" id="quick_select">
|
||||||
<option value="0">'.translate('Quick Access').'</option>';
|
<option value="0">'.Translate::getAdminTranslation('Quick Access').'</option>';
|
||||||
foreach (QuickAccess::getQuickAccesses(Context::getContext()->language->id) AS $quick)
|
foreach (QuickAccess::getQuickAccesses(Context::getContext()->language->id) AS $quick)
|
||||||
{
|
{
|
||||||
preg_match('/controller=(.+)(&.+)?$/', $quick['link'], $adminTab);
|
preg_match('/controller=(.+)(&.+)?$/', $quick['link'], $adminTab);
|
||||||
@@ -342,8 +342,8 @@ echo '
|
|||||||
<div id="main">
|
<div id="main">
|
||||||
<div id="content">'
|
<div id="content">'
|
||||||
.(file_exists(_PS_ADMIN_DIR_.'/../install') ? '<div style="background-color: #FFEBCC;border: 1px solid #F90;line-height: 20px;margin: 0px 0px 10px;padding: 10px 20px;">'
|
.(file_exists(_PS_ADMIN_DIR_.'/../install') ? '<div style="background-color: #FFEBCC;border: 1px solid #F90;line-height: 20px;margin: 0px 0px 10px;padding: 10px 20px;">'
|
||||||
.translate('For security reasons, you must also:').' '.
|
.Translate::getAdminTranslation('For security reasons, you must also:').' '.
|
||||||
translate('delete the /install folder').
|
Translate::getAdminTranslation('delete the /install folder').
|
||||||
'</div>' : '').'
|
'</div>' : '').'
|
||||||
';
|
';
|
||||||
if(defined('_PS_MODE_DEV_') && _PS_MODE_DEV_)
|
if(defined('_PS_MODE_DEV_') && _PS_MODE_DEV_)
|
||||||
@@ -352,7 +352,7 @@ echo '
|
|||||||
if (Shop::isFeatureActive() && Context::getContext()->controller->multishop_context != Shop::CONTEXT_ALL)
|
if (Shop::isFeatureActive() && Context::getContext()->controller->multishop_context != Shop::CONTEXT_ALL)
|
||||||
{
|
{
|
||||||
echo '<div class="multishop_toolbar">
|
echo '<div class="multishop_toolbar">
|
||||||
<span class="text_multishop">'.translate('Multistore configuration for').'</span>'.
|
<span class="text_multishop">'.Translate::getAdminTranslation('Multistore configuration for').'</span>'.
|
||||||
Helper::renderShopList();
|
Helper::renderShopList();
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,9 @@
|
|||||||
$timer_start = microtime(true);
|
$timer_start = microtime(true);
|
||||||
define('_PS_ADMIN_DIR_', getcwd());
|
define('_PS_ADMIN_DIR_', getcwd());
|
||||||
|
|
||||||
|
if (!defined('PS_ADMIN_DIR'))
|
||||||
|
define('PS_ADMIN_DIR', _PS_ADMIN_DIR_);
|
||||||
|
|
||||||
require(_PS_ADMIN_DIR_.'/../config/config.inc.php');
|
require(_PS_ADMIN_DIR_.'/../config/config.inc.php');
|
||||||
require(_PS_ADMIN_DIR_.'/functions.php');
|
require(_PS_ADMIN_DIR_.'/functions.php');
|
||||||
|
|
||||||
|
|||||||
+6
-3
@@ -49,9 +49,12 @@ try
|
|||||||
AdminTab::$currentIndex = $currentIndex;
|
AdminTab::$currentIndex = $currentIndex;
|
||||||
|
|
||||||
$iso = $context->language->iso_code;
|
$iso = $context->language->iso_code;
|
||||||
include(_PS_TRANSLATIONS_DIR_.$iso.'/errors.php');
|
if (file_exists(_PS_TRANSLATIONS_DIR_.$iso.'/errors.php'))
|
||||||
include(_PS_TRANSLATIONS_DIR_.$iso.'/fields.php');
|
include(_PS_TRANSLATIONS_DIR_.$iso.'/errors.php');
|
||||||
include(_PS_TRANSLATIONS_DIR_.$iso.'/admin.php');
|
if (file_exists(_PS_TRANSLATIONS_DIR_.$iso.'/fields.php'))
|
||||||
|
include(_PS_TRANSLATIONS_DIR_.$iso.'/fields.php');
|
||||||
|
if (file_exists(_PS_TRANSLATIONS_DIR_.$iso.'/admin.php'))
|
||||||
|
include(_PS_TRANSLATIONS_DIR_.$iso.'/admin.php');
|
||||||
|
|
||||||
/* Server Params */
|
/* Server Params */
|
||||||
$protocol_link = (Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://';
|
$protocol_link = (Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://';
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ select[disabled="disabled"], input[disabled="disabled"],textarea[disabled="disab
|
|||||||
|
|
||||||
/*BUTTON*/
|
/*BUTTON*/
|
||||||
.button{
|
.button{
|
||||||
|
cursor: pointer;
|
||||||
background: #e3e3e3 url('../img/bg-button-degrade.png') repeat-x scroll left top;
|
background: #e3e3e3 url('../img/bg-button-degrade.png') repeat-x scroll left top;
|
||||||
background: -moz-linear-gradient(center top , #F9F9F9, #E3E3E3) repeat scroll 0 0 transparent;
|
background: -moz-linear-gradient(center top , #F9F9F9, #E3E3E3) repeat scroll 0 0 transparent;
|
||||||
background: -webkit-gradient(linear, center top ,center bottom, from(#F9F9F9), to(#E3E3E3)) repeat scroll 0 0 transparent;
|
background: -webkit-gradient(linear, center top ,center bottom, from(#F9F9F9), to(#E3E3E3)) repeat scroll 0 0 transparent;
|
||||||
@@ -673,4 +674,4 @@ ul.listForm li {padding-bottom:3px;}
|
|||||||
|
|
||||||
/************** SCENE *****************/
|
/************** SCENE *****************/
|
||||||
|
|
||||||
#large_scene_image{clear:both;border:1px solid transparent;}
|
#large_scene_image{clear:both;border:1px solid transparent;}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
.toolbarBox .process-icon-new-module { background-image: url('../img/process-icon-new-module.png')}
|
.toolbarBox .process-icon-new-module { background-image: url('../img/process-icon-new-module.png')}
|
||||||
.toolbarBox .process-icon-new-module-addon { background-image: url('../img/process-icon-new-module-addon.png')}
|
.toolbarBox .process-icon-new-module-addon { background-image: url('../img/process-icon-new-module-addon.png')}
|
||||||
|
|
||||||
div.fix-toolbar {border-bottom: 1px solid #E0E0E0;position:fixed;top:0;opacity:0.9;z-index:1}
|
div.fix-toolbar {border-bottom: 1px solid #E0E0E0;position:fixed;top:0;opacity:0.9;z-index:11}
|
||||||
|
|
||||||
|
|
||||||
/*FILTER MODULE*/
|
/*FILTER MODULE*/
|
||||||
|
|||||||
@@ -27,13 +27,7 @@
|
|||||||
|
|
||||||
{block name="label"}
|
{block name="label"}
|
||||||
{if $input.name == 'vat_number'}
|
{if $input.name == 'vat_number'}
|
||||||
{if $vat == 'is_applicable'}
|
<div id="vat_area" style="display: visible">
|
||||||
<div id="vat_area" style="display: visible">
|
|
||||||
{else if $vat == 'management'}
|
|
||||||
<div id="vat_area" style="display: hidden">
|
|
||||||
{else}
|
|
||||||
<div style="display: none;">
|
|
||||||
{/if}
|
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if $input.type == 'text_customer' && !isset($customer)}
|
{if $input.type == 'text_customer' && !isset($customer)}
|
||||||
@@ -72,7 +66,8 @@
|
|||||||
{
|
{
|
||||||
if (msg)
|
if (msg)
|
||||||
{
|
{
|
||||||
var infos = msg.infos.split('_');
|
var infos = msg.infos.replace("\\'", "'").split('_');
|
||||||
|
|
||||||
$('input[name=firstname]').val(infos[0]);
|
$('input[name=firstname]').val(infos[0]);
|
||||||
$('input[name=lastname]').val(infos[1]);
|
$('input[name=lastname]').val(infos[1]);
|
||||||
$('input[name=company]').val(infos[2]);
|
$('input[name=company]').val(infos[2]);
|
||||||
|
|||||||
@@ -29,6 +29,9 @@
|
|||||||
{if $input.type == 'color'}
|
{if $input.type == 'color'}
|
||||||
<div id="colorAttributeProperties" style="display:{if $colorAttributeProperties}block{else}none{/if};">
|
<div id="colorAttributeProperties" style="display:{if $colorAttributeProperties}block{else}none{/if};">
|
||||||
{/if}
|
{/if}
|
||||||
|
{if $input.type == 'closediv'}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
{$smarty.block.parent}
|
{$smarty.block.parent}
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
{*
|
||||||
|
* 2007-2013 PrestaShop
|
||||||
|
*
|
||||||
|
* NOTICE OF LICENSE
|
||||||
|
*
|
||||||
|
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||||
|
* that is bundled with this package in the file LICENSE.txt.
|
||||||
|
* It is also available through the world-wide-web at this URL:
|
||||||
|
* http://opensource.org/licenses/afl-3.0.php
|
||||||
|
* If you did not receive a copy of the license and are unable to
|
||||||
|
* obtain it through the world-wide-web, please send an email
|
||||||
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
|
*
|
||||||
|
* DISCLAIMER
|
||||||
|
*
|
||||||
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||||
|
* versions in the future. If you wish to customize PrestaShop for your
|
||||||
|
* needs please refer to http://www.prestashop.com for more information.
|
||||||
|
*
|
||||||
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
|
* @copyright 2007-2013 PrestaShop SA
|
||||||
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
|
*}
|
||||||
|
{extends file="helpers/form/form.tpl"}
|
||||||
|
{block name="script"}
|
||||||
|
var string_price = '{l s='Will be applied when the price is' js=1}';
|
||||||
|
var string_weight = '{l s='Will be applied when the weight is' js=1}';
|
||||||
|
{/block}
|
||||||
|
|
||||||
|
{block name="field"}
|
||||||
|
{if $input.name == 'zones'}
|
||||||
|
<div class="ranges_not_follow warn" style="display:none">
|
||||||
|
<label>{l s="Ranges are not correctly ordered:"}</label>
|
||||||
|
<a href="#" onclick="checkRangeContinuity(true); return false;" class="button" style="text-decoration:none">{l s="Reordering"}</a>
|
||||||
|
</div>
|
||||||
|
{include file='controllers/carrier_wizard/helpers/form/form_ranges.tpl'}
|
||||||
|
<!--
|
||||||
|
<div class="validate_range" style="display:none">
|
||||||
|
<a href="#" class="button" id="validate_range_button">{l s="Validate"}</a>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
<div class="new_range">
|
||||||
|
<a href="#" onclick="add_new_range();return false;" class="button" id="add_new_range">{l s='Add new range'}</a>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{if $input.name == 'logo'}
|
||||||
|
<div class="margin-form">
|
||||||
|
<input id="carrier_logo_input" type="file" onchange="uploadCarrierLogo();" name="carrier_logo_input" />
|
||||||
|
<input type="hidden" id="logo" name="logo" value="" />
|
||||||
|
<p class="preference_description">
|
||||||
|
{l s='Format:'} JPG, GIF, PNG. {l s='Filesize:'} {$max_image_size|string_format:"%.2f"} {l s='MB max.'}
|
||||||
|
<br />{l s='Current size:'} <span id="carrier_logo_size">{l s='undefined'}</span>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{$smarty.block.parent}
|
||||||
|
{/block}
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
<script>var zones_nbr = {$zones|count +3} ; /*corresponds to the third input text (max, min and all)*/</script>
|
||||||
|
<div style="float:left" id="zone_ranges">
|
||||||
|
<table cellpadding="5" cellspacing="0" id="zones_table">
|
||||||
|
<tr class="range_inf">
|
||||||
|
<td class="range_type"></td>
|
||||||
|
<td class="border_left border_bottom range_sign">>=</td>
|
||||||
|
{foreach from=$ranges key=r item=range}
|
||||||
|
<td class="border_bottom center"><input name="range_inf[{$range.id_range|intval}]" type="text" value="{$range.delimiter1|string_format:"%.6f"}" /><sup>*</sup><span class="weight_unit"> {$PS_WEIGHT_UNIT}</span><span class="price_unit"> {$currency_sign}</span></td>
|
||||||
|
{foreachelse}
|
||||||
|
<td class="border_bottom center"><input name="range_inf[{$range.id_range|intval}]" type="text" /><sup>*</sup><span class="weight_unit"> {$PS_WEIGHT_UNIT}</span><span class="price_unit"> {$currency_sign}</span></td>
|
||||||
|
{/foreach}
|
||||||
|
</tr>
|
||||||
|
<tr class="range_sup">
|
||||||
|
<td class="center range_type"></td>
|
||||||
|
<td class="border_left range_sign"><</td>
|
||||||
|
{foreach from=$ranges key=r item=range}
|
||||||
|
<td class="center"><input name="range_sup[{$range.id_range|intval}]" type="text" {if isset($form_id) && !$form_id} value="" {else} value="{if isset($change_ranges) && $range.id_range == 0} {else}{$range.delimiter2|string_format:"%.6f"}{/if}" {/if}/><sup>*</sup><span class="weight_unit"> {$PS_WEIGHT_UNIT}</span><span class="price_unit"> {$currency_sign}</span></td>
|
||||||
|
{foreachelse}
|
||||||
|
<td class="center"><input name="range_sup[{$range.id_range|intval}]" type="text" /><sup>*</sup><span class="weight_unit"> {$PS_WEIGHT_UNIT}</span><span class="price_unit"> {$currency_sign}</span></td>
|
||||||
|
{/foreach}
|
||||||
|
</tr>
|
||||||
|
<tr class="fees_all">
|
||||||
|
<td class="border_top border_bottom border_bold"><span class="fees_all" {if $ranges|count == 0}style="display:none" {/if}>All</span></td>
|
||||||
|
<td><input type="checkbox" onclick="checkAllZones(this);" ></td>
|
||||||
|
{foreach from=$ranges key=r item=range}
|
||||||
|
<td class="center border_top border_bottom {if $range.id_range != 0} validated {/if}" >
|
||||||
|
<input type="text" {if isset($form_id) && !$form_id} disabled="disabled"{/if} {if $range.id_range == 0} style="display:none"{/if} /><span class="currency_sign" {if $range.id_range == 0} style="display:none" {/if}> {$currency_sign}</span>
|
||||||
|
</td>
|
||||||
|
{foreachelse}
|
||||||
|
<td class="center border_top border_bottom">
|
||||||
|
<input style="display:none" type="text" /><span class="currency_sign" style="display:none"> {$currency_sign}</span>
|
||||||
|
</td>
|
||||||
|
{/foreach}
|
||||||
|
</tr>
|
||||||
|
{foreach from=$zones key=i item=zone}
|
||||||
|
<tr class="fees {if $i is odd}alt_row{/if}" data-zoneid="{$zone.id_zone}">
|
||||||
|
<td><label for="zone_{$zone.id_zone}">{$zone.name}</label></td>
|
||||||
|
<td class="zone">
|
||||||
|
<input class="input_zone" id="zone_{$zone.id_zone}" name="zone_{$zone.id_zone}" value="1" type="checkbox" {if isset($fields_value['zones'][$zone.id_zone]) && $fields_value['zones'][$zone.id_zone]} checked="checked"{/if}/>
|
||||||
|
</td>
|
||||||
|
{foreach from=$ranges key=r item=range}
|
||||||
|
<td class="center">
|
||||||
|
<input name="fees[{$zone.id_zone|intval}][{$range.id_range|intval}]" type="text"
|
||||||
|
{if !isset($fields_value['zones'][$zone.id_zone]) || (isset($fields_value['zones'][$zone.id_zone]) && !$fields_value['zones'][$zone.id_zone])} disabled="disabled"{/if} {if isset($price_by_range[$range.id_range][$zone.id_zone]) && $price_by_range[$range.id_range][$zone.id_zone] && isset($fields_value['zones'][$zone.id_zone]) && $fields_value['zones'][$zone.id_zone]} value="{$price_by_range[$range.id_range][$zone.id_zone]|string_format:'%.6f'}" {else} value="" {/if} /> {$currency_sign}
|
||||||
|
</td>
|
||||||
|
{/foreach}
|
||||||
|
</tr>
|
||||||
|
{/foreach}
|
||||||
|
<tr class="delete_range">
|
||||||
|
<td> </td>
|
||||||
|
<td> </td>
|
||||||
|
{foreach from=$ranges name=ranges key=r item=range}
|
||||||
|
{if $smarty.foreach.ranges.first}
|
||||||
|
<td class="center"> </td>
|
||||||
|
{else}
|
||||||
|
<td class="center"><button class="button">{l s='Delete'}</button></td>
|
||||||
|
{/if}
|
||||||
|
{/foreach}
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* 2007-2013 PrestaShop
|
||||||
|
*
|
||||||
|
* NOTICE OF LICENSE
|
||||||
|
*
|
||||||
|
* This source file is subject to the Open Software License (OSL 3.0)
|
||||||
|
* that is bundled with this package in the file LICENSE.txt.
|
||||||
|
* It is also available through the world-wide-web at this URL:
|
||||||
|
* http://opensource.org/licenses/osl-3.0.php
|
||||||
|
* If you did not receive a copy of the license and are unable to
|
||||||
|
* obtain it through the world-wide-web, please send an email
|
||||||
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
|
*
|
||||||
|
* DISCLAIMER
|
||||||
|
*
|
||||||
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||||
|
* versions in the future. If you wish to customize PrestaShop for your
|
||||||
|
* needs please refer to http://www.prestashop.com for more information.
|
||||||
|
*
|
||||||
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
|
* @copyright 2007-2013 PrestaShop SA
|
||||||
|
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||||
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
|
*/
|
||||||
|
|
||||||
|
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||||
|
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||||
|
|
||||||
|
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||||
|
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||||
|
header('Pragma: no-cache');
|
||||||
|
|
||||||
|
header('Location: ../../../../../../../../');
|
||||||
|
exit;
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* 2007-2013 PrestaShop
|
||||||
|
*
|
||||||
|
* NOTICE OF LICENSE
|
||||||
|
*
|
||||||
|
* This source file is subject to the Open Software License (OSL 3.0)
|
||||||
|
* that is bundled with this package in the file LICENSE.txt.
|
||||||
|
* It is also available through the world-wide-web at this URL:
|
||||||
|
* http://opensource.org/licenses/osl-3.0.php
|
||||||
|
* If you did not receive a copy of the license and are unable to
|
||||||
|
* obtain it through the world-wide-web, please send an email
|
||||||
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
|
*
|
||||||
|
* DISCLAIMER
|
||||||
|
*
|
||||||
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||||
|
* versions in the future. If you wish to customize PrestaShop for your
|
||||||
|
* needs please refer to http://www.prestashop.com for more information.
|
||||||
|
*
|
||||||
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
|
* @copyright 2007-2013 PrestaShop SA
|
||||||
|
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||||
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
|
*/
|
||||||
|
|
||||||
|
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||||
|
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||||
|
|
||||||
|
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||||
|
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||||
|
header('Pragma: no-cache');
|
||||||
|
|
||||||
|
header('Location: ../../../../../../../');
|
||||||
|
exit;
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* 2007-2013 PrestaShop
|
||||||
|
*
|
||||||
|
* NOTICE OF LICENSE
|
||||||
|
*
|
||||||
|
* This source file is subject to the Open Software License (OSL 3.0)
|
||||||
|
* that is bundled with this package in the file LICENSE.txt.
|
||||||
|
* It is also available through the world-wide-web at this URL:
|
||||||
|
* http://opensource.org/licenses/osl-3.0.php
|
||||||
|
* If you did not receive a copy of the license and are unable to
|
||||||
|
* obtain it through the world-wide-web, please send an email
|
||||||
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
|
*
|
||||||
|
* DISCLAIMER
|
||||||
|
*
|
||||||
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||||
|
* versions in the future. If you wish to customize PrestaShop for your
|
||||||
|
* needs please refer to http://www.prestashop.com for more information.
|
||||||
|
*
|
||||||
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
|
* @copyright 2007-2013 PrestaShop SA
|
||||||
|
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||||
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
|
*/
|
||||||
|
|
||||||
|
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||||
|
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||||
|
|
||||||
|
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||||
|
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||||
|
header('Pragma: no-cache');
|
||||||
|
|
||||||
|
header('Location: ../../../../../../../../');
|
||||||
|
exit;
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
{*
|
||||||
|
* 2007-2013 PrestaShop
|
||||||
|
*
|
||||||
|
* NOTICE OF LICENSE
|
||||||
|
*
|
||||||
|
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||||
|
* that is bundled with this package in the file LICENSE.txt.
|
||||||
|
* It is also available through the world-wide-web at this URL:
|
||||||
|
* http://opensource.org/licenses/afl-3.0.php
|
||||||
|
* If you did not receive a copy of the license and are unable to
|
||||||
|
* obtain it through the world-wide-web, please send an email
|
||||||
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
|
*
|
||||||
|
* DISCLAIMER
|
||||||
|
*
|
||||||
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||||
|
* versions in the future. If you wish to customize PrestaShop for your
|
||||||
|
* needs please refer to http://www.prestashop.com for more information.
|
||||||
|
*
|
||||||
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
|
* @copyright 2007-2013 PrestaShop SA
|
||||||
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
|
*}
|
||||||
|
|
||||||
|
{extends file="helpers/view/view.tpl"}
|
||||||
|
{block name="override_tpl"}
|
||||||
|
<script>
|
||||||
|
var labelNext = '{$labels.next|addslashes}';
|
||||||
|
var labelPrevious = '{$labels.previous|addslashes}';
|
||||||
|
var labelFinish = '{$labels.finish|addslashes}';
|
||||||
|
var labelDelete = '{l s='Delete' js=1}';
|
||||||
|
var labelValidate = '{l s='Validate' js=1}';
|
||||||
|
var validate_url = '{$validate_url|addslashes}';
|
||||||
|
var carrierlist_url = '{$carrierlist_url|addslashes}';
|
||||||
|
var nbr_steps = {$wizard_steps.steps|count};
|
||||||
|
var enableAllSteps = {if $enableAllSteps|intval == 1}true{else}false{/if};
|
||||||
|
var need_to_validate = '{l s='Please validate the last range before create a new one.' js=1}';
|
||||||
|
var delete_range_confirm = '{l s='Are you sure to delete this range ?' js=1}';
|
||||||
|
var currency_sign = '{$currency_sign}';
|
||||||
|
var PS_WEIGHT_UNIT = '{$PS_WEIGHT_UNIT}';
|
||||||
|
var invalid_range = '{l s='This range is not valid' js=1}';
|
||||||
|
var range_is_overlapping = '{l s='Ranges are overlapping' js=1}';
|
||||||
|
var multistore_enable = '{$multistore_enable}';
|
||||||
|
</script>
|
||||||
|
<div id="carrier_wizard" class="swMain">
|
||||||
|
<ul class="nbr_steps_{$wizard_steps.steps|count}">
|
||||||
|
{foreach from=$wizard_steps.steps key=step_nbr item=step}
|
||||||
|
<li>
|
||||||
|
<a href="#step-{$step_nbr + 1}">
|
||||||
|
<label class="stepNumber">{$step_nbr + 1}</label>
|
||||||
|
<span class="stepDesc">
|
||||||
|
{$step.title}<br />
|
||||||
|
{if isset($step.desc)}<small>{$step.desc}</small>{/if}
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{/foreach}
|
||||||
|
</ul>
|
||||||
|
{foreach from=$wizard_contents.contents key=step_nbr item=content}
|
||||||
|
<div id="step-{$step_nbr + 1}" class="step_container">
|
||||||
|
{$content}
|
||||||
|
</div>
|
||||||
|
{/foreach}
|
||||||
|
</div>
|
||||||
|
{/block}
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
{*
|
||||||
|
* 2007-2013 PrestaShop
|
||||||
|
*
|
||||||
|
* NOTICE OF LICENSE
|
||||||
|
*
|
||||||
|
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||||
|
* that is bundled with this package in the file LICENSE.txt.
|
||||||
|
* It is also available through the world-wide-web at this URL:
|
||||||
|
* http://opensource.org/licenses/afl-3.0.php
|
||||||
|
* If you did not receive a copy of the license and are unable to
|
||||||
|
* obtain it through the world-wide-web, please send an email
|
||||||
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
|
*
|
||||||
|
* DISCLAIMER
|
||||||
|
*
|
||||||
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||||
|
* versions in the future. If you wish to customize PrestaShop for your
|
||||||
|
* needs please refer to http://www.prestashop.com for more information.
|
||||||
|
*
|
||||||
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
|
* @copyright 2007-2013 PrestaShop SA
|
||||||
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
|
*}
|
||||||
|
|
||||||
|
<div id="carrier_logo_block">
|
||||||
|
<img id="carrier_logo_img" src="{if $carrier_logo}{$carrier_logo}{else}../img/admin/carrier-default.jpg{/if}" />
|
||||||
|
<br/>
|
||||||
|
<a id="carrier_logo_remove" {if !$carrier_logo}style="display:none"{/if} href="javascript:removeCarrierLogo();"><img src="../img/admin/disabled.gif" /> {l s='Remove the logo'}</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var carrier_translation_undefined = '{l s='undefined' js=1}';
|
||||||
|
|
||||||
|
function removeCarrierLogo()
|
||||||
|
{
|
||||||
|
$('#carrier_logo_img').attr('src', '../img/admin/carrier-default.jpg');
|
||||||
|
$('#logo').val('null');
|
||||||
|
fixCarrierLogoDisplay();
|
||||||
|
$('#carrier_logo_remove').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
function uploadCarrierLogo()
|
||||||
|
{
|
||||||
|
$.ajaxFileUpload({
|
||||||
|
url: 'ajax-tab.php?tab=AdminCarrierWizard&token={$token|addslashes}&action=uploadLogo',
|
||||||
|
secureuri: false,
|
||||||
|
fileElementId: 'carrier_logo_input',
|
||||||
|
dataType: 'xml',
|
||||||
|
success: function (data, status) {
|
||||||
|
data = data.getElementsByTagName('return')[0];
|
||||||
|
var message = data.getAttribute("message");
|
||||||
|
if (data.getAttribute("result") == "success")
|
||||||
|
{
|
||||||
|
$('#carrier_logo_img').attr('src', message);
|
||||||
|
$('#logo').val(message);
|
||||||
|
$('#carrier_logo_remove').show();
|
||||||
|
fixCarrierLogoDisplay();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
alert(message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function fixCarrierLogoDisplay()
|
||||||
|
{
|
||||||
|
$('<img/>').attr('src', $('#carrier_logo_img').attr('src')).load(function(){
|
||||||
|
var maxHeight = 200;
|
||||||
|
var maxWidth = 200;
|
||||||
|
var res = this.width / this.height;
|
||||||
|
$('#carrier_logo_size').text(this.width + 'x' + this.height + ' px');
|
||||||
|
$('#carrier_logo_img').width(this.width);
|
||||||
|
$('#carrier_logo_img').height(this.height);
|
||||||
|
if ($('#carrier_logo_img').width() > maxWidth)
|
||||||
|
{
|
||||||
|
$('#carrier_logo_img').width(maxWidth);
|
||||||
|
$('#carrier_logo_img').height(maxWidth / res);
|
||||||
|
}
|
||||||
|
if ($('#carrier_logo_img').height() > maxHeight)
|
||||||
|
{
|
||||||
|
$('#carrier_logo_img').height(maxHeight);
|
||||||
|
$('#carrier_logo_img').width(maxHeight * res);
|
||||||
|
}
|
||||||
|
if ($('#logo').val() == 'null')
|
||||||
|
$('#carrier_logo_size').text(carrier_translation_undefined);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
fixCarrierLogoDisplay();
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
{*
|
||||||
|
* 2007-2013 PrestaShop
|
||||||
|
*
|
||||||
|
* NOTICE OF LICENSE
|
||||||
|
*
|
||||||
|
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||||
|
* that is bundled with this package in the file LICENSE.txt.
|
||||||
|
* It is also available through the world-wide-web at this URL:
|
||||||
|
* http://opensource.org/licenses/afl-3.0.php
|
||||||
|
* If you did not receive a copy of the license and are unable to
|
||||||
|
* obtain it through the world-wide-web, please send an email
|
||||||
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
|
*
|
||||||
|
* DISCLAIMER
|
||||||
|
*
|
||||||
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||||
|
* versions in the future. If you wish to customize PrestaShop for your
|
||||||
|
* needs please refer to http://www.prestashop.com for more information.
|
||||||
|
*
|
||||||
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
|
* @copyright 2007-2013 PrestaShop SA
|
||||||
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
|
*}
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var summary_translation_undefined = '{l s='[undefined]' js=1}';
|
||||||
|
var summary_translation_meta_informations = '{l s='This carrier is @s1 and the delivery announced is: @s2.' js=1}';
|
||||||
|
var summary_translation_free = '<strong>{l s='free' js=1}</strong>';
|
||||||
|
var summary_translation_paid = '<strong>{l s='not free' js=1}</strong>';
|
||||||
|
var summary_translation_range = '<span class="is_free">{l s='This carrier can deliver orders from @s1 to @s2.' js=1}</span>';
|
||||||
|
var summary_translation_range_limit = '{l s='If the order is out of range, the behavior is to @s3.' js=1}';
|
||||||
|
var summary_translation_shipping_cost = '{l s='The shipping cost is calculated @s1 and the tax rule @s2 will be applied.' js=1}';
|
||||||
|
var summary_translation_price = '<strong>{l s='according to the price' js=1}</strong>';
|
||||||
|
var summary_translation_weight = '<strong>{l s='according to the weight' js=1}</strong>';
|
||||||
|
</script>
|
||||||
|
<div class="defaultForm">
|
||||||
|
<fieldset>
|
||||||
|
{l s='Carrier name:'} <strong id="summary_name"></strong>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div id="summary_meta_informations"></div>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div id="summary_shipping_cost"></div>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div id="summary_range"></div>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div>
|
||||||
|
{l s='This carrier will be proposed for those delivery zones:'}
|
||||||
|
<ul id="summary_zones"></ul>
|
||||||
|
</div>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div>
|
||||||
|
{l s='And it will be proposed for those client groups:'}
|
||||||
|
<ul id="summary_groups"></ul>
|
||||||
|
</div>
|
||||||
|
{if $is_multishop}
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div>
|
||||||
|
{l s='Finally, this carrier will be proposed in those shops:'}
|
||||||
|
<ul id="summary_shops"></ul>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
<div class="clear"> </div>
|
||||||
|
{$active_form}
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
{*
|
||||||
|
* 2007-2013 PrestaShop
|
||||||
|
*
|
||||||
|
* NOTICE OF LICENSE
|
||||||
|
*
|
||||||
|
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||||
|
* that is bundled with this package in the file LICENSE.txt.
|
||||||
|
* It is also available through the world-wide-web at this URL:
|
||||||
|
* http://opensource.org/licenses/afl-3.0.php
|
||||||
|
* If you did not receive a copy of the license and are unable to
|
||||||
|
* obtain it through the world-wide-web, please send an email
|
||||||
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
|
*
|
||||||
|
* DISCLAIMER
|
||||||
|
*
|
||||||
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||||
|
* versions in the future. If you wish to customize PrestaShop for your
|
||||||
|
* needs please refer to http://www.prestashop.com for more information.
|
||||||
|
*
|
||||||
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
|
* @copyright 2007-2013 PrestaShop SA
|
||||||
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
|
*}
|
||||||
|
|
||||||
|
{extends file="helpers/list/list_content.tpl"}
|
||||||
|
{block name="open_td"}
|
||||||
|
<td
|
||||||
|
{if isset($params.position)}
|
||||||
|
id="td_{if !empty($id_category)}{$id_category}{else}0{/if}_{$tr.$identifier}"
|
||||||
|
{/if}
|
||||||
|
class="{if !$no_link}pointer{/if}
|
||||||
|
{if isset($params.position) && $order_by == 'position' && $order_way != 'DESC'} dragHandle{/if}
|
||||||
|
{if isset($params.align)} {$params.align}{/if}"
|
||||||
|
{if (!isset($params.position) && !$no_link && !isset($params.remove_onclick))}
|
||||||
|
onclick="document.location = '{$link->getAdminLink('AdminCarrierWizard', true)}&{$identifier}={$tr.$identifier}'">
|
||||||
|
{else}
|
||||||
|
>
|
||||||
|
{/if}
|
||||||
|
{/block}
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
<h2><img src="../img/admin/cart.gif" /> {l s='Order information'}</h2>
|
<h2><img src="../img/admin/cart.gif" /> {l s='Order information'}</h2>
|
||||||
<span>
|
<span>
|
||||||
{if $order->id}
|
{if $order->id}
|
||||||
<a href="{$link->getAdminLink('AdminOrders')|escape:'htmlall':'UTF-8'}&id_order={$order->id}&vieworder"> {l s='Order #%d' sprintf=$order->id|string_format:"%06d"}</a></span>
|
<a href="{$link->getAdminLink('AdminOrders')|escape:'htmlall':'UTF-8'}&id_order={$order->id}&vieworder"> {l s='Order #%s' sprintf=$order->reference}</a></span>
|
||||||
<br /><br />
|
<br /><br />
|
||||||
{l s='Made on:'} {dateFormat date=$order->date_add}<br /><br /><br /><br />
|
{l s='Made on:'} {dateFormat date=$order->date_add}<br /><br /><br /><br />
|
||||||
{else}
|
{else}
|
||||||
@@ -187,4 +187,4 @@
|
|||||||
<div class="clear" style="height:20px;"> </div>
|
<div class="clear" style="height:20px;"> </div>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
{if $shared_category}
|
{if $shared_category}
|
||||||
<p class="warn">{l s='If you delete this picture, it will be deleted in all of your shared shops!'}</p>
|
<p class="warn">{l s='If you delete this picture, it will be deleted in all of your shared shops!'}</p>
|
||||||
{/if}
|
{/if}
|
||||||
<br>
|
<br />
|
||||||
<a href="{$current}&{$identifier}={$form_id}&token={$token}&{if $shared_category}forcedeleteImage=1{else}deleteImage=1{/if}">
|
<a href="{$current}&{$identifier}={$form_id}&token={$token}&{if $shared_category}forcedeleteImage=1{else}deleteImage=1{/if}">
|
||||||
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
||||||
</a>
|
</a>
|
||||||
@@ -71,4 +71,4 @@
|
|||||||
<span>{$input.customer}</span><br />
|
<span>{$input.customer}</span><br />
|
||||||
</p>
|
</p>
|
||||||
{/if}
|
{/if}
|
||||||
{/block}
|
{/block}
|
||||||
+4
-4
@@ -33,7 +33,7 @@
|
|||||||
<img src="../img/admin/home.gif" alt="" />
|
<img src="../img/admin/home.gif" alt="" />
|
||||||
{assign var=params_url value=""}
|
{assign var=params_url value=""}
|
||||||
{else}
|
{else}
|
||||||
{assign var=params_url value="&id_category={$category.id_category}&viewcategory"}
|
{assign var=params_url value="&id_category={$category.id_category|intval}&viewcategory"}
|
||||||
{/if}
|
{/if}
|
||||||
{if $category.id_category == $categories_tree_current_id}
|
{if $category.id_category == $categories_tree_current_id}
|
||||||
{$category.name}
|
{$category.name}
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
{/foreach}
|
{/foreach}
|
||||||
</div>
|
</div>
|
||||||
{if isset($delete_category) && $delete_category}
|
{if isset($delete_category) && $delete_category}
|
||||||
<form action="{$REQUEST_URI}" method="post">
|
<form action="{$REQUEST_URI|escape:'htmlall':'UTF-8'}" method="post">
|
||||||
<div class="warn">
|
<div class="warn">
|
||||||
<h2>
|
<h2>
|
||||||
{if $need_delete_mode}
|
{if $need_delete_mode}
|
||||||
@@ -74,10 +74,10 @@
|
|||||||
{if $key != 'deleteMode'}
|
{if $key != 'deleteMode'}
|
||||||
{if is_array($value)}
|
{if is_array($value)}
|
||||||
{foreach $value as $val}
|
{foreach $value as $val}
|
||||||
<input type="hidden" name="{$key}[]" value="{$val}" />
|
<input type="hidden" name="{$key|escape:'htmlall':'UTF-8'}[]" value="{$val|escape:'htmlall':'UTF-8'}" />
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{else}
|
{else}
|
||||||
<input type="hidden" name="{$key}" value="{$value}" />
|
<input type="hidden" name="{$key|escape:'htmlall':'UTF-8'}" value="{$value|escape:'htmlall':'UTF-8'}" />
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
|||||||
@@ -57,14 +57,14 @@
|
|||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{l s='Sent on:'}</dt>
|
<dt>{l s='Sent on:'}</dt>
|
||||||
<dd>{$message.date_add}</dd>
|
<dd>{$message.date_add} </dd>
|
||||||
|
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
{if empty($message.id_employee)}
|
{if empty($message.id_employee)}
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{l s='Browser:'}</dt>
|
<dt>{l s='Browser:'}</dt>
|
||||||
<dd>{$message.user_agent}</dd>
|
<dd>{$message.user_agent} </dd>
|
||||||
</dl>
|
</dl>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
@@ -79,34 +79,35 @@
|
|||||||
</dl>
|
</dl>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if !empty($message.id_order) && empty($message.id_employee)}
|
{if !empty($message.id_order) && $is_valid_order_id && empty($message.id_employee)}
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{l s='Order #'}</dt>
|
<dt>{l s='Order #'}</dt>
|
||||||
<dd><a href="index.php?tab=AdminOrders&id_order={$message.id_order}&vieworder&token={getAdminToken tab='AdminOrders'}" title="{l s='View order'}">
|
<dd><a href="index.php?tab=AdminOrders&id_order={$message.id_order}&vieworder&token={getAdminToken tab='AdminOrders'}" title="{l s='View order'}">{$message.id_order} <img src="../img/admin/search.gif" alt="{l s='View'}" /></a>
|
||||||
{$message.id_order} <img src="../img/admin/search.gif" alt="{l s='View'}" />
|
</dd>
|
||||||
</a></dd>
|
|
||||||
</dl>
|
</dl>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if !empty($message.id_product) && empty($message.id_employee)}
|
{if !empty($message.id_product) && empty($message.id_employee)}
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{l s='Product #'}</dt>
|
<dt>{l s='Product #'}</dt>
|
||||||
<dd><a href="index.php?tab=AdminProducts&id_product={$message.id_product}&updateproduct&token={getAdminToken tab='AdminProducts'}" title="{l s='View order'}">
|
<dd><a href="index.php?tab=AdminProducts&id_product={$message.id_product}&updateproduct&token={getAdminToken tab='AdminProducts'}" title="{l s='View order'}">{$message.id_product} <img src="../img/admin/search.gif" alt="{l s='View'}" /></a></dd>
|
||||||
{$message.id_product} <img src="../img/admin/search.gif" alt="{l s='View'}" />
|
|
||||||
</a></dd>
|
|
||||||
</dl>
|
</dl>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<form action="{$current}&token={$token}&id_customer_thread={$message.id_customer_thread}&viewcustomer_thread" method="post">
|
<form action="{$current}&token={$token}&id_customer_thread={$message.id_customer_thread}&viewcustomer_thread" method="post">
|
||||||
<b>{l s='Subject:'}</b>
|
|
||||||
<input type="hidden" name="id_customer_message" value="{$message.id_customer_message}" />
|
<input type="hidden" name="id_customer_message" value="{$message.id_customer_message}" />
|
||||||
<select name="id_contact" onchange="this.form.submit();">
|
<dl>
|
||||||
{foreach $contacts as $contact}
|
<dt>{l s='Subject:'}</dt>
|
||||||
<option value="{$contact.id_contact}" {if $contact.id_contact == $message.id_contact}selected="selected"{/if}>
|
<dd>
|
||||||
{$contact.name}
|
<select name="id_contact" onchange="this.form.submit();">
|
||||||
</option>
|
{foreach $contacts as $contact}
|
||||||
{/foreach}
|
<option value="{$contact.id_contact}" {if $contact.id_contact == $message.id_contact}selected="selected"{/if}>
|
||||||
</select>
|
{$contact.name}
|
||||||
|
</option>
|
||||||
|
{/foreach}
|
||||||
|
</select>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -35,7 +35,7 @@
|
|||||||
{/block}
|
{/block}
|
||||||
{block name=leadin}
|
{block name=leadin}
|
||||||
{if isset($delete_customer) && $delete_customer}
|
{if isset($delete_customer) && $delete_customer}
|
||||||
<form action="{$REQUEST_URI}" method="post">
|
<form action="{$REQUEST_URI|escape:'htmlall':'UTF-8'}" method="post">
|
||||||
<div class="warn">
|
<div class="warn">
|
||||||
<h2>{l s='How do you want to delete these customer(s)?'}</h2>
|
<h2>{l s='How do you want to delete these customer(s)?'}</h2>
|
||||||
<p>{l s='There are two ways of deleting a customer. Please choose your preferred method.'}</p>
|
<p>{l s='There are two ways of deleting a customer. Please choose your preferred method.'}</p>
|
||||||
@@ -52,10 +52,10 @@
|
|||||||
{foreach $POST as $key => $value}
|
{foreach $POST as $key => $value}
|
||||||
{if is_array($value)}
|
{if is_array($value)}
|
||||||
{foreach $value as $val}
|
{foreach $value as $val}
|
||||||
<input type="hidden" name="{$key}[]" value="{$val}" />
|
<input type="hidden" name="{$key|escape:'htmlall':'UTF-8'}[]" value="{$val|escape:'htmlall':'UTF-8'}" />
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{else}
|
{else}
|
||||||
<input type="hidden" name="{$key}" value="{$value}" />
|
<input type="hidden" name="{$key|escape:'htmlall':'UTF-8'}" value="{$value|escape:'htmlall':'UTF-8'}" />
|
||||||
{/if}
|
{/if}
|
||||||
{/foreach}
|
{/foreach}
|
||||||
<br /><input type="submit" class="button" value="{l s='Delete'}" />
|
<br /><input type="submit" class="button" value="{l s='Delete'}" />
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "index.php",
|
url: "index.php",
|
||||||
data: "token={getAdminToken tab='AdminCustomers'}&tab=AdminCustomers&ajax=1&action=updateCustomerNote&id_customer={$customer->id}¬e="+noteContent,
|
data: "token={getAdminToken tab='AdminCustomers'}&tab=AdminCustomers&ajax=1&action=updateCustomerNote&id_customer={$customer->id}¬e="+encodeURIComponent(noteContent),
|
||||||
async : true,
|
async : true,
|
||||||
success: function(r) {
|
success: function(r) {
|
||||||
$('#note_feedback').html('').hide();
|
$('#note_feedback').html('').hide();
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="width:50%;float:left;">
|
<div style="width:50%;float:left;">
|
||||||
<div style="margin-left:15px;"
|
<div style="margin-left:15px;">
|
||||||
<h2>{l s='Vouchers'} ({count($discounts)})</h2>
|
<h2>{l s='Vouchers'} ({count($discounts)})</h2>
|
||||||
{if count($discounts)}
|
{if count($discounts)}
|
||||||
<table cellspacing="0" cellpadding="0" class="table">
|
<table cellspacing="0" cellpadding="0" class="table">
|
||||||
@@ -488,4 +488,4 @@
|
|||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
</div>
|
</div>
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
|
|||||||
@@ -48,11 +48,11 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$("#group_discount_category").fancybox({
|
$("#group_discount_category").fancybox({
|
||||||
onStart: function () {
|
beforeLoad: function () {
|
||||||
$('#group_discount_category_fancybox').show();
|
$('#group_discount_category_fancybox').show();
|
||||||
initFancyBox();
|
initFancyBox();
|
||||||
},
|
},
|
||||||
onClosed: function () {
|
beforeClose: function () {
|
||||||
$('#group_discount_category_fancybox').hide();
|
$('#group_discount_category_fancybox').hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
if ($(this).attr('name') == 'category_reduction['+$('[name="id_category"]:checked').val()+']')
|
if ($(this).attr('name') == 'category_reduction['+$('[name="id_category"]:checked').val()+']')
|
||||||
{
|
{
|
||||||
exist = true;
|
exist = true;
|
||||||
jAlert('{l s='This category already exists for this group.' js='1'}');
|
jAlert('{l s='This category already exists for this group.' js=1}');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -138,7 +138,7 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$('#group_discount_category_table').append('<tr class="alt_row" id="'+jsonData.id_category+'"><td>'+jsonData.catPath+'</td><td>{l s='Discount:'}'+jsonData.discount+'{l s='%'}</td><td><a href="#" onclick="deleteCategoryReduction('+jsonData.id_category+');"><img src="../img/admin/delete.gif"></a></td></tr>');
|
$('#group_discount_category_table').append('<tr class="alt_row" id="'+jsonData.id_category+'"><td>'+jsonData.catPath+'</td><td>{l s='Discount:'}' + ' ' + jsonData.discount+'{l s='%'}</td><td><a href="#" onclick="deleteCategoryReduction('+jsonData.id_category+');"><img src="../img/admin/delete.gif"></a></td></tr>');
|
||||||
|
|
||||||
var input_hidden = document.createElement("input");
|
var input_hidden = document.createElement("input");
|
||||||
input_hidden.setAttribute('type', 'hidden');
|
input_hidden.setAttribute('type', 'hidden');
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
{foreach $input['values'] key=key item=category }
|
{foreach $input['values'] key=key item=category }
|
||||||
<tr class="alt_row" id="{$category.id_category}">
|
<tr class="alt_row" id="{$category.id_category}">
|
||||||
<td>{$category.path}</td>
|
<td>{$category.path}</td>
|
||||||
<td>{l s='Discount: %d%%' sprintf=$category.reduction}</td>
|
<td>{l s='Discount: %.2f%%' sprintf=$category.reduction}</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="#" onclick="deleteCategoryReduction({$category.id_category});"><img src="../img/admin/delete.gif"></a>
|
<a href="#" onclick="deleteCategoryReduction({$category.id_category});"><img src="../img/admin/delete.gif"></a>
|
||||||
<input type="hidden" class="category_reduction" name="category_reduction[{$category.id_category}]" value="{$category.reduction}">
|
<input type="hidden" class="category_reduction" name="category_reduction[{$category.id_category}]" value="{$category.reduction}">
|
||||||
@@ -268,4 +268,4 @@
|
|||||||
{else}
|
{else}
|
||||||
{$smarty.block.parent}
|
{$smarty.block.parent}
|
||||||
{/if}
|
{/if}
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
<fieldset>
|
<fieldset>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Name:'}</span> {$group->name[$language->id]}</li>
|
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Name:'}</span> {$group->name[$language->id]}</li>
|
||||||
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Discount: %d%%' sprintf=$group->reduction}</span></li>
|
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Discount: %.2f%%' sprintf=$group->reduction}</span></li>
|
||||||
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Current category discount:'}</span>
|
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Current category discount:'}</span>
|
||||||
{if !$categorieReductions}
|
{if !$categorieReductions}
|
||||||
{l s='None'}
|
{l s='None'}
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{foreach $categorieReductions key=key item=category }
|
{foreach $categorieReductions key=key item=category }
|
||||||
<tr class="alt_row">
|
<tr class="alt_row">
|
||||||
<td>{$category.path}</td>
|
<td>{$category.path}</td>
|
||||||
<td>{l s='Discount: %d%%' sprintf=$category.reduction}</td>
|
<td>{l s='Discount: %.2f%%' sprintf=$category.reduction}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</table>
|
</table>
|
||||||
@@ -58,6 +58,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<h2>{l s='Members of this customer group'}</h2>
|
<h2>{l s='Members of this customer group'}</h2>
|
||||||
|
<p>{l s='Limited to the first 100 customers.'} {l s='Please use filters to narrow your search.'}</p>
|
||||||
{$customerList}
|
{$customerList}
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -110,14 +110,14 @@ $(document).ready(function() {
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div id="partner_preactivation">
|
<div id="partner_preactivation">
|
||||||
<p class="center"><img src="../img/loader.gif" alt="" /></p>
|
<p class="center"><img src="../img/loader.gif" alt="" /> {l s='Loading...'}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="separation"></div>
|
<div class="separation"></div>
|
||||||
|
|
||||||
|
|
||||||
{$tips_optimization}
|
{$tips_optimization}
|
||||||
<div id="discover_prestashop"><p class="center"><img src="../img/loader.gif" alt="" />{l s='Loading...'}</p></div>
|
<div id="discover_prestashop"><p class="center"><img src="../img/loader.gif" alt="" /> {l s='Loading...'}</p></div>
|
||||||
|
|
||||||
{hook h="displayAdminHomeInfos"}
|
{hook h="displayAdminHomeInfos"}
|
||||||
{hook h="displayBackOfficeHome"} {*old name of the hook*}
|
{hook h="displayBackOfficeHome"} {*old name of the hook*}
|
||||||
@@ -212,7 +212,7 @@ $(document).ready(function() {
|
|||||||
{
|
{
|
||||||
// don't show/hide screencast if it's deactivated
|
// don't show/hide screencast if it's deactivated
|
||||||
{if $employee->bo_show_screencast}
|
{if $employee->bo_show_screencast}
|
||||||
$('#adminpresentation').fadeOut('slow');
|
$('#adminpresentation').fadeOut('slow');
|
||||||
{/if}
|
{/if}
|
||||||
$('#partner_preactivation').fadeOut('slow');
|
$('#partner_preactivation').fadeOut('slow');
|
||||||
$('#discover_prestashop').fadeOut('slow');
|
$('#discover_prestashop').fadeOut('slow');
|
||||||
@@ -223,7 +223,7 @@ $(document).ready(function() {
|
|||||||
$.fancybox(
|
$.fancybox(
|
||||||
this.href,
|
this.href,
|
||||||
{
|
{
|
||||||
'width' : 660,
|
'width' : 920,
|
||||||
'height' : 384,
|
'height' : 384,
|
||||||
'transitionIn' : 'none',
|
'transitionIn' : 'none',
|
||||||
'transitionOut' : 'none',
|
'transitionOut' : 'none',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{*
|
{*
|
||||||
* 2007-2013 PrestaShop
|
* 2007-2013 PrestaShop
|
||||||
*
|
**
|
||||||
* NOTICE OF LICENSE
|
* NOTICE OF LICENSE
|
||||||
*
|
**
|
||||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||||
* that is bundled with this package in the file LICENSE.txt.
|
* that is bundled with this package in the file LICENSE.txt.
|
||||||
* It is also available through the world-wide-web at this URL:
|
* It is also available through the world-wide-web at this URL:
|
||||||
@@ -10,72 +10,25 @@
|
|||||||
* If you did not receive a copy of the license and are unable to
|
* If you did not receive a copy of the license and are unable to
|
||||||
* obtain it through the world-wide-web, please send an email
|
* obtain it through the world-wide-web, please send an email
|
||||||
* to license@prestashop.com so we can send you a copy immediately.
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
*
|
**
|
||||||
* DISCLAIMER
|
* DISCLAIMER
|
||||||
*
|
**
|
||||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||||
* versions in the future. If you wish to customize PrestaShop for your
|
* versions in the future. If you wish to customize PrestaShop for your
|
||||||
* needs please refer to http://www.prestashop.com for more information.
|
* needs please refer to http://www.prestashop.com for more information.
|
||||||
*
|
**
|
||||||
* @author PrestaShop SA <contact@prestashop.com>
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
* @copyright 2007-2013 PrestaShop SA
|
* @copyright 2007-2013 PrestaShop SA
|
||||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*}
|
*}
|
||||||
|
|
||||||
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn toolbar_scroll=$toolbar_scroll title=$title}
|
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn toolbar_scroll=$toolbar_scroll title=$title}
|
||||||
<div class="leadin">{block name="leadin"}{/block}</div>
|
<div class="leadin">{block name="leadin"}{/block}</div>
|
||||||
|
|
||||||
{if $module_confirmation}
|
{if $module_confirmation}
|
||||||
<div class="module_confirmation conf confirm">
|
<div class="module_confirmation conf confirm">
|
||||||
{l s='Your .CSV file has been sucessfully imported into your shop.'}
|
{l s='Your .CSV file has been sucessfully imported into your shop. Don\'t forget to Re-build the products search index.'}
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
|
|
||||||
var truncateAuthorized = {$truncateAuthorized|intval};
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
activeClueTip();
|
|
||||||
$("a#upload_file_import_link").fancybox({
|
|
||||||
'titleShow' : false,
|
|
||||||
'transitionIn' : 'elastic',
|
|
||||||
'transitionOut' : 'elastic'
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#preview_import').submit(function(e) {
|
|
||||||
if ($('#truncate').get(0).checked)
|
|
||||||
{
|
|
||||||
console.log(truncateAuthorized);
|
|
||||||
if (truncateAuthorized)
|
|
||||||
{
|
|
||||||
if (!confirm('{l s='Are you sure that you would like to delete this' js=1}' + ' ' + $.trim($('#entity > option:selected').text().toLowerCase()) + '?'))
|
|
||||||
{
|
|
||||||
e.preventDefault();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
jAlert('{l s='You do not have permission to delete here. When the multistore is enabled, only a SuperAdmin can delete all items before an import.' js='1'}');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
function activeClueTip()
|
|
||||||
{
|
|
||||||
$('.info_import').cluetip({
|
|
||||||
splitTitle: '|',
|
|
||||||
showTitle: false
|
|
||||||
});
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
|
|
||||||
{**
|
|
||||||
* Upload fancybox
|
|
||||||
*}
|
|
||||||
<div style="display: none">
|
<div style="display: none">
|
||||||
<div id="upload_file_import" style="padding-left: 10px; background-color: #EBEDF4; border: 1px solid #CCCED7">
|
<div id="upload_file_import" style="padding-left: 10px; background-color: #EBEDF4; border: 1px solid #CCCED7">
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
@@ -97,28 +50,16 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
|
<form id="preview_import" action="{$current}&token={$token}" method="post" style="display:inline" enctype="multipart/form-data" class="clear">
|
||||||
{**
|
|
||||||
* Import fieldset
|
|
||||||
*}
|
|
||||||
<form id="preview_import"
|
|
||||||
action="{$current}&token={$token}"
|
|
||||||
method="post"
|
|
||||||
style="display:inline"
|
|
||||||
enctype="multipart/form-data"
|
|
||||||
class="clear">
|
|
||||||
|
|
||||||
<fieldset style="float: left; margin: 0pt 20px 0pt 0pt; width: 70%;">
|
<fieldset style="float: left; margin: 0pt 20px 0pt 0pt; width: 70%;">
|
||||||
<legend><img src="../img/admin/import.gif" />{l s='Import '}</legend>
|
<legend><img src="../img/admin/import.gif" />{l s='Import '}</legend>
|
||||||
|
|
||||||
<label class="clear">{if count($files_to_import) > 1}{l s='Your CSV file (%d files):' sprintf=count($files_to_import)}{else}{l s='Your CSV file (%d file):' sprintf=count($files_to_import)}{/if}</label>
|
<label class="clear">{if count($files_to_import) > 1}{l s='Your CSV file (%d files):' sprintf=count($files_to_import)}{else}{l s='Your CSV file (%d file):' sprintf=count($files_to_import)}{/if}</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
{if count($files_to_import)}
|
{if count($files_to_import)}
|
||||||
<select name="csv">
|
<select name="csv">
|
||||||
{foreach $files_to_import AS $filename}
|
{foreach $files_to_import AS $filename}
|
||||||
<option value="{$filename}">{$filename}</option>
|
<option value="{$filename}"{if $csv_selected == $filename} selected="selected"{/if}>{$filename|escape:'htmlall':'UTF-8'}</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</select>
|
</select>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -126,33 +67,44 @@
|
|||||||
<a href="#upload_file_import" id="upload_file_import_link" class="button"><img src="../img/admin/add.gif" alt="Uplaod" title="Upload" />{l s='Upload'}</a>
|
<a href="#upload_file_import" id="upload_file_import_link" class="button"><img src="../img/admin/add.gif" alt="Uplaod" title="Upload" />{l s='Upload'}</a>
|
||||||
</div>
|
</div>
|
||||||
<div style="width:50%; margin: 0 auto;">
|
<div style="width:50%; margin: 0 auto;">
|
||||||
<a href="#" onclick="$('#sample_files_import').slideToggle(); return false;">{l s='Click to view our sample import csv files.'}</a>
|
<div style="width:50%; display: inline-block; float :left;">
|
||||||
<ul id="sample_files_import" style="display:none">
|
<a href="#" onclick="$('#sample_files_import').slideToggle(); return false;">{l s='Click to view our sample import csv files.'}</a>
|
||||||
<li><a href="../docs/csv_import/categories_import.csv">{l s='Sample Categories file'}</a></li>
|
<ul id="sample_files_import" style="display:none;">
|
||||||
<li><a href="../docs/csv_import/products_import.csv">{l s='Sample Products file'}</a></li>
|
<li><a class="_blank" href="../docs/csv_import/categories_import.csv">{l s='Sample Categories file'}</a></li>
|
||||||
<li><a href="../docs/csv_import/combinations_import.csv">{l s='Sample Combinations file'}</a></li>
|
<li><a class="_blank" href="../docs/csv_import/products_import.csv">{l s='Sample Products file'}</a></li>
|
||||||
<li><a href="../docs/csv_import/customers_import.csv">{l s='Sample Customers file'}</a></li>
|
<li><a class="_blank" href="../docs/csv_import/combinations_import.csv">{l s='Sample Combinations file'}</a></li>
|
||||||
<li><a href="../docs/csv_import/addresses_import.csv">{l s='Sample Addresses file'}</a></li>
|
<li><a class="_blank" href="../docs/csv_import/customers_import.csv">{l s='Sample Customers file'}</a></li>
|
||||||
<li><a href="../docs/csv_import/manufacturers_import.csv">{l s='Sample Manufacturers file'}</a></li>
|
<li><a class="_blank" href="../docs/csv_import/addresses_import.csv">{l s='Sample Addresses file'}</a></li>
|
||||||
<li><a href="../docs/csv_import/suppliers_import.csv">{l s='Sample Suppliers file'}</a></li>
|
<li><a class="_blank" href="../docs/csv_import/manufacturers_import.csv">{l s='Sample Manufacturers file'}</a></li>
|
||||||
{if $PS_ADVANCED_STOCK_MANAGEMENT}
|
<li><a class="_blank" href="../docs/csv_import/suppliers_import.csv">{l s='Sample Suppliers file'}</a></li>
|
||||||
<li><a href="../docs/csv_import/supply_orders_import.csv">{l s='Supply Orders sample file'}</a></li>
|
<li><a class="_blank" href="../docs/csv_import/alias_import.csv">{l s='Sample Alias file'}</a></li>
|
||||||
<li><a href="../docs/csv_import/supply_orders_details_import.csv">{l s='Supply Orders Details sample file'}</a></li>
|
{if $PS_ADVANCED_STOCK_MANAGEMENT}
|
||||||
{/if}
|
<li><a class="_blank" href="../docs/csv_import/supply_orders_import.csv">{l s='Supply Orders sample file'}</a></li>
|
||||||
</ul>
|
<li><a class="_blank" href="../docs/csv_import/supply_orders_details_import.csv">{l s='Supply Orders Details sample file'}</a></li>
|
||||||
|
{/if}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div style="width:50%; float:left;">
|
||||||
|
<a href="#" onclick="$('#csv_files_import').slideToggle(); return false;">{l s='Click to view your csv files.'}</a>
|
||||||
|
<ul id="csv_files_import" style="display:none;">
|
||||||
|
{foreach $files_to_import AS $filename}
|
||||||
|
<li><a href="{$current}&token={$token}&csvfilename={$filename|@base64_encode}">{$filename}</a>
|
||||||
|
<a href="{$current}&token={$token}&csvfilename={$filename|@base64_encode}&delete=1"><img src="../img/admin/delete.gif" /></a></li>
|
||||||
|
{/foreach}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
</div>
|
</div>
|
||||||
<label class="clear">{l s='What kind of entity would you like to import?'} </label>
|
<label class="clear">{l s='What kind of entity would you like to import?'} </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<select name="entity" id="entity">
|
<select name="entity" id="entity">
|
||||||
{foreach $entities AS $entity => $i}
|
{foreach $entities AS $entity => $i}
|
||||||
<option value="{$i}" {if $entity == $i}selected="selected"{/if}>
|
<option value="{$i}"{if $entity_selected == $i} selected="selected"{/if}>
|
||||||
{$entity}
|
{$entity}
|
||||||
</option>
|
</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<label class="clear">{l s='Language of the file'}</label>
|
<label class="clear">{l s='Language of the file'}</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<select name="iso_lang">
|
<select name="iso_lang">
|
||||||
@@ -168,26 +120,30 @@
|
|||||||
</div>
|
</div>
|
||||||
<label class="clear">{l s='Field separator'} </label>
|
<label class="clear">{l s='Field separator'} </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" size="2" value=";" name="separator"/>
|
<input type="text" size="2" value="{if isset($separator_selected)}{$separator_selected|escape:'htmlall':'UTF-8'}{else};{/if}" name="separator"/>
|
||||||
{l s='e.g. '}"1<span class="bold" style="color: red">;</span>Ipod<span class="bold" style="color: red">;</span>129.90<span class="bold" style="color: red">;</span>5"
|
{l s='e.g. '}"1<span class="bold" style="color: red">;</span>Ipod<span class="bold" style="color: red">;</span>129.90<span class="bold" style="color: red">;</span>5"
|
||||||
</div>
|
</div>
|
||||||
<label class="clear">{l s='Multiple value separator'} </label>
|
<label class="clear">{l s='Multiple value separator'} </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" size="2" value="," name="multiple_value_separator"/>
|
<input type="text" size="2" value="{if isset($multiple_value_separator_selected)}{$multiple_value_separator_selected|escape:'htmlall':'UTF-8'}{else},{/if}" name="multiple_value_separator"/>
|
||||||
{l s='e.g. '}"Ipod;red.jpg<span class="bold" style="color: red">,</span>blue.jpg<span class="bold" style="color: red">,</span>green.jpg;129.90"
|
{l s='e.g. '}"Ipod;red.jpg<span class="bold" style="color: red">,</span>blue.jpg<span class="bold" style="color: red">,</span>green.jpg;129.90"
|
||||||
</div>
|
</div>
|
||||||
<label for="truncate" class="clear">{l s='Delete all'} <span id="entitie">{l s='categories'}</span> {l s='before import?'} </label>
|
<label for="truncate" class="clear">{l s='Delete all'} <span id="entitie">{l s='categories'}</span> {l s='before import?'} </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input name="truncate" id="truncate" type="checkbox"/>
|
<input name="truncate" id="truncate" type="checkbox"/>
|
||||||
</div>
|
</div>
|
||||||
<label for="match_ref" class="clear" style="display: none">{l s='Use product reference as key?'}</label>
|
<label for="regenerate" class="clear">{l s='No thumbnails regeneration'}</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input name="match_ref" id="match_ref" type="checkbox" style="margin-top: 6px; display:none"/>
|
<input name="regenerate" id="regenerate" type="checkbox" />
|
||||||
</div>
|
</div>
|
||||||
<label for="forceIDs" class="clear">{l s='Force all ID\'s during import?'} </label>
|
<label for="forceIDs" class="clear">{l s='Force all ID\'s during import?'} </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input name="forceIDs" id="forceIDs" type="checkbox"/> {l s='If you don\'t use this option, all ID\'s will be auto-incremented.'}
|
<input name="forceIDs" id="forceIDs" type="checkbox"/> {l s='If you don\'t use this option, all ID\'s will be auto-incremented.'}
|
||||||
</div>
|
</div>
|
||||||
|
<label for="match_ref" class="clear" style="display: none">{l s='Use product reference as key?'}</label>
|
||||||
|
<div class="margin-form">
|
||||||
|
<input name="match_ref" id="match_ref" type="checkbox" style="margin-top: 6px; display:none"/>
|
||||||
|
</div>
|
||||||
<div class="space margin-form">
|
<div class="space margin-form">
|
||||||
<input type="submit" name="submitImportFile" value="{l s='Next step'}" class="button" {if empty($files_to_import)}disabled{/if}/>
|
<input type="submit" name="submitImportFile" value="{l s='Next step'}" class="button" {if empty($files_to_import)}disabled{/if}/>
|
||||||
{if empty($files_to_import)}<span style="color:red;">{l s='You must upload a file in order to proceed to the next step'}</span>{/if}
|
{if empty($files_to_import)}<span style="color:red;">{l s='You must upload a file in order to proceed to the next step'}</span>{/if}
|
||||||
@@ -210,13 +166,10 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<fieldset style="display:block;">
|
<fieldset style="display:block;">
|
||||||
|
|
||||||
<legend>
|
<legend>
|
||||||
<img src="../img/admin/import.gif" />{l s='Available fields'}
|
<img src="../img/admin/import.gif" />{l s='Available fields'}
|
||||||
</legend>
|
</legend>
|
||||||
|
|
||||||
<div id="availableFields">
|
<div id="availableFields">
|
||||||
{$available_fields}
|
{$available_fields}
|
||||||
</div>
|
</div>
|
||||||
@@ -224,74 +177,93 @@
|
|||||||
<div class="clear">
|
<div class="clear">
|
||||||
<br /><br />{l s='* Required field'}
|
<br /><br />{l s='* Required field'}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$("select#entity").change( function() {
|
$(document).ready(function(){
|
||||||
|
var truncateAuthorized = {$truncateAuthorized|intval};
|
||||||
if ($("#entity > option:selected").val() == 7 || $("#entity > option:selected").val() == 8)
|
activeClueTip();
|
||||||
{
|
$("a#upload_file_import_link").fancybox({
|
||||||
$("label[for=truncate],#truncate").hide();
|
'titleShow' : false,
|
||||||
}
|
'transitionIn' : 'elastic',
|
||||||
else
|
'transitionOut' : 'elastic'
|
||||||
$("label[for=truncate],#truncate").show();
|
|
||||||
|
|
||||||
|
|
||||||
if ($("#entity > option:selected").val() == 8)
|
|
||||||
{
|
|
||||||
$(".import_supply_orders_details").show();
|
|
||||||
$('input[name=multiple_value_separator]').val('|');
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$(".import_supply_orders_details").hide();
|
|
||||||
$('input[name=multiple_value_separator]').val(',');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if ($("#entity > option:selected").val() == 1)
|
|
||||||
{
|
|
||||||
$("label[for=match_ref],#match_ref").show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$("label[for=match_ref],#match_ref").hide();
|
|
||||||
|
|
||||||
if ($("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 0)
|
|
||||||
{
|
|
||||||
$(".import_products_categories").show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$(".import_products_categories").hide();
|
|
||||||
|
|
||||||
if ($("#entity > option:selected").val() == 0 || $("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 3 || $("#entity > option:selected").val() == 5 || $("#entity > option:selected").val() == 6)
|
|
||||||
$("label[for=forceIDs],#forceIDs").show();
|
|
||||||
else
|
|
||||||
$("label[for=forceIDs],#forceIDs").hide();
|
|
||||||
|
|
||||||
$("#entitie").html($("#entity > option:selected").text().toLowerCase());
|
|
||||||
$.ajax({
|
|
||||||
url: 'ajax.php',
|
|
||||||
data: {
|
|
||||||
getAvailableFields:1,
|
|
||||||
entity: $("#entity").val()
|
|
||||||
},
|
|
||||||
dataType: 'json',
|
|
||||||
success: function(j) {
|
|
||||||
var fields = "";
|
|
||||||
$("#availableFields").empty();
|
|
||||||
|
|
||||||
for (var i = 0; i < j.length; i++)
|
|
||||||
fields += j[i].field;
|
|
||||||
|
|
||||||
$("#availableFields").html(fields);
|
|
||||||
activeClueTip();
|
|
||||||
},
|
|
||||||
error: function(j) {
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#preview_import').submit(function(e){
|
||||||
|
if ($('#truncate').get(0).checked)
|
||||||
|
if (truncateAuthorized)
|
||||||
|
{
|
||||||
|
if (!confirm('{l s='Are you sure that you would like to delete this' js=1}' + ' ' + $.trim($('#entity > option:selected').text().toLowerCase()) + '?'))
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
jAlert('{l s='You do not have permission to delete here. When the multistore is enabled, only a SuperAdmin can delete all items before an import.' js=1}');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$("select#entity").change(function(){
|
||||||
|
if ($("#entity > option:selected").val() == 8 || $("#entity > option:selected").val() == 9)
|
||||||
|
$("label[for=truncate],#truncate").hide();
|
||||||
|
else
|
||||||
|
$("label[for=truncate],#truncate").show();
|
||||||
|
|
||||||
|
if ($("#entity > option:selected").val() == 9)
|
||||||
|
$(".import_supply_orders_details").show();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$(".import_supply_orders_details").hide();
|
||||||
|
$('input[name=multiple_value_separator]').val('{if isset($multiple_value_separator_selected)}{$multiple_value_separator_selected}{else},{/if}');
|
||||||
|
}
|
||||||
|
if ($("#entity > option:selected").val() == 1)
|
||||||
|
$("label[for=match_ref], #match_ref").show();
|
||||||
|
else
|
||||||
|
$("label[for=match_ref], #match_ref").hide();
|
||||||
|
|
||||||
|
if ($("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 0)
|
||||||
|
$(".import_products_categories").show();
|
||||||
|
else
|
||||||
|
$(".import_products_categories").hide();
|
||||||
|
|
||||||
|
if ($("#entity > option:selected").val() == 0 || $("#entity > option:selected").val() == 1 ||
|
||||||
|
$("#entity > option:selected").val() == 5 || $("#entity > option:selected").val() == 6)
|
||||||
|
$("label[for=regenerate], #regenerate").show()
|
||||||
|
else
|
||||||
|
$("label[for=regenerate], #regenerate").hide();
|
||||||
|
|
||||||
|
if ($("#entity > option:selected").val() == 0 || $("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 3 || $("#entity > option:selected").val() == 5 || $("#entity > option:selected").val() == 6 || $("#entity > option:selected").val() == 7)
|
||||||
|
$("label[for=forceIDs], #forceIDs").show();
|
||||||
|
else
|
||||||
|
$("label[for=forceIDs], #forceIDs").hide();
|
||||||
|
$("#entitie").html($("#entity > option:selected").text().toLowerCase());
|
||||||
|
$.ajax({
|
||||||
|
url: 'ajax.php',
|
||||||
|
data: {
|
||||||
|
getAvailableFields:1,
|
||||||
|
entity: $("#entity").val()
|
||||||
|
},
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(j){
|
||||||
|
var fields = "";
|
||||||
|
$("#availableFields").empty();
|
||||||
|
|
||||||
|
for (var i = 0; i < j.length; i++)
|
||||||
|
fields += j[i].field;
|
||||||
|
|
||||||
|
$("#availableFields").html(fields);
|
||||||
|
activeClueTip();
|
||||||
|
},
|
||||||
|
error: function(j){}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$("select#entity").trigger('change');
|
||||||
|
function activeClueTip()
|
||||||
|
{
|
||||||
|
$('.info_import').cluetip({
|
||||||
|
splitTitle: '|',
|
||||||
|
showTitle: false
|
||||||
|
});
|
||||||
|
};
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -22,20 +22,52 @@
|
|||||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*}
|
*}
|
||||||
|
|
||||||
{extends file="helpers/view/view.tpl"}
|
{extends file="helpers/view/view.tpl"}
|
||||||
|
|
||||||
{block name="override_tpl"}
|
{block name="override_tpl"}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var errorEmpty = "{l s='Please name your matching configuration to save.'}"
|
var errorEmpty = '{l s='Please name your matching configuration to save.' js=1}';
|
||||||
var token = '{$token}';
|
var token = '{$token}';
|
||||||
|
var current = 0;
|
||||||
|
function showTable(nb)
|
||||||
|
{
|
||||||
|
$('#btn_left').disabled = null;
|
||||||
|
$('#btn_right').disabled = null;
|
||||||
|
if (nb <= 0)
|
||||||
|
{
|
||||||
|
nb = 0;
|
||||||
|
$('#btn_left').disabled = 'true';
|
||||||
|
}
|
||||||
|
if (nb >= {$nb_table} - 1)
|
||||||
|
{
|
||||||
|
nb = {$nb_table} - 1;
|
||||||
|
$('#btn_right').disabled = 'true';
|
||||||
|
}
|
||||||
|
$('#table' + current).hide();
|
||||||
|
current = nb;
|
||||||
|
$('#table' + current).show();
|
||||||
|
}
|
||||||
|
$(document).ready(function(){
|
||||||
|
var btn_save_import = $('span[class~="process-icon-save-import"]').parent();
|
||||||
|
var btn_submit_import = $('#import');
|
||||||
|
if (btn_save_import.length > 0 && btn_submit_import.length > 0)
|
||||||
|
{
|
||||||
|
btn_submit_import.hide();
|
||||||
|
btn_save_import.find('span').removeClass('process-icon-save-import');
|
||||||
|
btn_save_import.find('span').addClass('process-icon-save');
|
||||||
|
btn_save_import.click(function(){
|
||||||
|
btn_submit_import.before('<input type="hidden" name="' + btn_submit_import.attr("name") + '" value="1" />');
|
||||||
|
$('#import_form').submit();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
showTable(current);
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<div id="container-customer">
|
<div id="container-customer">
|
||||||
<h2>{l s='View your data'}</h2>
|
<h2>{l s='View your data'}</h2>
|
||||||
<div>
|
<div>
|
||||||
<b>{l s='Save and load your configuration for importing files'} : </b><br><br>
|
<b>{l s='Save and load your configuration for importing files'} : </b><br/><br/>
|
||||||
<input type="text" name="newImportMatchs" id="newImportMatchs">
|
<input type="text" name="newImportMatchs" id="newImportMatchs" />
|
||||||
<a id="saveImportMatchs" class="button" href="#">{l s='Save'}</a><br><br>
|
<a id="saveImportMatchs" class="button" href="#">{l s='Save'}</a><br /><br />
|
||||||
<div id="selectDivImportMatchs" {if !$import_matchs}style="display:none"{/if}>
|
<div id="selectDivImportMatchs" {if !$import_matchs}style="display:none"{/if}>
|
||||||
<select id="valueImportMatchs">
|
<select id="valueImportMatchs">
|
||||||
{foreach $import_matchs as $match}
|
{foreach $import_matchs as $match}
|
||||||
@@ -46,21 +78,18 @@
|
|||||||
<a class="button" id="deleteImportMatchs" href="#">{l s='Delete'}</a>
|
<a class="button" id="deleteImportMatchs" href="#">{l s='Delete'}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3>{l s='Please set the value type of each column'}</h3>
|
<h3>{l s='Please set the value type of each column'}</h3>
|
||||||
|
|
||||||
<div id="error_duplicate_type" class="warning warn" style="display:none;">
|
<div id="error_duplicate_type" class="warning warn" style="display:none;">
|
||||||
<h3>{l s='Columns cannot have the same value type'}</h3>
|
<h3>{l s='Columns cannot have the same value type'}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="required_column" class="warning warn" style="display:none;">
|
<div id="required_column" class="warning warn" style="display:none;">
|
||||||
<h3>{l s='Column'} <span id="missing_column"> </span> {l s='must be set'}</h3>
|
<h3>{l s='Column'} <span id="missing_column"> </span> {l s='must be set'}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form action="{$current}&token={$token}" method="post" id="import_form" name="import_form">
|
<form action="{$current}&token={$token}" method="post" id="import_form" name="import_form">
|
||||||
{l s='Skip'} <input type="text" size="2" name="skip" value="0" /> {l s='lines'}
|
{l s='Skip'} <input type="text" size="2" name="skip" value="1" /> {l s='lines'}
|
||||||
<input type="hidden" name="csv" value="{$fields_value.csv}" />
|
<input type="hidden" name="csv" value="{$fields_value.csv}" />
|
||||||
<input type="hidden" name="convert" value="{$fields_value.convert}" />
|
<input type="hidden" name="convert" value="{$fields_value.convert}" />
|
||||||
|
<input type="hidden" name="regenerate" value="{$fields_value.regenerate}" />
|
||||||
<input type="hidden" name="entity" value="{$fields_value.entity}" />
|
<input type="hidden" name="entity" value="{$fields_value.entity}" />
|
||||||
<input type="hidden" name="iso_lang" value="{$fields_value.iso_lang}" />
|
<input type="hidden" name="iso_lang" value="{$fields_value.iso_lang}" />
|
||||||
{if $fields_value.truncate}
|
{if $fields_value.truncate}
|
||||||
@@ -72,49 +101,8 @@
|
|||||||
{if $fields_value.match_ref}
|
{if $fields_value.match_ref}
|
||||||
<input type="hidden" name="match_ref" value="1" />
|
<input type="hidden" name="match_ref" value="1" />
|
||||||
{/if}
|
{/if}
|
||||||
<input type="hidden" name="separator" value="{$fields_value.separator}">
|
<input type="hidden" name="separator" value="{$fields_value.separator}" />
|
||||||
<input type="hidden" name="multiple_value_separator" value="{$fields_value.multiple_value_separator}">
|
<input type="hidden" name="multiple_value_separator" value="{$fields_value.multiple_value_separator}" />
|
||||||
<script type="text/javascript">
|
|
||||||
var current = 0;
|
|
||||||
|
|
||||||
function showTable(nb)
|
|
||||||
{
|
|
||||||
getE('btn_left').disabled = null;
|
|
||||||
getE('btn_right').disabled = null;
|
|
||||||
if (nb <= 0)
|
|
||||||
{
|
|
||||||
nb = 0;
|
|
||||||
getE('btn_left').disabled = 'true';
|
|
||||||
}
|
|
||||||
if (nb >= {$nb_table} - 1)
|
|
||||||
{
|
|
||||||
nb = {$nb_table} - 1;
|
|
||||||
getE('btn_right').disabled = 'true';
|
|
||||||
}
|
|
||||||
toggle(getE('table'+current), false);
|
|
||||||
current = nb;
|
|
||||||
toggle(getE('table'+current), true);
|
|
||||||
}
|
|
||||||
|
|
||||||
$(function() {
|
|
||||||
var btn_save_import = $('span[class~="process-icon-save-import"]').parent();
|
|
||||||
var btn_submit_import = $('#import');
|
|
||||||
|
|
||||||
if (btn_save_import.length > 0 && btn_submit_import.length > 0)
|
|
||||||
{
|
|
||||||
btn_submit_import.hide();
|
|
||||||
btn_save_import.find('span').removeClass('process-icon-save-import');
|
|
||||||
btn_save_import.find('span').addClass('process-icon-save');
|
|
||||||
btn_save_import.click(function() {
|
|
||||||
btn_submit_import.before('<input type="hidden" name="'+btn_submit_import.attr("name")+'" value="1" />');
|
|
||||||
|
|
||||||
$('#import_form').submit();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3" align="center">
|
<td colspan="3" align="center">
|
||||||
@@ -123,7 +111,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" align="center">
|
<td valign="top" align="center">
|
||||||
<input id="btn_left" value="{l s='<<'}" type="button" class="button" onclick="showTable(current - 1)" />
|
<input id="btn_left" value="{l s='<<'}" type="button" class="button" onclick="showTable(current - 1);" />
|
||||||
</td>
|
</td>
|
||||||
<td align="left">
|
<td align="left">
|
||||||
{section name=nb_i start=0 loop=$nb_table step=1}
|
{section name=nb_i start=0 loop=$nb_table step=1}
|
||||||
@@ -132,12 +120,10 @@
|
|||||||
{/section}
|
{/section}
|
||||||
</td>
|
</td>
|
||||||
<td valign="top" align="center">
|
<td valign="top" align="center">
|
||||||
<input id="btn_right" value="{l s='>>'}" type="button" class="button" onclick="showTable(current + 1)" />
|
<input id="btn_right" value="{l s='>>'}" type="button" class="button" onclick="showTable(current + 1);" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<script type="text/javascript">showTable(current);</script>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,9 @@
|
|||||||
*}
|
*}
|
||||||
|
|
||||||
<div class="width4">
|
<div class="width4">
|
||||||
{$localization_form}
|
{if isset($localization_form)}{$localization_form}{/if}
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<div class="width4">
|
<div class="width4">
|
||||||
{$localization_options}
|
{if isset($localization_options)}{$localization_options}{/if}
|
||||||
</div>
|
</div>
|
||||||
@@ -49,14 +49,14 @@
|
|||||||
<form action="#" id="login_form" method="post">
|
<form action="#" id="login_form" method="post">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label for="email">{l s='Email address:'}</label>
|
<label for="email">{l s='Email address:'}</label>
|
||||||
<input type="text" id="email" name="email" class="input email_field" value="{if isset($email)}{$email|escape:'htmlall':'UTF-8'}{/if}" />
|
<input type="text" id="email" name="email" class="input email_field" tabindex="1" value="{if isset($email)}{$email|escape:'htmlall':'UTF-8'}{/if}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label for="passwd">{l s='Password:'}</label>
|
<label for="passwd">{l s='Password:'}</label>
|
||||||
<input id="passwd" type="password" name="passwd" class="input password_field" value="{if isset($password)}{$password}{/if}"/>
|
<input id="passwd" type="password" name="passwd" class="input password_field" tabindex="2" value="{if isset($password)}{$password}{/if}"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<input type="submit" name="submitLogin" value="{l s='Log in'}" class="button fl margin-right-5" />
|
<input type="submit" name="submitLogin" value="{l s='Log in'}" tabindex="3" class="button fl margin-right-5" />
|
||||||
<p class="fl no-margin hide ajax-loader">
|
<p class="fl no-margin hide ajax-loader">
|
||||||
<img src="../img/loader.gif" alt="" />
|
<img src="../img/loader.gif" alt="" />
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -59,14 +59,14 @@
|
|||||||
<td>{$module->categoryName}</td>
|
<td>{$module->categoryName}</td>
|
||||||
<td>
|
<td>
|
||||||
<select name="i_{$module->name}" class="moduleFavorite" style="width:50px">
|
<select name="i_{$module->name}" class="moduleFavorite" style="width:50px">
|
||||||
<option value="" selected="selected">---</option>
|
<option value="" selected="selected">-</option>
|
||||||
<option value="1" {if isset($module->preferences.interest) && $module->preferences.interest eq '1'}selected="selected"{/if}>{l s='Yes'}</option>
|
<option value="1" {if isset($module->preferences.interest) && $module->preferences.interest eq '1'}selected="selected"{/if}>{l s='Yes'}</option>
|
||||||
<option value="0" {if isset($module->preferences.interest) && $module->preferences.interest eq '0'}selected="selected"{/if}>{l s='No'}</option>
|
<option value="0" {if isset($module->preferences.interest) && $module->preferences.interest eq '0'}selected="selected"{/if}>{l s='No'}</option>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<select name="f_{$module->name}" class="moduleFavorite" style="width:50px">
|
<select name="f_{$module->name}" class="moduleFavorite" style="width:50px">
|
||||||
<option value="" selected="selected">---</option>
|
<option value="" selected="selected">-</option>
|
||||||
<option value="1" {if isset($module->preferences.favorite) && $module->preferences.favorite eq '1'}selected="selected"{/if}>{l s='Yes'}</option>
|
<option value="1" {if isset($module->preferences.favorite) && $module->preferences.favorite eq '1'}selected="selected"{/if}>{l s='Yes'}</option>
|
||||||
<option value="0" {if isset($module->preferences.favorite) && $module->preferences.favorite eq '0'}selected="selected"{/if}>{l s='No'}</option>
|
<option value="0" {if isset($module->preferences.favorite) && $module->preferences.favorite eq '0'}selected="selected"{/if}>{l s='No'}</option>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*}
|
*}
|
||||||
|
<script type="text/javascript" src="../js/jquery/plugins/jquery.uitablefilter.js"></script>
|
||||||
{if $add_permission eq '1'}
|
{if $add_permission eq '1'}
|
||||||
{if isset($logged_on_addons)}
|
{if isset($logged_on_addons)}
|
||||||
<!--start addons login-->
|
<!--start addons login-->
|
||||||
@@ -62,10 +62,7 @@
|
|||||||
<!--start filter module-->
|
<!--start filter module-->
|
||||||
<style>.ac_results { border:1px solid #C2C4D9; }</style>
|
<style>.ac_results { border:1px solid #C2C4D9; }</style>
|
||||||
<div class="filter-module">
|
<div class="filter-module">
|
||||||
<form id="filternameForm" method="post">
|
<input style="float: left; margin-right: 15px" placeholder="{l s='Search'}" type="text" value="" name="quicksearch" autocomplete="off" onkeyup="$.uiTableFilter($('#moduleContainer').find('table'), this.value);">
|
||||||
<input type="text" value="" name="filtername" autocomplete="off" class="ac_input">
|
|
||||||
<input type="submit" class="button" value="{l s='Search'}">
|
|
||||||
</form>
|
|
||||||
<form method="post">
|
<form method="post">
|
||||||
<div class="select-filter">
|
<div class="select-filter">
|
||||||
<label class="search-filter">{l s='Sort by'}:</label>
|
<label class="search-filter">{l s='Sort by'}:</label>
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Method to check / uncheck all modules checkbox
|
// Method to check / uncheck all modules checkbox
|
||||||
$('#checkme').click(function()
|
$('#moduleContainer').on("click", "#checkme", function()
|
||||||
{
|
{
|
||||||
if ($(this).attr("rel") == 'false')
|
if ($(this).attr("rel") == 'false')
|
||||||
{
|
{
|
||||||
@@ -321,8 +321,8 @@
|
|||||||
catch(e){}
|
catch(e){}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.toggle_favorite').live('click', function(event)
|
$('#moduleContainer').on("click", ".toggle_favorite", function()
|
||||||
{
|
{
|
||||||
var el = $(this);
|
var el = $(this);
|
||||||
var value_pref = el.data('value');
|
var value_pref = el.data('value');
|
||||||
|
|||||||
@@ -46,8 +46,8 @@
|
|||||||
</td>
|
</td>
|
||||||
<td><img class="imgm" alt="" src="{if isset($module->image)}{$module->image}{else}../modules/{$module->name}/{$module->logo}{/if}"></td>
|
<td><img class="imgm" alt="" src="{if isset($module->image)}{$module->image}{else}../modules/{$module->name}/{$module->logo}{/if}"></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="moduleDesc" id="anchor{$module->name|ucfirst}">
|
<div class="moduleDesc" id="anchor{$module->name|ucfirst}" title="{$module->name}">
|
||||||
<h3>{$module->displayName}
|
<h3>{$module->displayName}<span style="display:none">{$module->name}</span>
|
||||||
{if isset($module->type) && $module->type == 'addonsMustHave'}
|
{if isset($module->type) && $module->type == 'addonsMustHave'}
|
||||||
<span class="setup must-have">{l s='Must Have'}</span>
|
<span class="setup must-have">{l s='Must Have'}</span>
|
||||||
{else}
|
{else}
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
<p class="desc">{if isset($module->description) && $module->description ne ''}{l s='Description'} : {$module->description}{else} {/if}</p>
|
<p class="desc">{if isset($module->description) && $module->description ne ''}{l s='Description'} : {$module->description}{else} {/if}</p>
|
||||||
{if isset($module->message) && $module->type !== 'addonsNative' && $module->type != 'addonsMustHave'}<div class="conf">{$module->message}</div>{/if}
|
{if isset($module->message) && (empty($module->name) === false) && (!isset($module->type) || ($module->type != 'addonsMustHave' || $module->type !== 'addonsNative'))}<div class="conf">{$module->message}</div>{/if}
|
||||||
<div class="row-actions-module">
|
<div class="row-actions-module">
|
||||||
{if !isset($module->not_on_disk)}
|
{if !isset($module->not_on_disk)}
|
||||||
{$module->optionsHtml}
|
{$module->optionsHtml}
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
<a href="{$module->addons_buy_url}" target="_blank" class="button updated"><span><img src="../img/admin/cart_addons.png"> {if isset($module->id_currency) && isset($module->price)}{displayPrice price=$module->price currency=$module->id_currency}{/if}</span></a>
|
<a href="{$module->addons_buy_url}" target="_blank" class="button updated"><span><img src="../img/admin/cart_addons.png"> {if isset($module->id_currency) && isset($module->price)}{displayPrice price=$module->price currency=$module->id_currency}{/if}</span></a>
|
||||||
</li>
|
</li>
|
||||||
{else}
|
{else}
|
||||||
{if $module->id && isset($module->version_addons) && $module->version_addons}
|
{if isset($module->version_addons) && $module->version_addons}
|
||||||
<li><a href="{$module->options.update_url}" class="button updated"><span>{l s='Update it!'}</span></a></li>
|
<li><a href="{$module->options.update_url}" class="button updated"><span>{l s='Update it!'}</span></a></li>
|
||||||
{/if}
|
{/if}
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
<td valign="top">
|
<td valign="top">
|
||||||
<div class="moduleDesc" id="anchor{$module->name|ucfirst}">
|
<div class="moduleDesc" id="anchor{$module->name|ucfirst}">
|
||||||
<h3>
|
<h3>
|
||||||
|
<span style="display:none">{$module->name}</span>
|
||||||
{$module->displayName|truncate:36:'…'} {$module->version}
|
{$module->displayName|truncate:36:'…'} {$module->version}
|
||||||
{if isset($module->id) && $module->id gt 0 }
|
{if isset($module->id) && $module->id gt 0 }
|
||||||
{if $module->active}
|
{if $module->active}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn toolbar_scroll=$toolbar_scroll title=$title}
|
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn toolbar_scroll=$toolbar_scroll title=$title}
|
||||||
<div class="leadin">{block name="leadin"}{/block}</div>
|
<div class="leadin">{block name="leadin"}{/block}</div>
|
||||||
|
|
||||||
<form action="{$url_submit}" id={$table}_form method="post">
|
<form action="{$url_submit}" id="{$table}_form" method="post">
|
||||||
{if $display_key}
|
{if $display_key}
|
||||||
<input type="hidden" name="show_modules" value="{$display_key}" />
|
<input type="hidden" name="show_modules" value="{$display_key}" />
|
||||||
{/if}
|
{/if}
|
||||||
@@ -49,38 +49,10 @@
|
|||||||
</select><sup> *</sup>
|
</select><sup> *</sup>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
//<![CDATA
|
|
||||||
function position_exception_add(shopID)
|
|
||||||
{
|
|
||||||
var listValue = $('#em_list_'+shopID).val();
|
|
||||||
var inputValue = $('#em_text_'+shopID).val();
|
|
||||||
var r = new RegExp('(^|,) *'+listValue+' *(,|$)');
|
|
||||||
if (!r.test(inputValue))
|
|
||||||
$('#em_text_'+shopID).val(inputValue + ((inputValue.trim()) ? ', ' : '') + listValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
function position_exception_remove(shopID)
|
|
||||||
{
|
|
||||||
var listValue = $('#em_list_'+shopID).val();
|
|
||||||
var inputValue = $('#em_text_'+shopID).val();
|
|
||||||
var r = new RegExp('(^|,) *'+listValue+' *(,|$)');
|
|
||||||
if (r.test(inputValue))
|
|
||||||
{
|
|
||||||
var rep = '';
|
|
||||||
if (new RegExp(', *'+listValue+' *,').test(inputValue))
|
|
||||||
$('#em_text_'+shopID).val(inputValue.replace(r, ','));
|
|
||||||
else if (new RegExp(listValue+' *,').test(inputValue))
|
|
||||||
$('#em_text_'+shopID).val(inputValue.replace(r, ''));
|
|
||||||
else
|
|
||||||
$('#em_text_'+shopID).val(inputValue.replace(r, ''));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//]]>
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<label>{l s='Exceptions'} :</label>
|
<label>{l s='Exceptions'} :</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
|
{l s='Please specify the files for which you do not want the module to be displayed.'}<br />
|
||||||
|
{l s='Please input each filename, separated by a comma.'}<br />
|
||||||
{if !$except_diff}
|
{if !$except_diff}
|
||||||
{$exception_list}
|
{$exception_list}
|
||||||
{else}
|
{else}
|
||||||
@@ -88,9 +60,6 @@
|
|||||||
{$value}
|
{$value}
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{/if}
|
{/if}
|
||||||
{l s='Please specify the files for which you do not want the module to be displayed.'}.<br />
|
|
||||||
{l s='Please input each filename, separated by a comma.'}.
|
|
||||||
<br /><br />
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
@@ -102,4 +71,40 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="small"><sup>*</sup> {l s='Required field'}</div>
|
<div class="small"><sup>*</sup> {l s='Required field'}</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
<script type="text/javascript">
|
||||||
|
//<![CDATA
|
||||||
|
function position_exception_textchange()
|
||||||
|
{
|
||||||
|
// TODO : Add & Remove automatically the "custom pages" in the "em_list_x"
|
||||||
|
var obj = $(this);
|
||||||
|
var shopID = obj.attr('id').replace(/\D/g, '');
|
||||||
|
var list = obj.parent().find('#em_list_' + shopID);
|
||||||
|
var values = obj.val().split(',');
|
||||||
|
var len = values.length;
|
||||||
|
|
||||||
|
list.find('option').prop('selected', false);
|
||||||
|
for (var i = 0; i < len; i++)
|
||||||
|
list.find('option[value="' + $.trim(values[i]) + '"]').prop('selected', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
function position_exception_listchange()
|
||||||
|
{
|
||||||
|
var obj = $(this);
|
||||||
|
var shopID = obj.attr('id').replace(/\D/g, '');
|
||||||
|
var str = obj.val().join(', ');
|
||||||
|
|
||||||
|
obj.parent().find('#em_text_' + shopID).val(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function(){
|
||||||
|
$('form[id="hook_module_form"] input[id^="em_text_"]').each(function(){
|
||||||
|
$(this).change(position_exception_textchange).change();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('form[id="hook_module_form"] select[id^="em_list_"]').each(function(){
|
||||||
|
$(this).change(position_exception_listchange);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
//]]>
|
||||||
|
</script>
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
{l s='Show'} :
|
{l s='Show'} :
|
||||||
<select id="show_modules" onChange="autoUrl('show_modules', '{$url_show_modules}')">
|
<select id="show_modules" onChange="autoUrl('show_modules', '{$url_show_modules}')">
|
||||||
<option value="all">{l s='All modules'} </option>
|
<option value="all">{l s='All modules'} </option>
|
||||||
<option>---------------</option>
|
<option>-</option>
|
||||||
|
|
||||||
{foreach $modules as $module}
|
{foreach $modules as $module}
|
||||||
<option value="{$module->id|intval}" {if $display_key == $module->id}selected="selected"{/if}>{$module->displayName}</option>
|
<option value="{$module->id|intval}" {if $display_key == $module->id}selected="selected"{/if}>{$module->displayName}</option>
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
<td align="center" class="productQuantity">{$product['customizationQuantityTotal']}</td>
|
<td align="center" class="productQuantity">{$product['customizationQuantityTotal']}</td>
|
||||||
|
{if $display_warehouse}<td style="" align="center"> </td>{/if}
|
||||||
{if ($order->hasBeenPaid())}<td align="center" class="productQuantity">{$product['customizationQuantityRefunded']}</td>{/if}
|
{if ($order->hasBeenPaid())}<td align="center" class="productQuantity">{$product['customizationQuantityRefunded']}</td>{/if}
|
||||||
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<td align="center" class="productQuantity">{$product['customizationQuantityReturned']}</td>{/if}
|
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<td align="center" class="productQuantity">{$product['customizationQuantityReturned']}</td>{/if}
|
||||||
{if $stock_management}<td align="center" class=""> - </td>{/if}
|
{if $stock_management}<td align="center" class=""> - </td>{/if}
|
||||||
@@ -103,6 +104,7 @@
|
|||||||
</span>
|
</span>
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
|
{if $display_warehouse}<td style="" align="center"> </td>{/if}
|
||||||
{if ($order->hasBeenPaid())}<td align="center">{$customization['quantity_refunded']}</td>{/if}
|
{if ($order->hasBeenPaid())}<td align="center">{$customization['quantity_refunded']}</td>{/if}
|
||||||
{if ($order->hasBeenDelivered())}<td align="center">{$customization['quantity_returned']}</td>{/if}
|
{if ($order->hasBeenDelivered())}<td align="center">{$customization['quantity_returned']}</td>{/if}
|
||||||
<td align="center">
|
<td align="center">
|
||||||
|
|||||||
@@ -68,9 +68,9 @@
|
|||||||
{/if}
|
{/if}
|
||||||
{if get_class($document) eq 'OrderInvoice'}
|
{if get_class($document) eq 'OrderInvoice'}
|
||||||
{if isset($document->is_delivery)}
|
{if isset($document->is_delivery)}
|
||||||
#{Configuration::get('PS_DELIVERY_PREFIX', $current_id_lang)}{'%06d'|sprintf:$document->delivery_number}
|
#{Configuration::get('PS_DELIVERY_PREFIX', $current_id_lang, null, $order->id_shop)}{'%06d'|sprintf:$document->delivery_number}
|
||||||
{else}
|
{else}
|
||||||
{$document->getInvoiceNumberFormatted($current_id_lang)}
|
{$document->getInvoiceNumberFormatted($current_id_lang, $order->id_shop)}
|
||||||
{/if}
|
{/if}
|
||||||
{elseif get_class($document) eq 'OrderSlip'}
|
{elseif get_class($document) eq 'OrderSlip'}
|
||||||
#{Configuration::get('PS_CREDIT_SLIP_PREFIX', $current_id_lang)}{'%06d'|sprintf:$document->id}
|
#{Configuration::get('PS_CREDIT_SLIP_PREFIX', $current_id_lang)}{'%06d'|sprintf:$document->id}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td style="display:none;" align="center" class="productQuantity"><input type="text" name="add_product[product_quantity]" id="add_product_product_quantity" value="1" size="3" disabled="disabled" /></td>
|
<td style="display:none;" align="center" class="productQuantity"><input type="text" name="add_product[product_quantity]" id="add_product_product_quantity" value="1" size="3" disabled="disabled" /></td>
|
||||||
{if ($order->hasBeenPaid())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
{if ($order->hasBeenPaid())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
||||||
|
{if $display_warehouse}<td style="" align="center"> </td>{/if}
|
||||||
{if ($order->hasBeenDelivered())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
{if ($order->hasBeenDelivered())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
||||||
<td style="display:none;" align="center" class="productQuantity" id="add_product_product_stock">0</td>
|
<td style="display:none;" align="center" class="productQuantity" id="add_product_product_stock">0</td>
|
||||||
<td style="display:none;" align="center" id="add_product_product_total">{displayPrice price=0 currency=$currency->id}</td>
|
<td style="display:none;" align="center" id="add_product_product_total">{displayPrice price=0 currency=$currency->id}</td>
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
{* Generate HTML code for printing Invoice Icon with link *}
|
{* Generate HTML code for printing Invoice Icon with link *}
|
||||||
<span style="width:20px; margin-right:5px;">
|
<span style="width:20px; margin-right:5px;">
|
||||||
{if ($order_state->invoice || $order->invoice_number)}
|
{if ($order_state->invoice || $order->invoice_number)}
|
||||||
<a target="_blank" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateInvoicePDF&id_order={$order->id}"><img src="../img/admin/tab-invoice.gif" alt="invoice" /></a>
|
<a href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateInvoicePDF&id_order={$order->id}"><img src="../img/admin/tab-invoice.gif" alt="invoice" /></a>
|
||||||
{else}
|
{else}
|
||||||
-
|
-
|
||||||
{/if}
|
{/if}
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
{* Generate HTML code for printing Delivery Icon with link *}
|
{* Generate HTML code for printing Delivery Icon with link *}
|
||||||
<span style="width:20px;">
|
<span style="width:20px;">
|
||||||
{if ($order_state->delivery || $order->delivery_number)}
|
{if ($order_state->delivery || $order->delivery_number)}
|
||||||
<a target="_blank" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateDeliverySlipPDF&id_order={$order->id}"><img src="../img/admin/delivery.gif" alt="delivery" /></a>
|
<a href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateDeliverySlipPDF&id_order={$order->id}"><img src="../img/admin/delivery.gif" alt="delivery" /></a>
|
||||||
{else}
|
{else}
|
||||||
-
|
-
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -56,6 +56,7 @@
|
|||||||
</span>
|
</span>
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
|
{if $display_warehouse}<td align="center">{$product.warehouse_name|escape:'htmlall':'UTF-8'}</td>{/if}
|
||||||
{if ($order->hasBeenPaid())}
|
{if ($order->hasBeenPaid())}
|
||||||
<td align="center" class="productQuantity">
|
<td align="center" class="productQuantity">
|
||||||
{$product['product_quantity_refunded']}
|
{$product['product_quantity_refunded']}
|
||||||
|
|||||||
@@ -33,11 +33,16 @@
|
|||||||
var currencies = new Array();
|
var currencies = new Array();
|
||||||
var id_currency = '';
|
var id_currency = '';
|
||||||
var id_lang = '';
|
var id_lang = '';
|
||||||
var txt_show_carts = '{l s='Show carts and orders for this customer.' js='1'}';
|
var txt_show_carts = '{l s='Show carts and orders for this customer.' js=1}';
|
||||||
var txt_hide_carts = '{l s='Hide carts and orders for this customer.' js='1'}';
|
var txt_hide_carts = '{l s='Hide carts and orders for this customer.' js=1}';
|
||||||
var defaults_order_state = new Array();
|
var defaults_order_state = new Array();
|
||||||
var customization_errors = false;
|
var customization_errors = false;
|
||||||
var pic_dir = '{$pic_dir}';
|
var pic_dir = '{$pic_dir}';
|
||||||
|
var currency_format = 5;
|
||||||
|
var currency_sign = '';
|
||||||
|
var currency_blank = false;
|
||||||
|
var priceDisplayPrecision = 2;
|
||||||
|
|
||||||
{foreach from=$defaults_order_state key='module' item='id_order_state'}
|
{foreach from=$defaults_order_state key='module' item='id_order_state'}
|
||||||
defaults_order_state['{$module}'] = '{$id_order_state}';
|
defaults_order_state['{$module}'] = '{$id_order_state}';
|
||||||
{/foreach}
|
{/foreach}
|
||||||
@@ -117,7 +122,7 @@
|
|||||||
$('#vouchers_err').hide();
|
$('#vouchers_err').hide();
|
||||||
var mytab = new Array();
|
var mytab = new Array();
|
||||||
for (var i = 0; i < data.vouchers.length; i++)
|
for (var i = 0; i < data.vouchers.length; i++)
|
||||||
mytab[mytab.length] = { data: data.vouchers[i], value: data.vouchers[i].name+' - '+data.vouchers[i].description };
|
mytab[mytab.length] = { data: data.vouchers[i], value: data.vouchers[i].name + (data.vouchers[i].code.length > 0 ? ' - ' + data.vouchers[i].code : '')};
|
||||||
return mytab;
|
return mytab;
|
||||||
},
|
},
|
||||||
extraParams: {
|
extraParams: {
|
||||||
@@ -505,7 +510,6 @@
|
|||||||
}
|
}
|
||||||
displaySummary(res);
|
displaySummary(res);
|
||||||
resetBind();
|
resetBind();
|
||||||
updateCurrencySign();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -652,11 +656,12 @@
|
|||||||
var id_product = Number(this.id_product);
|
var id_product = Number(this.id_product);
|
||||||
var id_product_attribute = Number(this.id_product_attribute);
|
var id_product_attribute = Number(this.id_product_attribute);
|
||||||
cart_quantity[Number(this.id_product)+'_'+Number(this.id_product_attribute)+'_'+Number(this.id_customization)] = this.cart_quantity;
|
cart_quantity[Number(this.id_product)+'_'+Number(this.id_product_attribute)+'_'+Number(this.id_customization)] = this.cart_quantity;
|
||||||
cart_content += '<tr><td><img src="'+this.image_link+'" title="'+this.name+'" /></td><td>'+this.name+'<br />'+this.attributes_small+'</td><td>'+this.reference+'</td><td><input type="text" size="7" rel="'+this.id_product+'_'+this.id_product_attribute+'" class="product_unit_price" value="'+this.price+'" /> <span class="currency_sign"></span></td><td>';
|
cart_content += '<tr><td><img src="'+this.image_link+'" title="'+this.name+'" /></td><td>'+this.name+'<br />'+this.attributes_small+'</td><td>'+this.reference+'</td><td><input type="text" size="7" rel="'+this.id_product+'_'+this.id_product_attribute+'" class="product_unit_price" value="'+this.numeric_price+'" /></td><td>';
|
||||||
cart_content += (!this.id_customization ? '<div style="float:left;"><a href="#" class="increaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" ><img src="../img/admin/up.gif" /></a><br /><a href="#" class="decreaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'"><img src="../img/admin/down.gif" /></a></div>' : '');
|
cart_content += (!this.id_customization ? '<div style="float:left;"><a href="#" class="increaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" ><img src="../img/admin/up.gif" /></a><br /><a href="#" class="decreaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'"><img src="../img/admin/down.gif" /></a></div>' : '');
|
||||||
cart_content += (!this.id_customization ? '<div style="float:left;"><input type="text" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" class="cart_quantity" size="2" value="'+this.cart_quantity+'" />' : '');
|
cart_content += (!this.id_customization ? '<div style="float:left;"><input type="text" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" class="cart_quantity" size="2" value="'+this.cart_quantity+'" />' : '');
|
||||||
cart_content += (!this.id_customization ? '<a href="#" class="delete_product" rel="delete_'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" ><img src="../img/admin/delete.gif" /></a></div>' : '');
|
cart_content += (!this.id_customization ? '<a href="#" class="delete_product" rel="delete_'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" ><img src="../img/admin/delete.gif" /></a></div>' : '');
|
||||||
cart_content += '</td><td>'+this.total+' <span class="currency_sign"></span></td></tr>';
|
cart_content += '</td><td>' + formatCurrency(this.numeric_total, currency_format, currency_sign, currency_blank) + '</td></tr>';
|
||||||
|
|
||||||
if (this.id_customization && this.id_customization != 0)
|
if (this.id_customization && this.id_customization != 0)
|
||||||
{
|
{
|
||||||
$.each(this.customized_datas[this.id_product][this.id_product_attribute][id_address_delivery], function() {
|
$.each(this.customized_datas[this.id_product][this.id_product_attribute][id_address_delivery], function() {
|
||||||
@@ -694,17 +699,15 @@
|
|||||||
function updateCartVouchers(vouchers)
|
function updateCartVouchers(vouchers)
|
||||||
{
|
{
|
||||||
var vouchers_html = '';
|
var vouchers_html = '';
|
||||||
if (vouchers.length > 0)
|
if (typeof(vouchers) == 'object')
|
||||||
{
|
$.each(vouchers, function(){
|
||||||
$.each(vouchers, function() {
|
|
||||||
vouchers_html += '<tr><td>'+this.name+'</td><td>'+this.description+'</td><td>'+this.value_real+'</td><td><a href="#" class="delete_discount" rel="'+this.id_discount+'"><img src="../img/admin/delete.gif" /></a></td></tr>';
|
vouchers_html += '<tr><td>'+this.name+'</td><td>'+this.description+'</td><td>'+this.value_real+'</td><td><a href="#" class="delete_discount" rel="'+this.id_discount+'"><img src="../img/admin/delete.gif" /></a></td></tr>';
|
||||||
});
|
});
|
||||||
$('#voucher_list').show();
|
$('#voucher_list tbody').html($.trim(vouchers_html));
|
||||||
}
|
if ($('#voucher_list tbody').html().length == 0)
|
||||||
else
|
|
||||||
$('#voucher_list').hide();
|
$('#voucher_list').hide();
|
||||||
|
else
|
||||||
$('#voucher_list tbody').html(vouchers_html);
|
$('#voucher_list').show();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateCartPaymentList(payment_list)
|
function updateCartPaymentList(payment_list)
|
||||||
@@ -712,8 +715,23 @@
|
|||||||
$('#payment_list').html(payment_list);
|
$('#payment_list').html(payment_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fixPriceFormat(price)
|
||||||
|
{
|
||||||
|
if(price.indexOf(',') > 0 && price.indexOf('.') > 0) // if contains , and .
|
||||||
|
if(price.indexOf(',') < price.indexOf('.')) // if , is before .
|
||||||
|
price = price.replace(',',''); // remove ,
|
||||||
|
price = price.replace(' ',''); // remove any spaces
|
||||||
|
price = price.replace(',','.'); // remove , if price did not cotain both , and .
|
||||||
|
return price;
|
||||||
|
}
|
||||||
|
|
||||||
function displaySummary(jsonSummary)
|
function displaySummary(jsonSummary)
|
||||||
{
|
{
|
||||||
|
currency_format = jsonSummary.currency.format;
|
||||||
|
currency_sign = jsonSummary.currency.sign;
|
||||||
|
currency_blank = jsonSummary.currency.blank;
|
||||||
|
priceDisplayPrecision = jsonSummary.currency.decimals ? 2 : 0;
|
||||||
|
|
||||||
updateCartProducts(jsonSummary.summary.products, jsonSummary.summary.gift_products, jsonSummary.cart.id_address_delivery);
|
updateCartProducts(jsonSummary.summary.products, jsonSummary.summary.gift_products, jsonSummary.cart.id_address_delivery);
|
||||||
updateCartVouchers(jsonSummary.summary.discounts);
|
updateCartVouchers(jsonSummary.summary.discounts);
|
||||||
updateAddressesList(jsonSummary.addresses, jsonSummary.cart.id_address_delivery, jsonSummary.cart.id_address_invoice);
|
updateAddressesList(jsonSummary.addresses, jsonSummary.cart.id_address_delivery, jsonSummary.cart.id_address_invoice);
|
||||||
@@ -739,20 +757,19 @@
|
|||||||
$('#free_shipping').removeAttr('checked');
|
$('#free_shipping').removeAttr('checked');
|
||||||
|
|
||||||
$('#gift_message').html(jsonSummary.cart.gift_message);
|
$('#gift_message').html(jsonSummary.cart.gift_message);
|
||||||
if(!changed_shipping_price)
|
if (!changed_shipping_price)
|
||||||
$('#shipping_price').html('<b>'+jsonSummary.summary.total_shipping+'</b>');
|
$('#shipping_price').html('<b>' + formatCurrency(parseFloat(jsonSummary.summary.total_shipping), currency_format, currency_sign, currency_blank) + '</b>');
|
||||||
shipping_price_selected_carrier = jsonSummary.summary.total_shipping;
|
shipping_price_selected_carrier = jsonSummary.summary.total_shipping;
|
||||||
|
|
||||||
$('#total_vouchers').html(jsonSummary.summary.total_discounts_tax_exc);
|
$('#total_vouchers').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_discounts_tax_exc)), currency_format, currency_sign, currency_blank));
|
||||||
$('#total_shipping').html(jsonSummary.summary.total_shipping_tax_exc);
|
$('#total_shipping').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_shipping_tax_exc)), currency_format, currency_sign, currency_blank));
|
||||||
$('#total_taxes').html(jsonSummary.summary.total_tax);
|
$('#total_taxes').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_tax)), currency_format, currency_sign, currency_blank));
|
||||||
$('#total_without_taxes').html(jsonSummary.summary.total_price_without_tax);
|
$('#total_without_taxes').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_price_without_tax)), currency_format, currency_sign, currency_blank));
|
||||||
$('#total_with_taxes').html(jsonSummary.summary.total_price);
|
$('#total_with_taxes').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_price)), currency_format, currency_sign, currency_blank));
|
||||||
$('#total_products').html(jsonSummary.summary.total_products);
|
$('#total_products').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_products)), currency_format, currency_sign, currency_blank));
|
||||||
id_currency = jsonSummary.cart.id_currency;
|
id_currency = jsonSummary.cart.id_currency;
|
||||||
$('#id_currency option').removeAttr('selected');
|
$('#id_currency option').removeAttr('selected');
|
||||||
$('#id_currency option[value="'+id_currency+'"]').attr('selected', true);
|
$('#id_currency option[value="'+id_currency+'"]').attr('selected', true);
|
||||||
updateCurrencySign();
|
|
||||||
id_lang = jsonSummary.cart.id_lang;
|
id_lang = jsonSummary.cart.id_lang;
|
||||||
$('#id_lang option').removeAttr('selected');
|
$('#id_lang option').removeAttr('selected');
|
||||||
$('#id_lang option[value="'+id_lang+'"]').attr('selected', true);
|
$('#id_lang option[value="'+id_lang+'"]').attr('selected', true);
|
||||||
@@ -780,21 +797,21 @@
|
|||||||
qty: qty,
|
qty: qty,
|
||||||
id_customer: id_customer,
|
id_customer: id_customer,
|
||||||
id_cart: id_cart,
|
id_cart: id_cart,
|
||||||
},
|
},
|
||||||
success : function(res)
|
success : function(res)
|
||||||
{
|
{
|
||||||
displaySummary(res);
|
displaySummary(res);
|
||||||
var errors = '';
|
var errors = '';
|
||||||
if(res.errors.length)
|
if (res.errors.length)
|
||||||
{
|
{
|
||||||
$.each(res.errors, function() {
|
$.each(res.errors, function() {
|
||||||
errors += this+'<br />';
|
errors += this + '<br />';
|
||||||
});
|
});
|
||||||
$('#products_err').show();
|
$('#products_err').show();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$('#products_err').hide();
|
$('#products_err').hide();
|
||||||
$('#products_err').html(errors);
|
$('#products_err').html(errors);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -890,11 +907,6 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateCurrencySign()
|
|
||||||
{
|
|
||||||
$('.currency_sign').html(currencies[id_currency]);
|
|
||||||
}
|
|
||||||
|
|
||||||
function sendMailToCustomer()
|
function sendMailToCustomer()
|
||||||
{
|
{
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@@ -927,11 +939,33 @@
|
|||||||
var addresses_invoice_options = '';
|
var addresses_invoice_options = '';
|
||||||
var address_invoice_detail = '';
|
var address_invoice_detail = '';
|
||||||
var address_delivery_detail = '';
|
var address_delivery_detail = '';
|
||||||
|
var delivery_address_edit_link = '';
|
||||||
|
var invoice_address_edit_link = '';
|
||||||
|
|
||||||
$.each(addresses, function() {
|
$.each(addresses, function() {
|
||||||
if (this.id_address == id_address_invoice)
|
if (this.id_address == id_address_invoice)
|
||||||
address_invoice_detail = this.company+' '+this.firstname+' '+this.lastname+'<br />'+this.address1+'<br />'+this.address2+'<br />'+this.postcode+' '+this.city+' '+this.country;
|
{
|
||||||
|
address_invoice_detail = this.company+' '+this.firstname+' '+this.lastname+'<br />'+this.address1+'<br />'+this.address2+'<br />'+this.postcode+' '+this.city;
|
||||||
|
|
||||||
|
if (this.state != null)
|
||||||
|
address_invoice_detail += ' '+this.state;
|
||||||
|
|
||||||
|
address_invoice_detail += '</br>'+this.country;
|
||||||
|
|
||||||
|
invoice_address_edit_link = "{$link->getAdminLink('AdminAddresses')}&id_address="+this.id_address+"&updateaddress&realedit=1&liteDisplaying=1&submitFormAjax=1#";
|
||||||
|
}
|
||||||
|
|
||||||
if(this.id_address == id_address_delivery)
|
if(this.id_address == id_address_delivery)
|
||||||
address_delivery_detail = this.company+' '+this.firstname+' '+this.lastname+'<br />'+this.address1+'<br />'+this.address2+'<br />'+this.postcode+' '+this.city+' '+this.country;
|
{
|
||||||
|
address_delivery_detail = this.company+' '+this.firstname+' '+this.lastname+'<br />'+this.address1+'<br />'+this.address2+'<br />'+this.postcode+' '+this.city;
|
||||||
|
|
||||||
|
if (this.state != null)
|
||||||
|
address_delivery_detail += ' '+this.state;
|
||||||
|
|
||||||
|
address_delivery_detail += '</br>'+this.country;
|
||||||
|
|
||||||
|
delivery_address_edit_link = "{$link->getAdminLink('AdminAddresses')}&id_address="+this.id_address+"&updateaddress&realedit=1&liteDisplaying=1&submitFormAjax=1#";
|
||||||
|
}
|
||||||
|
|
||||||
addresses_delivery_options += '<option value="'+this.id_address+'" '+(this.id_address == id_address_delivery ? 'selected="selected"' : '')+'>'+this.alias+'</option>';
|
addresses_delivery_options += '<option value="'+this.id_address+'" '+(this.id_address == id_address_delivery ? 'selected="selected"' : '')+'>'+this.alias+'</option>';
|
||||||
addresses_invoice_options += '<option value="'+this.id_address+'" '+(this.id_address == id_address_invoice ? 'selected="selected"' : '')+'>'+this.alias+'</option>';
|
addresses_invoice_options += '<option value="'+this.id_address+'" '+(this.id_address == id_address_invoice ? 'selected="selected"' : '')+'>'+this.alias+'</option>';
|
||||||
@@ -951,6 +985,8 @@
|
|||||||
$('#id_address_invoice').html(addresses_invoice_options);
|
$('#id_address_invoice').html(addresses_invoice_options);
|
||||||
$('#address_delivery_detail').html(address_delivery_detail);
|
$('#address_delivery_detail').html(address_delivery_detail);
|
||||||
$('#address_invoice_detail').html(address_invoice_detail);
|
$('#address_invoice_detail').html(address_invoice_detail);
|
||||||
|
$('#edit_delivery_address').attr('href', delivery_address_edit_link);
|
||||||
|
$('#edit_invoice_address').attr('href', invoice_address_edit_link);
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateAddresses()
|
function updateAddresses()
|
||||||
@@ -986,7 +1022,7 @@
|
|||||||
<label>{l s='Search customers'}</label>
|
<label>{l s='Search customers'}</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" id="customer" value="" />
|
<input type="text" id="customer" value="" />
|
||||||
<p>{l s='Search a customer by tapping the first letters of his/her name'}</p>
|
<p>{l s='Search a customer by typing the first letters of his/her name'}</p>
|
||||||
<a class="fancybox button" href="{$link->getAdminLink('AdminCustomers')|escape:'htmlall':'UTF-8'}&addcustomer&liteDisplaying=1&submitFormAjax=1#">
|
<a class="fancybox button" href="{$link->getAdminLink('AdminCustomers')|escape:'htmlall':'UTF-8'}&addcustomer&liteDisplaying=1&submitFormAjax=1#">
|
||||||
<img src="../img/admin/add.gif" title="new"/><span>{l s='Add new customer'}</span>
|
<img src="../img/admin/add.gif" title="new"/><span>{l s='Add new customer'}</span>
|
||||||
</a>
|
</a>
|
||||||
@@ -1001,7 +1037,7 @@
|
|||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="hidden" value="" id="id_cart" name="id_cart" />
|
<input type="hidden" value="" id="id_cart" name="id_cart" />
|
||||||
<input type="text" id="product" value="" />
|
<input type="text" id="product" value="" />
|
||||||
<p>{l s='Search a product by tapping the first letters of his/her name.'}</p>
|
<p>{l s='Search a product by typing the first letters of his/her name.'}</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="products_found">
|
<div id="products_found">
|
||||||
<div id="product_list">
|
<div id="product_list">
|
||||||
@@ -1161,14 +1197,14 @@
|
|||||||
<div id="address_delivery">
|
<div id="address_delivery">
|
||||||
<h3>{l s='Delivery'}</h3>
|
<h3>{l s='Delivery'}</h3>
|
||||||
<select id="id_address_delivery" name="id_address_delivery">
|
<select id="id_address_delivery" name="id_address_delivery">
|
||||||
</select>
|
</select> <a class="fancybox" id="edit_delivery_address" href="#"><img src="../img/admin/edit.gif" /></a>
|
||||||
<div id="address_delivery_detail">
|
<div id="address_delivery_detail">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="address_invoice">
|
<div id="address_invoice">
|
||||||
<h3>{l s='Invoice'}</h3>
|
<h3>{l s='Invoice'}</h3>
|
||||||
<select id="id_address_invoice" name="id_address_invoice">
|
<select id="id_address_invoice" name="id_address_invoice">
|
||||||
</select>
|
</select> <a class="fancybox" id="edit_invoice_address" href="#"><img src="../img/admin/edit.gif" /></a>
|
||||||
<div id="address_invoice_detail">
|
<div id="address_invoice_detail">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1186,7 +1222,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label for="shipping_price">{l s='Shipping price'}</label> <span id="shipping_price" name="shipping_price"></span> <span class="currency_sign"></span>
|
<label for="shipping_price">{l s='Shipping price'}</label> <span id="shipping_price" name="shipping_price"></span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label for="free_shipping">{l s='Free shipping'}</label>
|
<label for="free_shipping">{l s='Free shipping'}</label>
|
||||||
@@ -1210,12 +1246,12 @@
|
|||||||
<div id="send_email_feedback"></div>
|
<div id="send_email_feedback"></div>
|
||||||
<div id="cart_summary" style="clear:both;float:left;">
|
<div id="cart_summary" style="clear:both;float:left;">
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class="total_cart">{l s='Total products'}</span><span id="total_products"></span><span class="currency_sign"></span></li>
|
<li><span class="total_cart">{l s='Total products'}</span><span id="total_products"></span></li>
|
||||||
<li><span class="total_cart">{l s='Total vouchers'}</span><span id="total_vouchers"></span><span class="currency_sign"></span></li>
|
<li><span class="total_cart">{l s='Total vouchers'}</span><span id="total_vouchers"></span></li>
|
||||||
<li><span class="total_cart">{l s='Total shipping'}</span><span id="total_shipping"></span><span class="currency_sign"></span></li>
|
<li><span class="total_cart">{l s='Total shipping'}</span><span id="total_shipping"></span></li>
|
||||||
<li><span class="total_cart">{l s='Total taxes'}</span><span id="total_taxes"></span><span class="currency_sign"></span></li>
|
<li><span class="total_cart">{l s='Total taxes'}</span><span id="total_taxes"></span></li>
|
||||||
<li><span class="total_cart">{l s='Total without taxes'}</span><span id="total_without_taxes"></span><span class="currency_sign"></span></li>
|
<li><span class="total_cart">{l s='Total without taxes'}</span><span id="total_without_taxes"></span></li>
|
||||||
<li><span class="total_cart">{l s='Total with taxes'}</span><span id="total_with_taxes"></span><span class="currency_sign"></span></li>
|
<li><span class="total_cart">{l s='Total with taxes'}</span><span id="total_with_taxes"></span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="order_message_right">
|
<div class="order_message_right">
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
<div class="bloc-command">
|
<div class="bloc-command">
|
||||||
<div class="button-command">
|
<div class="button-command">
|
||||||
{if (count($invoices_collection))}
|
{if (count($invoices_collection))}
|
||||||
<a class="button" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateInvoicePDF&id_order={$order->id}" target="_blank">
|
<a class="button" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateInvoicePDF&id_order={$order->id}">
|
||||||
<img src="../img/admin/charged_ok.gif" alt="{l s='View invoice'}" /> {l s='View invoice'}
|
<img src="../img/admin/charged_ok.gif" alt="{l s='View invoice'}" /> {l s='View invoice'}
|
||||||
</a>
|
</a>
|
||||||
{else}
|
{else}
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
|
|
||||||
{if (($currentState && $currentState->delivery) || $order->delivery_number)}
|
{if (($currentState && $currentState->delivery) || $order->delivery_number)}
|
||||||
<a class="button" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateDeliverySlipPDF&id_order={$order->id}" target="_blank">
|
<a class="button" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateDeliverySlipPDF&id_order={$order->id}">
|
||||||
<img src="../img/admin/delivery.gif" alt="{l s='View delivery slip'}" /> {l s='View delivery slip'}
|
<img src="../img/admin/delivery.gif" alt="{l s='View delivery slip'}" /> {l s='View delivery slip'}
|
||||||
</a>
|
</a>
|
||||||
{else}
|
{else}
|
||||||
@@ -124,10 +124,10 @@
|
|||||||
<!-- History of status -->
|
<!-- History of status -->
|
||||||
<table cellspacing="0" cellpadding="0" class="table history-status" style="width: 100%;">
|
<table cellspacing="0" cellpadding="0" class="table history-status" style="width: 100%;">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="1%">
|
<col width="1%"/>
|
||||||
<col width="">
|
<col width=""/>
|
||||||
<col width="20%">
|
<col width="20%"/>
|
||||||
<col width="20%">
|
<col width="20%"/>
|
||||||
</colgroup>
|
</colgroup>
|
||||||
{foreach from=$history item=row key=key}
|
{foreach from=$history item=row key=key}
|
||||||
{if ($key == 0)}
|
{if ($key == 0)}
|
||||||
@@ -153,7 +153,7 @@
|
|||||||
<br />
|
<br />
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend><img src="../img/admin/tab-customers.gif" /> {l s='Customer information'}</legend>
|
<legend><img src="../img/admin/tab-customers.gif" /> {l s='Customer information'}</legend>
|
||||||
<span style="font-weight: bold; font-size: 14px;"><a href="?tab=AdminCustomers&id_customer={$customer->id}&viewcustomer&token={getAdminToken tab='AdminCustomers'}"> {$customer->firstname} {$customer->lastname}</a></span> ({l s='#'}{$customer->id})<br />
|
<span style="font-weight: bold; font-size: 14px;"><a href="?tab=AdminCustomers&id_customer={$customer->id}&viewcustomer&token={getAdminToken tab='AdminCustomers'}"> {$gender->name|escape:'htmlall':'UTF-8'} {$customer->firstname} {$customer->lastname}</a></span> ({l s='#'}{$customer->id})<br />
|
||||||
(<a href="mailto:{$customer->email}">{$customer->email}</a>)<br /><br />
|
(<a href="mailto:{$customer->email}">{$customer->email}</a>)<br /><br />
|
||||||
{if ($customer->isGuest())}
|
{if ($customer->isGuest())}
|
||||||
{l s='This order has been placed by a guest.'}
|
{l s='This order has been placed by a guest.'}
|
||||||
@@ -170,9 +170,9 @@
|
|||||||
{l s='Account registered:'} <b>{dateFormat date=$customer->date_add full=true}</b><br />
|
{l s='Account registered:'} <b>{dateFormat date=$customer->date_add full=true}</b><br />
|
||||||
{l s='Valid orders placed:'} <b>{$customerStats['nb_orders']}</b><br />
|
{l s='Valid orders placed:'} <b>{$customerStats['nb_orders']}</b><br />
|
||||||
{l s='Total spent since registration:'} <b>{displayPrice price=Tools::ps_round(Tools::convertPrice($customerStats['total_orders'], $currency), 2) currency=$currency->id}</b><br />
|
{l s='Total spent since registration:'} <b>{displayPrice price=Tools::ps_round(Tools::convertPrice($customerStats['total_orders'], $currency), 2) currency=$currency->id}</b><br />
|
||||||
</fieldset>
|
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
<!-- Sources block -->
|
<!-- Sources block -->
|
||||||
{if (sizeof($sources))}
|
{if (sizeof($sources))}
|
||||||
@@ -299,12 +299,12 @@
|
|||||||
<form id="formAddPayment" method="post" action="{$current_index}&vieworder&id_order={$order->id}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">
|
<form id="formAddPayment" method="post" action="{$current_index}&vieworder&id_order={$order->id}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">
|
||||||
<table class="table" width="100%" cellspacing="0" cellpadding="0">
|
<table class="table" width="100%" cellspacing="0" cellpadding="0">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="15%">
|
<col width="15%"/>
|
||||||
<col width="">
|
<col width=""/>
|
||||||
<col width="20%">
|
<col width="20%"/>
|
||||||
<col width="10%">
|
<col width="10%"/>
|
||||||
<col width="10%">
|
<col width="10%"/>
|
||||||
<col width="1%">
|
<col width="1%"/>
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -325,7 +325,7 @@
|
|||||||
<td>{displayPrice price=$payment->amount currency=$payment->id_currency}</td>
|
<td>{displayPrice price=$payment->amount currency=$payment->id_currency}</td>
|
||||||
<td>
|
<td>
|
||||||
{if $invoice = $payment->getOrderInvoice($order->id)}
|
{if $invoice = $payment->getOrderInvoice($order->id)}
|
||||||
{$invoice->getInvoiceNumberFormatted($current_id_lang)}
|
{$invoice->getInvoiceNumberFormatted($current_id_lang, $order->id_shop)}
|
||||||
{else}
|
{else}
|
||||||
{l s='No invoice'}
|
{l s='No invoice'}
|
||||||
{/if}
|
{/if}
|
||||||
@@ -404,7 +404,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<select name="payment_invoice" id="payment_invoice">
|
<select name="payment_invoice" id="payment_invoice">
|
||||||
{foreach from=$invoices_collection item=invoice}
|
{foreach from=$invoices_collection item=invoice}
|
||||||
<option value="{$invoice->id}" selected="selected">{$invoice->getInvoiceNumberFormatted($current_id_lang)}</option>
|
<option value="{$invoice->id}" selected="selected">{$invoice->getInvoiceNumberFormatted($current_id_lang, $order->id_shop)}</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
@@ -592,6 +592,7 @@
|
|||||||
<th>{l s='Product'}</th>
|
<th>{l s='Product'}</th>
|
||||||
<th style="width: 15%; text-align: center">{l s='Unit Price'} <sup>*</sup></th>
|
<th style="width: 15%; text-align: center">{l s='Unit Price'} <sup>*</sup></th>
|
||||||
<th style="width: 4%; text-align: center">{l s='Qty'}</th>
|
<th style="width: 4%; text-align: center">{l s='Qty'}</th>
|
||||||
|
{if $display_warehouse}<th style="text-align: center">{l s='Warehouse'}</th>{/if}
|
||||||
{if ($order->hasBeenPaid())}<th style="width: 3%; text-align: center">{l s='Refunded'}</th>{/if}
|
{if ($order->hasBeenPaid())}<th style="width: 3%; text-align: center">{l s='Refunded'}</th>{/if}
|
||||||
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<th style="width: 3%; text-align: center">{l s='Returned'}</th>{/if}
|
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<th style="width: 3%; text-align: center">{l s='Returned'}</th>{/if}
|
||||||
{if $stock_management}<th style="width: 10%; text-align: center">{l s='Available quantity'}</th>{/if}
|
{if $stock_management}<th style="width: 10%; text-align: center">{l s='Available quantity'}</th>{/if}
|
||||||
@@ -750,7 +751,7 @@
|
|||||||
<a href="{$link->getAdminLink('AdminCustomerThreads')|escape:'htmlall':'UTF-8'}"><b>{l s='Click here'}</b> {l s='to see all messages.'}</a><br>
|
<a href="{$link->getAdminLink('AdminCustomerThreads')|escape:'htmlall':'UTF-8'}"><b>{l s='Click here'}</b> {l s='to see all messages.'}</a><br>
|
||||||
<div id="message" style="display: {if Tools::getValue('message')}block{else}none{/if}">
|
<div id="message" style="display: {if Tools::getValue('message')}block{else}none{/if}">
|
||||||
<select name="order_message" id="order_message" onchange="orderOverwriteMessage(this, '{l s='Do you want to overwrite your existing message?'}')">
|
<select name="order_message" id="order_message" onchange="orderOverwriteMessage(this, '{l s='Do you want to overwrite your existing message?'}')">
|
||||||
<option value="0" selected="selected">-- {l s='Choose a standard message'} --</option>
|
<option value="0" selected="selected">- {l s='Choose a standard message'} -</option>
|
||||||
{foreach from=$orderMessages item=orderMessage}
|
{foreach from=$orderMessages item=orderMessage}
|
||||||
<option value="{$orderMessage['message']|escape:'htmlall':'UTF-8'}">{$orderMessage['name']}</option>
|
<option value="{$orderMessage['message']|escape:'htmlall':'UTF-8'}">{$orderMessage['name']}</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
@@ -786,8 +787,6 @@
|
|||||||
</fieldset>
|
</fieldset>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
<br /><br /><a href="{$current_index}&token={$smarty.get.token}"><img src="../img/admin/arrow2.gif" /> {l s='Back to list'}</a><br />
|
<br /><br /><a href="{$current_index}&token={$smarty.get.token}"><img src="../img/admin/arrow2.gif" /> {l s='Back to list'}</a><br />
|
||||||
{/block}
|
{/block}
|
||||||
@@ -31,6 +31,14 @@
|
|||||||
{if isset($modules_list)}
|
{if isset($modules_list)}
|
||||||
{$modules_list}
|
{$modules_list}
|
||||||
{/if}
|
{/if}
|
||||||
|
<div class="space info">
|
||||||
|
{l s='This is where you decide what payment modules are available for different variations like your customers\' currency, group, and country.'}
|
||||||
|
<br />
|
||||||
|
{l s='A check mark indicates you want the payment module available.'}
|
||||||
|
{l s='If it is not checked then this means that the Payment module is disabled.'}
|
||||||
|
<br />
|
||||||
|
{l s='Please make sure to click Save for each section.'}
|
||||||
|
</div>
|
||||||
{if $display_restrictions}
|
{if $display_restrictions}
|
||||||
<br /><h2 class="space">{l s='Payment module restrictions'}</h2>
|
<br /><h2 class="space">{l s='Payment module restrictions'}</h2>
|
||||||
{foreach $lists as $list}
|
{foreach $lists as $list}
|
||||||
|
|||||||
@@ -34,10 +34,10 @@
|
|||||||
{if $module->active}
|
{if $module->active}
|
||||||
<th>
|
<th>
|
||||||
{if $list['name_id'] != 'currency' || $module->currencies_mode == 'checkbox'}
|
{if $list['name_id'] != 'currency' || $module->currencies_mode == 'checkbox'}
|
||||||
<input type="hidden" id="checkedBox_{$list['name_id']}_{$module->name}" value="checked">
|
<input type="hidden" id="checkedBox_{$list['name_id']}_{$module->name}" value="checked"/>
|
||||||
<a href="javascript:checkPaymentBoxes('{$list['name_id']}', '{$module->name}')" style="text-decoration:none;">
|
<a href="javascript:checkPaymentBoxes('{$list['name_id']}', '{$module->name}')" style="text-decoration:none;">
|
||||||
{/if}
|
{/if}
|
||||||
<img src="{$ps_base_uri}modules/{$module->name}/logo.gif" alt="{$module->name}" title="{$module->displayName}" />
|
<img src="{$ps_base_uri}modules/{$module->name}/logo.gif" alt="{$module->name}" title="{$module->displayName}"/>
|
||||||
{if $list['name_id'] != 'currency' || $module->currencies_mode == 'checkbox'}
|
{if $list['name_id'] != 'currency' || $module->currencies_mode == 'checkbox'}
|
||||||
</a>
|
</a>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -64,11 +64,9 @@
|
|||||||
{$type = 'checkbox'}
|
{$type = 'checkbox'}
|
||||||
{/if}
|
{/if}
|
||||||
{if $type != 'null'}
|
{if $type != 'null'}
|
||||||
<input type="checkbox" name="{$module->name}_{$list['name_id']}[]" value="{$item[$list['identifier']]}"
|
<input type="{$type}" name="{$module->name}_{$list['name_id']}[]" value="{$item[$list['identifier']]}" {if $item['check_list'][$key_module] == 'checked'}checked="checked"{/if}/>
|
||||||
{if $item['check_list'][$key_module] == 'checked'}checked="checked"{/if}
|
|
||||||
/>
|
|
||||||
{else}
|
{else}
|
||||||
--
|
<input type="hidden" name="{$module->name}_{$list['name_id']}[]" value="{$item[$list['identifier']]}"/>--
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -96,4 +94,4 @@
|
|||||||
</table>
|
</table>
|
||||||
<div><input type="submit" class="button space" name="submitModule{$list['name_id']}" value="{l s='Save restrictions'}" /></div>
|
<div><input type="submit" class="button space" name="submitModule{$list['name_id']}" value="{l s='Save restrictions'}" /></div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -40,6 +40,9 @@
|
|||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{$smarty.block.parent}
|
{$smarty.block.parent}
|
||||||
|
{if $input.type == 'radio' && $input.name == 'smarty_cache'}
|
||||||
|
<a href="{$current}&token={$token}&empty_smarty_cache=1" class="clear button" href="">{l s='Clear Smarty cache & Autoload cache'}</a>
|
||||||
|
{/if}
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
{block name="description"}
|
{block name="description"}
|
||||||
@@ -186,7 +189,7 @@
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('input[name="smarty_force_compile"], input[name="smarty_cache"], input[name="smarty_console"]').change(function(){
|
$('input[name="smarty_force_compile"], input[name="smarty_cache"], input[name="smarty_console"], input[name="smarty_console_key"]').change(function(){
|
||||||
$('#smarty_up').val(1);
|
$('#smarty_up').val(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -103,11 +103,11 @@
|
|||||||
<td class="col-left"><label>{l s='Manufacturer:'}</label></td>
|
<td class="col-left"><label>{l s='Manufacturer:'}</label></td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
<select name="id_manufacturer" id="id_manufacturer">
|
<select name="id_manufacturer" id="id_manufacturer">
|
||||||
<option value="0">-- {l s='Choose (optional)'} --</option>
|
<option value="0">- {l s='Choose (optional)'} -</option>
|
||||||
{if $product->id_manufacturer}
|
{if $product->id_manufacturer}
|
||||||
<option value="{$product->id_manufacturer}" selected="selected">{$product->manufacturer_name}</option>
|
<option value="{$product->id_manufacturer}" selected="selected">{$product->manufacturer_name}</option>
|
||||||
{/if}
|
{/if}
|
||||||
<option disabled="disabled">----------</option>
|
<option disabled="disabled">-</option>
|
||||||
</select>
|
</select>
|
||||||
<a class="button bt-icon confirm_leave" style="margin-bottom:0" href="{$link->getAdminLink('AdminManufacturers')|escape:'htmlall':'UTF-8'}&addmanufacturer">
|
<a class="button bt-icon confirm_leave" style="margin-bottom:0" href="{$link->getAdminLink('AdminManufacturers')|escape:'htmlall':'UTF-8'}&addmanufacturer">
|
||||||
<img src="../img/admin/add.gif" alt="{l s='Create new manufacturer'}" title="{l s='Create new manufacturer'}" />
|
<img src="../img/admin/add.gif" alt="{l s='Create new manufacturer'}" title="{l s='Create new manufacturer'}" />
|
||||||
|
|||||||
@@ -85,7 +85,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
<select name="attribute" id="attribute" style="width: 200px;">
|
<select name="attribute" id="attribute" style="width: 200px;">
|
||||||
<option value="0">---</option>
|
<option value="0">-</option>
|
||||||
</select>
|
</select>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
@@ -252,7 +252,7 @@
|
|||||||
<li style="float: left; width: {$imageWidth}px;">
|
<li style="float: left; width: {$imageWidth}px;">
|
||||||
<input type="checkbox" name="id_image_attr[]" value="{$image.id_image}" id="id_image_attr_{$image.id_image}" />
|
<input type="checkbox" name="id_image_attr[]" value="{$image.id_image}" id="id_image_attr_{$image.id_image}" />
|
||||||
<label for="id_image_attr_{$image.id_image}" style="float: none;">
|
<label for="id_image_attr_{$image.id_image}" style="float: none;">
|
||||||
<img src="{$smarty.const._THEME_PROD_DIR_}{$image.obj->getExistingImgPath()}-small_default.jpg" alt="{$image.legend|escape:'htmlall':'UTF-8'}" title="{$image.legend|escape:'htmlall':'UTF-8'}" />
|
<img src="{$smarty.const._THEME_PROD_DIR_}{$image.obj->getExistingImgPath()}-{$imageType}.jpg" alt="{$image.legend|escape:'htmlall':'UTF-8'}" title="{$image.legend|escape:'htmlall':'UTF-8'}" />
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
|||||||
@@ -29,6 +29,19 @@
|
|||||||
<h4>{if isset($id_image)}{l s='Edit this product image'}{else}{l s='Add a new image to this product'}{/if}</h4> <div class="separation"></div><br />
|
<h4>{if isset($id_image)}{l s='Edit this product image'}{else}{l s='Add a new image to this product'}{/if}</h4> <div class="separation"></div><br />
|
||||||
|
|
||||||
<table cellpadding="5" style="width:100%">
|
<table cellpadding="5" style="width:100%">
|
||||||
|
<tr>
|
||||||
|
<td class="col-left">
|
||||||
|
<label>{l s='Legend:'}</label>
|
||||||
|
</td>
|
||||||
|
<td style="padding-bottom:5px;" class="translatable">
|
||||||
|
{foreach from=$languages item=language}
|
||||||
|
<div class="lang_{$language.id_lang}" style="{if !$language.is_default}display: none;{/if} float: left;">
|
||||||
|
<input class="updateCurrentText" size="43" type="text" {if !$product->id}disabled="disabled"{/if} id="legend_{$language.id_lang}" name="legend_{$language.id_lang}" value="{$product->name[$language.id_lang]|escape:'htmlall':'UTF-8'}"/>
|
||||||
|
<span class="hint" name="help_box">{l s='Invalid characters:'} <>;=#{}<span class="hint-pointer"> </span></span>
|
||||||
|
</div>
|
||||||
|
{/foreach}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="col-left"><label class="file_upload_label">{l s='File:'}</label></td>
|
<td class="col-left"><label class="file_upload_label">{l s='File:'}</label></td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
@@ -57,6 +70,7 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr class="nodrag nodrop">
|
<tr class="nodrag nodrop">
|
||||||
<th style="width: 100px;">{l s='Image'}</th>
|
<th style="width: 100px;">{l s='Image'}</th>
|
||||||
|
<th>{l s='Legend'}</th>
|
||||||
<th>{l s='Position'}</th>
|
<th>{l s='Position'}</th>
|
||||||
{if $shops}
|
{if $shops}
|
||||||
{foreach from=$shops item=shop}
|
{foreach from=$shops item=shop}
|
||||||
@@ -78,9 +92,10 @@
|
|||||||
<tr id="image_id">
|
<tr id="image_id">
|
||||||
<td style="padding: 4px;">
|
<td style="padding: 4px;">
|
||||||
<a href="{$smarty.const._THEME_PROD_DIR_}image_path.jpg" class="fancybox">
|
<a href="{$smarty.const._THEME_PROD_DIR_}image_path.jpg" class="fancybox">
|
||||||
<img src="{$smarty.const._THEME_PROD_DIR_}en-default-small_default.jpg" alt="image_id" title="image_id" />
|
<img src="{$smarty.const._THEME_PROD_DIR_}{$iso_lang}-default-{$imageType}.jpg" alt="legend" title="legend" />
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
|
<td>legend</td>
|
||||||
<td id="td_image_id" class="pointer dragHandle center positionImage">
|
<td id="td_image_id" class="pointer dragHandle center positionImage">
|
||||||
image_position
|
image_position
|
||||||
</td>
|
</td>
|
||||||
@@ -101,7 +116,6 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var upbutton = '{l s='Upload an image'}';
|
var upbutton = '{l s='Upload an image'}';
|
||||||
var token = '{$token}';
|
var token = '{$token}';
|
||||||
@@ -128,7 +142,7 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
assoc = false;
|
assoc = false;
|
||||||
imageLine({$image->id}, "{$image->getExistingImgPath()}", {$image->position}, "{if $image->cover}enabled{else}forbbiden{/if}", assoc);
|
imageLine({$image->id}, "{$image->getExistingImgPath()}", {$image->position}, "{if $image->cover}enabled{else}forbbiden{/if}", assoc, "{$image->legend[$default_language]|@addcslashes:'\"'}");
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{literal}
|
{literal}
|
||||||
$("#imageTable").tableDnD(
|
$("#imageTable").tableDnD(
|
||||||
@@ -147,20 +161,20 @@
|
|||||||
updateImagePosition(image_up);
|
updateImagePosition(image_up);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var filecheck = 1;
|
var filecheck = 1;
|
||||||
var uploader = new qq.FileUploader(
|
var params = new Array;
|
||||||
|
params['id_product'] = {/literal}{$id_product|intval}{literal};
|
||||||
|
params['id_category'] = {/literal}{$id_category_default|intval}{literal};
|
||||||
|
params['token'] = "{/literal}{$token}{literal}";
|
||||||
|
params['tab'] = "AdminProducts";
|
||||||
|
params['action'] = "addImage";
|
||||||
|
params['ajax'] = 1;
|
||||||
|
uploader = new qq.FileUploader(
|
||||||
{
|
{
|
||||||
element: document.getElementById("file-uploader"),
|
element: document.getElementById("file-uploader"),
|
||||||
action: "ajax-tab.php",
|
action: "ajax-tab.php",
|
||||||
debug: false,
|
debug: false,
|
||||||
params: {
|
|
||||||
id_product : {/literal}{$id_product}{literal},
|
|
||||||
id_category : {/literal}{$id_category_default}{literal},
|
|
||||||
token : "{/literal}{$token}{literal}",
|
|
||||||
tab : "AdminProducts",
|
|
||||||
action : 'addImage',
|
|
||||||
ajax: 1
|
|
||||||
},
|
|
||||||
onComplete: function(id, fileName, responseJSON)
|
onComplete: function(id, fileName, responseJSON)
|
||||||
{
|
{
|
||||||
var percent = ((filecheck * 100) / nbfile);
|
var percent = ((filecheck * 100) / nbfile);
|
||||||
@@ -185,7 +199,7 @@
|
|||||||
cover = "forbbiden";
|
cover = "forbbiden";
|
||||||
if (responseJSON.cover == "1")
|
if (responseJSON.cover == "1")
|
||||||
cover = "enabled";
|
cover = "enabled";
|
||||||
imageLine(responseJSON.id, responseJSON.path, responseJSON.position, cover, responseJSON.shops)
|
imageLine(responseJSON.id, responseJSON.path, responseJSON.position, cover, responseJSON.shops, responseJSON.legend[{/literal}{$default_language|intval}{literal}])
|
||||||
$("#imageTable tr:last").after(responseJSON.html);
|
$("#imageTable tr:last").after(responseJSON.html);
|
||||||
$("#countImage").html(parseInt($("#countImage").html()) + 1);
|
$("#countImage").html(parseInt($("#countImage").html()) + 1);
|
||||||
$("#img" + id).remove();
|
$("#img" + id).remove();
|
||||||
@@ -198,6 +212,12 @@
|
|||||||
},
|
},
|
||||||
onSubmit: function(id, filename)
|
onSubmit: function(id, filename)
|
||||||
{
|
{
|
||||||
|
$('input[id^="legend_"]').each(function()
|
||||||
|
{
|
||||||
|
id = $(this).prop("id").replace("legend_", "legend[") + "]";
|
||||||
|
params[id] = $(this).val();
|
||||||
|
});
|
||||||
|
uploader.setParams(params);
|
||||||
$("#imageTable").show();
|
$("#imageTable").show();
|
||||||
$("#listImage").append("<li id='img"+id+"'><div class=\"float\" >" + filename + "</div></div><a style=\"margin-left:10px\"href=\"javascript:delQueue(" + id +");\"><img src=\"../img/admin/disabled.gif\" alt=\"\" border=\"0\"></a><p class=\"errorImg\"></p></li>");
|
$("#listImage").append("<li id='img"+id+"'><div class=\"float\" >" + filename + "</div></div><a style=\"margin-left:10px\"href=\"javascript:delQueue(" + id +");\"><img src=\"../img/admin/disabled.gif\" alt=\"\" border=\"0\"></a><p class=\"errorImg\"></p></li>");
|
||||||
}
|
}
|
||||||
@@ -309,16 +329,18 @@
|
|||||||
$("#img" + id).remove();
|
$("#img" + id).remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
function imageLine(id, path, position, cover, shops)
|
function imageLine(id, path, position, cover, shops, legend)
|
||||||
{
|
{
|
||||||
line = $("#lineType").html();
|
line = $("#lineType").html();
|
||||||
line = line.replace(/image_id/g, id);
|
line = line.replace(/image_id/g, id);
|
||||||
line = line.replace(/en-default/g, path);
|
line = line.replace(/[a-z]{0,2}-default/g, path);
|
||||||
line = line.replace(/image_path/g, path);
|
line = line.replace(/image_path/g, path);
|
||||||
line = line.replace(/image_position/g, position);
|
line = line.replace(/image_position/g, position);
|
||||||
|
line = line.replace(/legend/g, legend);
|
||||||
line = line.replace(/blank/g, cover);
|
line = line.replace(/blank/g, cover);
|
||||||
line = line.replace(/<tbody>/gi, "");
|
line = line.replace(/<tbody>/gi, "");
|
||||||
line = line.replace(/<\/tbody>/gi, "");
|
line = line.replace(/<\/tbody>/gi, "");
|
||||||
|
|
||||||
if (shops != false)
|
if (shops != false)
|
||||||
{
|
{
|
||||||
$.each(shops, function(key, value){
|
$.each(shops, function(key, value){
|
||||||
@@ -326,6 +348,7 @@
|
|||||||
line = line.replace('id="' + key + '' + id + '"','id="' + key + '' + id + '" checked=checked');
|
line = line.replace('id="' + key + '' + id + '"','id="' + key + '' + id + '" checked=checked');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#imageList").append(line);
|
$("#imageList").append(line);
|
||||||
}
|
}
|
||||||
$('.fancybox').fancybox();
|
$('.fancybox').fancybox();
|
||||||
|
|||||||
@@ -166,7 +166,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="redirect_product_options" style="display:none">
|
<tr class="redirect_product_options" style="display:none">
|
||||||
<td class="col-left">
|
<td class="col-left">
|
||||||
{include file="controllers/products/multishop/checkbox.tpl" field="active" type="radio" onclick=""}
|
{include file="controllers/products/multishop/checkbox.tpl" field="redirect_type" type="radio" onclick=""}
|
||||||
<label class="text">{l s='Redirect:'}</label>
|
<label class="text">{l s='Redirect:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="redirect_product_options redirect_product_options_product_choise" style="display:none">
|
<tr class="redirect_product_options redirect_product_options_product_choise" style="display:none">
|
||||||
<td class="col-left">
|
<td class="col-left">
|
||||||
{include file="controllers/products/multishop/checkbox.tpl" field="active" type="radio" onclick=""}
|
{include file="controllers/products/multishop/checkbox.tpl" field="id_product_redirected" type="radio" onclick=""}
|
||||||
<label class="text">{l s='Related product:'}</label>
|
<label class="text">{l s='Related product:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
@@ -375,8 +375,19 @@
|
|||||||
<td style="padding-bottom:5px;" class="translatable">
|
<td style="padding-bottom:5px;" class="translatable">
|
||||||
{foreach from=$languages item=language}
|
{foreach from=$languages item=language}
|
||||||
<div class="lang_{$language.id_lang}" style="{if !$language.is_default}display: none;{/if}float: left;">
|
<div class="lang_{$language.id_lang}" style="{if !$language.is_default}display: none;{/if}float: left;">
|
||||||
|
{literal}
|
||||||
|
<script type="text/javascript">
|
||||||
|
$().ready(function () {
|
||||||
|
var input_id = '{/literal}tags_{$language.id_lang}{literal}';
|
||||||
|
$('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag' js=1}{literal}'});
|
||||||
|
$({/literal}'#{$table}{literal}_form').submit( function() {
|
||||||
|
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{/literal}
|
||||||
<input size="55" type="text" id="tags_{$language.id_lang}" name="tags_{$language.id_lang}"
|
<input size="55" type="text" id="tags_{$language.id_lang}" name="tags_{$language.id_lang}"
|
||||||
value="{$product->getTags($language.id_lang, true)|htmlentitiesUTF8}" />
|
value="{$product->getTags($language.id_lang, true)|htmlentitiesUTF8}" class="tagify" />
|
||||||
<span class="hint" name="help_box">{l s='Forbidden characters:'} !<;>;?=+#"°{}_$%<span class="hint-pointer"> </span></span>
|
<span class="hint" name="help_box">{l s='Forbidden characters:'} !<;>;?=+#"°{}_$%<span class="hint-pointer"> </span></span>
|
||||||
</div>
|
</div>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
<input size="30" type="text" id="{$input_name}_{$language.id_lang}"
|
<input size="30" type="text" id="{$input_name}_{$language.id_lang}"
|
||||||
name="{$input_name}_{$language.id_lang}"
|
name="{$input_name}_{$language.id_lang}"
|
||||||
value="{$input_value[$language.id_lang]|htmlentitiesUTF8|default:''}"
|
value="{$input_value[$language.id_lang]|htmlentitiesUTF8|default:''}"
|
||||||
onkeyup="if (isArrowKey(event)) return ;updateFriendlyURL();"/>
|
onkeyup="if (isArrowKey(event)) return ;updateFriendlyURL();" onblur="updateLinkRewrite();"/>
|
||||||
</div>
|
</div>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -24,8 +24,8 @@
|
|||||||
*}
|
*}
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var msg_select_one = "{l s="Please select at least one product." js=1}";
|
var msg_select_one = "{l s='Please select at least one product.' js=1}";
|
||||||
var msg_set_quantity = "{l s="Please set a quantity to add a product." js=1}";
|
var msg_set_quantity = "{l s='Please set a quantity to add a product.' js=1}";
|
||||||
</script>
|
</script>
|
||||||
<input type="hidden" name="submitted_tabs[]" value="Pack" />
|
<input type="hidden" name="submitted_tabs[]" value="Pack" />
|
||||||
<h4>{l s='Pack'}</h4>
|
<h4>{l s='Pack'}</h4>
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ $(document).ready(function () {
|
|||||||
</tr>
|
</tr>
|
||||||
<tr {if !$ps_use_ecotax} style="display:none;"{/if}>
|
<tr {if !$ps_use_ecotax} style="display:none;"{/if}>
|
||||||
<td class="col-left">
|
<td class="col-left">
|
||||||
{include file="controllers/products/multishop/checkbox.tpl" field="ecot" type="default"}
|
{include file="controllers/products/multishop/checkbox.tpl" field="ecotax" type="default"}
|
||||||
<label>{l s='Eco-tax (tax incl.):'}</label>
|
<label>{l s='Eco-tax (tax incl.):'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -223,7 +223,7 @@ $(document).ready(function () {
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="col-left"><label><b>{l s='Final retail price:'}</b></label></td>
|
<td class="col-left"><label><b>{l s='Final retail price:'}</b></label></td>
|
||||||
<td>
|
<td>
|
||||||
<span {if !$country_display_tax_label}style="display:none"{/if} >
|
<span>
|
||||||
{$currency->prefix}<span id="finalPrice" style="font-weight: bold;">0.00</span>{$currency->suffix}<span {if $ps_tax}style="display:none;"{/if}> ({l s='tax incl.'})</span>
|
{$currency->prefix}<span id="finalPrice" style="font-weight: bold;">0.00</span>{$currency->suffix}<span {if $ps_tax}style="display:none;"{/if}> ({l s='tax incl.'})</span>
|
||||||
</span>
|
</span>
|
||||||
<span {if $ps_tax}style="display:none;"{/if} >
|
<span {if $ps_tax}style="display:none;"{/if} >
|
||||||
@@ -249,7 +249,7 @@ $(document).ready(function () {
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var product_prices = new Array();
|
var product_prices = new Array();
|
||||||
{foreach from=$combinations item='combination'}
|
{foreach from=$combinations item='combination'}
|
||||||
product_prices['{$combination.id_product_attribute}'] = '{$combination.price}';
|
product_prices['{$combination.id_product_attribute}'] = '{$combination.price|@addcslashes:'\''}';
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</script>
|
</script>
|
||||||
<div id="add_specific_price" style="display: none;">
|
<div id="add_specific_price" style="display: none;">
|
||||||
@@ -375,7 +375,7 @@ $(document).ready(function () {
|
|||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" name="sp_reduction" value="0.00" size="11" />
|
<input type="text" name="sp_reduction" value="0.00" size="11" />
|
||||||
<select name="sp_reduction_type">
|
<select name="sp_reduction_type">
|
||||||
<option selected="selected">---</option>
|
<option selected="selected">-</option>
|
||||||
<option value="amount">{l s='Amount'}</option>
|
<option value="amount">{l s='Amount'}</option>
|
||||||
<option value="percentage">{l s='Percentage'}</option>
|
<option value="percentage">{l s='Percentage'}</option>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -71,7 +71,7 @@
|
|||||||
<label>{l s='Carriers:'}</label>
|
<label>{l s='Carriers:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td class="padding-bottom:5px;">
|
<td class="padding-bottom:5px;">
|
||||||
<select name="carriers[]" id="carriers_restriction" multiple="multiple" size="4" style="height:100px;width:200px;">
|
<select name="carriers[]" id="carriers_restriction" multiple="multiple" size="4" style="height:100px;width:300px;">
|
||||||
{foreach $carrier_list as $carrier}
|
{foreach $carrier_list as $carrier}
|
||||||
<option value="{$carrier.id_reference}" {if isset($carrier.selected) && $carrier.selected}selected="selected"{/if}>{$carrier.name}</option>
|
<option value="{$carrier.id_reference}" {if isset($carrier.selected) && $carrier.selected}selected="selected"{/if}>{$carrier.name}</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
@@ -88,4 +88,4 @@
|
|||||||
$('#carriers_restriction option').each(function () { $(this).removeAttr('selected')});
|
$('#carriers_restriction option').each(function () { $(this).removeAttr('selected')});
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -75,7 +75,7 @@
|
|||||||
<p>{l s='Click "Save and Stay" after changing selected suppliers to display the associated product references.'}</p>
|
<p>{l s='Click "Save and Stay" after changing selected suppliers to display the associated product references.'}</p>
|
||||||
<div id="suppliers_accordion" style="margin-top:10px; display:block;">
|
<div id="suppliers_accordion" style="margin-top:10px; display:block;">
|
||||||
{foreach from=$associated_suppliers item=supplier}
|
{foreach from=$associated_suppliers item=supplier}
|
||||||
<h3 style="margin-bottom:0;"><a href="#">{$supplier->name}</a></h3>
|
<h3 style="margin-bottom:0;"><a href="#">{if isset($supplier->name)}{$supplier->name}{/if}</a></h3>
|
||||||
<div style="display:block;">
|
<div style="display:block;">
|
||||||
|
|
||||||
<table cellpadding="10" cellspacing="0" class="table">
|
<table cellpadding="10" cellspacing="0" class="table">
|
||||||
|
|||||||
@@ -58,6 +58,7 @@
|
|||||||
$('#file_missing').hide();
|
$('#file_missing').hide();
|
||||||
$('#virtual_product_name').attr('value', fileName);
|
$('#virtual_product_name').attr('value', fileName);
|
||||||
$("#upload-confirmation .error").remove();
|
$("#upload-confirmation .error").remove();
|
||||||
|
$('#upload-confirmation div').find('span').remove();
|
||||||
$('#upload-confirmation div').prepend('<span>{l s='The file'} "<a class="link" href="get-file-admin.php?file='+msg+'&filename='+fileName+'">'+fileName+'</a>" {l s='has successfully been uploaded'}' +
|
$('#upload-confirmation div').prepend('<span>{l s='The file'} "<a class="link" href="get-file-admin.php?file='+msg+'&filename='+fileName+'">'+fileName+'</a>" {l s='has successfully been uploaded'}' +
|
||||||
'<input type="hidden" id="virtual_product_filename" name="virtual_product_filename" value="' + msg + '" /></span>');
|
'<input type="hidden" id="virtual_product_filename" name="virtual_product_filename" value="' + msg + '" /></span>');
|
||||||
$("#upload-confirmation").show();
|
$("#upload-confirmation").show();
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
{l s='The field `request_uri` is the URL from which the customers come to your website.'}<br />
|
{l s='The field `request_uri` is the URL from which the customers come to your website.'}<br />
|
||||||
{l s='For example, if the visitor accesses a product page, the URL will be'} "{$uri}music-ipods/1-ipod-nano.html".<br />
|
{l s='For example, if the visitor accesses a product page, the URL will be'} "{$uri}music-ipods/1-ipod-nano.html".<br />
|
||||||
{l s='This is helpful because you can add tags or tokens in the links pointing to your website.'}
|
{l s='This is helpful because you can add tags or tokens in the links pointing to your website.'}
|
||||||
{l s='For example, you can post a link "%dindex.php?prestashop" in the forum and get statistics by entering "%prestashop" in the field `request_uri`. '}
|
{l s='For example, you can post a link "%1$sindex.php?prestashop" in the forum and get statistics by entering "%%prestashop" in the field `request_uri`. ' sprintf=[$uri]}
|
||||||
{l s='This method is more reliable than the `http_referer`, but there is one disadvantage. If a search engine references a page with your link, then it will be displayed in the search results and you will not only have visitors from the forum, but also those from the search engine.'}
|
{l s='This method is more reliable than the `http_referer`, but there is one disadvantage. If a search engine references a page with your link, then it will be displayed in the search results and you will not only have visitors from the forum, but also those from the search engine.'}
|
||||||
</li>
|
</li>
|
||||||
<br />
|
<br />
|
||||||
|
|||||||
@@ -112,7 +112,7 @@
|
|||||||
<label>{l s='Filter by product:'}</label>
|
<label>{l s='Filter by product:'}</label>
|
||||||
<div class="margin-left">
|
<div class="margin-left">
|
||||||
<select id="selectProduct" name="selectProduct" style="width: 200px;" onfocus="fillProducts();" onchange="updateConversionRate(this.value);">
|
<select id="selectProduct" name="selectProduct" style="width: 200px;" onfocus="fillProducts();" onchange="updateConversionRate(this.value);">
|
||||||
<option value="0" selected="selected">-- {l s='All'} --</option>
|
<option value="0" selected="selected">- {l s='All'} -</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<br class="clear" />
|
<br class="clear" />
|
||||||
|
|||||||
@@ -90,7 +90,7 @@
|
|||||||
var table = $('#selectTables select').val();
|
var table = $('#selectTables select').val();
|
||||||
|
|
||||||
if (!table)
|
if (!table)
|
||||||
jAlert("{l s='Please choose a table.' js='1'}");
|
jAlert("{l s='Please choose a table.' js=1}");
|
||||||
else
|
else
|
||||||
AddRequestSql(table);
|
AddRequestSql(table);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,105 +0,0 @@
|
|||||||
{*
|
|
||||||
* 2007-2013 PrestaShop
|
|
||||||
*
|
|
||||||
* NOTICE OF LICENSE
|
|
||||||
*
|
|
||||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
|
||||||
* that is bundled with this package in the file LICENSE.txt.
|
|
||||||
* It is also available through the world-wide-web at this URL:
|
|
||||||
* http://opensource.org/licenses/afl-3.0.php
|
|
||||||
* If you did not receive a copy of the license and are unable to
|
|
||||||
* obtain it through the world-wide-web, please send an email
|
|
||||||
* to license@prestashop.com so we can send you a copy immediately.
|
|
||||||
*
|
|
||||||
* DISCLAIMER
|
|
||||||
*
|
|
||||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
|
||||||
* versions in the future. If you wish to customize PrestaShop for your
|
|
||||||
* needs please refer to http://www.prestashop.com for more information.
|
|
||||||
*
|
|
||||||
* @author PrestaShop SA <contact@prestashop.com>
|
|
||||||
* @copyright 2007-2013 PrestaShop SA
|
|
||||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
|
||||||
*}
|
|
||||||
|
|
||||||
{$content}
|
|
||||||
<br /><br />
|
|
||||||
<h2>{l s='Fees by carrier, geographical zone and ranges'}</h2>
|
|
||||||
<form action="{$action_fees}" id="fees" name="fees" method="post">
|
|
||||||
<fieldset>
|
|
||||||
<legend><img src="../img/admin/delivery.gif" />{l s='Fees'}</legend>
|
|
||||||
{if empty($carriers)}
|
|
||||||
{l s='If you only have free carriers, there\'s no need to configure delivery prices.'}
|
|
||||||
{else}
|
|
||||||
<b>{l s='Carrier:'} </b>
|
|
||||||
<select name="id_carrier2" onchange="$('#fees').attr('action', $('#fees').attr('action')+'&id_carrier='+$(this).attr('value')+'#fees'); $('#fees').submit();">
|
|
||||||
{foreach $carriers AS $carrier}
|
|
||||||
<option value="{$carrier['id_carrier']|intval}" {if $carrier['id_carrier'] == $id_carrier} selected="selected"{/if}>{$carrier['name']}</option>
|
|
||||||
{/foreach}
|
|
||||||
</select><br />
|
|
||||||
|
|
||||||
<table class="table space" cellpadding="0" cellspacing="0">
|
|
||||||
<tr>
|
|
||||||
<th>{l s='Zone / Range'}</th>
|
|
||||||
{if !$carrierSelected->is_free}
|
|
||||||
{foreach $ranges AS $range}
|
|
||||||
<th style="font-size: 11px;">{$range['delimiter1']|floatval}{$suffix} {l s='to'} {$range['delimiter2']|floatval}{$suffix}</th>
|
|
||||||
{/foreach}
|
|
||||||
{/if}
|
|
||||||
</tr>
|
|
||||||
{if sizeof($ranges) && !$carrierSelected->is_free}
|
|
||||||
{if sizeof($zones) > 1}
|
|
||||||
<tr>
|
|
||||||
<th style="height: 30px;">{l s='All'}</th>
|
|
||||||
{foreach $ranges AS $range}
|
|
||||||
<td class="center">
|
|
||||||
{$currency->getSign('left')}
|
|
||||||
<input type="text" id="fees_all_{$range[$rangeIdentifier]}" onchange="this.value = this.value.replace(/,/g, '.');" onkeyup="if ((event.keyCode||event.which) != 9){ spreadFees({$range[$rangeIdentifier]})}" style="width: 45px;" />
|
|
||||||
{$currency->getSign('right')} {l s='(tax excl.)'}
|
|
||||||
</td>
|
|
||||||
{/foreach}
|
|
||||||
</tr>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
{foreach $zones AS $zone}
|
|
||||||
<tr>
|
|
||||||
<th style="height: 30px;">{$zone['name']}</th>
|
|
||||||
{foreach $ranges AS $range}
|
|
||||||
{if isset($deliveryArray[$zone['id_zone']][$id_carrier][$range[$rangeIdentifier]])}
|
|
||||||
{$price = $deliveryArray[$zone['id_zone']][$id_carrier][$range[$rangeIdentifier]]}
|
|
||||||
{else}
|
|
||||||
{$price = '0.00'}
|
|
||||||
{/if}
|
|
||||||
<td class="center">
|
|
||||||
{$currency->getSign('left')}
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
class="fees_{$range[$rangeIdentifier]}"
|
|
||||||
onchange="this.value = this.value.replace(/,/g, '.');" name="fees_{$zone['id_zone']}_{$range[$rangeIdentifier]}" onkeyup="clearAllFees({$range[$rangeIdentifier]})"
|
|
||||||
value="{$price|string_format:"%.6f"}"
|
|
||||||
style="width: 45px;"
|
|
||||||
/>
|
|
||||||
{$currency->getSign('right')} {l s='(tax excl.)'}
|
|
||||||
</td>
|
|
||||||
{/foreach}
|
|
||||||
</tr>
|
|
||||||
{/foreach}
|
|
||||||
{/if}
|
|
||||||
<tr>
|
|
||||||
<td colspan="{$ranges|sizeof + 1}" class="center" style="border-bottom: none; height: 40px;">
|
|
||||||
<input type="hidden" name="submitFees{$table}" value="1" />
|
|
||||||
{if sizeof($ranges) && !$carrierSelected->is_free}
|
|
||||||
<input type="submit" value="{l s=' Save '}" class="button" />
|
|
||||||
{else if $carrierSelected->is_free}
|
|
||||||
{l s='This is a free carrier'}
|
|
||||||
{else}
|
|
||||||
{l s='No ranges is set for this carrier'}
|
|
||||||
{/if}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
{/if}
|
|
||||||
<input type="hidden" name="id_carrier" value="{$id_carrier}" />
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
+1
-1
@@ -24,7 +24,7 @@
|
|||||||
*}
|
*}
|
||||||
<a href="{$href}" class="delete"
|
<a href="{$href}" class="delete"
|
||||||
{if in_array($id_shop, $shops_having_dependencies)}
|
{if in_array($id_shop, $shops_having_dependencies)}
|
||||||
onclick="jAlert('{l s='You cannot delete this shop\'s (customer and/or order dependency)' js='1'}'); return false;"
|
onclick="jAlert('{l s='You cannot delete this shop\'s (customer and/or order dependency)' js=1}'); return false;"
|
||||||
{elseif isset($confirm)}
|
{elseif isset($confirm)}
|
||||||
onclick="if (confirm('{$confirm}')){ return true; } else { event.stopPropagation(); event.preventDefault();};"
|
onclick="if (confirm('{$confirm}')){ return true; } else { event.stopPropagation(); event.preventDefault();};"
|
||||||
{/if} title="{$action}">
|
{/if} title="{$action}">
|
||||||
|
|||||||
+10
-3
@@ -41,7 +41,7 @@
|
|||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<select id="id_category" name="id_category">
|
<select id="id_category" name="id_category">
|
||||||
{foreach from=$categories item='category'}
|
{foreach from=$categories item='category'}
|
||||||
<option value="{$category.id_category}">{$category.name}</option>
|
<option value="{$category.id_category|intval}">({$category.id_category|intval}) {$category.name}</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</select>
|
</select>
|
||||||
<a class="button bt-icon" href="#" id="add_condition_category">
|
<a class="button bt-icon" href="#" id="add_condition_category">
|
||||||
@@ -161,6 +161,13 @@ function add_condition(id_condition_group, type, value)
|
|||||||
function delete_condition(condition)
|
function delete_condition(condition)
|
||||||
{
|
{
|
||||||
delete conditions[condition];
|
delete conditions[condition];
|
||||||
|
|
||||||
|
to_delete = $('#'+condition).prev();
|
||||||
|
if ($(to_delete).children().hasClass('btn_delete_condition'))
|
||||||
|
$(to_delete).remove();
|
||||||
|
else
|
||||||
|
$('#'+condition).next().remove();
|
||||||
|
|
||||||
$('#'+condition).remove();
|
$('#'+condition).remove();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -178,7 +185,7 @@ function new_condition_group()
|
|||||||
function appendConditionToGroup(html)
|
function appendConditionToGroup(html)
|
||||||
{
|
{
|
||||||
if ($('#condition_group_'+current_id_condition_group+' table tbody tr').length > 0)
|
if ($('#condition_group_'+current_id_condition_group+' table tbody tr').length > 0)
|
||||||
$('#condition_group_'+current_id_condition_group+' table tbody').append('<tr><td align="center" colspan="3"><b>{l s='AND' js=1}</b></td></tr>');
|
$('#condition_group_'+current_id_condition_group+' table tbody').append('<tr><td align="center" class="btn_delete_condition" colspan="3"><b>{l s='AND' js=1}</b></td></tr>');
|
||||||
$('#condition_group_'+current_id_condition_group+' table tbody').append(html);
|
$('#condition_group_'+current_id_condition_group+' table tbody').append(html);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -284,7 +291,7 @@ $(document).ready(function() {
|
|||||||
$('#id_attribute_group option[value="{$condition.id_attribute_group}"]').attr('selected', true);
|
$('#id_attribute_group option[value="{$condition.id_attribute_group}"]').attr('selected', true);
|
||||||
$('#id_attribute_{$condition.id_attribute_group} option[value="{$condition.value}"]').attr('selected', true);
|
$('#id_attribute_{$condition.id_attribute_group} option[value="{$condition.value}"]').attr('selected', true);
|
||||||
{elseif $condition.type == 'feature'}
|
{elseif $condition.type == 'feature'}
|
||||||
$('#id_feature[value="{$condition.id_feature}"]').attr('selected', true);
|
$('#id_feature option[value="{$condition.id_feature}"]').attr('selected', true);
|
||||||
$('#id_feature_{$condition.id_feature} option[value="{$condition.value}"]').attr('selected', true);
|
$('#id_feature_{$condition.id_feature} option[value="{$condition.value}"]').attr('selected', true);
|
||||||
{else}
|
{else}
|
||||||
$('#id_{$condition.type} option[value="{$condition.value}"]').attr('selected', true);
|
$('#id_{$condition.type} option[value="{$condition.value}"]').attr('selected', true);
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
<div id="statsContainer">
|
<div id="statsContainer">
|
||||||
<div id="calendar">
|
<div id="calendar">
|
||||||
<form action="{$current}&token={$token}{if $action && $table}&{$action|escape}{$table|escape}{/if}{if $identifier && $id}&{$identifier|escape}={$id|escape}{/if}" method="post" id="calendar_form" name="calendar_form">
|
<form action="{$current}&token={$token}{if $action && $table}&{$action|escape}{$table|escape}{/if}{if $identifier && $id}&{$identifier|escape}={$id|escape}{/if}{if isset($smarty.get.module)}&module={$smarty.get.module|escape}{/if}{if isset($smarty.get.id_product)}&id_product={$smarty.get.id_product|escape}{/if}" method="post" id="calendar_form" name="calendar_form">
|
||||||
<input type="submit" name="submitDateDay" class="button submitDateDay" value="{$translations.Day}">
|
<input type="submit" name="submitDateDay" class="button submitDateDay" value="{$translations.Day}">
|
||||||
<input type="submit" name="submitDateMonth" class="button submitDateMonth" value="{$translations.Month}">
|
<input type="submit" name="submitDateMonth" class="button submitDateMonth" value="{$translations.Month}">
|
||||||
<input type="submit" name="submitDateYear" class="button submitDateYear" value="{$translations.Year}">
|
<input type="submit" name="submitDateYear" class="button submitDateYear" value="{$translations.Year}">
|
||||||
@@ -51,4 +51,4 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -30,9 +30,9 @@
|
|||||||
function ajaxStoreStates(id_state_selected)
|
function ajaxStoreStates(id_state_selected)
|
||||||
{
|
{
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "ajax.php",
|
url: "index.php",
|
||||||
cache: false,
|
cache: false,
|
||||||
data: "ajaxStates=1&id_country="+$('#PS_SHOP_COUNTRY_ID').val() + "&id_state=" + $('#PS_SHOP_STATE_ID').val(),
|
data: "ajax=1&tab=AdminStates&token={getAdminToken tab='AdminStates'}&action=states&id_country="+$('#PS_SHOP_COUNTRY_ID').val() + "&id_state=" + $('#PS_SHOP_STATE_ID').val(),
|
||||||
success: function(html)
|
success: function(html)
|
||||||
{
|
{
|
||||||
if (html == 'false')
|
if (html == 'false')
|
||||||
|
|||||||
@@ -138,7 +138,7 @@
|
|||||||
// check if it's possible to add the product
|
// check if it's possible to add the product
|
||||||
if (product_infos == null || $('#cur_product_name').val() == '')
|
if (product_infos == null || $('#cur_product_name').val() == '')
|
||||||
{
|
{
|
||||||
jAlert('{l s='Please select at least one product.' js='1'}');
|
jAlert('{l s='Please select at least one product.' js=1}');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -54,7 +54,7 @@ $(document).ready(function() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="submit" id="_form_submit_btn" value="{l s='Save'}" name="submitChangestate" class="button" style="display: none;">
|
<input type="submit" id="{$table}_form_submit_btn" value="{l s='Save'}" name="submitChangestate" class="button" style="display: none;">
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -60,9 +60,9 @@
|
|||||||
$("#states-label").hide();
|
$("#states-label").hide();
|
||||||
} else {
|
} else {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "ajax.php",
|
url: "index.php",
|
||||||
cache: false,
|
cache: false,
|
||||||
data: "ajaxStates=1&id_country="+id_country+"&id_state="+id_state+"&empty_value={l s='All'}",
|
data: "ajax=1&tab=AdminStates&token={getAdminToken tab='AdminStates'}&action=states&id_country="+id_country+"&id_state="+id_state+"&empty_value={l s='All'}",
|
||||||
success: function(html){
|
success: function(html){
|
||||||
if (html == "false")
|
if (html == "false")
|
||||||
{
|
{
|
||||||
@@ -88,10 +88,10 @@
|
|||||||
{
|
{
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: 'ajax.php',
|
url: 'index.php',
|
||||||
async: true,
|
async: true,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
data: 'ajaxStates=1&ajaxUpdateTaxRule=1&id_tax_rule='+id_tax_rule,
|
data: 'ajax=1&tab=AdminTaxRulesGroup&token={getAdminToken tab='AdminTaxRulesGroup'}&ajaxStates=1&action=updateTaxRule&id_tax_rule='+id_tax_rule,
|
||||||
success: function(data){
|
success: function(data){
|
||||||
$('#tax_rule_form').show();
|
$('#tax_rule_form').show();
|
||||||
$('#id_tax_rule').val(data.id);
|
$('#id_tax_rule').val(data.id);
|
||||||
|
|||||||
+9
-9
@@ -33,22 +33,22 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<form method="post" action="{$currentIndex}&{$identifier}&token={$token}&id_tax_rules_group={$id_tax_rules_group}&updatetax_rules_group#{$table}" class="form">
|
<form method="post" action="{$currentIndex}&{$identifier}&token={$token}&id_tax_rules_group={$id_tax_rules_group}&updatetax_rules_group#{$table}" class="form">
|
||||||
<input type="hidden" id="submitFilter{$table}" name="submitFilter{$table}" value="0"/>
|
<input type="hidden" id="submitFilter{$list_id}" name="submitFilter{$list_id}" value="0"/>
|
||||||
<table class="table_grid">
|
<table class="table_grid">
|
||||||
<tr>
|
<tr>
|
||||||
<td style="vertical-align: bottom;">
|
<td style="vertical-align: bottom;">
|
||||||
<span style="float: left;">
|
<span style="float: left;">
|
||||||
{if $page > 1}
|
{if $page > 1}
|
||||||
<input type="image" src="../img/admin/list-prev2.gif" onclick="getE('submitFilter{$table}').value=1"/>
|
<input type="image" src="../img/admin/list-prev2.gif" onclick="getE('submitFilter{$list_id}').value=1"/>
|
||||||
<input type="image" src="../img/admin/list-prev.gif" onclick="getE('submitFilter{$table}').value={$page - 1}"/>
|
<input type="image" src="../img/admin/list-prev.gif" onclick="getE('submitFilter{$list_id}').value={$page - 1}"/>
|
||||||
{/if}
|
{/if}
|
||||||
{l s='Page'} <b>{$page}</b> / {$total_pages}
|
{l s='Page'} <b>{$page}</b> / {$total_pages}
|
||||||
{if $page < $total_pages}
|
{if $page < $total_pages}
|
||||||
<input type="image" src="../img/admin/list-next.gif" onclick="getE('submitFilter{$table}').value={$page + 1};"/>
|
<input type="image" src="../img/admin/list-next.gif" onclick="getE('submitFilter{$list_id}').value={$page + 1};"/>
|
||||||
<input type="image" src="../img/admin/list-next2.gif" onclick="getE('submitFilter{$table}').value={$total_pages}"/>
|
<input type="image" src="../img/admin/list-next2.gif" onclick="getE('submitFilter{$list_id}').value={$total_pages}"/>
|
||||||
{/if}
|
{/if}
|
||||||
| {l s='Display'}
|
| {l s='Display'}
|
||||||
<select name="pagination" onchange="submit()">
|
<select name="{$list_id}_pagination" onchange="submit()">
|
||||||
{* Choose number of results per page *}
|
{* Choose number of results per page *}
|
||||||
{foreach $pagination AS $value}
|
{foreach $pagination AS $value}
|
||||||
<option value="{$value|intval}"{if $selected_pagination == $value} selected="selected" {elseif $selected_pagination == NULL && $value == $pagination[1]} selected="selected2"{/if}>{$value|intval}</option>
|
<option value="{$value|intval}"{if $selected_pagination == $value} selected="selected" {elseif $selected_pagination == NULL && $value == $pagination[1]} selected="selected2"{/if}>{$value|intval}</option>
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
/ {$list_total} {l s='result(s)'}
|
/ {$list_total} {l s='result(s)'}
|
||||||
</span>
|
</span>
|
||||||
<span style="float: right;">
|
<span style="float: right;">
|
||||||
<input type="submit" name="submitReset{$table}" value="{l s='Reset'}" class="button" />
|
<input type="submit" name="submitReset{$list_id}" value="{l s='Reset'}" class="button" />
|
||||||
</span>
|
</span>
|
||||||
<span class="clear"></span>
|
<span class="clear"></span>
|
||||||
</td>
|
</td>
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<table
|
<table
|
||||||
{if $table_id} id={$table_id}{/if}
|
{if $table_id} id={$table_id}{/if}
|
||||||
class="table {if $table_dnd}tableDnD{/if} {$table}"
|
class="table {if $table_dnd}tableDnD{/if} {$list_id}"
|
||||||
cellpadding="0" cellspacing="0"
|
cellpadding="0" cellspacing="0"
|
||||||
style="width: 100%; margin-bottom:10px;"
|
style="width: 100%; margin-bottom:10px;"
|
||||||
>
|
>
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
<tr class="nodrag nodrop">
|
<tr class="nodrag nodrop">
|
||||||
<th class="center">
|
<th class="center">
|
||||||
{if $has_bulk_actions}
|
{if $has_bulk_actions}
|
||||||
<input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, '{$table}Box[]', this.checked)" />
|
<input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, '{$list_id}Box[]', this.checked)" />
|
||||||
{/if}
|
{/if}
|
||||||
</th>
|
</th>
|
||||||
{foreach $fields_display AS $key => $params}
|
{foreach $fields_display AS $key => $params}
|
||||||
|
|||||||
@@ -35,11 +35,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="footerRight">
|
<div class="footerRight">
|
||||||
{if $iso_is_fr}
|
{if $iso_is_fr}
|
||||||
<span>Questions / Renseignements / Formations :</span> <strong>+33 (0)1.40.18.30.04</strong> de 09h à 18h
|
<span>Questions / Renseignements / Formations :</span> <strong>+33 (0)1.40.18.30.04</strong>
|
||||||
{/if}
|
{/if}
|
||||||
| <a href="http://www.prestashop.com/en/contact_us/" target="_blank" class="footer_link">{l s='Contact'}</a>
|
| <a href="http://www.prestashop.com/en/contact-us?utm_source=backoffice_footer" target="_blank" class="footer_link">{l s='Contact'}</a>
|
||||||
| <a href="http://forge.prestashop.com" target="_blank" class="footer_link">{l s='Bug Tracker'}</a>
|
| <a href="http://forge.prestashop.com/?utm_source=backoffice_footer" target="_blank" class="footer_link">{l s='Bug Tracker'}</a>
|
||||||
| <a href="http://www.prestashop.com/forums/" target="_blank" class="footer_link">{l s='Forum'}</a>
|
| <a href="http://www.prestashop.com/forums/?utm_source=backoffice_footer" target="_blank" class="footer_link">{l s='Forum'}</a>
|
||||||
|
| <a href="http://addons.prestashop.com/?utm_source=backoffice_footer" target="_blank" class="footer_link">{l s='Addons'}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -34,54 +34,51 @@
|
|||||||
<title>{$meta_title} - PrestaShop™</title>
|
<title>{$meta_title} - PrestaShop™</title>
|
||||||
{if $display_header}
|
{if $display_header}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var help_class_name = '{$controller_name}';
|
var help_class_name = '{$controller_name|@addcslashes:'\''}';
|
||||||
var iso_user = '{$iso_user}';
|
var iso_user = '{$iso_user|@addcslashes:'\''}';
|
||||||
var country_iso_code = '{$country_iso_code}';
|
var country_iso_code = '{$country_iso_code|@addcslashes:'\''}';
|
||||||
var _PS_VERSION_ = '{$smarty.const._PS_VERSION_}';
|
var _PS_VERSION_ = '{$smarty.const._PS_VERSION_|@addcslashes:'\''}';
|
||||||
|
var helpboxes = {$help_box|intval};
|
||||||
var helpboxes = {$help_box};
|
var roundMode = {$round_mode|intval};
|
||||||
var roundMode = {$round_mode};
|
{if isset($shop_context)}
|
||||||
{if isset($shop_context)}
|
{if $shop_context == Shop::CONTEXT_ALL}
|
||||||
{if $shop_context == Shop::CONTEXT_ALL}
|
var youEditFieldFor = '{l s='A modification of this field will be applied for all shops' js=1}';
|
||||||
var youEditFieldFor = "{l s='A modification of this field will be applied for all shops' slashes=1 }";
|
{elseif $shop_context == Shop::CONTEXT_GROUP}
|
||||||
{elseif $shop_context == Shop::CONTEXT_GROUP}
|
var youEditFieldFor = '{l s='A modification of this field will be applied for all shops of group' js=1} <b>{$shop_name|@addcslashes:'\''}</b>';
|
||||||
var youEditFieldFor = "{l s='A modification of this field will be applied for all shops of group ' slashes=1 }<b>{$shop_name}</b>";
|
{else}
|
||||||
{else}
|
var youEditFieldFor = '{l s='A modification of this field will be applied for the shop' js=1} <b>{$shop_name|@addcslashes:'\''}</b>';
|
||||||
var youEditFieldFor = "{l s='A modification of this field will be applied for the shop ' slashes=1 }<b>{$shop_name}</b>";
|
{/if}
|
||||||
{/if}
|
{else}
|
||||||
{else}
|
var youEditFieldFor = '';
|
||||||
var youEditFieldFor = '';
|
{/if}
|
||||||
{/if}
|
var autorefresh_notifications = '{$autorefresh_notifications|@addcslashes:'\''}';
|
||||||
{* Notifications vars *}
|
var new_order_msg = '{l s='A new order has been placed on your shop.' js=1}';
|
||||||
var autorefresh_notifications = '{$autorefresh_notifications}';
|
var order_number_msg = '{l s='Order number: ' js=1}';
|
||||||
var new_order_msg = '{l s='A new order has been placed on your shop.' slashes=1}';
|
var total_msg = '{l s='Total: ' js=1}';
|
||||||
var order_number_msg = '{l s='Order number: ' slashes=1}';
|
var from_msg = '{l s='From: ' js=1}';
|
||||||
var total_msg = '{l s='Total: ' slashes=1}';
|
var see_order_msg = '{l s='View this order' js=1}';
|
||||||
var from_msg = '{l s='From: ' slashes=1}';
|
var new_customer_msg = '{l s='A new customer registered on your shop.' js=1}';
|
||||||
var see_order_msg = '{l s='View this order' slashes=1}';
|
var customer_name_msg = '{l s='Customer name: ' js=1}';
|
||||||
var new_customer_msg = '{l s='A new customer registered on your shop.' slashes=1}';
|
var see_customer_msg = '{l s='View this customer' js=1}';
|
||||||
var customer_name_msg = '{l s='Customer name: ' slashes=1}';
|
var new_msg = '{l s='A new message posted on your shop.' js=1}';
|
||||||
var see_customer_msg = '{l s='View this customer' slashes=1}';
|
var excerpt_msg = '{l s='Excerpt: ' js=1}';
|
||||||
var new_msg = '{l s='A new message posted on your shop.' slashes=1}';
|
var see_msg = '{l s='Read this message' js=1}';
|
||||||
var excerpt_msg = '{l s='Excerpt: ' slashes=1}';
|
var token_admin_orders = '{getAdminToken tab='AdminOrders'}';
|
||||||
var see_msg = '{l s='Read this message' slashes=1}';
|
var token_admin_customers = '{getAdminToken tab='AdminCustomers'}';
|
||||||
var token_admin_orders = '{getAdminToken tab='AdminOrders' slashes=1}';
|
var token_admin_customer_threads = '{getAdminToken tab='AdminCustomerThreads'}';
|
||||||
var token_admin_customers = '{getAdminToken tab='AdminCustomers' slashes=1}';
|
var currentIndex = '{$currentIndex|@addcslashes:'\''}';
|
||||||
var token_admin_customer_threads = '{getAdminToken tab='AdminCustomerThreads' slashes=1}';
|
var choose_language_translate = '{l s='Choose language' js=1}';
|
||||||
var currentIndex = '{$currentIndex}';
|
|
||||||
var choose_language_translate = "{l s='Choose language' slashes=1 }";
|
|
||||||
</script>
|
</script>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if isset($css_files)}
|
{if isset($css_files)}
|
||||||
{foreach from=$css_files key=css_uri item=media}
|
{foreach from=$css_files key=css_uri item=media}
|
||||||
<link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" />
|
<link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" />
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{/if}
|
{/if}
|
||||||
{if isset($js_files)}
|
{if isset($js_files)}
|
||||||
{foreach from=$js_files item=js_uri}
|
{foreach from=$js_files item=js_uri}
|
||||||
<script type="text/javascript" src="{$js_uri}"></script>
|
<script type="text/javascript" src="{$js_uri}"></script>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{/if}
|
{/if}
|
||||||
<link rel="icon" type="image/vnd.microsoft.icon" href="{$img_dir}favicon.ico" />
|
<link rel="icon" type="image/vnd.microsoft.icon" href="{$img_dir}favicon.ico" />
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="{$img_dir}favicon.ico" />
|
<link rel="shortcut icon" type="image/x-icon" href="{$img_dir}favicon.ico" />
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
{if isset($fields.title)}<h2>{$fields.title}</h2>{/if}
|
{if isset($fields.title)}<h2>{$fields.title}</h2>{/if}
|
||||||
{block name="defaultForm"}
|
{block name="defaultForm"}
|
||||||
<form id="{$table}_form" class="defaultForm {$name_controller}" action="{$current}&{if !empty($submit_action)}{$submit_action}=1{/if}&token={$token}" method="post" enctype="multipart/form-data" {if isset($style)}style="{$style}"{/if}>
|
<form id="{if isset($fields.form.form.id_form)}{$fields.form.form.id_form|escape:'htmlall':'UTF-8'}{else}{if $table == null}configuration_form{else}{$table}_form{/if}{/if}" class="defaultForm {$name_controller}" action="{$current}&{if !empty($submit_action)}{$submit_action}=1{/if}&token={$token}" method="post" enctype="multipart/form-data" {if isset($style)}style="{$style}"{/if}>
|
||||||
{if $form_id}
|
{if $form_id}
|
||||||
<input type="hidden" name="{$identifier}" id="{$identifier}" value="{$form_id}" />
|
<input type="hidden" name="{$identifier}" id="{$identifier}" value="{$form_id}" />
|
||||||
{/if}
|
{/if}
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$().ready(function () {
|
$().ready(function () {
|
||||||
var input_id = '{/literal}{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}{literal}';
|
var input_id = '{/literal}{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}{literal}';
|
||||||
$('#'+input_id).tagify({addTagPrompt: '{/literal}{l s='Add tag' js=1}{literal}'});
|
$('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag' js=1}{literal}'});
|
||||||
$({/literal}'#{$table}{literal}_form').submit( function() {
|
$({/literal}'#{$table}{literal}_form').submit( function() {
|
||||||
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
||||||
});
|
});
|
||||||
@@ -97,8 +97,7 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$().ready(function () {
|
$().ready(function () {
|
||||||
var input_id = '{/literal}{if isset($input.id)}{$input.id}{else}{$input.name}{/if}{literal}';
|
var input_id = '{/literal}{if isset($input.id)}{$input.id}{else}{$input.name}{/if}{literal}';
|
||||||
$('#'+input_id).tagify();
|
$('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag'}{literal}'});
|
||||||
$('#'+input_id).tagify({addTagPrompt: '{/literal}{l s='Add tag'}{literal}'});
|
|
||||||
$({/literal}'#{$table}{literal}_form').submit( function() {
|
$({/literal}'#{$table}{literal}_form').submit( function() {
|
||||||
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
||||||
});
|
});
|
||||||
@@ -168,7 +167,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
>{$option->$input.options.name}</option>
|
>{$option->$input.options.name}</option>
|
||||||
{elseif $option == "-"}
|
{elseif $option == "-"}
|
||||||
<option value="">--</option>
|
<option value="">-</option>
|
||||||
{else}
|
{else}
|
||||||
<option value="{$option[$input.options.id]}"
|
<option value="{$option[$input.options.id]}"
|
||||||
{if isset($input.multiple)}
|
{if isset($input.multiple)}
|
||||||
@@ -192,7 +191,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
{elseif $input.type == 'radio'}
|
{elseif $input.type == 'radio'}
|
||||||
{foreach $input.values as $value}
|
{foreach $input.values as $value}
|
||||||
<input type="radio" name="{$input.name}"id="{$value.id}" value="{$value.value|escape:'htmlall':'UTF-8'}"
|
<input type="radio" name="{$input.name}" id="{$value.id}" value="{$value.value|escape:'htmlall':'UTF-8'}"
|
||||||
{if $fields_value[$input.name] == $value.value}checked="checked"{/if}
|
{if $fields_value[$input.name] == $value.value}checked="checked"{/if}
|
||||||
{if isset($input.disabled) && $input.disabled}disabled="disabled"{/if} />
|
{if isset($input.disabled) && $input.disabled}disabled="disabled"{/if} />
|
||||||
<label {if isset($input.class)}class="{$input.class}"{/if} for="{$value.id}">
|
<label {if isset($input.class)}class="{$input.class}"{/if} for="{$value.id}">
|
||||||
@@ -234,17 +233,29 @@
|
|||||||
{/foreach}
|
{/foreach}
|
||||||
{elseif $input.type == 'file'}
|
{elseif $input.type == 'file'}
|
||||||
{if isset($input.display_image) && $input.display_image}
|
{if isset($input.display_image) && $input.display_image}
|
||||||
{if isset($fields_value.image) && $fields_value.image}
|
{if isset($fields_value[$input.name].image) && $fields_value[$input.name].image}
|
||||||
<div id="image">
|
<div id="image">
|
||||||
{$fields_value.image}
|
{$fields_value[$input.name].image}
|
||||||
<p align="center">{l s='File size'} {$fields_value.size}kb</p>
|
<p align="center">{l s='File size'} {$fields_value[$input.name].size}{l s='kb'}</p>
|
||||||
<a href="{$current}&{$identifier}={$form_id}&token={$token}&deleteImage=1">
|
<a href="{$current}&{$identifier}={$form_id}&token={$token}&deleteImage=1">
|
||||||
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
||||||
</a>
|
</a>
|
||||||
</div><br />
|
</div><br />
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
<input type="file" name="{$input.name}" {if isset($input.id)}id="{$input.id}"{/if} />
|
|
||||||
|
{if isset($input.lang) AND $input.lang}
|
||||||
|
<div class="translatable">
|
||||||
|
{foreach $languages as $language}
|
||||||
|
<div class="lang_{$language.id_lang}" id="{$input.name}_{$language.id_lang}" style="display:{if $language.id_lang == $defaultFormLanguage}block{else}none{/if}; float: left;">
|
||||||
|
<input type="file" name="{$input.name}_{$language.id_lang}" {if isset($input.id)}id="{$input.id}_{$language.id_lang}"{/if} />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{/foreach}
|
||||||
|
</div>
|
||||||
|
{else}
|
||||||
|
<input type="file" name="{$input.name}" {if isset($input.id)}id="{$input.id}"{/if} />
|
||||||
|
{/if}
|
||||||
{if !empty($input.hint)}<span class="hint" name="help_box">{$input.hint}<span class="hint-pointer"> </span></span>{/if}
|
{if !empty($input.hint)}<span class="hint" name="help_box">{$input.hint}<span class="hint-pointer"> </span></span>{/if}
|
||||||
{elseif $input.type == 'password'}
|
{elseif $input.type == 'password'}
|
||||||
<input type="password"
|
<input type="password"
|
||||||
@@ -302,7 +313,6 @@
|
|||||||
{if isset($input.class)}class="{$input.class}"
|
{if isset($input.class)}class="{$input.class}"
|
||||||
{else}class="color mColorPickerInput"{/if}
|
{else}class="color mColorPickerInput"{/if}
|
||||||
name="{$input.name}"
|
name="{$input.name}"
|
||||||
class="{if isset($input.class)}{$input.class}{/if}"
|
|
||||||
value="{$fields_value[$input.name]|escape:'htmlall':'UTF-8'}" />
|
value="{$fields_value[$input.name]|escape:'htmlall':'UTF-8'}" />
|
||||||
{elseif $input.type == 'date'}
|
{elseif $input.type == 'date'}
|
||||||
<input type="text"
|
<input type="text"
|
||||||
@@ -343,13 +353,13 @@
|
|||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{hook h='displayAdminForm'}
|
{hook h='displayAdminForm' fieldset=$f}
|
||||||
{if isset($name_controller)}
|
{if isset($name_controller)}
|
||||||
{capture name=hookName assign=hookName}display{$name_controller|ucfirst}Form{/capture}
|
{capture name=hookName assign=hookName}display{$name_controller|ucfirst}Form{/capture}
|
||||||
{hook h=$hookName}
|
{hook h=$hookName fieldset=$f}
|
||||||
{elseif isset($smarty.get.controller)}
|
{elseif isset($smarty.get.controller)}
|
||||||
{capture name=hookName assign=hookName}display{$smarty.get.controller|ucfirst|htmlentities}Form{/capture}
|
{capture name=hookName assign=hookName}display{$smarty.get.controller|ucfirst|htmlentities}Form{/capture}
|
||||||
{hook h=$hookName}
|
{hook h=$hookName fieldset=$f}
|
||||||
{/if}
|
{/if}
|
||||||
{elseif $key == 'submit'}
|
{elseif $key == 'submit'}
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
@@ -421,7 +431,8 @@
|
|||||||
};
|
};
|
||||||
{/foreach}
|
{/foreach}
|
||||||
// we need allowEmployeeFormLang var in ajax request
|
// we need allowEmployeeFormLang var in ajax request
|
||||||
allowEmployeeFormLang = {$allowEmployeeFormLang};
|
allowEmployeeFormLang = {$allowEmployeeFormLang|intval};
|
||||||
|
employee_token = '{getAdminToken tab='AdminEmployees'}';
|
||||||
displayFlags(languages, id_language, allowEmployeeFormLang);
|
displayFlags(languages, id_language, allowEmployeeFormLang);
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
@@ -443,6 +454,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
state_token = '{getAdminToken tab='AdminStates'}';
|
||||||
{block name="script"}{/block}
|
{block name="script"}{/block}
|
||||||
</script>
|
</script>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -24,11 +24,11 @@
|
|||||||
*}
|
*}
|
||||||
{if count($categories) && isset($categories)}
|
{if count($categories) && isset($categories)}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var inputName = '{$categories.input_name}';
|
var inputName = '{$categories.input_name|@addcslashes:'\''}';
|
||||||
var use_radio = {if $categories.use_radio}1{else}0{/if};
|
var use_radio = {if $categories.use_radio}1{else}0{/if};
|
||||||
var selectedCat = '{implode value=$categories.selected_cat}';
|
var selectedCat = {$categories.selected_cat|@implode|intval};
|
||||||
var selectedLabel = '{$categories.trads.selected}';
|
var selectedLabel = '{$categories.trads.selected|@addcslashes:'\''}';
|
||||||
var home = '{$categories.trads.Root.name}';
|
var home = '{$categories.trads.Root.name|@addcslashes:'\''}';
|
||||||
var use_radio = {if $categories.use_radio}1{else}0{/if};
|
var use_radio = {if $categories.use_radio}1{else}0{/if};
|
||||||
var use_context = {if isset($categories.use_context)}1{else}0{/if};
|
var use_context = {if isset($categories.use_context)}1{else}0{/if};
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
class="{if !$no_link}pointer{/if}
|
class="{if !$no_link}pointer{/if}
|
||||||
{if isset($params.position) && $order_by == 'position' && $order_way != 'DESC'} dragHandle{/if}
|
{if isset($params.position) && $order_by == 'position' && $order_way != 'DESC'} dragHandle{/if}
|
||||||
|
{if isset($params.class)} {$params.class}{/if}
|
||||||
{if isset($params.align)} {$params.align}{/if}"
|
{if isset($params.align)} {$params.align}{/if}"
|
||||||
{if (!isset($params.position) && !$no_link && !isset($params.remove_onclick))}
|
{if (!isset($params.position) && !$no_link && !isset($params.remove_onclick))}
|
||||||
onclick="document.location = '{$current_index}&{$identifier}={$tr.$identifier}{if $view}&view{else}&update{/if}{$table}&token={$token}'">
|
onclick="document.location = '{$current_index}&{$identifier}={$tr.$identifier}{if $view}&view{else}&update{/if}{$table}&token={$token}'">
|
||||||
@@ -59,7 +60,7 @@
|
|||||||
{block name="td_content"}
|
{block name="td_content"}
|
||||||
{if isset($params.prefix)}{$params.prefix}{/if}
|
{if isset($params.prefix)}{$params.prefix}{/if}
|
||||||
{if isset($params.color) && isset($tr[$params.color])}
|
{if isset($params.color) && isset($tr[$params.color])}
|
||||||
<span class="color_field" style="background-color:{$tr.color};color:{if Tools::getBrightness($tr.color) < 128}white{else}#383838{/if}">
|
<span class="color_field" style="background-color:{$tr[$params.color]};color:{if Tools::getBrightness($tr[$params.color]) < 128}white{else}#383838{/if}">
|
||||||
{/if}
|
{/if}
|
||||||
{if isset($tr.$key)}
|
{if isset($tr.$key)}
|
||||||
{if isset($params.active)}
|
{if isset($params.active)}
|
||||||
|
|||||||
@@ -27,8 +27,8 @@
|
|||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('table.{$table} .filter').keypress(function(event){
|
$('table.{$list_id} .filter').keypress(function(event){
|
||||||
formSubmit(event, 'submitFilterButton{$table}')
|
formSubmit(event, 'submitFilterButton{$list_id}')
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
<script type="text/javascript" src="../js/jquery/plugins/jquery.tablednd.js"></script>
|
<script type="text/javascript" src="../js/jquery/plugins/jquery.tablednd.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var token = '{$token}';
|
var token = '{$token}';
|
||||||
var come_from = '{$table}';
|
var come_from = '{$list_id}';
|
||||||
var alternate = {if $order_way == 'DESC'}'1'{else}'0'{/if};
|
var alternate = {if $order_way == 'DESC'}'1'{else}'0'{/if};
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" src="../js/admin-dnd.js"></script>
|
<script type="text/javascript" src="../js/admin-dnd.js"></script>
|
||||||
@@ -45,8 +45,8 @@
|
|||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(function() {
|
$(function() {
|
||||||
if ($("table.{$table} .datepicker").length > 0)
|
if ($("table.{$list_id} .datepicker").length > 0)
|
||||||
$("table.{$table} .datepicker").datepicker({
|
$("table.{$list_id} .datepicker").datepicker({
|
||||||
prevText: '',
|
prevText: '',
|
||||||
nextText: '',
|
nextText: '',
|
||||||
dateFormat: 'yy-mm-dd'
|
dateFormat: 'yy-mm-dd'
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
|
|
||||||
{block name="override_form_extra"}{/block}
|
{block name="override_form_extra"}{/block}
|
||||||
|
|
||||||
<input type="hidden" id="submitFilter{$table}" name="submitFilter{$table}" value="0"/>
|
<input type="hidden" id="submitFilter{$list_id}" name="submitFilter{$list_id}" value="0"/>
|
||||||
{/if}
|
{/if}
|
||||||
<table class="table_grid" name="list_table">
|
<table class="table_grid" name="list_table">
|
||||||
{if !$simple_header}
|
{if !$simple_header}
|
||||||
@@ -91,16 +91,16 @@
|
|||||||
<td style="vertical-align: bottom;">
|
<td style="vertical-align: bottom;">
|
||||||
<span style="float: left;">
|
<span style="float: left;">
|
||||||
{if $page > 1}
|
{if $page > 1}
|
||||||
<input type="image" src="../img/admin/list-prev2.gif" onclick="getE('submitFilter{$table}').value=1"/>
|
<input type="image" src="../img/admin/list-prev2.gif" onclick="getE('submitFilter{$list_id}').value=1"/>
|
||||||
<input type="image" src="../img/admin/list-prev.gif" onclick="getE('submitFilter{$table}').value={$page - 1}"/>
|
<input type="image" src="../img/admin/list-prev.gif" onclick="getE('submitFilter{$list_id}').value={$page - 1}"/>
|
||||||
{/if}
|
{/if}
|
||||||
{l s='Page'} <b>{$page}</b> / {$total_pages}
|
{l s='Page'} <b>{$page}</b> / {$total_pages}
|
||||||
{if $page < $total_pages}
|
{if $page < $total_pages}
|
||||||
<input type="image" src="../img/admin/list-next.gif" onclick="getE('submitFilter{$table}').value={$page + 1}"/>
|
<input type="image" src="../img/admin/list-next.gif" onclick="getE('submitFilter{$list_id}').value={$page + 1}"/>
|
||||||
<input type="image" src="../img/admin/list-next2.gif" onclick="getE('submitFilter{$table}').value={$total_pages}"/>
|
<input type="image" src="../img/admin/list-next2.gif" onclick="getE('submitFilter{$list_id}').value={$total_pages}"/>
|
||||||
{/if}
|
{/if}
|
||||||
| {l s='Display'}
|
| {l s='Display'}
|
||||||
<select name="pagination" onchange="submit()">
|
<select name="{$list_id}_pagination" onchange="submit()">
|
||||||
{* Choose number of results per page *}
|
{* Choose number of results per page *}
|
||||||
{foreach $pagination AS $value}
|
{foreach $pagination AS $value}
|
||||||
<option value="{$value|intval}"{if $selected_pagination == $value} selected="selected" {elseif $selected_pagination == NULL && $value == $pagination[1]} selected="selected2"{/if}>{$value|intval}</option>
|
<option value="{$value|intval}"{if $selected_pagination == $value} selected="selected" {elseif $selected_pagination == NULL && $value == $pagination[1]} selected="selected2"{/if}>{$value|intval}</option>
|
||||||
@@ -109,8 +109,8 @@
|
|||||||
/ {$list_total} {l s='result(s)'}
|
/ {$list_total} {l s='result(s)'}
|
||||||
</span>
|
</span>
|
||||||
<span style="float: right;">
|
<span style="float: right;">
|
||||||
<input type="submit" name="submitReset{$table}" value="{l s='Reset'}" class="button" />
|
<input type="submit" id="submitFilterButton{$list_id}" name="submitFilter" value="{l s='Filter'}" class="button" />
|
||||||
<input type="submit" id="submitFilterButton{$table}" name="submitFilter" value="{l s='Filter'}" class="button" />
|
<input type="submit" name="submitReset{$list_id}" value="{l s='Reset'}" class="button" />
|
||||||
</span>
|
</span>
|
||||||
<span class="clear"></span>
|
<span class="clear"></span>
|
||||||
</td>
|
</td>
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
<td{if $simple_header} style="border:none;"{/if}>
|
<td{if $simple_header} style="border:none;"{/if}>
|
||||||
<table
|
<table
|
||||||
{if $table_id} id={$table_id}{/if}
|
{if $table_id} id={$table_id}{/if}
|
||||||
class="table {if $table_dnd}tableDnD{/if} {$table}"
|
class="table {if $table_dnd}tableDnD{/if} {$list_id}"
|
||||||
cellpadding="0" cellspacing="0"
|
cellpadding="0" cellspacing="0"
|
||||||
style="width: 100%; margin-bottom:10px;">
|
style="width: 100%; margin-bottom:10px;">
|
||||||
<col width="10px" />
|
<col width="10px" />
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
<tr class="nodrag nodrop" style="height: 40px">
|
<tr class="nodrag nodrop" style="height: 40px">
|
||||||
<th class="center">
|
<th class="center">
|
||||||
{if $has_bulk_actions}
|
{if $has_bulk_actions}
|
||||||
<input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, '{$table}Box[]', this.checked)" />
|
<input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, '{$list_id}Box[]', this.checked)" />
|
||||||
{/if}
|
{/if}
|
||||||
</th>
|
</th>
|
||||||
{foreach $fields_display AS $key => $params}
|
{foreach $fields_display AS $key => $params}
|
||||||
@@ -148,9 +148,9 @@
|
|||||||
</span>
|
</span>
|
||||||
{if (!isset($params.orderby) || $params.orderby) && !$simple_header}
|
{if (!isset($params.orderby) || $params.orderby) && !$simple_header}
|
||||||
<br />
|
<br />
|
||||||
<a href="{$currentIndex}&{$table}Orderby={$key|urlencode}&{$table}Orderway=desc&token={$token}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
|
<a href="{$currentIndex}&{$list_id}Orderby={$key|urlencode}&{$list_id}Orderway=desc&token={$token}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
|
||||||
<img border="0" src="../img/admin/down{if isset($order_by) && ($key == $order_by) && ($order_way == 'DESC')}_d{/if}.gif" /></a>
|
<img border="0" src="../img/admin/down{if isset($order_by) && ($key == $order_by) && ($order_way == 'DESC')}_d{/if}.gif" /></a>
|
||||||
<a href="{$currentIndex}&{$table}Orderby={$key|urlencode}&{$table}Orderway=asc&token={$token}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
|
<a href="{$currentIndex}&{$list_id}Orderby={$key|urlencode}&{$list_id}Orderway=asc&token={$token}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
|
||||||
<img border="0" src="../img/admin/up{if isset($order_by) && ($key == $order_by) && ($order_way == 'ASC')}_d{/if}.gif" /></a>
|
<img border="0" src="../img/admin/up{if isset($order_by) && ($key == $order_by) && ($order_way == 'ASC')}_d{/if}.gif" /></a>
|
||||||
{elseif !$simple_header}
|
{elseif !$simple_header}
|
||||||
<br />
|
<br />
|
||||||
@@ -186,8 +186,8 @@
|
|||||||
--
|
--
|
||||||
{else}
|
{else}
|
||||||
{if $params.type == 'bool'}
|
{if $params.type == 'bool'}
|
||||||
<select onchange="$('#submitFilterButton{$table}').focus();$('#submitFilterButton{$table}').click();" name="{$table}Filter_{$key}">
|
<select onchange="$('#submitFilterButton{$list_id}').focus();$('#submitFilterButton{$list_id}').click();" name="{$list_id}Filter_{$key}">
|
||||||
<option value="">--</option>
|
<option value="">-</option>
|
||||||
<option value="1" {if $params.value == 1} selected="selected" {/if}>{l s='Yes'}</option>
|
<option value="1" {if $params.value == 1} selected="selected" {/if}>{l s='Yes'}</option>
|
||||||
<option value="0" {if $params.value == 0 && $params.value != ''} selected="selected" {/if}>{l s='No'}</option>
|
<option value="0" {if $params.value == 0 && $params.value != ''} selected="selected" {/if}>{l s='No'}</option>
|
||||||
</select>
|
</select>
|
||||||
@@ -196,8 +196,8 @@
|
|||||||
{l s='To'} <input type="text" class="filter datepicker" id="{$params.id_date}_1" name="{$params.name_date}[1]" value="{if isset($params.value.1)}{$params.value.1}{/if}"{if isset($params.width)} style="width:70px"{/if}/>
|
{l s='To'} <input type="text" class="filter datepicker" id="{$params.id_date}_1" name="{$params.name_date}[1]" value="{if isset($params.value.1)}{$params.value.1}{/if}"{if isset($params.width)} style="width:70px"{/if}/>
|
||||||
{elseif $params.type == 'select'}
|
{elseif $params.type == 'select'}
|
||||||
{if isset($params.filter_key)}
|
{if isset($params.filter_key)}
|
||||||
<select onchange="$('#submitFilterButton{$table}').focus();$('#submitFilterButton{$table}').click();" name="{$table}Filter_{$params.filter_key}" {if isset($params.width)} style="width:{$params.width}px"{/if}>
|
<select onchange="$('#submitFilterButton{$list_id}').focus();$('#submitFilterButton{$list_id}').click();" name="{$list_id}Filter_{$params.filter_key}" {if isset($params.width)} style="width:{$params.width}px"{/if}>
|
||||||
<option value="" {if $params.value == ''} selected="selected" {/if}>--</option>
|
<option value="" {if $params.value == ''} selected="selected" {/if}>-</option>
|
||||||
{if isset($params.list) && is_array($params.list)}
|
{if isset($params.list) && is_array($params.list)}
|
||||||
{foreach $params.list AS $option_value => $option_display}
|
{foreach $params.list AS $option_value => $option_display}
|
||||||
<option value="{$option_value}" {if $option_display == $params.value || $option_value == $params.value} selected="selected"{/if}>{$option_display}</option>
|
<option value="{$option_value}" {if $option_display == $params.value || $option_value == $params.value} selected="selected"{/if}>{$option_display}</option>
|
||||||
@@ -206,7 +206,7 @@
|
|||||||
</select>
|
</select>
|
||||||
{/if}
|
{/if}
|
||||||
{else}
|
{else}
|
||||||
<input type="text" class="filter" name="{$table}Filter_{if isset($params.filter_key)}{$params.filter_key}{else}{$key}{/if}" value="{$params.value|escape:'htmlall':'UTF-8'}" {if isset($params.width) && $params.width != 'auto'} style="width:{$params.width}px"{else}style="width:95%"{/if} />
|
<input type="text" class="filter" name="{$list_id}Filter_{if isset($params.filter_key)}{$params.filter_key}{else}{$key}{/if}" value="{$params.value|escape:'htmlall':'UTF-8'}" {if isset($params.width) && $params.width != 'auto'} style="width:{$params.width}px"{else}style="width:95%"{/if} />
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
{block name="defaultOptions"}
|
{block name="defaultOptions"}
|
||||||
<form action="{$current}&token={$token}"
|
<form action="{$current}&token={$token}"
|
||||||
id="{$table}_form"
|
id="{if $table == null}configuration_form{else}{$table}_form{/if}"
|
||||||
{if isset($categoryData['name'])} name={$categoryData['name']}{/if}
|
{if isset($categoryData['name'])} name={$categoryData['name']}{/if}
|
||||||
{if isset($categoryData['id'])} id={$categoryData['id']} {/if}
|
{if isset($categoryData['id'])} id={$categoryData['id']} {/if}
|
||||||
method="post"
|
method="post"
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
</span>
|
</span>
|
||||||
|
|
||||||
{if count($errors) == 1}
|
{if count($errors) == 1}
|
||||||
{$errors[0]}
|
{reset($errors)}
|
||||||
{else}
|
{else}
|
||||||
{l s='%d errors' sprintf=$errors|count}
|
{l s='%d errors' sprintf=$errors|count}
|
||||||
<br/>
|
<br/>
|
||||||
|
|||||||
@@ -36,9 +36,9 @@
|
|||||||
{if $k == 'modules-list'}
|
{if $k == 'modules-list'}
|
||||||
<div id="modules_list_container" style="display:none">
|
<div id="modules_list_container" style="display:none">
|
||||||
<div style="float:right;margin:5px">
|
<div style="float:right;margin:5px">
|
||||||
<a href="#" onclick="$('#modules_list_container').slideUp();return false;"><img alt="X" src="../img/admin/close.png"></a>
|
<a href="#" onclick="$('#modules_list_container').slideUp();return false;"><img alt="X" src="../img/admin/close.png" /></a>
|
||||||
</div>
|
</div>
|
||||||
<div id="modules_list_loader"><img src="../img/loader.gif" alt="" border="0"></div>
|
<div id="modules_list_loader"><img src="../img/loader.gif" alt="" border="0" /></div>
|
||||||
<div id="modules_list_container_tab" style="display:none;"></div>
|
<div id="modules_list_container_tab" style="display:none;"></div>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
btn_submit.hide();
|
btn_submit.hide();
|
||||||
//bind enter key press to validate form
|
//bind enter key press to validate form
|
||||||
$('#{$table}_form').keypress(function (e) {
|
$('#{$table}_form').keypress(function (e) {
|
||||||
if (e.which == 13 && e.target.localName != 'textarea')
|
if (e.which == 13 && e.target.localName != 'textarea' && !e.target.hasClass('tagify'))
|
||||||
$('#desc-{$table}-save').click();
|
$('#desc-{$table}-save').click();
|
||||||
});
|
});
|
||||||
//submit the form
|
//submit the form
|
||||||
|
|||||||
Vendored
+2
@@ -25,6 +25,8 @@
|
|||||||
'AdminAttributesGroupsControllerCore' => 'controllers/admin/AdminAttributesGroupsController.php',
|
'AdminAttributesGroupsControllerCore' => 'controllers/admin/AdminAttributesGroupsController.php',
|
||||||
'AdminBackupController' => '',
|
'AdminBackupController' => '',
|
||||||
'AdminBackupControllerCore' => 'controllers/admin/AdminBackupController.php',
|
'AdminBackupControllerCore' => 'controllers/admin/AdminBackupController.php',
|
||||||
|
'AdminCarrierWizardController' => '',
|
||||||
|
'AdminCarrierWizardControllerCore' => 'controllers/admin/AdminCarrierWizardController.php',
|
||||||
'AdminCarriersController' => '',
|
'AdminCarriersController' => '',
|
||||||
'AdminCarriersControllerCore' => 'controllers/admin/AdminCarriersController.php',
|
'AdminCarriersControllerCore' => 'controllers/admin/AdminCarriersController.php',
|
||||||
'AdminCartRulesController' => '',
|
'AdminCartRulesController' => '',
|
||||||
|
|||||||
+27
-20
@@ -264,13 +264,17 @@ class AddressCore extends ObjectModel
|
|||||||
if(!isset($id_address) || empty($id_address))
|
if(!isset($id_address) || empty($id_address))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
|
$cache_id = 'Address::isCountryActiveById_'.(int)$id_address;
|
||||||
SELECT c.`active`
|
if (!Cache::isStored($cache_id))
|
||||||
FROM `'._DB_PREFIX_.'address` a
|
{
|
||||||
LEFT JOIN `'._DB_PREFIX_.'country` c ON c.`id_country` = a.`id_country`
|
$result = (bool)Db::getInstance(_PS_USE_SQL_SLAVE_)->getvalue('
|
||||||
WHERE a.`id_address` = '.(int)$id_address))
|
SELECT c.`active`
|
||||||
return false;
|
FROM `'._DB_PREFIX_.'address` a
|
||||||
return ($result['active']);
|
LEFT JOIN `'._DB_PREFIX_.'country` c ON c.`id_country` = a.`id_country`
|
||||||
|
WHERE a.`id_address` = '.(int)$id_address);
|
||||||
|
Cache::store($cache_id, $result);
|
||||||
|
}
|
||||||
|
return Cache::retrieve($cache_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -313,11 +317,10 @@ class AddressCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
$key = 'address_exists_'.(int)$id_address;
|
$key = 'address_exists_'.(int)$id_address;
|
||||||
if (!Cache::isStored($key))
|
if (!Cache::isStored($key))
|
||||||
Cache::store(
|
{
|
||||||
$key, Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
|
$id_address = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT `id_address` FROM '._DB_PREFIX_.'address a WHERE a.`id_address` = '.(int)$id_address);
|
||||||
SELECT `id_address`
|
Cache::store($key, (bool)$id_address);
|
||||||
FROM '._DB_PREFIX_.'address a
|
}
|
||||||
WHERE a.`id_address` = '.(int)$id_address));
|
|
||||||
return Cache::retrieve($key);
|
return Cache::retrieve($key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -325,12 +328,17 @@ class AddressCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
if (!$id_customer)
|
if (!$id_customer)
|
||||||
return false;
|
return false;
|
||||||
|
$cache_id = 'Address::getFirstCustomerAddressId_'.(int)$id_customer.'-'.(bool)$active;
|
||||||
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
|
if (!Cache::isStored($cache_id))
|
||||||
SELECT `id_address`
|
{
|
||||||
FROM `'._DB_PREFIX_.'address`
|
$result = (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
|
||||||
WHERE `id_customer` = '.(int)$id_customer.' AND `deleted` = 0'.($active ? ' AND `active` = 1' : '')
|
SELECT `id_address`
|
||||||
);
|
FROM `'._DB_PREFIX_.'address`
|
||||||
|
WHERE `id_customer` = '.(int)$id_customer.' AND `deleted` = 0'.($active ? ' AND `active` = 1' : '')
|
||||||
|
);
|
||||||
|
Cache::store($cache_id, $result);
|
||||||
|
}
|
||||||
|
return Cache::retrieve($cache_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -380,5 +388,4 @@ class AddressCore extends ObjectModel
|
|||||||
$query->where('id_warehouse = 0');
|
$query->where('id_warehouse = 0');
|
||||||
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query);
|
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1303,7 +1303,7 @@ abstract class AdminTabCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
$asso = Shop::getAssoTable($this->table);
|
$asso = Shop::getAssoTable($this->table);
|
||||||
if ($asso !== false && $assos['type'] == 'shop')
|
if ($asso !== false && $asso['type'] == 'shop')
|
||||||
{
|
{
|
||||||
$filterKey = $asso['type'];
|
$filterKey = $asso['type'];
|
||||||
$idenfierShop = Shop::getContextListShopID();
|
$idenfierShop = Shop::getContextListShopID();
|
||||||
@@ -1500,7 +1500,7 @@ abstract class AdminTabCore
|
|||||||
case 'bool':
|
case 'bool':
|
||||||
echo '
|
echo '
|
||||||
<select name="'.$this->table.'Filter_'.$key.'">
|
<select name="'.$this->table.'Filter_'.$key.'">
|
||||||
<option value="">--</option>
|
<option value="">-</option>
|
||||||
<option value="1"'.($value == 1 ? ' selected="selected"' : '').'>'.$this->l('Yes').'</option>
|
<option value="1"'.($value == 1 ? ' selected="selected"' : '').'>'.$this->l('Yes').'</option>
|
||||||
<option value="0"'.(($value == 0 && $value != '') ? ' selected="selected"' : '').'>'.$this->l('No').'</option>
|
<option value="0"'.(($value == 0 && $value != '') ? ' selected="selected"' : '').'>'.$this->l('No').'</option>
|
||||||
</select>';
|
</select>';
|
||||||
@@ -1524,7 +1524,7 @@ abstract class AdminTabCore
|
|||||||
if (isset($params['filter_key']))
|
if (isset($params['filter_key']))
|
||||||
{
|
{
|
||||||
echo '<select onchange="$(\'#submitFilter'.$this->table.'\').focus();$(\'#submitFilter'.$this->table.'\').click();" name="'.$this->table.'Filter_'.$params['filter_key'].'" '.(isset($params['width']) ? 'style="width: '.$params['width'].'px"' : '').'>
|
echo '<select onchange="$(\'#submitFilter'.$this->table.'\').focus();$(\'#submitFilter'.$this->table.'\').click();" name="'.$this->table.'Filter_'.$params['filter_key'].'" '.(isset($params['width']) ? 'style="width: '.$params['width'].'px"' : '').'>
|
||||||
<option value=""'.(($value == 0 && $value != '') ? ' selected="selected"' : '').'>--</option>';
|
<option value=""'.(($value == 0 && $value != '') ? ' selected="selected"' : '').'>-</option>';
|
||||||
if (isset($params['select']) && is_array($params['select']))
|
if (isset($params['select']) && is_array($params['select']))
|
||||||
foreach ($params['select'] as $optionValue => $optionDisplay)
|
foreach ($params['select'] as $optionValue => $optionDisplay)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -124,5 +124,21 @@ class AliasCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
return Configuration::get('PS_ALIAS_FEATURE_ACTIVE');
|
return Configuration::get('PS_ALIAS_FEATURE_ACTIVE');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is allow to know if a alias exist for AdminImportController
|
||||||
|
* @since 1.5.6.0
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function aliasExists($id_alias)
|
||||||
|
{
|
||||||
|
$row = Db::getInstance()->getRow('
|
||||||
|
SELECT `id_alias`
|
||||||
|
FROM '._DB_PREFIX_.'alias a
|
||||||
|
WHERE a.`id_alias` = '.(int)$id_alias
|
||||||
|
);
|
||||||
|
|
||||||
|
return isset($row['id_alias']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ class AttributeCore extends ObjectModel
|
|||||||
ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$id_lang.')
|
ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$id_lang.')
|
||||||
'.Shop::addSqlAssociation('attribute_group', 'ag').'
|
'.Shop::addSqlAssociation('attribute_group', 'ag').'
|
||||||
'.Shop::addSqlAssociation('attribute', 'a').'
|
'.Shop::addSqlAssociation('attribute', 'a').'
|
||||||
'.($not_null ? 'WHERE a.`id_attribute` IS NOT NULL AND al.`name` IS NOT NULL' : '').'
|
'.($not_null ? 'WHERE a.`id_attribute` IS NOT NULL AND al.`name` IS NOT NULL AND agl.`id_attribute_group` IS NOT NULL' : '').'
|
||||||
ORDER BY agl.`name` ASC, a.`position` ASC
|
ORDER BY agl.`name` ASC, a.`position` ASC
|
||||||
');
|
');
|
||||||
}
|
}
|
||||||
@@ -343,4 +343,4 @@ class AttributeCore extends ObjectModel
|
|||||||
|
|
||||||
return (is_numeric($position)) ? $position : -1;
|
return (is_numeric($position)) ? $position : -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,12 +142,15 @@ class AttributeGroupCore extends ObjectModel
|
|||||||
if (!AttributeGroup::cleanDeadCombinations())
|
if (!AttributeGroup::cleanDeadCombinations())
|
||||||
return false;
|
return false;
|
||||||
/* Also delete related attributes */
|
/* Also delete related attributes */
|
||||||
if (Db::getInstance()->execute('
|
if (count($to_remove))
|
||||||
|
if (!Db::getInstance()->execute('
|
||||||
DELETE FROM `'._DB_PREFIX_.'attribute_lang`
|
DELETE FROM `'._DB_PREFIX_.'attribute_lang`
|
||||||
WHERE `id_attribute`
|
WHERE `id_attribute` IN ('.implode(',', $to_remove).')') ||
|
||||||
IN (SELECT id_attribute FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)$this->id.')') === false ||
|
!Db::getInstance()->execute('
|
||||||
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)$this->id) === false)
|
DELETE FROM `'._DB_PREFIX_.'attribute_shop`
|
||||||
return false;
|
WHERE `id_attribute` IN ('.implode(',', $to_remove).')') ||
|
||||||
|
!Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)$this->id))
|
||||||
|
return false;
|
||||||
$this->cleanPositions();
|
$this->cleanPositions();
|
||||||
}
|
}
|
||||||
$return = parent::delete();
|
$return = parent::delete();
|
||||||
|
|||||||
+23
-25
@@ -49,11 +49,15 @@ class Autoload
|
|||||||
*/
|
*/
|
||||||
public $index = array();
|
public $index = array();
|
||||||
|
|
||||||
|
public $_include_override_path = true;
|
||||||
|
|
||||||
protected function __construct()
|
protected function __construct()
|
||||||
{
|
{
|
||||||
$this->root_dir = dirname(dirname(__FILE__)).'/';
|
$this->root_dir = dirname(dirname(__FILE__)).'/';
|
||||||
if (file_exists($this->root_dir.Autoload::INDEX_FILE))
|
if (file_exists($this->root_dir.Autoload::INDEX_FILE))
|
||||||
$this->index = include($this->root_dir.Autoload::INDEX_FILE);
|
$this->index = include($this->root_dir.Autoload::INDEX_FILE);
|
||||||
|
else
|
||||||
|
$this->generateIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -80,9 +84,8 @@ class Autoload
|
|||||||
if (strpos(strtolower($classname), 'smarty_') === 0)
|
if (strpos(strtolower($classname), 'smarty_') === 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// regenerate the class index if the requested class is not found in the index or if the requested file doesn't exists
|
// regenerate the class index if the requested file doesn't exists
|
||||||
if (!isset($this->index[$classname])
|
if ((isset($this->index[$classname]) && $this->index[$classname] && !is_file($this->root_dir.$this->index[$classname]))
|
||||||
|| ($this->index[$classname] && !is_file($this->root_dir.$this->index[$classname]))
|
|
||||||
|| (isset($this->index[$classname.'Core']) && $this->index[$classname.'Core'] && !is_file($this->root_dir.$this->index[$classname.'Core'])))
|
|| (isset($this->index[$classname.'Core']) && $this->index[$classname.'Core'] && !is_file($this->root_dir.$this->index[$classname.'Core'])))
|
||||||
$this->generateIndex();
|
$this->generateIndex();
|
||||||
|
|
||||||
@@ -119,36 +122,32 @@ class Autoload
|
|||||||
{
|
{
|
||||||
$classes = array_merge(
|
$classes = array_merge(
|
||||||
$this->getClassesFromDir('classes/'),
|
$this->getClassesFromDir('classes/'),
|
||||||
$this->getClassesFromDir('override/classes/'),
|
$this->getClassesFromDir('controllers/')
|
||||||
$this->getClassesFromDir('controllers/'),
|
|
||||||
$this->getClassesFromDir('override/controllers/')
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ($this->_include_override_path)
|
||||||
|
$classes = array_merge(
|
||||||
|
$classes,
|
||||||
|
$this->getClassesFromDir('override/classes/'),
|
||||||
|
$this->getClassesFromDir('override/controllers/')
|
||||||
|
);
|
||||||
|
|
||||||
ksort($classes);
|
ksort($classes);
|
||||||
$content = '<?php return '.var_export($classes, true).'; ?>';
|
$content = '<?php return '.var_export($classes, true).'; ?>';
|
||||||
|
|
||||||
// Write classes index on disc to cache it
|
// Write classes index on disc to cache it
|
||||||
$filename = $this->root_dir.Autoload::INDEX_FILE;
|
$filename = $this->root_dir.Autoload::INDEX_FILE;
|
||||||
if ((file_exists($filename) && !is_writable($filename)) || !is_writable(dirname($filename)))
|
$filename_tmp = tempnam(dirname($filename), basename($filename.'.'));
|
||||||
|
if ($filename_tmp !== false && file_put_contents($filename_tmp, $content, LOCK_EX) !== false)
|
||||||
{
|
{
|
||||||
header('HTTP/1.1 503 temporarily overloaded');
|
if (!rename($filename_tmp, $filename))
|
||||||
// Cannot use PrestaShopException in this context
|
unlink($filename_tmp);
|
||||||
die('/cache/class_index.php is not writable, please give write permissions (chmod 666) on this file.');
|
else
|
||||||
|
@chmod($filename, 0666);
|
||||||
}
|
}
|
||||||
|
// $filename_tmp couldn't be written. $filename should be there anyway (even if outdated), no need to die.
|
||||||
else
|
else
|
||||||
{
|
error_log('Cannot write temporary file '.$filename_tmp);
|
||||||
$filename_tmp = tempnam(dirname($filename), basename($filename.'.'));
|
|
||||||
if($filename_tmp !== FALSE and file_put_contents($filename_tmp, $content, LOCK_EX) !== FALSE)
|
|
||||||
{
|
|
||||||
rename($filename_tmp, $filename);
|
|
||||||
@chmod($filename, 0664);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// $filename_tmp couldn't be written. $filename should be there anyway (even if outdated),
|
|
||||||
// no need to die.
|
|
||||||
error_log('Cannot write temporary file '.$filename_tmp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->index = $classes;
|
$this->index = $classes;
|
||||||
}
|
}
|
||||||
@@ -192,4 +191,3 @@ class Autoload
|
|||||||
return isset($this->index[$classname]) ? $this->index[$classname] : null;
|
return isset($this->index[$classname]) ? $this->index[$classname] : null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-2
@@ -34,6 +34,7 @@ class CMSCore extends ObjectModel
|
|||||||
public $link_rewrite;
|
public $link_rewrite;
|
||||||
public $id_cms_category;
|
public $id_cms_category;
|
||||||
public $position;
|
public $position;
|
||||||
|
public $indexation;
|
||||||
public $active;
|
public $active;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -46,6 +47,7 @@ class CMSCore extends ObjectModel
|
|||||||
'fields' => array(
|
'fields' => array(
|
||||||
'id_cms_category' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
|
'id_cms_category' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
|
||||||
'position' => array('type' => self::TYPE_INT),
|
'position' => array('type' => self::TYPE_INT),
|
||||||
|
'indexation' => array('type' => self::TYPE_BOOL),
|
||||||
'active' => array('type' => self::TYPE_BOOL),
|
'active' => array('type' => self::TYPE_BOOL),
|
||||||
|
|
||||||
// Lang fields
|
// Lang fields
|
||||||
@@ -53,7 +55,7 @@ class CMSCore extends ObjectModel
|
|||||||
'meta_keywords' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
|
'meta_keywords' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
|
||||||
'meta_title' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 128),
|
'meta_title' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 128),
|
||||||
'link_rewrite' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isLinkRewrite', 'required' => true, 'size' => 128),
|
'link_rewrite' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isLinkRewrite', 'required' => true, 'size' => 128),
|
||||||
'content' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString', 'size' => 3999999999999),
|
'content' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml', 'size' => 3999999999999),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -188,7 +190,7 @@ class CMSCore extends ObjectModel
|
|||||||
return (Db::getInstance()->getValue($sql));
|
return (Db::getInstance()->getValue($sql));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getCMSPages($id_lang = null, $id_cms_category = null, $active = true)
|
public static function getCMSPages($id_lang = null, $id_cms_category = null, $active = true, $id_shop = null)
|
||||||
{
|
{
|
||||||
$sql = new DbQuery();
|
$sql = new DbQuery();
|
||||||
$sql->select('*');
|
$sql->select('*');
|
||||||
@@ -196,6 +198,9 @@ class CMSCore extends ObjectModel
|
|||||||
if ($id_lang)
|
if ($id_lang)
|
||||||
$sql->innerJoin('cms_lang', 'l', 'c.id_cms = l.id_cms AND l.id_lang = '.(int)$id_lang);
|
$sql->innerJoin('cms_lang', 'l', 'c.id_cms = l.id_cms AND l.id_lang = '.(int)$id_lang);
|
||||||
|
|
||||||
|
if ($id_shop)
|
||||||
|
$sql->innerJoin('cms_shop', 'cs', 'c.id_cms = cs.id_cms AND cs.id_shop = '.(int)$id_shop);
|
||||||
|
|
||||||
if ($active)
|
if ($active)
|
||||||
$sql->where('c.active = 1');
|
$sql->where('c.active = 1');
|
||||||
|
|
||||||
|
|||||||
+105
-39
@@ -165,6 +165,14 @@ class CarrierCore extends ObjectModel
|
|||||||
public function __construct($id = null, $id_lang = null)
|
public function __construct($id = null, $id_lang = null)
|
||||||
{
|
{
|
||||||
parent::__construct($id, $id_lang);
|
parent::__construct($id, $id_lang);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* keep retrocompatibility SHIPPING_METHOD_DEFAULT
|
||||||
|
* @deprecated 1.5.5
|
||||||
|
*/
|
||||||
|
if ($this->shipping_method == Carrier::SHIPPING_METHOD_DEFAULT)
|
||||||
|
$this->shipping_method = ((int)Configuration::get('PS_SHIPPING_METHOD') ? Carrier::SHIPPING_METHOD_WEIGHT : Carrier::SHIPPING_METHOD_PRICE);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* keep retrocompatibility id_tax_rules_group
|
* keep retrocompatibility id_tax_rules_group
|
||||||
* @deprecated 1.5.0
|
* @deprecated 1.5.0
|
||||||
@@ -269,17 +277,20 @@ class CarrierCore extends ObjectModel
|
|||||||
|
|
||||||
public function getMaxDeliveryPriceByWeight($id_zone)
|
public function getMaxDeliveryPriceByWeight($id_zone)
|
||||||
{
|
{
|
||||||
$sql = 'SELECT d.`price`
|
$cache_id = 'Carrier::getMaxDeliveryPriceByWeight_'.(int)$this->id.'-'.(int)$id_zone;
|
||||||
FROM `'._DB_PREFIX_.'delivery` d
|
if (!Cache::isStored($cache_id))
|
||||||
INNER JOIN `'._DB_PREFIX_.'range_weight` w ON d.`id_range_weight` = w.`id_range_weight`
|
{
|
||||||
WHERE d.`id_zone` = '.(int)$id_zone.'
|
$sql = 'SELECT d.`price`
|
||||||
AND d.`id_carrier` = '.(int)$this->id.'
|
FROM `'._DB_PREFIX_.'delivery` d
|
||||||
'.Carrier::sqlDeliveryRangeShop('range_weight').'
|
INNER JOIN `'._DB_PREFIX_.'range_weight` w ON d.`id_range_weight` = w.`id_range_weight`
|
||||||
ORDER BY w.`delimiter2` DESC LIMIT 1';
|
WHERE d.`id_zone` = '.(int)$id_zone.'
|
||||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
|
AND d.`id_carrier` = '.(int)$this->id.'
|
||||||
if (!isset($result[0]['price']))
|
'.Carrier::sqlDeliveryRangeShop('range_weight').'
|
||||||
return false;
|
ORDER BY w.`delimiter2` DESC';
|
||||||
return $result[0]['price'];
|
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
|
||||||
|
Cache::store($cache_id, $result);
|
||||||
|
}
|
||||||
|
return Cache::retrieve($cache_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -349,17 +360,20 @@ class CarrierCore extends ObjectModel
|
|||||||
|
|
||||||
public function getMaxDeliveryPriceByPrice($id_zone)
|
public function getMaxDeliveryPriceByPrice($id_zone)
|
||||||
{
|
{
|
||||||
$sql = 'SELECT d.`price`
|
$cache_id = 'Carrier::getMaxDeliveryPriceByPrice_'.(int)$this->id.'-'.(int)$id_zone;
|
||||||
FROM `'._DB_PREFIX_.'delivery` d
|
if (!Cache::isStored($cache_id))
|
||||||
INNER JOIN `'._DB_PREFIX_.'range_price` r ON d.`id_range_price` = r.`id_range_price`
|
{
|
||||||
WHERE d.`id_zone` = '.(int)$id_zone.'
|
$sql = 'SELECT d.`price`
|
||||||
AND d.`id_carrier` = '.(int)$this->id.'
|
FROM `'._DB_PREFIX_.'delivery` d
|
||||||
'.Carrier::sqlDeliveryRangeShop('range_price').'
|
INNER JOIN `'._DB_PREFIX_.'range_price` r ON d.`id_range_price` = r.`id_range_price`
|
||||||
ORDER BY r.`delimiter2` DESC LIMIT 1';
|
WHERE d.`id_zone` = '.(int)$id_zone.'
|
||||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
|
AND d.`id_carrier` = '.(int)$this->id.'
|
||||||
if (!isset($result[0]['price']))
|
'.Carrier::sqlDeliveryRangeShop('range_price').'
|
||||||
return false;
|
ORDER BY r.`delimiter2` DESC';
|
||||||
return $result[0]['price'];
|
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
|
||||||
|
Cache::store($cache_id, $result);
|
||||||
|
}
|
||||||
|
return Cache::retrieve($cache_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -370,13 +384,12 @@ class CarrierCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public static function getDeliveryPriceByRanges($range_table, $id_carrier)
|
public static function getDeliveryPriceByRanges($range_table, $id_carrier)
|
||||||
{
|
{
|
||||||
$range_table = pSQL($range_table);
|
$sql = 'SELECT d.`id_'.bqSQL($range_table).'`, d.id_carrier, d.id_zone, d.price
|
||||||
$sql = 'SELECT d.id_'.$range_table.', d.id_carrier, d.id_zone, d.price
|
|
||||||
FROM '._DB_PREFIX_.'delivery d
|
FROM '._DB_PREFIX_.'delivery d
|
||||||
LEFT JOIN '._DB_PREFIX_.$range_table.' r ON r.id_'.$range_table.' = d.id_'.$range_table.'
|
LEFT JOIN `'._DB_PREFIX_.bqSQL($range_table).'` r ON r.`id_'.bqSQL($range_table).'` = d.`id_'.bqSQL($range_table).'`
|
||||||
WHERE d.id_carrier = '.(int)$id_carrier.'
|
WHERE d.id_carrier = '.(int)$id_carrier.'
|
||||||
AND d.id_'.$range_table.' IS NOT NULL
|
AND d.`id_'.bqSQL($range_table).'` IS NOT NULL
|
||||||
AND d.id_'.$range_table.' != 0
|
AND d.`id_'.bqSQL($range_table).'` != 0
|
||||||
'.Carrier::sqlDeliveryRangeShop($range_table).'
|
'.Carrier::sqlDeliveryRangeShop($range_table).'
|
||||||
ORDER BY r.delimiter1';
|
ORDER BY r.delimiter1';
|
||||||
return Db::getInstance()->executeS($sql);
|
return Db::getInstance()->executeS($sql);
|
||||||
@@ -442,7 +455,13 @@ class CarrierCore extends ObjectModel
|
|||||||
GROUP BY c.`id_carrier`
|
GROUP BY c.`id_carrier`
|
||||||
ORDER BY c.`position` ASC';
|
ORDER BY c.`position` ASC';
|
||||||
|
|
||||||
$carriers = Db::getInstance()->executeS($sql);
|
$cache_id = 'Carrier::getCarriers_'.md5($sql);
|
||||||
|
if (!Cache::isStored($cache_id))
|
||||||
|
{
|
||||||
|
$carriers = Db::getInstance()->executeS($sql);
|
||||||
|
Cache::store($cache_id, $carriers);
|
||||||
|
}
|
||||||
|
$carriers = Cache::retrieve($cache_id);
|
||||||
|
|
||||||
if (is_array($carriers) && count($carriers))
|
if (is_array($carriers) && count($carriers))
|
||||||
{
|
{
|
||||||
@@ -456,6 +475,22 @@ class CarrierCore extends ObjectModel
|
|||||||
return $carriers;
|
return $carriers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getIdTaxRulesGroupMostUsed()
|
||||||
|
{
|
||||||
|
return Db::getInstance()->getValue('
|
||||||
|
SELECT id_tax_rules_group
|
||||||
|
FROM (
|
||||||
|
SELECT COUNT(*) n, c.id_tax_rules_group
|
||||||
|
FROM '._DB_PREFIX_.'carrier c
|
||||||
|
JOIN '._DB_PREFIX_.'tax_rules_group trg ON (c.id_tax_rules_group = trg.id_tax_rules_group)
|
||||||
|
WHERE trg.active = 1
|
||||||
|
GROUP BY c.id_tax_rules_group
|
||||||
|
ORDER BY n DESC
|
||||||
|
LIMIT 1
|
||||||
|
) most_used'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public static function getDeliveredCountries($id_lang, $active_countries = false, $active_carriers = false, $contain_states = null)
|
public static function getDeliveredCountries($id_lang, $active_countries = false, $active_carriers = false, $contain_states = null)
|
||||||
{
|
{
|
||||||
if (!Validate::isBool($active_countries) || !Validate::isBool($active_carriers))
|
if (!Validate::isBool($active_countries) || !Validate::isBool($active_carriers))
|
||||||
@@ -712,7 +747,7 @@ class CarrierCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public function deleteDeliveryPrice($range_table)
|
public function deleteDeliveryPrice($range_table)
|
||||||
{
|
{
|
||||||
$where = '`id_carrier` = '.(int)$this->id.' AND (`id_'.$range_table.'` IS NOT NULL OR `id_'.$range_table.'` = 0) ';
|
$where = '`id_carrier` = '.(int)$this->id.' AND (`id_'.bqSQL($range_table).'` IS NOT NULL OR `id_'.bqSQL($range_table).'` = 0) ';
|
||||||
|
|
||||||
if (Shop::getContext() == Shop::CONTEXT_ALL)
|
if (Shop::getContext() == Shop::CONTEXT_ALL)
|
||||||
$where .= 'AND id_shop IS NULL AND id_shop_group IS NULL';
|
$where .= 'AND id_shop IS NULL AND id_shop_group IS NULL';
|
||||||
@@ -730,7 +765,7 @@ class CarrierCore extends ObjectModel
|
|||||||
* @param array $priceList Prices list in multiple arrays (changed to array since 1.5.0)
|
* @param array $priceList Prices list in multiple arrays (changed to array since 1.5.0)
|
||||||
* @return boolean Insertion result
|
* @return boolean Insertion result
|
||||||
*/
|
*/
|
||||||
public function addDeliveryPrice($price_list)
|
public function addDeliveryPrice($price_list, $delete = false)
|
||||||
{
|
{
|
||||||
if (!$price_list)
|
if (!$price_list)
|
||||||
return false;
|
return false;
|
||||||
@@ -749,6 +784,17 @@ class CarrierCore extends ObjectModel
|
|||||||
if (!isset($values['id_shop_group']))
|
if (!isset($values['id_shop_group']))
|
||||||
$values['id_shop_group'] = (Shop::getContext() != Shop::CONTEXT_ALL) ? Shop::getContextShopGroupID() : null;
|
$values['id_shop_group'] = (Shop::getContext() != Shop::CONTEXT_ALL) ? Shop::getContextShopGroupID() : null;
|
||||||
|
|
||||||
|
if ($delete)
|
||||||
|
Db::getInstance()->execute('
|
||||||
|
DELETE FROM `'._DB_PREFIX_.'delivery`
|
||||||
|
WHERE '.(is_null($values['id_shop']) ? 'ISNULL(`id_shop`) ' : 'id_shop = '.(int)$values['id_shop']).'
|
||||||
|
AND '.(is_null($values['id_shop_group']) ? 'ISNULL(`id_shop`) ' : 'id_shop_group='.(int)$values['id_shop_group']).'
|
||||||
|
AND id_carrier='.(int)$values['id_carrier'].
|
||||||
|
($values['id_range_price'] !== null ? ' AND id_range_price='.(int)$values['id_range_price'] : ' AND (ISNULL(`id_range_price`) OR `id_range_price` = 0)').
|
||||||
|
($values['id_range_weight'] !== null ? ' AND id_range_weight='.(int)$values['id_range_weight'] : ' AND (ISNULL(`id_range_weight`) OR `id_range_weight` = 0)').'
|
||||||
|
AND id_zone='.(int)$values['id_zone']
|
||||||
|
);
|
||||||
|
|
||||||
$sql .= '(';
|
$sql .= '(';
|
||||||
foreach ($values as $v)
|
foreach ($values as $v)
|
||||||
{
|
{
|
||||||
@@ -852,8 +898,7 @@ class CarrierCore extends ObjectModel
|
|||||||
(SELECT '.(int)$this->id.', `id_tax_rules_group`, `id_shop`
|
(SELECT '.(int)$this->id.', `id_tax_rules_group`, `id_shop`
|
||||||
FROM `'._DB_PREFIX_.'carrier_tax_rules_group_shop`
|
FROM `'._DB_PREFIX_.'carrier_tax_rules_group_shop`
|
||||||
WHERE `id_carrier`='.(int)$old_id.')');
|
WHERE `id_carrier`='.(int)$old_id.')');
|
||||||
// Update warehouse_carriers
|
|
||||||
Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'warehouse_carrier SET id_carrier='.(int)$this->id.' WHERE id_carrier='.(int)$old_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -913,9 +958,11 @@ class CarrierCore extends ObjectModel
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getRangeObject()
|
public function getRangeObject($shipping_method = false)
|
||||||
{
|
{
|
||||||
$shipping_method = $this->getShippingMethod();
|
if (!$shipping_method)
|
||||||
|
$shipping_method = $this->getShippingMethod();
|
||||||
|
|
||||||
if ($shipping_method == Carrier::SHIPPING_METHOD_WEIGHT)
|
if ($shipping_method == Carrier::SHIPPING_METHOD_WEIGHT)
|
||||||
return new RangeWeight();
|
return new RangeWeight();
|
||||||
elseif ($shipping_method == Carrier::SHIPPING_METHOD_PRICE)
|
elseif ($shipping_method == Carrier::SHIPPING_METHOD_PRICE)
|
||||||
@@ -1033,9 +1080,9 @@ class CarrierCore extends ObjectModel
|
|||||||
$sql = 'AND '.$alias.'.id_delivery = (
|
$sql = 'AND '.$alias.'.id_delivery = (
|
||||||
SELECT d2.id_delivery
|
SELECT d2.id_delivery
|
||||||
FROM '._DB_PREFIX_.'delivery d2
|
FROM '._DB_PREFIX_.'delivery d2
|
||||||
WHERE d2.id_carrier = '.$alias.'.id_carrier
|
WHERE d2.id_carrier = `'.bqSQL($alias).'`.id_carrier
|
||||||
AND d2.id_zone = '.$alias.'.id_zone
|
AND d2.id_zone = `'.bqSQL($alias).'`.id_zone
|
||||||
AND d2.id_'.$range_table.' = '.$alias.'.id_'.$range_table.'
|
AND d2.`id_'.bqSQL($range_table).'` = `'.bqSQL($alias).'`.`id_'.bqSQL($range_table).'`
|
||||||
'.$where.'
|
'.$where.'
|
||||||
ORDER BY d2.id_shop DESC, d2.id_shop_group DESC
|
ORDER BY d2.id_shop DESC, d2.id_shop_group DESC
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
@@ -1164,7 +1211,14 @@ class CarrierCore extends ObjectModel
|
|||||||
$query->where('pc.id_product = '.(int)$product->id);
|
$query->where('pc.id_product = '.(int)$product->id);
|
||||||
$query->where('pc.id_shop = '.(int)$id_shop);
|
$query->where('pc.id_shop = '.(int)$id_shop);
|
||||||
|
|
||||||
$carriers_for_product = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query);
|
$cache_id = 'Carrier::getAvailableCarrierList_'.(int)$product->id.'-'.(int)$id_shop;
|
||||||
|
if (!Cache::isStored($cache_id))
|
||||||
|
{
|
||||||
|
$carriers_for_product = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query);
|
||||||
|
Cache::store($cache_id, $carriers_for_product);
|
||||||
|
}
|
||||||
|
$carriers_for_product = Cache::retrieve($cache_id);
|
||||||
|
|
||||||
$carrier_list = array();
|
$carrier_list = array();
|
||||||
if (!empty($carriers_for_product))
|
if (!empty($carriers_for_product))
|
||||||
{
|
{
|
||||||
@@ -1251,5 +1305,17 @@ class CarrierCore extends ObjectModel
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public function setGroups($groups, $delete = true)
|
||||||
|
{
|
||||||
|
if ($delete)
|
||||||
|
Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'carrier_group WHERE id_carrier = '.(int)$this->id);
|
||||||
|
if (!is_array($groups) || !count($groups))
|
||||||
|
return true;
|
||||||
|
$sql = 'INSERT INTO '._DB_PREFIX_.'carrier_group (id_carrier, id_group) VALUES ';
|
||||||
|
foreach ($groups as $id_group)
|
||||||
|
$sql .= '('.(int)$this->id.', '.(int)$id_group.'),';
|
||||||
|
|
||||||
|
return Db::getInstance()->execute(rtrim($sql, ','));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
+144
-119
@@ -134,6 +134,7 @@ class CartCore extends ObjectModel
|
|||||||
'cart_rows' => array('resource' => 'cart_row', 'virtual_entity' => true, 'fields' => array(
|
'cart_rows' => array('resource' => 'cart_row', 'virtual_entity' => true, 'fields' => array(
|
||||||
'id_product' => array('required' => true, 'xlink_resource' => 'products'),
|
'id_product' => array('required' => true, 'xlink_resource' => 'products'),
|
||||||
'id_product_attribute' => array('required' => true, 'xlink_resource' => 'combinations'),
|
'id_product_attribute' => array('required' => true, 'xlink_resource' => 'combinations'),
|
||||||
|
'id_address_delivery' => array('required' => true, 'xlink_resource' => 'addresses'),
|
||||||
'quantity' => array('required' => true),
|
'quantity' => array('required' => true),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@@ -209,7 +210,7 @@ class CartCore extends ObjectModel
|
|||||||
if (!isset($this->id_address_invoice) || $this->id_address_invoice == $id_address)
|
if (!isset($this->id_address_invoice) || $this->id_address_invoice == $id_address)
|
||||||
{
|
{
|
||||||
$to_update = true;
|
$to_update = true;
|
||||||
$this->context->cart->id_address_invoice = $id_address_new;
|
$this->id_address_invoice = $id_address_new;
|
||||||
}
|
}
|
||||||
if (!isset($this->id_address_delivery) || $this->id_address_delivery == $id_address)
|
if (!isset($this->id_address_delivery) || $this->id_address_delivery == $id_address)
|
||||||
{
|
{
|
||||||
@@ -324,7 +325,7 @@ class CartCore extends ObjectModel
|
|||||||
if (!CartRule::isFeatureActive() || !$this->id)
|
if (!CartRule::isFeatureActive() || !$this->id)
|
||||||
return array();
|
return array();
|
||||||
|
|
||||||
$cache_key = 'Cart::getCartRules'.$this->id.'-'.$filter;
|
$cache_key = 'Cart::getCartRules_'.$this->id.'-'.$filter;
|
||||||
if (!Cache::isStored($cache_key))
|
if (!Cache::isStored($cache_key))
|
||||||
{
|
{
|
||||||
$result = Db::getInstance()->executeS('
|
$result = Db::getInstance()->executeS('
|
||||||
@@ -339,6 +340,7 @@ class CartCore extends ObjectModel
|
|||||||
'.($filter == CartRule::FILTER_ACTION_SHIPPING ? 'AND free_shipping = 1' : '').'
|
'.($filter == CartRule::FILTER_ACTION_SHIPPING ? 'AND free_shipping = 1' : '').'
|
||||||
'.($filter == CartRule::FILTER_ACTION_GIFT ? 'AND gift_product != 0' : '').'
|
'.($filter == CartRule::FILTER_ACTION_GIFT ? 'AND gift_product != 0' : '').'
|
||||||
'.($filter == CartRule::FILTER_ACTION_REDUCTION ? 'AND (reduction_percent != 0 OR reduction_amount != 0)' : '')
|
'.($filter == CartRule::FILTER_ACTION_REDUCTION ? 'AND (reduction_percent != 0 OR reduction_amount != 0)' : '')
|
||||||
|
.' ORDER by cr.priority ASC'
|
||||||
);
|
);
|
||||||
Cache::store($cache_key, $result);
|
Cache::store($cache_key, $result);
|
||||||
}
|
}
|
||||||
@@ -366,12 +368,16 @@ class CartCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
if (!CartRule::isFeatureActive())
|
if (!CartRule::isFeatureActive())
|
||||||
return 0;
|
return 0;
|
||||||
|
$cache_id = 'Cart::getDiscountsCustomer_'.(int)$this->id.'-'.(int)$id_cart_rule;
|
||||||
return Db::getInstance()->getValue('
|
if (!Cache::isStored($cache_id))
|
||||||
SELECT COUNT(*)
|
{
|
||||||
FROM `'._DB_PREFIX_.'cart_cart_rule`
|
$result = (int)Db::getInstance()->getValue('
|
||||||
WHERE `id_cart_rule` = '.(int)$id_cart_rule.' AND `id_cart` = '.(int)$this->id
|
SELECT COUNT(*)
|
||||||
);
|
FROM `'._DB_PREFIX_.'cart_cart_rule`
|
||||||
|
WHERE `id_cart_rule` = '.(int)$id_cart_rule.' AND `id_cart` = '.(int)$this->id);
|
||||||
|
Cache::store($cache_id, $result);
|
||||||
|
}
|
||||||
|
return Cache::retrieve($cache_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getLastProduct()
|
public function getLastProduct()
|
||||||
@@ -428,7 +434,7 @@ class CartCore extends ObjectModel
|
|||||||
product_shop.`available_for_order`, product_shop.`price`, product_shop.`active`, product_shop.`unity`, product_shop.`unit_price_ratio`,
|
product_shop.`available_for_order`, product_shop.`price`, product_shop.`active`, product_shop.`unity`, product_shop.`unit_price_ratio`,
|
||||||
stock.`quantity` AS quantity_available, p.`width`, p.`height`, p.`depth`, stock.`out_of_stock`, p.`weight`,
|
stock.`quantity` AS quantity_available, p.`width`, p.`height`, p.`depth`, stock.`out_of_stock`, p.`weight`,
|
||||||
p.`date_add`, p.`date_upd`, IFNULL(stock.quantity, 0) as quantity, pl.`link_rewrite`, cl.`link_rewrite` AS category,
|
p.`date_add`, p.`date_upd`, IFNULL(stock.quantity, 0) as quantity, pl.`link_rewrite`, cl.`link_rewrite` AS category,
|
||||||
CONCAT(cp.`id_product`, IFNULL(cp.`id_product_attribute`, 0), IFNULL(cp.`id_address_delivery`, 0)) AS unique_id, cp.id_address_delivery,
|
CONCAT(LPAD(cp.`id_product`, 10, 0), LPAD(IFNULL(cp.`id_product_attribute`, 0), 10, 0), IFNULL(cp.`id_address_delivery`, 0)) AS unique_id, cp.id_address_delivery,
|
||||||
product_shop.`wholesale_price`, product_shop.advanced_stock_management, ps.product_supplier_reference supplier_reference');
|
product_shop.`wholesale_price`, product_shop.advanced_stock_management, ps.product_supplier_reference supplier_reference');
|
||||||
|
|
||||||
// Build FROM
|
// Build FROM
|
||||||
@@ -630,14 +636,19 @@ class CartCore extends ObjectModel
|
|||||||
|
|
||||||
if (!isset($row['pai_id_image']) || $row['pai_id_image'] == 0)
|
if (!isset($row['pai_id_image']) || $row['pai_id_image'] == 0)
|
||||||
{
|
{
|
||||||
$row2 = Db::getInstance()->getRow('
|
$cache_id = 'Cart::getProducts_'.'-pai_id_image-'.(int)$row['id_product'].'-'.(int)$this->id_lang.'-'.(int)$row['id_shop'];
|
||||||
SELECT image_shop.`id_image` id_image, il.`legend`
|
if (!Cache::isStored($cache_id))
|
||||||
FROM `'._DB_PREFIX_.'image` i
|
{
|
||||||
JOIN `'._DB_PREFIX_.'image_shop` image_shop ON (i.id_image = image_shop.id_image AND image_shop.cover=1 AND image_shop.id_shop='.(int)$row['id_shop'].')
|
$row2 = Db::getInstance()->getRow('
|
||||||
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$this->id_lang.')
|
SELECT image_shop.`id_image` id_image, il.`legend`
|
||||||
WHERE i.`id_product` = '.(int)$row['id_product'].' AND image_shop.`cover` = 1'
|
FROM `'._DB_PREFIX_.'image` i
|
||||||
);
|
JOIN `'._DB_PREFIX_.'image_shop` image_shop ON (i.id_image = image_shop.id_image AND image_shop.cover=1 AND image_shop.id_shop='.(int)$row['id_shop'].')
|
||||||
|
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$this->id_lang.')
|
||||||
|
WHERE i.`id_product` = '.(int)$row['id_product'].' AND image_shop.`cover` = 1'
|
||||||
|
);
|
||||||
|
Cache::store($cache_id, $row2);
|
||||||
|
}
|
||||||
|
$row2 = Cache::retrieve($cache_id);
|
||||||
if (!$row2)
|
if (!$row2)
|
||||||
$row2 = array('id_image' => false, 'legend' => false);
|
$row2 = array('id_image' => false, 'legend' => false);
|
||||||
else
|
else
|
||||||
@@ -725,7 +736,7 @@ class CartCore extends ObjectModel
|
|||||||
*
|
*
|
||||||
* @result integer Products quantity
|
* @result integer Products quantity
|
||||||
*/
|
*/
|
||||||
public function nbProducts()
|
public function nbProducts()
|
||||||
{
|
{
|
||||||
if (!$this->id)
|
if (!$this->id)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -761,9 +772,13 @@ class CartCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
// You can't add a cart rule that does not exist
|
// You can't add a cart rule that does not exist
|
||||||
$cartRule = new CartRule($id_cart_rule, Context::getContext()->language->id);
|
$cartRule = new CartRule($id_cart_rule, Context::getContext()->language->id);
|
||||||
|
|
||||||
if (!Validate::isLoadedObject($cartRule))
|
if (!Validate::isLoadedObject($cartRule))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (Db::getInstance()->getValue('SELECT id_cart_rule FROM '._DB_PREFIX_.'cart_cart_rule WHERE id_cart_rule = '.(int)$id_cart_rule.' AND id_cart = '.(int)$this->id))
|
||||||
|
return false;
|
||||||
|
|
||||||
// Add the cart rule to the cart
|
// Add the cart rule to the cart
|
||||||
if (!Db::getInstance()->insert('cart_cart_rule', array(
|
if (!Db::getInstance()->insert('cart_cart_rule', array(
|
||||||
'id_cart_rule' => (int)$id_cart_rule,
|
'id_cart_rule' => (int)$id_cart_rule,
|
||||||
@@ -1072,9 +1087,9 @@ class CartCore extends ObjectModel
|
|||||||
);
|
);
|
||||||
$id_customization = Db::getInstance()->Insert_ID();
|
$id_customization = Db::getInstance()->Insert_ID();
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = 'INSERT INTO `'._DB_PREFIX_.'customized_data` (`id_customization`, `type`, `index`, `value`)
|
$query = 'INSERT INTO `'._DB_PREFIX_.'customized_data` (`id_customization`, `type`, `index`, `value`)
|
||||||
VALUES ('.(int)$id_customization.', '.(int)$type.', '.(int)$index.', \''.pSql($field).'\')';
|
VALUES ('.(int)$id_customization.', '.(int)$type.', '.(int)$index.', \''.pSQL($field).'\')';
|
||||||
|
|
||||||
if (!Db::getInstance()->execute($query))
|
if (!Db::getInstance()->execute($query))
|
||||||
return false;
|
return false;
|
||||||
@@ -1088,7 +1103,13 @@ class CartCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public function orderExists()
|
public function orderExists()
|
||||||
{
|
{
|
||||||
return (bool)Db::getInstance()->getValue('SELECT count(*) FROM `'._DB_PREFIX_.'orders` WHERE `id_cart` = '.(int)$this->id);
|
$cache_id = 'Cart::orderExists_'.(int)$this->id;
|
||||||
|
if (!Cache::isStored($cache_id))
|
||||||
|
{
|
||||||
|
$result = (bool)Db::getInstance()->getValue('SELECT count(*) FROM `'._DB_PREFIX_.'orders` WHERE `id_cart` = '.(int)$this->id);
|
||||||
|
Cache::store($cache_id, $result);
|
||||||
|
}
|
||||||
|
return Cache::retrieve($cache_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1255,7 +1276,7 @@ class CartCore extends ObjectModel
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getTotalCart($id_cart, $use_tax_display = false, $type = CART::BOTH)
|
public static function getTotalCart($id_cart, $use_tax_display = false, $type = Cart::BOTH)
|
||||||
{
|
{
|
||||||
$cart = new Cart($id_cart);
|
$cart = new Cart($id_cart);
|
||||||
if (!Validate::isLoadedObject($cart))
|
if (!Validate::isLoadedObject($cart))
|
||||||
@@ -1671,6 +1692,7 @@ class CartCore extends ObjectModel
|
|||||||
$warehouse_count_by_address[$product['id_address_delivery']][$warehouse['id_warehouse']]++;
|
$warehouse_count_by_address[$product['id_address_delivery']][$warehouse['id_warehouse']]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
unset($product);
|
||||||
|
|
||||||
arsort($warehouse_count_by_address);
|
arsort($warehouse_count_by_address);
|
||||||
|
|
||||||
@@ -1688,9 +1710,12 @@ class CartCore extends ObjectModel
|
|||||||
$id_warehouse = 0;
|
$id_warehouse = 0;
|
||||||
foreach ($warehouse_count_by_address[$product['id_address_delivery']] as $id_war => $val)
|
foreach ($warehouse_count_by_address[$product['id_address_delivery']] as $id_war => $val)
|
||||||
{
|
{
|
||||||
$product['carrier_list'] = array_merge($product['carrier_list'], Carrier::getAvailableCarrierList(new Product($product['id_product']), $id_war, $product['id_address_delivery'], null, $this));
|
if (in_array((int)$id_war, $product['warehouse_list']))
|
||||||
if (in_array((int)$id_war, $product['warehouse_list']) && $id_warehouse == 0)
|
{
|
||||||
$id_warehouse = (int)$id_war;
|
$product['carrier_list'] = array_merge($product['carrier_list'], Carrier::getAvailableCarrierList(new Product($product['id_product']), $id_war, $product['id_address_delivery'], null, $this));
|
||||||
|
if (!$id_warehouse)
|
||||||
|
$id_warehouse = (int)$id_war;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isset($grouped_by_warehouse[$product['id_address_delivery']]['in_stock'][$id_warehouse]))
|
if (!isset($grouped_by_warehouse[$product['id_address_delivery']]['in_stock'][$id_warehouse]))
|
||||||
@@ -1709,6 +1734,7 @@ class CartCore extends ObjectModel
|
|||||||
|
|
||||||
$grouped_by_warehouse[$product['id_address_delivery']][$key][$id_warehouse][] = $product;
|
$grouped_by_warehouse[$product['id_address_delivery']][$key][$id_warehouse][] = $product;
|
||||||
}
|
}
|
||||||
|
unset($product);
|
||||||
|
|
||||||
// Step 3 : grouped product from grouped_by_warehouse by available carriers
|
// Step 3 : grouped product from grouped_by_warehouse by available carriers
|
||||||
$grouped_by_carriers = array();
|
$grouped_by_carriers = array();
|
||||||
@@ -1727,7 +1753,6 @@ class CartCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
if (!isset($grouped_by_carriers[$id_address_delivery][$key][$id_warehouse]))
|
if (!isset($grouped_by_carriers[$id_address_delivery][$key][$id_warehouse]))
|
||||||
$grouped_by_carriers[$id_address_delivery][$key][$id_warehouse] = array();
|
$grouped_by_carriers[$id_address_delivery][$key][$id_warehouse] = array();
|
||||||
|
|
||||||
foreach ($product_list as $product)
|
foreach ($product_list as $product)
|
||||||
{
|
{
|
||||||
$package_carriers_key = implode(',', $product['carrier_list']);
|
$package_carriers_key = implode(',', $product['carrier_list']);
|
||||||
@@ -1792,7 +1817,6 @@ class CartCore extends ObjectModel
|
|||||||
);
|
);
|
||||||
$package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['carrier_list'] =
|
$package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['carrier_list'] =
|
||||||
array_intersect($package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['carrier_list'], $data['carrier_list']);
|
array_intersect($package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['carrier_list'], $data['carrier_list']);
|
||||||
|
|
||||||
$package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['product_list'] =
|
$package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['product_list'] =
|
||||||
array_merge($package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['product_list'], $data['product_list']);
|
array_merge($package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['product_list'], $data['product_list']);
|
||||||
|
|
||||||
@@ -2268,18 +2292,23 @@ class CartCore extends ObjectModel
|
|||||||
public function getAddressCollection()
|
public function getAddressCollection()
|
||||||
{
|
{
|
||||||
$collection = array();
|
$collection = array();
|
||||||
$result = Db::getInstance()->executeS(
|
$cache_id = 'Cart::getAddressCollection'.(int)$this->id;
|
||||||
'SELECT DISTINCT `id_address_delivery`
|
if (!Cache::isStored($cache_id))
|
||||||
FROM `'._DB_PREFIX_.'cart_product`
|
{
|
||||||
WHERE id_cart = '.(int)$this->id
|
$result = Db::getInstance()->executeS(
|
||||||
);
|
'SELECT DISTINCT `id_address_delivery`
|
||||||
|
FROM `'._DB_PREFIX_.'cart_product`
|
||||||
|
WHERE id_cart = '.(int)$this->id
|
||||||
|
);
|
||||||
|
Cache::store($cache_id, $result);
|
||||||
|
}
|
||||||
|
$result = Cache::retrieve($cache_id);
|
||||||
|
|
||||||
$result[] = array('id_address_delivery' => (int)$this->id_address_delivery);
|
$result[] = array('id_address_delivery' => (int)$this->id_address_delivery);
|
||||||
|
|
||||||
foreach ($result as $row)
|
foreach ($result as $row)
|
||||||
if ((int)$row['id_address_delivery'] != 0)
|
if ((int)$row['id_address_delivery'] != 0)
|
||||||
$collection[(int)$row['id_address_delivery']] = new Address((int)$row['id_address_delivery']);
|
$collection[(int)$row['id_address_delivery']] = new Address((int)$row['id_address_delivery']);
|
||||||
|
|
||||||
return $collection;
|
return $collection;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2543,6 +2572,7 @@ class CartCore extends ObjectModel
|
|||||||
if (empty($id_carrier) && $this->isCarrierInRange((int)Configuration::get('PS_CARRIER_DEFAULT'), (int)$id_zone))
|
if (empty($id_carrier) && $this->isCarrierInRange((int)Configuration::get('PS_CARRIER_DEFAULT'), (int)$id_zone))
|
||||||
$id_carrier = (int)Configuration::get('PS_CARRIER_DEFAULT');
|
$id_carrier = (int)Configuration::get('PS_CARRIER_DEFAULT');
|
||||||
|
|
||||||
|
$total_package_without_shipping_tax_inc = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, $product_list);
|
||||||
if (empty($id_carrier))
|
if (empty($id_carrier))
|
||||||
{
|
{
|
||||||
if ((int)$this->id_customer)
|
if ((int)$this->id_customer)
|
||||||
@@ -2577,7 +2607,7 @@ class CartCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
$check_delivery_price_by_weight = Carrier::checkDeliveryPriceByWeight($row['id_carrier'], $this->getTotalWeight(), (int)$id_zone);
|
$check_delivery_price_by_weight = Carrier::checkDeliveryPriceByWeight($row['id_carrier'], $this->getTotalWeight(), (int)$id_zone);
|
||||||
|
|
||||||
$total_order = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, $product_list);
|
$total_order = $total_package_without_shipping_tax_inc;
|
||||||
$check_delivery_price_by_price = Carrier::checkDeliveryPriceByPrice($row['id_carrier'], $total_order, (int)$id_zone, (int)$this->id_currency);
|
$check_delivery_price_by_price = Carrier::checkDeliveryPriceByPrice($row['id_carrier'], $total_order, (int)$id_zone, (int)$this->id_currency);
|
||||||
|
|
||||||
// Get only carriers that have a range compatible with cart
|
// Get only carriers that have a range compatible with cart
|
||||||
@@ -2680,26 +2710,8 @@ class CartCore extends ObjectModel
|
|||||||
$id_zone = (int)$default_country->id_zone;
|
$id_zone = (int)$default_country->id_zone;
|
||||||
}
|
}
|
||||||
|
|
||||||
$check_delivery_price_by_weight = Carrier::checkDeliveryPriceByWeight((int)$carrier->id, $this->getTotalWeight(), (int)$id_zone);
|
if (($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT && !Carrier::checkDeliveryPriceByWeight($carrier->id, $this->getTotalWeight(), (int)$id_zone))
|
||||||
|
|| ($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_PRICE && !Carrier::checkDeliveryPriceByPrice($carrier->id, $total_package_without_shipping_tax_inc, $id_zone, (int)$this->id_currency)
|
||||||
// Code Review V&V TO FINISH
|
|
||||||
$check_delivery_price_by_price = Carrier::checkDeliveryPriceByPrice(
|
|
||||||
$carrier->id,
|
|
||||||
$this->getOrderTotal(
|
|
||||||
true,
|
|
||||||
Cart::BOTH_WITHOUT_SHIPPING,
|
|
||||||
$product_list
|
|
||||||
),
|
|
||||||
$id_zone,
|
|
||||||
(int)$this->id_currency
|
|
||||||
);
|
|
||||||
|
|
||||||
if ((
|
|
||||||
$carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT
|
|
||||||
&& !$check_delivery_price_by_weight
|
|
||||||
) || (
|
|
||||||
$carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_PRICE
|
|
||||||
&& !$check_delivery_price_by_price
|
|
||||||
))
|
))
|
||||||
$shipping_cost += 0;
|
$shipping_cost += 0;
|
||||||
else
|
else
|
||||||
@@ -2846,7 +2858,10 @@ class CartCore extends ObjectModel
|
|||||||
$formatted_addresses['delivery'] = AddressFormat::getFormattedLayoutData($delivery);
|
$formatted_addresses['delivery'] = AddressFormat::getFormattedLayoutData($delivery);
|
||||||
$formatted_addresses['invoice'] = AddressFormat::getFormattedLayoutData($invoice);
|
$formatted_addresses['invoice'] = AddressFormat::getFormattedLayoutData($invoice);
|
||||||
|
|
||||||
$total_tax = $this->getOrderTotal() - $this->getOrderTotal(false);
|
$base_total_tax_inc = $this->getOrderTotal(true);
|
||||||
|
$base_total_tax_exc = $this->getOrderTotal(false);
|
||||||
|
|
||||||
|
$total_tax = $base_total_tax_inc - $base_total_tax_exc;
|
||||||
|
|
||||||
if ($total_tax < 0)
|
if ($total_tax < 0)
|
||||||
$total_tax = 0;
|
$total_tax = 0;
|
||||||
@@ -2944,9 +2959,9 @@ class CartCore extends ObjectModel
|
|||||||
'total_shipping_tax_exc' => $total_shipping_tax_exc,
|
'total_shipping_tax_exc' => $total_shipping_tax_exc,
|
||||||
'total_products_wt' => $total_products_wt,
|
'total_products_wt' => $total_products_wt,
|
||||||
'total_products' => $total_products,
|
'total_products' => $total_products,
|
||||||
'total_price' => $this->getOrderTotal(),
|
'total_price' => $base_total_tax_inc,
|
||||||
'total_tax' => $total_tax,
|
'total_tax' => $total_tax,
|
||||||
'total_price_without_tax' => $this->getOrderTotal(false),
|
'total_price_without_tax' => $base_total_tax_exc,
|
||||||
'is_multi_address_delivery' => $this->isMultiAddressDelivery() || ((int)Tools::getValue('multi-shipping') == 1),
|
'is_multi_address_delivery' => $this->isMultiAddressDelivery() || ((int)Tools::getValue('multi-shipping') == 1),
|
||||||
'free_ship' => $total_shipping ? 0 : 1,
|
'free_ship' => $total_shipping ? 0 : 1,
|
||||||
'carrier' => new Carrier($this->id_carrier, $id_lang),
|
'carrier' => new Carrier($this->id_carrier, $id_lang),
|
||||||
@@ -3043,9 +3058,10 @@ class CartCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public function addTextFieldToProduct($id_product, $index, $type, $text_value)
|
public function addTextFieldToProduct($id_product, $index, $type, $text_value)
|
||||||
{
|
{
|
||||||
$text_value = str_replace(array("\n", "\r"), '', nl2br($text_value));
|
if (!_PS_MAGIC_QUOTES_GPC_){
|
||||||
$text_value = str_replace('\\', '\\\\', $text_value);
|
$text_value = str_replace('\\', '\\\\', $text_value);
|
||||||
$text_value = str_replace('\'', '\\\'', $text_value);
|
$text_value = str_replace('\'', '\\\'', $text_value);
|
||||||
|
}
|
||||||
return $this->_addCustomization($id_product, 0, $index, $type, $text_value, 0);
|
return $this->_addCustomization($id_product, 0, $index, $type, $text_value, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3221,25 +3237,24 @@ class CartCore extends ObjectModel
|
|||||||
|
|
||||||
public function getWsCartRows()
|
public function getWsCartRows()
|
||||||
{
|
{
|
||||||
$query = '
|
return Db::getInstance()->executeS('
|
||||||
SELECT id_product, id_product_attribute, quantity
|
SELECT id_product, id_product_attribute, quantity, id_address_delivery
|
||||||
FROM `'._DB_PREFIX_.'cart_product`
|
FROM `'._DB_PREFIX_.'cart_product`
|
||||||
WHERE id_cart = '.(int)$this->id.'
|
WHERE id_cart = '.(int)$this->id.' AND id_shop = '.(int)Context::getContext()->shop->id
|
||||||
AND id_shop = '.(int)Context::getContext()->shop->id;
|
);
|
||||||
|
|
||||||
$result = Db::getInstance()->executeS($query);
|
|
||||||
return $result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setWsCartRows($values)
|
public function setWsCartRows($values)
|
||||||
{
|
{
|
||||||
if ($this->deleteAssociations())
|
if ($this->deleteAssociations())
|
||||||
{
|
{
|
||||||
$query = 'INSERT INTO `'._DB_PREFIX_.'cart_product`(`id_cart`, `id_product`, `id_product_attribute`, `quantity`, `date_add`, `id_shop`) VALUES ';
|
$query = 'INSERT INTO `'._DB_PREFIX_.'cart_product`(`id_cart`, `id_product`, `id_product_attribute`, `id_address_delivery`, `quantity`, `date_add`, `id_shop`) VALUES ';
|
||||||
|
|
||||||
foreach ($values as $value)
|
foreach ($values as $value)
|
||||||
$query .= '('.(int)$this->id.', '.(int)$value['id_product'].', '.
|
$query .= '('.(int)$this->id.', '.(int)$value['id_product'].', '.
|
||||||
(isset($value['id_product_attribute']) ? (int)$value['id_product_attribute'] : 'NULL').', '.(int)$value['quantity'].', NOW(), '.(int)Context::getContext()->shop->id.'),';
|
(isset($value['id_product_attribute']) ? (int)$value['id_product_attribute'] : 'NULL').', '.
|
||||||
|
(isset($value['id_address_delivery']) ? (int)$value['id_address_delivery'] : 0).', '.
|
||||||
|
(int)$value['quantity'].', NOW(), '.(int)Context::getContext()->shop->id.'),';
|
||||||
|
|
||||||
Db::getInstance()->execute(rtrim($query, ','));
|
Db::getInstance()->execute(rtrim($query, ','));
|
||||||
}
|
}
|
||||||
@@ -3424,62 +3439,72 @@ class CartCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public function setNoMultishipping()
|
public function setNoMultishipping()
|
||||||
{
|
{
|
||||||
// Upgrading quantities
|
$emptyCache = $result = false;
|
||||||
$sql = 'SELECT sum(`quantity`) as quantity, id_product, id_product_attribute, count(*) as count
|
if (Configuration::get('PS_ALLOW_MULTISHIPPING'))
|
||||||
FROM `'._DB_PREFIX_.'cart_product`
|
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
|
||||||
AND `id_shop` = '.(int)$this->id_shop.'
|
|
||||||
GROUP BY id_product, id_product_attribute
|
|
||||||
HAVING count > 1';
|
|
||||||
|
|
||||||
foreach (Db::getInstance()->executeS($sql) as $product)
|
|
||||||
{
|
{
|
||||||
$sql = 'UPDATE `'._DB_PREFIX_.'cart_product`
|
// Upgrading quantities
|
||||||
SET `quantity` = '.$product['quantity'].'
|
$sql = 'SELECT sum(`quantity`) as quantity, id_product, id_product_attribute, count(*) as count
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
FROM `'._DB_PREFIX_.'cart_product`
|
||||||
AND `id_shop` = '.(int)$this->id_shop.'
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
AND id_product = '.$product['id_product'].'
|
AND `id_shop` = '.(int)$this->id_shop.'
|
||||||
AND id_product_attribute = '.$product['id_product_attribute'];
|
GROUP BY id_product, id_product_attribute
|
||||||
Db::getInstance()->execute($sql);
|
HAVING count > 1';
|
||||||
|
|
||||||
|
foreach (Db::getInstance()->executeS($sql) as $product)
|
||||||
|
{
|
||||||
|
$sql = 'UPDATE `'._DB_PREFIX_.'cart_product`
|
||||||
|
SET `quantity` = '.$product['quantity'].'
|
||||||
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
|
AND `id_shop` = '.(int)$this->id_shop.'
|
||||||
|
AND id_product = '.$product['id_product'].'
|
||||||
|
AND id_product_attribute = '.$product['id_product_attribute'];
|
||||||
|
$result = Db::getInstance()->execute($sql);
|
||||||
|
if ($result)
|
||||||
|
$emptyCache = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Merging multiple lines
|
||||||
|
$sql = 'DELETE cp1
|
||||||
|
FROM `'._DB_PREFIX_.'cart_product` cp1
|
||||||
|
INNER JOIN `'._DB_PREFIX_.'cart_product` cp2
|
||||||
|
ON (
|
||||||
|
(cp1.id_cart = cp2.id_cart)
|
||||||
|
AND (cp1.id_product = cp2.id_product)
|
||||||
|
AND (cp1.id_product_attribute = cp2.id_product_attribute)
|
||||||
|
AND (cp1.id_address_delivery <> cp2.id_address_delivery)
|
||||||
|
AND (cp1.date_add > cp2.date_add)
|
||||||
|
)';
|
||||||
|
Db::getInstance()->execute($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update delivery address for each product line
|
||||||
|
$sql = 'UPDATE `'._DB_PREFIX_.'cart_product`
|
||||||
|
SET `id_address_delivery` = (
|
||||||
|
SELECT `id_address_delivery` FROM `'._DB_PREFIX_.'cart`
|
||||||
|
WHERE `id_cart` = '.(int)$this->id.' AND `id_shop` = '.(int)$this->id_shop.'
|
||||||
|
)
|
||||||
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
|
'.(Configuration::get('PS_ALLOW_MULTISHIPPING') ? ' AND `id_shop` = '.(int)$this->id_shop : '');
|
||||||
|
|
||||||
|
$cache_id = 'Cart::setNoMultishipping'.(int)$this->id.'-'.(int)$this->id_shop;
|
||||||
|
if (!Cache::isStored($cache_id))
|
||||||
|
{
|
||||||
|
if ($result = (bool)Db::getInstance()->execute($sql))
|
||||||
|
$emptyCache = true;
|
||||||
|
Cache::store($cache_id, $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Merging multiple lines
|
if (Customization::isFeatureActive())
|
||||||
$sql = 'DELETE cp1
|
Db::getInstance()->execute('
|
||||||
FROM `'._DB_PREFIX_.'cart_product` cp1
|
UPDATE `'._DB_PREFIX_.'customization`
|
||||||
INNER JOIN `'._DB_PREFIX_.'cart_product` cp2
|
SET `id_address_delivery` = (
|
||||||
ON (
|
SELECT `id_address_delivery` FROM `'._DB_PREFIX_.'cart`
|
||||||
(cp1.id_cart = cp2.id_cart)
|
|
||||||
AND (cp1.id_product = cp2.id_product)
|
|
||||||
AND (cp1.id_product_attribute = cp2.id_product_attribute)
|
|
||||||
AND (cp1.id_address_delivery <> cp2.id_address_delivery)
|
|
||||||
AND (cp1.date_add > cp2.date_add)
|
|
||||||
)';
|
|
||||||
Db::getInstance()->execute($sql);
|
|
||||||
|
|
||||||
// Upgrading address delivery
|
|
||||||
$sql = 'UPDATE `'._DB_PREFIX_.'cart_product`
|
|
||||||
SET `id_address_delivery` =
|
|
||||||
(
|
|
||||||
SELECT `id_address_delivery`
|
|
||||||
FROM `'._DB_PREFIX_.'cart`
|
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
|
||||||
AND `id_shop` = '.(int)$this->id_shop.'
|
|
||||||
)
|
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
|
||||||
'.(Configuration::get('PS_ALLOW_MULTISHIPPING') ? ' AND `id_shop` = '.(int)$this->id_shop : '');
|
|
||||||
|
|
||||||
Db::getInstance()->execute($sql);
|
|
||||||
|
|
||||||
$sql = 'UPDATE `'._DB_PREFIX_.'customization`
|
|
||||||
SET `id_address_delivery` =
|
|
||||||
(
|
|
||||||
SELECT `id_address_delivery`
|
|
||||||
FROM `'._DB_PREFIX_.'cart`
|
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
)
|
)
|
||||||
WHERE `id_cart` = '.(int)$this->id;
|
WHERE `id_cart` = '.(int)$this->id);
|
||||||
|
|
||||||
Db::getInstance()->execute($sql);
|
if ($emptyCache)
|
||||||
|
$this->_products = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+42
-47
@@ -10,7 +10,7 @@
|
|||||||
* http://opensource.org/licenses/osl-3.0.php
|
* http://opensource.org/licenses/osl-3.0.php
|
||||||
* If you did not receive a copy of the license and are unable to
|
* If you did not receive a copy of the license and are unable to
|
||||||
* obtain it through the world-wide-web, please send an email
|
* obtain it through the world-wide-web, please send an email
|
||||||
* to license@prestashop.com so we can send you a copy 502immediately.
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
*
|
*
|
||||||
* DISCLAIMER
|
* DISCLAIMER
|
||||||
*
|
*
|
||||||
@@ -254,6 +254,17 @@ class CartRuleCore extends ObjectModel
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
$cart_rule['quantity_for_user'] = 0;
|
$cart_rule['quantity_for_user'] = 0;
|
||||||
|
unset($cart_rule);
|
||||||
|
|
||||||
|
foreach ($result as $cart_rule)
|
||||||
|
if ($cart_rule['shop_restriction'])
|
||||||
|
{
|
||||||
|
$cartRuleShops = Db::getInstance()->executeS('SELECT id_shop FROM '._DB_PREFIX_.'cart_rule_shop WHERE id_cart_rule = '.(int)$cart_rule['id_cart_rule']);
|
||||||
|
foreach ($cartRuleShops as $cartRuleShop)
|
||||||
|
if (Shop::isFeatureActive() && ($cartRuleShop['id_shop'] == Context::getContext()->shop->id))
|
||||||
|
continue 2;
|
||||||
|
unset($result[$key]);
|
||||||
|
}
|
||||||
|
|
||||||
// Retrocompatibility with 1.4 discounts
|
// Retrocompatibility with 1.4 discounts
|
||||||
foreach ($result as &$cart_rule)
|
foreach ($result as &$cart_rule)
|
||||||
@@ -464,7 +475,7 @@ class CartRuleCore extends ObjectModel
|
|||||||
// Check if the products chosen by the customer are usable with the cart rule
|
// Check if the products chosen by the customer are usable with the cart rule
|
||||||
if ($this->product_restriction)
|
if ($this->product_restriction)
|
||||||
{
|
{
|
||||||
$r = $this->checkProductRestrictions($context, false, $display_error);
|
$r = $this->checkProductRestrictions($context, false, $display_error, $alreadyInCart);
|
||||||
if ($r !== false && $display_error)
|
if ($r !== false && $display_error)
|
||||||
return $r;
|
return $r;
|
||||||
elseif (!$r && !$display_error)
|
elseif (!$r && !$display_error)
|
||||||
@@ -495,36 +506,14 @@ class CartRuleCore extends ObjectModel
|
|||||||
$cartTotal = $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_PRODUCTS);
|
$cartTotal = $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_PRODUCTS);
|
||||||
if ($this->minimum_amount_shipping)
|
if ($this->minimum_amount_shipping)
|
||||||
$cartTotal += $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_SHIPPING);
|
$cartTotal += $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_SHIPPING);
|
||||||
|
$products = $context->cart->getProducts();
|
||||||
|
$cart_rules = $context->cart->getCartRules();
|
||||||
|
|
||||||
// If a product is given for free in this rule and already in the cart, the price is subtracted
|
foreach ($cart_rules as &$cart_rule)
|
||||||
if ($this->gift_product && $alreadyInCart)
|
if ($cart_rule['gift_product'])
|
||||||
{
|
foreach ($products as $key => &$product)
|
||||||
$query = new DbQuery();
|
if (empty($product['gift']) && $product['id_product'] == $cart_rule['gift_product'] && $product['id_product_attribute'] == $cart_rule['gift_product_attribute'])
|
||||||
|
$cartTotal = Tools::ps_round($cartTotal - $product[$this->minimum_amount_tax ? 'price_wt' : 'price'], (int)$context->currency->decimals * _PS_PRICE_DISPLAY_PRECISION_);
|
||||||
$query->select('id_product');
|
|
||||||
$query->from('cart_product');
|
|
||||||
$query->where('id_product = '.(int)$this->gift_product);
|
|
||||||
$query->where('id_cart = '.(int)$context->cart->id);
|
|
||||||
|
|
||||||
if ((int)$this->gift_product_attribute)
|
|
||||||
$query->where('id_product_attribute = '.(int)$this->gift_product_attribute);
|
|
||||||
|
|
||||||
if (Db::getInstance()->getValue($query))
|
|
||||||
{
|
|
||||||
$ref = false;
|
|
||||||
$product_price = Product::getPriceStatic(
|
|
||||||
$this->gift_product,
|
|
||||||
$this->minimum_amount_tax,
|
|
||||||
$this->gift_product_attribute,
|
|
||||||
null, null, false, true, 1, null,
|
|
||||||
$context->cart->id_customer ? $context->cart->id_customer : null,
|
|
||||||
$context->cart->id,
|
|
||||||
(int)$context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')} ? (int)$context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')} : null,
|
|
||||||
$ref, true, true, $context, true
|
|
||||||
);
|
|
||||||
$cartTotal -= $product_price;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($cartTotal < $minimum_amount)
|
if ($cartTotal < $minimum_amount)
|
||||||
return (!$display_error) ? false : Tools::displayError('You have not reached the minimum amount required to use this voucher');
|
return (!$display_error) ? false : Tools::displayError('You have not reached the minimum amount required to use this voucher');
|
||||||
@@ -545,6 +534,7 @@ class CartRuleCore extends ObjectModel
|
|||||||
return (!$display_error) ? false : Tools::displayError('This voucher is already in your cart');
|
return (!$display_error) ? false : Tools::displayError('This voucher is already in your cart');
|
||||||
if ($otherCartRule['gift_product'])
|
if ($otherCartRule['gift_product'])
|
||||||
--$nb_products;
|
--$nb_products;
|
||||||
|
|
||||||
if ($this->cart_rule_restriction && $otherCartRule['cart_rule_restriction'] && $otherCartRule['id_cart_rule'] != $this->id)
|
if ($this->cart_rule_restriction && $otherCartRule['cart_rule_restriction'] && $otherCartRule['id_cart_rule'] != $this->id)
|
||||||
{
|
{
|
||||||
$combinable = Db::getInstance()->getValue('
|
$combinable = Db::getInstance()->getValue('
|
||||||
@@ -572,7 +562,7 @@ class CartRuleCore extends ObjectModel
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function checkProductRestrictions(Context $context, $return_products = false, $display_error = true)
|
protected function checkProductRestrictions(Context $context, $return_products = false, $display_error = true, $alreadyInCart = false)
|
||||||
{
|
{
|
||||||
$selectedProducts = array();
|
$selectedProducts = array();
|
||||||
|
|
||||||
@@ -607,6 +597,8 @@ class CartRuleCore extends ObjectModel
|
|||||||
if (in_array($cartAttribute['id_attribute'], $productRule['values']))
|
if (in_array($cartAttribute['id_attribute'], $productRule['values']))
|
||||||
{
|
{
|
||||||
$countMatchingProducts += $cartAttribute['quantity'];
|
$countMatchingProducts += $cartAttribute['quantity'];
|
||||||
|
if ($alreadyInCart && $this->gift_product == $cartProduct['id_product']&& $this->gift_product_attribute == $cartProduct['id_product_attribute'])
|
||||||
|
--$countMatchingProducts;
|
||||||
$matchingProductsList[] = $cartAttribute['id_product'].'-'.$cartAttribute['id_product_attribute'];
|
$matchingProductsList[] = $cartAttribute['id_product'].'-'.$cartAttribute['id_product_attribute'];
|
||||||
}
|
}
|
||||||
if ($countMatchingProducts < $productRuleGroup['quantity'])
|
if ($countMatchingProducts < $productRuleGroup['quantity'])
|
||||||
@@ -625,6 +617,8 @@ class CartRuleCore extends ObjectModel
|
|||||||
if (in_array($cartProduct['id_product'], $productRule['values']))
|
if (in_array($cartProduct['id_product'], $productRule['values']))
|
||||||
{
|
{
|
||||||
$countMatchingProducts += $cartProduct['quantity'];
|
$countMatchingProducts += $cartProduct['quantity'];
|
||||||
|
if ($alreadyInCart && $this->gift_product == $cartProduct['id_product'])
|
||||||
|
--$countMatchingProducts;
|
||||||
$matchingProductsList[] = $cartProduct['id_product'].'-0';
|
$matchingProductsList[] = $cartProduct['id_product'].'-0';
|
||||||
}
|
}
|
||||||
if ($countMatchingProducts < $productRuleGroup['quantity'])
|
if ($countMatchingProducts < $productRuleGroup['quantity'])
|
||||||
@@ -1104,32 +1098,33 @@ class CartRuleCore extends ObjectModel
|
|||||||
'.($context->customer->id ? 'OR cr.id_customer = '.(int)$context->cart->id_customer : '').'
|
'.($context->customer->id ? 'OR cr.id_customer = '.(int)$context->cart->id_customer : '').'
|
||||||
)
|
)
|
||||||
AND (
|
AND (
|
||||||
cr.carrier_restriction = 0
|
cr.`carrier_restriction` = 0
|
||||||
'.($context->cart->id_carrier ? 'OR c.id_carrier = '.(int)$context->cart->id_carrier : '').'
|
'.($context->cart->id_carrier ? 'OR c.id_carrier = '.(int)$context->cart->id_carrier : '').'
|
||||||
)
|
)
|
||||||
AND (
|
AND (
|
||||||
cr.shop_restriction = 0
|
cr.`shop_restriction` = 0
|
||||||
'.((Shop::isFeatureActive() && $context->shop->id) ? 'OR crs.id_shop = '.(int)$context->shop->id : '').'
|
'.((Shop::isFeatureActive() && $context->shop->id) ? 'OR crs.id_shop = '.(int)$context->shop->id : '').'
|
||||||
)
|
)
|
||||||
AND (
|
AND (
|
||||||
cr.group_restriction = 0
|
cr.`group_restriction` = 0
|
||||||
'.($context->customer->id ? 'OR 0 < (
|
'.($context->customer->id ? 'OR 0 < (
|
||||||
SELECT cg.id_group
|
SELECT cg.`id_group`
|
||||||
FROM '._DB_PREFIX_.'customer_group cg
|
FROM `'._DB_PREFIX_.'customer_group` cg
|
||||||
LEFT JOIN '._DB_PREFIX_.'cart_rule_group crg ON (cg.id_group = crg.id_group AND cg.id_group = '.(int)$context->customer->id_default_group.')
|
INNER JOIN `'._DB_PREFIX_.'cart_rule_group` crg ON cg.id_group = crg.id_group
|
||||||
WHERE cr.id_cart_rule = crg.id_cart_rule
|
WHERE cr.`id_cart_rule` = crg.`id_cart_rule`
|
||||||
AND cg.id_customer = '.(int)$context->customer->id.' LIMIT 1
|
AND cg.`id_customer` = '.(int)$context->customer->id.'
|
||||||
|
LIMIT 1
|
||||||
)' : '').'
|
)' : '').'
|
||||||
)
|
)
|
||||||
AND (
|
AND (
|
||||||
cr.reduction_product <= 0
|
cr.`reduction_product` <= 0
|
||||||
OR cr.reduction_product IN (
|
OR cr.`reduction_product` IN (
|
||||||
SELECT id_product
|
SELECT `id_product`
|
||||||
FROM '._DB_PREFIX_.'cart_product
|
FROM `'._DB_PREFIX_.'cart_product`
|
||||||
WHERE id_cart = '.(int)$context->cart->id.'
|
WHERE `id_cart` = '.(int)$context->cart->id.'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
AND cr.id_cart_rule NOT IN (SELECT id_cart_rule FROM '._DB_PREFIX_.'cart_cart_rule WHERE id_cart = '.(int)$context->cart->id.')
|
AND cr.id_cart_rule NOT IN (SELECT id_cart_rule FROM '._DB_PREFIX_.'cart_cart_rule WHERE id_cart = '.(int)$context->cart->id.')
|
||||||
ORDER BY priority';
|
ORDER BY priority';
|
||||||
$result = Db::getInstance()->executeS($sql);
|
$result = Db::getInstance()->executeS($sql);
|
||||||
if ($result)
|
if ($result)
|
||||||
@@ -1206,7 +1201,7 @@ class CartRuleCore extends ObjectModel
|
|||||||
SELECT cr.*, crl.*
|
SELECT cr.*, crl.*
|
||||||
FROM '._DB_PREFIX_.'cart_rule cr
|
FROM '._DB_PREFIX_.'cart_rule cr
|
||||||
LEFT JOIN '._DB_PREFIX_.'cart_rule_lang crl ON (cr.id_cart_rule = crl.id_cart_rule AND crl.id_lang = '.(int)$id_lang.')
|
LEFT JOIN '._DB_PREFIX_.'cart_rule_lang crl ON (cr.id_cart_rule = crl.id_cart_rule AND crl.id_lang = '.(int)$id_lang.')
|
||||||
WHERE code LIKE \'%'.pSQL($name).'%\'
|
WHERE code LIKE \'%'.pSQL($name).'%\' OR name LIKE \'%'.pSQL($name).'%\'
|
||||||
');
|
');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user