PageRenderTime 53ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/views/union_shop/product.php

https://gitlab.com/dram1008/galaxysss
PHP | 214 lines | 193 code | 14 blank | 7 comment | 21 complexity | 9adf217c3f6c1ab650e1f647f115fd94 MD5 | raw file
  1. <?php
  2. use yii\helpers\Html;
  3. use yii\bootstrap\ButtonDropdown;
  4. use yii\helpers\Url;
  5. use cs\services\Url as csUrl;
  6. use cs\services\Str;
  7. use yii\widgets\Breadcrumbs;
  8. /** @var $this yii\web\View */
  9. /** @var $union \app\models\Union */
  10. /** @var $shop \app\models\Shop */
  11. /** @var $breadcrumbs array */
  12. /** @var $category \app\models\UnionCategory */
  13. /** @var $treeNode \app\models\Shop\TreeNode */
  14. /** @var $product \app\models\Shop\Product */
  15. $this->title = $product->getField('name');
  16. $this->params['breadcrumbs'][] = $this->title;
  17. $isShowWindow = 1;
  18. if (Yii::$app->user->isGuest) {
  19. if (Yii::$app->session->get('shop.help_window_already_showed', 0) == 1) {
  20. $isShowWindow = 0;
  21. }
  22. } else {
  23. if (Yii::$app->user->identity->get('is_show_shop_help_window', 0) == 0) {
  24. if (Yii::$app->session->get('shop.help_window_already_showed', 0) == 1) {
  25. $isShowWindow = 0;
  26. }
  27. } else {
  28. $isShowWindow = 0;
  29. }
  30. }
  31. $url = Url::to(['shop/basket']);
  32. $urlAdd = Url::to(['shop/basket_add']);
  33. $this->registerJs(<<<JS
  34. var isShowedWindow = false;
  35. $('.buttonAddToCart').click(function() {
  36. var id = $(this).data('id');
  37. ajaxJson({
  38. url: '{$urlAdd}',
  39. data: {
  40. id: id
  41. },
  42. success: function(ret) {
  43. var basket = $('#basketCount');
  44. var span;
  45. if (basket.length > 0) {
  46. var count = basket.html();
  47. basket.html(ret);
  48. span = $('#basketCount').popover({
  49. content: 'Товар добавлен',
  50. placement: 'bottom'
  51. });
  52. span.popover('show');
  53. window.setTimeout(function () {
  54. span.popover('hide');
  55. if (!isShowedWindow) {
  56. if ({$isShowWindow} == 1) {
  57. GSSS.modal('#modalHelpShop2', {
  58. callbacks: {
  59. close: function() {
  60. if (!$('#isShowModalHelp').is(':checked')) {
  61. ajaxJson({
  62. url: '/shop/setNoHelpWindow'
  63. });
  64. }
  65. }
  66. }
  67. });
  68. }
  69. }
  70. isShowedWindow = true;
  71. }, 2000);
  72. } else {
  73. var userMenu = $('#userBlockLi');
  74. span = $('<span>', {
  75. id: 'basketCount',
  76. class: 'label label-success',
  77. title: 'Корзина'
  78. }).tooltip({placement:"left"}).html(ret).popover({
  79. content: 'Товар добавлен',
  80. placement: 'bottom'
  81. });
  82. var liBasket = $('<li>').append(
  83. $('<a>', {
  84. href: '{$url}',
  85. style: 'padding-right: 0px; padding-bottom: 0px;'
  86. }). append(
  87. span
  88. )
  89. );
  90. liBasket.insertBefore(userMenu);
  91. span.popover('show');
  92. window.setTimeout(function () {
  93. span.popover('hide');
  94. if (!isShowedWindow) {
  95. if ({$isShowWindow} == 1) {
  96. GSSS.modal('#modalHelpShop2', {
  97. callbacks: {
  98. close: function() {
  99. if (!$('#isShowModalHelp').is(':checked')) {
  100. ajaxJson({
  101. url: '/shop/setNoHelpWindow'
  102. });
  103. }
  104. }
  105. }
  106. });
  107. }
  108. }
  109. isShowedWindow = true;
  110. }, 2000);
  111. }
  112. }
  113. });
  114. });
  115. JS
  116. );
  117. ?>
  118. <div class="container">
  119. <div class="col-lg-12">
  120. <h1 class="page-header"><?= \yii\helpers\Html::encode($this->title) ?></h1>
  121. <?= \cs\Widget\BreadCrumbs\BreadCrumbs::widget([
  122. 'items' => $breadcrumbs
  123. ]) ?>
  124. <hr>
  125. </div>
  126. <div class="col-lg-4">
  127. <img class="img-thumbnail" src="<?= $product->getImage() ?>">
  128. <hr>
  129. <p class="lead">Цена: <?= Yii::$app->formatter->asDecimal($product->getField('price'), 0) ?> руб</p>
  130. <hr>
  131. <p>
  132. <button
  133. class="btn btn-success btn-lg buttonAddToCart"
  134. data-id="<?= $product->getId() ?>"
  135. style="width: 100%;"
  136. >В корзину
  137. </button>
  138. </p>
  139. </div>
  140. <div class="col-lg-8">
  141. <p><?= $product->getField('content') ?></p>
  142. <button
  143. class="btn btn-success btn-lg buttonAddToCart"
  144. data-id="<?= $product->getId() ?>"
  145. style="width: 100%; margin-bottom: 50px;margin-top: 50px;"
  146. >Купить
  147. </button>
  148. <?php if ($product->getImages()->exists()) { ?>
  149. <div class="row">
  150. <h2 class="page-header">Изображения</h2>
  151. <?php
  152. \app\assets\SlideShow\Asset::register($this);
  153. ?>
  154. <?php foreach ($product->getImages()->andWhere(['moderation_status' => 1])->all() as $item) { ?>
  155. <div class="col-lg-4" style="margin-bottom: 20px;">
  156. <a href="<?= \cs\Widget\FileUpload2\FileUpload::getOriginal($item['image']) ?>"
  157. rel="lightbox[example]" class="highslide" onclick="return hs.expand(this)">
  158. <img src="<?= $item['image'] ?>" width="100%">
  159. </a>
  160. </div>
  161. <?php } ?>
  162. </div>
  163. <?php } ?>
  164. <hr>
  165. <?= $this->render('../blocks/share', [
  166. 'image' => \cs\Widget\FileUpload2\FileUpload::getOriginal(Url::to($product->getImage(), true), false),
  167. 'url' => Url::current([], true),
  168. 'title' => $product->getField('name'),
  169. 'description' => \app\services\GsssHtml::getMiniText($product->getField('content')),
  170. ]) ?>
  171. </div>
  172. </div>
  173. <?php if ($isShowWindow) { ?>
  174. <?php
  175. \app\assets\ModalBoxNew\Asset::register($this);
  176. ?>
  177. <div id="modalHelpShop2" class="zoom-anim-dialog mfp-hide mfp-dialog">
  178. <h2>Как совершить покупку</h2>
  179. <div style="margin-top: 50px;margin-bottom: 50px;">
  180. <p>Сейчас выбранный вами товар попал в корзину.</p>
  181. <img src="/images/union_shop/product/modal_basket.png" class="thumbnail" style="width: 100%;">
  182. <p>Вы можете продолжить выбирать товары или перейти к <a href="/shop/order">оформлениею заказа</a>.</p>
  183. <p>Просмотреть <a href="/shop/basket">содержимое корзины</a> вы можете кликнув по зеленому значку.</p>
  184. </div>
  185. <?php
  186. \cs\assets\CheckBox\Asset::register($this);
  187. ?>
  188. <table>
  189. <tr>
  190. <td style="vertical-align: center; padding-right: 10px;">
  191. Показывать это окно в дальнейшем?
  192. </td>
  193. <td>
  194. <input type="checkbox" data-toggle="toggle" data-on="Да" data-off="Нет" id="isShowModalHelp"
  195. checked="checked">
  196. </td>
  197. </tr>
  198. </table>
  199. </div>
  200. <?php } ?>