Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте.
Начну немного с оффтопа. Пусть в аду трижды горят те разрабы, которые писали сайт, которым я сейчас занимаюсь.
Теперь к делу
Я с laravel ранее не сталкивался, для меня многое не понятно, но пытаюсь разобраться. На сайте есть форма заказа щитов, можно выбрать несколько и нажать "Отправить заказ". Данные на эту страницу не передаются, т.е. на странице, где уже можно оформить заказ (почту, телефон написать) - "Выбрано 0 щитов". НО. Пару раз у меня получалось из админки (какая-то самописная хрень egg-cms) пересохранить страницу и перейти именно из админки, и тогда выбирались щиты. Можно было их выбирать, закрыть страницу, зайти заново - и все работало. Кроме отправки письма. Подскажите, откуда-куда копать, просматривал темплейты, нашел код, который отвечает за отображение сия страницы, внутри:
@extends(Helper::layout())
@section('page_class')request-form @stop
@section('style')
@stop
@section('content')
<div class="decals"></div>
<form id="request-form" action="{{ URL::route('app.order-billboard') }}" method="POST">
<h1>Заявка на размещение</h1>
<div class="wrapper">
<div class="selected-billboards">
<div class="row title">Выбраные щиты:</div>
<div class="row list">
<div class="more"><a href="{{ URL::route('page', 'billboards') }}">Добавить ешё щит</a></div>
</div>
</div>
<div class="row">
<!--input(type="hidden" name="billboards")-->
</div>
<div class="row need-design">
<label>
<input type="checkbox" name="need_design" value="1" checked="checked">
<div class="label">Разработать макет рекламного щита</div>
</label>
</div>
<div class="row"></div>
<div class="row">
<label>
<div class="label">Организация*:</div>
<input name="org">
</label>
</div>
<div class="row"></div>
<div class="row">
<label>
<div class="label">Телефон*:</div>
<input name="phone" placeholder="+7">
</label>
</div>
<div class="row"></div>
<div class="row">
<label>
<div class="label">Email:</div>
<input name="email">
</label>
</div>
<div class="row"></div>
<div class="row comment">
<label>
<div class="label">Коментарий к заказу:</div>
<textarea name="comment" placeholder="Например, укажите удобное время для звонка"></textarea>
</label>
</div>
<div class="row">
<center>
<button type="submit">Оформить заказ</button>
</center>
</div>
</div>
<div class="final">
<div class="green">Спасибо!</div>
<div class="text">Ваша заявка<br> успешно отправлена.</div>
</div>
</form>
@stop
@section('scripts')
@stop
Т.е., как я понимаю, управляет событиями на этой странице {{ URL::route('app.order-billboard') }} и {{ URL::route('page', 'billboards') }} - но в файле routes.php я ничего и близко похожего не нашел...
Далее, есть js-скрипты почти для каждой страницы, в том числе для страницы этих самых щитов. Что бы я в этом скрипте не менял - эффекта ноль. Понятно, что возможно это какой-то промежуточно-тестовый вариант от разработчиков и они его, естесна, забыли выпилить (как и тонны другого г#вна), но ведь есть где-то "финальные" аналогичные файлы, прописанные действия внутри которых что-то реально делают. Как можно найти это?? Что за что отвечает?
Кроме того, я изменил драйвер почты в /app/config/mail.php: [PHP]'driver' => 'mail',[/PHP]
И теперь при нажатии на кнопку обратной формы "Отправить сообщение" появляется "Сообщение успешно отправлено!" но само сообщение не приходит.
Есть еще файл app/modules/application/application.controller.php, в котором упоминается хоть что-то связанное с order-billboard и billboards. Его код:
<?php
class ApplicationController extends BaseController {
public static $name = 'application';
public static $group = 'application';
/****************************************************************************/
## Routing rules of module
public static function returnRoutes($prefix = null) {
Route::group(array(), function() {
Route::any('/ajax/send-message', array('as' => 'app.send-message', 'uses' => __CLASS__.'@postSendMessage'));
Route::any('/ajax/order-billboard', array('as' => 'app.order-billboard', 'uses' => __CLASS__.'@postOrderBillboard'));
Route::any('/ajax/order', array('as' => 'app.order', 'uses' => __CLASS__.'@postOrder'));
});
}
/****************************************************************************/
public function __construct(){
#
}
public function postSendMessage() {
#Helper::dd(Input::all());
/*
$name = Input::get('name');
$email = Input::get('email');
$text = Input::get('text');
*/
$json_request = array('status' => FALSE, 'responseText' => '');
/**
* Более-менее стандартный функционал для отправки сообщения на e-mail
*/
$data = Input::all();
Mail::send('emails.feedback', $data, function ($message) use ($data) {
#$message->from(Config::get('mail.from.address'), Config::get('mail.from.name'));
/**
* Данные (адрес и имя) для отправки сообщения, берутся из словаря Опции
*/
#/*
$from_email = Dic::valueBySlugs('options', 'from_email');
$from_email = is_object($from_email) && isset($from_email->name) ? $from_email->name : (Config::get('mail.from.address') ?: 'no@reply.ru');
$from_name = Dic::valueBySlugs('options', 'from_name');
$from_name = is_object($from_name) && isset($from_name->name) ? $from_name->name : (Config::get('mail.from.name') ?: 'No-reply');
#*/
/**
* Адрес, на который будет отправлено письмо, берется из словаря Опции
*/
$email = Dic::valueBySlugs('options', 'email');
$email = is_object($email) && isset($email->name) ? $email->name : (Config::get('mail.feedback.address') ?: 'dev@null.ru');
/**
* Если в адресе есть запятая - значит нужно отправить копию на все адреса
*/
$ccs = array();
if (strpos($email, ',')) {
$ccs = explode(',', $email);
foreach ($ccs as $e => $email)
$ccs[$e] = trim($email);
$email = array_shift($ccs);
}
$message->from($from_email, $from_name);
$message->subject('Трибуна: сообщение обратной связи - ' . @$data['name']);
$message->to($email);
if (isset($ccs) && is_array($ccs) && count($ccs))
foreach ($ccs as $cc)
$message->cc($cc);
});
$json_request['status'] = TRUE;
#$json_request['responseText'] = Input::all();
return Response::json($json_request, 200);
return '1';
}
public function postOrderBillboard() {
#Helper::ta((array)Input::get('billboards'));
$billboards = Dic::valuesBySlugAndIds('billboards', (array)Input::get('billboards'));
#Helper::ta($billboards);
#header('HTTP/1.0 404 Not Found');
#die;
$json_request = array('status' => FALSE, 'responseText' => '');
/**
* Более-менее стандартный функционал для отправки сообщения на e-mail
*/
$data = Input::all();
$data['billboards'] = $billboards;
Mail::send('emails.order-billboard', $data, function ($message) use ($data) {
#$message->from(Config::get('mail.from.address'), Config::get('mail.from.name'));
/**
* Данные (адрес и имя) для отправки сообщения, берутся из словаря Опции
*/
#/*
$from_email = Dic::valueBySlugs('options', 'from_email');
$from_email = is_object($from_email) && isset($from_email->name) ? $from_email->name : (Config::get('mail.from.address') ?: 'no@reply.ru');
$from_name = Dic::valueBySlugs('options', 'from_name');
$from_name = is_object($from_name) && isset($from_name->name) ? $from_name->name : (Config::get('mail.from.name') ?: 'No-reply');
#*/
/**
* Адрес, на который будет отправлено письмо, берется из словаря Опции
*/
$email = Dic::valueBySlugs('options', 'order_email');
$email = is_object($email) && isset($email->name) ? $email->name : (Config::get('mail.feedback.address') ?: 'dev@null.ru');
/**
* Если в адресе есть запятая - значит нужно отправить копию на все адреса
*/
$ccs = array();
if (strpos($email, ',')) {
$ccs = explode(',', $email);
foreach ($ccs as $e => $email)
$ccs[$e] = trim($email);
$email = array_shift($ccs);
}
$message->from($from_email, $from_name);
$message->subject('Трибуна: заявка на размещение - ' . @$data['org']);
$message->to($email);
if (isset($ccs) && is_array($ccs) && count($ccs))
foreach ($ccs as $cc)
$message->cc($cc);
});
if (count($billboards)) {
#Helper::ta($billboards);
#header('HTTP/1.0 404 Not Found');
#die;
foreach ($billboards as $billboard) {
if ($billboard->status == 'free') {
$carbon = \Carbon\Carbon::now();
$carbon->addDays(5);
$billboard->update_field('status', 'reserved');
$billboard->update_field('status_limit', $carbon->format('Y-m-d'));
}
$billboard->update_field('need_manual_check', 1);
}
#$billboards = Helper::arrayForSelect($billboards, 'name');
}
$json_request['status'] = TRUE;
#$json_request['responseText'] = Input::all();
return Response::json($json_request, 200);
}
public function postOrder() {
$json_request = array('status' => FALSE, 'responseText' => '');
/**
* Более-менее стандартный функционал для отправки сообщения на e-mail
*/
$data = Input::all();
Mail::send('emails.order', $data, function ($message) use ($data) {
#$message->from(Config::get('mail.from.address'), Config::get('mail.from.name'));
/**
* Данные (адрес и имя) для отправки сообщения, берутся из словаря Опции
*/
#/*
$from_email = Dic::valueBySlugs('options', 'from_email');
$from_email = is_object($from_email) && isset($from_email->name) ? $from_email->name : (Config::get('mail.from.address') ?: 'no@reply.ru');
$from_name = Dic::valueBySlugs('options', 'from_name');
$from_name = is_object($from_name) && isset($from_name->name) ? $from_name->name : (Config::get('mail.from.name') ?: 'No-reply');
#*/
/**
* Адрес, на который будет отправлено письмо, берется из словаря Опции
*/
$email = Dic::valueBySlugs('options', 'order_email');
$email = is_object($email) && isset($email->name) ? $email->name : (Config::get('mail.feedback.address') ?: 'dev@null.ru');
/**
* Если в адресе есть запятая - значит нужно отправить копию на все адреса
*/
$ccs = array();
if (strpos($email, ',')) {
$ccs = explode(',', $email);
foreach ($ccs as $e => $email)
$ccs[$e] = trim($email);
$email = array_shift($ccs);
}
$message->from($from_email, $from_name);
$message->subject('Трибуна: заявка на размещение - ' . @$data['org']);
$message->to($email);
if (isset($ccs) && is_array($ccs) && count($ccs))
foreach ($ccs as $cc)
$message->cc($cc);
});
$json_request['status'] = TRUE;
#$json_request['responseText'] = Input::all();
return Response::json($json_request, 200);
}
}
В этом файле много чего.. для меня не ясного. Подскажите, может в этом файле что-то поменять? Поставить свой адрес почты вместо dev@null.ru или вместо чего-то еще.. Заранее спасибо.
__________
И да... Конечно у меня каша в голове. Конечно у меня каша в сообщении выше, я толком не знаю что предоставить, чтобы было понятно о чем идет речь... Но ведь на то и форум? Если нужны какие-то другие файлы или часть кода - я предоставлю.
P.S. Гуглить пробовал. Маны читал/курил/учил матчасть и т.д. Но пока что это не дало эффекта.
Страницы 1