|
|
@@ -58,7 +58,7 @@ class HomeController extends AbstractController
|
|
|
$dh = array();
|
|
|
$urls = array();
|
|
|
|
|
|
- // Recherche de motifs spéciaux (@, #, ...)
|
|
|
+ // Recherche de motifs spéciaux (@, #, DP, DH, url)
|
|
|
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);
|
|
|
@@ -79,8 +79,10 @@ class HomeController extends AbstractController
|
|
|
if (!empty($urls[0])) {
|
|
|
$text = preg_replace($urls[0], $urls[1], $text);
|
|
|
}
|
|
|
+ // on vérifie s'il y a des mentions
|
|
|
for($i=0; $i < sizeof($mentions[0]); $i++) {
|
|
|
$user = $repository_profile->findOneBy(array('username' => $mentions[1][$i]));
|
|
|
+ //si l'utilisateur mentionné existe on l'ajoute
|
|
|
if ($user) {
|
|
|
$message->addMention($user);
|
|
|
$mentions[1][$i] = "<a href='/profile/" . $mentions[1][$i] . "'>" . $mentions[0][$i] . "</a>";
|
|
|
@@ -91,8 +93,10 @@ class HomeController extends AbstractController
|
|
|
}
|
|
|
}
|
|
|
$repository_hashtag = $em->getRepository(Hashtag::class);
|
|
|
+ // on vérifie s'il y a des hashtags
|
|
|
for ($i = 0; $i < sizeof($hashtags[0]); $i++) {
|
|
|
$hashtag = $repository_hashtag->findOneBy(array('name' => $hashtags[1][$i]));
|
|
|
+ //on le crée si pas déjà existant
|
|
|
if (!$hashtag) {
|
|
|
$hashtag = new Hashtag();
|
|
|
$hashtag->setName($hashtags[1][$i]);
|
|
|
@@ -102,6 +106,7 @@ class HomeController extends AbstractController
|
|
|
$hashtags[0][$i] = "~" . $hashtags[0][$i] . "~";
|
|
|
$em->persist($hashtag);
|
|
|
}
|
|
|
+ // on vérifie s'il y a des profils diablo
|
|
|
for($i=0; $i < sizeof($dp[0]); $i++) {
|
|
|
$ch = curl_init("https://richie.u-strasbg.fr/~virgile/sf4/public/index.php/cours/diablo/");
|
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
|
@@ -120,6 +125,7 @@ class HomeController extends AbstractController
|
|
|
$text = preg_replace($dp[0], $dp[1], $text);
|
|
|
}
|
|
|
}
|
|
|
+ //on vérifie s'il y a des héros diablo
|
|
|
for($i=0; $i < sizeof($dh[0]); $i++) {
|
|
|
$values = explode("/", $dh[1][$i]);
|
|
|
$ch = curl_init("https://richie.u-strasbg.fr/~virgile/sf4/public/index.php/cours/diablo/");
|
|
|
@@ -162,6 +168,7 @@ class HomeController extends AbstractController
|
|
|
$subscriptions = $profile->getSubscriptions();
|
|
|
$rt = $profile->getRetweets();
|
|
|
$sub_msg = array();
|
|
|
+ //traitement des retweets s'il y en a
|
|
|
foreach ($rt as $r) {
|
|
|
$og_message = $r->getOgMessage();
|
|
|
$rt_message = new Message();
|
|
|
@@ -171,19 +178,23 @@ class HomeController extends AbstractController
|
|
|
$rt_message->setDate($r->getRtDate());
|
|
|
array_push($sub_msg, $rt_message);
|
|
|
}
|
|
|
+ //traitement des messages où l'utilisateur est mentionné
|
|
|
foreach ($mentioned_messages as $msg_m) {
|
|
|
if (!in_array($msg_m->getSender(), $subscriptions->getValues())) {
|
|
|
array_push($sub_msg, $msg_m);
|
|
|
}
|
|
|
}
|
|
|
+ //récupération des messages de l'utilsiateur connecté
|
|
|
foreach ($profile->getMessages() as $msg_u) {
|
|
|
array_push($sub_msg, $msg_u);
|
|
|
}
|
|
|
+ //récupération des messages de ses abonnements
|
|
|
foreach ($subscriptions as $user) {
|
|
|
foreach ($user->getMessages() as $msg) {
|
|
|
array_push($sub_msg, $msg);
|
|
|
}
|
|
|
}
|
|
|
+ //tri par date
|
|
|
usort($sub_msg, array($this, "cmp_array"));
|
|
|
|
|
|
|
|
|
@@ -208,6 +219,7 @@ class HomeController extends AbstractController
|
|
|
$repository_profile = $em->getRepository(User::class);
|
|
|
$profile = $repository_profile->findOneBy(array('username' => $session->get('user')));
|
|
|
$repository_message = $em->getRepository(Message::class);
|
|
|
+ // création du retweet et ajout en bdd
|
|
|
$rt = new Retweets();
|
|
|
$rt->setRtDate(new \DateTime("now"));
|
|
|
$rt->setRetweeter($profile);
|