Огромное спасибо, просто ctrl+c ctrl+v, все работает, какой я хороший программист
Разработка AJAX формы обратного звонка, для своего плагина.
Дошел до Разработка верстки формы, подключение AJAX, захожу в компоненты чтобы перетащить компонент Feedback Component на страницу а его там нет ...
MORION_2010 ты его подключил в plugin.php своего плагина?
public function registerComponents()
{
return [
'OctoClub\Tutorial\Components\Feedback' => 'OctoClubFeedback',
];
}
MORION_2010 можешь приложить полностью весь код внутри твоего компонента Feedback
- Изменено
<?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 генерятся но в админке компонент не добавляется
- Изменено
MORION_2010 а ты делал эту команду?
/usr/local/php70/bin/php artisan october:up
MORION_2010 покажи файловую структуру твоего плагина. название всех папок в корне плагина, и название файлов внутри папки components
reazzon
Структура папок и файлов
MORION_2010 Странная тема. Попробуй новый пустой проект создать и там создай плагин. Я боюсь что проблема существует из-за того что, возможно что-то с чем-то конфликтует, типо ___octoclub и т.д.
___octoclub это папки от предыдущих попыток установить плагин .... уже почистил, щас папка только одна octoclub
MORION_2010 надо детально рыться в твоем проекте. Проверяй namespace'ы и названия папок / файлов, возможно опечатка где-то есть. По тому какие шаги ты выполнил, все должно быть правильно.
все я нашел где была проблема
удалил строку
return []; // Remove this line to activate
public function registerComponents()
{
return [
'OctoClub\Tutorial\Components\Feedback' => 'OctoClubFeedback',
];
}
компонент отобразился
MORION_2010 надо было сразу весь блок функции сюда отправлять)
- Изменено
Столкнулся с проблемой:
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');
});
konechno30cm попробуйте так \Mail::send