浏览代码

mobile moban add

NoteStar 5 年之前
父节点
当前提交
214f78ef8d
共有 100 个文件被更改,包括 38202 次插入0 次删除
  1. 1164 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/css/fec.css
  2. 684 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/css/sm-extend.css
  3. 6 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/css/sm-extend.min.css
  4. 4830 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/css/sm.css
  5. 8 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/css/sm.min.css
  6. 158 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/fonts/font_1433401008_2229297.svg
  7. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/fonts/font_1433401008_2229297.ttf
  8. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/fonts/font_1433401008_2229297.woff
  9. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_0.png
  10. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_1.png
  11. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_2.png
  12. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_3.png
  13. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_4.png
  14. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_5.png
  15. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/cart.gif
  16. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/checkbox.png
  17. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/cur.png
  18. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/i_msg-error.gif
  19. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/i_msg-success.gif
  20. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/pay.png
  21. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/product_rating_big_blank_star.png
  22. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/product_rating_big_full_star.png
  23. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/sign.png
  24. 二进制
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/tag.png
  25. 20 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/fec.js
  26. 0 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/jquery.lazyload.min.js
  27. 13421 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm-city-picker.js
  28. 8 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm-city-picker.min.js
  29. 3376 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm-extend.js
  30. 8 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm-extend.min.js
  31. 8102 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm.js
  32. 10 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm.min.js
  33. 2 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/zepto.min.js
  34. 193 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index.php
  35. 48 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index/filter/attr.php
  36. 41 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index/filter/price.php
  37. 21 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index/filter/refineby.php
  38. 10 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index/filter/subcategory.php
  39. 36 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index/toolbar.php
  40. 22 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/price.php
  41. 417 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index.php
  42. 31 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/buy_also_buy.php
  43. 239 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/custom_option.php
  44. 46 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/image.php
  45. 69 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/options.php
  46. 31 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/payment.php
  47. 23 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/price.php
  48. 115 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/review.php
  49. 44 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/tier_price.php
  50. 170 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/reviewproduct/add.php
  51. 162 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/reviewproduct/lists.php
  52. 177 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalogsearch/index/index.php
  53. 30 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalogsearch/index/index/toolbar.php
  54. 389 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/cart/index.php
  55. 393 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index.php
  56. 111 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index/address.php
  57. 107 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index/address_select.php
  58. 45 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index/payment.php
  59. 107 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index/review_order.php
  60. 36 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index/shipping.php
  61. 20 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/cms/article/index.php
  62. 109 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/cms/home/index.php
  63. 28 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/cms/home/index/price.php
  64. 47 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/cms/home/index/product.php
  65. 121 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/forgotpassword.php
  66. 44 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/forgotpasswordsubmit.php
  67. 15 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/index.php
  68. 176 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/login.php
  69. 257 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/register.php
  70. 21 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/registerenable.php
  71. 179 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/resetpassword.php
  72. 25 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/resetpasswordsuccess.php
  73. 239 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/address/edit.php
  74. 83 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/address/index.php
  75. 126 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/contacts/index.php
  76. 253 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/editaccount/index.php
  77. 32 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/leftmenu.php
  78. 12 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/newsletter/error.php
  79. 3 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/newsletter/index.php
  80. 72 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/order/index.php
  81. 9 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/order/reorder.php
  82. 215 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/order/view.php
  83. 114 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/productfavorite/index.php
  84. 89 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/productreview/index.php
  85. 12 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/blank.php
  86. 64 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/category_view.php
  87. 66 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/home.php
  88. 66 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/main.php
  89. 66 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/one_step_checkout.php
  90. 66 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/product_view.php
  91. 5 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/wxpay_jsapi.php
  92. 24 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/checkmoney/success.php
  93. 317 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/paypal/express/review.php
  94. 93 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/paypal/express/review/address.php
  95. 91 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/paypal/express/review/review_order.php
  96. 36 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/paypal/express/review/shipping.php
  97. 49 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/paypal/standard/start.php
  98. 18 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/success.php
  99. 30 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/success/index.php
  100. 0 0
      addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/wxpayh5/review.php

文件差异内容过多而无法显示
+ 1164 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/css/fec.css


+ 684 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/css/sm-extend.css

@@ -0,0 +1,684 @@
+/*!
+ * =====================================================
+ * SUI Mobile - http://m.sui.taobao.org/
+ *
+ * =====================================================
+ */
+
+/*.transition(@d) {
+    -webkit-transition-duration: @d;
+    transition-duration: @d;
+}
+.delay(@d) {
+    -webkit-transition-delay: @d;
+    transition-delay: @d;
+}
+.transform(@t) {
+    -webkit-transform: @t;
+    transform: @t;
+}
+.transform-origin(@to) {
+    -webkit-transform-origin: @to;
+    transform-origin: @to;
+}
+.translate3d(@x:0, @y:0, @z:0) {
+    -webkit-transform: translate3d(@x,@y,@z);
+    transform: translate3d(@x,@y,@z);
+}
+.animation(@a) {
+    -webkit-animation: @a;
+    animation: @a;
+}
+.border-box(){
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+}
+.box-shadow(@bs) {
+    -webkit-box-shadow: @bs;
+    box-shadow: @bs;
+}
+.animation-name(@name) {
+  -webkit-animation-name: @name;
+     -moz-animation-name: @name;
+          animation-name: @name;
+}
+.animation-duration(@duration) {
+  -webkit-animation-duration: @duration;
+     -moz-animation-duration: @duration;
+          animation-duration: @duration;
+}
+.animation-direction(@direction) {
+  -webkit-animation-direction: @direction;
+     -moz-animation-direction: @direction;
+          animation-direction: @direction;
+}
+*/
+/* === Photo Browser === */
+.photo-browser {
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  z-index: 10500;
+}
+.photo-browser .bar-tab .tab-item .icon {
+  width: 14px;
+  height: 14px;
+  margin-top: -5px;
+}
+.photo-browser .bar-tab ~ .photo-browser-captions {
+  bottom: 52px;
+  -webkit-transform: translate3d(0, 0, 0);
+  transform: translate3d(0, 0, 0);
+}
+.photo-browser.photo-browser-in {
+  display: block;
+  -webkit-animation: photoBrowserIn 400ms forwards;
+          animation: photoBrowserIn 400ms forwards;
+}
+.photo-browser.photo-browser-out {
+  display: block;
+  -webkit-animation: photoBrowserOut 400ms forwards;
+          animation: photoBrowserOut 400ms forwards;
+}
+html.with-statusbar-overlay .photo-browser {
+  height: -webkit-calc(100% - 1rem);
+  height: calc(100% - 1rem);
+  top: 1rem;
+}
+.popup > .photo-browser .navbar,
+body > .photo-browser .navbar,
+.popup > .photo-browser .toolbar,
+body > .photo-browser .toolbar {
+  -webkit-transform: translate3d(0, 0, 0);
+          transform: translate3d(0, 0, 0);
+}
+.photo-browser .page[data-page="photo-browser-slides"] {
+  background: none;
+}
+.photo-browser .page {
+  box-sizing: border-box;
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  background: #efeff4;
+}
+.photo-browser .view {
+  overflow: hidden;
+  box-sizing: border-box;
+  position: relative;
+  width: 100%;
+  height: 100%;
+  z-index: 5000;
+}
+.page[data-page="photo-browser-slides"] .toolbar a {
+  color: #4cd964;
+}
+.photo-browser-popup {
+  background: none;
+}
+.photo-browser .navbar,
+.view[data-page="photo-browser-slides"] .navbar,
+.photo-browser .toolbar,
+.view[data-page="photo-browser-slides"] .toolbar {
+  background: rgba(247, 247, 247, 0.95);
+  -webkit-transition: 400ms;
+          transition: 400ms;
+}
+.view[data-page="photo-browser-slides"] .page[data-page="photo-browser-slides"] .navbar,
+.view[data-page="photo-browser-slides"] .page[data-page="photo-browser-slides"] .toolbar {
+  -webkit-transform: translate3d(0, 0, 0);
+          transform: translate3d(0, 0, 0);
+}
+.photo-browser-exposed .navbar,
+.photo-browser-exposed .toolbar {
+  opacity: 0;
+  visibility: hidden;
+  pointer-events: none;
+}
+.photo-browser-exposed .photo-browser-swiper-container {
+  background: #000;
+}
+.photo-browser-of {
+  margin: 0 0.25rem;
+}
+.photo-browser-captions {
+  pointer-events: none;
+  position: absolute;
+  left: 0;
+  width: 100%;
+  bottom: 0;
+  z-index: 10;
+  opacity: 1;
+  -webkit-transition: 400ms;
+          transition: 400ms;
+}
+.photo-browser-captions.photo-browser-captions-exposed {
+  opacity: 0;
+}
+.toolbar ~ .photo-browser-captions {
+  bottom: 2.2rem;
+  -webkit-transform: translate3d(0, 0rem, 0);
+          transform: translate3d(0, 0rem, 0);
+}
+.photo-browser-exposed .toolbar ~ .photo-browser-captions {
+  -webkit-transform: translate3d(0, 2.2rem, 0);
+          transform: translate3d(0, 2.2rem, 0);
+}
+.toolbar ~ .photo-browser-captions.photo-browser-captions-exposed {
+  transformt: ranslate3d(0, 0rem, 0);
+}
+.photo-browser-caption {
+  box-sizing: border-box;
+  -webkit-transition: 300ms;
+          transition: 300ms;
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  opacity: 0;
+  padding: 0.2rem 0.25px;
+  width: 100%;
+  text-align: center;
+  color: #fff;
+  background: rgba(0, 0, 0, 0.8);
+}
+.photo-browser-caption:empty {
+  display: none;
+}
+.photo-browser-caption.photo-browser-caption-active {
+  opacity: 1;
+}
+.photo-browser-captions-light .photo-browser-caption {
+  background: rgba(255, 255, 255, 0.8);
+  color: #3d4145;
+}
+.photo-browser-exposed .photo-browser-caption {
+  color: #fff;
+  background: rgba(0, 0, 0, 0.8);
+}
+.photo-browser-swiper-container {
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  background: #fff;
+  -webkit-transition: 400ms;
+          transition: 400ms;
+}
+.photo-browser-swiper-wrapper {
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  padding: 0;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+}
+.photo-browser-link-inactive {
+  opacity: 0.3;
+}
+.photo-browser-slide {
+  width: 100%;
+  height: 100%;
+  position: relative;
+  overflow: hidden;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-pack: center;
+  -webkit-justify-content: center;
+          justify-content: center;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+          align-items: center;
+  -webkit-flex-shrink: 0;
+          flex-shrink: 0;
+  box-sizing: border-box;
+}
+.photo-browser-slide.transitioning {
+  -webkit-transition: 400ms;
+          transition: 400ms;
+}
+.photo-browser-slide span.photo-browser-zoom-container {
+  width: 100%;
+  text-align: center;
+  display: none;
+}
+.photo-browser-slide img {
+  width: auto;
+  height: auto;
+  max-width: 100%;
+  max-height: 100%;
+  display: none;
+}
+.photo-browser-slide.swiper-slide-active span.photo-browser-zoom-container,
+.photo-browser-slide.swiper-slide-next span.photo-browser-zoom-container,
+.photo-browser-slide.swiper-slide-prev span.photo-browser-zoom-container {
+  display: block;
+}
+.photo-browser-slide.swiper-slide-active img,
+.photo-browser-slide.swiper-slide-next img,
+.photo-browser-slide.swiper-slide-prev img {
+  display: inline;
+}
+.photo-browser-slide.swiper-slide-active.photo-browser-slide-lazy .preloader,
+.photo-browser-slide.swiper-slide-next.photo-browser-slide-lazy .preloader,
+.photo-browser-slide.swiper-slide-prev.photo-browser-slide-lazy .preloader {
+  display: block;
+}
+.photo-browser-slide iframe {
+  width: 100%;
+  height: 100%;
+}
+.photo-browser-slide .preloader {
+  display: none;
+  position: absolute;
+  width: 2.1rem;
+  height: 2.1rem;
+  margin-left: -2.1rem;
+  margin-top: -2.1rem;
+  left: 50%;
+  top: 50%;
+}
+.photo-browser-dark .navbar,
+.photo-browser-dark .toolbar {
+  background: rgba(30, 30, 30, 0.8);
+  color: #fff;
+}
+.photo-browser-dark .navbar:before,
+.photo-browser-dark .toolbar:before {
+  display: none;
+}
+.photo-browser-dark .navbar:after,
+.photo-browser-dark .toolbar:after {
+  display: none;
+}
+.photo-browser-dark .navbar a,
+.photo-browser-dark .toolbar a {
+  color: #fff;
+}
+.photo-browser-dark .photo-browser-swiper-container {
+  background: #000;
+}
+@-webkit-keyframes photoBrowserIn {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0) scale(0.5);
+            transform: translate3d(0, 0, 0) scale(0.5);
+    opacity: 0;
+  }
+  100% {
+    -webkit-transform: translate3d(0, 0, 0) scale(1);
+            transform: translate3d(0, 0, 0) scale(1);
+    opacity: 1;
+  }
+}
+@keyframes photoBrowserIn {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0) scale(0.5);
+            transform: translate3d(0, 0, 0) scale(0.5);
+    opacity: 0;
+  }
+  100% {
+    -webkit-transform: translate3d(0, 0, 0) scale(1);
+            transform: translate3d(0, 0, 0) scale(1);
+    opacity: 1;
+  }
+}
+@-webkit-keyframes photoBrowserOut {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0) scale(1);
+            transform: translate3d(0, 0, 0) scale(1);
+    opacity: 1;
+  }
+  100% {
+    -webkit-transform: translate3d(0, 0, 0) scale(0.5);
+            transform: translate3d(0, 0, 0) scale(0.5);
+    opacity: 0;
+  }
+}
+@keyframes photoBrowserOut {
+  0% {
+    -webkit-transform: translate3d(0, 0, 0) scale(1);
+            transform: translate3d(0, 0, 0) scale(1);
+    opacity: 1;
+  }
+  100% {
+    -webkit-transform: translate3d(0, 0, 0) scale(0.5);
+            transform: translate3d(0, 0, 0) scale(0.5);
+    opacity: 0;
+  }
+}
+/* === Swiper === */
+.swiper-container {
+  margin: 0 auto;
+  position: relative;
+  overflow: hidden;
+  padding-bottom: 30px;
+  /* Fix of Webkit flickering */
+  z-index: 1;
+}
+.swiper-container-no-flexbox .swiper-slide {
+  float: left;
+}
+.swiper-container-vertical > .swiper-wrapper {
+  -webkit-box-orient: vertical;
+  -webkit-flex-direction: column;
+  flex-direction: column;
+}
+.swiper-wrapper {
+  position: relative;
+  width: 100%;
+  height: 100%;
+  z-index: 1;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-transform-style: preserve-3d;
+  -ms-transform-style: preserve-3d;
+  transform-style: preserve-3d;
+  -webkit-transition-property: -webkit-transform;
+  transition-property: transform;
+  box-sizing: content-box;
+}
+.swiper-container-android .swiper-slide,
+.swiper-wrapper {
+  -webkit-transform: translate3d(0px, 0, 0);
+  transform: translate3d(0px, 0, 0);
+}
+.swiper-container-multirow > .swiper-wrapper {
+  -webkit-box-lines: multiple;
+  -moz-box-lines: multiple;
+  -ms-fles-wrap: wrap;
+  -webkit-flex-wrap: wrap;
+  flex-wrap: wrap;
+}
+.swiper-container-free-mode > .swiper-wrapper {
+  -webkit-transition-timing-function: ease-out;
+  transition-timing-function: ease-out;
+  margin: 0 auto;
+}
+.swiper-slide {
+  -webkit-transform-style: preserve-3d;
+  -ms-transform-style: preserve-3d;
+  transform-style: preserve-3d;
+  -webkit-flex-shrink: 0;
+  -ms-flex: 0 0 auto;
+  -webkit-flex-shrink: 0;
+          flex-shrink: 0;
+  width: 100%;
+  height: 100%;
+  position: relative;
+}
+/* a11y */
+.swiper-container .swiper-notification {
+  position: absolute;
+  left: 0;
+  top: 0;
+  pointer-events: none;
+  opacity: 0;
+  z-index: -1000;
+}
+/* IE10 Windows Phone 8 Fixes */
+.swiper-wp8-horizontal {
+  touch-action: pan-y;
+}
+.swiper-wp8-vertical {
+  touch-action: pan-x;
+}
+/* Arrows */
+.swiper-button-prev,
+.swiper-button-next {
+  position: absolute;
+  top: 50%;
+  width: 27px;
+  height: 44px;
+  margin-top: -22px;
+  z-index: 10;
+  cursor: pointer;
+  background-size: 27px 44px;
+  background-position: center;
+  background-repeat: no-repeat;
+}
+.swiper-button-prev.swiper-button-disabled,
+.swiper-button-next.swiper-button-disabled {
+  opacity: 0.35;
+  cursor: auto;
+  pointer-events: none;
+}
+.swiper-button-prev,
+.swiper-container-rtl .swiper-button-next {
+  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
+  left: 10px;
+  right: auto;
+}
+.swiper-button-next,
+.swiper-container-rtl .swiper-button-prev {
+  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
+  right: 10px;
+  left: auto;
+}
+/* Pagination Styles */
+.swiper-pagination {
+  position: absolute;
+  text-align: center;
+  -webkit-transition: 300ms;
+  transition: 300ms;
+  -webkit-transform: translate3d(0, 0, 0);
+  transform: translate3d(0, 0, 0);
+  z-index: 10;
+}
+.swiper-pagination.swiper-pagination-hidden {
+  opacity: 0;
+}
+.swiper-pagination-bullet {
+  width: 8px;
+  height: 8px;
+  display: inline-block;
+  border-radius: 100%;
+  background: #000;
+  opacity: 0.2;
+}
+.swiper-pagination-bullet-active {
+  opacity: 1;
+  background: #007aff;
+}
+.swiper-container-vertical > .swiper-pagination {
+  right: 10px;
+  top: 50%;
+  -webkit-transform: translate3d(0px, -50%, 0);
+  transform: translate3d(0px, -50%, 0);
+}
+.swiper-container-vertical > .swiper-pagination .swiper-pagination-bullet {
+  margin: 5px 0;
+  display: block;
+}
+.swiper-container-horizontal > .swiper-pagination {
+  bottom: 10px;
+  left: 0;
+  width: 100%;
+}
+.swiper-container-horizontal > .swiper-pagination .swiper-pagination-bullet {
+  margin: 0 5px;
+}
+/* 3D Container */
+.swiper-container-3d {
+  -webkit-perspective: 1200px;
+  -o-perspective: 1200px;
+  perspective: 1200px;
+}
+.swiper-container-3d .swiper-wrapper,
+.swiper-container-3d .swiper-slide,
+.swiper-container-3d .swiper-slide-shadow-left,
+.swiper-container-3d .swiper-slide-shadow-right,
+.swiper-container-3d .swiper-slide-shadow-top,
+.swiper-container-3d .swiper-slide-shadow-bottom,
+.swiper-container-3d .swiper-cube-shadow {
+  -webkit-transform-style: preserve-3d;
+  -ms-transform-style: preserve-3d;
+  transform-style: preserve-3d;
+}
+.swiper-container-3d .swiper-slide-shadow-left,
+.swiper-container-3d .swiper-slide-shadow-right,
+.swiper-container-3d .swiper-slide-shadow-top,
+.swiper-container-3d .swiper-slide-shadow-bottom {
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  pointer-events: none;
+  z-index: 10;
+}
+.swiper-container-3d .swiper-slide-shadow-left {
+  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
+  /* Safari 4+, Chrome */
+  background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+  /* Chrome 10+, Safari 5.1+, iOS 5+ */
+  /* Firefox 3.6-15 */
+  /* Opera 11.10-12.00 */
+  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+  /* Firefox 16+, IE10, Opera 12.50+ */
+}
+.swiper-container-3d .swiper-slide-shadow-right {
+  background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
+  /* Safari 4+, Chrome */
+  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+  /* Chrome 10+, Safari 5.1+, iOS 5+ */
+  /* Firefox 3.6-15 */
+  /* Opera 11.10-12.00 */
+  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+  /* Firefox 16+, IE10, Opera 12.50+ */
+}
+.swiper-container-3d .swiper-slide-shadow-top {
+  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
+  /* Safari 4+, Chrome */
+  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+  /* Chrome 10+, Safari 5.1+, iOS 5+ */
+  /* Firefox 3.6-15 */
+  /* Opera 11.10-12.00 */
+  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+  /* Firefox 16+, IE10, Opera 12.50+ */
+}
+.swiper-container-3d .swiper-slide-shadow-bottom {
+  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
+  /* Safari 4+, Chrome */
+  background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+  /* Chrome 10+, Safari 5.1+, iOS 5+ */
+  /* Firefox 3.6-15 */
+  /* Opera 11.10-12.00 */
+  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+  /* Firefox 16+, IE10, Opera 12.50+ */
+}
+/* Coverflow */
+.swiper-container-coverflow .swiper-wrapper {
+  /* Windows 8 IE 10 fix */
+  -ms-perspective: 1200px;
+}
+/* Fade */
+.swiper-container-fade.swiper-container-free-mode .swiper-slide {
+  -webkit-transition-timing-function: ease-out;
+  transition-timing-function: ease-out;
+}
+.swiper-container-fade .swiper-slide {
+  pointer-events: none;
+}
+.swiper-container-fade .swiper-slide-active {
+  pointer-events: auto;
+}
+/* Cube */
+.swiper-container-cube {
+  overflow: visible;
+}
+.swiper-container-cube .swiper-slide {
+  pointer-events: none;
+  visibility: hidden;
+  -webkit-transform-origin: 0 0;
+  transform-origin: 0 0;
+  -webkit-backface-visibility: hidden;
+  -ms-backface-visibility: hidden;
+  backface-visibility: hidden;
+  width: 100%;
+  height: 100%;
+}
+.swiper-container-cube.swiper-container-rtl .swiper-slide {
+  -webkit-transform-origin: 100% 0;
+  transform-origin: 100% 0;
+}
+.swiper-container-cube .swiper-slide-active,
+.swiper-container-cube .swiper-slide-next,
+.swiper-container-cube .swiper-slide-prev,
+.swiper-container-cube .swiper-slide-next + .swiper-slide {
+  pointer-events: auto;
+  visibility: visible;
+}
+.swiper-container-cube .swiper-cube-shadow {
+  position: absolute;
+  left: 0;
+  bottom: 0px;
+  width: 100%;
+  height: 100%;
+  background: #000;
+  opacity: 0.6;
+  -webkit-filter: blur(50px);
+  filter: blur(50px);
+}
+.swiper-container-cube.swiper-container-vertical .swiper-cube-shadow {
+  z-index: 0;
+}
+/* Scrollbar */
+.swiper-scrollbar {
+  border-radius: 10px;
+  position: relative;
+  -ms-touch-action: none;
+  background: rgba(0, 0, 0, 0.1);
+}
+.swiper-container-horizontal > .swiper-scrollbar {
+  position: absolute;
+  left: 1%;
+  bottom: 3px;
+  z-index: 50;
+  height: 5px;
+  width: 98%;
+}
+.swiper-container-vertical > .swiper-scrollbar {
+  position: absolute;
+  right: 3px;
+  top: 1%;
+  z-index: 50;
+  width: 5px;
+  height: 98%;
+}
+.swiper-scrollbar-drag {
+  height: 100%;
+  width: 100%;
+  position: relative;
+  background: rgba(0, 0, 0, 0.5);
+  border-radius: 10px;
+  left: 0;
+  top: 0;
+}
+.swiper-scrollbar-cursor-drag {
+  cursor: move;
+}
+/* Preloader */
+.swiper-slide .preloader {
+  width: 42px;
+  height: 42px;
+  position: absolute;
+  left: 50%;
+  top: 50%;
+  margin-left: -21px;
+  margin-top: -21px;
+  z-index: 10;
+}
+.swiper-slide img {
+  display: block;
+}

文件差异内容过多而无法显示
+ 6 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/css/sm-extend.min.css


文件差异内容过多而无法显示
+ 4830 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/css/sm.css


文件差异内容过多而无法显示
+ 8 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/css/sm.min.css


+ 158 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/fonts/font_1433401008_2229297.svg

@@ -0,0 +1,158 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+Created by FontForge 20120731 at Thu Jun  4 14:56:48 2015
+ By Ads
+</metadata>
+<defs>
+<font id="iconfont" horiz-adv-x="1024" >
+  <font-face 
+    font-family="iconfont"
+    font-weight="500"
+    font-stretch="normal"
+    units-per-em="1024"
+    panose-1="2 0 6 3 0 0 0 0 0 0"
+    ascent="812"
+    descent="-212"
+    x-height="792"
+    bbox="-0.125 -224 1025 812"
+    underline-thickness="50"
+    underline-position="-100"
+    unicode-range="U+0078-E61E"
+  />
+<missing-glyph horiz-adv-x="374" 
+d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
+    <glyph glyph-name=".notdef" horiz-adv-x="374" 
+d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
+    <glyph glyph-name=".null" horiz-adv-x="0" 
+ />
+    <glyph glyph-name="nonmarkingreturn" horiz-adv-x="341" 
+ />
+    <glyph glyph-name="x" unicode="x" horiz-adv-x="1001" 
+d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
+t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
+t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
+    <glyph glyph-name="uniE600" unicode="&#xe600;" 
+d="M861 102l147 388q3 10 -3 18.5t-17 8.5h-489q-9 0 -15 -6t-6 -14.5t6 -14.5t15 -6h460l-131 -346h-370l-140 562v1q-13 45 -36 65q-27 25 -76 25h-136q-1 0 -2 -1q-16 0 -27.5 -12t-11.5 -28q0 -17 12 -29t29 -12t29 12t12 29h95q33 0 49 -14q14 -13 24 -47l163 -658
+q6 -22 10 -34t16 -28t29 -25q-19 -22 -19 -51q0 -34 24 -58t58 -24t58 24t24 58q0 22 -11 40h123q-10 -18 -10 -40q0 -34 23.5 -58t57.5 -24t58 24t24 58t-24 57.5t-58 23.5h-4v0h-2h-265q-20 0 -32.5 3.5t-20 14t-11 19.5t-8.5 30l-14 56h374q14 0 19 13zM866 -115
+q0 -17 -12 -29t-29 -12t-29 12t-12 29t12 28.5t29 11.5t29 -11.5t12 -28.5zM560 -75q17 0 29 -11.5t12 -28.5t-12 -29t-29 -12t-29 12t-12 29t12 28.5t29 11.5z" />
+    <glyph glyph-name="uniE601" unicode="&#xe601;" 
+d="M818 -113q-5 82 -67 133q-35 28 -119 61q-31 12 -46 19t-32 19.5t-23 25.5q-2 23 -2 62v5v4q13 13 25 38q14 28 19 56q10 5 18 15q15 20 20 56q3 30 -13 50q13 46 17 89q6 78 -22 124q-27 43 -79 53q-30 38 -106 38q-114 -2 -164 -68q-59 -79 -22 -235q-17 -21 -13 -51
+q4 -36 20 -56q8 -10 18 -15q5 -26 18 -53t27 -41v-9q0 -39 -2 -62q-8 -19 -31.5 -32.5t-70.5 -31.5q-83 -33 -119 -61q-62 -51 -67 -133q-1 -9 5 -15.5t15 -6.5h776q9 0 15 6.5t5 15.5zM45 -94q9 49 50 82q30 24 108 55q28 11 42.5 17.5t34.5 17.5t31.5 24.5t18.5 30.5
+q1 3 1 5q2 27 2 69v19q0 12 -11 18q-8 6 -21 32t-16 52q0 7 -5.5 12.5t-12.5 5.5q-2 0 -5 3t-6.5 12.5t-5.5 24.5q-2 17 6 22q13 8 9 23q-18 69 -16 122q3 56 28 89q38 50 131 52q61 0 76 -26q5 -8 15 -10q40 -5 59 -35q14 -24 16 -62t-3.5 -69.5t-15.5 -59.5q-5 -16 9 -24
+q8 -6 6 -22q-2 -15 -5.5 -24.5t-6.5 -12.5t-5 -3q-7 0 -12.5 -5.5t-5.5 -12.5q-3 -26 -16 -52.5t-20 -31.5q-11 -6 -11 -18v-19q0 -42 2 -69q0 -2 1 -5q7 -17 18.5 -30.5t31.5 -24.5t34.5 -17.5t41.5 -17.5q78 -31 108 -55q40 -33 50 -82h-730zM1017 -17.5q-6 -6.5 -15 -6.5
+h-126q-8 0 -14 6t-6 14.5t6 14.5t14 6h102q-8 37 -39 63q-26 20 -90 46q-24 9 -36 14.5t-29 15t-27.5 21.5t-15.5 26q-1 3 -1 6q-2 22 -2 58v16q0 12 10 18q7 5 17 26.5t12 41.5q1 7 6 12t12 6q9 3 12 31q1 11 -4 15q-14 9 -8 24q7 23 12 49.5t3.5 58t-13.5 50.5
+q-15 24 -47 28q-10 2 -15 11q-12 19 -61 19q-19 0 -34 -3q-9 -1 -16 4t-8 13.5t3.5 15t13.5 8.5q19 3 40 3h1q64 0 90 -32q45 -9 68 -45q39 -64 5 -181q14 -18 11 -43q-4 -31 -18 -49q-6 -8 -14 -13q-11 -50 -37 -78v-7q0 -32 1 -51q7 -15 27 -26t57 -25q70 -28 100 -52
+q54 -44 58 -115q1 -8 -5 -14.5z" />
+    <glyph glyph-name="uniE602" unicode="&#xe602;" 
+d="M1015 269q-6 -6 -15 -6q-8 0 -14 6l-65 68v-524q0 -8 -6 -14t-14 -6h-266q-8 0 -14 6t-6 14.5t6 14.5t14 6h245v545l-367 383l-367 -383v-545h224v306q0 8 6 14t15 6h244q9 0 15 -6t6 -14.5t-6 -14.5t-15 -6h-224v-306q0 -8 -6 -14t-14 -6h-266q-8 0 -14 6t-6 14v524
+l-65 -68q-6 -6 -14.5 -6t-14.5 6t-6 14.5t6 14.5l487 508q6 6 15 6t15 -6l487 -508q6 -6 6 -14.5t-6 -14.5z" />
+    <glyph glyph-name="uniE603" unicode="&#xe603;" 
+d="M1024 288q0 -97 -35.5 -187t-101.5 -162h-1l-24 -24q-6 -5 -14 -5.5t-14 5.5q-31 27 -114 60q-28 11 -42 17.5t-34 17.5t-32 24.5t-18 30.5q-1 3 -1 6q-3 26 -2 69v19q0 12 10 18q8 5 20.5 31.5t15.5 52.5q1 7 6 12t13 6q2 0 4.5 3t6.5 12.5t6 24.5q2 17 -6 22
+q-14 9 -9 24q15 45 19 92q5 65 -17 100q-18 30 -59 35q-10 2 -15 10q-14 26 -76 26q-93 -2 -132 -52q-25 -34 -27 -89q-3 -53 15 -123q4 -15 -9 -23q-8 -6 -6 -22q2 -15 6 -24.5t6.5 -12.5t4.5 -3q8 -1 13 -6t6 -12q3 -26 16 -52.5t21 -31.5q10 -6 10 -18v-19q1 -43 -2 -69
+q0 -3 -1 -6q-6 -17 -18 -30.5t-32 -24.5t-34.5 -17.5t-41.5 -17.5q-31 -12 -46 -19q-8 -3 -16 0t-11.5 10.5t-0.5 15.5t11 11q16 8 48 20q31 12 46.5 19t32.5 19.5t23 25.5q2 24 2 62q0 3 -1 10q-14 14 -26.5 41t-18.5 53q-10 5 -18 15q-15 20 -19 56q-4 31 13 51
+q-38 157 22 236q50 66 164 68q76 0 106 -38q53 -10 79 -53q19 -31 22 -77.5t-2.5 -76.5t-13.5 -59q16 -21 12 -51q-4 -36 -19 -56q-8 -10 -18 -15q-6 -28 -19 -56q-13 -25 -25 -38v-10q-1 -39 1 -62q9 -19 32.5 -32.5t69.5 -31.5q78 -31 112 -56l10 11q61 65 93.5 148
+t32.5 172q0 96 -37 183q-36 85 -101 150t-150 101q-87 37 -183 37t-183 -37q-85 -36 -150 -101t-101 -150q-37 -87 -37 -183t37 -183q36 -85 101 -150t150 -101q87 -37 183 -37q122 0 229 59q7 4 15 2t12.5 -9.5t2 -16t-9.5 -12.5q-116 -64 -249 -64q-104 0 -199 40
+q-92 39 -163 110t-110 163q-40 95 -40 199t40 199q39 92 110 163t163 110q95 40 199 40t199 -40q92 -39 163 -110t110 -163q40 -95 40 -199z" />
+    <glyph glyph-name="uniE604" unicode="&#xe604;" 
+d="M1004 371l-132 22q-12 40 -33 77l78 111q10 14 -2 26l-87 86q-12 13 -26 3l-109 -79q-37 21 -78 33l-23 132q-2 7 -7.5 12t-13.5 5h-122q-7 0 -13 -5t-7 -12l-22 -132q-41 -11 -78 -32l-108 78q-14 10 -27 -2l-86 -87q-12 -12 -3 -26l77 -109q-21 -38 -33 -79l-131 -22
+q-7 -1 -12 -7t-5 -13v-123q0 -7 5 -12.5t12 -7.5l131 -23q12 -41 33 -79l-78 -108q-10 -14 2 -26l87 -87q12 -12 26 -2l110 77q37 -21 78 -33l22 -131q1 -8 7 -12.5t13 -4.5h122q8 0 13.5 4.5t7.5 11.5l23 133q41 12 78 32l110 -77q14 -10 26 2l87 87q12 12 2 26l-78 109
+q20 37 32 78l132 23q8 2 12.5 7.5t4.5 12.5v123q0 7 -4.5 13t-12.5 7zM980 246l-128 -23q-13 -2 -17 -15q-12 -49 -37 -91q-7 -12 1 -23l76 -105l-62 -63l-107 75q-11 8 -23 1q-42 -26 -91 -38q-13 -3 -15 -16l-23 -129h-88l-21 128q-2 13 -15 16q-49 13 -92 38q-11 7 -22 0
+l-106 -75l-62 63l75 104q7 11 0 23q-26 43 -38 92q-3 13 -16 15l-127 23v88l127 21q13 2 16 15q13 49 39 92q6 11 -1 22l-74 106l62 62l105 -75q11 -8 23 -1q42 26 91 38q13 3 16 17l20 127h88l23 -128q2 -13 15 -16q49 -12 91 -38q12 -7 23 0l105 76l63 -62l-76 -107
+q-7 -11 0 -22q25 -43 37 -91q4 -13 17 -15l128 -21v-88zM695 289q0 -9 -6 -15t-14.5 -6t-14.5 6t-6 15q0 59 -42 101t-101 42t-101 -42t-42 -101t42 -101t101 -42q51 0 90 32q6 5 14.5 4t14 -7.5t4.5 -15t-8 -13.5q-50 -41 -115 -41q-76 0 -129.5 54t-53.5 130t53.5 129.5
+t129.5 53.5t130 -53.5t54 -129.5z" />
+    <glyph glyph-name="uniE605" unicode="&#xe605;" 
+d="M878 247h-327q-9 0 -15 -6t-6 -15v-327q0 -9 6 -15t15 -6h327q9 0 15 6t6 15v327q0 9 -6 15t-15 6zM858 -81h-287v287h287v-287zM431 247h-328q-8 0 -14 -6t-6 -15v-327q0 -9 6 -15t14 -6h328q8 0 14 6t6 15v327q0 9 -6 15t-14 6zM410 -81h-286v287h286v-287zM431 696
+h-328q-8 0 -14 -6t-6 -14v-327q0 -9 6 -15t14 -6h328q8 0 14 6t6 15v327q0 8 -6 14t-14 6zM410 369h-286v286h286v-286zM966 534l-215 215q-6 6 -14.5 6t-14.5 -6l-214 -215q-6 -6 -6 -14.5t6 -14.5l214 -214q6 -6 14.5 -6t14.5 6l215 214q6 6 6 14.5t-6 14.5zM737 334
+l-186 186l186 185l185 -185z" />
+    <glyph glyph-name="uniE606" unicode="&#xe606;" 
+d="M982 501q-39 91 -109.5 161.5t-162.5 109.5q-93 40 -196 40h-2h-2q-103 0 -196 -40q-92 -39 -162.5 -109.5t-109.5 -161.5q-40 -95 -40 -199t40 -198q39 -92 109.5 -162.5t162.5 -109.5q93 -39 196 -40h1h1h1h1q103 1 196 40q92 39 162.5 109.5t109.5 162.5q40 94 40 198
+t-40 199zM180 634q65 65 149 100q29 12 59 21q-38 -38 -67 -98q-19 -38 -34 -82q-67 18 -119 45zM80 485q24 56 60 103q59 -32 136 -52q-27 -100 -29 -213h-203q3 84 36 162zM140 16q-36 48 -60 104q-33 77 -36 162h203q2 -114 29 -213q-77 -21 -136 -53zM329 -130
+q-84 36 -149 101q-6 6 -12 13q52 28 119 45q15 -44 34 -82q29 -59 67 -97q-30 8 -59 20zM492 -165q-32 7 -62 32q-41 34 -73 98q-17 34 -30 74q79 16 165 18v-222zM492 98q-92 -2 -177 -20q-25 95 -27 204h204v-184zM492 323h-204q2 108 27 203q85 -18 177 -20v-183z
+M492 547q-86 2 -165 18q13 40 30 74q32 64 73 98q30 26 62 32v-222zM695 734q84 -35 149 -100l12 -14q-52 -27 -119 -45q-15 44 -34 82q-29 60 -67 98q30 -9 59 -21zM532 769q32 -6 62 -32q41 -34 73 -98q17 -34 30 -74q-79 -16 -165 -18v222zM532 506q93 2 177 20
+q25 -95 27 -203h-204v183zM532 282h204q-2 -109 -27 -204q-85 18 -177 20v184zM594 -133q-30 -25 -62 -32v222q86 -2 165 -18q-13 -40 -30 -74q-32 -64 -73 -98zM844 -29q-65 -65 -149 -101q-29 -12 -59 -20q38 38 67 97q19 38 34 82q67 -17 119 -45q-6 -7 -12 -13zM944 120
+q-24 -56 -60 -104q-59 32 -136 53q27 99 29 213h203q-3 -85 -36 -162zM777 323q-2 113 -29 213q77 20 136 52q36 -47 60 -103q33 -78 36 -162h-203z" />
+    <glyph glyph-name="uniE607" unicode="&#xe607;" 
+d="M430 144h-306q2 25 18.5 41t36 22.5t38 15.5t23.5 21v34q-4 3 -10 15.5t-8 23.5q-11 1 -13 23q-1 12 6 17q-28 112 62 114q27 0 35 -15q18 -2 26.5 -14.5t9 -29.5t-2 -30.5t-5.5 -24.5q7 -5 6 -17q-3 -22 -14 -23q-1 -11 -7 -23.5t-10 -15.5q0 -26 1 -34q4 -12 22.5 -21
+t38 -15.5t36 -22.5t17.5 -41zM920 368.5q0 -8.5 -6 -14.5t-14 -6h-368q-8 0 -14 6t-6 14.5t6 14.5t14 6h368q8 0 14 -6t6 -14.5zM920 266.5q0 -8.5 -6 -14.5t-14 -6h-368q-8 0 -14 6t-6 14.5t6 14.5t14 6h368q8 0 14 -6t6 -14.5zM920 164.5q0 -8.5 -6 -14.5t-14 -6h-368
+q-8 0 -14 6t-6 14.5t6 14.5t14 6h368q8 0 14 -6t6 -14.5zM1022 552v-571q0 -26 -18 -43.5t-43 -17.5h-82q-8 0 -14 5.5t-6 14t6 14.5t14 6h82q8 0 14 6t6 15v571q0 9 -6 14.5t-14 5.5h-449q-8 0 -14 6t-6 15v41q0 8 -6 14t-15 6h-408q-8 0 -14 -6t-6 -14v-653q0 -9 6 -15
+t14 -6h102v62q0 8 6 14t15 6h81q9 0 15 -6t6 -14.5t-6 -14.5t-15 -6h-61v-61q0 -9 -6 -14.5t-14 -5.5h-123q-25 0 -43 17.5t-18 43.5v653q0 25 18 43t43 18h408q26 0 43.5 -18t17.5 -43v-21h429q25 0 43 -18t18 -43zM859 21.5q0 -8.5 -6 -14.5t-15 -6h-61v-61q0 -9 -6 -14.5
+t-14 -5.5h-449q-9 0 -15 5.5t-6 14t6 14.5t15 6h428v62q0 8 6 14t15 6h81q9 0 15 -6t6 -14.5z" />
+    <glyph glyph-name="uniE608" unicode="&#xe608;" horiz-adv-x="1025" 
+d="M427 -92q-10 0 -18 6l-312 286l-51 -63q-7 -9 -17.5 -10t-19 5.5t-9.5 17t6 19.5l68 85q7 8 18 9t19 -6l313 -287l555 694q7 9 17.5 10t18.5 -5.5t9.5 -17t-5.5 -19.5l-572 -715q-7 -9 -18 -9h-2z" />
+    <glyph glyph-name="uniE609" unicode="&#xe609;" 
+d="M342 751h-245q-9 0 -15 -6t-6 -15v-245q0 -9 6 -15t15 -6h245q8 0 14 6t6 15v245q0 9 -6 15t-14 6zM321 505h-204v205h204v-205zM927 751h-245q-8 0 -14 -6t-6 -15v-245q0 -9 6 -15t14 -6h245q9 0 15 6t6 15v245q0 9 -6 15t-15 6zM907 505h-204v205h204v-205zM927 162
+h-245q-8 0 -14 -6t-6 -15v-265q0 -9 6 -15t14 -6h245q9 0 15 6t6 15v265q0 9 -6 15t-15 6zM907 -104h-204v225h204v-225zM948 372.5q0 -8.5 -6 -14.5t-15 -6h-830q-9 0 -15 6t-6 14.5t6 14.5t15 6h830q9 0 15 -6t6 -14.5zM482 727v-242q0 -9 -6 -15t-14.5 -6t-14.5 6t-6 15
+v242q0 8 6 14t14.5 6t14.5 -6t6 -14zM589 727v-242q0 -9 -6 -15t-14.5 -6t-14.5 6t-6 15v242q0 8 6 14t14.5 6t14.5 -6t6 -14zM426 141v-268q0 -8 -6 -14t-14.5 -6t-14.5 6t-6 14v268q0 9 6 15t14.5 6t14.5 -6t6 -15zM557 268v-395q0 -8 -6 -14t-14.5 -6t-14.5 6t-6 14v395
+q0 8 6 14t14.5 6t14.5 -6t6 -14zM166 268v-395q0 -8 -6 -14t-14.5 -6t-14.5 6t-6 14v395q0 8 6 14t14.5 6t14.5 -6t6 -14zM296 141v-268q0 -8 -6 -14t-14.5 -6t-14.5 6t-6 14v268q0 9 6 15t14.5 6t14.5 -6t6 -15zM948 267.5q0 -8.5 -6 -14.5t-15 -6h-245q-8 0 -14 6t-6 14.5
+t6 14.5t14 6h245q9 0 15 -6t6 -14.5zM431 267.5q0 -8.5 -6 -14.5t-15 -6h-137q-8 0 -14 6t-6 14.5t6 14.5t14 6h137q9 0 15 -6t6 -14.5z" />
+    <glyph glyph-name="uniE60A" unicode="&#xe60a;" 
+d="M854 514l-34 -664q-2 -21 -18 -36t-37 -15h-475q-22 0 -38 15t-17 36v1l-35 663q-1 9 5 15t14.5 6.5t14.5 -5t7 -14.5l34 -663q1 -5 5.5 -9t9.5 -4h475q5 0 9 4t5 9l34 663q1 9 7.5 14.5t14.5 5t14 -6.5t5 -15zM936 658.5q0 -8.5 -6 -14.5t-14 -6h-266q-9 0 -15 6t-6 14
+v62q0 8 -6 14t-14 6h-164q-8 0 -14 -6t-6 -14v-62q0 -8 -6 -14t-15 -6h-265q-9 0 -15 6t-6 14.5t6 14.5t15 6h245v41q0 25 18 43t43 18h164q25 0 43 -18t18 -43v-41h246q8 0 14 -6t6 -14.5zM640 495v-573q0 -8 -6 -14t-14.5 -6t-14.5 6t-6 14v573q0 8 6 14t14.5 6t14.5 -6
+t6 -14zM456 495v-573q0 -8 -6 -14t-14.5 -6t-14.5 6t-6 14v573q0 8 6 14t14.5 6t14.5 -6t6 -14z" />
+    <glyph glyph-name="uniE60B" unicode="&#xe60b;" 
+d="M1023 289q0 -75 -53.5 -128t-128.5 -53h-185q-9 0 -15 6t-6 14.5t6 14.5t15 6h185q58 0 99.5 41t41.5 99t-41 99.5t-99 41.5h-1q-10 0 -16 7t-5 16q2 16 2 28q0 95 -67 161.5t-161 66.5q-72 0 -131 -42q-57 -41 -82 -107q-4 -10 -15 -12.5t-19 5.5q-29 30 -71.5 30
+t-72.5 -30t-30 -72v-2v-3q1 -16 -15 -20q-50 -14 -82 -56t-32 -95q0 -65 45.5 -110.5t110.5 -45.5h170q8 0 14 -6t6 -14.5t-6 -14.5t-14 -6h-170q-82 0 -139.5 57.5t-57.5 139.5q0 67 41 121q35 45 88 64q4 56 45.5 95t97.5 39q43 0 79 -24q30 61 85 100q70 50 155 50
+q111 0 190 -79t79 -190q0 -5 -1 -11q68 -8 114.5 -59.5t46.5 -121.5zM629 -9l-102 -102q-6 -6 -14.5 -6t-14.5 6l-102 102q-6 6 -6 14.5t6 14.5t14.5 6t14.5 -6l67 -67v359q0 8 6 14t14.5 6t14.5 -6t6 -14v-359l67 67q6 6 14.5 6t14.5 -6t6 -14.5t-6 -14.5z" />
+    <glyph glyph-name="uniE60C" unicode="&#xe60c;" 
+d="M236 -111l-3 -1h464q9 0 15 -6t6 -14.5t-6 -14.5t-15 -6h-619h-1h-1q-2 0 -3 1h-1h-1v0l-1 1q-1 0 -2 1q-1 0 -2 1l-1 1l-3 3q-1 2 -2 3t-1 2v1q0 1 -1 1v2v3v0v1v1v2v1v1h1v1l40 152q2 5 6 9l633 627q6 6 14.5 6t14.5 -6t6 -14.5t-6 -14.5l-629 -623l-31 -113l114 30
+l629 623q6 6 14.5 6t14.5 -6t6 -14.5t-6 -14.5l-634 -627q-3 -4 -9 -5zM922 564l4 4q4 4 8 9l4 4q30 29 30 70t-29.5 70t-70.5 29t-70 -29l-17 -17zM58 -132v-1v1zM58 -129v-2v2zM58 -135v2v-2zM59 -127q-1 0 -1 -1v1h1z" />
+    <glyph glyph-name="uniE60D" unicode="&#xe60d;" 
+d="M916 509h-778q-8 0 -14 6t-6 14.5t6 14.5t14 6h778q9 0 15 -6t6 -14.5t-6 -14.5t-15 -6zM937 304.5q0 -8.5 -6 -14.5t-15 -6h-778q-8 0 -14 6t-6 14.5t6 14.5t14 6h778q9 0 15 -6t6 -14.5zM916 59h-778q-8 0 -14 6t-6 14.5t6 14.5t14 6h778q9 0 15 -6t6 -14.5t-6 -14.5
+t-15 -6z" />
+    <glyph glyph-name="uniE60E" unicode="&#xe60e;" 
+d="M970 374l-241 -196l80 -300q2 -9 -2.5 -16t-12.5 -9q-2 -1 -5 -1q-16 0 -20 15l-83 313q-4 13 7 22l210 170l-271 15q-13 1 -18 13l-97 253l-98 -253q-4 -12 -18 -13l-270 -15l210 -170q10 -9 7 -22l-70 -262l228 148q11 7 22 0l113 -73q7 -5 8.5 -13t-3 -15.5t-13 -9
+t-15.5 3.5l-101 65l-261 -169q-12 -7 -23.5 1t-7.5 22l80 300l-241 196q-11 9 -7 22.5t18 13.5l311 17l112 290q5 13 19 13t19 -13l112 -290l310 -17q14 0 18.5 -13.5t-6.5 -22.5z" />
+    <glyph glyph-name="uniE60F" unicode="&#xe60f;" 
+d="M1023 596q-3 -28 -22 -42q-11 -8 -101.5 -68t-107.5 -70q-31 -20 -78 5q-19 10 -94 53q-63 -44 -157 -137q-108 -108 -143 -166q-4 -7 -12.5 -9.5t-15.5 2t-9.5 12.5t2.5 16q35 59 149 174q116 115 174 149q11 6 21 0q91 -51 104 -58q26 -14 37 -7q16 10 106 70t101 67
+q5 4 5.5 14t-8.5 26q-25 35 -66 78q-51 53 -68 53q-67 -2 -146 -39q-155 -74 -347 -266t-266 -346q-37 -80 -39 -147q0 -17 53 -68q43 -41 78 -66q16 -9 26 -8.5t14 5.5q8 12 68 102.5t69 104.5q5 9 -4 31q-1 3 -3 6q-4 8 -1.5 16t10 12t15.5 1.5t12 -10.5q3 -4 5 -9
+q17 -41 1 -68q-9 -15 -69 -105.5t-70 -104.5q-14 -20 -42 -22h-6q-25 0 -48 16q-39 27 -84 70q-66 64 -65 98v1q2 75 43 162q77 161 274 358t358 274q88 41 162 43h1q34 1 98 -65q44 -45 70 -84q19 -26 16 -54z" />
+    <glyph glyph-name="uniE610" unicode="&#xe610;" 
+d="M942 604l-430 -632l-430 632h860z" />
+    <glyph glyph-name="uniE611" unicode="&#xe611;" horiz-adv-x="1026" 
+d="M26 550q10 0 18 -8l469 -449l469 449q7 8 18 7.5t18 -8t7 -18t-8 -18.5l-487 -466q-7 -7 -17.5 -7t-17.5 7l-487 466q-7 8 -7.5 18.5t6.5 18.5q8 8 19 8z" />
+    <glyph glyph-name="uniE612" unicode="&#xe612;" horiz-adv-x="1026" 
+d="M999 32q-10 0 -17 7l-469 449l-469 -449q-8 -7 -18.5 -7t-18 7.5t-7 18t7.5 18.5l487 466q7 8 17.5 8t17.5 -8l487 -466q8 -8 8 -18.5t-7 -17.5q-8 -8 -19 -8z" />
+    <glyph glyph-name="uniE613" unicode="&#xe613;" 
+d="M271 800q11 0 18 -8l475 -485q7 -8 7 -18.5t-7 -17.5l-475 -486q-7 -7 -18 -7.5t-18.5 7t-7.5 18t8 18.5l457 468l-457 468q-8 7 -8 17.5t7.5 18t18.5 7.5z" />
+    <glyph glyph-name="uniE614" unicode="&#xe614;" 
+d="M746 -223q-11 0 -19 8l-474 486q-8 7 -8 17.5t8 18.5l474 485q8 8 18.5 8t18 -7.5t7.5 -18t-7 -17.5l-457 -468l457 -468q7 -8 7 -18.5t-7.5 -18t-17.5 -7.5z" />
+    <glyph glyph-name="uniE615" unicode="&#xe615;" 
+d="M964 492q-37 88 -104.5 155.5t-155.5 104.5q-91 39 -191 39t-191 -39q-88 -37 -155.5 -104.5t-104.5 -155.5q-39 -91 -39 -191t39 -191q37 -87 104.5 -155t155.5 -105q91 -39 191 -39t191 39q88 37 155.5 105t104.5 155q39 91 39 191t-39 191zM927 126
+q-34 -80 -96.5 -142t-142.5 -96q-84 -36 -175 -36t-175 36q-80 34 -142.5 96t-96.5 142q-35 84 -35 175t35 175q35 80 97 142.5t142 96.5q84 35 175 35t175 -35q80 -34 142.5 -96.5t96.5 -142.5q35 -84 35 -175t-35 -175zM795 167q-27 -38 -76 -76q-42 -33 -88 -52
+q-58 -24 -118 -24t-118 24q-46 19 -88 52q-49 38 -76 76q-5 7 -3.5 15t8.5 13t15 3.5t13 -7.5q5 -8 18 -22q24 -25 51 -46q38 -30 78 -46q50 -21 102 -21t102 21q40 16 78 46q44 33 69 68q5 6 13 7.5t15 -3.5t8.5 -13t-3.5 -15zM737 362.5q0 -25.5 -17.5 -43.5t-43 -18
+t-43.5 18t-18 43.5t18 43.5t43.5 18t43 -18t17.5 -43.5zM411 362.5q0 -25.5 -18 -43.5t-43.5 -18t-43 18t-17.5 43.5t17.5 43.5t43 18t43.5 -18t18 -43.5z" />
+    <glyph glyph-name="uniE616" unicode="&#xe616;" 
+d="M971 684h-918q-9 0 -15 -6t-6 -15v-612q0 -8 6 -14t15 -6h918q9 0 15 6t6 14v612q0 9 -6 15t-15 6zM951 72h-878v571h878v-571zM788 -30.5q0 -8.5 -6 -14.5t-15 -6h-510q-9 0 -15 6t-6 14.5t6 14.5t15 6h510q9 0 15 -6t6 -14.5z" />
+    <glyph glyph-name="uniE617" unicode="&#xe617;" 
+d="M997 357.5q0 -83.5 -38 -160.5q-36 -73 -101 -129t-149 -87q-87 -32 -182 -32q-8 0 -14 6t-6 14.5t6 14.5t14 6q88 0 168 29q77 28 136 80q60 52 92.5 118.5t32.5 139.5t-32.5 140t-92.5 119q-59 51 -136 79q-80 30 -168 30t-168 -30q-77 -28 -136 -79q-60 -52 -92 -119
+t-32 -140q0 -89 47 -167q46 -77 127 -128q9 -6 9 -17q0 -58 -42 -133q51 8 98 40q32 22 51 45q5 7 13.5 7.5t15 -4.5t7.5 -13.5t-4 -15.5q-21 -26 -59 -52q-75 -52 -160 -52h-1q-13 1 -18.5 12t1.5 21q35 50 50 102q5 17 6 32q-82 55 -129 135q-53 88 -53 188q0 84 37 160
+q36 74 101 130t149 87q87 31 182 31t182 -31q84 -31 149 -87t101 -130q38 -76 38 -159.5z" />
+    <glyph glyph-name="uniE618" unicode="&#xe618;" 
+d="M980 534h-206q20 9 37 21q67 47 67 122q0 41 -22 68q-29 34 -86 34q-58 0 -102 -45q-25 -24 -60 -86q-15 -25 -22.5 -37t-20.5 -27.5t-26 -22.5t-28 -7q-16 0 -29 7t-25.5 22.5t-20.5 27.5t-22 37q-36 62 -60 86q-44 45 -102 45q-57 0 -86 -34q-23 -27 -23 -68
+q0 -75 67 -122q17 -12 37 -21h-206q-8 0 -14 -6t-6 -14v-184q0 -9 6 -15t14 -6h21v-489q0 -9 6 -15t14 -6h857q9 0 15 6t6 15v489h20q9 0 15 6t6 15v184q0 8 -6 14t-15 6zM388 -160h-285v469h187q8 0 14 6t6 14.5t-6 14.5t-14 6h-228v143h326v-653zM348 554q-66 0 -114 34
+q-50 35 -50 89q0 61 68 61q22 0 40.5 -8t34.5 -27t25.5 -33t25.5 -43q31 -52 49 -73h-79zM592 -160h-163v653h163v-653zM643 627q16 29 25.5 43t26 33t34.5 27t41 8q67 0 67 -61q0 -54 -49 -89q-48 -34 -114 -34h-80q19 21 49 73zM960 350h-244q-9 0 -15 -6t-6 -14.5
+t6 -14.5t15 -6h203v-469h-286v653h327v-143z" />
+    <glyph glyph-name="uniE619" unicode="&#xe619;" 
+d="M573 288q0 -25 -18 -43t-43 -18q-14 0 -27 6l-122 -123q-6 -6 -14.5 -6t-14.5 6t-6 14.5t6 14.5l123 123q-6 12 -6 26q0 20 11 36t30 22v331q0 9 6 15t14 6t14 -6t6 -15v-331q19 -6 30 -22t11 -36zM1024 288q0 -139 -70 -259q-5 -7 -13 -9.5t-15.5 2t-9.5 12.5t2 16
+q65 110 65 238q0 96 -37 183q-36 85 -101 150t-150 101q-87 37 -183 37t-183 -37q-85 -36 -150 -101t-101 -150q-37 -87 -37 -183t37 -183q36 -85 101 -150t150 -101q87 -37 183 -37q88 0 170.5 32t147.5 91q6 6 14.5 5.5t14 -6.5t5.5 -14.5t-7 -14.5q-71 -65 -160 -99.5
+t-185 -34.5q-104 0 -199 40q-92 39 -163 110t-110 163q-40 95 -40 199t40 199q39 92 110 163t163 110q95 40 199 40t199 -40q92 -39 163 -110t110 -163q40 -95 40 -199z" />
+    <glyph glyph-name="uniE61A" unicode="&#xe61a;" 
+d="M802 514.5q0 -25.5 -18 -43.5t-43.5 -18t-43.5 18t-18 43.5t18 43.5t43.5 18t43.5 -18t18 -43.5zM983 151v543h-942v-779h942v44l-287 300l-149 -149q-6 -6 -14.5 -6t-14.5 6t-6 14.5t6 14.5l48 48l-198 216l-227 -213q-6 -6 -14.5 -6t-14.5 6.5t-5.5 15t6.5 13.5
+l242 228q6 6 14.5 5.5t14.5 -6.5l211 -230l87 87q6 6 14.5 6t14.5 -6l307 -321q6 -6 6 -14v-73q0 -9 -6 -15t-14 -6h-984q-8 0 -14 6t-6 15v819q0 9 6 15t14 6h984q8 0 14 -6t6 -15v-563q0 -9 -6 -15t-14.5 -6t-14.5 6t-6 15z" />
+    <glyph glyph-name="uniE61B" unicode="&#xe61b;" 
+d="M514 321zM263 326q-2 2 -3 4t-2 5q2 -4 5 -9zM762 38q0 -1 -0.5 -1.5t-0.5 -1.5q0 1 1 3zM865 148q-42 0 -77.5 -21.5t-55.5 -56.5l-422 168q5 19 5 39q0 28 -10 54l360 195q21 -28 53 -44.5t69 -16.5q63 0 108 44.5t45 108t-45 108t-108 44.5t-108 -44.5t-45 -108.5
+q0 -28 11 -55l-360 -195q-21 29 -53.5 46t-69.5 17q-63 0 -108 -44.5t-45 -108t45 -108t108 -44.5q41 0 76 20.5t56 54.5l423 -168q-5 -18 -5 -37q0 -63 45 -108t108 -45t108 45t45 108t-45 108t-108 45zM787 729q46 0 79 -32.5t33 -79t-33 -79t-79 -32.5t-79 32.5t-33 79
+t33 79t79 32.5zM162 166q-46 0 -79 32.5t-33 79t33 79t79 32.5q30 0 55.5 -14.5t40.5 -39.5q2 -4 5 -9q11 -23 11 -49q0 -46 -33 -78.5t-79 -32.5zM865 -117q-46 0 -79 33t-33 79q0 21 8 40q0 1 1 3q12 31 40.5 50t62.5 19q46 0 79 -33t33 -79t-33 -79t-79 -33z" />
+    <glyph glyph-name="uniE61C" unicode="&#xe61c;" 
+d="M926 564q0 -3 -2 -5.5t-5 -2.5h-188v-49h188q23 0 39.5 17t16.5 40v187h-49v-187zM512 -175q-94 0 -179.5 36.5t-148 99t-99 148t-36.5 179.5t36.5 179.5t99 148t148 99t179.5 36.5q95 0 181.5 -37.5t151.5 -105.5q44 -44 62 -67l39 30q-21 26 -66 71
+q-71 75 -166.5 116.5t-201.5 41.5q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5h-49q0 -94 -36.5 -179.5t-99 -148t-148 -99t-179.5 -36.5z" />
+    <glyph glyph-name="uniE61D" unicode="&#xe61d;" 
+d="M760 548q-26 63 -74 111t-111 74q-64 27 -134.5 27t-135.5 -27q-62 -26 -110 -74t-74 -111q-28 -64 -28 -134.5t28 -135.5q26 -62 74 -110t110 -74q65 -28 135.5 -28t134.5 28q63 26 111 74t74 110q27 65 27 135.5t-27 134.5zM656.5 197q-89.5 -90 -216 -90t-216.5 90
+t-90 216.5t90 216t216.5 89.5t216 -89.5t89.5 -216t-89.5 -216.5zM955 -121q-6 -6 -14.5 -6t-14.5 6l-194 193q-6 6 -6 14.5t6 14.5t14.5 6t14.5 -6l194 -193q6 -6 6 -14.5t-6 -14.5z" />
+    <glyph glyph-name="uniE61E" unicode="&#xe61e;" 
+d="M957 -212h-896v67h-61v896h61v61h896v-61h67v-896h-67v-67zM510 -17h-64v-65h64v65h63v63h66v320h63v-448h65v449h62v63h-190v128h127v65h63v62h-63v-63h-193v-11v-397q0 -32 0.5 -90.5t0.5 -77.5h-30h-34v64h-64v-64h65q-1 -41 -1 -63zM189 46h65v64h-64v-64h-63v-63h62
+v63zM446 430h-64v-63h-65v63h-63v64h-64v-64h64v-64h-127v-65h190v-63h-127v-65h127v-191h-62v-64h128v256h127v65h-127v63h127v65h-65v63h65v64h-64v-64zM510 623h-128v62h-65v-63h-127v-64h320v65z" />
+  </font>
+</defs></svg>

二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/fonts/font_1433401008_2229297.ttf


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/fonts/font_1433401008_2229297.woff


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_0.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_1.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_2.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_3.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_4.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/Star_5.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/cart.gif


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/checkbox.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/cur.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/i_msg-error.gif


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/i_msg-success.gif


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/pay.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/product_rating_big_blank_star.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/product_rating_big_full_star.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/sign.png


二进制
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/img/tag.png


+ 20 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/fec.js

@@ -0,0 +1,20 @@
+$(document).ready(function(){
+    $("img.lazy").each(function(){
+        src = $(this).attr("data-src");
+        $(this).attr("src",src);
+    });
+});
+function doPost(to, p) { // to:提交动作(action),p:参数
+    var myForm = document.createElement("form");
+    myForm.method = "post";
+    myForm.action = to;
+    for (var i in p){
+        var myInput = document.createElement("input");
+        myInput.setAttribute("name", i); // 为input对象设置name
+        myInput.setAttribute("value", p[i]); // 为input对象设置value
+        myForm.appendChild(myInput);
+    }
+    document.body.appendChild(myForm);
+    myForm.submit();
+    document.body.removeChild(myForm); // 提交后移除创建的form
+}

+ 0 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/jquery.lazyload.min.js


文件差异内容过多而无法显示
+ 13421 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm-city-picker.js


文件差异内容过多而无法显示
+ 8 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm-city-picker.min.js


文件差异内容过多而无法显示
+ 3376 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm-extend.js


文件差异内容过多而无法显示
+ 8 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm-extend.min.js


文件差异内容过多而无法显示
+ 8102 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm.js


文件差异内容过多而无法显示
+ 10 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/sm.min.js


文件差异内容过多而无法显示
+ 2 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/assets/js/zepto.min.js


+ 193 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index.php

@@ -0,0 +1,193 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+
+<div class="content">
+	<div class="content-block">
+		<?= Yii::$service->page->widget->render('base/breadcrumbs',$this); ?>
+		<div class="category_page">
+			<div class="category_img">
+				<a href="#">
+					<?=  $image ? '<img  style="width:100%;" src="'.$image.'"/>' : '';?>
+				<a>
+			</div>
+			<div class="category_description" >
+				<h1><?=  $name ?></h1>
+				<?=  $description ?>
+			</div>
+			<div class="sort_filter">
+				<a href="#" class="category-open open-sort"><?= Yii::$service->page->translate->__('Sort'); ?> &nbsp;<span class="icon icon-caret"></span></a>
+				<a href="#" class="category-open open-filter"><?= Yii::$service->page->translate->__('Filter'); ?> &nbsp;<span class="icon icon-caret"></span></a>
+				<div class="clear"></div>
+			</div>
+			<div > 
+				<!-- 添加 class infinite-scroll 和 data-distance  向下无限滚动可不加infinite-scroll-bottom类,这里加上是为了和下面的向上无限滚动区分-->
+				<div class=" infinite-scroll infinite-scroll-bottom" data-distance="10">
+					<div class="list-block">
+						<div class="list-container">
+							<?=  Yii::$service->page->widget->render('cms/productlist' , ['products' => $products] ); ?>
+						
+						</div>
+						<!-- 加载提示符 -->
+						<div class="infinite-scroll-preloader">
+							<div class="preloader"></div>
+						</div>
+					</div>
+				</div>
+			</div>
+			
+		</div>
+	</div>
+</div>
+
+<div class="popup popup-filter">
+	<div class="content-block">
+	<div class="close_popup">
+		<a href="#" class="close-popup">×</a></p>
+	</div>
+	<?php
+		# Refind By
+		$parentThis = [
+			'refine_by_info' => $refine_by_info,
+		];
+        echo Yii::$service->page->widget->render('category/filter_refineby', $parentThis);
+	?>
+	<?php
+		# Category Left Filter subCategory
+		$parentThis = [
+			'filter_category' => $filter_category,
+			'current_category'=> $name,
+		];
+		echo Yii::$service->page->widget->render('category/filter_subcategory', $parentThis);
+	?>
+	<?php
+		# Category Left Filter Product Attributes
+		$parentThis = [
+			'filters' => $filter_info,
+		];
+		echo Yii::$service->page->widget->render('category/filter_attr', $parentThis);
+	?>
+	<?php
+		# Category Left Filter Product Price
+		$parentThis = [
+			'filter_price' => $filter_price,
+		];
+		echo Yii::$service->page->widget->render('category/filter_price', $parentThis);
+	?>
+	</div>
+</div>
+
+<div class="popup popup-sort">
+	<div class="content-block">
+		<div class="close_popup">
+			<a href="#" class="close-popup">×</a></p>
+		</div>
+		<div>
+			<?php
+				$parentThis = [
+					'query_item' => $query_item,
+				];
+				$toolbar = Yii::$service->page->widget->render('category/toolbar', $parentThis);
+				echo $toolbar;
+			?>
+		</div>
+	</div>
+</div>
+<script>
+<?php $this->beginBlock('category_product_filter') ?>  
+$(document).ready(function(){
+	$(".product_sort").change(function(){	
+		url = $(this).find('option').not(function() {return !this.selected}).attr('url');
+		window.location.href = url;
+	});
+	$(".product_num_per_page").change(function(){
+		//url = $(this).find("option:selected").attr('url');
+		url = $(this).find('option').not(function() {return !this.selected}).attr('url');
+		window.location.href = url;
+	});
+	
+	$(".filter_attr_info a").click(function(){
+		if($(this).hasClass("checked")){
+			$(this).removeClass("checked");
+		}else{
+			$(this).parent().find("a.checked").removeClass("checked");
+			$(this).addClass("checked");
+		}
+	});
+    
+});
+
+$(document).on('click','.open-filter', function () {
+  $.popup('.popup-filter');
+});
+ 
+$(document).on('click','.open-sort', function () {
+  $.popup('.popup-sort');
+});
+
+
+
+$(document).on("pageInit", "#page-infinite-scroll-bottom", function(e, id, page) {
+	var loading = false;
+	var pageNum = 1;
+	var maxPage = <?= $page_count ? $page_count : 1 ?>;
+	if(maxPage <= pageNum){
+		$('.infinite-scroll-preloader').remove();
+	} 
+	function addItems() {
+		//alert(pageNum);
+		pageNum++;
+		var html = '';
+		url =  window.location.href;
+		$.ajax({
+			async:true,
+			timeout: 60000,
+			dataType: 'json', 
+			type:'get',
+			data: {
+				'p':pageNum
+			},
+			url: url,
+			success:function(data, textStatus){ 
+				//alert(data);
+				html = data.html;
+				//alert(html);
+				$('.infinite-scroll .list-container').append(html);
+                $("img.lazy").each(function(){
+                    src = $(this).attr("data-src");
+                    $(this).attr("src",src);
+                });
+            },
+			error:function (XMLHttpRequest, textStatus, errorThrown){}
+		});
+	}
+	
+	$(page).on('infinite', function() {
+		//alert(222);
+		if (loading) return;
+		loading = true;	
+		if (pageNum >= maxPage) {
+			$.detachInfiniteScroll($('.infinite-scroll'));
+ 
+			$('.infinite-scroll-preloader').remove();
+			return;
+		}
+		addItems();
+		//alert(pageNum);
+		loading = false;
+		$.refreshScroller();
+		
+	});
+});
+$.init();
+
+<?php $this->endBlock(); ?>  
+</script>  
+<?php $this->registerJs($this->blocks['category_product_filter'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+<?= Yii::$service->page->trace->getTraceCategoryJsCode($name_default_lang)  ?>

+ 48 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index/filter/attr.php

@@ -0,0 +1,48 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="category_left_filter">
+<?php
+if(isset($parentThis['filters']) && !empty($parentThis['filters']) && is_array($parentThis['filters'])):
+	foreach($parentThis['filters']  as $attr => $filter):
+		$attrUrlStr = Yii::$service->url->category->attrValConvertUrlStr($attr);
+		if(is_array($filter) && !empty($filter)):
+			$i = 0;
+			foreach($filter as $item):
+				$val = $item['_id'];
+				$count = $item['count'];
+				if($val):
+					$i++;
+					if($i == 1):
+?>
+                    <div class="filter_attr">
+                        <div class="filter_attr_title">
+                            <?= Yii::$service->page->translate->__($attr); ?>
+                        </div>
+                        <div class="filter_attr_info">
+<?php
+					endif;
+					$urlInfo = Yii::$service->url->category->getFilterChooseAttrUrl($attrUrlStr,$val,'p');
+					$url        = $urlInfo['url'];
+					$selected = $urlInfo['selected'] ? 'class="checked"' : '';
+?>
+                            <a external <?= $selected ?> href="<?= $url ?>"><?= Yii::$service->page->translate->__($val); ?>(<?= $count ?>)</a><br/>
+
+<?php		    endif;      ?>
+<?php       endforeach;     ?>
+<?php		if($i >= 1):    ?>
+                        </div>
+                    </div>
+<?php         
+			endif;
+		endif;
+	endforeach;
+endif;
+?>
+</div>

+ 41 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index/filter/price.php

@@ -0,0 +1,41 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="category_left_filter">
+<?php
+if(isset($parentThis['filter_price']) && !empty($parentThis['filter_price']) && is_array($parentThis['filter_price'])):
+	foreach($parentThis['filter_price']  as $attr => $filter):
+		$attrUrlStr = Yii::$service->url->category->attrValConvertUrlStr($attr);
+		if(is_array($filter) && !empty($filter)):
+?>
+			<div class="filter_attr">
+                <div class="filter_attr_title">
+                    <?= Yii::$service->page->translate->__($attr); ?>
+                </div>
+			<div class="filter_attr_info">
+<?php
+			foreach($filter as $item):
+				$val = $item['val'];
+				$url = $item['url'];
+				$selected = $item['selected'] ? 'class="checked"' : '';
+				if($val && $url):
+?>
+				<a external <?= $selected; ?>  href="<?= $url; ?>"><?= $val; ?></a><br/>
+<?php
+                endif;
+			endforeach;
+?>
+			</div>
+			</div>
+<?php
+		endif;
+	endforeach;
+endif;
+?>
+</div>

+ 21 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index/filter/refineby.php

@@ -0,0 +1,21 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php if(isset($parentThis['refine_by_info']) && is_array($parentThis['refine_by_info']) && !empty($parentThis['refine_by_info'])):   ?>
+	<div class="filter_refine_by">
+		<div class="filter_attr_title"><?= Yii::$service->page->translate->__('Refine By'); ?></div>
+		<div class="filter_refine_by_content">
+		<?php foreach($parentThis['refine_by_info'] as $one):  ?>
+			<?php $name = \Yii::$service->helper->htmlEncode(Yii::$service->page->translate->__($one['name']));  ?>
+			<?php $url 	= \Yii::$service->helper->htmlEncode($one['url']); ?>
+			<div><a external href="<?= $url ?>"><i class="closeBtn c_tagbg"></i><span><?= $name; ?></span></a></div>
+		<?php endforeach ?>
+		</div>
+	</div>
+<?php endif; ?>

+ 10 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index/filter/subcategory.php

@@ -0,0 +1,10 @@
+<?php if(isset($parentThis['current_category']) && isset($parentThis['filter_category'])): ?>
+<div class="category_left_filter_category">
+	<div class="filter_attr_title">
+		<?php echo $parentThis['current_category']; ?>
+	</div>
+	<div class="filter_category_content">
+		<?php echo $parentThis['filter_category']; ?>
+	</div>
+</div>
+<?php endif; ?>

+ 36 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/index/toolbar.php

@@ -0,0 +1,36 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php   
+	$query_item 	= $parentThis['query_item'];
+	
+?>
+<div class="toolbar">
+	<div class="tb_le">
+		<?php  $frontSort = $query_item['frontSort']; ?>
+		<?php if(is_array($frontSort) && !empty($frontSort)): ?>
+			<div class="category_left_filter">
+				<div class="filter_attr">
+					<div class="filter_attr_title">
+						<b><?=  Yii::$service->page->translate->__('Sort By'); ?>:</b>
+					</div>
+					<div class="filter_attr_info">
+						<?php foreach($frontSort as $np):  ?>
+							<?php $selected = $np['selected'] ? 'class="checked"' : ''; ?>
+							<a <?= $selected ?> href="<?= $np['url']  ?>" external>
+								<?= Yii::$service->page->translate->__($np['label']); ?>
+							</a><br>
+						<?php endforeach; ?>
+					</div>
+				</div>
+			</div>
+		<?php endif; ?>
+	</div>
+	<div class="clear"></div>
+</div>

+ 22 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/category/price.php

@@ -0,0 +1,22 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="c_price">
+	<?php if(isset($special_price) && !empty($special_price)){ $sp = 'sp'; }  ?>
+	
+	<div class="price <?= $sp ?>">
+		<?= $price['symbol'].Yii::$service->helper->format->number_format($price['value']) ?>
+	</div>
+	<?php if(isset($special_price) && !empty($special_price)):  ?>
+	<div class="special_price">
+		<?= $special_price['symbol'].Yii::$service->helper->format->number_format($special_price['value']) ?>
+	</div>
+	<div class="clear"></div>
+	<?php endif;  ?>
+</div>

+ 417 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index.php

@@ -0,0 +1,417 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="product_page">
+	<div class="product_view">
+		<input type="hidden" class="product_view_id" value="<?=  $_id ?>">
+		<input type="hidden" class="sku" value="<?= $sku; ?>" />
+		<input type="hidden" class="product_csrf" name="" value="" />
+		<div class="media_img">
+			<div class="media_img_content">
+				<?php # 图片部分。
+					$imageParam = [
+                        'media_size' => $media_size,
+                        'image' => $image_thumbnails,
+                    ];
+				?>
+				<?= Yii::$service->page->widget->render('product/image',$imageParam); ?>
+			</div>
+		</div>
+		<div class="product_info">
+			<h1><?= $name; ?></h1>
+			<div>
+				<div class="rbc_cold">
+					<span>
+						<span class="average_rating"><?= Yii::$service->page->translate->__('Average rating'); ?> :</span>
+						<span class="review_star review_star_<?= round($reviw_rate_star_average) ?>" style="font-weight:bold;" itemprop="average"></span>
+                        
+						<a external rel="nofollow" href="<?= Yii::$service->url->getUrl('catalog/reviewproduct/lists',['spu'=>$spu,'_id'=>$_id]); ?>">
+							(<span itemprop="count"><?= $review_count ?> <?= Yii::$service->page->translate->__('reviews'); ?></span>)
+						</a>
+					</span>
+				</div>
+				<div class="clear"></div>
+				<div class="item_code">
+					<?= Yii::$service->page->translate->__('Item Code:'); ?>
+					<span class="item_sku"><?= $sku; ?></span>
+				</div>
+				<div class="clear"></div>
+			</div>
+			<div class="price_info">
+                <?= Yii::$service->page->widget->render('product/price', ['price_info' => $price_info]); ?>
+			</div>
+			<div class="product_info_section" id="product_info_section">
+				<div class="product_options">
+					<?= Yii::$service->page->widget->render('product/options', ['options' => $options]); ?>
+				</div>
+				<div class="product_custom_options">
+
+				<!-- 自定义界面Star -->
+                    <div class="product-sales-options mb-20">
+                        <div class="product_options" id="user_custom">
+                    
+                                <?php if(is_array($groupAttrArr)): ?>
+                                    <?php   unset($groupAttrArr['color']);
+                                        unset($groupAttrArr['size']); 
+                                        unset($groupAttrArr['weight']);
+                                        unset($groupAttrArr['volume weight']);
+                                ?>
+                                   <?php  echo "<table>"; ?>
+                                        <?php foreach($groupAttrArr as $k => $v): ?>
+                                            <?= "<tr><td>".$k."</td><td>".$v."</td></tr>"; ?>
+                                        <?php endforeach; ?>
+                                    <?php  echo "</table>"; ?>
+                                <?php endif; ?>
+
+                        </div>
+                        <div id="user_custom_content" style="display: none;">
+                      
+                                <?php if(is_array($groupAttrArr)): ?>
+                                <?php   unset($groupAttrArr['color']);
+                                        unset($groupAttrArr['size']); 
+                                        unset($groupAttrArr['weight']);
+                                        unset($groupAttrArr['volume weight']);
+                                ?>
+                                   <?php  echo "<table>"; ?>
+                                        <?php foreach($groupAttrArr as $k => $v): ?>
+
+                                    
+                                            <?= "<tr><td>".$k."</td><td>"; ?> 
+                                            <input class="custom_op" type="number" min="1" max="500" attr="<?=$k?>" style="width: 50px;">cm
+
+                                              <?= "</td></tr>"; ?>
+
+
+                                        <?php endforeach; ?>
+                                    <?php  echo "</table>"; ?>
+                                <?php endif; ?>
+                            
+                        </div>
+                    </div>
+
+                <!-- 自定义界面End -->
+					
+				</div>
+				<div class="product_qty pg">
+					<div class="label"><?= Yii::$service->page->translate->__('Qty:'); ?></div>
+					<div class="rg">
+						<select name="qty" class="qty">
+							<option value="1">1</option>
+							<option value="2">2</option>
+							<option value="3">3</option>
+							<option value="4">4</option>
+							<option value="5">5</option>
+							<option value="6">6</option>
+							<option value="7">7</option>
+							<option value="8">8</option>
+							<option value="9">9</option>
+							<option value="10">10</option>
+							<option value="11">11</option>
+							<option value="12">12</option>
+							<option value="13">13</option>
+							<option value="14">14</option>
+							<option value="15">15</option>
+							<option value="16">16</option>
+							<option value="17">17</option>
+							<option value="18">18</option>
+							<option value="19">19</option>
+							<option value="20">20</option>
+						</select>
+                        <?php if ($package_number >= 2) { ?>
+                            X <?= $package_number ?> items
+                        <?php } ?>
+					</div>
+					<div class="clear"></div>
+				</div>
+				<div class="tier_price_info">
+					<?= Yii::$service->page->widget->render('product/tier_price', ['tier_price' => $tier_price]); ?>
+				</div>
+				<div class="addtocart">
+					<a external href="javascript:void(0)" id="js_registBtn" class="button button-fill button-success redBtn addProductToCart">
+						<em><span><i></i><?= Yii::$service->page->translate->__('Add To Cart'); ?></span></em>
+					</a>
+
+					<a href="javascript:void(0)" url="<?= Yii::$service->url->getUrl('catalog/favoriteproduct/add'); ?>"  product_id="<?= $_id?>" id="divMyFavorite" rel="nofollow"  external class="button button-fill button-success redBtn addProductToFavo">
+						<em><span><i></i><?= Yii::$service->page->translate->__('Add to Favorites'); ?></span></em>
+					</a>
+					
+					<div class="clear"></div>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="clear"></div>
+	<div class="product_description_info">
+		<div class="buttons-tab">
+			<a href="#tab1" class="tab-link active button"><?= Yii::$service->page->translate->__('Description'); ?></a>
+			<a href="#tab2" class="tab-link button"><?= Yii::$service->page->translate->__('Reviews'); ?></a>
+			<a href="#tab3" class="tab-link button"><?= Yii::$service->page->translate->__('Shipping & Payment'); ?></a>
+		</div>
+		<div class="content-block">
+			<div class="tabs">
+			  <div id="tab1" class="tab active">
+				<div class="content-block">
+					<div class="text-description" style="">
+                       <!-- <?php if(is_array($groupAttrArr)): ?>
+                            <table>
+                            <?php foreach($groupAttrArr as $k => $v): ?>
+                                <tr>
+                                    <td><?= Yii::$service->page->translate->__($k); ?></td>
+                                    <td><?= Yii::$service->page->translate->__($v); ?></td></tr>
+                            <?php endforeach; ?>
+                            </table>
+                            <br/>
+                        <?php endif; ?>
+                        -->
+						<?= $description; ?>
+                        <div class="img-section">
+                            <?php   if(is_array($image_detail)):  ?>
+                                <?php foreach($image_detail as $image_detail_one): ?>
+                                    <br/>
+                                    <img class="lazy" src="<?= Yii::$service->image->getImgUrl('images/lazyload.gif');   ?>" data-src="<?= Yii::$service->product->image->getUrl($image_detail_one['image']); //->getResize($image_detail_one['image'],550,false) ?>"  />
+                                    
+                                <?php  endforeach;  ?>
+                            <?php  endif;  ?>
+                        </div>
+					</div>  
+				</div>
+			  </div>
+			  <div id="tab2" class="tab">
+				<div class="content-block">
+					<div class="text-reviews" id="text-reviews" style="">
+						<?php # review部分。
+							$reviewParam = [
+								'product_id' 	=> $_id,
+								'spu'			=> $spu,
+                            ];
+							$reviewParam['reviw_rate_star_info'] = $reviw_rate_star_info;
+                           $reviewParam['review_count'] = $review_count;
+                           $reviewParam['reviw_rate_star_average'] = $reviw_rate_star_average;
+						?>
+						<?= Yii::$service->page->widget->DiRender('product/review', $reviewParam); ?>
+					</div> 
+				</div>
+			  </div>
+			  <div id="tab3" class="tab">
+				<div class="content-block">
+					<div class="text-questions" style="">
+						<?= Yii::$service->page->widget->render('product/payment'); ?>
+					
+					</div>  
+				</div>
+			  </div>
+			</div>
+		</div>
+	</div>
+	<div class="buy_also_buy_cer">
+        <?= Yii::$service->page->widget->render('product/buy_also_buy', ['products' => $buy_also_buy]); ?>
+	</div>
+</div>
+<script>
+	// add to cart js	
+	<?php $this->beginBlock('add_to_cart') ?>
+	$(document).ready(function(){
+
+		//自定义JS 
+        var a = $(".current.sizebj span").text();
+  
+        if(a == 'CustomSize'){
+            $("#user_custom").html('');
+            $("#user_custom_content").css('display','block');
+        }
+        
+
+		productAjaxUrl = "<?= Yii::$service->url->getUrl('customer/ajax/product');  ?>";
+		product_id   = "<?=  $_id ?>";
+		$.ajax({
+			async:true,
+			timeout: 6000,
+			dataType: 'json',
+			type:'get',
+			data: {
+				// 'currentUrl':window.location.href,
+				'product_id':product_id
+			},
+			url:productAjaxUrl,
+			success:function(data, textStatus){
+				if(data.favorite){
+					$("#divMyFavorite").addClass("act");
+				}
+				if(data.csrfName && data.csrfVal && data.product_id){
+					$(".product_csrf").attr("name",data.csrfName);
+					$(".product_csrf").val(data.csrfVal);
+				}
+			},
+			error:function (XMLHttpRequest, textStatus, errorThrown){}
+		});
+
+
+
+		$(".addProductToCart").click(function(){
+			i = 1;
+			$(".product_custom_options .pg .rg ul.required").each(function(){
+				val = $(this).find("li.current a.current").attr("value");
+			    if(!val){
+				    $(this).parent().parent().css("border","1px dashed #cc0000").css('padding-left','10px').css("margin-left","-10px");
+					i = 0;
+				}else{
+					$(this).parent().parent().css("border","none").css('padding-left','0px').css("margin-left","0px");
+			    
+			    }
+			});
+			if(i){
+				custom_option = new Object();
+				$(".product_custom_options .pg .rg ul").each(function(){
+					$m = $(this).find("li.current a.current");
+					attr = $m.attr("attr");
+					value = $m.attr("value");
+					custom_option[attr] = value;
+				});
+				custom_option_json = JSON.stringify(custom_option);
+
+
+			if(a == 'CustomSize'){
+                customsize = new Object();
+                $("input.custom_op").each(function(){
+                    attr = $(this).attr("attr");
+                    value = $(this).val();
+                    customsize[attr] = value;
+
+                    if(value == ''){
+                        alert("Please fill in "+ attr);
+                        throw SyntaxError();
+                    }
+
+                });
+                customsize = JSON.stringify(customsize);
+            }else{
+
+                customsize = '';
+            }
+
+
+				//alert(custom_option_json);
+				sku = $(".sku").val();
+				qty = $(".qty").val();
+				qty = qty ? qty : 1;
+				csrfName = $(".product_csrf").attr("name");
+				csrfVal  = $(".product_csrf").val();
+				
+				$(".product_custom_options").val(custom_option_json);
+				$(this).addClass("dataUp");
+				// ajax 提交数据
+				
+				addToCartUrl = "<?= Yii::$service->url->getUrl('checkout/cart/add'); ?>";
+				$data = {};
+				$data['custom_option'] 	= custom_option_json;
+				$data['product_id'] 	= "<?= $_id ?>";
+				$data['qty'] 			= qty;
+				$data['customsize']     = customsize;
+				if (csrfName && csrfVal) {
+					$data[csrfName] 		= csrfVal;
+				}
+				$.ajax({
+					async:true,
+					timeout: 6000,
+					dataType: 'json', 
+					type:'post',
+					data: $data,
+					url:addToCartUrl,
+					success:function(data, textStatus){ 
+						if(data.status == 'success'){
+							items_count = data.items_count;
+							$("#js_cart_items").html(items_count);
+							window.location.href="<?= Yii::$service->url->getUrl("checkout/cart") ?>";
+						}else{
+							content = data.content;
+							$(".addProductToCart").removeClass("dataUp");
+							alert(content);
+						}
+						
+					},
+					error:function (XMLHttpRequest, textStatus, errorThrown){}
+				});
+			}
+		});
+	   // product favorite
+	   $("#divMyFavorite").click(function(){
+			if($(this).hasClass('act')){
+				alert("<?= Yii::$service->page->translate->__('You already favorite this product'); ?>");
+			}else{
+				$(this).addClass('act');
+				url = $(this).attr('url');
+				product_id = $(this).attr('product_id');
+				csrfName = $(".product_csrf").attr("name");
+				csrfVal  = $(".product_csrf").val();
+				param = {};
+				param["product_id"] = product_id;
+				param[csrfName] = csrfVal;
+				doPost(url, param);
+			}
+	   });
+	   // 改变个数的时候,价格随之变动
+	   $(".qty").blur(function(){
+			// 如果全部选择完成,需要到ajax请求,得到最后的价格
+			i = 1;
+			$(".product_custom_options .pg .rg ul.required").each(function(){
+				val = $(this).find("li.current a.current").attr("value");
+				attr  = $(this).find("li.current a.current").attr("attr");
+				if(!val){
+				   i = 0;
+				}
+			});
+			if(i){
+				getCOUrl = "<?= Yii::$service->url->getUrl('catalog/product/getcoprice'); ?>";
+				product_id = "<?=  $_id ?>";		
+				qty = $(".qty").val();
+				custom_option_sku = '';
+				for(x in custom_option_arr){
+					one = custom_option_arr[x];	
+					j = 1;
+					$(".product_custom_options .pg .rg ul.required").each(function(){
+						val = $(this).find("li.current a.current").attr("value");
+						attr  = $(this).find("li.current a.current").attr("attr");
+						if(one[attr] != val){
+							j = 0;
+							//break;
+						}
+					});
+					if(j){
+						custom_option_sku = one['sku'];
+						break;
+					}
+				}
+				$data = {
+					custom_option_sku:custom_option_sku,
+					qty:qty,
+					product_id:product_id
+				};
+				$.ajax({
+					async:true,
+					timeout: 6000,
+					dataType: 'json', 
+					type:'get',
+					data: $data,
+					url:getCOUrl,
+					success:function(data, textStatus){ 
+						$(".price_info").html(data.price);
+					},
+					error:function (XMLHttpRequest, textStatus, errorThrown){}
+				});
+			}
+		});
+        
+	});
+    $.init(); 
+	<?php $this->endBlock(); ?> 
+	<?php $this->registerJs($this->blocks['add_to_cart'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+</script> 
+<?= Yii::$service->page->trace->getTraceProductJsCode($sku)  ?>
+  
+ 

+ 31 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/buy_also_buy.php

@@ -0,0 +1,31 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php  if(is_array($parentThis['products']) && !empty($parentThis['products'])): ?>
+<div class="buy_also_buy" >
+	<div class="scroll_left">
+		<a href=""><?= Yii::$service->page->translate->__('Customers Who Bought This Item Also Bought'); ?></a>
+	</div>
+	<div class="scrollBox">	
+		<div class="viewport" style="overflow: hidden; position: relative;">
+			<div id="owl-buy-also-buy" class="owl-carousel">	
+				<?php
+					//$parentThis['products'] = $parentThis['products'];
+					$parentThis['name'] = 'featured';
+					$config = [
+						'view'  		=> 'cms/home/index/product.php',
+					];
+					echo Yii::$service->page->widget->renderContent('category_product_price',$config,$parentThis);
+				?>
+			</div>
+		</div>
+	</div>
+</div>
+<?php  endif;  ?>
+

+ 239 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/custom_option.php

@@ -0,0 +1,239 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php	if(is_array($items) && !empty($items)):  ?>
+<div class="product_options">
+	<input type="hidden" value="" class="product_custom_options"    />
+<?php 	foreach($items as $attr => $v_info):  ?>
+<?php 	$info = $v_info['info'];  $require = $v_info['require']; ?>
+<?php 	$required = $require ? 'required' : '' ?>
+	<div class="pg">
+		<div class="label"><?= Yii::$service->page->translate->__(ucwords(str_replace("-"," ",str_replace("_"," ",$attr))).':'); ?></div>
+		<div class="chose_<?= $attr  ?> rg  <?= $attr ?>">
+			<ul  class="no_chosen_ul <?= $required; ?>" attr="<?= $attr ?>">
+<?php  			if(is_array($info) && !empty($info)): ?>
+<?php  				foreach($info as $one): ?>
+<?php					$val 		= $one['val'];  ?>
+<?php					$key 		= $one['key'];  ?>
+<?php					$image 		= $one['image'];  ?>
+<?php   	            if($image):  ?>
+				<li id="gal1">
+					<a data-image="<?= Yii::$service->product->image->getResize($image,$middle_img_width,false) ?>"  data-zoom-image="<?= Yii::$service->product->image->getUrl($image);  ?>"  attr="<?= $attr ?>"  class="imgshow active_v"  value="<?= $key ?>">
+						<img  class="lazy" data-src="<?= Yii::$service->product->image->getResize($image,[40,45],false) ?>" /></a>
+					<b></b>
+				</li>
+<?php   	            else: ?>
+				<li>
+					<a attr="<?= $attr ?>" class="noimgshow active_v" value="<?= $key ?>"><?= Yii::$service->page->translate->__($val); ?></a>
+					<b></b>
+				</li>
+<?php   				endif;  ?>
+<?php   			endforeach;  ?>	
+<?php   		endif;   ?>
+			</ul>
+		</div>	
+		<div class="clear"></div>
+	</div>
+<?php		endforeach;  ?>
+</div>
+<?php	endif;   ?>
+
+<script>
+<?php $this->beginBlock('product_custom_option') ?>  
+$(document).ready(function(){
+	custom_option_arr = <?= $custom_option_arr ?>;
+	
+	$(".product_custom_options ul li a").click(function(){
+		if(!$(this).hasClass('no_active')){
+			$chosen_custom_option_arr = [];
+            $chosen_attr = [];
+            if ($(this).hasClass("current")) {
+                $(this).removeClass("current");
+                $(this).parent().removeClass("current");
+                $(this).parent().parent().removeClass("chosen_ul");
+                $(this).parent().parent().addClass("no_chosen_ul");
+            } else {
+                $(this).parent().parent().find("a").removeClass("current");
+                $(this).parent().parent().find("li").removeClass("current");
+                $(this).addClass("current");
+                $(this).parent().addClass("current");
+                $(this).parent().parent().removeClass("no_chosen_ul");
+                $(this).parent().parent().addClass("chosen_ul");
+            }
+			// custom option 被选择的部分的处理 - 开始
+			$c_arr = [];
+			$c_chosen_custom_option_arr = new Object();;
+			$(".product_custom_options ul li a.current").each(function(){
+				attr = $(this).attr('attr');
+				val  = $(this).attr('value');
+				
+				for(x in custom_option_arr){
+					one = custom_option_arr[x];	
+					i = 1;
+					$(".product_custom_options ul li a.current").each(function(){
+						attr2 = $(this).attr('attr');
+						val2  = $(this).attr('value');
+						//alert(attr+"###"+val);
+						if((attr != attr2) && (one[attr2] != val2)){
+							i = 0;
+						}
+					});
+					if(i){
+						if($c_chosen_custom_option_arr[attr] == undefined){
+							$c_chosen_custom_option_arr[attr] = [];
+						}
+						$c_chosen_custom_option_arr[attr].push(one);
+					}
+					
+				}
+			});
+			
+			// 每一个属性对应的允许的值,的出来,譬如 color 允许 red white等
+			c_my_arr = new Object();
+			for(attr in $c_chosen_custom_option_arr){
+				//alert(attr);
+				if(c_my_arr[attr] == undefined){
+					c_my_arr[attr] = new Object();;
+				}
+				arr = $c_chosen_custom_option_arr[attr];
+				for(x in arr){
+					one = arr[x];
+					for(y in one){
+						//alert(one[y]);
+						if(c_my_arr[attr][y] == undefined){
+							c_my_arr[attr][y] = [];
+						}
+						//alert(attr+"##"+y);
+						c_my_arr[attr][y].push(one[y]);
+					}
+				}
+			}
+			
+			$(".product_custom_options ul.chosen_ul").each(function(){
+				attr = $(this).attr('attr');
+				$(this).find("li a").each(function(){
+					val = $(this).attr('value');
+					//alert(val);
+					//alert(my_arr[attr]);
+					if($.inArray(val, c_my_arr[attr][attr]) > -1){
+						$(this).removeClass('no_active');
+						$(this).addClass('active_v');
+					}else{
+						//alert(val);
+						//alert(222);
+						$(this).addClass('no_active');
+						$(this).removeClass('active_v');
+					}
+
+				});
+				
+			});
+			
+			for(x in custom_option_arr){
+				one = custom_option_arr[x];	
+				i = 1;
+				$(".product_custom_options ul li a.current").each(function(){
+					attr = $(this).attr('attr');
+					val  = $(this).attr('value');
+					//alert(attr+"###"+val);
+					if(one[attr] != val){
+						i = 0;
+					}
+				});
+				if(i){
+					$chosen_custom_option_arr.push(one);
+				}
+				
+			}
+			//alert(1);
+			my_arr = new Object();
+			for(x in $chosen_custom_option_arr){
+				one = $chosen_custom_option_arr[x];
+				for(y in one){
+					//alert(one[y]+"###"+y);
+					if(my_arr[y] == undefined){
+						my_arr[y] = [];
+					}
+					//alert(y+"__"+one[y]);
+					my_arr[y].push(one[y]);
+				}
+				
+			}
+			
+			$(".product_custom_options ul.no_chosen_ul").each(function(){
+				attr = $(this).attr('attr');
+				$(this).find("li a").each(function(){
+					val = $(this).attr('value');
+					//alert(val);
+					//alert(my_arr[attr]);
+					if($.inArray(val, my_arr[attr]) > -1){
+						$(this).removeClass('no_active');
+						$(this).addClass('active');
+					}else{
+						//alert(val);
+						//alert(222);
+						$(this).addClass('no_active');
+						$(this).removeClass('active');
+					}
+
+				});
+				
+			});
+			// 如果全部选择完成,需要到ajax请求,得到最后的价格
+			i = 1;
+			$(".product_custom_options .pg .rg ul.required").each(function(){
+				val = $(this).find("li.current a.current").attr("value");
+			    attr  = $(this).find("li.current a.current").attr("attr");
+				if(!val){
+				   i = 0;
+				}
+			});
+			if(i){
+				for(x in custom_option_arr){
+					one = custom_option_arr[x];	
+					j = 1;
+					$(".product_custom_options .pg .rg ul.required").each(function(){
+						val = $(this).find("li.current a.current").attr("value");
+						attr  = $(this).find("li.current a.current").attr("attr");
+						if(one[attr] != val){
+							j = 0;
+							//break;
+						}
+					});
+					if(j){
+						getCOUrl = "<?= Yii::$service->url->getUrl('catalog/product/getcoprice'); ?>";
+						custom_option_sku = one['sku'];
+						product_id = "<?=  $product_id ?>";
+						qty = $(".qty").val();
+						$data = {
+							custom_option_sku:custom_option_sku,
+							qty:qty,
+							product_id:product_id
+						};
+					$.ajax({
+						async:true,
+						timeout: 6000,
+						dataType: 'json', 
+						type:'get',
+						data: $data,
+						url:getCOUrl,
+						success:function(data, textStatus){ 
+							$(".price_info").html(data.price);
+						},
+						error:function (XMLHttpRequest, textStatus, errorThrown){}
+					});
+					}
+				}
+			}
+		}
+	});	
+});
+<?php $this->endBlock(); ?>  
+</script>  
+<?php $this->registerJs($this->blocks['product_custom_option'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>

+ 46 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/image.php

@@ -0,0 +1,46 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php 
+$media_size = isset($parentThis['media_size']) ? $parentThis['media_size'] : null;
+$image = $parentThis['image'];
+$middle_img_width = isset($media_size['middle_img_width']) ? $media_size['middle_img_width'] : 400;
+?>
+<div class="swiper-container" data-space-between='10'>
+	<div class="swiper-wrapper">
+<?php
+	if(isset($image['gallery']) && is_array($image['gallery']) && !empty($image['gallery'])){
+		$gallerys = $image['gallery'];
+		$gallerys = \fec\helpers\CFunc::array_sort($gallerys,'sort_order',$dir='asc');
+		if(is_array($image['main']) && !empty($image['main'])){
+			$main_arr[] = $image['main'];
+			$gallerys = array_merge($main_arr,$gallerys);
+		}	
+	}else if(is_array($image['main']) && !empty($image['main'])){
+		$main_arr[] = $image['main'];
+		$gallerys = $main_arr;
+	}
+?>
+	<?php if(is_array($gallerys) && !empty($gallerys)): ?>
+		<?php foreach($gallerys as $gallery): ?>
+			<?php $image = $gallery['image']; ?>
+			<div class="swiper-slide"><img class="lazy" data-src="<?= Yii::$service->product->image->getResize($image,$middle_img_width,false)  ?>" src="<?= Yii::$service->image->getImgUrl('images/lazyload.gif'); ?>" alt="" style='width: 100%'></div>	
+		<?php endforeach ?>
+	<?php endif; ?>
+	</div>
+	<div class="swiper-pagination"></div>
+</div>
+<script>
+<?php $this->beginBlock('owl_fecshop_slider') ?>  
+$.init();  
+<?php $this->endBlock(); ?>  
+</script>  
+<?php $this->registerJs($this->blocks['owl_fecshop_slider'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+

+ 69 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/options.php

@@ -0,0 +1,69 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php $options_attr_arr = $parentThis['options']; ?>
+<?php # 这里是 一种类似京东的处理方式。  ?>
+<?php if(is_array($options_attr_arr) && !empty($options_attr_arr)):  ?>
+	<?php foreach($options_attr_arr as $one):   ?>
+   	<div class="pg">
+		<div class="label size-label"><?= Yii::$service->page->translate->__(ucfirst($one['label']).':'); ?></div>
+		<div class="chose_size rg">
+			<ul>
+<?php       if(is_array($one['value']) && !empty($one['value'])):  ?>
+<?php		    foreach($one['value'] as $info): ?>
+<?php		        $attr_val = $info['attr_val']; ?>
+<?php		        $active   = $info['active']; ?>
+<?php		        $url   = $info['url']; ?>
+<?php			//$main_img = isset($info['image']['main']['image']) ? $info['image']['main']['image'] : ''; ?>
+<?php			//$url = ''; ?>
+<?php			//$active = 'class="active"'; ?>
+<?php			//if(isset($attr1_2_attr2[$attr1Val])){ ?>
+<?php			//	$url = Yii::$service->url->getUrl($attr1_2_attr2[$attr1Val]['url_key']); ?>
+<?php			//}else{ ?>
+<?php			//	$url = Yii::$service->url->getUrl($info['url_key']); ?>
+<?php			//} ?>
+<?php			//if($attr1Val == $current_attr1){ ?>
+<?php			//	$active = 'class="current"'; ?>
+<?php			    if(isset($info['show_as_img']) && $info['show_as_img']): ?>
+                        <li  class="<?=$active ?> show_as_img">
+                            <a class="<?=$active ?>" href="javascript:void(0)" rel="<?= $url ?>"><span><img src="<?= Yii::$service->product->image->getResize($info['show_as_img'],[50,55],false); ?>" /></span></a>
+                            <b></b>
+                        </li>
+<?php			    else: ?>
+                        <li class="<?=$active ?>  <?=$one['label']?>bj">
+                            <a class="<?=$active ?>" href="javascript:void(0)" rel="<?= $url ?>"><span><?= Yii::$service->page->translate->__($attr_val); ?></span></a>
+                            <b></b>
+                        </li>
+<?php			    endif; ?>
+<?php		    endforeach; ?>
+<?php		endif; ?>
+			</ul>
+			<div class="clear"></div>
+		</div>
+		<div class="clear"></div>
+	</div>
+<?php	
+	endforeach;
+endif;
+?>
+
+<script>
+<?php $this->beginBlock('product_options') ?>  
+$(document).ready(function(){
+	$(".product_options a").click(function(){
+		$url = $(this).attr("rel");
+		if($url){
+			window.location.href=$url;
+		}
+	});
+});
+<?php $this->endBlock(); ?>  
+</script>  
+<?php $this->registerJs($this->blocks['product_options'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+

+ 31 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/payment.php

@@ -0,0 +1,31 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="scroll_left">
+	<a href=""><?= Yii::$service->page->translate->__('Payment Methods:'); ?></a>
+</div>
+<p><?= Yii::$service->page->translate->__('FECSHOP.com accepts PayPal, Credit Card, Western Union and Wire Transfer as secure payment methods:'); ?></p>
+
+<p><?= Yii::$service->page->translate->__('Global:'); ?></p>
+
+<p><?= Yii::$service->page->translate->__('1. PayPal'); ?></p>
+
+<p><img alt="" height="96" src="<?= Yii::$service->image->getImgUrl('appfront/images/paypal48.jpg') ?>" width="300"></p>
+
+<p><?= Yii::$service->page->translate->__('1) Login To Your Account or use Credit Card Express.'); ?><br>
+<?= Yii::$service->page->translate->__('2) Enter your Card Details, the order will be shipped to your PayPal address. And click "Submit".'); ?><br>
+<?= Yii::$service->page->translate->__('3) Your Payment will be processed and a receipt will be sent to your email inbox.'); ?></p>
+
+<p><?= Yii::$service->page->translate->__('2. Credit Card'); ?></p>
+
+<p><img alt="" height="40" src="<?= Yii::$service->image->getImgUrl('appfront/images/creditcard48.jpg') ?>" width="554"></p>
+
+<p>	<?= Yii::$service->page->translate->__('1) Choose your shipping address OR create a new one.'); ?><br>
+	<?= Yii::$service->page->translate->__('2) Enter your Card Details and click "Submit".'); ?><br>
+	<?= Yii::$service->page->translate->__('3) Your Payment will be processed and a receipt will be sent to your email inbox.'); ?></p>

+ 23 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/price.php

@@ -0,0 +1,23 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php  $price_info = $parentThis['price_info'];   ?>
+<?php if(isset($price_info['special_price']['value'])):  ?>			
+	<div class="special_price special_active">
+		<?= $price_info['special_price']['symbol']  ?><?= Yii::$service->helper->format->number_format($price_info['special_price']['value']) ?>
+	</div>
+	<div class="price special_active">
+		<?= $price_info['price']['symbol']  ?><?= Yii::$service->helper->format->number_format($price_info['price']['value']) ?>
+	</div>
+	<div class="clear"></div>
+<?php else:  ?>
+	<div class="price no-special">
+		<?= $price_info['price']['symbol']  ?><?= Yii::$service->helper->format->number_format($price_info['price']['value']) ?>
+	</div>
+<?php endif; ?>

+ 115 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/review.php

@@ -0,0 +1,115 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+    //$reviw_rate_star_info = $parentThis['reviw_rate_star_info'];
+    //$review_count = $parentThis['review_count'];
+    //$reviw_rate_star_average = $parentThis['reviw_rate_star_average'];
+?>
+<div class="product-Reviews">
+	<div id="pic_list_2" class="scroll_horizontal">
+		<div class="clear"></div>
+		<div class="box pro_commit">
+            
+            
+            <div class="averageWarp">
+				<span class="lineBlock fon14"><?= Yii::$service->page->translate->__('Average Rating'); ?>: </span>
+				<a  lehref="#" class="review_star review_star_<?= round($reviw_rate_star_average) ?>" onclick="javascript:return false;"></a>
+				<b class="lineBlock fon18"><?= $reviw_rate_star_average ?></b>
+			</div>
+            <div class="clear"></div>
+            <div class="lbBox writeRiviewTitle">
+				<ul class="lineBlock proportionStars">
+					<li class="lbBox">
+						<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('5 stars'); ?></span>
+						<div class="lineBlock proportionBox">
+							<div style="width: <?=  $reviw_rate_star_info['star_5'] ?>%"> </div>
+						</div>
+						<span class="lineBlock"><?=  $reviw_rate_star_info['star_5'] ?>%</span>
+					</li>
+					<li class="lbBox">
+						<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('4 stars'); ?></span>
+						<div class="lineBlock proportionBox">
+							<div style="width: <?=  $reviw_rate_star_info['star_4'] ?>%"> </div>
+						</div>
+						<span class="lineBlock"><?=  $reviw_rate_star_info['star_4'] ?>%</span>
+					</li>
+					<li class="lbBox">
+						<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('3 stars'); ?></span>
+						<div class="lineBlock proportionBox">
+							<div style="width: <?=  $reviw_rate_star_info['star_3'] ?>%"> </div>
+						</div>
+                        <span class="lineBlock"><?=  $reviw_rate_star_info['star_3'] ?>%</span>				
+					</li>
+					<li class="lbBox">
+						<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('2 stars'); ?></span>
+						<div class="lineBlock proportionBox">
+							<div style="width: <?=  $reviw_rate_star_info['star_2'] ?>%"> </div>
+						</div>
+						<span class="lineBlock"><?=  $reviw_rate_star_info['star_2'] ?>%</span>
+					</li>
+					<li class="lbBox">
+						<span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('1 stars'); ?></span>
+						<div class="lineBlock proportionBox">
+							<div style="width: <?=  $reviw_rate_star_info['star_1'] ?>%"> </div>
+						</div>
+                        <span class="lineBlock"><?=  $reviw_rate_star_info['star_1'] ?>%</span>
+					</li>
+				</ul>
+				<p class="buttons-row">
+                    <a external href="<?= Yii::$service->url->getUrl('catalog/reviewproduct/add',['spu'=>$spu,'_id'=>$_id]); ?>" class="button button-round">
+                        <?= Yii::$service->page->translate->__('Add Review'); ?>
+                    </a>
+                    <a external href="<?= Yii::$service->url->getUrl('catalog/reviewproduct/lists',['spu'=>$spu,'_id'=>$_id]); ?>" class="button button-round">
+                        <?= Yii::$service->page->translate->__('View  All Review'); ?>(<?= $review_count; ?>) 
+                    </a>
+                </p>
+			</div>
+            
+			<div class="product-Reviews_top">
+				<?php  if(is_array($coll) && !empty($coll)):  ?>
+						
+					<?php foreach($coll as $one):  ?>
+						<div class="card">
+							<div class="fec-card-header">
+								<?= $one['summary'] ?>
+							</div>
+							<div class="fec-card-content">
+								<div class="fec-card-content-inner">
+									<div class="review-content">
+										<?= $one['review_content'] ?>
+									</div>
+										
+									<div class="moderation">
+									<?php if($one['status'] == $noActiveStatus): ?>  
+										<?= Yii::$service->page->translate->__('Your Review is awaiting moderation...');?>
+									<?php elseif($one['status'] == $refuseStatus): ?>
+										<?= Yii::$service->page->translate->__('Your Review is refused.');?>
+									<?php endif; ?>
+									</div>
+									<div class="review_list_remark">
+										<p><?= Yii::$service->page->translate->__('By');?> <?= $one['name'] ?></p>
+										<span><?= $one['review_date'] ? date('Y-m-d H:i:s',$one['review_date']) : '' ?></span>
+									</div>
+								</div>
+							</div>
+							<div class="fec-card-footer">
+								<a href="#" class="review_star review_star_<?= $one['rate_star'] ?>" onclick="javascript:return false;"></a>
+							</div>
+						</div>
+					<?php  endforeach; ?>
+				
+				<?php endif; ?>
+			</div>
+			<div class="clear"></div>
+			
+			
+		</div>
+	</div>
+</div>

+ 44 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/product/index/tier_price.php

@@ -0,0 +1,44 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php  $tier_price = $parentThis['tier_price'];   ?>
+<?php  if(is_array($tier_price) && !empty($tier_price) ) : ?>
+<div class="label"> <?= Yii::$service->page->translate->__('Wholesale Prices :'); ?></div>
+	<table >
+		<tr>
+			<td><?= Yii::$service->page->translate->__('Qty:'); ?></td>
+		<?php $i = 1;  ?>
+		<?php  foreach($tier_price as $one):  ?>
+			<?php if($i != 1):  ?>
+				<td>
+                    <?php $end_qty = $one['qty'] - 1; ?>
+                    <?php if ($end_qty > $pre_qty):  ?>
+                        <?php echo $pre_qty.'-'.$end_qty; ?>
+                    <?php else: ?>
+                        <?php echo $pre_qty ?>
+                    <?php endif; ?>
+				</td>
+			<?php endif; ?>
+			<?php
+				$i++;
+				$pre_qty = $one['qty'];
+			?>
+		<?php endforeach;  ?>
+			<td>
+			<?= '>='.$pre_qty;  ?>
+			</td>
+		</tr>
+		<tr>
+			<td><?= Yii::$service->page->translate->__('Price:'); ?></td>
+		<?php  foreach($tier_price as $one):  ?>
+			<td><?= Yii::$service->product->price->formatSamplePrice($one['price']); ?></td>
+		<?php  endforeach;  ?>
+		</tr>
+	</table>
+<?php  endif;  ?>

+ 170 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/reviewproduct/add.php

@@ -0,0 +1,170 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="main container one-column">
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>
+	<div class="col-main">
+		<div class="std">
+			<div class="review_add">
+				<div class="row">
+					<div class="col-20">
+						<a external href="<?= $url ?>">
+							<img src="<?= Yii::$service->product->image->getResize($main_img,[150,150],false) ?>">
+						</a>
+					</div>
+					<div class="col-80">
+						<a external class="product_name" href="<?= $url ?>">
+							<?= $product_name ?>
+						</a>
+						
+						<div class="product_info review_add_price">
+							<div class="price_info">
+								<?= Yii::$service->page->widget->render('product/price',['price_info' => $price_info]); ?>
+							</div>
+						</div>
+					</div>
+				</div>
+				
+			</div>
+			<div class="product-Reviews_bottom">
+				<form method="post" action="">
+					<?= \fec\helpers\CRequest::getCsrfInputHtml();  ?>
+					<input name="editForm[product_spu]" value="<?= $spu ?>" id="product_spu" type="hidden">
+					<input name="editForm[product_id]" value="<?= $product_id ?>" id="product_id" type="hidden">
+						
+					<div class="list-block" >
+						<ul>			
+							<li>
+								<div class="item-content">
+									<div class="item-media">
+										<i class="icon icon-form-name"></i>
+									</div>
+									<div class="item-inner">
+										<div class="item-title label">
+											<?= Yii::$service->page->translate->__('Name');?><em class="product-description_em">*</em>
+										</div>
+										<input name="editForm[name]" id="review_email_field" type="text" placeholder="Your name"  class="input-text  review-input-text required-entry" value="<?=  $editForm['name'] ? $editForm['name'] : $customer_name ?>">
+									</div>
+								</div>
+							</li>
+											
+							<li>
+								<div class="item-content">
+									<div class="item-media">
+										<i class="icon icon-form-name"></i>
+									</div>
+									<div class="item-inner">
+										<div class="item-title label">
+											<?= Yii::$service->page->translate->__('Summary');?><em class="product-description_em">*</em> 
+										</div>
+										<input placeholder="<?= Yii::$service->page->translate->__('Summary of Your Review');?>" name="editForm[summary]" id="review_title_field" class="input-text  review-input-text required-entry" value="<?=  $editForm['summary'] ?>" type="text">
+									
+									</div>
+								</div>
+							</li>
+							
+							<li>
+								<div class="item-content">
+								  <div class="item-media"><i class="icon icon-form-name"></i></div>
+								  <div class="item-inner">
+									<div class="item-title label">
+										<?= Yii::$service->page->translate->__('Rate');?></strong><em class="product-description_em">*</em>
+									</div>
+									<div class="lh30_f">
+										<input name="editForm[rate_star]" value="5" id="review_price_field" type="hidden">
+										<ul class="star_ul">
+											<li><a class="star_1 full_star" title="1 stars" rel="1" alt="6" href="#" onclick="javascript:return false;"></a></li>
+											<li><a class="star_2 full_star" title="2 stars" rel="2" alt="7" href="#" onclick="javascript:return false;"></a></li>
+											<li><a class="star_3 full_star" title="3 stars" rel="3" alt="8" href="#" onclick="javascript:return false;"></a></li>
+											<li><a class="star_4 full_star" title="4 stars" rel="4" alt="9" href="#" onclick="javascript:return false;"></a></li>
+											<li><a class="star_5 full_star" title="5 stars" rel="5" alt="10" href="#" onclick="javascript:return false;"></a></li>
+										</ul>          
+										<span class="review_span_error" id="review_price_span" style="display:inline;"></span>
+									</div>
+									
+								  </div>
+								</div>
+							  </li> 
+							
+							<li class="align-top">
+								<div class="item-content">
+									<div class="item-media">
+										<i class="icon icon-form-comment"></i>
+									</div>
+									<div class="item-inner">
+										<div class="item-title label"><?= Yii::$service->page->translate->__('Review');?></div>
+											<textarea placeholder="<?= Yii::$service->page->translate->__('Your review content'); ?>" name="editForm[review_content]" id="review_review_field"><?=  $editForm['review_content'] ?></textarea>
+									</div>
+								</div>
+							</li>
+							<?php if($add_captcha){  ?>
+							<li>
+								<div class="item-content">
+									<div class="item-media">
+										<i class="icon icon-form-name"></i>
+									</div>
+									<div class="item-inner">
+										<div class="item-title label">
+											<?= Yii::$service->page->translate->__('Captcha');?><em class="product-description_em">*</em>
+										</div>
+										<div class="input-box login-captcha">
+											<input type="text" name="editForm[captcha]" value="" size=10 class="login-captcha-input"> 
+											<img class="login-captcha-img"  title="点击刷新" src="<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?<?php echo md5(time() . mt_rand(1,10000));?>" align="absbottom" onclick="this.src='<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?'+Math.random();"></img>
+											<span class="icon icon-refresh"></span>
+											
+										</div>
+										<script>
+										<?php $this->beginBlock('login_captcha_onclick_refulsh') ?>  
+										$(document).ready(function(){
+											$(".icon-refresh").click(function(){
+												$(this).parent().find("img").click();
+											});
+										});
+										<?php $this->endBlock(); ?>  
+										</script>  
+										<?php $this->registerJs($this->blocks['login_captcha_onclick_refulsh'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+									</div>
+								</div>
+							</li>
+							<?php }  ?>
+						</ul>
+						<div class="review_submit">
+							<button type="submit" title="Submit Review" class="button" id="m_top_10" onclick="return check_review()"><span><span><?= Yii::$service->page->translate->__('Submit');?></span></span></button>
+						</div>
+					</div>
+				</form>
+			</div>
+		</div>
+	</div>
+</div>
+
+
+
+		
+
+<script>
+	// add to cart js	
+	<?php $this->beginBlock('product_review_rate') ?>
+	$(document).ready(function(){
+	   $(".star_ul li a").click(function(){
+                $(".star_ul li a").removeClass('full_star');
+                $(this).addClass('full_star');
+                $num = $(this).attr('rel');
+                for($i=1;$i<=$num;$i++){
+                   $('.star_'+$i).addClass('full_star');
+                }
+                $('#review_price_field').val($num);
+        });
+	});
+	 
+	<?php $this->endBlock(); ?>  
+	<?php $this->registerJs($this->blocks['product_review_rate'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+</script> 

+ 162 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalog/reviewproduct/lists.php

@@ -0,0 +1,162 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="main container one-column">
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>
+	<div class="col-main">
+		<div class="std">
+			<div class="review_lists">
+				<div class="review_list_product" style="width:100%">
+					<div class="row">
+						<div class="col-20">
+							<a external href="<?= $url ?>">
+								<img src="<?= Yii::$service->product->image->getResize($main_img,[150,150],false) ?>">
+							</a>
+						</div>
+						<div class="col-80">
+							<a external class="product_name" href="<?= $url ?>">
+								<?= $name ?>
+							</a>
+							
+							<div class="product_info review_add_price">
+								<div class="price_info">
+									<?= Yii::$service->page->widget->render('product/price',['price_info' => $price_info]); ?>
+								</div>
+							</div>
+						</div>
+					</div>
+					
+					<div class="review_cart">
+						<div style="margin:20px 0 0">
+							<div class="rbc_cold">
+								<span>
+									<span class="average_rating"><?= Yii::$service->page->translate->__('Average rating :');?></span>
+									<span class="review_star review_star_<?= round($reviw_rate_star_average) ?>" style="font-weight:bold;" itemprop="average"></span>  
+									
+									<a external rel="nofollow" href="<?= Yii::$service->url->getUrl('catalog/reviewproduct/lists',['spu'=>$spu,'_id'=>$_id]); ?>">
+										(<span itemprop="count"><?= $review_count ?> <?= Yii::$service->page->translate->__('reviews');?></span>)
+									</a>
+								</span>
+							</div>					
+							
+							<div class="content-block">
+								<div class="row">
+									<div class="col-50">
+										<a external href="<?= $url ?>"  class="submitbutton button  button-fill button-success">
+											<span><span> <?= Yii::$service->page->translate->__('Add To Cart');?></span></span> 
+										</a>
+									</div>
+									<div class="col-50">
+										<a external style="margin-left:10px" href="<?= $addReviewUrl ?>" onclick="" class="submitbutton button  button-fill button-danger">
+											<span><span> <?= Yii::$service->page->translate->__('Add Review');?></span></span> 
+										</a>
+									</div>
+								</div>
+							</div>
+							
+						</div>
+					</div>
+					<div class="clear"></div>
+				</div>
+                
+				<div class="product-reviews pro_commit"> 
+					<div class="clear"></div>
+					
+                    
+                    <div class="averageWarp">
+                        <span class="lineBlock fon14"><?= Yii::$service->page->translate->__('Average Rating'); ?>: </span>
+                        <b class="lineBlock fon18"><?= $reviw_rate_star_average ?></b>
+                        </div>
+                    <div class="clear"></div>
+                    <div class="lbBox writeRiviewTitle">
+                        <ul class="lineBlock proportionStars">
+                            <li class="lbBox">
+                                <span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('5 stars'); ?></span>
+                                <div class="lineBlock proportionBox">
+                                    <div style="width: <?=  $reviw_rate_star_info['star_5'] ?>%"> </div>
+                                </div>
+                                <span class="lineBlock"><?=  $reviw_rate_star_info['star_5'] ?>%</span>
+                            </li>
+                            <li class="lbBox">
+                                <span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('4 stars'); ?></span>
+                                <div class="lineBlock proportionBox">
+                                    <div style="width: <?=  $reviw_rate_star_info['star_4'] ?>%"> </div>
+                                </div>
+                                <span class="lineBlock"><?=  $reviw_rate_star_info['star_4'] ?>%</span>
+                            </li>
+                            <li class="lbBox">
+                                <span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('3 stars'); ?></span>
+                                <div class="lineBlock proportionBox">
+                                    <div style="width: <?=  $reviw_rate_star_info['star_3'] ?>%"> </div>
+                                </div>
+                                <span class="lineBlock"><?=  $reviw_rate_star_info['star_3'] ?>%</span>				
+                            </li>
+                            <li class="lbBox">
+                                <span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('2 stars'); ?></span>
+                                <div class="lineBlock proportionBox">
+                                    <div style="width: <?=  $reviw_rate_star_info['star_2'] ?>%"> </div>
+                                </div>
+                                <span class="lineBlock"><?=  $reviw_rate_star_info['star_2'] ?>%</span>
+                            </li>
+                            <li class="lbBox">
+                                <span class="lineBlock fz_blue"><?= Yii::$service->page->translate->__('1 stars'); ?></span>
+                                <div class="lineBlock proportionBox">
+                                    <div style="width: <?=  $reviw_rate_star_info['star_1'] ?>%"> </div>
+                                </div>
+                                <span class="lineBlock"><?=  $reviw_rate_star_info['star_1'] ?>%</span>
+                            </li>
+                        </ul>
+                    </div>
+                    
+                    <?php  if(is_array($coll) && !empty($coll)):  ?>
+                    
+                        <?php foreach($coll as $one):  ?>
+                            <div class="card">
+                                <div class="fec-card-header">
+                                    <?= $one['summary'] ?>
+                                </div>
+                                <div class="fec-card-content">
+                                    <div class="fec-card-content-inner">
+                                        <div class="review-content">
+                                            <?= $one['review_content'] ?>
+                                        </div>
+                                            
+                                        <div class="moderation">
+                                        <?php if($one['status'] == $noActiveStatus): ?>  
+                                            <?= Yii::$service->page->translate->__('Your Review is awaiting moderation...');?>
+                                        <?php elseif($one['status'] == $refuseStatus): ?>
+                                            <?= Yii::$service->page->translate->__('Your Review is refused.');?>
+                                        <?php endif; ?>
+                                        </div>
+                                        <div class="review_list_remark">
+                                            <p><?= Yii::$service->page->translate->__('By');?> <?= $one['name'] ?></p>
+                                            <span><?= $one['review_date'] ? date('Y-m-d H:i:s',$one['review_date']) : '' ?></span>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="fec-card-footer">
+                                    <a href="#" class="review_star review_star_<?= $one['rate_star'] ?>" onclick="javascript:return false;"></a>
+                                </div>
+                            </div>
+                        <?php  endforeach; ?>
+                    
+                    <?php endif; ?>
+					
+					<?php if($pageToolBar): ?>
+					<div class="pageToolbar">
+						<label class=""><?= Yii::$service->page->translate->__('Page:');?></label>
+                        <?= $pageToolBar ?>
+                         <div class="clear"></div>
+                    </div>
+					<?php endif; ?>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>

+ 177 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalogsearch/index/index.php

@@ -0,0 +1,177 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="content">
+	<div class="content-block">
+		<?= Yii::$service->page->widget->render('base/breadcrumbs',$this); ?>
+		<div class="category_page">
+			<div class="category_img">
+				<a href="#">
+					<?=  $image ? '<img  style="width:100%;" src="'.$image.'"/>' : '';?>
+				<a>
+			</div>
+			<div class="category_description" >
+				<h1><?=  $name ?></h1>
+				<?=  $description ?>
+			</div>
+			<div class="sort_filter">
+				<a href="#" class="category-open open-filter">Filter &nbsp;<span class="icon icon-caret"></span></a>
+				<div class="clear"></div>
+			</div>
+			<div > 
+				<!-- 添加 class infinite-scroll 和 data-distance  向下无限滚动可不加infinite-scroll-bottom类,这里加上是为了和下面的向上无限滚动区分-->
+				<div class=" infinite-scroll infinite-scroll-bottom" data-distance="10">
+					<div class="list-block">
+						<div class="list-container">
+							<?php  if(is_array($products) && !empty($products)): ?>
+                                <?php
+                                    $parentThis['products'] = $products;
+                                    echo Yii::$service->page->widget->render('cms/productlist', $parentThis);
+                                ?>
+                                
+                            <?php else: ?>
+                                <?= Yii::$service->page->translate->__('Search results for \'{searchText}\' returns no results',['searchText' => $searchText]); ?>
+                            <?php endif; ?>
+						</div>
+						<!-- 加载提示符 -->
+						<div class="infinite-scroll-preloader">
+							<div class="preloader"></div>
+						</div>
+					</div>
+				</div>
+			</div>
+			
+		</div>
+	</div>
+</div>
+
+<div class="popup popup-filter">
+	<div class="content-block">
+	<div class="close_popup">
+		<a href="#" class="close-popup">×</a></p>
+	</div>
+	<?php
+		# Refind By
+		$parentThis = [
+			'refine_by_info' => $refine_by_info,
+		];
+		echo Yii::$service->page->widget->render('category/filter_refineby', $parentThis);
+	?>
+	<?php
+		# Category Left Filter Product Attributes
+		$parentThis = [
+			'filters' => $filter_info,
+		];
+		echo Yii::$service->page->widget->render('category/filter_attr', $parentThis);
+	?>
+	<?php
+		# Category Left Filter Product Price
+		$parentThis = [
+			'filter_price' => $filter_price,
+		];
+		echo Yii::$service->page->widget->render('category/filter_price', $parentThis);
+	?>
+	</div>
+</div>
+
+<script>
+<?php $this->beginBlock('category_product_filter') ?>  
+$(document).ready(function(){
+	$(".product_sort").change(function(){	
+		url = $(this).find('option').not(function() {return !this.selected}).attr('url');
+		window.location.href = url;
+	});
+	$(".product_num_per_page").change(function(){
+		//url = $(this).find("option:selected").attr('url');
+		url = $(this).find('option').not(function() {return !this.selected}).attr('url');
+		window.location.href = url;
+	});
+	
+	$(".filter_attr_info a").click(function(){
+		if($(this).hasClass("checked")){
+			$(this).removeClass("checked");
+		}else{
+			$(this).parent().find("a.checked").removeClass("checked");
+			$(this).addClass("checked");
+		}
+	});
+    $("img.lazy").each(function(){
+        src = $(this).attr("data-src");
+        $(this).attr("src",src);
+    });
+});
+
+$(document).on('click','.open-filter', function () {
+  $.popup('.popup-filter');
+});
+ 
+$(document).on('click','.open-sort', function () {
+  $.popup('.popup-sort');
+});
+
+
+
+$(document).on("pageInit", "#page-infinite-scroll-bottom", function(e, id, page) {
+	var loading = false;
+	var pageNum = 1;
+	var maxPage = <?= $page_count ? $page_count : 1 ?>;
+	if(maxPage <= pageNum){
+		$('.infinite-scroll-preloader').remove();
+	} 
+	function addItems() {
+		//alert(pageNum);
+		pageNum++;
+		var html = '';
+		url =  window.location.href;
+		$.ajax({
+			async:true,
+			timeout: 60000,
+			dataType: 'json', 
+			type:'get',
+			data: {
+				'p':pageNum
+			},
+			url: url,
+			success:function(data, textStatus){ 
+				//alert(data);
+				html = data.html;
+				//alert(html);
+				$('.infinite-scroll .list-container').append(html);
+                $("img.lazy").each(function(){
+                    src = $(this).attr("data-src");
+                    $(this).attr("src",src);
+                });
+            },
+			error:function (XMLHttpRequest, textStatus, errorThrown){}
+		});
+	}
+	
+	$(page).on('infinite', function() {
+		//alert(222);
+		if (loading) return;
+		loading = true;	
+		if (pageNum >= maxPage) {
+			$.detachInfiniteScroll($('.infinite-scroll'));
+ 
+			$('.infinite-scroll-preloader').remove();
+			return;
+		}
+		addItems();
+		//alert(pageNum);
+		loading = false;
+		$.refreshScroller();
+		
+	});
+});
+$.init();
+
+<?php $this->endBlock(); ?>  
+</script>  
+<?php $this->registerJs($this->blocks['category_product_filter'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+<?= Yii::$service->page->trace->getTraceSearchJsCode($traceSearchData)  ?>

+ 30 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/catalogsearch/index/index/toolbar.php

@@ -0,0 +1,30 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php   
+	$query_item 	= $parentThis['query_item'];
+	$product_page 	= $parentThis['product_page'];
+?>
+<div class="toolbar">
+	<div class="tb_le">
+		<?php  $frontNumPerPage = $query_item['frontNumPerPage']; ?>
+		<?php if(is_array($frontNumPerPage) && !empty($frontNumPerPage)): ?>
+			<b><?= Yii::$service->page->translate->__('Show Per Page:') ?></b>
+			<select class="product_num_per_page">	
+				<?php foreach($frontNumPerPage as $np):   ?>
+					<?php $selected = $np['selected'] ? 'selected="selected"' : ''; ?>
+					<?php $url 		= $np['url'];  ?>
+					<option <?= $selected; ?> url="<?= $url; ?>" value="<?= $np['value']; ?>"><?= $np['value']; ?></option>
+				<?php endforeach; ?>
+			</select>
+		<?php endif; ?>
+	</div>
+	<?= $product_page ?>
+	<div class="clear"></div>
+</div>

+ 389 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/cart/index.php

@@ -0,0 +1,389 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+use fecshop\app\apphtml5\helper\Format;
+use fec\helpers\CRequest;
+?>
+<div class="main container one-column">
+	<div class="col-main">
+     <?= Yii::$service->page->widget->render('base/flashmessage'); ?>
+	<?php if(is_array($cart_info) && !empty($cart_info)):   ?>
+			    
+		<div class="product_page">
+			
+			<div class="cart">
+				<div class="page-title title-buttons">
+					<div class="shopping-cart-img">
+						<?= Yii::$service->page->translate->__('Shopping Cart'); ?>
+					</div>
+				</div>
+				<div class="cart_info">
+                    <div class="cart_select_div">
+                        <input id="cart_select_all" type="checkbox" name="cart_select_all" class="cart_select cart_select_all">
+                        &nbsp;
+                        <label for="cart_select_all">Select All Product</label>
+                    </div>
+					<?php if(is_array($cart_info['products']) && (!empty($cart_info['products']))): ?>
+						<?php foreach($cart_info['products'] as $product_one): ?>
+							<div class="row">
+								<div class="col-33">
+                                    <input rel="<?= $product_one['item_id']; ?>" <?=  ($product_one['active'] == Yii::$service->cart->quoteItem->activeStatus ) ?  'checked="checked"' : '' ?> type="checkbox" name="cart_select_item" class="cart_select cart_select_item">
+									<a external href="<?= $product_one['url'] ?>" title="<?= $product_one['name'] ?>" class="product-image">
+										<img src="<?= Yii::$service->product->image->getResize($product_one['image'],[150,150],false) ?>" alt="<?= $product_one['name'] ?>" width="75" height="75">
+									</a>
+								</div>
+								<div class="col-66">
+									<h2 class="product-name">
+										<a external href="<?= $product_one['url'] ?>"><?= $product_one['name'] ?></a>
+									</h2>
+									<?php  if(is_array($product_one['custom_option_info'])):  ?>
+									<ul class="options">
+										<?php foreach($product_one['custom_option_info'] as $label => $val):  ?>
+											
+											<li><?= Yii::$service->page->translate->__(ucwords($label).':') ?><?= Yii::$service->page->translate->__($val) ?> </li>
+											
+										<?php endforeach;  ?>
+
+										<?php  if($product_one['customsize']):  ?>
+										<ul>
+										<?php
+											$customsize = stripslashes($product_one['customsize']);  
+											$customsize = json_decode($customsize,true);
+										?>
+											<?php foreach($customsize as $k => $v):  ?>
+												
+												<li><?=$k?>:<?=$v?> </li>
+												
+											<?php endforeach;  ?>
+										</ul>
+										<?php endif;  ?>
+
+
+
+									</ul>
+									<div class="clear"></div>
+									<?php endif;  ?>
+									<span class="cart-price">
+										<span class="price"><?=  $currency_info['symbol'];  ?><?= Format::price($product_one['product_price']); ?></span>                
+									</span>
+									<div class="cart_qty">
+										<a  externalhref="javascript:void(0)" class="cartqtydown changeitemqty" rel="<?= $product_one['item_id']; ?>" num="<?= $product_one['qty']; ?>">-</a>
+										<input name="cart[qty]" size="4" title="Qty" class="input-text qty" rel="<?= $product_one['item_id']; ?>" maxlength="12" value="<?= $product_one['qty']; ?>">
+										<a externalhref="javascript:void(0)" class="cartqtyup changeitemqty" rel="<?= $product_one['item_id']; ?>" num="<?= $product_one['qty']; ?>">+</a>
+										<div class="clear"></div>
+									</div>
+									<a  externalhref="javascript:void(0)"  rel="<?= $product_one['item_id']; ?>" title="Remove item" class="btn-remove btn-remove2"><span class="icon icon-remove"></span></a>
+									
+								</div>
+							</div>
+						<?php endforeach; ?>
+					<?php endif; ?>
+				</div>
+				<div class="cart-collaterals">
+					<div class="col2-set">
+						<div class="col-1">
+						</div>
+						<div class="col-2">
+							<form id="discount-coupon-form" >
+								<div class="discount">
+									<h2><?= Yii::$service->page->translate->__('Discount Codes');?></h2>
+									<div class="discount-form">
+										<div class="input-box">
+											<div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset">
+												<input type="hidden" class="couponType"  value="<?= $cart_info['coupon_code'] ? 1 : 2 ; ?>"  />
+												<input style="color:#777;" class="input-text" id="coupon_code" name="coupon_code" value="<?= $cart_info['coupon_code']; ?>">
+											</div>
+										</div>
+										<div class="buttons-coupon">
+											<a external data-role="button" href="javascript:void(0)"  class="add_coupon_submit submitbutton ui-link ui-btn ui-shadow ui-corner-all" role="button">
+                                                <span>
+                                                    <span><?= Yii::$service->page->translate->__($cart_info['coupon_code'] ? 'Cancel Coupon' : 'Add Coupon') ; ?></span>
+                                                </span>
+                                            </a>
+										</div>
+										<div class="clear"></div>
+										<div class="coupon_add_log"></div>
+									</div>
+								</div>
+							</form>
+							<div class="clear"></div>
+						</div>
+					</div>
+					<div class="cart_cost">
+						<div class="row no-gutter">
+							<div class="col-66"><?= Yii::$service->page->translate->__('Sub Total');?> :  </div>
+							<div class="col-33"><?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['product_total']); ?></div>
+						</div>
+                        <div class="row no-gutter">
+							<div class="col-66"><?= Yii::$service->page->translate->__('Sub Weight');?> :  </div>
+							<div class="col-33"><?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['product_weight']); ?> Kg</div>
+						</div>
+                        <div class="row no-gutter">
+							<div class="col-66"><?= Yii::$service->page->translate->__('Sub Volume');?> :  </div>
+							<div class="col-33"><?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['product_volume']); ?> c㎡</div>
+						</div>
+						<div class="row no-gutter">
+							<div class="col-66"><?= Yii::$service->page->translate->__('Shipping Cost');?>  : </div>
+							<div class="col-33"><?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['shipping_cost']); ?></div>
+						</div>
+						<div class="row no-gutter">
+							<div class="col-66"><?= Yii::$service->page->translate->__('Discount');?>  :</div>
+							<div class="col-33">-<?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['coupon_cost']); ?>%</div>
+						</div>
+						<div class="row no-gutter">
+							<div class="col-66"><?= Yii::$service->page->translate->__('Grand Total');?>  :</div>
+							<div class="col-33"><?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['grand_total']) ?></div>
+						</div>
+					</div>
+					<div class="totals cart-totals">
+						<div class="proceed_to_checkout">
+							<div class="row no-gutter">
+								<div class="col-50">
+									<button onclick="location.href='<?= Yii::$service->url->getUrl('checkout/onepage');  ?>'" type="button" title="Proceed to Checkout" class="button btn-proceed-checkout btn-checkout"><span><span><?= Yii::$service->page->translate->__('Proceed to Pay');?></span></span></button>
+                                </div>
+                                <?php if ($enablePaypalExpress): ?>
+								<div class="col-50">
+									<a  external class="express_paypal" href="<?= Yii::$service->url->getUrl('payment/paypal/express/start');    ?>">
+										<img src="<?= Yii::$service->image->getImgUrl('/images/pay.png') ?>"  />
+									</a>
+								</div>
+                                <?php endif;  ?>
+							</div>
+						</div>
+					</div>
+					<div class="clear"></div>
+				</div>
+			</div>
+		</div>
+	<?php else: ?>
+		<div class="empty_cart ">
+            <?php
+                $param = ['urlB' => '<a  external rel="nofollow" href="'.Yii::$service->url->getUrl('customer/account/login').'">','urlE' =>'</a>'];
+            ?>	
+            
+            <div id="empty_cart_info">
+                <?= Yii::$service->page->translate->__('Your Shopping Cart is empty');?>
+                <a external href="<?= Yii::$service->url->homeUrl(); ?>"><?= Yii::$service->page->translate->__('Start shopping now!');?></a>
+                <br>
+                <?= Yii::$service->page->translate->__('Please {urlB}log in{urlE} to view the products you have previously added to your Shopping Cart.',$param);?>
+            </div>
+		</div>
+        <div class="empty_cart_img">
+            
+        </div>
+	<?php  endif; ?>
+	</div>
+</div>
+
+<script>
+	// add to cart js	
+<?php $this->beginBlock('changeCartInfo') ?>
+csrfName = "<?= CRequest::getCsrfName() ?>";
+csrfVal = "<?= CRequest::getCsrfValue() ?>";
+$(document).ready(function(){
+	// set select all checkbox
+    selectall = "<?= Yii::$app->request->get('selectall') ?>";
+    selectAllChecked = false;
+    if (selectall == 1) {
+        selectAllChecked = true;
+    } else {
+        item_select_all = 1;
+        $(".cart_select_item").each(function(){
+            checked = $(this).is(':checked');
+            if (checked == false) {
+                item_select_all = 0;
+            }
+        });
+        if (item_select_all == 1) {
+            selectAllChecked = true;
+        }
+    }
+    if (selectAllChecked) {
+        $(".cart_select_all").attr("checked",selectAllChecked);
+    } else {
+        $(".cart_select_all").removeAttr("checked");
+    }
+	currentUrl = "<?= Yii::$service->url->getUrl('checkout/cart') ?>";
+	updateCartInfoUrl = "<?= Yii::$service->url->getUrl('checkout/cart/updateinfo') ?>";
+    selectOneProductUrl = "<?= Yii::$service->url->getUrl('checkout/cart/selectone') ?>";
+    selectAllProductUrl = "<?= Yii::$service->url->getUrl('checkout/cart/selectall') ?>";
+	$(".cartqtydown").click(function(){
+		$item_id = $(this).attr("rel");
+		num = $(this).attr("num");
+		if(num > 1){
+			$data = {
+				item_id:$item_id,
+				up_type:"less_one"
+			};
+			$data[csrfName] = csrfVal;
+			$.ajax({
+				async:true,
+				timeout: 6000,
+				dataType: 'json', 
+				type:'post',
+				data: $data,
+				url:updateCartInfoUrl,
+				success:function(data, textStatus){ 
+					if(data.status == 'success'){
+						window.location.href=currentUrl;
+					} else {
+                        alert(data.content);
+                    }
+				},
+				error:function (XMLHttpRequest, textStatus, errorThrown){}
+			});
+		}
+	});
+	
+	$(".cartqtyup").click(function(){
+		$item_id = $(this).attr("rel");
+		$data = {
+			item_id:$item_id,
+			up_type:"add_one"
+		};
+		$data[csrfName] = csrfVal;
+		$.ajax({
+			async:true,
+			timeout: 6000,
+			dataType: 'json', 
+			type:'post',
+			data: $data,
+			url:updateCartInfoUrl,
+			success:function(data, textStatus){ 
+				if(data.status == 'success'){
+					window.location.href=currentUrl;
+				} else {
+                    alert(data.content);
+                }
+			},
+			error:function (XMLHttpRequest, textStatus, errorThrown){}
+		});
+		
+	});
+	
+	$(".btn-remove").click(function(){
+		$item_id = $(this).attr("rel");
+		
+		$data = {
+			item_id:$item_id,
+			up_type:"remove"
+		};
+		$data[csrfName] = csrfVal;
+		$.ajax({
+			async:true,
+			timeout: 6000,
+			dataType: 'json', 
+			type:'post',
+			data: $data,
+			url:updateCartInfoUrl,
+			success:function(data, textStatus){ 
+				if(data.status == 'success'){
+					window.location.href=currentUrl;
+				}
+			},
+			error:function (XMLHttpRequest, textStatus, errorThrown){}
+		});
+		
+	}); 
+	
+    $(".cart_select_item").click(function(){
+		$item_id = $(this).attr("rel");
+		checked = $(this).is(':checked');
+        checked = checked ? 1 : 0;
+		$data = {
+			item_id:$item_id,
+			checked:checked
+		};
+		$data[csrfName] = csrfVal;
+		$.ajax({
+			async:true,
+			timeout: 6000,
+			dataType: 'json', 
+			type:'post',
+			data: $data,
+			url:selectOneProductUrl,
+			success:function(data, textStatus){ 
+				if(data.status == 'success'){
+					window.location.href = currentUrl;
+				}
+			},
+			error:function (XMLHttpRequest, textStatus, errorThrown){}
+		});
+	});
+    
+    
+    $(".cart_select_all").click(function(){
+		checked = $(this).is(':checked');
+        checked = checked ? 1 : 0;
+		$data = {
+			checked:checked
+		};
+		$data[csrfName] = csrfVal;
+        selectCurrentUrl = currentUrl + '?selectall=' + checked;
+		$.ajax({
+			async:true,
+			timeout: 6000,
+			dataType: 'json', 
+			type:'post',
+			data: $data,
+			url:selectAllProductUrl,
+			success:function(data, textStatus){ 
+				if(data.status == 'success'){
+					window.location.href = selectCurrentUrl;
+				}
+			},
+			error:function (XMLHttpRequest, textStatus, errorThrown){}
+		});
+	});
+
+	$(".add_coupon_submit").click(function(){
+		coupon_code = $("#coupon_code").val();
+		coupon_type = $(".couponType").val();
+		coupon_url = "";
+		if(coupon_type == 2){
+			coupon_url = "<?=  Yii::$service->url->getUrl('checkout/cart/addcoupon'); ?>";
+		}else if(coupon_type == 1){
+			coupon_url = "<?=  Yii::$service->url->getUrl('checkout/cart/cancelcoupon'); ?>";
+		}
+		if(!coupon_code){
+			//alert("coupon can not empty!");
+		}
+		$data = {"coupon_code":coupon_code};
+		$data[csrfName] = csrfVal;
+		$.ajax({
+			async:true,
+			timeout: 6000,
+			dataType: 'json', 
+			type: 'post',
+			data: $data,
+			url:coupon_url,
+			success:function(data, textStatus){ 
+				if(data.status == 'success'){
+					window.location.href=currentUrl;
+				}else if(data.content == 'nologin'){
+					window.location.href="<?=  Yii::$service->url->getUrl('customer/account/login'); ?>";
+				}else{
+					$(".coupon_add_log").html(data.content);
+				}
+			},
+			error:function (XMLHttpRequest, textStatus, errorThrown){}
+		});
+			
+		
+	});
+	
+	
+	
+});
+
+<?php $this->endBlock(); ?> 
+<?php $this->registerJs($this->blocks['changeCartInfo'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+</script>
+<?php // Yii::$service->page->trace->getTraceCartJsCode($trace_cart_info) // 这个改成服务端发送加入购物车数据,而不是js传递的方式  ?>

+ 393 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index.php

@@ -0,0 +1,393 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+use fec\helpers\CRequest;
+?>
+<div class="main container one-column">
+	<div class="col-main">
+		<?= Yii::$service->page->widget->render('base/flashmessage'); ?>
+		<form action="<?= Yii::$service->url->getUrl('checkout/onepage'); ?>" method="post" id="onestepcheckout-form">
+			<?= CRequest::getCsrfInputHtml(); ?>
+			<div style="margin: 0;" class="group-select">
+				<p class="onestepcheckout-description"><?= Yii::$service->page->translate->__('Welcome to the checkout,Fill in the fields below to complete your purchase');?> !</p>
+				<?php if (\Yii::$app->user->isGuest): ?>
+                    <p class="onestepcheckout-login-link">
+                        <a external  href="<?= Yii::$service->url->getUrl('customer/account/login'); ?>" id="onestepcheckout-login-link"><?= Yii::$service->page->translate->__('Already registered? Click here to login');?>.</a>
+                    </p>
+                <?php endif; ?>
+				<div class="onestepcheckout-threecolumns checkoutcontainer onestepcheckout-skin-generic onestepcheckout-enterprise">
+					<div class="onestepcheckout-column-left">
+						<?php # address 部门
+							//echo $address_view_file;
+							$addressView = [
+								'view'	=> $address_view_file,
+							];
+							//var_dump($address_list);
+							$addressParam = [
+								'cart_address_id' 	=> $cart_address_id,
+								'address_list'	  	=> $address_list,
+								'customer_info'	  	=> $customer_info,
+								'country_select'  	=> $country_select,
+								'state_html'  	  	=> $state_html,
+								'cart_address'		=> $cart_address,
+								//'payments' => $payments,
+								//'current_payment_mothod' => $current_payment_mothod,
+							];
+						?>
+						<?= Yii::$service->page->widget->render($addressView,$addressParam); ?>
+					
+					</div>
+
+					<div class="onestepcheckout-column-middle">
+						<div class="shipping_method_html">
+                            <?= Yii::$service->page->widget->render('order/shipping', ['shippings' => $shippings]); ?>
+						</div>
+                        
+                        <?php # payment部分
+							$paymentParam = [
+								'payments' => $payments,
+								'current_payment_mothod' => $current_payment_mothod,
+							];
+						?>
+						<?= Yii::$service->page->widget->render('order/payment', $paymentParam); ?>
+					
+							
+						<div class="onestepcheckout-coupons">
+							<div style="display: none;" id="coupon-notice"></div>
+							<div class="op_block_title"><?= Yii::$service->page->translate->__('Coupon codes (optional)');?></div>
+							<label for="id_couponcode"><?= Yii::$service->page->translate->__('Enter your coupon code if you have one.');?></label>
+							
+							<input type="hidden" class="couponType"  value="<?= $cart_info['coupon_code'] ? 1 : 2 ; ?>"  />
+							<input style="color:#777;" class="input-text" id="id_couponcode" name="coupon_code" value="<?= $cart_info['coupon_code']; ?>">
+							<br>
+							<button style="" type="button" class="submitbutton add_coupon_submit" id="onestepcheckout-coupon-add"><?= Yii::$service->page->translate->__($cart_info['coupon_code'] ? 'Cancel Coupon' : 'Add Coupon') ; ?></button>
+							<div class="clear"></div>
+							<div class="coupon_add_log"></div>
+						</div>
+						
+                        <div class="onestepcheckout-coupons">
+							<div class="op_block_title"><?= Yii::$service->page->translate->__('Order Remark (optional)');?></div>
+							<label for="id_couponcode"><?= Yii::$service->page->translate->__('You can fill in the order remark information below');?></label>
+							<textarea class="order_remark" name="order_remark" style="width:100%;height:100px;padding:10px;"></textarea>
+						</div>
+						
+					</div>
+
+					<div class="onestepcheckout-column-right">
+						<div class="review_order_view">
+                            <?php # review order部分
+								$reviewOrderParam = [
+									'cart_info' => $cart_info,
+									'currency_info' => $currency_info,
+								];
+							?>
+							<?= Yii::$service->page->widget->render('order/view', $reviewOrderParam); ?>
+							
+						</div>
+						<div class="onestepcheckout-place-order">
+							<a class="large orange onestepcheckout-button" href="javascript:void(0)" id="onestepcheckout-place-order"><?= Yii::$service->page->translate->__('Place order now');?></a>
+							<div class="onestepcheckout-place-order-loading"><img src="<?= Yii::$service->image->getImgUrl('images/opc-ajax-loader.gif'); ?>">&nbsp;&nbsp;<?= Yii::$service->page->translate->__('Please wait, processing your order...');?></div>
+						</div>
+					</div>
+					<div style="clear: both;">&nbsp;</div>
+				</div>
+			</div>
+		</form>
+	</div>
+</div>
+<script>
+<?php $this->beginBlock('placeOrder') ?>
+	csrfName = $(".thiscsrf").attr("name");
+	csrfVal = $(".thiscsrf").val();
+	function validateEmail(email) {
+		var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+		return re.test(email);
+	}
+	// ajax
+	function ajaxreflush(){
+		shipping_method = $("input[name=shipping_method]:checked").val();
+		//alert(shipping_method);
+		country = $(".billing_country").val();
+		address_id = $(".address_list").val();
+		state   = $(".address_state").val();
+		//alert(state);
+		if(country || address_id){
+			$(".onestepcheckout-summary").html('<div style="text-align:center;min-height:40px;"><img src="<?= Yii::$service->image->getImgUrl('images/ajax-loader.gif'); ?>"  /></div>');
+			$(".onestepcheckout-shipping-method-block").html('<div style="text-align:center;min-height:40px;"><img src="<?= Yii::$service->image->getImgUrl('images/ajax-loader.gif'); ?>"  /></div>');
+			ajaxurl = "<?= Yii::$service->url->getUrl('checkout/onepage/ajaxupdateorder');  ?>";
+			$.ajax({
+				async:false,
+				timeout: 8000,
+				dataType: 'json', 
+				type:'get',
+				data: {
+						'country':country,
+						'shipping_method':shipping_method,
+						'address_id':address_id,
+						'state':state,
+						},
+				url:ajaxurl,
+				success:function(data, textStatus){ 
+					status = data.status;
+					if(status == 'success'){
+						$(".review_order_view").html(data.reviewOrderHtml)
+						$(".shipping_method_html").html(data.shippingHtml);
+					
+					}
+						
+				},
+				error:function (XMLHttpRequest, textStatus, errorThrown){
+						
+				}
+			});
+		}
+	}	
+	$(document).ready(function(){
+		currentUrl = "<?= Yii::$service->url->getUrl('checkout/onepage') ?>"
+		//优惠券
+		$(".add_coupon_submit").click(function(){
+			coupon_code = $("#id_couponcode").val();
+			coupon_type = $(".couponType").val();
+			coupon_url = "";
+			$succ_coupon_type = 0;
+			if(coupon_type == 2){
+				coupon_url = "<?=  Yii::$service->url->getUrl('checkout/cart/addcoupon'); ?>";
+				$succ_coupon_type = 1;
+			}else if(coupon_type == 1){
+				coupon_url = "<?=  Yii::$service->url->getUrl('checkout/cart/cancelcoupon'); ?>";
+				$succ_coupon_type = 2;
+			}
+			//alert(coupon_type);
+			if(!coupon_code){
+				//alert("coupon can not empty!");
+			}
+			$data = {"coupon_code":coupon_code};
+			$data[csrfName] = csrfVal;
+			$.ajax({
+				async:true,
+				timeout: 6000,
+				dataType: 'json', 
+				type:'post',
+				data: $data,
+				url:coupon_url,
+				success:function(data, textStatus){ 
+					if(data.status == 'success'){
+						$(".couponType").val($succ_coupon_type);
+						hml = $('.add_coupon_submit').html();
+						if(hml == '<?= Yii::$service->page->translate->__('Add Coupon');?>'){
+							$('.add_coupon_submit').html('<?= Yii::$service->page->translate->__('Cancel Coupon');?>');
+						}else{
+							$('.add_coupon_submit').html('<?= Yii::$service->page->translate->__('Add Coupon');?>');
+						}
+						$(".coupon_add_log").html("");
+						ajaxreflush();
+					}else if(data.content == 'nologin'){
+						$(".coupon_add_log").html("<?= Yii::$service->page->translate->__('you must login your account before you use coupon');?>");
+					}else{
+						$(".coupon_add_log").html(data.content);
+					}
+				},
+				error:function (XMLHttpRequest, textStatus, errorThrown){}
+			});
+		});
+		
+		// 对于非登录用户,可以填写密码,进行注册账户,这里进行信息的检查。
+		$("#id_create_account").click(function(){
+			if($(this).is(':checked')){
+				email = $("input[name='billing[email]']").val();
+				if(!email){
+					$(this).prop('checked', false);
+					$(".label_create_account").html(" <?= Yii::$service->page->translate->__('email address is empty, you must Fill in email');?>");
+				}else{
+					thischeckbox = this;
+					if(!validateEmail(email)){
+						$(this).prop('checked', false);
+						$(".label_create_account").html(" <?= Yii::$service->page->translate->__('email address format is incorrect');?>");
+						
+					}else{
+						// ajax  get if  email is register
+						$.ajax({
+							async:true,
+							timeout: 6000,
+							dataType: 'json', 
+							type:'get',
+							data: {"email":email},
+							url:"<?= Yii::$service->url->getUrl('customer/ajax/isregister'); ?>",
+							success:function(data, textStatus){ 
+								if(data.registered == 2){
+									$(".label_create_account").html("");
+									$("#onestepcheckout-li-password").show();
+									$("#onestepcheckout-li-password input").addClass("required-entry");
+					
+								}else{
+									$(thischeckbox).prop('checked', false);
+									$(".label_create_account").html(" <?= Yii::$service->page->translate->__('This email is registered , you must fill in another email');?>");
+								}
+							},
+							error:function (XMLHttpRequest, textStatus, errorThrown){}
+						});
+					}
+				}
+			}else{
+				$(".label_create_account").html("");
+				$("#onestepcheckout-li-password").hide();
+				$("#onestepcheckout-li-password input").removeClass("required-entry");
+			}
+		});
+		//###########################
+		//下单(这个部分未完成。)
+		$("#onestepcheckout-place-order").click(function(){
+			$(".validation-advice").remove();
+			i = 0;
+			j = 0;
+			address_list = $(".address_list").val();
+			// shipping
+			shipment_method = $(".onestepcheckout-shipping-method-block input[name='shipping_method']:checked").val();
+			//alert(shipment_method);
+			if(!shipment_method){
+				$(".shipment-methods").after('<div style=""  class="validation-advice"><?= Yii::$service->page->translate->__('This is a required field.');?></div>');
+				j = 1;
+			}
+			//alert(j);
+			//payment  
+			payment_method = $("#checkout-payment-method-load input[name='payment_method']:checked").val();
+			//alert(shipment_method);
+			if(!payment_method){
+				$(".checkout-payment-method-load").after('<div style=""  class="validation-advice"><?= Yii::$service->page->translate->__('This is a required field.');?></div>');
+				j = 1;
+			}
+			
+			if(address_list){
+				if(!j){
+					$(".onestepcheckout-place-order").addClass('visit');
+				
+					$("#onestepcheckout-form").submit();
+				}
+			}else{
+				//alert(11);
+				//alert(j);
+				$("#onestepcheckout-form .required-entry").each(function(){
+					value = $(this).val();
+					if(!value){
+						//alert(this);
+						//alert($(this).attr('name'));
+						i++;
+						$(this).after('<div style=""  class="validation-advice"><?= Yii::$service->page->translate->__('This is a required field.');?></div>');
+					}
+				});
+				//email  format validate
+				user_email = $("#billing_address .validate-email").val();
+				if(user_email && !validateEmail(user_email)){
+					$("#billing_address .validate-email").after('<div style=""  class="validation-advice"><?= Yii::$service->page->translate->__('email address format is incorrect');?></div>');
+					i++;
+				}
+				// password 是否长度大于6,并且两个密码一致
+				if($("#id_create_account").is(':checked')){
+					new_user_pass = $(".customer_password").val();
+					new_user_pass_cm = $(".customer_confirm_password").val();
+					//alert(new_user_pass);
+					//alert(new_user_pass.length);
+					//alert(new_user_pass_cm);
+					<?php 
+						$passwdMinLength = Yii::$service->customer->getRegisterPassMinLength();
+						$passwdMaxLength = Yii::$service->customer->getRegisterPassMaxLength();
+					?>
+					passwdMinLength = "<?= $passwdMinLength ?>";
+					passwdMaxLength = "<?= $passwdMaxLength ?>";
+					if(new_user_pass.length < passwdMinLength){
+						$(".customer_password").after('<div style=""  class="validation-advice"><?= Yii::$service->page->translate->__('Password length must be greater than or equal to {passwdMinLength}',['passwdMinLength' => $passwdMinLength]);?></div>');
+						i++;
+					}else if(new_user_pass.length > passwdMaxLength){
+						$(".customer_password").after('<div style=""  class="validation-advice"><?= Yii::$service->page->translate->__('Password length must be less than or equal to {passwdMaxLength}',['passwdMaxLength' => $passwdMaxLength]);?></div>');
+						i++;
+					}else if(new_user_pass != new_user_pass_cm){
+						$(".customer_confirm_password").after('<div style=""  class="validation-advice"><?= Yii::$service->page->translate->__('The passwords are inconsistent');?></div>');
+						i++; 
+					}  
+				}
+				//alert(222);
+				if(!i && !j){
+					//alert(333);
+					$(".onestepcheckout-place-order").addClass('visit');
+					$("#onestepcheckout-form").submit();
+				}
+			}
+			
+		});
+		//登录用户切换地址列表
+		$(".address_list").change(function(){
+			val = $(this).val();
+			if(!val){
+				$(".billing_address_list_new").show();
+				 
+				$(".save_in_address_book").attr("checked","checked");
+				ajaxreflush();
+				
+			}else{
+				$(".billing_address_list_new").hide();
+				$(".save_in_address_book").attr("checked",false);
+				addressid = $(this).val();
+				
+				if(addressid){
+					ajaxreflush();
+				}
+			}
+		});
+		// 国家选择后,state需要清空,重新选择或者填写
+		$(".billing_country").change(function(){
+			country = $(this).val();
+			//state   = $(".address_state").val();
+			//shipping_method = $("input[name=shipping_method]:checked").val();
+			//alert(shipping_method);
+			
+			//$(".onestepcheckout-shipping-method-block").html('<div style="text-align:center;min-height:40px;"><img src="http://www.intosmile.com/skin/default/images/ajax-loader.gif"  /></div>');
+			//$(".onestepcheckout-summary").html('<div style="text-align:center;min-height:40px;"><img src="http://www.intosmile.com/skin/default/images/ajax-loader.gif"  /></div>');
+			ajaxurl = "<?= Yii::$service->url->getUrl('checkout/onepage/changecountry'); ?>";
+			
+			$.ajax({
+				async:true,
+				timeout: 8000,
+				dataType: 'json', 
+				type:'get',
+				data: {
+						'country':country,
+						//'shipping_method':shipping_method,
+						//'state':state
+						},
+				url:ajaxurl,
+				success:function(data, textStatus){ 
+					$(".state_html").html(data.state);
+					
+				},
+				error:function (XMLHttpRequest, textStatus, errorThrown){
+						
+				}
+			});
+			ajaxreflush();	
+		});
+		// state select 改变后的事件
+		$(".input-state").off("change").on("change","select.address_state",function(){
+			ajaxreflush();
+		});
+		// state input 改变后的事件
+		$(".input-state").off("blur").on("blur","input.address_state",function(){
+			ajaxreflush();
+		});
+		//改变shipping methos
+		$(".onestepcheckout-column-middle").off("click").on("click","input[name=shipping_method]",function(){
+			ajaxreflush();
+		});
+	});	
+	//ajaxreflush();
+<?php $this->endBlock(); ?> 
+<?php $this->registerJs($this->blocks['placeOrder'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+</script>
+    
+
+	

+ 111 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index/address.php

@@ -0,0 +1,111 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php  $address_list = $parentThis['address_list'];   ?>
+<?php  $cart_address_id = $parentThis['cart_address_id'];   ?>
+<?php  $country_select = $parentThis['country_select'];   ?>
+<?php  $state_html = $parentThis['state_html'];   ?>
+<?php  $cart_address = $parentThis['cart_address'];   ?>
+<div id="billing_address">		
+	<ul>
+		<li>
+			<p class="onestepcheckout-numbers onestepcheckout-numbers-1"><?= Yii::$service->page->translate->__('Shipping Address');?></p>
+		</li>
+		<li>
+			<div>
+				<ul id="billing_address_list" class="billing_address_list_new" style="">			
+					<li class="clearfix">
+						<div class="input-box input-firstname">
+							<label for="billing:firstname"><?= Yii::$service->page->translate->__('First Name');?><span class="required">*</span></label>
+							<input value="<?= $cart_address['first_name'] ?>" id="billing:firstname" name="billing[first_name]" class="required-entry input-text" type="text">
+						</div>
+						<div class="input-box input-lastname">
+							<label for="billing:lastname"><?= Yii::$service->page->translate->__('Last Name');?> <span class="required">*</span></label>
+							<input value="<?= $cart_address['last_name'] ?>" id="billing:lastname" name="billing[last_name]" class="required-entry input-text" type="text">
+						</div>
+						<div class="clear"></div>
+					</li>
+					<li class="clearfix">
+						<div  class="  input-box input-email">
+							<label for="billing:email"><?= Yii::$service->page->translate->__('Email Address');?> <span class="required">*</span></label>
+							<input  value="<?= $cart_address['email'] ?>" class="validate-email required-entry input-text" title="Email Address" id="billing:email" name="billing[email]" type="text">
+							<div class="customer_email_validation">
+							
+							</div>
+						</div>
+					</li>
+					<li>
+						<div  class="input-box input-telephone">
+							<label for="billing:telephone"><?= Yii::$service->page->translate->__('Telephone');?> <span class="required">*</span></label>
+							<input value="<?= $cart_address['telephone'] ?>" id="billing:telephone" class="required-entry input-text" title="Telephone" name="billing[telephone]" type="text">
+						</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-address">
+							<label for="billing:street1"><?= Yii::$service->page->translate->__('Street');?><span class="required">*</span></label>
+							<input value="<?= $cart_address['street1'] ?>" class="required-entry input-text onestepcheckout-address-line" id="billing:street1" name="billing[street1]" title="Street Address 1" type="text">
+							
+							<input value="<?= $cart_address['street2'] ?>" class="input-text onestepcheckout-address-line" id="billing:street2" name="billing[street2]" title="Street Address 2" type="text">
+						</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-country">
+							<label for="billing:country"><?= Yii::$service->page->translate->__('Country');?> <span class="required">*</span></label>
+									<select title="Country" class="billing_country validate-select" id="billing:country" name="billing[country]">
+										<?=  $country_select ?>
+									</select>
+							</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-state"><label for="billing:state" class="required"><?= Yii::$service->page->translate->__('State');?><span class="required">*</span></label>
+							<div class="state_html">
+							<?=  $state_html ?>
+							</div>
+						</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-city">
+							<label for="billing:city"><?= Yii::$service->page->translate->__('City');?> <span class="required">*</span></label>
+							<input value="<?= $cart_address['city'] ?>" id="billing:city" class="required-entry input-text" title="City" name="billing[city]" type="text">
+						</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-zip">
+							<label for="billing:zip"><?= Yii::$service->page->translate->__('Zip Code');?> <span class="required">*</span></label>
+							<input value="<?= $cart_address['zip'] ?>" class="validate-zip-international required-entry input-text" id="billing:zip" name="billing[zip]" title="Zip Code" type="text">
+						</div>
+					</li>
+					<?php if(!Yii::$app->user->isGuest):  ?>
+					
+					<?php else: ?>
+					<li class="clearfix">
+						<div class="input-box">
+							<input value="1" name="create_account" id="id_create_account" type="checkbox">
+							<label style="display:inline" for="id_create_account"><?= Yii::$service->page->translate->__('Create an account for later use');?></label>
+						</div>
+						<div class="label_create_account">
+						
+						</div>
+					</li>
+					<li style="display: none;" id="onestepcheckout-li-password">
+						<div class="input-box input-password">
+							<label for="billing:customer_password"><?= Yii::$service->page->translate->__('Password');?></label>
+							<input name="billing[customer_password]" id="billing:customer_password" title="Password" value="" class="validate-password input-text customer_password" type="password">
+						</div>
+						<div class="input-box input-password">
+							<label for="billing:confirm_password"><?= Yii::$service->page->translate->__('Confirm Password');?></label>
+							<input name="billing[confirm_password]" title="Confirm Password" id="billing:confirm_password" value="" class="validate-password input-text customer_confirm_password" type="password">
+						</div>
+					</li>
+					<?php endif;  ?>
+				</ul>							
+			</div>
+		</li>
+	</ul>
+</div>

+ 107 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index/address_select.php

@@ -0,0 +1,107 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php  $address_list = $parentThis['address_list'];   ?>
+<?php  $cart_address_id = $parentThis['cart_address_id'];   ?>
+<?php  $country_select = $parentThis['country_select'];   ?>
+<?php  $state_html = $parentThis['state_html'];   ?>
+<?php  $cart_address = $parentThis['cart_address'];   ?>
+
+<div id="billing_address">		
+	<ul>
+		<li>
+			<p class="onestepcheckout-numbers onestepcheckout-numbers-1"><?= Yii::$service->page->translate->__('Shipping Address');?></p>
+		</li>
+		<li>
+			<div>
+				<select name="address_id" class="address_list">
+					<?php  	if(is_array($address_list) && !empty($address_list)):    ?>
+					<?php  	    foreach($address_list as $address_id => $info):  ?>
+					<?php  	        if($cart_address_id == $address_id ): 
+                                        $str = 'selected="true;"';
+                                    else:  
+                                        $str = ''; 
+                                    endif;
+					?>
+					<option <?= $str  ?> value="<?= $address_id ?>"><?= $info['address'] ?></option>
+					
+					<?php       endforeach;  ?>
+					<?php  endif;  ?>
+					<option value=""> <?= Yii::$service->page->translate->__('New Address');?> </option>
+				</select>
+				<ul id="billing_address_list" class="billing_address_list_new" style="display:none;">			
+					<li class="clearfix">
+						<div class="input-box input-firstname">
+							<label for="billing:firstname"><?= Yii::$service->page->translate->__('First Name');?><span class="required">*</span></label>
+							<input value="<?= $cart_address['first_name'] ?>" id="billing:firstname" name="billing[first_name]" class="required-entry input-text" type="text">
+						</div>
+						<div class="input-box input-lastname">
+							<label for="billing:lastname"><?= Yii::$service->page->translate->__('Last Name');?> <span class="required">*</span></label>
+							<input value="<?= $cart_address['last_name'] ?>" id="billing:lastname" name="billing[last_name]" class="required-entry input-text" type="text">
+						</div>
+						<div class="clear"></div>
+					</li>
+					<li class="clearfix">
+						<div class="  input-box input-email">
+							<label for="billing:email"><?= Yii::$service->page->translate->__('Email Address');?> <span class="required">*</span></label>
+							<input  value="<?= $cart_address['email'] ?>" class="validate-email required-entry input-text" title="Email Address" id="billing:email" name="billing[email]" type="text">
+							<div class="customer_email_validation">
+							
+							</div>
+						</div>
+					</li>
+					<li>
+						<div  class="input-box input-telephone">
+							<label for="billing:telephone"><?= Yii::$service->page->translate->__('Telephone');?> <span class="required">*</span></label>
+							<input  value="<?= $cart_address['telephone'] ?>" id="billing:telephone" class="required-entry input-text" title="Telephone" name="billing[telephone]" type="text">
+						</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-address">
+							<label for="billing:street1"><?= Yii::$service->page->translate->__('Street');?><span class="required">*</span></label>
+							<input value="<?= $cart_address['street1'] ?>" class="required-entry input-text onestepcheckout-address-line" id="billing:street1" name="billing[street1]" title="Street Address 1" type="text">
+							
+							<input value="<?= $cart_address['street2'] ?>" class="input-text onestepcheckout-address-line" id="billing:street2" name="billing[street2]" title="Street Address 2" type="text">
+						</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-country">
+							<label for="billing:country"><?= Yii::$service->page->translate->__('Country');?> <span class="required">*</span></label>
+									<select title="Country" class="billing_country validate-select" id="billing:country" name="billing[country]">
+										<?=  $country_select ?>
+									</select>
+							</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-state"><label for="billing:state" class="required"><?= Yii::$service->page->translate->__('State');?> <span class="required">*</span></label>
+							<div class="state_html">
+							<?=  $state_html ?>
+							</div>
+						</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-city">
+							<label for="billing:city"><?= Yii::$service->page->translate->__('City');?> <span class="required">*</span></label>
+							<input value="<?= $cart_address['city'] ?>" id="billing:city" class="required-entry input-text" title="City" name="billing[city]" type="text">
+						</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-zip">
+							<label for="billing:zip"><?= Yii::$service->page->translate->__('Zip Code');?> <span class="required">*</span></label>
+							<input value="<?= $cart_address['zip'] ?>" class="validate-zip-international required-entry input-text" id="billing:zip" name="billing[zip]" title="Zip Code" type="text">
+						</div>
+						
+					</li>
+									
+				</ul>							
+			</div>
+		</li>
+		
+	</ul>
+</div>

+ 45 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index/payment.php

@@ -0,0 +1,45 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php  $payments = $parentThis['payments'];   ?>
+<?php  $current_payment_method = $parentThis['current_payment_method'];   ?>
+<div class="onestepcheckout-payment-method">
+	<p class="onestepcheckout-numbers onestepcheckout-numbers-3"><?= Yii::$service->page->translate->__('Payment Method');?></p>
+	<div class="payment_info">
+		<div class="payment-methods">
+			<dl id="checkout-payment-method-load">
+				<?php  if(is_array($payments) && !empty($payments)):  ?>
+					<?php foreach($payments as $payment => $info): ?>	
+					<?= $info['style'];  ?>	
+					<?php 
+						if($info['checked'] == true):
+							$checked = 'checked="checked"';
+						else:
+							$checked = '';
+						endif;
+					?>	
+					<dt>
+						<input <?=  $checked; ?> style="display:inline" id="p_method_<?= $payment ?>" value="<?= $payment ?>" name="payment_method" title="<?= $info['label']; ?>" class="radio validate-one-required-by-name" <?=  ($current_payment_method == $payment) ? 'checked="checked"' : '' ; ?> type="radio">
+						<label for="p_method_<?= $payment ?>"><?= Yii::$service->page->translate->__($info['label']) ?></label>
+					</dt>
+					<dd id="container_payment_method_<?= $payment ?>" class="payment-method" style="">
+						<ul class="form-list" id="payment_form_<?= $payment ?>" style="">
+							<li>
+							<?php if(isset($info['imageUrl']) && !empty($info['imageUrl'])): ?>
+								<img style="margin:10px 0 8px 0" src="<?= $info['imageUrl'] ?>">
+							<?php endif; ?>
+							</li>
+						</ul>
+					</dd>
+					<?php endforeach; ?>
+				<?php endif; ?>
+			</dl>
+		</div>
+	</div>
+</div>

+ 107 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index/review_order.php

@@ -0,0 +1,107 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+use fecshop\app\apphtml5\helper\Format;
+?>
+<?php  $cart_info = $parentThis['cart_info'];   ?>
+<?php  $currency_info = $parentThis['currency_info'];   ?>
+<?php  if(is_array( $cart_info) && !empty( $cart_info)): ?>
+<?php  	$products = $cart_info['products']  ?>
+<p class="onestepcheckout-numbers onestepcheckout-numbers-4"><?= Yii::$service->page->translate->__('Review your order') ?></p>
+<div class="onestepcheckout-summary">
+	<table class="onestepcheckout-summary">
+		<thead>
+			<tr>
+				<th class="image"></th>
+				<th class="name"><?= Yii::$service->page->translate->__('Name') ?></th>
+				<th class="qty"><?= Yii::$service->page->translate->__('Qty') ?></th>
+				<th class="total"><?= Yii::$service->page->translate->__('Subtotal') ?></th>
+			</tr>
+		</thead>
+		<tbody>
+			<?php foreach($products as $product):  ?>
+			<tr>
+				<td class='image'>
+					<a href="<?= $product['url'] ?>" title="<?= $product['name'] ?>" class="product-image">
+						<img src="<?= Yii::$service->product->image->getResize($product['image'],[100,100],false) ?>" alt="2121" >
+					</a>
+					
+				</td>
+				
+				<td class="name">
+					<h2 class="product-name">
+						<a href="<?= $product['url'] ?>" title="<?= $product['name'] ?>" class="product-image">
+							<?= $product['name'] ?>
+						</a>
+					</h2>
+					<?php  if(is_array($product['custom_option_info'])):  ?>
+					<ul>
+						<?php foreach($product['custom_option_info'] as $label => $val):  ?>
+							
+							<li><?= Yii::$service->page->translate->__(ucwords($label).':') ?><?= Yii::$service->page->translate->__($val) ?> </li>
+							
+						<?php endforeach;  ?>
+					</ul>
+					<?php endif;  ?>
+
+
+					<?php  if($product['customsize']):  ?>
+										<ul>
+										<?php
+											$customsize = stripslashes($product['customsize']);  
+											$customsize = json_decode($customsize,true);
+										?>
+											<?php foreach($customsize as $k => $v):  ?>
+												
+												<li><?=$k?>:<?=$v?> </li>
+												
+											<?php endforeach;  ?>
+										</ul>
+					<?php endif;  ?>
+
+
+				</td>
+				<td class="qty"><?= $product['qty']; ?></td>
+				<td class="total"><span class="price"><?=  $currency_info['symbol'];  ?><?= Format::price($product['product_row_price']); ?></span></td>
+			</tr>
+			<?php  endforeach; ?>			
+		</tbody>
+	</table>
+	<table class="onestepcheckout-totals">
+		<tbody>
+			<tr>
+				<td class="totals"><?= Yii::$service->page->translate->__('Subtotal') ?></td>
+				<td class="value">
+					<span class="price"><?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['product_total']); ?></span>       
+				</td>
+			</tr>
+			<tr>
+				<td class="totals"><?= Yii::$service->page->translate->__('Shipping Cost') ?></td>
+				<td class="value">
+					<span class="price"><?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['shipping_cost']); ?></span> 
+				</td>
+			</tr>
+			<tr>
+				<td class="totals"><?= Yii::$service->page->translate->__('Discount') ?></td>
+				<td class="value">
+					<span class="price">-<?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['coupon_cost']); ?></span> 
+				</td>
+			</tr>
+			<tr class="grand-total">
+				<td class="totals"><?= Yii::$service->page->translate->__('Grand Total') ?></td>
+				<td class="value">
+					<span class="price"><?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['grand_total']) ?></span>   
+				</td>
+			</tr>						
+        </tbody>
+	</table>
+</div>
+
+<?php  endif; ?>

+ 36 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/checkout/onepage/index/shipping.php

@@ -0,0 +1,36 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+use fecshop\app\apphtml5\helper\Format;
+?>
+<?php  $shippings = $parentThis['shippings'];   ?>
+<div class="onestepcheckout-shipping-method">
+	<p class="onestepcheckout-numbers onestepcheckout-numbers-2"><?= Yii::$service->page->translate->__('Shipping Method') ?></p>
+	<div class="onestepcheckout-shipping-method-block">    
+		<dl class="shipment-methods">
+			<?php if(!empty($shippings) &&  is_array($shippings)): ?>
+			<?php 	foreach($shippings as $shipping): ?>
+			
+			<div class="shippingmethods">
+				<div class="flatrate"><?= Yii::$service->page->translate->__($shipping['label']) ?></div>
+				<div>
+					<input data-role="none" <?= $shipping['checked'] ? 'checked="checked"' : '' ?> type="radio" id="s_method_flatrate_flatrate<?= $shipping['shipping_i'] ?>" value="<?= $shipping['method'] ?>" class="validate-one-required-by-name" name="shipping_method">
+					<label for="s_method_flatrate_flatrate<?= $shipping['shipping_i'] ?>"><?= $shipping['name'] ?>
+						<strong>                 
+							<span class="price"><?= $shipping['symbol'] ?><?= Format::price($shipping['cost']); ?></span>
+						</strong>
+					</label>
+				</div>
+			</div>
+			<?php 	endforeach; ?>
+			<?php endif; ?>
+		</dl>
+	</div>
+</div>

+ 20 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/cms/article/index.php

@@ -0,0 +1,20 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="shopping-cart-img">
+	<?= $title ?>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>	
+<div class="mobile-container">
+	<div class="col-main">
+		<div>
+			<?= $content ?>
+		</div>
+	</div>
+</div>

+ 109 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/cms/home/index.php

@@ -0,0 +1,109 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="swiper-container" data-space-between='10'>
+	<div class="swiper-wrapper">
+		<div class="swiper-slide"><img  class="lazy" data-src="<?= Yii::$service->image->getImgUrl('apphtml5/custom/home_img_1.jpg'); ?>" alt="" ></div>
+		<div class="swiper-slide"><img  class="lazy" data-src="<?= Yii::$service->image->getImgUrl('apphtml5/custom/home_img_2.jpg'); ?>" alt="" ></div>
+		<div class="swiper-slide"><img  class="lazy" data-src="<?= Yii::$service->image->getImgUrl('apphtml5/custom/home_img_3.jpg'); ?>" alt="" ></div>
+	</div>
+	<div class="swiper-pagination"></div>
+</div>
+<div style="padding:10px;">
+	<div class="row">
+		<div class="col-50">
+			<img class="lazy" data-src="<?= Yii::$service->image->getImgUrl('apphtml5/custom/home_small_1.jpg'); ?>" alt="" style='width: 100%'>
+		</div>
+		<div class="col-50">
+			<img class="lazy" data-src="<?= Yii::$service->image->getImgUrl('apphtml5/custom/home_small_2.jpg'); ?>" alt="" style='width: 100%'>
+		</div>
+	</div>
+</div>
+
+
+<style type="text/css">
+	.infinite-scroll-preloader {
+		margin-top:-20px;
+	}
+</style>
+<div style="clear:both;"></div>
+<div style="padding:10px;">      
+    <!-- 添加 class infinite-scroll 和 data-distance  向下无限滚动可不加infinite-scroll-bottom类,这里加上是为了和下面的向上无限滚动区分-->
+    <div class=" infinite-scroll infinite-scroll-bottom" data-distance="100">
+        <div class="list-block">
+            <div class="list-container">
+				<?php
+					$parentThis['products'] = $bestFeaturedProducts;
+					$parentThis['name'] = 'featured';
+                    echo Yii::$service->page->widget->render('cms/productlist', $parentThis);
+				?>
+				
+            </div>
+        </div>
+       
+    </div>
+</div>	  
+
+<div class="footer_bar">
+	<div class="change-bar">
+		<div class="c_left"><?= Yii::$service->page->translate->__('Language'); ?>: </div>
+		<div class="c_right">
+			<select class="lang" rel="">
+				<?php foreach($stores as $store=> $langName):   ?>
+					<?php  $selected = ""; ?>
+					<?php if($store == $currentStore){ $selected = 'selected = "selected"';  } ?>
+					<option <?= $selected ?> value="<?= '//'.$store ?>"><?= $langName ?></option>
+				<?php endforeach; ?>	
+			</select>
+		</div>
+		<div class="clear"></div>
+	</div>
+	
+	<div class="change-bar">
+		<div class="c_left"><?= Yii::$service->page->translate->__('Currency'); ?>: </div>
+		<div class="c_right">
+			<select class="currency">
+				<?php foreach($currencys as $c):    ?>
+					<?php  $selected = ""; ?>
+					<?php if($c['code'] == $currency['code']){ $selected = 'selected = "selected"';  } ?>
+					<option <?= $selected ?> value="<?= $c['code'] ?>"><label><?= $c['symbol'] ?></label><?= $c['code'] ?></option>
+				<?php endforeach; ?>	
+			</select>
+		</div>
+		<div class="clear"></div>
+	</div>
+</div>
+
+<div class="footer-bottom">
+	<?=  Yii::$service->cms->staticblock->getStoreContentByIdentify('copy_right_apphtml5','appfront') ?>
+</div>				
+ 
+<script>
+<?php $this->beginBlock('owl_fecshop_slider') ?>  
+$.init();  
+$(document).ready(function(){
+	currentBaseUrl = "<?=  $currentBaseUrl; ?>";
+	$(".footer_bar .change-bar .lang").change(function(){
+		redirectUrl = $(this).val();
+		location.href=redirectUrl;
+		
+	});
+	
+	$(".footer_bar .change-bar .currency").change(function(){
+		currency = $(this).val();
+		
+		htmlobj=$.ajax({url:currentBaseUrl+"/cms/home/changecurrency?currency="+currency,async:false});
+		//alert(htmlobj.responseText);
+		location.reload() ;
+	});
+   
+});
+<?php $this->endBlock(); ?>  
+</script>  
+<?php $this->registerJs($this->blocks['owl_fecshop_slider'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>

+ 28 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/cms/home/index/price.php

@@ -0,0 +1,28 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<p class="proPrice">
+	<?php if(isset($special_price) && !empty($special_price)):  ?>
+        <?php  $special_price['value'] = Yii::$service->helper->format->number_format($special_price['value']);  ?>
+		<span class="bizhong"><?= $special_price['code'] ?></span>
+        <span orgp="<?= $special_price['value'] ?>" class="my_shop_price f14">
+            <span class="icon"><?= $special_price['symbol'] ?></span><?= $special_price['value'] ?>
+        </span>
+		<span class="bizhong"><?= $price['code'] ?></span>
+        <del orgp="<?= $price['value'] ?>" class="my_shop_price">
+            <span class="icon"><?= $price['symbol'] ?></span><?= $price['value'] ?>
+        </del>
+	<?php else: ?>
+        <?php  $price['value'] = Yii::$service->helper->format->number_format($price['value']);  ?>
+		<span class="bizhong"><?= $price['code'] ?></span>
+        <span orgp="<?= $price['value'] ?>" class="my_shop_price f14">
+            <span class="icon"><?= $price['symbol'] ?></span><?= $price['value'] ?>
+        </span>
+	<?php endif; ?>
+</p>

+ 47 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/cms/home/index/product.php

@@ -0,0 +1,47 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php $i = 0; ?>
+<?php  if(is_array($parentThis['products']) && !empty($parentThis['products'])): ?>
+	<?php foreach($parentThis['products'] as $product): ?>
+		<?php  if(isset($product['sku']) && $product['sku']): ?> 
+            <?php if($i%2 == 0):  ?>
+                <div class="row">
+            <?php endif; ?>
+                <div class="col-50 product_list">
+                    <a href="<?= $product['url'] ?>" external>
+                        <img width="100%" src="<?= Yii::$service->image->getImgUrl('images/lazyload.gif'); ?>"  class="lazy" data-src="<?= Yii::$service->product->image->getResize($product['image'],296,false) ?>"  />
+                    </a> 
+                    <p class="product_name" style="">
+                        <a href="<?= $product['url'] ?>" external>
+                            <?= $product['name'] ?>
+                        </a>
+                    </p>
+                    <p style="color: #333;">
+                        <?php
+                            $diConfig = [
+                                'price' 		=> $product['price'],
+                                'special_price' => $product['special_price'],
+                            ];
+                            echo Yii::$service->page->widget->DiRender('home/product_price',$diConfig);
+                        ?>
+                    </p>
+                </div>
+            <?php $i++; ?>
+            <?php if($i%2 == 0):  ?>
+                </div>
+            <?php endif; ?>
+        <?php endif; ?>
+	<?php  endforeach;  ?>
+    
+	<?php if($i%2 != 0):  ?>
+		</div>
+	<?php endif; ?>
+    
+<?php  endif;  ?>

+ 121 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/forgotpassword.php

@@ -0,0 +1,121 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<a external class="button button-link button-nav pull-left" href="<?= Yii::$service->url->getUrl('customer/account/index'); ?>">
+			<span class="icon icon-left"></span>
+		</a>
+		<h1 class='title'><?= Yii::$service->page->translate->__('Forgot Password'); ?></h1>
+	</div>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>	
+<div class="list-block customer-login ">
+	<form class="account-form" action="<?= Yii::$service->url->getUrl('customer/account/forgotpasswordsubmit'); ?>" method="post" id="form-validate">
+		<ul>
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input placeholder="<?= Yii::$service->page->translate->__('Your Email Address');?>" name="editForm[email]" id="email_address" value="<?= $email ?>" title="Email Address" class="input-text validate-email required-entry" type="text">
+						</div>
+					</div>
+				</div>
+			</li>
+			<?php if($forgotCaptcha):  ?>
+				<li>
+					<div class="item-content">
+						<div class="item-media"><i class="icon icon-form-password"></i></div>
+						<div class="item-inner">
+							<div class="item-input">
+								<input placeholder="<?= Yii::$service->page->translate->__('Captcha'); ?>" type="text" name="editForm[captcha]" value="" size=10 class="login-captcha-input">
+                                <img class="login-captcha-img"  title="<?= Yii::$service->page->translate->__('click refresh'); ?>" src="<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?<?php echo md5(time() . mt_rand(1,10000));?>" align="absbottom" onclick="this.src='<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?'+Math.random();"></img>
+								<span class="icon icon-refresh"></span>
+							</div>
+						</div>
+					</div>
+					<script>
+						<?php $this->beginBlock('forgot_password_captcha_onclick_refulsh') ?>  
+						$(document).ready(function(){
+							$(".icon-refresh").click(function(){
+								$(this).parent().find("img").click();
+							});
+						});
+						<?php $this->endBlock(); ?>  
+					</script>  
+					<?php $this->registerJs($this->blocks['forgot_password_captcha_onclick_refulsh'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+				</li>
+			<?php endif; ?>
+		</ul>
+		<?= \fec\helpers\CRequest::getCsrfInputHtml();  ?>
+		<div class="clear"></div>
+		<div class="buttons-set">
+			<p>
+				<a external href="javascript:void(0)"   id="js_forgotBtn" class="button button-fill">
+					<?= Yii::$service->page->translate->__('Send Authorization Code'); ?>
+				</a>
+			</p>
+		</div>
+		
+		<div class="clear"></div>
+	</form>
+</div>
+<?php 
+$requiredValidate 			= 'This is a required field.';
+$emailFormatValidate 		= 'Please enter a valid email address. For example johndoe@domain.com.';
+
+?>
+<script>
+<?php $this->beginBlock('forgot_password') ?>  
+$(document).ready(function(){
+	$("#js_forgotBtn").click(function(){
+		validate = 1;
+		$(".validation-advice").remove();
+		$(".validation-failed").removeClass("validation-failed");
+		var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
+		// empty check
+		$(".account-create .required-entry").each(function(){
+			val = $(this).val();
+			if(!val){
+				$(this).addClass("validation-failed");
+				$(this).parent().append('<div class="validation-advice" id="advice-required-entry-firstname" style=""><?= $requiredValidate; ?></div>');
+				validate = 0;
+			}
+		});
+		// email check
+		$(".account-create .validate-email").each(function(){
+			email = $(this).val();
+			if(email){
+				if(!$(this).hasClass("validation-failed")){
+					if(!myreg.test(email)){
+						$(this).parent().append('<div class="validation-advice" id="advice-validate-email-email_address" style=""><?= $emailFormatValidate; ?></div>');
+						$(this).addClass("validation-failed");
+						validate = 0;
+					}
+				}
+			}else{
+				validate = 0;
+			}
+		});
+		if(validate){
+			$(this).addClass("dataUp");
+			$("#form-validate").submit();
+		}
+	});
+});
+<?php $this->endBlock(); ?>  
+</script>  
+<?php $this->registerJs($this->blocks['forgot_password'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+
+
+

+ 44 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/forgotpasswordsubmit.php

@@ -0,0 +1,44 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<a external class="button button-link button-nav pull-left" href="<?= Yii::$service->url->getUrl('customer/account/index'); ?>">
+			<span class="icon icon-left"></span>
+		</a>
+		<h1 class='title'><?= Yii::$service->page->translate->__('Forget Password Send Success'); ?></h1>
+	</div>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>	
+
+<div class="customer-forgot-success ">
+<?php if(!empty($identity)):  ?>
+	<div>
+		<?= Yii::$service->page->translate->__('We\'ve sent a message to the email address'); ?> <?=  $identity['email'] ?>
+		<?= Yii::$service->page->translate->__('Please follow the instructions provided in the message to reset your password.'); ?>
+	</div>
+	<div>
+		<p><?= Yii::$service->page->translate->__('Didn\'t receive the mail from us?'); ?> <a external href="<?= $forgotPasswordUrl ?>"><?= Yii::$service->page->translate->__('click here to retry'); ?></a></p>
+
+		<p><?= Yii::$service->page->translate->__('Check your bulk or junk email folder.'); ?></p>
+		<?php
+			$param = ['logUrlB' => '<a external href="'. $contactUrl.' ">','logUrlE' => '</a> '];
+		?>
+		<p><?= Yii::$service->page->translate->__('Confirm your identity to reset password ,If you still can\'t find it, click {logUrlB} support center {logUrlE} for help',$param); ?></p>
+	</div>
+<?php else:  ?>
+	<div>
+		<?php
+			$param = ['logUrlB' => '<a external href="'. $forgotPasswordUrl.' ">','logUrlE' => '</a> '];
+		?>
+		<?= Yii::$service->page->translate->__('Email address do not exist, please {logUrlB} click here {logUrlE} to re-enter!',$param); ?> 
+	</div>
+	<div>
+<?php  endif; ?>
+</div>

+ 15 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/index.php

@@ -0,0 +1,15 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<h1 class='title'><?= Yii::$service->page->translate->__('My Account'); ?></h1>
+	</div>
+    <?= Yii::$service->page->widget->render('customer/left_menu', $this); ?>
+</div>

+ 176 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/login.php

@@ -0,0 +1,176 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="shopping-cart-img">
+	<?= Yii::$service->page->translate->__('Login'); ?>
+	<a external href="<?= Yii::$service->url->getUrl('customer/account/register');  ?>" class="f-right"><?= Yii::$service->page->translate->__('Register'); ?></a>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>	
+<div class="list-block customer-login">
+	<form action="<?= Yii::$service->url->getUrl("customer/account/login");  ?>" method="post" id="login-form" class="account-form">
+		<ul>
+			<li>
+				<div class="item-content">
+					<div class="item-media"><i class="icon icon-form-email"></i></div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input name="editForm[email]" value="<?= $email; ?>" id="email" type="email" placeholder="<?= Yii::$service->page->translate->__('E-mail'); ?>">
+						</div>
+					</div>
+				</div>
+			</li>
+			<li>
+				<div class="item-content">
+					<div class="item-media"><i class="icon icon-form-password"></i></div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input type="password" placeholder="<?= Yii::$service->page->translate->__('Password'); ?>"  name="editForm[password]" class="input-text required-entry validate-password" id="pass" title="Password" >
+						</div>
+					</div>
+				</div>
+			</li>
+			<?php if($loginPageCaptcha):  ?>
+			<li>
+				<div class="item-content">
+					<div class="item-media"><i class="icon icon-form-password"></i></div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input placeholder="captcha" type="text" name="editForm[captcha]" value="" size=10 class="login-captcha-input"><img class="login-captcha-img"  title="<?= Yii::$service->page->translate->__('click refresh'); ?>" src="<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?<?php echo md5(time() . mt_rand(1,10000));?>" align="absbottom" onclick="this.src='<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?'+Math.random();"></img>
+							 <span class="icon icon-refresh"></span>
+						</div>
+					</div>
+				</div>
+				<script>
+				<?php $this->beginBlock('login_captcha_onclick_refulsh') ?>  
+				$(document).ready(function(){
+					$(".icon-refresh").click(function(){
+						$(this).parent().find("img").click();
+					});
+				});
+				<?php $this->endBlock(); ?>  
+				</script>  
+				<?php $this->registerJs($this->blocks['login_captcha_onclick_refulsh'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+			</li>
+			<?php endif; ?>
+		</ul>
+		
+		<div class="clear"></div>
+		<div class="buttons-set">
+			<p><a external href="#"  id="js_registBtn" class="button button-fill"><?= Yii::$service->page->translate->__('Sign In'); ?></a></p>
+			<a external href="<?= Yii::$service->url->getUrl('customer/account/forgotpassword');  ?>" class="f-left"><?= Yii::$service->page->translate->__('Forgot Your Password?'); ?></a>
+			
+		</div>
+		<div class="clear"></div>
+		<div class="third_login">
+			<div class="fago_login">
+				<img onclick="facebooklogin()" src="<?= Yii::$service->image->getImgUrl("images/facebook.jpg") ?>" /><br/>
+				<img onclick="googlelogin()"src="<?=Yii::$service->image->getImgUrl("images/google.jpg") ?>" /><br/>
+			</div>
+			<?= \fec\helpers\CRequest::getCsrfInputHtml();  ?>
+			<div class="col2-set">
+				<div class="col-1 new-users">
+					<div class="buttons-set">
+						
+					</div>
+				</div>
+				<div class="col-2 registered-users">
+					
+				</div>
+			</div>
+		</div>
+	</form>
+</div>	
+  
+<script type="text/javascript">	
+<?php $this->beginBlock('customer_account_login') ?> 
+
+	$(document).ready(function(){
+		$("#js_registBtn").click(function(){
+			$("#login-form").submit();
+		});
+        $(".email_register_resend").click(function(){
+            emailRegisterResendUrl = "<?= Yii::$service->url->getUrl('customer/account/resendregisteremail') ?>";
+            $.ajax({
+                async:true,
+                timeout: 6000,
+                dataType: 'json', 
+                type:'get',
+                data: {
+                    "email": "<?= $email ?>"
+                },
+                url:emailRegisterResendUrl,
+                success:function(data, textStatus){ 
+                    // 
+                    if (data.resendStatus == 'success') {
+                        //$(".resend_text").html('resend register email success');
+                        alert("<?= Yii::$service->page->translate->__('resend register email success') ?>")
+                    } else {
+                        //$(".resend_text").html('resend register email fail');
+                        alert("<?= Yii::$service->page->translate->__('resend register email fail') ?>")
+                    }
+                },
+                error:function (XMLHttpRequest, textStatus, errorThrown){}
+            });
+            
+            
+        });
+	});
+	var newwindow;
+	var intId;
+	function facebooklogin(){
+		var  screenX    = typeof window.screenX != 'undefined' ? window.screenX : window.screenLeft,
+			 screenY    = typeof window.screenY != 'undefined' ? window.screenY : window.screenTop,
+			 outerWidth = typeof window.outerWidth != 'undefined' ? window.outerWidth : document.body.clientWidth,
+			 outerHeight = typeof window.outerHeight != 'undefined' ? window.outerHeight : (document.body.clientHeight - 22),
+			 width    = 800,
+			 height   = 450,
+			 left     = parseInt(screenX + ((outerWidth - width) / 2), 10),
+			 top      = parseInt(screenY + ((outerHeight - height) / 2.5), 10),
+			 features = (
+				'width=' + width +
+				',height=' + height +
+				',left=' + left +
+				',top=' + top
+			  );
+
+		newwindow=window.open('<?php echo $facebookLoginUrl; ?>','Login_by_facebook',features);
+
+	   if (window.focus) {newwindow.focus()}
+	  return false;
+	}
+	
+	function googlelogin(){
+		var  screenX    = typeof window.screenX != 'undefined' ? window.screenX : window.screenLeft,
+			 screenY    = typeof window.screenY != 'undefined' ? window.screenY : window.screenTop,
+			 outerWidth = typeof window.outerWidth != 'undefined' ? window.outerWidth : document.body.clientWidth,
+			 outerHeight = typeof window.outerHeight != 'undefined' ? window.outerHeight : (document.body.clientHeight - 22),
+			 width    = 800,
+			 height   = 450,
+			 left     = parseInt(screenX + ((outerWidth - width) / 2), 10),
+			 top      = parseInt(screenY + ((outerHeight - height) / 2.5), 10),
+			 features = (
+				'width=' + width +
+				',height=' + height +
+				',left=' + left +
+				',top=' + top
+			  );
+
+		newwindow=window.open('<?= $googleLoginUrl; ?>   ','Login_by_facebook',features);
+
+	   if (window.focus) {newwindow.focus()}
+	  return false;
+	}
+	
+<?php $this->endBlock(); ?>  
+</script>  
+<?php $this->registerJs($this->blocks['customer_account_login'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+ 
+ 
+ 
+ 

+ 257 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/register.php

@@ -0,0 +1,257 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="shopping-cart-img">
+	<?= Yii::$service->page->translate->__('Register'); ?>
+	
+	<a external href="<?= Yii::$service->url->getUrl('customer/account/login');  ?>" class="f-right">
+		<?= Yii::$service->page->translate->__('Login'); ?>
+	</a>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>	
+<div class="list-block customer-login  customer-register">
+	<form action="<?= Yii::$service->url->getUrl('customer/account/register'); ?>" method="post" id="register-form" class="account-form">
+		<?= \fec\helpers\CRequest::getCsrfInputHtml();  ?>
+		<ul>
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+						<input class="required-entry" type="text" placeholder="First name"  id="firstname" name="editForm[firstname]" value="<?= $firstname ?>" title="First Name">
+						</div>
+					</div>
+				</div>
+			</li>
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+						<input class="required-entry" type="text" placeholder="Last name" id="lastname" name="editForm[lastname]" value="<?= $lastname ?>" title="Last Name">
+						</div>
+					</div>
+				</div>
+			</li>
+			
+			<li>
+				<div class="item-content">
+					<div class="item-media"><i class="icon icon-form-email"></i></div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input class="required-entry  validate-email"  type="email" placeholder="E-mail"  name="editForm[email]" id="email_address" value="<?= $email ?>" title="Email Address">
+						</div>
+					</div>
+				</div>
+			</li>
+			<li>
+				<div class="item-content">
+					<div class="item-media"><i class="icon icon-form-password"></i></div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input  type="password" placeholder="Password"  name="editForm[password]" class="input-text required-entry validate-password" id="password" title="Password" >
+						</div>
+					</div>
+				</div>
+			</li>
+			<li>
+				<div class="item-content">
+					<div class="item-media"><i class="icon icon-form-password"></i></div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input type="password" placeholder="Confirm password"  name="editForm[confirmation]" title="Confirm Password" id="confirmation" >
+						</div>
+					</div>
+				</div>
+			</li>
+			
+			<?php if($registerPageCaptcha):  ?>
+				<li>
+					<div class="item-content">
+						<div class="item-media"><i class="icon icon-form-password"></i></div>
+						<div class="item-inner">
+							<div class="item-input">
+								<input placeholder="captcha" type="text" name="editForm[captcha]" value="" size=10 class="login-captcha-input">
+                                <img class="login-captcha-img"  title="<?= Yii::$service->page->translate->__('click refresh'); ?>" src="<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?<?php echo md5(time() . mt_rand(1,10000));?>" align="absbottom" onclick="this.src='<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?'+Math.random();"></img>
+								<span class="icon icon-refresh"></span>
+							</div>
+						</div>
+					</div>
+				<script>
+					<?php $this->beginBlock('register_captcha_onclick_refulsh') ?>  
+					$(document).ready(function(){
+						$(".icon-refresh").click(function(){
+							$(this).parent().find("img").click();
+						});
+					});
+					<?php $this->endBlock(); ?>  
+					</script>  
+					<?php $this->registerJs($this->blocks['register_captcha_onclick_refulsh'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+				</li>	
+			<?php endif;  ?>	
+			<li class="control">
+				<div class="newsletter">
+					<input name="editForm[is_subscribed]" title="Sign Up for Newsletter" value="1" id="is_subscribed" class="checkbox" type="checkbox" checked="checked">
+					<label for="is_subscribed"><?= Yii::$service->page->translate->__('Sign Up for Newsletter'); ?></label>
+				</div>
+			</li>
+		</ul>
+		<div class="clear"></div>
+		<div class="buttons-set">
+			<p>
+				<a external href="#"  id="js_registBtn" class="button button-fill">
+					<?= Yii::$service->page->translate->__('Register Account'); ?>
+				</a>
+			</p>
+		</div>
+	</form>
+</div>
+
+<?php 
+$requiredValidate 			= Yii::$service->page->translate->__('This is a required field.');
+$emailFormatValidate 		= Yii::$service->page->translate->__('Please enter a valid email address. For example johndoe@domain.com.');
+$firstNameLenghtValidate 	= Yii::$service->page->translate->__('first name length must between');
+$lastNameLenghtValidate 	= Yii::$service->page->translate->__('last name length must between');
+$passwordLenghtValidate 	= Yii::$service->page->translate->__('Please enter 6 or more characters. Leading or trailing spaces will be ignored.');
+$passwordMatchValidate 		= Yii::$service->page->translate->__('Please make sure your passwords match. ');
+//$minNameLength = 2;
+//$maxNameLength = 20;
+//$minPassLength = 6;  
+//$maxPassLength = 30;
+
+?>
+<script>
+<?php $this->beginBlock('customer_account_register') ?>  
+$(document).ready(function(){
+	$(".email_register_resend").click(function(){
+        emailRegisterResendUrl = "<?= Yii::$service->url->getUrl('customer/account/resendregisteremail') ?>";
+        $.ajax({
+            async:true,
+            timeout: 6000,
+            dataType: 'json', 
+            type:'get',
+            data: {
+                "email": "<?= $email ?>"
+            },
+            url:emailRegisterResendUrl,
+            success:function(data, textStatus){ 
+                // 
+                if (data.resendStatus == 'success') {
+                    //$(".resend_text").html('resend register email success');
+                    alert("<?= Yii::$service->page->translate->__('resend register email success') ?>")
+                } else {
+                    //$(".resend_text").html('resend register email fail');
+                    alert("<?= Yii::$service->page->translate->__('resend register email fail') ?>")
+                }
+            },
+            error:function (XMLHttpRequest, textStatus, errorThrown){}
+        });
+        
+        
+    });
+	$("#js_registBtn").click(function(){
+		validate = 1;
+		$(".validation-advice").remove();
+		$(".validation-failed").removeClass("validation-failed");
+		
+		var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
+		// empty check
+		$(".customer-register .required-entry").each(function(){
+			val = $(this).val();
+			if(!val){
+				$(this).addClass("validation-failed");
+				$(this).parent().append('<div class="validation-advice" id="advice-required-entry-firstname" style=""><?= $requiredValidate; ?></div>');
+				validate = 0;
+			}
+		});
+		
+		// email check
+		$(".customer-register .validate-email").each(function(){
+			email = $(this).val();
+			if(email){
+				if(!$(this).hasClass("validation-failed")){
+					if(!myreg.test(email)){
+						$(this).parent().append('<div class="validation-advice" id="advice-validate-email-email_address" style=""><?= $emailFormatValidate; ?></div>');
+						$(this).addClass("validation-failed");
+						validate = 0;
+					}
+				}
+			}else{
+				validate = 0;
+			}
+		});
+		
+		//first name lenght check;
+		firstname 	= $("#firstname").val();
+		lastname 	= $("#lastname").val();
+		password  	= $("#password").val();
+		confirmation= $("#confirmation").val();
+		minNameLength = <?= $minNameLength ? $minNameLength : 4 ?>;  
+		maxNameLength = <?= $maxNameLength ? $maxNameLength : 30 ?>;
+		minPassLength = <?= $minPassLength ? $minPassLength : 4 ?>;  
+		maxPassLength = <?= $maxPassLength ? $maxPassLength : 30 ?>; 
+		firstNameLength = firstname.length;
+		lastNameLength  = lastname.length;
+		passwordLength  = password.length;
+		//firstname length validate
+		if(firstNameLength < minNameLength || firstNameLength > maxNameLength){
+			if(!$("#firstname").hasClass("validation-failed")){
+				//alert(111);
+				$("#firstname").parent().append('<div class="validation-advice" id="min_lenght" style=""><?= $firstNameLenghtValidate; ?> '+minNameLength+' , '+maxNameLength+'</div>');
+				$("#firstname").addClass("validation-failed");
+				validate = 0;		
+			}
+		}
+		//lastname length validate
+		if(lastNameLength < minNameLength || lastNameLength > maxNameLength){
+			if(!$("#lastname").hasClass("validation-failed")){
+				//alert(111);
+				$("#lastname").parent().append('<div class="validation-advice" id="min_lenght" style=""><?= $lastNameLenghtValidate; ?> '+minNameLength+' , '+maxNameLength+'</div>');
+				$("#lastname").addClass("validation-failed");
+				validate = 0;		
+			}
+		}
+		//password length validate
+		if(passwordLength < minPassLength || passwordLength > maxPassLength){
+			if(!$("#password").hasClass("validation-failed")){
+				//alert(111);
+				$("#password").parent().append('<div class="validation-advice" id="min_lenght" style=""><?= $passwordLenghtValidate; ?> </div>');
+				$("#password").addClass("validation-failed");
+				validate = 0;		
+			}
+		}
+		//password validate
+		if(confirmation != password){
+			if(!$("#confirmation").hasClass("validation-failed")){
+				//alert(111);
+				$("#confirmation").parent().append('<div class="validation-advice" id="min_lenght" style=""><?= $passwordMatchValidate; ?></div>');
+				$("#confirmation").addClass("validation-failed");
+				validate = 0;		
+			}
+		}
+		
+		if(validate){
+		//	alert("validate success");
+			$(this).addClass("dataUp");
+			$("#register-form").submit();
+		}
+	});
+});
+<?php $this->endBlock(); ?>  
+</script>  
+<?php $this->registerJs($this->blocks['customer_account_register'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+
+
+

+ 21 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/registerenable.php

@@ -0,0 +1,21 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="main container one-column" style="margin:0.75rem">
+    <?= Yii::$service->page->widget->render('base/breadcrumbs',$this); ?>
+    <?php if ($enable): ?>
+        <?php
+            $param = ['logUrlB' => '<a external href="'.$loginUrl.'">','logUrlE' => '</a> '];
+        ?>
+        <?= Yii::$service->page->translate->__('your register account enable success, you can {logUrlB} click here {logUrlE} to login .',$param); ?>
+    <?php else: ?>
+        <?= Yii::$service->page->translate->__('your register account enable token is invalid or expired'); ?>
+
+    <?php endif; ?>
+</div>

+ 179 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/resetpassword.php

@@ -0,0 +1,179 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<a external class="button button-link button-nav pull-left" href="<?= Yii::$service->url->getUrl('customer/account/index'); ?>">
+			<span class="icon icon-left"></span>
+		</a>
+		<h1 class='title'><?= Yii::$service->page->translate->__('Reset Password'); ?></h1>
+	</div>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>	
+<div class="list-block customer-login ">
+	<?php  if(!empty($identity)):  ?>
+		
+		<div class="account-create">
+			
+			<form action="<?= Yii::$service->url->getUrl('customer/account/resetpassword',['resetToken'=>$resetToken]); ?>" method="post" id="form-validate">
+				<?= \fec\helpers\CRequest::getCsrfInputHtml();  ?>
+				<input type="hidden"  name="editForm[resetToken]"  value="<?= $resetToken ?>" />
+				
+				<ul>
+					<li>
+						<div class="item-content">
+							<div class="item-media">
+								<i class="icon icon-form-name"></i>
+							</div>
+							<div class="item-inner">
+								<div class="item-input">
+									<input placeholder="<?= Yii::$service->page->translate->__('Your Email Address');?>" name="editForm[email]" id="email_address" value="<?= $email ?>" title="Email Address" class="input-text validate-email required-entry" type="text">
+							
+								</div>
+							</div>
+						</div>
+					</li>
+					
+					<li>
+						<div class="item-content">
+							<div class="item-media">
+								<i class="icon icon-form-name"></i>
+							</div>
+							<div class="item-inner">
+								<div class="item-input">
+									<input placeholder="<?= Yii::$service->page->translate->__('New Password');?>" name="editForm[password]" id="password" title="Password" class="input-text required-entry validate-password" type="password">
+								
+								</div>
+							</div>
+						</div>
+					</li>
+					
+					
+					<li>
+						<div class="item-content">
+							<div class="item-media">
+								<i class="icon icon-form-name"></i>
+							</div>
+							<div class="item-inner">
+								<div class="item-input">
+									<input placeholder="<?= Yii::$service->page->translate->__('Confirm Password');?>" name="editForm[confirmation]" title="Confirm Password" id="confirmation" class="input-text required-entry validate-cpassword" type="password">
+								
+								</div>
+							</div>
+						</div>
+					</li>
+				</ul>
+				<div class="clear"></div>
+				<div class="buttons-set">
+					<p>
+						<a external href="javascript:void(0)"   id="js_resetPassBtn" class="button button-fill">
+							<?= Yii::$service->page->translate->__('Reset Password'); ?>
+						</a>
+					</p>
+				</div>
+				
+				<div class="clear"></div>
+				
+			</form>
+		</div>
+		
+		<?php 
+		$requiredValidate 			= Yii::$service->page->translate->__('This is a required field.');
+		$emailFormatValidate 		= Yii::$service->page->translate->__('Please enter a valid email address. For example johndoe@domain.com.');
+		$passwordLenghtValidate 	= Yii::$service->page->translate->__('Please enter 6 or more characters. Leading or trailing spaces will be ignored.');
+		$passwordMatchValidate 		= Yii::$service->page->translate->__('Please make sure your passwords match.');
+		//$minNameLength = 2;
+		//$maxNameLength = 20;
+		//$minPassLength = 6;  
+		//$maxPassLength = 30;
+
+		?>
+		<script>
+		<?php $this->beginBlock('customer_account_reset') ?>  
+		$(document).ready(function(){
+			$("#js_resetPassBtn").click(function(){
+				validate = 1;
+				$(".validation-advice").remove();
+				$(".validation-failed").removeClass("validation-failed");
+				
+				var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
+				// empty check
+				$(".account-create .required-entry").each(function(){
+					val = $(this).val();
+					if(!val){
+						$(this).addClass("validation-failed");
+						$(this).parent().append('<div class="validation-advice" id="advice-required-entry-firstname" style=""><?= $requiredValidate; ?></div>');
+						validate = 0;
+					}
+				});
+				
+				// email check
+				$(".account-create .validate-email").each(function(){
+					email = $(this).val();
+					if(email){
+						if(!$(this).hasClass("validation-failed")){
+							if(!myreg.test(email)){
+								$(this).parent().append('<div class="validation-advice" id="advice-validate-email-email_address" style=""><?= $emailFormatValidate; ?></div>');
+								$(this).addClass("validation-failed");
+								validate = 0;
+							}
+						}
+					}else{
+						validate = 0;
+					}
+				});
+				
+				
+				password  	= $("#password").val();
+				confirmation= $("#confirmation").val();
+				minPassLength = <?= $minPassLength ? $minPassLength : 4 ?>;  
+				maxPassLength = <?= $maxPassLength ? $maxPassLength : 30 ?>; 
+				passwordLength  = password.length;
+				
+				//password length validate
+				if(passwordLength < minPassLength || passwordLength > maxPassLength){
+					if(!$("#password").hasClass("validation-failed")){
+						//alert(111);
+						$("#password").parent().append('<div class="validation-advice" id="min_lenght" style=""><?= $passwordLenghtValidate; ?> </div>');
+						$("#password").addClass("validation-failed");
+						validate = 0;		
+					}
+				}
+				//password validate
+				if(confirmation != password){
+					if(!$("#confirmation").hasClass("validation-failed")){
+						//alert(111);
+						$("#confirmation").parent().append('<div class="validation-advice" id="min_lenght" style=""><?= $passwordMatchValidate; ?></div>');
+						$("#confirmation").addClass("validation-failed");
+						validate = 0;		
+					}
+				}
+				if(validate){
+				//	alert("validate success");
+					$(this).addClass("dataUp");
+					$("#form-validate").submit();
+				}
+			});
+		});
+		<?php $this->endBlock(); ?>  
+		</script>  
+		<?php $this->registerJs($this->blocks['customer_account_reset'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+
+	<?php  else:  ?>
+		<div class="customer-forgot-success">
+			<?php
+				$param = ['logUrlB' => '<a external href="'.$forgotPasswordUrl.'">','logUrlE' => '</a> '];
+			?>
+			<?= Yii::$service->page->translate->__('Your Reset Password Token is Expired, You can {logUrlB} click here {logUrlE} to retrieve it ',$param); ?>
+			
+		</div>
+	<?php  endif; ?>
+	
+</div>

+ 25 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/account/resetpasswordsuccess.php

@@ -0,0 +1,25 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<a external class="button button-link button-nav pull-left" href="<?= Yii::$service->url->getUrl('customer/account/index'); ?>">
+			<span class="icon icon-left"></span>
+		</a>
+		<h1 class='title'><?= Yii::$service->page->translate->__('Reset Password Success'); ?></h1>
+	</div>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>	
+<div class="customer-forgot-success">
+	<?php
+		$param = ['logUrlB' => '<a external href="'.$loginUrl.'">','logUrlE' => '</a> '];
+	?>
+	<?= Yii::$service->page->translate->__('Reset you account success, you can {logUrlB} click here {logUrlE} to login .',$param); ?>
+
+</div>

+ 239 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/address/edit.php

@@ -0,0 +1,239 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<a external class="button button-link button-nav pull-left" href="<?= Yii::$service->url->getUrl('customer/address'); ?>">
+			<span class="icon icon-left"></span>
+		</a>
+		<h1 class='title'><?= Yii::$service->page->translate->__('Edit Address'); ?></h1>
+	</div>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>	
+<div class="list-block customer-login  customer-register">
+	<form class="addressedit" action="<?= Yii::$service->url->getUrl('customer/address/edit'); ?>" id="form-validate" method="post">
+		<?= \fec\helpers\CRequest::getCsrfInputHtml();  ?>
+		<input name="address[address_id]" value="<?= $address_id; ?>" type="hidden">
+					
+		<ul>
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input class="input-text required-entry" maxlength="255" placeholder="<?= Yii::$service->page->translate->__('Email Address'); ?>" value="<?= $email ?>" name="address[email]" id="customer_email"   type="text">
+						</div>
+					</div>
+				</div>
+			</li>				
+			
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input class="input-text required-entry" maxlength="255" placeholder="<?= Yii::$service->page->translate->__('First Name'); ?>" title="First Name" value="<?= $first_name ?>" name="address[first_name]" id="firstname" type="text">
+						</div>
+					</div>
+				</div>
+			</li>	
+			
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input class="input-text required-entry" maxlength="255" placeholder="<?= Yii::$service->page->translate->__('Last Name'); ?>"  title="Last Name" value="<?= $last_name ?>" name="address[last_name]" id="lastname" type="text">
+						</div>
+					</div>
+				</div>
+			</li>	
+			
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input class="input-text required-entry" maxlength="255" placeholder="<?= Yii::$service->page->translate->__('Telephone'); ?>"  title="telephone" value="<?= $telephone ?>" name="address[telephone]" id="lastname" type="text">
+						</div>
+					</div>
+				</div>
+			</li>	
+			
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<select id="address:country" class="address_country validate-select" placeholder="<?= Yii::$service->page->translate->__('Country'); ?>"   title="Country" name="address[country]">
+								<?= $countrySelect;  ?>
+							</select>
+						</div>
+					</div>
+				</div>
+			</li>	
+			
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input state_html">
+							<?= $stateHtml;  ?>
+							
+						</div>
+					</div>
+				</div>
+			</li>	
+			
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input class="input-text required-entry" maxlength="255" placeholder="<?= Yii::$service->page->translate->__('City'); ?>" title="City" value="<?= $city ?>" name="address[city]" id="city" type="text" />
+						</div>
+					</div>
+				</div>
+			</li>	
+			
+			
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input class="input-text required-entry" maxlength="255" placeholder="<?= Yii::$service->page->translate->__('street1'); ?>" value="<?= $street1 ?>" name="address[street1]" id="street1" type="text" />
+						</div>
+					</div>
+				</div>
+			</li>	
+			
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input class="input-text required-entry" maxlength="255" placeholder="<?= Yii::$service->page->translate->__('street2'); ?>" value="<?= $street2 ?>" name="address[street2]" id="street2" type="text" />
+						</div>
+					</div>
+				</div>
+			</li>		
+			
+			
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input class="input-text required-entry" maxlength="255" placeholder="<?= Yii::$service->page->translate->__('Zip Code'); ?>" value="<?= $zip ?>" name="address[zip]" id="zip" type="text">
+						</div>
+					</div>
+				</div>
+			</li>	
+			
+			
+			<li class="control">
+				<div class="change_password_label item-content">
+					<input name="address[is_default]" value="1" title="Save in address book" id="address:is_default" class="address_is_default checkbox" <?= $is_default_str; ?> type="checkbox">
+						<label for="address:is_default" style="display:inline;"><?= Yii::$service->page->translate->__('Is Default');?></label>
+						
+				</div>
+			</li>
+		</ul>	
+		<div class="clear"></div>
+		<div class="buttons-set">
+			<p>
+				<a external href="javascript:void(0)" onclick="submit_address()"   id="js_registBtn" class="button button-fill">
+					<?= Yii::$service->page->translate->__('Save Address'); ?>
+				</a>
+			</p>
+		</div>
+	</form>
+</div>
+
+<script>
+<?php $this->beginBlock('editCustomerAddress') ?>
+	$(document).ready(function(){
+		$(".address_country").change(function(){
+			//alert(111);
+			ajaxurl = "<?= Yii::$service->url->getUrl('customer/address/changecountry') ?>";
+			country = $(this).val();
+			$.ajax({
+				async:false,
+				timeout: 8000,
+				dataType: 'json', 
+				type:'get',
+				data: {
+						'country':country,
+				},
+				url:ajaxurl,
+				success:function(data, textStatus){ 
+					$(".state_html").html(data.state);
+				},
+				error:function (XMLHttpRequest, textStatus, errorThrown){
+						
+				}
+			});
+			
+		});
+
+	});	
+	function submit_address(){
+		i = 1;
+		$(".addressedit input").each(function(){
+			type = $(this).attr("type");
+			if(type != "hidden"){
+				value = $(this).val();
+				if(!value){
+					//alert($(this).hasClass('optional'));
+					if(!$(this).hasClass('optional')){
+						i = 0;
+					}
+				}
+			}
+		});
+		
+		$(".addressedit select").each(function(){
+			value = $(this).val();
+			if(!value){
+				i = 0;
+			}
+		});
+		if(i){
+			$(".addressedit").submit();
+		}else{
+			alert("<?= Yii::$service->page->translate->__('You Must Fill All Field'); ?>");
+		}
+	}
+	
+	
+<?php $this->endBlock(); ?> 
+<?php $this->registerJs($this->blocks['editCustomerAddress'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+</script>

+ 83 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/address/index.php

@@ -0,0 +1,83 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+
+use fec\helpers\CRequest;
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<a external class="button button-link button-nav pull-left" href="<?= Yii::$service->url->getUrl('customer/account/index'); ?>">
+			<span class="icon icon-left"></span>
+		</a>
+		<h1 class='title'><?= Yii::$service->page->translate->__('Customer Address'); ?></h1>
+	</div>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>
+
+
+<div class="main container two-columns-left">
+	<div class="col-main account_center">
+		<div class="std">
+			<div style="margin:4px 0 0">
+				
+				<table class="addressbook" width="100%" cellspacing="0" cellpadding="0" border="0">
+					<thead>
+						<tr class="ress_tit">
+							<th width="76" valign="middle" align="center" height="31"><?= Yii::$service->page->translate->__('Name');?></th>                                                                                        
+							<th width="67" valign="middle" align="center"><?= Yii::$service->page->translate->__('Address');?></th>
+							<th class="th3" width="71" valign="middle" align="center"><?= Yii::$service->page->translate->__('Operation');?></th>
+						</tr>
+					</thead>
+					<tbody>
+					<?php   if(is_array($coll) && !empty($coll)):   ?>
+					<?php 		foreach($coll as $one): ?>
+						<tr class="">
+							<td valign="top" align="center"><?= $one['first_name'].' '.$one['last_name'] ?></td>
+							
+							<td valign="top" align="center">
+								<?= $one['street1'].' '.$one['street2'] ?><br>
+								<?= $one['city'] ?> 
+								<?= Yii::$service->helper->country->getStateByContryCode($one['country'],$one['state']); ?>
+								<?= Yii::$service->helper->country->getCountryNameByKey($one['country']); ?>
+								<?php  if($one['is_default'] == 1): ?>
+								<br/><span style=" color:#cc0000"><?= Yii::$service->page->translate->__('Default Address');?></span> 
+								<?php  endif; ?>	
+							</td>
+							<td class="ltp" valign="top ltp" align="center">
+								<a external href="<?= Yii::$service->url->getUrl('customer/address/edit',['address_id' => $one['address_id']]); ?>">
+									<span class="icon icon-edit"></span>
+								</a>
+								<a external href="javascript:deleteAddress(<?= $one['address_id'] ?>)">
+									<span class="icon icon-remove"></span>
+								</a>
+															
+							</td>
+						</tr>	
+					<?php 		endforeach; ?>
+					<?php 	endif; ?>
+					</tbody>
+				</table>
+				<div class="add_new_address">
+					<a external href="<?= Yii::$service->url->getUrl('customer/address/edit') ?>" class="button  button-light"><?= Yii::$service->page->translate->__('Add New Address');?></a>
+				</div>
+			</div>
+		</div>
+		<script>
+            function deleteAddress(address_id){
+                var r=confirm("<?= Yii::$service->page->translate->__('do you readly want delete this address?') ?>");
+                if (r==true){
+                    url = "<?= Yii::$service->url->getUrl('customer/address') ?>";
+                    doPost(url, {"method": "remove", "address_id": address_id, "<?= CRequest::getCsrfName() ?>": "<?= CRequest::getCsrfValue() ?>" });
+                }
+            }
+		</script>
+	</div>
+	
+	<div class="clear"></div>
+</div>
+	

+ 126 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/contacts/index.php

@@ -0,0 +1,126 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="shopping-cart-img">
+	<?= Yii::$service->page->translate->__('Contacts'); ?>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>	
+<div class="list-block customer-login ">
+	<div class="col-main account_center">
+		<form method="post" id="form-validate" class="account-form" >
+			<?= \fec\helpers\CRequest::getCsrfInputHtml();  ?>
+			<ul>
+				<li>
+					<div class="item-content">
+						<div class="item-media">
+							<i class="icon icon-form-name"></i>
+						</div>
+						<div class="item-inner">
+							<div class="item-input">
+								<input placeholder="Your Name" id="contacts_name" name="editForm[name]" value="<?= $name ?>" title="First Name" maxlength="255" class="input-text required-entry" type="text">
+								
+							</div>
+						</div>
+					</div>
+				</li>
+				<li>
+					<div class="item-content">
+						<div class="item-media">
+							<i class="icon icon-form-name"></i>
+						</div>
+						<div class="item-inner">
+							<div class="item-input">
+								<input placeholder="Your Email Address" id="contacts_email" name="editForm[email]" value="<?= $email ?>" title="Last Name" maxlength="255" class="input-text required-entry" type="text">
+							</div>
+						</div>
+					</div>
+				</li>
+				<li>
+					<div class="item-content">
+						<div class="item-media">
+							<i class="icon icon-form-name"></i>
+						</div>
+						<div class="item-inner">
+							<div class="item-input">
+								<input placeholder="Your telephone" name="editForm[telephone]" id="contacts_telephone" value="<?= $telephone ?>" title="Email Address" class="input-text required-entry validate-email" type="text">
+							
+							</div>
+						</div>
+					</div>
+				</li>
+				<li>
+					<div class="item-content">
+						<div class="item-media">
+							<i class="icon icon-form-name"></i>
+						</div>
+						<div class="item-inner">
+							<div class="item-input">
+								<textarea placeholder="Your Comment" name="editForm[comment]" id="contacts_comment"><?= $comment ?></textarea>
+							
+							</div>
+						</div>
+					</div>
+				</li>
+				<?php if($contactsCaptcha):  ?>
+					<li>
+						<div class="item-content">
+							<div class="item-media"><i class="icon icon-form-password"></i></div>
+							<div class="item-inner">
+								<div class="item-input">
+									<input placeholder="captcha" type="text" name="sercrity_code"  value="" size=10 class="login-captcha-input verification_code_input">
+                                    <img class="login-captcha-img"  title="<?= Yii::$service->page->translate->__('click refresh'); ?>" src="<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?<?php echo md5(time() . mt_rand(1,10000));?>" align="absbottom" onclick="this.src='<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?'+Math.random();"></img>
+									<span class="icon icon-refresh"></span>
+								</div>
+							</div>
+						</div>
+						<script>
+							<?php $this->beginBlock('forgot_password_captcha_onclick_refulsh') ?>  
+							$(document).ready(function(){
+								$(".icon-refresh").click(function(){
+									$(this).parent().find("img").click();
+								});
+							});
+							<?php $this->endBlock(); ?>  
+						</script>  
+						<?php $this->registerJs($this->blocks['forgot_password_captcha_onclick_refulsh'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+					</li>
+				<?php endif; ?>
+			</ul>
+			<div class="clear"></div>
+			<div class="buttons-set">
+				<p>
+					<a   external href="#"  id="js_contactBtn" class="button button-fill">
+						<?= Yii::$service->page->translate->__('Contact Us'); ?>
+					</a>
+				</p>
+			</div>	
+		</form>
+	</div>
+	
+	<div class="clear"></div>
+	<div class="mailtous">
+		<span><?= Yii::$service->page->translate->__('Our Email Address'); ?></span>: 
+		<a href="mailto:<?= $contactsEmail ?>"><?= $contactsEmail ?>
+		
+	</div>
+</div>
+
+<script>
+	<?php $this->beginBlock('contact_us') ?>  
+	$(document).ready(function(){
+		$("#js_contactBtn").click(function(){
+			$("#form-validate").submit();
+		});
+	});
+	<?php $this->endBlock(); ?>  
+</script>  
+<?php $this->registerJs($this->blocks['contact_us'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+	
+	

+ 253 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/editaccount/index.php

@@ -0,0 +1,253 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<a external class="button button-link button-nav pull-left" href="<?= Yii::$service->url->getUrl('customer/account/index'); ?>">
+			<span class="icon icon-left"></span>
+		</a>
+		<h1 class='title'><?= Yii::$service->page->translate->__('Edit Account'); ?></h1>
+	</div>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>
+
+<div class="list-block customer-login  customer-register">
+	<form method="post" id="form-validate" autocomplete="off" action="<?=  $actionUrl ?>">
+		<?= \fec\helpers\CRequest::getCsrfInputHtml();  ?>
+		<ul>
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input type="text" placeholder="<?= Yii::$service->page->translate->__('Email Address');?>"  style="color:#ccc;" readonly="true" id="customer_email" name="editForm[email]" value="<?= $email ?>" title="Email"  class="input-text required-entry" />
+						</div>
+					</div>
+				</div>
+			</li>
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input  placeholder="<?= Yii::$service->page->translate->__('First Name'); ?>" id="firstname" name="editForm[firstname]" value="<?= $firstname ?>" title="First Name"  class="input-text required-entry" type="text"  />
+							<div class="validation-advice" id="required_current_firstname" style="display:none;"><?= Yii::$service->page->translate->__('This is a required field.');?></div>
+						</div>
+					</div>
+				</div>
+			</li>
+			<li>
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input  type="text" placeholder="<?= Yii::$service->page->translate->__('Last Name'); ?>" id="lastname" name="editForm[lastname]" value="<?= $lastname ?>" title="Last Name" maxlength="255" class="input-text required-entry" />
+							<div class="validation-advice" id="required_current_lastname" style="display:none;"><?= Yii::$service->page->translate->__('This is a required field.');?></div>
+						</div>
+					</div>
+				</div>
+			</li>
+			
+			<li class="control">
+				<div class="change_password_label item-content">
+					<input name="editForm[change_password]" id="change_password" value="1" onclick="setPasswordForm(this.checked)" title="Change Password" class="checkbox" type="checkbox">
+					<label for="change_password"><?= Yii::$service->page->translate->__('Change Password');?></label>
+				</div>
+			</li>
+			
+			<li class="fieldset_pass" style="display:none">
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input placeholder="<?= Yii::$service->page->translate->__('Current Password'); ?>" title="Current Password" class="input-text required-entry" name="editForm[current_password]" id="current_password" type="password" />
+							<div class="validation-advice" id="required_current_password" style="display:none;"><?= Yii::$service->page->translate->__('This is a required field.');?></div>
+								
+						</div>
+					</div>
+				</div>
+			</li>
+			
+			<li class="fieldset_pass" style="display:none">
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input placeholder="<?= Yii::$service->page->translate->__('New Password'); ?>" title="New Password" class="input-text validate-password required-entry" name="editForm[password]" id="password" type="password" />
+							<div class="validation-advice" id="required_new_password" style="display:none;"><?= Yii::$service->page->translate->__('This is a required field.');?></div>	
+						</div>
+					</div>
+				</div>
+			</li>
+			
+			<li class="fieldset_pass" style="display:none">
+				<div class="item-content">
+					<div class="item-media">
+						<i class="icon icon-form-name"></i>
+					</div>
+					<div class="item-inner">
+						<div class="item-input">
+							<input placeholder="<?= Yii::$service->page->translate->__('Confirm New Password'); ?>"  title="Confirm New Password" class="input-text validate-cpassword required-entry" name="editForm[confirmation]" id="confirmation" type="password"  />
+							<div class="validation-advice" id="required_confirm_password" style="display:none;"><?= Yii::$service->page->translate->__('This is a required field.');?></div>
+						</div>
+					</div>
+				</div>
+			</li>
+		</ul>
+		<div class="clear"></div>
+		<div class="buttons-set">
+			<p>
+				<a external href="#"  id="js_editBtn" class="button button-fill">
+					<?= Yii::$service->page->translate->__('Edit Account'); ?>
+				</a>
+			</p>
+		</div>
+		
+	</form>
+</div>
+
+<script>
+<?php $this->beginBlock('customer_account_info_update') ?> 
+	
+	function setPasswordForm(arg){
+		if(arg){
+            $('.fieldset_pass').show();
+        }else{
+            $('.fieldset_pass').hide();
+        }
+    }
+    function check_edit(){
+        $check_current_password = true;
+        $check_new_password = true;
+        $check_confir_password = true;
+		$check_current_firstname = true;
+		$check_current_lastname = true;
+		
+		$firstname = $('#firstname').val();
+		$lastname = $('#lastname').val();
+		$check_confir_password_with_pass = true;
+		
+		if($firstname == ''){
+		   $('#firstname').addClass('validation-failed');
+		   $('#required_current_firstname').show();
+		   $check_current_firstname = false;
+		}else{
+		   $('#firstname').removeClass('validation-failed');
+		   $('#required_current_firstname').hide();
+		   $check_current_firstname = true;
+		}
+		
+		if($lastname == ''){
+		   $('#lastname').addClass('validation-failed');
+		   $('#required_current_lastname').show();
+		   $check_current_lastname = false;
+		}else{
+		   $('#lastname').removeClass('validation-failed');
+		   $('#required_current_lastname').hide();
+		   $check_current_lastname = true;
+		}
+		
+        if($('#change_password').is(':checked')){
+            $current_password = $('#current_password').val();
+            $password = $('#password').val();
+            $confirmation = $('#confirmation').val();
+            if($current_password == ''){
+               $('#current_password').addClass('validation-failed');
+               $('.required_current_password').show();
+               $check_current_password = false;
+            }else{
+               $('#current_password').removeClass('validation-failed');
+               $('#required_current_password').hide();
+               $check_current_password = true;
+            }
+            if($password == ''){
+               $('#password').addClass('validation-failed');
+               $('#required_new_password').show().html('This is a required field.');;
+               $check_new_password = false;
+            }else{
+                if(!checkPass($password)){
+                    $('#password').addClass('validation-failed');
+                    $('#required_new_password').show();
+                    $('#required_new_password').html('Must have 6 to 30 characters and no spaces.');
+                    $check_new_password = false;
+                }else{
+                    $('#password').removeClass('validation-failed');
+                    $('#required_new_password').hide();
+                    $check_new_password = true;
+                }
+            }
+			
+            if($confirmation == ''){
+               $('#confirmation').addClass('validation-failed');
+               $('#required_confirm_password').show().html('This is a required field.');
+               $check_confir_password = false;
+            }else{
+                if(!checkPass($confirmation)){
+                    $('#confirmation').addClass('validation-failed');
+                    $('#required_confirm_password').show();
+                    $('#required_confirm_password').html('Must have 6 to 30 characters and no spaces.');
+                    $check_confir_password = false;
+                 }else{
+					if($password != $confirmation){
+						$('#confirmation').addClass('validation-failed');
+						$('#required_confirm_password').show();
+						$('#required_confirm_password').html('Two password is not the same!');
+						$check_confir_password_with_pass = false;
+					}else{
+						$('#confirmation').removeClass('validation-failed');
+						$('#required_confirm_password').hide();
+						$check_confir_password = true;
+					}
+                    
+                }
+            }
+		}
+	 
+		if( $check_confir_password_with_pass && $check_current_firstname && $check_current_lastname && $check_confir_password && $check_new_password && $check_current_password){
+			return true;
+		}else{
+			return false;
+		}
+	}
+	
+	function checkPass(str){
+        var re = /^\w{6,30}$/;
+         if(re.test(str)){
+           return true;
+        }else{
+           return false;
+        }
+    }
+    function checkEmail(str){  
+        var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/; 
+        if(myReg.test(str)) return true; 
+        return false; 
+    } 
+	$(document).ready(function(){
+		$("#js_editBtn").click(function(){
+			if(check_edit()){
+				$("#form-validate").submit();
+			}
+		});
+	});
+<?php $this->endBlock(); ?>  
+</script>  
+<?php $this->registerJs($this->blocks['customer_account_info_update'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+	

+ 32 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/leftmenu.php

@@ -0,0 +1,32 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="list-block" style="margin-top:80px;">
+    <ul>
+		<?php  if(!empty($leftMenuArr) && is_array($leftMenuArr)):  ?>
+			<?php foreach($leftMenuArr as $one): ?>
+			
+			<li class="item-content item-link">
+				<div class="item-media"><i class="icon icon-f7"></i></div>
+				<div class="item-inner">
+					<div class="item-title">
+						<a external href="<?= $one['url'] ?>"  ><?= Yii::$service->page->translate->__($one['name']); ?></a>
+					</div>
+				</div>
+			</li>
+			<?php endforeach; ?>
+		<?php endif; ?>	
+    </ul>
+</div>
+
+<div class="account_footer">
+	<a   external  href="<?= Yii::$service->url->getUrl("customer/account/logout");?> " class="button button-fill button-bbb">
+        <?= Yii::$service->page->translate->__('Logout'); ?>
+    </a>
+</div>

+ 12 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/newsletter/error.php

@@ -0,0 +1,12 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="main container one-column">
+	
+</div>

+ 3 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/newsletter/index.php

@@ -0,0 +1,3 @@
+<div class="main container one-column">
+	<?= $message ?>
+</div>

+ 72 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/order/index.php

@@ -0,0 +1,72 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<a external class="button button-link button-nav pull-left" href="<?= Yii::$service->url->getUrl('customer/account/index'); ?>">
+			<span class="icon icon-left"></span>
+		</a>
+		<h1 class='title'><?= Yii::$service->page->translate->__('Customer Order'); ?></h1>
+	</div>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>
+
+<div class="order_list">
+
+	<div class="col-main account_center">
+		<div class="std">
+			<div style="margin:4px 0 0">
+				
+				<table id="my-orders-table" class="edit_order">
+					<thead>
+						<tr class="first last">
+							<th><?= Yii::$service->page->translate->__('Order #');?> </th>
+							<th><?= Yii::$service->page->translate->__('Date');?></th>
+							<th><?= Yii::$service->page->translate->__('Operation');?></th>
+						</tr>
+					</thead>
+					<tbody>
+					<?php  if(is_array($order_list) && !empty($order_list)):  ?>
+						<?php foreach($order_list as $order): 
+							$currencyCode = $order['order_currency_code'];
+							$symbol = Yii::$service->page->currency->getSymbol($currencyCode);
+							
+						?>
+							<tr class="first odd">
+								<td>
+									<b><?= $order['increment_id'] ?></b><br/>
+									<span class="order-status <?= Yii::$service->page->translate->__($order['order_status']); ?>"><?= Yii::$service->page->translate->__($order['order_status']); ?></span>
+								</td>
+								<td><span class="nobr"><?= date('Y-m-d H:i:s',$order['created_at']) ?></span></td>
+								<td class="a-center last">
+									<span class="nobr"><a external href="<?=  Yii::$service->url->getUrl('customer/order/view',['order_id' => $order['order_id']]);?>"><?= Yii::$service->page->translate->__('View Order');?></a>
+									<span class="separator">|</span> <a external class="link-reorder" href="<?=  Yii::$service->url->getUrl('customer/order/reorder',['order_id' => $order['order_id']]);?>"><?= Yii::$service->page->translate->__('Reorder');?></a>
+									</span>
+								</td>
+							</tr>
+						
+						<?php endforeach; ?>
+					<?php endif; ?>
+						
+					</tbody>
+				</table>
+				<?php if($pageToolBar): ?>
+					<div class="pageToolbar customer_order">
+						<label class=""><?= Yii::$service->page->translate->__('Page:');?></label>
+                        <?= $pageToolBar ?>
+                        <div class="clear"></div>
+					</div>
+				<?php endif; ?>
+			</div>
+		</div>
+	</div>
+	
+	<div class="clear"></div>
+</div>
+	

+ 9 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/order/reorder.php

@@ -0,0 +1,9 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>

+ 215 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/order/view.php

@@ -0,0 +1,215 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+use fecshop\app\apphtml5\helper\Format;
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<a external class="button button-link button-nav pull-left" href="<?= Yii::$service->url->getUrl('customer/order/index'); ?>">
+			<span class="icon icon-left"></span>
+		</a>
+		<h1 class='title'><?= Yii::$service->page->translate->__('View Order'); ?></h1>
+	</div>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>
+
+
+<div class="account-container">
+	<div class="col-main account_center">
+		<div class="std">
+			<div style="margin:2px 0 0">
+				<div class="my_account_order">
+					<table class="page-title title-buttons">
+						<tbody>
+							<tr><td><?= Yii::$service->page->translate->__('Order#');?> :</td><td><?=  $increment_id ?>	</td></tr>		
+							<tr><td><?= Yii::$service->page->translate->__('Order Status');?>:</td><td><?= Yii::$service->page->translate->__($order_status);?></td></tr>		
+							<tr><td><?= Yii::$service->page->translate->__('Order Date');?>:</td><td><?=  date('Y-m-d H:i:s',$created_at); ?></td></tr>								
+						</tbody>
+					</table>
+					<div class="col2-set order-info-box">
+						<div class="col-1">
+							<div class="box">
+							<div class="box-title">
+								<h5><?= Yii::$service->page->translate->__('Shipping Address');?>:</h5>
+							</div>
+							<div class="box-content">
+								<table>
+									<tbody>
+										<tr><td><?=  $customer_firstname ?> <?=  $customer_lastname ?></td></tr>	
+										<tr><td><?=  $customer_address_street1 ?><br><?=  $customer_address_street2 ?></td></tr>	
+										<tr><td><?=  $customer_address_city ?>,<?=  $customer_address_state_name ?>,<?=  $customer_address_country_name ?></td></tr>	
+										<tr><td><?= Yii::$service->page->translate->__('T:');?><?=  $customer_telephone ?></td></tr>	
+
+									</tbody>
+								</table>
+							</div>
+						</div>				</div>
+						<div class="col-2">
+							<div class="box">
+								<div class="box-title">
+									<h5><?= Yii::$service->page->translate->__('Shipping Method');?>:</h5>
+								</div>
+								<div class="box-content">
+									<table>
+										<tbody>
+											<tr><td><?=  $shipping_method ?></td></tr>  
+										</tbody>
+									</table>
+								</div>
+							</div>				
+                        </div>
+                        <div class="col-2">
+							<div class="box">
+								<div class="box-title">
+									<h5><?= Yii::$service->page->translate->__('Tracking Number');?>:</h5>
+								</div>
+								<div class="box-content">
+									<table>
+										<tbody>
+											<tr><td><?=  $tracking_number ? $tracking_number : Yii::$service->page->translate->__('null') ?></td></tr>  
+										</tbody>
+									</table>
+								</div>
+							</div>				
+                        </div>
+						<div class="col-2">
+							<div class="box box-payment">
+								<div class="box-title">
+									<h5><?= Yii::$service->page->translate->__('Payment Method');?>:</h5>
+								</div>
+								<div class="box-content">
+									<table>
+										<tbody>
+											<tr><td><?=  $payment_method ?></td></tr>  
+										</tbody>
+									</table>
+								</div>
+							</div>			
+						</div>
+					</div>
+					
+					<div class="order-items order-details box-title">
+						<h5 class="table-caption"><?= Yii::$service->page->translate->__('Items Ordered');?>:</h5>
+
+						<table summary="Items Ordered" id="my-orders-table" class="data-table">
+							<colgroup>
+                                <col>
+                                <col width="1">
+                                <col width="1">
+                                <col width="1">
+                                <col width="1">
+ 							</colgroup>
+							<thead>
+								<tr class="first last">
+									<th><?= Yii::$service->page->translate->__('Product Image');?></th>
+									<th><?= Yii::$service->page->translate->__('Product Info');?></th>
+									<th class="a-center"><?= Yii::$service->page->translate->__('Qty');?></th>
+                                    <th class="a-center"><?= Yii::$service->page->translate->__('Review');?></th>
+									<th class="a-right"><?= Yii::$service->page->translate->__('Subtotal');?></th>
+								</tr>
+							</thead>
+							<tfoot>
+								<tr class="subtotal first">
+									<td class="a-right" colspan="4"><?= Yii::$service->page->translate->__('Subtotal');?></td>
+									<td class="last a-center"><span class="price"><?= $currency_symbol ?><?=  Format::price($subtotal); ?></span></td>
+								</tr>
+								<tr class="shipping">
+									<td class="a-right" colspan="4"><?= Yii::$service->page->translate->__('Shipping Cost');?></td>
+									<td class="last a-center">
+										<span class="price"><?= $currency_symbol ?><?=  Format::price($shipping_total); ?></span>    
+									</td>
+								</tr>
+								<tr class="discount">
+									<td class="a-right" colspan="4"><?= Yii::$service->page->translate->__('Discount');?></td>
+									<td class="last a-center">
+										<span class="price"><?= $currency_symbol ?><?=  Format::price($subtotal_with_discount); ?></span>    
+									</td>
+								</tr>
+								<tr class="grand_total last">
+									<td class="a-center" colspan="4">
+										<strong><?= Yii::$service->page->translate->__('Grand Total');?></strong>
+									</td>
+									<td class="last a-right">
+										<strong><span class="price"><?= $currency_symbol ?><?=  Format::price($grand_total); ?></span></strong>
+									</td>
+								</tr>
+							</tfoot>
+							<tbody class="odd">
+								<?php if(is_array($products) && !empty($products)):  ?>
+									<?php foreach($products as $product): ?>
+									<tr id="order-item-row" class="border first">	
+										<td>
+											<a href="<?=  Yii::$service->url->getUrl($product['redirect_url']) ; ?>">
+												<img src="<?= Yii::$service->product->image->getResize($product['image'],[100,100],false) ?>" alt="<?= $product['name'] ?>" width="75" height="75">
+											</a>
+										</td>
+										<td>
+											<div><?= Yii::$service->page->translate->__('sku')?>:<?= $product['sku'] ?></div>
+											<?php  if(is_array($product['custom_option_info'])):  ?>
+											
+												<?php foreach($product['custom_option_info'] as $label => $val):  ?>
+													<div>
+														<?= Yii::$service->page->translate->__($label.':') ?><?= Yii::$service->page->translate->__($val) ?>
+													</div>
+												<?php endforeach;  ?>
+											
+											<?php endif;  ?>
+
+										<?php  if($product['customsize']):  ?>
+										<ul>
+										<?php
+											$customsize = stripslashes($product['customsize']);  
+											$customsize = json_decode($customsize,true);
+										?>
+											<?php foreach($customsize as $k => $v):  ?>
+												
+												<div><?=$k?>:<?=$v?> </div>
+												
+											<?php endforeach;  ?>
+										</ul>
+										<?php endif;  ?>
+											
+											<dl class="item-options">
+											</dl>
+										</td>
+										
+										<td class="a-center">
+											<span class="nobr" ><strong><?= $product['qty'] ?></strong><br>
+											</span>
+										</td>
+                                        <td class="a-center">
+											<a style="font-size:1em" href="<?= Yii::$service->url->getUrl('/catalog/reviewproduct/add',['_id' => $product['product_id']])  ?>">
+                                                <span class="" >
+                                                    Review 
+                                                    <br>
+                                                </span>
+                                            </a>
+										</td>
+										<td class="a-right last">
+											<span class="price-excl-tax">
+												<span class="cart-price">
+													<span class="price"><?= $currency_symbol ?><?= Format::price($product['row_total']); ?></span>                    
+												</span>
+											</span>
+											<br>
+										</td>
+									</tr>
+									<?php endforeach; ?>
+								<?php endif; ?>
+								</tbody>								   
+						</table>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+	
+	<div class="clear"></div>
+</div>

+ 114 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/productfavorite/index.php

@@ -0,0 +1,114 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+use fec\helpers\CRequest;
+?>
+<?php
+use fecshop\app\apphtml5\helper\Format;
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<a external class="button button-link button-nav pull-left" href="<?= Yii::$service->url->getUrl('customer/account/index'); ?>">
+			<span class="icon icon-left"></span>
+		</a>
+		<h1 class='title'><?= Yii::$service->page->translate->__('Product Favorite'); ?></h1>
+	</div>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>
+
+<div class="account-container">
+	<div class="col-main account_center">
+		<div class="std">
+			<div style="margin:4px 0 0">
+				<div style="width:100%;min-height:500px;">
+					<div style="width:100%;">
+						<?php if(is_array($coll) && !empty($coll)):  ?>
+						<table class="product-Reviews"> 
+							<?php  foreach($coll as $one):  ?>
+							<?php  $main_img = $one['image']['main']['image'];  ?>
+							
+							<tr>
+								<td>
+									<a external href="<?= Yii::$service->url->getUrl($one['url_key'])  ?>">
+										<p style="text-align:center;"><img src="<?= Yii::$service->product->image->getResize($main_img,[80,80],false) ?>"></p>
+									</a>
+								</td>
+								<td>
+									<span class="review_description_right_span"><b>
+										<a external  href="<?= Yii::$service->url->getUrl($one['url_key'])  ?>">
+											<?= Yii::$service->store->getStoreAttrVal($one['name'],'name')  ?>
+										</a>
+									</span>
+									<div class="review_description_centen">
+										<div class="category_product" style="display:inline-block;float:left;">
+											<?php
+												$diConfig = [
+													'price' 		=> $one['price'],
+													'special_price' => $one['special_price'],
+													'special_from' 	=> $one['special_from'],
+													'special_to' 	=> $one['special_to'],
+												];
+                                                echo Yii::$service->page->widget->DiRender('category/price', $diConfig);
+											?>
+										</div>
+										
+										<div class="clear"></div>
+										<div style="font-weight:100">
+											<?= Yii::$service->page->translate->__('Favorite Date:');?><?= date('Y-m-d H:i:s',$one['updated_at']) ?>
+										</div>
+									</div>	
+								</td>
+								<td>
+									<div class="favorite-Operation addressbook " style="display:inline-block;float:right; margin-top: 0px;">
+										<a href='javascript:doPost("<?= Yii::$service->url->getUrl('customer/productfavorite') ?>", {"type":"remove", "favorite_id":"<?= $one['favorite_id'] ?>", "<?= CRequest::getCsrfName() ?>": "<?= CRequest::getCsrfValue() ?>" })' >
+											<span class="icon icon-remove"></span>
+										</a>
+									</div>
+								</td>
+							</tr>
+								
+							<?php  endforeach;  ?>
+						</table>
+						<?php  else:  ?>
+							<?= Yii::$service->page->translate->__('You have no items in your favorite.');?>
+						<?php  endif; ?>
+						<?php if($pageToolBar): ?>
+						<div class="pageToolbar">
+							<label class="title">Page:</label><?= $pageToolBar ?>
+						</div>
+						<?php endif; ?>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+	
+	
+	<div class="clear"></div>
+</div>
+<script>
+    function ShowRemark(eval,id){
+        $('#remarkBox_'+id).show("slow");
+    }
+    function hideRemark(id){
+         $('#remarkBox_'+id).hide("slow");
+    }
+    function ViledateForm(id){
+        $val = $('#content_'+id).val();
+        //alert($val);
+        $url = $(eval).attr('url');
+        $.ajax({
+             type: "POST",
+             data:"remark="+$val,
+             url: "/favorite/product/remark?_id="+id,
+             success: function(data){
+                location.reload([true]);
+             }
+         });
+    }
+</script>

+ 89 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/customer/productreview/index.php

@@ -0,0 +1,89 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+use fecshop\app\apphtml5\helper\Format;
+?>
+<div class="account-ds">
+	<div class="bar bar-nav account-top-m">
+		<a external class="button button-link button-nav pull-left" href="<?= Yii::$service->url->getUrl('customer/account/index'); ?>">
+			<span class="icon icon-left"></span>
+		</a>
+		<h1 class='title'><?= Yii::$service->page->translate->__('Product Review'); ?></h1>
+	</div>
+</div>
+<?= Yii::$service->page->widget->render('base/flashmessage'); ?>
+<div class="account-container">
+	<div class="col-main account_center">
+		<div class="account_review_product">
+			<div style="margin:4px 0 0">
+				<div style="width:100%;min-height:500px;">
+					<div style="width:100%;">
+						<div>
+							<?php  if(is_array($coll) && !empty($coll)):  ?>
+							<table class="product-Reviews"> 
+								<?php foreach($coll as $one):  ?>
+									<tr>
+										<td>
+											<?php $main_image = isset($one['image']['main']['image']) ? $one['image']['main']['image'] : '' ?>
+											<div class="review_description_left">
+												<a external class="product_img" href="<?= Yii::$service->url->getUrl($one['url_key']);  ?>">
+													<img src="<?= Yii::$service->product->image->getResize($main_image,[80,80],false) ?>" />
+												</a>
+												<a external href="#" class="review_star review_star_<?= $one['rate_star'] ?>" onclick="javascript:return false;"></a>
+												
+											</div>
+										</td>
+										<td>
+											<?= $one['summary'] ?><br/><br/>
+											<div class="review-content">
+												<?= $one['review_content'] ?>
+											</div>
+											
+											<?php if($one['status'] == $noActiveStatus): ?>  
+											<div class="review_moderation">
+												<?= Yii::$service->page->translate->__('Your Review is awaiting moderation...');?>
+											</div>
+											<?php elseif($one['status'] == $refuseStatus): ?>
+											<div class="review_refuse">
+												<?= Yii::$service->page->translate->__('Your Review is refused.');?>
+											</div>
+											<?php elseif($one['status'] == $activeStatus): ?>
+											<div class="review_accept">
+												<?= Yii::$service->page->translate->__('Your Review is accept.');?>
+											</div>
+											<?php endif; ?>
+										</td>
+										<td>
+											<span class="review_date_time"><?= $one['review_date'] ? date('Y-m-d H:i:s',$one['review_date']) : '' ?></span>
+											
+										</td>
+									</tr>
+									
+								<?php endforeach; ?>
+							</table>	
+							<?php if($pageToolBar): ?>
+							<div class="pageToolbar">
+								<label class=""><?= Yii::$service->page->translate->__('Page:');?></label>
+                                <?= $pageToolBar ?>
+                                <div class="clear"></div>
+							</div>
+							<?php endif; ?>
+						</div>
+						<?php else: ?>
+							<?= Yii::$service->page->translate->__('You have submitted no reviews');?>.
+						<?php endif; ?>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+	
+</div>
+	

+ 12 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/blank.php

@@ -0,0 +1,12 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?><?= Yii::$service->page->widget->render('base/beforeContent',$this); ?>
+<?= $content; ?>
+<?= Yii::$service->page->widget->render('base/trace',$this); ?>
+	

+ 64 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/category_view.php

@@ -0,0 +1,64 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+$jsOptions = [
+	# js config 1
+	[
+		'options' => [
+			'position' =>  'POS_END',
+		//	'condition'=> 'lt IE 9',
+		],
+		'js'	=>[
+			'js/zepto.min.js',
+			'js/sm.min.js',
+			'js/sm-extend.min.js',
+            'js/fec.js',
+		],
+	],
+];
+
+
+# css config
+$cssOptions = [
+	# css config 1.
+	[
+		'css'	=>[
+			'css/sm.min.css',
+			'css/sm-extend.min.css',
+			'css/fec.css',
+		],
+	],
+];
+\Yii::$service->page->asset->jsOptions 	= \yii\helpers\ArrayHelper::merge($jsOptions, \Yii::$service->page->asset->jsOptions);
+\Yii::$service->page->asset->cssOptions = \yii\helpers\ArrayHelper::merge($cssOptions, \Yii::$service->page->asset->cssOptions);				
+\Yii::$service->page->asset->register($this);
+?>
+
+<?php $this->beginPage() ?>
+<!DOCTYPE html>
+<html>
+<head>
+<?= Yii::$service->page->widget->render('base/head',$this); ?>
+</head>
+<body>
+<?= Yii::$service->page->widget->render('base/beforeContent',$this); ?>
+<?php $this->beginBody() ?>
+	<div class="page-group">
+		<div class="page" id="page-infinite-scroll-bottom">
+			<?= Yii::$service->page->widget->render('base/header',$this); ?>
+			<?= $content; ?>
+		</div>
+		<?= Yii::$service->page->widget->render('base/menu',$this); ?>
+        <?= Yii::$service->page->widget->render('base/trace',$this); ?>
+	</div>
+<?php $this->endBody() ?>
+</body>
+</html>
+<?php $this->endPage() ?>

+ 66 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/home.php

@@ -0,0 +1,66 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+$jsOptions = [
+	# js config 1
+	[
+		'options' => [
+			'position' =>  'POS_END',
+		//	'condition'=> 'lt IE 9',
+		],
+		'js'	=>[
+			'js/zepto.min.js',
+			'js/sm.min.js',
+			'js/sm-extend.min.js',
+            'js/fec.js', 
+		],
+	],
+];
+
+
+# css config
+$cssOptions = [
+	# css config 1.
+	[
+		'css'	=>[
+			'css/sm.min.css',
+			'css/sm-extend.min.css',
+			'css/fec.css',
+		],
+	],
+];
+\Yii::$service->page->asset->jsOptions 	= \yii\helpers\ArrayHelper::merge($jsOptions, \Yii::$service->page->asset->jsOptions);
+\Yii::$service->page->asset->cssOptions = \yii\helpers\ArrayHelper::merge($cssOptions, \Yii::$service->page->asset->cssOptions);				
+\Yii::$service->page->asset->register($this);
+?>
+
+<?php $this->beginPage() ?>
+<!DOCTYPE html>
+<html>
+<head>
+<?= Yii::$service->page->widget->render('base/head',$this); ?>
+</head>
+<body>
+<?= Yii::$service->page->widget->render('base/beforeContent',$this); ?>
+<?php $this->beginBody() ?>
+	<div class="page-group">
+		<div class="page">
+			<?= Yii::$service->page->widget->render('base/header',$this); ?>
+			<div class="content" >
+				<?= $content; ?>
+			</div>
+		</div>
+		<?= Yii::$service->page->widget->render('base/menu',$this); ?>
+        <?= Yii::$service->page->widget->render('base/trace',$this); ?>
+	</div>
+<?php $this->endBody() ?>
+</body>
+</html>
+<?php $this->endPage() ?>

+ 66 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/main.php

@@ -0,0 +1,66 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+$jsOptions = [
+	# js config 1
+	[
+		'options' => [
+			'position' =>  'POS_END',
+		//	'condition'=> 'lt IE 9',
+		],
+		'js'	=>[
+			'js/zepto.min.js',
+			'js/sm.min.js',
+			'js/sm-extend.min.js',
+            'js/fec.js',
+		],
+	],
+];
+
+
+# css config
+$cssOptions = [
+	# css config 1.
+	[
+		'css'	=>[
+			'css/sm.min.css',
+			'css/sm-extend.min.css',
+			'css/fec.css',
+		],
+	],
+];
+\Yii::$service->page->asset->jsOptions 	= \yii\helpers\ArrayHelper::merge($jsOptions, \Yii::$service->page->asset->jsOptions);
+\Yii::$service->page->asset->cssOptions = \yii\helpers\ArrayHelper::merge($cssOptions, \Yii::$service->page->asset->cssOptions);				
+\Yii::$service->page->asset->register($this);
+?>
+
+<?php $this->beginPage() ?>
+<!DOCTYPE html>
+<html>
+<head>
+<?= Yii::$service->page->widget->render('base/head',$this); ?>
+</head>
+<body>
+<?= Yii::$service->page->widget->render('base/beforeContent',$this); ?>
+<?php $this->beginBody() ?>
+	<div class="page-group">
+		<div class="page">
+			<?= Yii::$service->page->widget->render('base/header',$this); ?>
+			<div class="content" id=''>
+				<?= $content; ?>
+			</div>
+		</div>
+		<?= Yii::$service->page->widget->render('base/menu',$this); ?>
+        <?= Yii::$service->page->widget->render('base/trace',$this); ?>
+	</div>
+<?php $this->endBody() ?>
+</body>
+</html>
+<?php $this->endPage() ?>

+ 66 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/one_step_checkout.php

@@ -0,0 +1,66 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+$jsOptions = [
+	# js config 1
+	[
+		'options' => [
+			'position' =>  'POS_END',
+		//	'condition'=> 'lt IE 9',
+		], 
+		'js'	=>[
+			'js/zepto.min.js',
+			'js/sm.min.js',
+			'js/sm-extend.min.js',
+			'js/fec.js',
+		],
+	],
+];
+
+
+# css config
+$cssOptions = [
+	# css config 1.
+	[
+		'css'	=>[
+			'css/sm.min.css',
+			'css/sm-extend.min.css',
+			'css/fec.css',
+		],
+	],
+];
+\Yii::$service->page->asset->jsOptions 	= \yii\helpers\ArrayHelper::merge($jsOptions, \Yii::$service->page->asset->jsOptions);
+\Yii::$service->page->asset->cssOptions = \yii\helpers\ArrayHelper::merge($cssOptions, \Yii::$service->page->asset->cssOptions);				
+\Yii::$service->page->asset->register($this);
+?>
+
+<?php $this->beginPage() ?>
+<!DOCTYPE html>
+<html>
+<head>
+<?= Yii::$service->page->widget->render('base/head',$this); ?>
+</head>
+<body>
+<?= Yii::$service->page->widget->render('base/beforeContent',$this); ?>
+<?php $this->beginBody() ?>
+	<div class="page-group">
+		<div class="page">
+			<?= Yii::$service->page->widget->render('base/header',$this); ?>
+			<div class="content" id=''>
+				<?= $content; ?>
+			</div>
+		</div>
+		<?= Yii::$service->page->widget->render('base/menu',$this); ?>
+        <?= Yii::$service->page->widget->render('base/trace',$this); ?>
+	</div>
+<?php $this->endBody() ?>
+</body>
+</html>
+<?php $this->endPage() ?>

+ 66 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/product_view.php

@@ -0,0 +1,66 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+$jsOptions = [
+	# js config 1
+	[
+		'options' => [
+			'position' =>  'POS_END',
+		//	'condition'=> 'lt IE 9',
+		],
+		'js'	=>[
+			'js/zepto.min.js',
+			'js/sm.min.js',
+			'js/sm-extend.min.js',
+			'js/fec.js',
+		],
+	],
+];
+
+
+# css config
+$cssOptions = [
+	# css config 1.
+	[
+		'css'	=>[
+			'css/sm.min.css',
+			'css/sm-extend.min.css',
+			'css/fec.css',
+		],
+	],
+];
+\Yii::$service->page->asset->jsOptions 	= \yii\helpers\ArrayHelper::merge($jsOptions, \Yii::$service->page->asset->jsOptions);
+\Yii::$service->page->asset->cssOptions = \yii\helpers\ArrayHelper::merge($cssOptions, \Yii::$service->page->asset->cssOptions);				
+\Yii::$service->page->asset->register($this);
+?>
+
+<?php $this->beginPage() ?>
+<!DOCTYPE html>
+<html>
+<head>
+<?= Yii::$service->page->widget->render('base/head',$this); ?>
+</head>
+<body>
+<?= Yii::$service->page->widget->render('base/beforeContent',$this); ?>
+<?php $this->beginBody() ?>
+	<div class="page-group">
+		<div class="page">
+			<?= Yii::$service->page->widget->render('base/header',$this); ?>
+			<div class="content" >
+				<?= $content; ?>
+			</div>
+		</div>
+		<?= Yii::$service->page->widget->render('base/menu',$this); ?>
+        <?= Yii::$service->page->widget->render('base/trace',$this); ?>
+	</div>
+<?php $this->endBody() ?>
+</body>
+</html>
+<?php $this->endPage() ?>

+ 5 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/layouts/wxpay_jsapi.php

@@ -0,0 +1,5 @@
+<?php $this->beginPage() ?>
+<html>
+<?= $content; ?>
+</html>
+<?php $this->endPage() ?>

+ 24 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/checkmoney/success.php

@@ -0,0 +1,24 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="main container one-column">
+	<div class="col-main">
+		<div>
+			
+			<span style="font-size:18px;">Your Order Increment Id:</span>
+			<span style="font-weight:bold;font-size:18px;color:#cc0000;">#<?= $increment_id ?></span>
+			
+			<br/><br/>
+			Please pay offline and contact customer service to change order payment status
+			<br/><br/>
+			Thank You!
+		</div>
+	
+	</div>
+</div>

+ 317 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/paypal/express/review.php

@@ -0,0 +1,317 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="main container one-column">
+	<div class="col-main">
+		<?= Yii::$service->page->widget->render('base/flashmessage'); ?>
+
+		<form action="<?= Yii::$service->url->getCurrentUrl(); ?>" method="post" id="onestepcheckout-form">
+			<?= \fec\helpers\CRequest::getCsrfInputHtml(); ?>
+			<div style="margin: 0;" class="group-select">
+				<p class="onestepcheckout-description"><?= Yii::$service->page->translate->__('Welcome to the checkout,Fill in the fields below to complete your purchase');?> !</p>
+				
+				<div class="onestepcheckout-threecolumns checkoutcontainer onestepcheckout-skin-generic onestepcheckout-enterprise">
+					<div class="onestepcheckout-column-left">
+						<?php # address 部门
+							//var_dump($address_list);
+							$addressParam = [
+								'cart_address_id' 	=> $cart_address_id,
+								'address_list'	  	=> $address_list,
+								'customer_info'	  	=> $customer_info,
+								'country_select'  	=> $country_select,
+								'state_html'  	  	=> $state_html,
+								'cart_address'		=> $cart_address,
+								//'payments' => $payments,
+								//'current_payment_mothod' => $current_payment_mothod,
+							];
+						?>
+                        <?= Yii::$service->page->widget->render('payment/paypal_express_address',$addressParam); ?>
+					</div>
+
+					<div class="onestepcheckout-column-middle">
+						<div class="shipping_method_html">
+                            <?= Yii::$service->page->widget->render('payment/paypal_express_shipping', ['shippings' => $shippings]); ?>
+						</div>
+					
+						<div class="onestepcheckout-coupons">
+							<div style="display: none;" id="coupon-notice"></div>
+							<div class="op_block_title"><?= Yii::$service->page->translate->__('Coupon codes (optional)');?></div>
+							<label for="id_couponcode"><?= Yii::$service->page->translate->__('Enter your coupon code if you have one.');?></label>
+							
+							<input type="hidden" class="couponType"  value="<?= $cart_info['coupon_code'] ? 1 : 2 ; ?>"  />
+							<input style="color:#777;" class="input-text" id="id_couponcode" name="coupon_code" value="<?= $cart_info['coupon_code']; ?>">
+							<br>
+							<button style="" type="button" class="submitbutton add_coupon_submit" id="onestepcheckout-coupon-add"><?= Yii::$service->page->translate->__($cart_info['coupon_code'] ? 'Cancel Coupon' : 'Add Coupon') ; ?></button>
+							<div class="clear"></div>
+							<div class="coupon_add_log"></div>
+						</div>
+						
+						<div class="onestepcheckout-coupons">
+							<div class="op_block_title"><?= Yii::$service->page->translate->__('Order Remark (optional)');?></div>
+							<label for="id_couponcode"><?= Yii::$service->page->translate->__('You can fill in the order remark information below');?></label>
+							<textarea class="order_remark" name="order_remark" style="width:100%;height:100px;padding:10px;"></textarea>
+						</div>
+					</div>
+
+					<div class="onestepcheckout-column-right">
+						<div class="review_order_view">
+							<?php # review order部分
+								$reviewOrderParam = [
+									'cart_info' => $cart_info,
+									'currency_info' => $currency_info,
+								];
+							?>
+							<?= Yii::$service->page->widget->render('payment/paypal_express_orderview', $reviewOrderParam); ?>
+						</div>
+						<div class="onestepcheckout-place-order">
+							<a class="large orange onestepcheckout-button" href="javascript:void(0)" id="onestepcheckout-place-order"><?= Yii::$service->page->translate->__('Place order now');?></a>
+							<div class="onestepcheckout-place-order-loading"><img src="<?= Yii::$service->image->getImgUrl('images/opc-ajax-loader.gif'); ?>">&nbsp;&nbsp;<?= Yii::$service->page->translate->__('Please wait, processing your order...');?></div>
+						</div>
+					</div>
+					<div style="clear: both;">&nbsp;</div>
+				</div>
+			</div>
+		</form>
+	</div>
+</div>
+
+<script>
+<?php $this->beginBlock('placeOrder') ?>
+	function validateEmail(email) {
+		var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+		return re.test(email);
+	}
+	// ajax
+	function ajaxreflush(){
+		shipping_method = $("input[name=shipping_method]:checked").val();
+		//alert(shipping_method);
+		country = $(".billing_country").val();
+		address_id = $(".address_list").val();
+		state   = $(".address_state").val();
+		//alert(state);
+		if(country || address_id){
+			$(".onestepcheckout-summary").html('<div style="text-align:center;min-height:40px;"><img src="<?= Yii::$service->image->getImgUrl('images/ajax-loader.gif'); ?>"  /></div>');
+			$(".onestepcheckout-shipping-method-block").html('<div style="text-align:center;min-height:40px;"><img src="<?= Yii::$service->image->getImgUrl('images/ajax-loader.gif'); ?>"  /></div>');
+				
+			ajaxurl = "<?= Yii::$service->url->getUrl('checkout/onepage/ajaxupdateorder');  ?>";
+			
+			
+			$.ajax({
+				async:false,
+				timeout: 8000,
+				dataType: 'json', 
+				type:'get',
+				data: {
+						'country':country,
+						'shipping_method':shipping_method,
+						'address_id':address_id,
+						'state':state,
+						},
+				url:ajaxurl,
+				success:function(data, textStatus){ 
+					status = data.status;
+					if(status == 'success'){
+						$(".review_order_view").html(data.reviewOrderHtml)
+						$(".shipping_method_html").html(data.shippingHtml);
+					
+					}
+						
+				},
+				error:function (XMLHttpRequest, textStatus, errorThrown){
+						
+				}
+			});
+		}
+	}	
+	$(document).ready(function(){
+		currentUrl = "<?= Yii::$service->url->getUrl('checkout/onepage') ?>"
+		//优惠券
+		$(".add_coupon_submit").click(function(){
+			coupon_code = $("#id_couponcode").val();
+			coupon_type = $(".couponType").val();
+			coupon_url = "";
+			$succ_coupon_type = 0;
+			if(coupon_type == 2){
+				coupon_url = "<?=  Yii::$service->url->getUrl('checkout/cart/addcoupon'); ?>";
+				$succ_coupon_type = 1;
+			}else if(coupon_type == 1){
+				coupon_url = "<?=  Yii::$service->url->getUrl('checkout/cart/cancelcoupon'); ?>";
+				$succ_coupon_type = 2;
+			}
+			//alert(coupon_type);
+			if(!coupon_code){
+				//alert("coupon can not empty!");
+			}
+			//coupon_url = $("#discount-coupon-form").attr("action");
+			//alert(coupon_url);
+			$.ajax({
+				async:true,
+				timeout: 6000,
+				dataType: 'json', 
+				type:'post',
+				data: {"coupon_code":coupon_code},
+				url:coupon_url,
+				success:function(data, textStatus){ 
+					if(data.status == 'success'){
+						$(".couponType").val($succ_coupon_type);
+						hml = $('.add_coupon_submit').html();
+						if(hml == 'Add Coupon'){
+							$('.add_coupon_submit').html('<?= Yii::$service->page->translate->__('Cancel Coupon');?>');
+						}else{
+							$('.add_coupon_submit').html('<?= Yii::$service->page->translate->__('Add Coupon');?>');
+						}
+						$(".coupon_add_log").html("");
+						ajaxreflush();
+					}else if(data.content == 'nologin'){
+						$(".coupon_add_log").html("<?= Yii::$service->page->translate->__('you must login your account before you use coupon');?>");
+					}else{
+						$(".coupon_add_log").html(data.content);
+					}
+				},
+				error:function (XMLHttpRequest, textStatus, errorThrown){}
+			});
+			
+		});
+		
+		// 对于非登录用户,可以填写密码,进行注册账户,这里进行信息的检查。
+		$("#id_create_account").click(function(){
+			if($(this).is(':checked')){
+				email = $("input[name='billing[email]']").val();
+				if(!email){
+					$(this).prop('checked', false);
+					$(".label_create_account").html(" <?= Yii::$service->page->translate->__('email address is empty, you must Fill in email');?>");
+				}else{
+					thischeckbox = this;
+					if(!validateEmail(email)){
+						$(this).prop('checked', false);
+						$(".label_create_account").html(" <?= Yii::$service->page->translate->__('email address format is incorrect');?>");
+						
+					}else{
+						// ajax  get if  email is register
+						$.ajax({
+							async:true,
+							timeout: 6000,
+							dataType: 'json', 
+							type:'get',
+							data: {"email":email},
+							url:"<?= Yii::$service->url->getUrl('customer/ajax/isregister'); ?>",
+							success:function(data, textStatus){ 
+								if(data.registered == 2){
+									$(".label_create_account").html("");
+									$("#onestepcheckout-li-password").show();
+									$("#onestepcheckout-li-password input").addClass("required-entry");
+					
+								}else{
+									$(thischeckbox).prop('checked', false);
+									$(".label_create_account").html(" <?= Yii::$service->page->translate->__('This email is registered , you must fill in another email');?>");
+								}
+							},
+							error:function (XMLHttpRequest, textStatus, errorThrown){}
+						});
+					}
+				}
+			}else{
+				$(".label_create_account").html("");
+				$("#onestepcheckout-li-password").hide();
+				$("#onestepcheckout-li-password input").removeClass("required-entry");
+			}
+		});
+		//###########################
+		//下单(这个部分未完成。)
+		$("#onestepcheckout-place-order").click(function(){
+			$(".validation-advice").remove();
+			i = 0;
+			j = 0;
+			address_list = $(".address_list").val();
+			// shipping
+			shipment_method = $(".onestepcheckout-shipping-method-block input[name='shipping_method']:checked").val();
+			//alert(shipment_method);
+			if(!shipment_method){
+				$(".shipment-methods").after('<div style=""  class="validation-advice"><?= Yii::$service->page->translate->__('This is a required field.');?></div>');
+				j = 1;
+			}
+			
+			$("#onestepcheckout-form .required-entry").each(function(){
+				value = $(this).val();
+				if(!value){
+					i++;
+					$(this).after('<div style=""  class="validation-advice"><?= Yii::$service->page->translate->__('This is a required field.');?></div>');
+				}
+			});
+			user_email = $("#billing_address .validate-email").val();
+			if(user_email && !validateEmail(user_email)){
+				$("#billing_address .validate-email").after('<div style=""  class="validation-advice"><?= Yii::$service->page->translate->__('email address format is incorrect');?></div>');
+				i++;
+			}
+			
+			if(!i && !j){
+				//alert(333);
+				$(".onestepcheckout-place-order").addClass('visit');
+				$("#onestepcheckout-form").submit();
+			}
+			
+			
+		});
+		
+		// 国家选择后,state需要清空,重新选择或者填写
+		$(".billing_country").change(function(){
+			country = $(this).val();
+			//state   = $(".address_state").val();
+			//shipping_method = $("input[name=shipping_method]:checked").val();
+			//alert(shipping_method);
+			
+			//$(".onestepcheckout-shipping-method-block").html('<div style="text-align:center;min-height:40px;"><img src="http://www.intosmile.com/skin/default/images/ajax-loader.gif"  /></div>');
+			//$(".onestepcheckout-summary").html('<div style="text-align:center;min-height:40px;"><img src="http://www.intosmile.com/skin/default/images/ajax-loader.gif"  /></div>');
+			ajaxurl = "<?= Yii::$service->url->getUrl('checkout/onepage/changecountry'); ?>";
+			
+			$.ajax({
+				async:true,
+				timeout: 8000,
+				dataType: 'json', 
+				type:'get',
+				data: {
+						'country':country,
+						//'shipping_method':shipping_method,
+						//'state':state
+						},
+				url:ajaxurl,
+				success:function(data, textStatus){ 
+					$(".state_html").html(data.state);
+					
+				},
+				error:function (XMLHttpRequest, textStatus, errorThrown){
+						
+				}
+			});
+			ajaxreflush();	
+		});
+		
+		// state select 改变后的事件
+		$(".input-state").off("change").on("change","select.address_state",function(){
+			ajaxreflush();
+		});
+		// state input 改变后的事件
+		$(".input-state").off("blur").on("blur","input.address_state",function(){
+			ajaxreflush();
+		});
+		
+		//改变shipping methos
+		$(".onestepcheckout-column-middle").off("click").on("click","input[name=shipping_method]",function(){
+			ajaxreflush();
+		});
+		
+	});	
+	//ajaxreflush();
+<?php $this->endBlock(); ?> 
+<?php $this->registerJs($this->blocks['placeOrder'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
+
+</script>
+    
+
+	

+ 93 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/paypal/express/review/address.php

@@ -0,0 +1,93 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php  $address_list = $parentThis['address_list'];   ?>
+<?php  $cart_address_id = $parentThis['cart_address_id'];   ?>
+<?php  $country_select = $parentThis['country_select'];   ?>
+<?php  $state_html = $parentThis['state_html'];   ?>
+<?php  $cart_address = $parentThis['cart_address'];   ?>
+
+<div id="billing_address">		
+	<ul>
+		<li>
+			<p class="onestepcheckout-numbers onestepcheckout-numbers-1"><?= Yii::$service->page->translate->__('Billing address');?></p>
+		</li>
+		<li>
+			<div>
+				<ul id="billing_address_list" class="billing_address_list_new" style="">			
+					<li class="clearfix">
+						<div class="input-box input-firstname">
+							<label for="billing:firstname"><?= Yii::$service->page->translate->__('First Name');?><span class="required">*</span></label>
+							<input value="<?= $cart_address['first_name'] ?>" id="billing:firstname" name="billing[first_name]" class="required-entry input-text" type="text">
+						</div>
+						<div class="input-box input-lastname">
+							<label for="billing:lastname"><?= Yii::$service->page->translate->__('Last Name');?> <span class="required">*</span></label>
+							<input value="<?= $cart_address['last_name'] ?>" id="billing:lastname" name="billing[last_name]" class="required-entry input-text" type="text">
+						</div>
+						<div class="clear"></div>
+					</li>
+					<li class="clearfix">
+						<div  class="  input-box input-email">
+							<label for="billing:email"><?= Yii::$service->page->translate->__('Email Address');?> <span class="required">*</span></label>
+							<input  value="<?= $cart_address['email'] ?>" class="validate-email required-entry input-text" title="Email Address" id="billing:email" name="billing[email]" type="text">
+							<div class="customer_email_validation">
+							
+							</div>
+						</div>
+					</li>
+					<li>
+						<div  class="input-box input-telephone">
+							<label for="billing:telephone"><?= Yii::$service->page->translate->__('Telephone');?> <span class="required">*</span></label>
+							<input  value="<?= $cart_address['telephone'] ?>" id="billing:telephone" class="required-entry input-text" title="Telephone" name="billing[telephone]" type="text">
+						</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-address">
+							<label for="billing:street1"><?= Yii::$service->page->translate->__('Street');?><span class="required">*</span></label>
+							<input value="<?= $cart_address['street1'] ?>" class="required-entry input-text onestepcheckout-address-line" id="billing:street1" name="billing[street1]" title="Street Address 1" type="text">
+							<br>
+							<input value="<?= $cart_address['street2'] ?>" class="input-text onestepcheckout-address-line" id="billing:street2" name="billing[street2]" title="Street Address 2" type="text">
+						</div>
+					</li>
+					<li class="clearfix">
+						<div class="input-box input-country">
+							<label for="billing:country"><?= Yii::$service->page->translate->__('Country');?> <span class="required">*</span></label>
+									<select title="Country" class="billing_country validate-select" id="billing:country" name="billing[country]">
+										<?=  $country_select ?>
+									</select>
+							</div>
+					</li>
+					
+					<li class="clearfix">
+						
+						<div class="input-box input-state"><label for="billing:state" class="required"><?= Yii::$service->page->translate->__('State');?><span class="required">*</span></label>
+							<div class="state_html">
+							<?=  $state_html ?>
+							</div>
+						</div>
+					</li>
+					
+					<li class="clearfix">
+						<div class="input-box input-city">
+							<label for="billing:city"><?= Yii::$service->page->translate->__('City');?> <span class="required">*</span></label>
+							<input value="<?= $cart_address['city'] ?>" id="billing:city" class="required-entry input-text" title="City" name="billing[city]" type="text">
+						</div>
+					</li>
+					
+					<li class="clearfix">
+						<div class="input-box input-zip">
+							<label for="billing:zip"><?= Yii::$service->page->translate->__('Zip Code');?> <span class="required">*</span></label>
+							<input value="<?= $cart_address['zip'] ?>" class="validate-zip-international required-entry input-text" id="billing:zip" name="billing[zip]" title="Zip Code" type="text">
+						</div>
+					</li>
+				</ul>							
+			</div>
+		</li>
+	</ul>
+</div>

+ 91 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/paypal/express/review/review_order.php

@@ -0,0 +1,91 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+use fecshop\app\apphtml5\helper\Format;
+?>
+<?php  $cart_info = $parentThis['cart_info'];   ?>
+<?php  $currency_info = $parentThis['currency_info'];   ?>
+<?php  if(is_array( $cart_info) && !empty( $cart_info)): ?>
+<?php  $products = $cart_info['products'];  ?>
+<p class="onestepcheckout-numbers onestepcheckout-numbers-4"><?= Yii::$service->page->translate->__('Review your order') ?></p>
+<div class="onestepcheckout-summary">
+	<table class="onestepcheckout-summary">
+		<thead>
+			<tr>
+				<th class="image"></th>
+				<th class="name"><?= Yii::$service->page->translate->__('Name') ?></th>
+				<th class="qty"><?= Yii::$service->page->translate->__('Qty') ?></th>
+				<th class="total"><?= Yii::$service->page->translate->__('Subtotal') ?></th>
+			</tr>
+		</thead>
+		<tbody>
+			<?php foreach($products as $product):  ?>
+			<tr>
+				<td class='image'>
+					<a href="<?= $product['url'] ?>" title="<?= $product['name'] ?>" class="product-image">
+						<img src="<?= Yii::$service->product->image->getResize($product['image'],[100,100],false) ?>" alt="2121" width="75" height="75">
+					</a>
+					
+				</td>
+				
+				<td class="name">
+					<h2 class="product-name">
+						<a href="<?= $product['url'] ?>" title="<?= $product['name'] ?>" class="product-image">
+							<?= $product['name'] ?>
+						</a>
+					</h2>
+					<?php  if(is_array($product['custom_option_info'])):  ?>
+					<ul>
+						<?php foreach($product['custom_option_info'] as $label => $val):  ?>
+							
+							<li><?= Yii::$service->page->translate->__(ucwords($label).':') ?><?= Yii::$service->page->translate->__($val) ?> </li>
+							
+						<?php endforeach;  ?>
+					</ul>
+					<?php endif;  ?>
+				</td>
+				<td class="qty"><?= $product['qty']; ?></td>
+				<td class="total"><span class="price"><?=  $currency_info['symbol'];  ?><?= Format::price($product['product_row_price']); ?></span></td>
+			</tr>
+			<?php  endforeach; ?>			
+		</tbody>
+	</table>
+
+	<table class="onestepcheckout-totals">
+		<tbody>
+			<tr>
+				<td class="totals"><?= Yii::$service->page->translate->__('Subtotal') ?></td>
+				<td class="value">
+					<span class="price"><?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['product_total']); ?></span>       
+				</td>
+			</tr>
+			<tr>
+				<td class="totals"><?= Yii::$service->page->translate->__('Shipping Cost') ?></td>
+				<td class="value">
+					<span class="price"><?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['shipping_cost']); ?></span> 
+				</td>
+			</tr>
+			<tr>
+				<td class="totals"><?= Yii::$service->page->translate->__('Discount') ?></td>
+				<td class="value">
+					<span class="price">-<?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['coupon_cost']); ?></span> 
+				</td>
+			</tr>
+			<tr class="grand-total">
+				<td class="totals"><?= Yii::$service->page->translate->__('Grand Total') ?></td>
+				<td class="value">
+					<span class="price"><?=  $currency_info['symbol'];  ?><?= Format::price($cart_info['grand_total']) ?></span>   
+				</td>
+			</tr>						
+        </tbody>
+	</table>
+</div>
+
+<?php  endif; ?>

+ 36 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/paypal/express/review/shipping.php

@@ -0,0 +1,36 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<?php
+use fecshop\app\apphtml5\helper\Format;
+?>
+<?php  $shippings = $parentThis['shippings'];   ?>
+<div class="onestepcheckout-shipping-method">
+	<p class="onestepcheckout-numbers onestepcheckout-numbers-2"><?= Yii::$service->page->translate->__('Shipping Method') ?></p>
+	<div class="onestepcheckout-shipping-method-block">    
+		<dl class="shipment-methods">
+			<?php if(!empty($shippings) &&  is_array($shippings)){ ?>
+			<?php 	foreach($shippings as $shipping){ ?>
+			
+			<div class="shippingmethods">
+				<div class="flatrate"><?= Yii::$service->page->translate->__($shipping['label']) ?></div>
+				<div>
+					<input data-role="none" <?= $shipping['checked'] ? 'checked="checked"' : '' ?> type="radio" id="s_method_flatrate_flatrate<?= $shipping['shipping_i'] ?>" value="<?= $shipping['method'] ?>" class="validate-one-required-by-name" name="shipping_method">
+					<label for="s_method_flatrate_flatrate<?= $shipping['shipping_i'] ?>"><?= $shipping['name'] ?>
+						<strong>                 
+							<span class="price"><?= $shipping['symbol'] ?><?= Format::price($shipping['cost']); ?></span>
+						</strong>
+					</label>
+				</div>
+			</div>
+			<?php 	} ?>
+			<?php } ?>
+		</dl>
+	</div>
+</div>

+ 49 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/paypal/standard/start.php

@@ -0,0 +1,49 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<html>
+	<body>
+		<?= Yii::$service->page->translate->__('You will be redirected to the PayPal website in a few seconds...');  ?>
+		<img src="<?= $loader_img  ?>" />
+		<?php // https://www.paypal.com/cgi-bin/webscr ?>
+		<form action="<?= $payment_url ?>" id="paypal_standard_checkout" name="paypal_standard_checkout" method="POST">
+			<input id="business" name="business" value="<?= $account ?>" type="hidden"/>
+			<input id="invoice" name="invoice" value="<?= $order['increment_id']  ?>" type="hidden"/>
+			<input id="currency_code" name="currency_code" value="<?= $order['order_currency_code']  ?>" type="hidden"/>
+			<input id="paymentaction" name="paymentaction" value="<?= $payment_action  ?>" type="hidden"/>
+			<input id="return" name="return" value="<?= $success_redirect_url  ?>" type="hidden"/>
+			<input id="cancel_return" name="cancel_return" value="<?= $cancel_url  ?>" type="hidden"/>
+			<input id="notify_url" name="notify_url" value="<?= $ipn_url  ?>" type="hidden"/>
+
+			<input id="cpp_header_image" name="cpp_header_image" value="<?= $paypal_logo_img  ?>" type="hidden"/>
+			<input id="item_name" name="item_name" value="<?= $store_name  ?>" type="hidden"/>
+			<input id="charset" name="charset" value="utf-8" type="hidden"/>
+			
+			<input id="amount" name="amount" value="<?= $order['grand_total'] ? (str_replace(',','',number_format($order['grand_total'],2))) : number_format(0,2)  ?>" type="hidden"/>
+			<input id="tax" name="tax" value="<?= $tax  ?>" type="hidden"/>
+			<input id="shipping" name="shipping" value="<?= $order['shipping_total'] ? (str_replace(',','',number_format($order['shipping_total'],2))) : number_format(0,2)  ?>" type="hidden"/>
+			<input id="discount_amount" name="discount_amount" value="<?= $order['subtotal_with_discount'] ? (str_replace(',','',number_format($order['subtotal_with_discount'],2))) : number_format(0,2)  ?>" type="hidden"/>
+			<?= $product_items_and_shipping ?>
+			<input id="cmd" name="cmd" value="<?= $cmd  ?>" type="hidden"/>
+			<input id="upload" name="upload" value="<?= $upload  ?>" type="hidden"/>
+			<input id="tax_cart" name="tax_cart" value="<?= $tax_cart  ?>" type="hidden"/>
+			<input id="discount_amount_cart" name="discount_amount_cart" value="<?= $order['subtotal_with_discount'] ? (str_replace(',','',number_format($order['subtotal_with_discount'],2))) : number_format(0,2)  ?>" type="hidden"/>
+			<?= $address_html ?>
+			<span class="field-row">
+			<input id="submit_to_paypal_button" name="" value="<?= Yii::$service->page->translate->__('Click here if you are not redirected within 10 seconds ...');  ?>" type="submit" class=" submit"/>
+			</span>
+		</form>
+		<script type="text/javascript">
+			function func(){
+				document.getElementById("paypal_standard_checkout").submit();
+			}
+			window.onload=func;
+		</script>
+	</body>
+</html>

+ 18 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/success.php

@@ -0,0 +1,18 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<div class="main container one-column">
+	<div class="col-main">
+		<div>
+			Order payment success,
+			Your Order Increment Id:<?= $increment_id ?>
+		</div>
+	
+	</div>
+</div>

+ 30 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/success/index.php

@@ -0,0 +1,30 @@
+<?php
+/**
+ * FecShop file.
+ *
+ * @link http://www.fecshop.com/
+ * @copyright Copyright (c) 2016 FecShop Software LLC
+ * @license http://www.fecshop.com/license/
+ */
+?>
+<style>
+.paypal_success{line-height:24px;}
+</style>
+<div class="main container one-column">
+	<div class="col-main">
+		<div class="paypal_success">
+			<div class="page-title">
+				
+			</div>
+			<h2 class="sub-title"><?= Yii::$service->page->translate->__('Your order has been received,Thank you for your purchase!'); ?></h2>
+			
+			<p><?= Yii::$service->page->translate->__('Your order # is:'); ?> <?= $increment_id ?>.</p>
+			<p><?= Yii::$service->page->translate->__('You will receive an order confirmation email with details of your order and a link to track its progress.'); ?></p>
+
+			<div class="buttons-set">
+				<button type="button" class="button" title="Continue Shopping" onclick="window.location='<?= Yii::$service->url->homeUrl();  ?>'"><span><span><?= Yii::$service->page->translate->__('Continue Shopping'); ?></span></span></button>
+			</div>
+			<?php // var_dump($order); ?>
+		</div>
+	</div>
+</div>

+ 0 - 0
addons/fecmall/furnilife_theme/app/apphtml5/theme/furnilife/payment/wxpayh5/review.php


部分文件因为文件数量过多而无法显示