-
Notifications
You must be signed in to change notification settings - Fork 2
/
feed.php
executable file
·136 lines (125 loc) · 5.31 KB
/
feed.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?php
session_start();
?>
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>ReSoC - Flux</title>
<meta name="author" content="Julien Falconnet">
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<?php include('header.php');
?>
<div id="wrapper">
<?php
/**
* Cette page est TRES similaire à wall.php.
* Vous avez sensiblement à y faire la meme chose.
* Il y a un seul point qui change c'est la requete sql.
*/
/**
* Etape 1: Le mur concerne un utilisateur en particulier
*/
$userId = intval($_GET['user_id']);
?>
<?php
/**
* Etape 2: se connecter à la base de donnée
*/
$mysqli = new mysqli("localhost", "root", "root", "socialnetwork");
?>
<aside>
<?php
/**
* Etape 3: récupérer le nom de l'utilisateur
*/
$laQuestionEnSql = "SELECT * FROM `users` WHERE id= '$userId' ";
$lesInformations = $mysqli->query($laQuestionEnSql);
$user = $lesInformations->fetch_assoc();
//@todo: afficher le résultat de la ligne ci dessous, remplacer XXX par l'alias et effacer la ligne ci-dessous
// echo "<pre>" . print_r($user, 1) . "</pre>";
?>
<img src="user.jpg" alt="Portrait de l'utilisatrice"/>
<section>
<h3>Présentation</h3>
<p>Sur cette page vous trouverez tous les messages des utilisatrices
auxquelles est abonnée l'utilisatrice <?php echo $user['alias'] ?>
(n° <?php echo $userId ?>)
</p>
</section>
</aside>
<main>
<?php
include('like.php');
/**
* Etape 3: récupérer tous les messages des abonnements
*/
$laQuestionEnSql = "
SELECT posts.content,
posts.created,
users.alias as author_name,
count(likes.id) as like_number,
posts.user_id,
posts.id as post_id,
GROUP_CONCAT(DISTINCT tags.label) AS taglist
FROM followers
JOIN users ON users.id=followers.followed_user_id
JOIN posts ON posts.user_id=users.id
LEFT JOIN posts_tags ON posts.id = posts_tags.post_id
LEFT JOIN tags ON posts_tags.tag_id = tags.id
LEFT JOIN likes ON likes.post_id = posts.id
WHERE followers.following_user_id='$userId'
GROUP BY posts.id
ORDER BY posts.created DESC
";
$lesInformations = $mysqli->query($laQuestionEnSql);
if ( ! $lesInformations)
{
echo("Échec de la requete : " . $mysqli->error);
};
/**
* Etape 4: @todo Parcourir les messsages et remplir correctement le HTML avec les bonnes valeurs php
* A vous de retrouver comment faire la boucle while de parcours...
*/
$jeSuisConnecte = isset($_SESSION["connected_id"]);
if(!$jeSuisConnecte) { ?>
<p> Connectez-vous ! </p>
<?php }
else {
while ($post = $lesInformations->fetch_assoc())
{
// echo "<pre>" . print_r($post, 1) . "</pre>";
$mytags = explode(',', $post[taglist]);
?>
<article>
<h3>
<time><?php echo $post['created'] ?></time>
</h3>
<address>par <a href ="wall.php?user_id=<?php echo $post['user_id'] ?>"><?php echo $post['author_name'] ?></a></address>
<div>
<?php echo $post['content'] ?>
</div>
<footer>
<small>♥ <?php echo $post['like_number'] ?></small>
<form action="feed.php?user_id=<?php echo $userId?>" method="post">
<input type='hidden' name='like' value='true'>
<input type='hidden' name='post_id' value="<?php echo $post['post_id']?>">
<input type='submit' value='like'>
</form>
<?php for($i = 0;$i < count($mytags) ; $i++){
echo "<a href=''> #"
. $mytags[$i] .
"</a>";
}?>
</footer>
</article>
<?php
};
}
?>
</main>
</div>
</body>
</html>