/** * Добавляем проект и ссылку * * @param User $user * @param $link * @return bool * @throws \Exception * @throws \PropelException */ public function addProjectByLink(User $user, $link) { if ($this->projectIsset($link)) { return false; } $title = $link; $title_params = explode('//', $link); if (isset($title_params[1])) { $title_params2 = explode('/', $title_params[1]); $title = $title_params2[0]; } //добавляем проект $project = new Project(); $project->setTitle($title)->setActive(true)->setLink($link)->setUser($user)->save(); //проверяем что проект создался if (!$project) { throw new \Exception('Не удалось добавить проект ' . $title); } //добавляем сслыку if (!$project->addLink($link, 'Главная')) { throw new \Exception('Не удалось добавить ссылку к проекту ' . $title); } return true; }
/** * Отправка уведомления, что с сайтом всё ОК * * @param Project $project * @return bool */ private function sendGoodMail(Project $project, $custom_port = false) { $mail_service = $this->getMailService(); $custom_port_text = $custom_port ? 'порт: ' . $custom_port : ''; $subject = "Доступ к сайту " . $project->getTitle() . $custom_port_text . ' полностью восстановлен'; $body = "Доступ к сайту <a href='" . $project->getlinkUrl() . "'>" . $project->getTitle() . "</a> " . $custom_port_text . " полностью восстановлен.<br /><br />--------<br /><a href='http://checkpage.ru'>CheckPage.ru</a>"; $emails = $project->getUserEmails(); return $mail_service->sendeMail($subject, $body, $emails); }
/** * Проставляем кастомный порт проекту * * @param Project $project * @param $port * @throws \Exception * @throws \PropelException */ private function addCustomPort(Project $project, $port) { $project->setPort($port)->save(); $this->log('<info>SUCCESS</info> Кастомный порт <comment>' . $port . '</comment> у проекта <comment>' . $project->getTitle() . '</comment> успешно прописан'); }
/** * Создание объекта "Проект" в базе * * @param $form * @return Project * @throws \Exception * @throws \PropelException */ private function addProject($form) { $data = $form->getData(); $project = new Project(); $project->setTitle($data['title'])->setLink($data['link'])->setActive(true)->setUser($this->getUser())->save(); return $project; }