|
|
@@ -17,6 +17,7 @@ use Symfony\Component\Validator\Constraints\Date;
|
|
|
|
|
|
class HomeController extends AbstractController
|
|
|
{
|
|
|
+ // Fonction de tri des messages
|
|
|
private function cmp_array($a, $b): int
|
|
|
{
|
|
|
if ($a->getDate() == $b->getDate()) {
|
|
|
@@ -30,20 +31,25 @@ class HomeController extends AbstractController
|
|
|
{
|
|
|
$session = $this->get('session');
|
|
|
|
|
|
+ // Redirection vers la route login si l'utilisateur n'est pas connecté.
|
|
|
if (null === $session->get('user')) {
|
|
|
return $this->redirectToRoute('login');
|
|
|
}
|
|
|
|
|
|
+ // Instanciation du formulaire dans Form/MessageType
|
|
|
$options = array("action" => $this->generateUrl('home'));
|
|
|
$form = $this->createForm(MessageType::class, null, $options);
|
|
|
|
|
|
+ // Code éxecuté lors de l'envoi du formulaire
|
|
|
if ($request->getMethod() == 'POST') {
|
|
|
$form->handleRequest($request);
|
|
|
if ($form->isValid()) {
|
|
|
$session = $this->get('session');
|
|
|
+ // Obtention du profil de l'utilisateur connecté
|
|
|
$em = $this->getDoctrine()->getManager();
|
|
|
$repository_profile = $em->getRepository(User::class);
|
|
|
$profile = $repository_profile->findOneBy(array('username' => $session->get('user')));
|
|
|
+ // Création du nouveau message dans la BDD avec ses valeurs
|
|
|
$message = new Message();
|
|
|
$text = $form->get('text')->getData();
|
|
|
$mentions = array();
|
|
|
@@ -51,11 +57,15 @@ class HomeController extends AbstractController
|
|
|
$dp = array();
|
|
|
$dh = array();
|
|
|
$urls = array();
|
|
|
+
|
|
|
+ // Recherche de motifs spéciaux (@, #, ...)
|
|
|
preg_match_all("~@([a-zA-Z0-9_]*)~", $text, $mentions);
|
|
|
preg_match_all("~#([a-zA-Z0-9_]*)~", $text, $hashtags);
|
|
|
preg_match_all("!DP %(.+)(?:\s|$)!U", $text, $dp);
|
|
|
preg_match_all("!DH %(.+)(?:\s|$)!U", $text, $dh);
|
|
|
preg_match_all("~[a-z]+://\S+~", $text, $urls);
|
|
|
+
|
|
|
+ // Recherche des URL dans le message et formatage en HTML
|
|
|
for($i = 0; $i < sizeof($urls[0]); $i++) {
|
|
|
$url = $urls[0][$i];
|
|
|
$urls[1][$i] = "<a href='$url'>$url</a>";
|