view.php 3.95 KB
<?php
    
    use common\modules\product\models\Category;
    use common\modules\product\models\Product;
    use common\modules\product\models\ProductVariant;
    use common\modules\rubrication\models\TaxGroup;
    use yii\helpers\ArrayHelper;
    use yii\helpers\Html;
    use yii\web\View;
    use yii\widgets\DetailView;
    
    /**
     * @var View             $this
     * @var Product          $model
     * @var Category[]       $categories
     * @var TaxGroup[]       $properties
     * @var ProductVariant[] $variants
     */
    
    $this->title = $model->lang->name;
    $this->params[ 'breadcrumbs' ][] = [
        'label' => Yii::t('product', 'Products'),
        'url'   => [ 'index' ],
    ];
    $this->params[ 'breadcrumbs' ][] = $this->title;
    $properties_string = '';
    foreach($properties as $property) {
        $property_list = '';
        foreach($property->options as $option) {
            $property_list .= Html::tag('li', $option->lang->value);
        }
        $properties_string .= Html::tag('p', $property->lang->name) . Html::tag('ul', $property_list);
    }
    $variants_string = '';
    foreach($variants as $variant) {
        $variants_string .= Html::a($variant->lang->name, [
                '/product/variant/view',
                'id' => $variant->product_variant_id,
            ]) . '<br>';
    }
?>
<div class="product-view">
    
    <h1><?= Html::encode($this->title) ?></h1>
    
    <p>
        <?= Html::a(Yii::t('product', 'Update'), [
            'update',
            'id' => $model->product_id,
        ], [ 'class' => 'btn btn-primary' ]) ?>
        <?= Html::a(Yii::t('product', 'Delete'), [
            'delete',
            'id' => $model->product_id,
        ], [
            'class' => 'btn btn-danger',
            'data'  => [
                'confirm' => Yii::t('product', 'Are you sure you want to delete this item?'),
                'method'  => 'post',
            ],
        ]) ?>
        <?= Html::a(Yii::t('product', 'Variants'), [
            '/product/variant/index',
            'product_id' => $model->product_id,
        ], [ 'class' => 'btn btn-info' ]) ?>
    </p>
    
    <?= DetailView::widget([
        'model'      => $model,
        'attributes' => [
            'product_id',
            'brand.lang.name',
            [
                'label'  => \Yii::t('app', 'Categories'),
                'value'  => implode('<br>', ArrayHelper::getColumn($categories, 'lang.name')),
                'format' => 'html',
            ],
            [
                'attribute' => 'is_top',
                'value'     => $model->is_top ? Html::tag('span', '', [ 'class' => 'glyphicon glyphicon-ok' ]) : Html::tag('span', '', [ 'class' => 'glyphicon glyphicon-remove' ]),
                'format'    => 'html',
            ],
            [
                'attribute' => 'is_new',
                'value'     => $model->is_new ? Html::tag('span', '', [ 'class' => 'glyphicon glyphicon-ok' ]) : Html::tag('span', '', [ 'class' => 'glyphicon glyphicon-remove' ]),
                'format'    => 'html',
            ],
            [
                'attribute' => 'akciya',
                'value'     => $model->akciya ? Html::tag('span', '', [ 'class' => 'glyphicon glyphicon-ok' ]) : Html::tag('span', '', [ 'class' => 'glyphicon glyphicon-remove' ]),
                'format'    => 'html',
            ],
            [
                'attribute' => 'video',
                'format'    => 'html',
            ],
            [
                'label'  => \Yii::t('app', 'Properties'),
                'value'  => $properties_string,
                'format' => 'html',
            ],
            [
                'label'  => \Yii::t('app', 'Variants'),
                'value'  => $variants_string,
                'format' => 'html',
            ],
            'lang.description:html',
            'image.imageUrl:image',
        ],
    ]) ?>

</div>