portfolio-view.php 11.5 KB
<?php

    use common\models\Portfolio;
    use common\models\PortfolioUser;
    use common\models\User;
    use kartik\rating\StarRating;
    use yii\helpers\ArrayHelper;
    use yii\helpers\Html;
    use yii\helpers\Url;
    use yii\web\ViewAction;
    use yii\web\View;
    use yii\widgets\Pjax;

    /**
     * @var ViewAction    $this
     * @var User          $user
     * @var Portfolio     $portfolio
     * @var View          $this
     * @var PortfolioUser $portfolio_user
     */
    $this->params[ 'user' ] = $user;
    $this->title = 'Proektant.net';

    $rating = $portfolio->getRatingValue();
    if(!empty( $portfolio_user )) {
        $portfolio_user_gallery = $portfolio->ShowGallery($portfolio_user->gallery->photo);
    }
?>
<div class="portfolio-new-page-wrapper style">
    <?php
        Pjax::begin();
        if(!empty( $portfolio_user )) {
            echo Html::a('Вернуться к основной запаси', [
                'company/portfolio-view',
                'company_id'   => $user->id,
                'portfolio_id' => $portfolio->portfolio_id,
            ]);
        }
    ?>
    <div class="new-portfolio-bg style ">
        <?php
            if(!empty( $portfolio_user )) {
                echo Html::img($portfolio->minImg(ArrayHelper::getValue($portfolio_user_gallery, 0, ''), '720', '280'));
            } else {
                echo Html::img($portfolio->minImg($portfolio->cover, '720', '280'));
            }
        ?>
    </div>
    <div class="new-portfolio-icons-rating-wr style">
        <div class="new-portfolio-icons">
            <div class="portfolio-project-views-wr">
                <div class="portfolio-project-views ico-views-bl">
                    <div class="portfolio-project-views-img-wr">
                        <div class="portfolio-project-views-img">
                            <img src="/images/portfolio-project/ico-1.png"></div>
                    </div>
                    <div class="portfolio-project-views-txt"><?= $portfolio->view_count ?></div>
                </div>
                <div class="portfolio-project-rati ico-views-bl">
                    <div class="portfolio-project-views-img-wr">
                        <div class="portfolio-project-views-img">
                            <img src="/images/portfolio-project/ico-2.png"></div>
                    </div>
                    <div class="portfolio-project-views-txt"><?= ( !empty( $rating ) ? $rating : 'Нет' ) ?></div>
                </div>
                <div class="ico-views-bl">
                    <div class="portfolio-project-views-img-wr">
                        <div class="portfolio-project-views-img">
                            <img src="/images/portfolio-project/ico-3.png"></div>
                    </div>
                    <div class="portfolio-project-views-txt"><?= count($portfolio->comments) ?></div>
                </div>
            </div>
        </div>
        <div class="new-portfolio-rating">
            <?php
                echo StarRating::widget([
                    'name'          => 'rating_portfolio',
                    'value'         => $rating,
                    'pluginOptions' => [
                        'displayOnly' => true,
                        'size'        => 'xxs',
                        'min'         => 0,
                        'max'         => 10,
                        'stars'       => 10,
                    ],
                ]);
            ?>
        </div>
    </div>

    <div class="new-portf-slider-wr style">
        <div class="new-portf-slider-title"><?= $portfolio->name ?></div>
        <?php
            if(!empty( $portfolio_user_gallery )) {
                ?>
                <div class="new-portf-slider style">
                    <div class="slider-video-wr">
                        <div id="demo5" class="scroll-img">
                            <ul>
                                <?php
                                    foreach($portfolio_user_gallery as $one_photo) {
                                        ?>
                                        <li><img src="<?= $one_photo ?>" alt=""/></li>
                                        <?php
                                    }
                                ?>
                            </ul>
                        </div>
                        <div id="demo5-btn" class="text-center">
                            <button class="btn" id="demo5-backward"></button>
                            <button class="btn" id="demo5-forward"></button>
                        </div>
                    </div>
                </div>
                <?php
            } elseif(empty( $portfolio_user ) && ( !empty( $portfolio->gallery ) || !empty( $portfolio->gallery->photo ) )) {
                ?>
                <div class="new-portf-slider style">
                    <div class="slider-video-wr">
                        <div id="demo5" class="scroll-img">
                            <ul>
                                <?php
                                    foreach($portfolio->ShowGallery($portfolio->gallery->photo) as $one_photo) {
                                        ?>
                                        <li>
                                            <img src="<?= $portfolio->minImg($one_photo, 210, 150) ?>" alt=""/>
                                        </li>
                                        <?php
                                    }
                                ?>
                            </ul>
                        </div>
                        <div id="demo5-btn" class="text-center">
                            <button class="btn" id="demo5-backward"></button>
                            <button class="btn" id="demo5-forward"></button>
                        </div>
                    </div>
                </div>
                <?php
            }
        ?>
    </div>

    <div class="new-portfolio-txt-wrapper style">
        <div class="new-portfolio-excerpt style">
            <?php
                if(!empty( $portfolio_user ) && !empty( $portfolio_user->portfolioGallery ) && !empty( $portfolio_user->portfolioGallery->caption )) {
                    echo Html::tag('div', $portfolio_user->portfolioGallery->caption, [ 'class' => 'new-portfolio-editor' ]);
                } else {
                    echo Html::tag('div', $portfolio->preview, [ 'class' => 'new-portfolio-editor' ]);
                    if(!empty( $portfolio->description )) {
                        ?>
                        <div class="new-portfolio-see-all style"><span>Развернуть</span></div>
                        <?php
                    }
                }
            ?>
        </div>
        <?php
            if(empty( $portfolio_user ) && !empty( $portfolio->description )) {
                ?>
                <div class="new-portfolio-txt">
                    <div class="new-portfolio-editor">
                        <?= $portfolio->description ?>
                    </div>
                    <div class="new-portfolio-see-all style"><span>Свернуть</span></div>
                </div>
                <?php
            }
        ?>
    </div>
    <?php
        if(!empty( $portfolio->portfolioUsers )) {
            ?>
            <div class="new-portf-slider-wr style">
                <p>Участники проекта:</p>
                <?php
                    foreach($portfolio->getPortfolioUsers()
                                      ->where([ 'status' => 1 ])
                                      ->with('gallery')
                                      ->all() as $portfolioUser) {
                        if(!empty( $portfolioUser->gallery )) {
                            $gallery = $portfolio->ShowGallery($portfolioUser->gallery->photo);
                        }
                        ?>
                        <a href="<?= Url::to([
                            'performer/portfolio-view',
                            'performer_id'   => $user->id,
                            'portfolio_id'   => $portfolio->portfolio_id,
                            'portfolio_user' => $portfolioUser->portfolio_user_id,
                        ]) ?>">
                            <figure class="portfolio_user_figure">
                                <p><?= Html::img($portfolio->minImg(ArrayHelper::getValue($gallery, 0, ''), 'original'), [ 'class' => 'portfolio_user_image' ]) ?></p>
                                <figcaption class="portfolio_user_caption"><?= $portfolioUser->user->name . ': ' . $portfolioUser->portfolioGallery->caption ?></figcaption>
                            </figure>
                        </a>
                        <?php
                    }
                ?>
            </div>
            <?php
        }
        Pjax::end();
    ?>
    <?php
        echo \common\modules\comment\widgets\CommentWidget::widget([
            'context'       => $this,
            'model'         => $portfolio::className(),
            'model_id'      => $portfolio->portfolio_id,
            'comment_class' => \common\modules\comment\models\Comment::className(),
            'rating_class'  => ( \Yii::$app->user->id ? \common\modules\comment\models\Rating::className() : false ),
            'class_options' => [
                'scenario'     => is_int(\Yii::$app->user->getId()) ? \common\modules\comment\models\Comment::SCENARIO_USER : \common\modules\comment\models\Comment::SCENARIO_GUEST,
                'user_id'      => \Yii::$app->user->getId(),
                'guestComment' => true,
                'status'       => \common\modules\comment\models\Comment::STATUS_ACTIVE,
            ],
            'list_options'  => [
                'view' => 'list-comment',
            ],
            'form_options'  => [
                'view'  => 'form-comment',
                'tag'   => 'div',
                'class' => 'artbox_comment_form',
            ],
            'options'       => [
                'class' => 'new-portf-comments-wr style',
            ],
        ]);
    ?>


</div>
<script>
    $(document).ready(
        function()
        {
            portfolioHideTxt()
            function portfolioHideTxt()
            {
                $('.new-portfolio-excerpt .new-portfolio-see-all span').click(
                    function()
                    {
                        $(this).parent().parent().parent().toggleClass('show-all')
                    }
                )
                $('.new-portfolio-txt .new-portfolio-see-all span').click(
                    function()
                    {
                        $(this).parent().parent().parent().toggleClass('show-all')
                    }
                )
            }
        }
    )
</script>
<script>
    $(
        function()
        {
            $('.new-portf-slider #demo5').scrollbox(
                {
                    direction : 'h',
                    distance : 230,
                    autoPlay : false,
                    onMouseOverPause : false
                }
            );
            $('#demo5-backward').click(
                function()
                {
                    $('#demo5').trigger('backward');
                }
            );
            $('#demo5-forward').click(
                function()
                {
                    $('#demo5').trigger('forward');
                }
            );
            var widthSlider = $('.new-portf-slider ul li').length
            $('.new-portf-slider ul').css({width : ((widthSlider * 230) - 20)})
            if(widthSlider <= 3)
            {
                $('#demo5-forward, #demo5-backward').css({display : 'none'})
            }
        }
    );
</script>