From 08af4a5322c995db290dbffc8473faab0c098b35 Mon Sep 17 00:00:00 2001 From: Axel Venet Date: Wed, 20 Aug 2025 01:22:55 +0200 Subject: [PATCH] WIP --- .../Controller/Forum/CloseTopic.php | 39 ++++++++++ src/action/std/demeter/donate.php | 27 ------- src/action/std/demeter/message/edit.php | 47 ------------ src/action/std/demeter/message/write.php | 73 ------------------- src/action/std/demeter/topic/close.php | 36 --------- src/action/std/demeter/topic/createTopic.php | 65 ----------------- src/action/std/hermes/radio/write.php | 40 ---------- src/action/std/hermes/roadmap/write.php | 43 ----------- 8 files changed, 39 insertions(+), 331 deletions(-) create mode 100644 src/Modules/Demeter/Infrastructure/Controller/Forum/CloseTopic.php delete mode 100755 src/action/std/demeter/donate.php delete mode 100755 src/action/std/demeter/message/edit.php delete mode 100755 src/action/std/demeter/message/write.php delete mode 100755 src/action/std/demeter/topic/close.php delete mode 100755 src/action/std/demeter/topic/createTopic.php delete mode 100755 src/action/std/hermes/radio/write.php delete mode 100755 src/action/std/hermes/roadmap/write.php diff --git a/src/Modules/Demeter/Infrastructure/Controller/Forum/CloseTopic.php b/src/Modules/Demeter/Infrastructure/Controller/Forum/CloseTopic.php new file mode 100644 index 000000000..b01d6812e --- /dev/null +++ b/src/Modules/Demeter/Infrastructure/Controller/Forum/CloseTopic.php @@ -0,0 +1,39 @@ +get($topicId) + ?? throw $this->createNotFoundException('Topic not found'); + + if ($currentPlayer->status <= 2) { + throw $this->createAccessDeniedException('You cannot close or open a topic'); + } + + $topic->isClosed = !$topic->isClosed; + + $forumTopicRepository->save($topic); + + $this->addFlash('success', 'Le sujet a bien été fermé/ouvert'); + + return $this->redirectToRoute('view_forum_topic', [ + 'forumId' => $forumId, + 'topicId' => $topicId, + ]); + } +} diff --git a/src/action/std/demeter/donate.php b/src/action/std/demeter/donate.php deleted file mode 100755 index c7eba40a5..000000000 --- a/src/action/std/demeter/donate.php +++ /dev/null @@ -1,27 +0,0 @@ -getContainer()->get(\App\Modules\Demeter\Manager\ColorManager::class); -$playerManager = $this->getContainer()->get(\App\Modules\Zeus\Manager\PlayerManager::class); -$session = $this->getContainer()->get(\App\Classes\Library\Session\SessionWrapper::class); -$request = $this->getContainer()->get('app.request'); - -// credit -$credit = $request->request->get('credit'); - -if ($credit) { - $player = $playerManager->get($session->get('playerId')); - - $credit = ($credit > $player->credit) ? $player->credit : $credit; - $playerManager->decreaseCredit($player, $credit); - $colorManager->get($session->get('playerInfo')->get('color'))->credits += $credit; - - $this->getContainer()->get(\App\Classes\Entity\EntityManager::class)->flush(); - - $session->addFlashbag('Vous venez de remplir les caisse de votre faction de '.$credit.' crédit'.Format::addPlural($credit).' :)', Flashbag::TYPE_SUCCESS); -} else { - throw new FormException('Manque d\'information.'); -} diff --git a/src/action/std/demeter/message/edit.php b/src/action/std/demeter/message/edit.php deleted file mode 100755 index 1cb8a2ba7..000000000 --- a/src/action/std/demeter/message/edit.php +++ /dev/null @@ -1,47 +0,0 @@ -getContainer()->get('app.request'); -$session = $this->getContainer()->get(\App\Classes\Library\Session\SessionWrapper::class); -$topicManager = $this->getContainer()->get(\App\Modules\Demeter\Manager\Forum\ForumTopicManager::class); -$forumMessageManager = $this->getContainer()->get(\App\Modules\Demeter\Manager\Forum\ForumMessageManager::class); - -$content = $request->request->get('content'); -$id = $request->query->get('id'); - -if ($content && $id) { - $_FMM = $forumMessageManager->getCurrentSession(); - $forumMessageManager->newSession(); - $forumMessageManager->load(['id' => $id]); - - if ($forumMessageManager->size() > 0) { - $m = $forumMessageManager->get(); - - $_TOM = $topicManager->getCurrentSession(); - $topicManager->newSession(); - $topicManager->load(['id' => $m->rTopic]); - - $t = $topicManager->get(); - - if ($session->get('playerId') == $m->rPlayer || ($session->get('playerInfo')->get('status') > 2 && 20 != $t->rForum)) { - $forumMessageManager->edit($m, $content); - $m->dLastModification = Utils::now(); - - $session->addFlashbag('Message édité.', Flashbag::TYPE_SUCCESS); - } else { - throw new ErrorException('Vous ne pouvez pas éditer ce message.'); - } - - $topicManager->changeSession($_TOM); - } else { - throw new ErrorException('Le message n\'existe pas.'); - } - - $forumMessageManager->changeSession($_FMM); -} else { - throw new FormException('Manque d\'information.'); -} diff --git a/src/action/std/demeter/message/write.php b/src/action/std/demeter/message/write.php deleted file mode 100755 index 08cdf784f..000000000 --- a/src/action/std/demeter/message/write.php +++ /dev/null @@ -1,73 +0,0 @@ -getContainer()->get('app.request'); -$response = $this->getContainer()->get('app.response'); -$session = $this->getContainer()->get(\App\Classes\Library\Session\SessionWrapper::class); -$database = $this->getContainer()->get(\App\Classes\Database\Database::class); -$topicManager = $this->getContainer()->get(\App\Modules\Demeter\Manager\Forum\ForumTopicManager::class); -$forumMessageManager = $this->getContainer()->get(\App\Modules\Demeter\Manager\Forum\ForumMessageManager::class); -$tutorialHelper = $this->getContainer()->get(\App\Modules\Zeus\Helper\TutorialHelper::class); - -$content = $request->request->get('content'); -$rTopic = $request->query->get('rtopic'); - -if ($rTopic and $content) { - $S_TOM_1 = $topicManager->getCurrentSession(); - $topicManager->load(['id' => $rTopic]); - - if (1 == $topicManager->size()) { - if (!$topicManager->get()->isClosed) { - $message = new ForumMessage(); - $message->rPlayer = $session->get('playerId'); - $message->rTopic = $rTopic; - $message->dCreation = Utils::now(); - $message->dLastMessage = Utils::now(); - - $forumMessageManager->edit($message, $content); - - $forumMessageManager->add($message); - - $topicManager->get()->dLastMessage = Utils::now(); - - // tutorial - if (false == $session->get('playerInfo')->get('stepDone') && - TutorialResource::FACTION_FORUM === $session->get('playerInfo')->get('stepTutorial')) { - $tutorialHelper->setStepDone(); - } - - if (30 != $topicManager->get()->rForum) { - $response->redirect('faction/view-forum/forum-'.$topicManager->get()->rForum.'/topic-'.$rTopic.'/sftr-2'); - } - - if (true === $this->getContainer()->getParameter('data_analysis')) { - $qr = $database->prepare( - 'INSERT INTO - DA_SocialRelation(`from`, type, message, dAction) - VALUES(?, ?, ?, ?)' - ); - $qr->execute([$session->get('playerId'), 1, $content, Utils::now()]); - } - - $session->addFlashbag('Message créé.', Flashbag::TYPE_SUCCESS); - } else { - throw new ErrorException('Ce sujet est fermé.'); - } - } else { - throw new ErrorException('Le topic n\'existe pas.'); - } - - $topicManager->changeSession($S_TOM_1); -} else { - throw new FormException('Manque d\'information.'); -} diff --git a/src/action/std/demeter/topic/close.php b/src/action/std/demeter/topic/close.php deleted file mode 100755 index 79e969d8c..000000000 --- a/src/action/std/demeter/topic/close.php +++ /dev/null @@ -1,36 +0,0 @@ -getContainer()->get('app.request'); -$response = $this->getContainer()->get('app.response'); -$session = $this->getContainer()->get(\App\Classes\Library\Session\SessionWrapper::class); -$topicManager = $this->getContainer()->get(\App\Modules\Demeter\Manager\Forum\ForumTopicManager::class); - -$id = $request->query->get('id'); - -if (false !== $id) { - $S_TOM = $topicManager->getCurrentSession(); - $topicManager->newSession(); - $topicManager->load(['id' => $id]); - - if (1 == $topicManager->size()) { - if ($session->get('playerInfo')->get('status') > 2) { - if (1 == $topicManager->get()->isClosed) { - $topicManager->get()->isClosed = 0; - } else { - $topicManager->get()->isClosed = 1; - } - $session->addFlashbag('Le sujet a bien été fermé/ouvert', Flashbag::TYPE_SUCCESS); - } else { - throw new FormException('Vous n\'avez pas les droits'); - } - } else { - throw new FormException('Ce sujet n\'existe pas'); - } - - $topicManager->changeSession($S_TOM); -} else { - throw new FormException('Manque d\'information'); -} diff --git a/src/action/std/demeter/topic/createTopic.php b/src/action/std/demeter/topic/createTopic.php deleted file mode 100755 index c5634e463..000000000 --- a/src/action/std/demeter/topic/createTopic.php +++ /dev/null @@ -1,65 +0,0 @@ -getContainer()->get('app.request'); -$session = $this->getContainer()->get(\App\Classes\Library\Session\SessionWrapper::class); -$database = $this->getContainer()->get(\App\Classes\Database\Database::class); -$tutorialHelper = $this->getContainer()->get(\App\Modules\Zeus\Helper\TutorialHelper::class); -$topicManager = $this->getContainer()->get(\App\Modules\Demeter\Manager\Forum\ForumTopicManager::class); -$forumMessageManager = $this->getContainer()->get(\App\Modules\Demeter\Manager\Forum\ForumMessageManager::class); - -$title = $request->request->get('title'); -$content = $request->request->get('content'); -$rForum = $request->query->get('rforum'); - -if (false !== $title and false !== $content and false !== $rForum) { - $topic = new ForumTopic(); - $topic->title = $title; - $topic->rForum = $rForum; - $topic->rPlayer = $session->get('playerId'); - $topic->rColor = $session->get('playerInfo')->get('color'); - $topic->dCreation = Utils::now(); - $topic->dLastMessage = Utils::now(); - - $rTopic = $topicManager->add($topic); - - $message = new ForumMessage(); - $message->rPlayer = $session->get('playerId'); - $message->rTopic = $rTopic; - $forumMessageManager->edit($message, $content); - $message->dCreation = Utils::now(); - $message->dLastMessage = Utils::now(); - - $forumMessageManager->add($message); - - // tutorial - if (false == $session->get('playerInfo')->get('stepDone') && - TutorialResource::FACTION_FORUM === $session->get('playerInfo')->get('stepTutorial')) { - $tutorialHelper->setStepDone(); - } - - if (true === $this->getContainer()->getParameter('data_analysis')) { - $qr = $database->prepare( - 'INSERT INTO - DA_SocialRelation(`from`, type, message, dAction) - VALUES(?, ?, ?, ?)' - ); - $qr->execute([$session->get('playerId'), 1, $content, Utils::now()]); - } - - $response->redirect('faction/view-forum/forum-'.$topic->rForum.'/topic-'.$topic->id.'/sftr-2'); - $session->addFlashbag('Topic créé.', Flashbag::TYPE_SUCCESS); -} else { - throw new FormException('Manque d\information.'); -} diff --git a/src/action/std/hermes/radio/write.php b/src/action/std/hermes/radio/write.php deleted file mode 100755 index cc333596c..000000000 --- a/src/action/std/hermes/radio/write.php +++ /dev/null @@ -1,40 +0,0 @@ -getContainer()->get('app.request'); -// $session = $this->getContainer()->get(\App\Classes\Library\Session\SessionWrapper::class); -// $parser = $this->getContainer()->get(\App\Classes\Library\Parser::class); -// -// for ($i = 0; $i < $session->get('playerBase')->get('ob')->size(); $i++) { -// $verif[] = $session->get('playerBase')->get('ob')->get($i)->get('sector'); -// } -// for ($i = 0; $i < $session->get('playerBase')->get('ms')->size(); $i++) { -// $verif[] = $session->get('playerBase')->get('ms')->get($i)->get('sector'); -// } -// $verif = array_unique($verif); -// -// $sector = Utils::getHTTPData('sector'); -// $content = Utils::getHTTPData('content'); -// -// -// // protection des inputs -// $content = $parser->protect($content); -// -// if ($sector !== FALSE AND $content !== FALSE AND in_array($sector, $verif) AND $content !== '') { -// $sector = intval($sector); -// -// $message = new MessageRadio(); -// $message->rPlayer = $session->get('playerId'); -// $message->rSystem = $sector; -// $message->edit($content); -// ASM::$mrm->add($message); -// -// CTR::$alert->add('Message envoyé', ALERT_STD_SUCCESS); -// } else { -// CTR::$alert->add('pas assez d\'informations pour écrire un message dans une radio', ALERT_STD_FILLFORM); -// } diff --git a/src/action/std/hermes/roadmap/write.php b/src/action/std/hermes/roadmap/write.php deleted file mode 100755 index 10063721f..000000000 --- a/src/action/std/hermes/roadmap/write.php +++ /dev/null @@ -1,43 +0,0 @@ -getContainer()->get('app.request'); -$session = $this->getContainer()->get(\App\Classes\Library\Session\SessionWrapper::class); -$parser = $this->getContainer()->get(\App\Classes\Library\Parser::class); -$roadmapManager = $this->getContainer()->get(\App\Modules\Hermes\Manager\RoadMapManager::class); - -if (false == $session->get('playerInfo')->get('admin')) { - $response->redirect('profil'); -} else { - $content = $request->request->get('content'); - $statement = $request->query->get('statement', false); - - if (!empty($content)) { - $rm = new RoadMap(); - $rm->rPlayer = $session->get('playerId'); - $rm->setContent($content); - $rm->setParsedContent($parser->parse($content)); - if (false !== $statement) { - if (0 == $statement or 1 == $statement) { - $rm->statement = $statement; - } - } else { - $rm->statement = RoadMap::DISPLAYED; - } - $rm->dCreation = Utils::now(); - $roadmapManager->add($rm); - - $session->addFlashbag('Roadmap publiée', Flashbag::TYPE_SUCCESS); - } else { - throw new FormException('pas assez d\'informations pour écrire un message dans la roadmap'); - } -}