general.php 14.5 KB
<?php
    /**
     * @var UserInfo    $user_info
     * @var User        $user
     * @var CompanyInfo $company_info
     */
    use common\models\CompanyInfo;
    use common\models\Option;
    use common\models\User;
    use common\models\UserInfo;
    use common\modules\file\widgets\ImageUploader;
    use yii\helpers\Html;
    use yii\widgets\ActiveForm;
    use \common\widgets\MultiLangForm;
    use kartik\select2\Select2;
    use yii\web\JsExpression;

    $this->title = 'Учетные данные';
    $this->params[ 'breadcrumbs' ][] = $this->title;
?>
<div class="login-left-column-title"><?= $this->title ?></div>

<div class="" id="form_definition">
    <?php $form = ActiveForm::begin(); ?>

    <div class="general-check-wr style">
        <div class="general-check">
            <div class="general-check-left">
                <?= $form->field($user_info, 'is_freelancer', [ 'template' => "{input}\n{label}\n{error}" ])
                         ->label('<span></span>Я - исполнитель')
                         ->checkbox([
                             'class' => 'custom-check admin-check',
                         ], false); ?>
            </div>
            <div class="general-check-right">
                <div class="general-check-right-txt general-check-right-txt-fix">Обязательно должны быть указаны специализации услуг, что бы вы попали в рейтинг исполнителей</div>
            </div>
        </div>
        <div>
            <p>
                <?php
                if(!empty($user->specializations)) {
                    echo "<p>В Вашем профиле указаны специализации: ".count($user->specializations)."</p>";
                } else {
                    echo "<p>В Вашем профиле не указаны специализации. Чтобы указать - перейдите по ".Html::a('ссылке', ['accounts/service'], ['target' => '_blank'])."</p>";
                }
                ?>
            </p>
        </div>
        <div class="general-check">
            <div class="general-check-left">
                <?= $form->field($user_info, 'is_customer', [ 'template' => "{input}\n{label}\n{error}" ])
                         ->label('<span></span>Я - заказчик')
                         ->checkbox([
                             'class' => 'custom-check admin-check',
                         ], false); ?>
            </div>
            <div class="general-check-right">
                <div class="general-check-right-txt general-check-right-txt-fix">Обязательно должны быть созданы проекты вами, что бы вы попали в рейтинг заказчиков</div>
            </div>
        </div>
        <div>
            <p>
                <?php
                    if(!empty($user->projects)) {
                        echo "<p>В Вашем профиле добавлены проекты: ".count($user->projects)."</p>";
                    } else {
                        echo "<p>В Вашем профиле не добавлены проекты. Чтобы добавить - перейдите по ".Html::a('ссылке', ['accounts/projects'], ['target' => '_blank'])."</p>";
                    }
                ?>
            </p>
        </div>
    </div>
    <div class="general-who style border-general">
        <div class="general-who-title gen-admin-title">Кто вы:</div>

        <?= $form->field($user, 'type')
                 ->label(false)
                 ->radioList([
                     1 => 'Частное лицо',
                     2 => 'Компания',
                 ], [
                         'item' => function($index, $label, $name, $checked, $value) {
                             $return = '<div class="admin-who-check">';
                             $return .= '<input class="custom-radio" id="select_admin_' . $value . '" type="radio" name="' . $name . '" value="' . $value . '" ' . ( $checked ? "checked" : "" ) . ' >';
                             $return .= '<label for="select_admin_' . $value . '" >';
                             $return .= '<span></span>' . ucwords($label);
                             $return .= '</label>';
                             $return .= '</div>';
                             return $return;
                         },
                     ]); ?>


    </div>
    <div class="style border-general" style="margin-top: 11px">
        <div class="hidden-input-admin-general">
            <div class="input-blocks-wrapper">
                <div class="input-blocks">
                    <?= $form->field($company_info, 'name', [ 'options' => [ 'class' => 'form-group company_info' ], 'enableClientValidation' => false ])
                             ->textInput([ 'class' => 'custom-input-2 no-client-validation' ]); ?>
                </div>
            </div>
            <div class="input-blocks-wrapper">
                <div class="input-blocks">
                    <?= $form->field($company_info, 'staff', [ 'options' => [ 'class' => 'form-group company_info' ] ])
                             ->textInput([
                                 'class' => 'custom-input-2',
                                 'type'  => 'number',
                             ]); ?>
                </div>
            </div>
            <div class="conacts-admin style">Контакты представителя:</div>
        </div>

        <div class="input-blocks-wrapper">
            <div class="input-blocks">
                <?= $form->field($user, 'firstname')
                         ->label('Имя')
                         ->textInput([ 'class' => 'custom-input-2' ]); ?>
            </div>
        </div>

        <div class="input-blocks-wrapper">
            <div class="input-blocks">
                <?= $form->field($user, 'lastname')
                         ->label('Фамилия')
                         ->textInput([ 'class' => 'custom-input-2' ]); ?>
            </div>
        </div>
        <div class="input-blocks-wrapper">
            <div class="input-blocks">
                <?= $form->field($user_info, 'country')
                         ->widget(Select2::classname(), [
                             'options'       => [ 'placeholder' => 'Выбор страны ...', ],
                             'pluginOptions' => [
                                 'allowClear'         => true,
                                 'minimumInputLength' => 3,
                                 'ajax'               => [
                                     'url'      => \yii\helpers\Url::to([ 'site/country' ]),
                                     'dataType' => 'json',
                                     'data'     => new JsExpression('function(params) { return {q:params.term}; }'),
                                 ],
                                 'escapeMarkup'       => new JsExpression('function (markup) { return markup; }'),
                                 'templateResult'     => new JsExpression('function(country) { return country.text; }'),
                                 'templateSelection'  => new JsExpression('function (country) { return country.text; }'),
                             ],
                         ]); ?>
            </div>
        </div>
        <div class="input-blocks-wrapper">
            <div class="input-blocks">
                <?= $form->field($user_info, 'city')
                         ->widget(Select2::classname(), [
                             'options'       => [ 'placeholder' => 'Выбор города ...' ],
                             'pluginOptions' => [
                                 'allowClear'         => true,
                                 'minimumInputLength' => 3,
                                 'ajax'               => [
                                     'url'      => \yii\helpers\Url::to([ 'site/city' ]),
                                     'dataType' => 'json',
                                     'data'     => new JsExpression('function(params) { return {q:params.term}; }'),
                                 ],
                                 'escapeMarkup'       => new JsExpression('function (markup) { return markup; }'),
                                 'templateResult'     => new JsExpression('function(city) { return city.text; }'),
                                 'templateSelection'  => new JsExpression('function (city) { return city.text; }'),
                             ],
                         ]); ?>

            </div>

            <div class="input-blocks street-input">
                <?= $form->field($company_info, 'street', [ 'options' => [ 'class' => 'form-group company_info' ] ])
                         ->textInput([ 'class' => 'custom-input-2' ]); ?>
            </div>

            <div class="input-blocks home-input">
                <?= $form->field($company_info, 'house', [ 'options' => [ 'class' => 'form-group company_info' ] ])
                         ->textInput([ 'class' => 'custom-input-2' ]); ?>
            </div>
        </div>

        <div class="input-blocks-wrapper ">
            <div class="input-blocks">
                <?= $form->field($user_info, 'email')
                         ->textInput([
                             'class' => 'custom-input-2',
                             'value' => empty( $user_info->email ) ? $user->email : $user_info->email,
                         ]); ?>
            </div>
            <div class="input-blocks hide-mail-check">
                <?= $form->field($user_info, 'hide_mail', [
                    'options'  => [ 'class' => 'form-group', ],
                    'template' => "{input}{label}\n{hint}\n{error}",
                ])
                         ->label('<span></span>не публиковать Email')
                         ->checkbox([
                             'checked' => 'checked',
                             'class'   => 'custom-check',
                         ], false); ?>
            </div>
        </div>
    </div>
    <div class="input-blocks-wrapper border-general fix-marg">
        <div class="input-blocks weight-normal">
            <div class="gen-admin-title">Статус:</div>
            <?= $form->field($user_info, 'busy')
                     ->label(false)
                     ->radioList([
                         0 => 'Свободен',
                         1 => 'Занят',
                     ], [
                             'item' => function($index, $label, $name, $checked, $value) {
                                 $return = '<div class="admin-who-check">';
                                 $return .= '<input class="custom-radio" id="select_admin_status' . $value . '" type="radio" name="' . $name . '" value="' . $value . '" ' . ( $checked ? "checked" : "" ) . ' >';
                                 $return .= '<label for="select_admin_status' . $value . '" >';
                                 $return .= '<span></span>' . ucwords($label);
                                 $return .= '</label>';
                                 $return .= '</div>';
                                 return $return;
                             },
                         ]); ?>
        </div>
    </div>


    <div class="style border-general">
        <div class="input-blocks-wrapper admin-avatar">
            <div class="gen-admin-title">Аватар</div>
            <div class="file-help-1">
                <div>Формат: PNG, JPG, GIF<br/>Размер: 180x180 px<br/>Файлы большего размера и других пропорций будут конвертироваться
                </div>
            </div>
            <?= ImageUploader::widget([
                'model'   => $user_info,
                'field'   => 'image',
                'size'    => [
                    [
                        'width'  => 48,
                        'height' => 48,
                    ],
                    [
                        'width'  => 180,
                        'height' => 180,
                    ],

                ],
                'multi'   => false,
                'gallery' => $user_info->image,
                'name'    => 'Выбрать файл',
            ]); ?>
        </div>

        <div class="input-blocks-wrapper admin-avatar admin-pattern">
            <div class="gen-admin-title">Подложка</div>
            <?= ImageUploader::widget([
                'model'   => $user_info,
                'field'   => 'poster',
                'size'    => [
                    [
                        'width'  => 1920,
                        'height' => 380,
                    ],
                ],
                'multi'   => false,
                'gallery' => $user_info->poster,
                'name'    => 'Выбрать файл',
            ]); ?>
        </div>

    </div>


    <div class="input-blocks-wrapper fix-marg">
        <div class="input-blocks weight-normal">
            <div class="gen-admin-title">Членство в МФП</div>
            <div class="admin-fix-mfp">
                <?= $form->field($user_info, 'member')
                         ->label(false)
                         ->radioList([
                             0 => 'Не хочу',
                             1 => 'Хочу стать',
                         ], [
                                 'item' => function($index, $label, $name, $checked, $value) {
                                     $return = '<div class="admin-who-check">';
                                     $return .= '<input class="custom-radio" id="select_admin_mfp' . $value . '" type="radio" name="' . $name . '" value="' . $value . '" ' . ( $checked ? "checked" : "" ) . ' >';
                                     $return .= '<label for="select_admin_mfp' . $value . '" >';
                                     $return .= '<span></span>' . ucwords($label);
                                     $return .= '</label>';
                                     $return .= '</div>';
                                     return $return;
                                 },
                             ]); ?>
            </div>
            <div class="admin-mfp-help">Выберите если хотите стать членом МФП и наш менеджер свяжется с Вами.</div>
        </div>

    </div>


    <div class="input-blocks-wrapper">
        <div class="admin-save-btn style">
            <?= Html::submitButton('Сохранить', [ 'class' => 'input-blocks-wrapper button' ]);
                $form->end(); ?>
        </div>
    </div>
</div>