100 vues
Récupérer membres d'un groupe
Gnesis

12 sujets, 71 réponses

Donateurs
Message non lu
Bonjour ! :)

J'ai fouillé dans le fofo pour cette question, je pense que j'ai déjà aperçu un post identique mais je ne le trouve plus :/

J'aimerai récupérer les membres qui ont été assigné dans un groupe "streamer", pour afficher les membres à la suite du lecteur twitch pour mettre en avant les membres qui stream.

Du coup je dois partir sur...:

<?php
if($Neofrag->user->groups('Streamer')){
echo ;
}
?>


..?

En sachant qu'il pourrait y avoir plusieurs membres je dois donc partir sur une boucle ?

Mon site

Merci d'avance :)
French Family
3 participants
18 réponses
Gnesis

12 sujets, 71 réponses

Donateurs
Message non lu
Bonjour ! :)

J'ai essayé le code, tout disparaissait y compris les iframes. Je suppose donc que ce code est censé se placer dans controllers et faire l'appel dans la vue comme tu l'as dit, du coup je suis reparti vers mon code avec la fonction preg_match et ça fonctionne, car je n'ai pas absolument tout compris au niveau du fonctionnement du controllers, car placer le code que tu m'as donné dans le controllers ne fonctionne pas, je suppose que je le place au mauvais endroit ou bien je dois le placer dans une fonction ou autre, je ne sais pas ^^. Si un jour vous avez le temps et l'occasion, je suis intéressé pour avoir des explications sur le fonctionnement, en vocal si possible pour pouvoir poser mes questions plus facilement car j'aimerai aussi participer au développement de Nf mais vu mes connaissances, à part ce qu'y concerne l'html/css, je ne suis pas d'une grande utilité :) . En attendant je laisserai ce code et améliorerait le module quand j'aurai un peu plus de cordes à mon arc :D

Merci beaucoup encore une fois de prendre de votre temps pour nous/m' aider :)
French Family
eResnova

17 sujets, 875 réponses

Contributeurs Staff
Message non lu
Salut Gnesis,

Oui alors, mon code se place dans le contrôleur mais il y a une manipulation à faire dans le foreach() pour conserver les utilisateurs qui sont des streamers.

Résumé du code :

Dans le contrôleur index.php tu dois avoir ceci :

public function index()
{
$group = $this->groups->check_group(array(4));
// Requête pour récupérer tous les membres du site - non supprimés - avec leur profil :
$users = $this->db ->select('u.user_id', 'u.username', 'up.avatar', 'up.sex', 'up.last_name', 'up.quote', 'up.location', 'up.website')
->from('nf_users u')
->join('nf_users_profiles up', 'u.user_id = up.user_id')
->where('u.deleted', FALSE)
->get();
$streamers = array();
foreach ($users as $user)
{
// Si le membre est présent dans le groupe :
if (in_array($user['user_id'], $group['users']))
{
// On traite les valeurs souhaitées :
if (preg_match("/youtube/", $user['website']))
{
$link = icon('fa-youtube').' <a href="'.$user['website'].'">Accéder à sa page</a>';
}
else if (preg_match("/facebook/", $user['website']))
{
$link = icon('fa-facebook').' <a href="'.$user['website'].'">Accéder à sa page</a>';
}
else if (preg_match("/twitch/", $user['website']))
{
$link = icon('fa-twitch').' <a href="'.$user['website'].'">Accéder à sa page</a>';
}
else
{
$link = icon('fa-link').' <a href="'.$user['website'].'">Accéder à sa page</a>';
}
// On stock le membre dans un tableau
$streamers[] = array(
'user_id' => $user['user_id'],
'username' => $user['username'],
'link' => $this->user->link($user['user_id'], $user['username']),
'avatar' => $this->user->avatar($user['avatar'], $user['sex'], $user['user_id'], $user['username']),
'last_name' => $user['last_name'],
'quote' => $user['quote'],
'location' => $user['location'],
   'website' => $user['website'],
'link' => $link
);
}
}

return new Panel(array(
'title' => 'WebTV',
'icon' => 'fa-video-camera',
'content' => $this->load->view('index', array(
'streamers' => $streamers
))
));
}


Ensuite dans ta vue index.tpl.php :

<div class="container-webtv">
<iframe src="https://player.twitch.tv/?channel=frenchfamilytv" frameborder="0" scrolling="no" height="660" width="75%"></iframe>
<iframe src="https://www.twitch.tv/frenchfamilytv/chat?popout=" frameborder="0" scrolling="no" height="660" width="25%"></iframe>
</div>
<?php if (!empty($data['streamers'])): ?>
<div class="titre-streamers">
Nos streamers
</div>
<div class="container-streamers">
<ul class="list-group">
<?php foreach ($data['streamers'] as $streamer): ?>
<li class="list-group-item">
<?php if ($data['website']): ?>
<div class="pull-right">
<?php echo $stream['link']; ?>
</div>
<?php endif; ?>
<?php echo $stream['user_link']; ?>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>

La vue est un exemple, à toi de réorganiser tout ça en fonction de ce que tu veux afficher.
Dans la boucle foreach de la vue, $streamer contient toutes les valeurs déclarées dans le contrôleur. Tu peux donc piocher dedans.
Gnesis

12 sujets, 71 réponses

Donateurs
Message non lu
Bonsoir :)

Sry pour l'attente, bizarrement ça me met un error 500, j'ai juste copier/coller pour tester mais ça ne va pas /:
French Family