product.php 15.6 KB
<?php
    //    use common\modules\comment\models\Comment;
    //    use common\modules\comment\models\Rating;
    //    use common\modules\comment\widgets\CommentWidget;
    use common\modules\comment\widgets\CommentWidget;
    use kartik\rating\StarRating;
    use yii\helpers\Html;
    use yii\widgets\ActiveForm;
    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');
?>

<?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><span id='old_cost'><?= $variant->price_old ?></span></span> грн.</strike>
                                <span class="cost"><span itemprop="price"><span id='cost'><?= $variant->price ?></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 ) && $product->averageRating->value) {
                                ?>
                                <div class="rateit" data-rateit-value="<?php echo $product->averageRating->value; ?>" data-rateit-readonly="true" data-rateit-ispreset="true"></div>
                                <?php
                            }
                        ?>
                        <p><a href="#artbox-comment">
                                <?php
                                    $comment_count = count($product->comments);
                                    if($comment_count) {
                                        echo "Отзывов: " . $comment_count;
                                    } else {
                                        echo "Оставть отзыв";
                                    }
                                ?>
                            </a></p>
                    </div>
                    <br>
                    <?php
                        /* Share buttons
                        ?>
                        <div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,gplus,twitter" data-size="s"></div>
                        <?php
                        */
                    ?>
                </div>
                <div class="labels_block">
                    <div class="labels_item">
                        <img src="/img/icon_100_original_01.png" alt="">
                    </div>
                    <div class="labels_item">
                        <img src="/img/icon_100_quaranty_01.png" alt="">
                    </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" style="padding-bottom:25px">
            <?php
                echo CommentWidget::widget([
                    'model' => $product,
                ]);
            ?>
            <div class="both"></div>
        </div>
        <div class="both"></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');
?>