• Как скрыть полный текст описания в выводимых товарах?

    @Sandro_s Автор вопроса
    dimoff66, Полный текст чего? Названия товаров подгружается в переменные из бд. Думаю, нужно задать переменной "p" или классу свойство overflow hidden в css. но какому и как пока не могу определить.
    Пробовал так:

    .productinfo text-center {
    
       white-space: nowrap; 
        overflow: hidden;
        text-overflow: ellipsis;
    }
  • Как скрыть полный текст описания в выводимых товарах?

    @Sandro_s Автор вопроса
    slo_nik, Доброе, ну магазин на yii2 ведь
  • Почему текст footer в пределах основного текста? Как его спустить вниз?

    @Sandro_s Автор вопроса
    это здесь ни при чем, полностью удалил секцию
  • Как сохранить данные из контактной формы в бд?

    @Sandro_s Автор вопроса
    slo_nik, что именно смотреть после UPD?
    Этот вариант после UPD с экшеном Contact в IndexController выдает ошибку:

    Missing argument 1 for app\models\Contactform::contact(), called in D:\sites\yii2.loc\controllers\IndexController.php on line 61 and defined
    5bbc6f237540a029279020.jpeg5bbc6f667d9dc505995369.jpeg

    Смущает, то, что переменная ID в методе saveContactform(){ не определена! 5bbc6c412a8d0101166034.jpeg
  • Как сохранить данные из контактной формы в бд?

    @Sandro_s Автор вопроса
    slo_nik, что там после UPD? у Вас идёт Действие IndexController::actionContact()5bbbc2eff0a97048308485.jpeg
  • Как сохранить данные из контактной формы в бд?

    @Sandro_s Автор вопроса
    slo_nik,
    Вы вообще смотрели обновление вопроса? Где Вы там увидели этот метод.


    так у Вас в самом начале вверху указан этот метод
    protected function saveContactform

    который Вы рекомендовали перенести в ContactForm.
    Это было сделано. Только там $customer нужно было заменить на $contactform т.к. таблицы такой нет у меня. И что, этот метод теперь не нужен?

    Ведь в public function contact($adminEmail) там рекомендуется сохранение if($this->saveContactForm()){
  • Как сохранить данные из контактной формы в бд?

    @Sandro_s Автор вопроса
    slo_nik, в ContactForm в методе

    protected function saveContactform(){
    
    
                //создаем объект модели
                $contactform = new contactform();
                
                $contactform->name =$id['name'];
                $contactform->email = $id['email'];
                $contactform->subject = $id['subject'];
                $contactform->body = $id ['body'];
                $contactform->save(false);
            }
  • Как сохранить данные из контактной формы в бд?

    @Sandro_s Автор вопроса
    slo_nik,
    Yii::$app->runAction('index/saveContactForm');
    $this->save(); - заком.

    В ContactForm перенесен метод, письмо отправляется. Данных нет в бд.

    Error: Undefined variable: id

    т.е. сейчас id отправителя нет в contactform->name =$id['name'];

    Как получить с некой формы id? Если как-то отсылать данные с формы методом GET на контроллер в actionIndex и там принимать свой id и искать данные. Не очень представляю реализацию..

    Нашёл на другом ресурсе $model = TransferForm::FindOne(Yii::$app->request->get('id'));

    Но разве в Yii есть такой класс TransferForm?

    ContactForm

    spoiler
    <?php
    
    namespace app\models;
    
    use Yii;
    use yii\db\ActiveRecord;
    use yii\db\Expression;
    
    
    
     /**
     * This is the model class for table "contactform".
     *
     * @property string $id
     * @property string $name
     * @property string $email
     * @property integer $subject
     * @property double $body
     * @property string $verifyCode
     
     */
    
    class Contactform extends ActiveRecord
    {
        public $id;
        public $name;
        public $email;
        public $subject;
        public $body;
        public $verifyCode;
    
    
         public static function tableName()
        {
            return 'contactform';
        }
        /**
         * @return array the validation rules.
         */
        public function rules()
        {
            return [
           
               /* Поля обязательные для заполнения */
                [ ['name', 'email', 'subject', 'body'], 'required'],
                /* Поле электронной почты */
                ['email', 'email'],
                /* Капча */
                ['verifyCode', 'captcha', 'captchaAction'=>'index/captcha'],
              /*  ['verifyCode', 'captcha','captchaAction'=>'/contactus/default/captcha'],*/
    
            ];
    
        }
    
        /**
         * @return array customized attribute labels
         */
        public function attributeLabels()
        {
            return [
                'verifyCode' => 'Подтвердите код',
                'name' => 'Имя',
                'email' => 'Электронный адрес',
                'subject' => 'Тема',
                'body' => 'Сообщение',
            ];
        }
    
        /**
         * Sends an email to the specified email address using the information collected by this model.
         * @param  string  $email the target email address
         * @return boolean whether the model passes validation
         */
       
         
        public function contact($adminEmail)
        {
            if ($this->validate()) {
    
            Yii::$app->mailer->compose()
                ->setFrom(Yii::$app->params['adminEmail']) /* от кого */
                 /* ->setFrom(['oc.mcdir@yandex.ru' => $this->name])*/
                 // ->setFrom(['adminmail@mail.ru' => 'yii2.loc'])
             //   ->setTo($this->feedback_email) /* куда */
                ->setTo([$this->email => $this->name,'adminmail@mail.ru' => 'yii2.loc']) 
                ->setSubject('Админ') /* имя отправителя */
                ->setTextBody('Добрый день! Ваше сообщение принято!')->setCharset('UTF-8') /* текст сообщения */
    
                       
                        
    
                ->send(); /* функция отправки письма */
                /*Cохранить данные */
            //   Yii::$app->runAction('index/saveContactForm');
             $this->saveContactform();
                return true;
            } else {
                return false;
            }
        }
    
         protected function saveContactform(){
    
    
                //создаем объект модели
                $contactform = new contactform();
                
                $contactform->name =$id['name'];
                $contactform->email = $id['email'];
                $contactform->subject = $id['subject'];
                $contactform->body = $id ['body'];
                $contactform->save(false);
            }
    
    }


    IndexController

    spoiler
    <?php
    
    
    namespace app\controllers;
    
    use Yii;
    use yii\App\Controller;
    use app\models\ContactForm;
    use yii\web\Request;
    
    
    
    
    class IndexController extends AppController
    {
    
    
      public function actions()
        {
            return [
                'captcha' => [
                    'class' => 'yii\captcha\CaptchaAction',
                    'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
                ]
            ];
        }
    
        public function actionContact()
        {
            
           // $this->layout = 'contact';
            $this->layout = false;
            
    
              /* Создаем экземпляр класса */
            $model = new ContactForm();
            /* получаем данные из формы и запускаем функцию отправки contact, если все хорошо, выводим сообщение об удачной отправке сообщения на почту */
           
            if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) 
             
             // $model->save();
           // $model->saveContactform();
            {
                Yii::$app->session->setFlash('contactFormSubmitted');
                return $this->refresh();
            /* иначе выводим форму обратной связи */
            } else {
               return $this->render('contact', [
                   'model' => $model,
             ]);
               
            }
        }
    
        
    }
  • Как сохранить данные из контактной формы в бд?

    @Sandro_s Автор вопроса
    slo_nik в ContactForm изменил

    /*Cохранить данные */
                Yii::$app->runAction('index/saveContactForm');
             $this->save();


    но сейчас письмо отправляется, но уведомление даже не выводится из вида " Спасибо за обращение к нам. Мы постараемся ответить вам как можно скорее." а перенапр. на yii2.loc/index/contact 404

    В логах Get- Empty, в Post - отправленные данные в массиве.

    404
    Stack trace:
    spoiler
    yii\base\InvalidRouteException: Unable to resolve the request: index/saveContactForm in D:\sites\yii2.loc\vendor\yiisoft\yii2\base\Controller.php:128
    Stack trace:
    #0 D:\sites\yii2.loc\vendor\yiisoft\yii2\base\Module.php(528): yii\base\Controller->runAction('saveContactForm', Array)
    #1 D:\sites\yii2.loc\models\Contactform.php(108): yii\base\Module->runAction('index/saveConta...')
    #2 D:\sites\yii2.loc\controllers\IndexController.php(37): app\models\Contactform->contact('adminmail@mail....')
    #3 [internal function]: app\controllers\IndexController->actionContact()
    #4 D:\sites\yii2.loc\vendor\yiisoft\yii2\base\InlineAction.php(57): call_user_func_array(Array, Array)
    #5 D:\sites\yii2.loc\vendor\yiisoft\yii2\base\Controller.php(157): yii\base\InlineAction->runWithParams(Array)
    #6 D:\sites\yii2.loc\vendor\yiisoft\yii2\base\Module.php(528): yii\base\Controller->runAction('contact', Array)
    #7 D:\sites\yii2.loc\vendor\yiisoft\yii2\web\Application.php(103): yii\base\Module->runAction('index/contact', Array)
    #8 D:\sites\yii2.loc\vendor\yiisoft\yii2\base\Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))
    #9 D:\sites\yii2.loc\web\index.php(12): yii\base\Application->run()
    #10 {main}
    
    Next yii\web\NotFoundHttpException: Страница не найдена. in D:\sites\yii2.loc\vendor\yiisoft\yii2\web\Application.php:115
    Stack trace:
    #0 D:\sites\yii2.loc\vendor\yiisoft\yii2\base\Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))
    #1 D:\sites\yii2.loc\web\index.php(12): yii\base\Application->run()
    #2 {main}


    trace yii\base\Controller::runAction Route to run: site/error
    trace yii\base\Action::runWithParams Running action: yii\web\ErrorAction::run()
    trace yii\base\View::renderFile Rendering view file: D:\sites\yii2.loc\views\site\error.php
    trace yii\base\View::renderFile Rendering view file: D:\sites\yii2.loc\views\layouts\main.php

    Но это из-за неверного вызова метода и контроллера и попытке сохранить в форме Yii::$app->runAction('index/saveContactForm');
    в форме . Если заком. это - то после ввода выводит просто сообщение из вида yii2.loc/index/contact дебаг там не включен.

    Ещё сомневаюсь, что верно описано в методе $contactform->name =$id['name'];

    т.к. в CartControllere, к примеру у меня так работает

    spoiler
    // метод принимает корзину и id сохр.заказа
          protected function saveOrderItems($items, $order_id){
            //проходим по массиву корзины карт и получаем id товара и инфо о заказе
            foreach($items as $id => $item){
                //создаем объект модели
                $order_items = new OrderItems();
                //id заказа
                $order_items->order_id = $order_id;
                // id товара
                $order_items->product_id = $id;
                $order_items->name = $item['name'];
                $order_items->price = $item['price'];
                $order_items->qty_item = $item['qty'];
                //кол-во умн.на цену
                $order_items->sum_item = $item['qty'] * $item['price'];
                $order_items->save();
            }
        }
  • Ошибка Swift_TransportException при отправлении почты- как исправить?

    @Sandro_s Автор вопроса
    slo_nik,

    Вообщем, нужно было поменять местами имя отправителя в ContactForm и кому,

    ContactForm
    spoiler
    <?php
    
    namespace app\models;
    
    use Yii;
    use yii\base\Model;
    
    /**
     * ContactForm is the model behind the contact form.
     */
    class ContactForm extends Model
    {
        public $name;
        public $email;
        public $subject;
        public $body;
        public $verifyCode;
    
        /**
         * @return array the validation rules.
         */
        public function rules()
        {
            return [
           
               /* Поля обязательные для заполнения */
                [ ['name', 'email', 'subject', 'body'], 'required'],
                /* Поле электронной почты */
                ['email', 'email'],
                /* Капча */
                ['verifyCode', 'captcha', 'captchaAction'=>'index/captcha'],
              /*  ['verifyCode', 'captcha','captchaAction'=>'/contactus/default/captcha'],*/
    
            ];
    
        }
    
        /**
         * @return array customized attribute labels
         */
        public function attributeLabels()
        {
            return [
                'verifyCode' => 'Подтвердите код',
                'name' => 'Имя',
                'email' => 'Электронный адрес',
                'subject' => 'Тема',
                'body' => 'Сообщение',
            ];
        }
    
          
        public function contact($emailto)
        {
            if(Yii::$app->mailer->compose()
                ->setFrom(Yii::$app->params['adminEmail']) /* от кого */
                 ->setTo([$this->email => $this->name]) 
                ->setSubject('Админ') /* имя отправителя */
                ->setTextBody('Добрый день! Ваше сообщение принято!')->setCharset('UTF-8') /* текст сообщения */
    
                      ->send() /* функция отправки письма */
            ){
                return true;
            } else {
                return false;
            }
        }
    
    }



    Теперь письмо с уведомлением
    'Добрый день! Ваше сообщение принято!' приходит, но в бд конечно, ничего не сохраняется. Наверное, нужно таблицу Contact делать, как для Orders? Но там связь с таблицей OrderItems hasMany ['order_id' => 'id']);
    и в контроллере ->setTo($order->email)
    Или, хотя бы как-то добавить, чтобы сообщения на почту админу приходили.

    Только каким именно в config/params нужно продублировать setTo email admin?
  • Ошибка Swift_TransportException при отправлении почты- как исправить?

    @Sandro_s Автор вопроса
    @Slo_nik

    354
    354

    Боковое сообщение может быть очень загадочным («Начать начало ввода почты . »). Это типичный ответ на команду DATA.

    Сервер получил данные «От» и «Кому» электронной почты и готов получить сообщение тела.


    503

    503
    
    Сервер столкнулся с плохой последовательностью команд или требует аутентификации.
    
    В случае «плохой последовательности» сервер отключил свои команды в неправильном порядке, как правило, из-за сломанного соединения. Если требуется аутентификация, вы должны ввести свое имя пользователя и пароль.


    Ошибка аутентификации? Или для отправки сообщения нужно ещё авторизоваться? Но у меня авторизация только для админа на сайте. Для пользователей нет.
  • Ошибка Swift_TransportException при отправлении почты- как исправить?

    @Sandro_s Автор вопроса
    slo_nik

    А почему у Вас тут не полностью адрес?

    я просто убрал email с паролем, чтобы здесь не выводить, но при отправке там они есть, конечно.

    ssl на tsl менял

    'host' => ('smtp.gmail.com'),
                   /* 'options' => array('hostname' => 'smtp.gmail.com',*/
                  /*  'username' => 'email',
                    'password' => 'pass',
                    'port' => '465',
                    "encryption" => ("tls"),*/


    и в params адрес на gmail - не помогло
  • Ошибка Swift_TransportException при отправлении почты- как исправить?

    @Sandro_s Автор вопроса
    SiteContrroller

    spoiler
    <?php
    
    namespace app\controllers;
    
    use Yii;
    use yii\filters\AccessControl;
    use yii\web\Controller;
    use yii\filters\VerbFilter;
    use app\models\LoginForm;
    use app\models\ContactForm;
    use app\modules\contactus\controllers;
    
    class SiteController extends Controller
    {
        public function behaviors()
        {
            return [
                'access' => [
                    'class' => AccessControl::className(),
                    'only' => ['logout'],
                    'rules' => [
                        [
                            //'actions' => ['logout'],
                            'actions' => ['captcha','index','logout'],
                            'allow' => true,
                            'roles' => ['@'],
                        ],
                    ],
                ],
                'verbs' => [
                    'class' => VerbFilter::className(),
                    'actions' => [
                        'logout' => ['post','get'],
                    ],
                ],
            ];
        }
    
        public function actions()
        {
            return [
                'error' => [
                    'class' => 'yii\web\ErrorAction',
                ],
                'captcha' => [
                    'class' => 'yii\captcha\CaptchaAction',
                    'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
                ],
            ];
        }
    
       /* public function actionIndex()
        {
          //  return $this->render('index');
            $this->render('default', [
                    'model' => $model,
                ]);
        }*/
        public function actionIndex()
        {
            $model = new ContactForm();
            if ($model->load(Yii::$app->request->post()) && $model->contact(setting::ADMIN_EMAIL_ADDRESS)) {
                Yii::$app->session->setFlash('contactFormSubmitted');
    
                return $this->refresh();
            } else {
                return $this->render('default', [
                    'model' => $model,
                ]);
            }
        }
    
    
    
        public function actionLogin()
        {
            if (!\Yii::$app->user->isGuest) {
                return $this->goHome();
            }
    
            $model = new LoginForm();
            if ($model->load(Yii::$app->request->post()) && $model->login()) {
                return $this->goBack();
            }
            return $this->render('login', [
                'model' => $model,
            ]);
        }
    
        public function actionLogout()
        {
            Yii::$app->user->logout();
    
            return $this->goHome();
        }
    
      /*  public function actionContact()
        {
            $model = new ContactForm();
            if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) {
                Yii::$app->session->setFlash('contactFormSubmitted');
    
                return $this->refresh();
            }
            return $this->render('contact', [
                'model' => $model,
            ]);
        }*/
    
        public function actionAbout()
        {
            return $this->render('about');
        }
    }

  • Ошибка с капчей в контактной форме-как решить?

    @Sandro_s Автор вопроса
    slo_nik, пробовал отправлять на mail но, все ровно, та же самая ошибка.

    Да, капча отображается.
  • Ошибка с капчей в контактной форме-как решить?

    @Sandro_s Автор вопроса
    slo_nik, да, там все доходит. так а в чем ошибка?) я пробовал в params поменять адрес отправителя с gmai.com на майл - все ровно не отправляет.

    у меня в params указано 2 адреса

    1 gmail.com (это когда делалась отправка для cart/view)
    2 emailto - mail.ru

    наверное, так нельзя?

    <?php
    
    return [
        'adminEmail' => '@gmail.com',
         'emailto'  => '@mail.ru',
    ];


    для первой формы в cart/view (с которой все доходит) в конфиге прописано
    'mailer' => [
             'class' => 'yii\swiftmailer\Mailer',
                // send all mails to a file by default. You have to set
                // 'useFileTransport' to false and configure a transport
                // for the mailer to send real emails.
                'useFileTransport' => false, //если false то письма будут отпр. если true то в папке runtime 
                'transport'=>[
                    'class' => 'Swift_SmtpTransport',     
                    'host' => ('smtp.mail.ru'),
                    'port' => ('465'), // для mail.ru
                    'encryption' => ('ssl'), // tls
                    'username' => ('почта mail'),
                    'password' => ('paroll'),
                ],
            ],


    т.е. класс 'transport'=>[
    'class' => 'Swift_SmtpTransport',

    а для 2 формы я дописал 'class' => 'yii\swiftmailer\Mailer',

    может из за этого?
  • Ошибка с капчей в контактной форме-как решить?

    @Sandro_s Автор вопроса
    Добрый вечер!
    Форма открылась c капчей, но сообщение не отправляется(
    "Expected response code 354 but got code "503", with message "503 sender not yet given
    "
    Причем с другой формы отправки для cart/view при заказе товара - все нормально отправляется.
  • Ошибка с капчей в контактной форме-как решить?

    @Sandro_s Автор вопроса
    Подробнее ошибки:

    in D:\sites\yii2.loc\vendor\yiisoft\yii2\captcha\CaptchaValidator.php:81
    throw new InvalidConfigException('Invalid CAPTCHA action ID: ' . $this->captchaAction);

    Stack trace:
    spoiler
    Stack trace:
    #0 D:\sites\yii2.loc\vendor\yiisoft\yii2\captcha\CaptchaValidator.php(100): yii\captcha\CaptchaValidator->createCaptchaAction()
    #1 D:\sites\yii2.loc\vendor\yiisoft\yii2\captcha\CaptchaValidator.php(90): yii\captcha\CaptchaValidator->getClientOptions(Object(app\models\ContactForm), 'verifyCode')
    #2 D:\sites\yii2.loc\vendor\yiisoft\yii2\widgets\ActiveField.php(819): yii\captcha\CaptchaValidator->clientValidateAttribute(Object(app\models\ContactForm), 'verifyCode', Object(yii\web\View))
    #3 D:\sites\yii2.loc\vendor\yiisoft\yii2\widgets\ActiveField.php(230): yii\widgets\ActiveField->getClientOptions()
    #4 D:\sites\yii2.loc\vendor\yiisoft\yii2\widgets\ActiveField.php(220): yii\widgets\ActiveField->begin()
    #5 D:\sites\yii2.loc\vendor\yiisoft\yii2-bootstrap\src\ActiveField.php(187): yii\widgets\ActiveField->render('
    public static function convertExceptionToError($exception)
    {
    trigger_error(static::convertExceptionToString($exception), E_USER_ERROR);
    }

    in D:\sites\yii2.loc\views\index\contact.php at line 45 – yii\widgets\ActiveField::__toString()
    стр. 45 'captchaAction' => '/index/captcha',
    <!-- Поля формы и капча -->
                <?= $form->field($model, 'name') ?>
                <?= $form->field($model, 'email') ?>
                <?= $form->field($model, 'subject') ?>
           
                <?= $form->field($model, 'body')->textArea(['rows' => 6]) ?>
                <?=$form->field($model, 'verifyCode')->widget(Captcha::className(), [
                    'captchaAction' => '/index/captcha',
                    'template' => '<div class="row"><div class="col-lg-4">{image}</div><div class="col-lg-7">{input}</div></div>',
                ])?>
                <!-- Кнопка отправки формы-->
                <div class="form-group">
                    <?= Html::submitButton('Отправить сообщение', ['class' => 'btn btn-default waves-effect btn-color-orange btn-color-orange-long', 'name' => 'contact-button']) ?>
                </div>


    in D:\sites\yii2.loc\vendor\yiisoft\yii2\base\View.php at line 336 – require('D:\sites\yii2.loc\views\index\contact.php')
    стр. 336 require $file_;

    in D:\sites\yii2.loc\vendor\yiisoft\yii2\base\View.php at line 254 – yii\base\View::renderPhpFile('D:\sites\yii2.loc\views\index\co...', ['model' => app\models\ContactForm])
    стр 254 $output renderer-> render ($ this, $ viewFile, $ params);

    in D:\sites\yii2.loc\vendor\yiisoft\yii2\base\Controller.php at line 384 – yii\base\View::render('contact', ['model' => app\models\ContactForm], app\controllers\IndexController)

    $ content = $ this-> getView () -> render ($ view, $ params, $ this);         return $ this-> renderContent ($ content);


    in D:\sites\yii2.loc\controllers\IndexController.php at line 37 – yii\base\Controller::render('contact', ['model' => app\models\ContactForm])

    return $ this-> render ('контакт', [                'model' => $ model,          ]);
  • Ошибка с капчей в контактной форме-как решить?

    @Sandro_s Автор вопроса
    Вид папка index/ contact.php

    spoiler
    <?php
    use yii\helpers\Html;
    use yii\bootstrap\ActiveForm;
    use yii\captcha\Captcha;
    
    
    
    /* @var $this yii\web\View */
    /* @var $form yii\bootstrap\ActiveForm */
    /* @var $model app\models\ContactForm */
    
    $this->title = 'Контакты';
    ?>
    <article class="col-xs-12 col-lg-6">
    
        <div class="row margin-null">
            <!-- Заголовок -->
            <h1><?= Html::encode($this->title) ?></h1>
        
            <!-- Условие отправления формы, если она отправлена выводим сообщение -->
            <?php if (Yii::$app->session->hasFlash('contactFormSubmitted')): ?>
        
            <div class="alert alert-success">
                Спасибо за обращение к нам. Мы постараемся ответить вам как можно скорее.
            </div>
        
            // иначе выводим форму
            <?php else: ?>
        
               <?php $form = ActiveForm::begin([
                    'id' => 'contact-form', /* Идентификатор формы */
                    'options' => ['class' => 'form-horizontal'], /* класс формы */
                    'fieldConfig' => [ /* классы полей формы */
                        'template' => "<div class=\"col-lg-3\">{label}</div>\n<div class=\"col-lg-9\">{input}</div>\n<div class=\"col-lg-12 col-lg-offset-3 \">{error}</div>"
                   
                    ],
                ]); ?>
                <!-- Поля формы и капча -->
                <?= $form->field($model, 'name') ?>
                <?= $form->field($model, 'email') ?>
                <?= $form->field($model, 'subject') ?>
           
                <?= $form->field($model, 'body')->textArea(['rows' => 6]) ?>
                <?=$form->field($model, 'verifyCode')->widget(Captcha::className(), [
                    'captchaAction' => '/index/captcha',
                    'template' => '<div class="row"><div class="col-lg-4">{image}</div><div class="col-lg-7">{input}</div></div>',
                ])?>
                <!-- Кнопка отправки формы-->
                <div class="form-group">
                    <?= Html::submitButton('Отправить сообщение', ['class' => 'btn btn-default waves-effect btn-color-orange btn-color-orange-long', 'name' => 'contact-button']) ?>
                </div>
                
                <?php ActiveForm::end(); ?>
        
            <?php endif; ?>
        
        </div>
    </article>


    config/web

    spoiler
    <?php
    
    $params = require(__DIR__ . '/params.php');
    
    $config = [
        'id' => 'basic',
        'basePath' => dirname(__DIR__),
        'bootstrap' => ['log'],
        'language' => 'ru-RU',
        // контроллер по умолчанию вместо site/index для польз.части
        'defaultRoute' => 'category/index',
        'modules' => [
            'admin' => [
                'class' => 'app\modules\admin\Module',
                'layout' => 'admin',
                'defaultRoute' => 'order/index',
            ],
             'yii2images' => [
                'class' => 'rico\yii2images\Module',
                //be sure, that permissions ok
                //if you cant avoid permission errors you have to create "images" folder in web root manually and set 777 permissions
                'imagesStorePath' => 'upload/store', //path to origin images
                'imagesCachePath' => 'upload/cache', //path to resized copies
                'graphicsLibrary' => 'GD', //but really its better to use 'Imagick'
                'placeHolderPath' => '@webroot/upload/store/no-image.png', // if you want to get placeholder when image not exists, string will be processed by Yii::getAlias
            ],
        ],
        'components' => [
            'request' => [
                // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
                'cookieValidationKey' => '6H8SRuk9HIPbdCxI7C0lt16sl9rA1luC',
                'baseUrl'=>'',
            ],
            'cache' => [
                'class' => 'yii\caching\FileCache',
            ],
            'user' => [
                'identityClass' => 'app\models\User',//если свой класс user, то здесь переименовать
                'enableAutoLogin' => true, //авторизация польз.на основе куки
    // куда будет перенапр.польз.если неавтор.      
       //'loginUrl' => 'cart/view'
            ],
            'errorHandler' => [
                'errorAction' => 'site/error',
            ],
            'mailer' => [
             'class' => 'yii\swiftmailer\Mailer',
                // send all mails to a file by default. You have to set
                // 'useFileTransport' to false and configure a transport
                // for the mailer to send real emails.
                'useFileTransport' => false, //если false то письма будут отпр. если true то в папке runtime 
                'transport'=>[
                    'class' => 'Swift_SmtpTransport',     
                    'host' => ('smtp.mail.ru'),
                    'port' => ('465'), // для mail.ru
                    'encryption' => ('ssl'), // tls
                    'username' => ('medeyacom'),
                    'password' => ('bitrix111'),
                ],
            ],
            'log' => [
                'traceLevel' => YII_DEBUG ? 3 : 0,
                'targets' => [
                    [
                        'class' => 'yii\log\FileTarget',
                        'levels' => ['error', 'warning'],
                    ],
                ],
            ],
            'db' => require(__DIR__ . '/db.php'),
            
            'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => [
                // более конкретные правила должны нах.впереди более общих
                // page и номер стр.
                  'category/<id:\d+>/page/<page:\d+>' => 'category/view',
                //ссылка соотв. контр.cat и экшену view
                     'category/<id:\d+>' => 'category/view',
                     //для ссылки карточки товаров
                     'product/<id:\d+>' => 'product/view',
                     'search/<id:\d+>' => 'category/search',
               ],
            ],
            
        ],
        'controllerMap' => [
            'elfinder' => [
                'class' => 'mihaildev\elfinder\PathController',
                'access' => ['@'], //доступ к редактору только для авт.польз.
                'root' => [
                    'baseUrl'=>'/web',//папка web upload добавляет сам.
    //                'basePath'=>'@webroot',
                    'path' => 'upload/global',//куда загружается файл
                    'name' => 'Global'//название папки для загрузки в редакторе
                    // на хост.дать права на запись
                ],
            ]
        ],
        'params' => $params,
    ];
    
    if (YII_ENV_DEV) {
        // configuration adjustments for 'dev' environment
        $config['bootstrap'][] = 'debug';
        $config['modules']['debug'] = [
            'class' => 'yii\debug\Module',
        ];
    
        $config['bootstrap'][] = 'gii';
        $config['modules']['gii'] = [
            'class' => 'yii\gii\Module',
        ];
    }
    
    return $config;
  • Psr-3 как правильно подключить интерфейс протоколирования?

    @Sandro_s Автор вопроса
    Подключить в конструкторах - это вы имеете ввиду в maincontroller.php? Извиняюсь за тупой вопрос, а каким образом можно привязать реализацию и интерфейс в данном случае?
  • Как правильно указать директорию?

    @Sandro_s Автор вопроса
    Я тоже не понимаю, к чему ваш ответ не по теме? Мне не нужны сейчас классы и конфиги, нужно просто правильно подключить папку tmpl для вывода т.к. она сместилась на 1 уровень.

    Во view есть сво-во: private $dir_tmpl;Возможно, его нужно изменить как-то, также в$template = $this->dir_tmpl.$file.'.tpl';