product.php 14.2 KB
<?php
    use common\modules\comment\models\Comment;
    use common\modules\comment\models\Rating;
    use common\modules\comment\widgets\CommentWidget;
    use kartik\rating\StarRating;
    use yii\widgets\Breadcrumbs;
use yii\web\View;
use yii\helpers\Url;
use frontend\widgets\Seo;
    
$this->params['seo']['key'] = $product->category->categoryName->value;
$this->params['seo']['fields']['name'] = $product->fullname;
$this->params['seo']['h1'] = !empty(Seo::widget([ 'row'=>'h1'])) ? Seo::widget([ 'row'=>'h1']) : $product->fullname;

//$this->params['seo']['title'] =  "Купить " . substr($product->category->categoryName->value, 0, -2) . " " . $product->fullname . " в Киеве, Харькове, Украине: цены, отзывы - Rukzachok.com.ua";
//$this->params['seo']['description'] = "Заказать " . substr($product->category->categoryName->value, 0, -2) . " " . $product->fullname . " - самые модные и стильные рюкзаки в Украине по лучшим ценам. Интернет магазин рюкзаков Rukzachok.com.ua";
$this->title = $product->fullname;
//$this->title = (! empty($product->meta_title)) ? $product->meta_title : $product->fullname;
//$this->registerMetaTag (['name' => 'description', 'content' => ((! empty($product->meta_description)) ? $product->meta_description : $product->fullname)]);
//$this->registerMetaTag (['name' => 'keywords', 'content' => $product->meta_keywords]);

//foreach($product->category->getParents()->all() as $parent) {
//    $this->params['breadcrumbs'][] = ['label' => $parent->categoryName->value, 'url' => ['catalog/category', 'category' => $parent]];
//}
$this->params['breadcrumbs'][] = ['label' => 'Каталог', 'url' => ['catalog/category']];
$this->params['breadcrumbs'][] = ['label' => $product->category->categoryName->value, 'url' => ['catalog/category', 'category' => $product->category]];
$this->params['breadcrumbs'][] = $product->fullname .' #'. $product->enabledVariants[0]->sku;

$this->registerJs ('

        var checkData = function($index)
        {
            var sourceNew = $(".productLeftBar .product_mod > li").eq($index);
            $(".productLeftBar .product_mod > li").removeClass("active")
            sourceNew.addClass("active");
            var $source = sourceNew.find("a");
            var $target = $(".productLeftBar .cost_box");

            $("#cost").text($source.data("cost"));
            $("#old_cost").text($source.data("old_cost"));

            if (parseInt ($source.data("old_cost")) == 0)
            {
                $target.find("strike").hide();
            }
            else
            {
                $target.find("strike").show();
            }

            $("#product_id").val($source.data("id"));
            $("#art").text($source.data("art"));
            $("#color").text($source.data("color"));
            $("#pic").attr("src",$source.data("image"));
            $("#picoriginal").attr("href",$source.data("imageoriginal"));
        }

        $(".product_mod > li").click(function()
        {
            checkData($(this).index());

            Shadowbox.setup($("#picoriginal"));

            return false;
        });

        checkData(0);

    ', View::POS_READY, 'fasovka');

$this->registerJs ("
        $('#nav_product li a').addClass('active');
        $('#nav_product li').find('.info').toggle();

        $('#nav_product li a').bind('click',function()
        {
            if($(this).parent().find('.info').css('display')=='none')$(this).addClass('active');
            else $(this).removeClass('active');
            $(this).parent().find('.info').toggle();

            return false;
        });
    ", View::POS_READY, 'nav_product');

$this->registerCssFile (Yii::$app->request->BaseUrl . '/js/shadowbox-3.0.3/shadowbox.css');
$this->registerJsFile (Yii::$app->request->baseUrl . '/js/shadowbox-3.0.3/shadowbox.js', ['position' => View::POS_END, 'depends' => ['yii\web\JqueryAsset']]);
$this->registerJs ("
        Shadowbox.init({

    });
    ", View::POS_READY, 'Shadowbox');
?>
    
<nav class="bread-crumbs">
    <?= Breadcrumbs::widget ([
        'links' => $this->params['breadcrumbs'],
    ])
    ?>
    <div class="both"></div>
</nav>
<?php if ($flash = Yii::$app->session->getFlash ('success')): ?>
    <div class="alert-success"><?= $flash ?></div>
<?php endif; ?>
<div class="loyout">
    <div itemscope itemtype="http://schema.org/Product">
    <div class="productLeftBar">
        <div itemprop="name"><h1><?= Seo::widget([ 'row'=>'h1'])?></h1></div>
        <?php foreach($product->enabledVariantsGrouped as $variantGroup) :?>
        <div class="begin"><?= $variantGroup->name2?></div>
        <ul class="product_mod">
            <?php foreach ($variantGroup->_variants as $variant): ?>
                <li>
                    <a id='m<?= $variant->product_variant_id ?>' href="#<?=$variant->product_variant_id ?>"
                       data-cost="<?= $variant->price ?>"
                       data-old_cost="<?= $variant->price_old ?>" data-id="<?= $variant->product_variant_id ?>" data-art="<?= $variant->sku ?>"
                       data-color="<?= $variant->name ?>"
                       data-image="<?= \common\components\artboximage\ArtboxImageHelper::getImageSrc($variant->imageUrl, 'product_view') ?>"
                       data-imageoriginal="<?= $variant->imageUrl ?>"
                       title="<?= $product->fullname ?>">
                        <?= \common\components\artboximage\ArtboxImageHelper::getImage($variant->imageUrl, 'product_variant', ['alt' => $product->category->categoryName->value . ' ' .
                            $product->fullname, 'title' => $product->category->categoryName->value . ' ' .
                            $product->fullname])?>
                    </a>
                </li>
            <?php endforeach; ?>
        </ul>
        <div class="both"></div>
        <?php endforeach; ?>

        <div class="cost_box product_read_">
            <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
            <div class='params'>код: <span id='art'></span><br/> цвет: <span id='color'></span></div>
            <div class="product_read_price">
                <div class="w">
                    <strike><span itemprop="price"><span id='old_cost'>0</span></span> грн.</strike>
                    <span class="cost"><span itemprop="price"><span id='cost'>0</span></span> <span class="valute">грн.</span></span>
                    <meta itemprop="priceCurrency" content = "UAH">
                </div>
                <input type='hidden' id='product_id'/>
                <a href="#" rel='product' class="link_buy fl">Купить</a>
                <div class="both"></div>
            </div>
            </div>

            <div class="product_service">
                <ul>
                <?php if (Yii::$app->user->id) :?>
                    <li class="item1"><a href="<?= Url::to (['iam/share', 'id' => $product->product_id]) ?>">Добавить в закладки</a></li>
                <?php endif?>
                <?php if (FALSE && Yii::$app->user->id) :?>
                    <li class="item2"><a href="<?= Url::to (['iam/price', 'id' => $product->product_id]) ?>">Узнать о снижение цены</a></li>
                <?php endif?>
                <?php if (FALSE) :?>
                    <li class="item3"><a href="<?= Url::to (['products/compare', 'id' => $product->product_id]) ?>">Добавить в сравнение</a></li>
                <?php endif?>
                </ul>
            </div>
            <div class="artbox_comment_description">
                <?php
                if(!empty($product->averageRating)) {
                    echo StarRating::widget([
                        'name'          => 'rating_product',
                        'value'         => $product->averageRating->value,
                        'pluginOptions' => [
                            'displayOnly' => true,
                            'size'        => 'xxs',
                            'min'         => 0,
                            'max'         => 5,
                            'stars'       => 5,
                        ],
                    ]);
                }
                ?>
                <p><a href="#artbox-comment">
                        <?php
                            $comment_count = count($product->comments);
                            if($comment_count) {
                                echo "Отзывов: ".$comment_count;
                            } else {
                                echo "Оставть отзыв";
                            }
                        ?>
                    </a></p>
            </div>
            <br>
            <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,gplus,twitter" data-size="s"></div>
        </div>
        <?php /*
        <div class="product_service">
            <ul>
                <li class="item1"><a href="<?= Url::to (['iam/share', 'id' => $product->product_id]) ?>">Добавить в закладки</a>
                </li>
                <li class="item2"><a href="<?= Url::to (['iam/price', 'id' => $product->product_id]) ?>">Узнать о снижение
                        цены</a></li>
                <li class="item3"><a href="<?= Url::to (['products/compare', 'id' => $product->product_id]) ?>">Добавить в
                        сравнение</a></li>
            </ul>
        </div>*/?>
    </div>

    <div class="productRightBar">
        <ul id="nav_product">
            <li><a href="#">Характеристики</a>
                <div class="info">
                    <p>Бренд: <?= $product->brand->name ?></p>
                    <?php foreach ($product->properties as $group): ?>
                        <p><?= $group->name ?> <?php foreach($group->_options as $option) :?>&nbsp;<?= $option->ValueRenderHTML?><?php endforeach?></p>
                    <?php endforeach; ?>
                </div>
            </li>
            <li><a href="#">Описание</a>
                <div itemprop="description"> <div class="info">
                    <?= $product->description ?>
                </div></div>
            </li>
            <?php if(!empty($product->video) && strpos($product->video, '.jpg') === FALSE && strpos($product->video, '.png') === FALSE) :?>
                <li><a href="#">Видео</a>
                    <div class="info product-thumb-video">
                        <?php if (strpos($product->video, '<iframe') !== FALSE || strpos($product->video, '<object') !== FALSE) :?>
                            <?= $product->video?>
                        <?php else :?>
                            <?= \cics\widgets\VideoEmbed::widget(['responsive' => false, 'url' => $product->video]) ?>
                        <?php endif?>
                    </div>
                </li>
            <?php endif?>
        </ul>
    </div>
    </div>
    <div class="content">
        <div class="pic">
            <center>
                <a href="#" rel="shadowbox[gal]" id="picoriginal"><?= \common\components\artboximage\ArtboxImageHelper::getImage($product->enabledVariants[0]->imageUrl, 'product_view',['id'=>'pic', 'alt' => $product->category->categoryName->value . ' ' .
                        $product->fullname, 'title' => $product->category->categoryName->value . ' ' .
                        $product->fullname])?></a>
            </center>
        </div>
        <ul class="product_colors">
            <?php foreach ($product->images as $image): ?>
                <li><a href="<?= $image->imageUrl ?>" rel="shadowbox[gal]">
                        <?= \common\components\artboximage\ArtboxImageHelper::getImage($image->imageUrl, 'product_trumb2',['alt' => $product->category->categoryName->value . ' ' .
                            $product->fullname, 'title' => $product->category->categoryName->value . ' ' .
                            $product->fullname])?>
                    </a></li>
            <?php endforeach; ?>
        </ul>
    </div>
    <div class="both"></div>
    <div class="comment-wrapper">
        <?php
            echo CommentWidget::widget([
                    'comment_class' => Comment::className(),
                    'rating_class' => Rating::className(),
                    'success_text' => 'Комментарий успешно добавлен',
                    'class_options' => [
                        'scenario' => \Yii::$app->user->isGuest?Comment::SCENARIO_GUEST:Comment::SCENARIO_USER,
                        'status' => Comment::STATUS_ACTIVE,
                        'user_id' => \Yii::$app->user->isGuest?NULL:\Yii::$app->user->id,
                    ],
                    'model' => $product->className(),
                    'model_id' => $product->product_id,
                    'list_options'  => [
                        'view' => 'list-comment-review',
                    ],
                    'form_options'  => [
                        'view' => 'form-comment-review',
                        'tag'  => 'span',
                    ],
                    'options'       => [
                        'class' => 'proektant-comments-wr style',
                        'id' => 'artbox-comment',
                    ],
                ]);
        ?>
    </div>
    
    <?= \common\modules\product\widgets\similarProducts::widget(['product' => $product])?>
    <?= \common\modules\product\widgets\specialProducts::widget(['type' => 'promo'])?>
    <?= \common\modules\product\widgets\specialProducts::widget(['type' => 'new'])?>
    <?= \common\modules\product\widgets\specialProducts::widget(['type' => 'top'])?>
    <?= \common\modules\product\widgets\lastProducts::widget()?>
</div>
<?php
$this->registerJs ("
      var productHash = window.location.hash;
            productHash = productHash.replace('#','')

            var productUl = $('ul.product_mod li')
            var productA = productUl.find('a#'+productHash)
            productUl.removeClass('active')
            productA.parent().addClass('active')
            var dataLink = productA.attr('data-imageoriginal')
            var dataImg = productA.attr('data-image')

            $('#pic').attr('src',dataImg)
            $('#pic').parent().attr('href',dataLink)
    ", View::POS_READY, 'new_script');
?>