title = "Карта инициатив Ачинского округа"
url = "/initiatives"
layout = "default"
getMessage());
}
}
function onSubmitIdea()
{
\Log::info('=== Начало обработки идеи ===');
try {
$idea = trim(post('idea') ?: '');
$location = trim(post('location') ?: '');
$cadastr = trim(post('cadastr') ?: '');
$contact = trim(post('contact') ?: '');
$lat = post('lat') ?: '';
$lng = post('lng') ?: '';
if ($idea === '' || $location === '') {
return ['status' => 'error', 'message' => 'Заполните обязательные поля'];
}
$body = "Новая идея для благоустройства:\n" .
"Идея: " . $idea . "\n" .
"Место: " . $location . "\n" .
"Кадастр: " . ($cadastr ?: 'не указан') . "\n" .
"Координаты: " . $lat . ", " . $lng . "\n" .
"Контакт: " . ($contact ?: 'не оставлен');
// 1. Гарантированное сохранение в файл
$logFile = storage_path('logs/ideas.log');
file_put_contents($logFile, $body . "\n-------------------\n", FILE_APPEND | LOCK_EX);
// 2. Попытка отправки на почту
try {
\Mail::raw($body, function ($message) {
$message->to('econom@achadm.ru');
$message->subject('Новая идея для благоустройства (карта)');
});
return ['status' => 'ok', 'message' => 'Спасибо! Ваша идея успешно отправлена.'];
} catch (\Throwable $e) {
\Log::error('Ошибка почты: ' . $e->getMessage());
return ['status' => 'saved', 'message' => 'Заявка сохранена в системе, но возникла техническая задержка с отправкой письма. Куратор её увидит.'];
}
} catch (\Throwable $e) {
\Log::error('Критическая ошибка: ' . $e->getMessage());
return ['status' => 'error', 'message' => 'Произошла ошибка сервера. Попробуйте позже.'];
}
}
?>
Карта инициатив Ачинского округа
Кликните по месту на карте или нажмите «📍», чтобы предложить благоустройство.