Огромное спасибо, просто ctrl+c ctrl+v, все работает, какой я хороший программист 🙂

2 месяца спустя

Дошел до Разработка верстки формы, подключение AJAX, захожу в компоненты чтобы перетащить компонент Feedback Component на страницу а его там нет ...

  • reazzon ответили на это сообщение.

    MORION_2010 ты его подключил в plugin.php своего плагина?

    • MORION_2010 ответили на это сообщение.

      reazzon

      public function registerComponents()
      {
          return [
              'OctoClub\Tutorial\Components\Feedback' => 'OctoClubFeedback',
          ];
      }
      • reazzon ответили на это сообщение.

        MORION_2010 можешь приложить полностью весь код внутри твоего компонента Feedback

        • MORION_2010 ответили на это сообщение.

          reazzon

          <?php namespace OctoClub\Tutorial\Components;
          
          use Mail;
          use Input;
          use Flash;
          
          use Cms\Classes\ComponentBase;
          
          class Feedback extends ComponentBase
          {
              public function componentDetails()
              {
                  return [
                      'name'        => 'Feedback Component',
                      'description' => 'No description provided yet...'
                  ];
              }
          
              public function defineProperties()
              {
                  return [
                      'email' => [
                          'title'       => 'Email',
                          'description' => 'Данный email будет использоваться для отправки всех заявок с формы.',
                          'default'     => 'admin@test.ru',
                          'required'    => true,
                      ],
                  ];
              }
          	
              public function onSend()
              {
              
              if(!Input::has('name') || empty(Input::get('name'))){
                  throw new \AjaxException([ 'X_OCTOBER_ERROR_MESSAGE' => 'Вы должны указать свое имя' ]);
              }
          
              if(!Input::has('email') || empty(Input::get('email'))){
                  throw new \AjaxException([ 'X_OCTOBER_ERROR_MESSAGE' => 'Вы должны указать email для связи' ]);
              }
          	
              $data = [
                  'name'       => e(Input::get('name')),
                  'email'      => e(Input::get('email')),
                  'item_name'  => e(Input::get('item_name')),
              ];
          
              if(Input::has('phone') && !empty(Input::get('phone'))){
                  $data['phone'] = e(Input::get('phone'));
              }
          	
              $email = $this->property('email');
              Mail::send('octoclub.tutorial::mail.feedback', $data, function($message) use ($email) {
                  $message->to($email, 'Admin Person');
              });
          
              // Проверка успешно ли ушло письмо
              if (count(Mail::failures()) == 0){
                  Flash::success( 'Форма успешно отправлена!' );
              } else {
                  throw new \AjaxException([ 'X_OCTOBER_ERROR_MESSAGE' => 'Произошла ошибка, попробуйте позже' ]);
              }	
          }
          
          }

          Выполнил 2 команды

          /usr/local/php70/bin/php artisan create:plugin OctoClub.Tutorial
          /usr/local/php70/bin/php artisan create:component OctoClub.Tutorial Feedback

          Папка и Файлы в папке Plugins генерятся но в админке компонент не добавляется

          • reazzon ответили на это сообщение.
            • Изменено

            MORION_2010 а ты делал эту команду?

            /usr/local/php70/bin/php artisan october:up 
            • MORION_2010 ответили на это сообщение.

              выполнил

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


              отобразился после апдейта но в компонентах его нет

              • reazzon ответили на это сообщение.

                MORION_2010 покажи файловую структуру твоего плагина. название всех папок в корне плагина, и название файлов внутри папки components

                • MORION_2010 ответили на это сообщение.

                  reazzon
                  Структура папок и файлов

                  • reazzon ответили на это сообщение.

                    MORION_2010 Странная тема. Попробуй новый пустой проект создать и там создай плагин. Я боюсь что проблема существует из-за того что, возможно что-то с чем-то конфликтует, типо ___octoclub и т.д.

                    • MORION_2010 ответили на это сообщение.

                      reazzon

                      ___octoclub это папки от предыдущих попыток установить плагин .... уже почистил, щас папка только одна octoclub

                      • reazzon ответили на это сообщение.

                        MORION_2010 надо детально рыться в твоем проекте. Проверяй namespace'ы и названия папок / файлов, возможно опечатка где-то есть. По тому какие шаги ты выполнил, все должно быть правильно.

                        • MORION_2010 ответили на это сообщение.

                          reazzon

                          все я нашел где была проблема

                          удалил строку

                          return []; // Remove this line to activate

                          public function registerComponents()
                              {
                                  return [
                                      'OctoClub\Tutorial\Components\Feedback' => 'OctoClubFeedback',
                                  ];
                              }

                          компонент отобразился

                          • reazzon ответили на это сообщение.

                            MORION_2010 надо было сразу весь блок функции сюда отправлять)

                            4 месяца спустя

                            Столкнулся с проблемой:

                            Symfony\Component\Debug\Exception\FatalThrowableError: Call to undefined function OctoClub\Tutorial\Components\send() in /Users/user/web/current/ship2/plugins/octoclub/tutorial/components/Feedback.php:49

                            Строка 49:

                            Mail:send('octoclub.tutorial::mail.feedback', $data, function($message) use ($email) {
                                $message->to($email, 'Admin Person');
                            });
                            • reazzon ответили на это сообщение.

                              konechno30cm попробуйте так \Mail::send

                              • konechno30cm ответили на это сообщение.