Vérification des droits CAT Forum depuis Header [Réglé]
FameLady93 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre FameLady93
- Inscrit le : 07/02/2011

Dans les modifications que j'apporte à un site basé sur PHPBOOST.
Je rencontre un petit problème.
Je désire lister les 5 derniers sujets dans un menu déroulant.
J'ai réussi, mais je n'arrive pas à trouver comment faire pour n'afficher que les 5 derniers sujets postés qu'un Membre peut voir, donc qu'il ai les droits de lecture dessus en vérifiant son appartenance aux différents groupes permis ainsi qu'à ces droits, modo, admins, etc...
Pour le moment mon code ressemble à ceci
Code PHP :
// Début Forum, Les 5 derniers sujets $result = $Sql->query_while("SELECT * FROM " . PREFIX . "forum_topics ORDER BY last_timestamp DESC " . $Sql->limit(0, 5), __LINE__, __FILE__); $title_menu = 'Les 5 derniers sujets'; $len_title = strlen($title_menu) - 2; $Template->assign_block_vars('menu_navigation_forum', array( 'TITLE_MENU_FORUM_' => $title_menu, 'ID_FORUM_' => 'forum', 'DEPTH_FORUM_' => 0, 'ABSOLUTE_URL_FORUM_' => PATH_TO_ROOT . '/forum/index.php', 'TITLE_FORUM_' => 'Forum', )); while ($row = $Sql->fetch_assoc($result)) { $row_title = $row['title']; $Template->assign_block_vars('elements_forum', array( 'URL_IMG_FORUM' => PATH_TO_ROOT . '/forum/forum_mini.png', 'ABSOLUTE_URL_FORUM' => PATH_TO_ROOT . '/forum/topic.php?id=' . $row['id'], 'TITLE_FORUM' => (strlen($row_title) > $len_title) ? substr($row_title, 0, $len_title) . '...' : $row_title, 'SUB_TITLE_FORUM' => $row_title, 'DATE_FORUM' => gmdate_format('d/m/Y', $row['last_timestamp']), )); } // Fin Forum, Les 5 derniers sujets
J'ai trouvée ceci dans la Doc
http://www.phpboost.com/wiki/classe-member
Et ceci
http://www.phpboost.com/wiki/methode-member-check-auth
M'indique que $Member n'existe pas.
Mon code ce situe dans header.php
Avez-vous une idée du code à employer ?
Une petite piste ?
Merci par avance
Édité par FameLady93 Le 25/02/2011 à 04h08
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Tu peux t'aider de cette partie de code :
Code PHP :
$result = $Sql->query_while("SELECT m1.login AS login, m2.login AS last_login, t.id, t.title, t.subtitle, t.user_id, t.nbr_msg, t.nbr_views, t.last_user_id , t.last_msg_id, t.last_timestamp, t.type, t.status, t.display_msg, v.last_view_id, p.question, tr.id AS idtrack FROM " . PREFIX . "forum_topics t LEFT JOIN " . PREFIX . "forum_view v ON v.user_id = '" . $User->get_attribute('user_id') . "' AND v.idtopic = t.id LEFT JOIN " . DB_TABLE_MEMBER . " m1 ON m1.user_id = t.user_id LEFT JOIN " . DB_TABLE_MEMBER . " m2 ON m2.user_id = t.last_user_id LEFT JOIN " . PREFIX . "forum_poll p ON p.idtopic = t.id LEFT JOIN " . PREFIX . "forum_track tr ON tr.idtopic = t.id AND tr.user_id = '" . $User->get_attribute('user_id') . "' WHERE t.idcat = '" . $id_get . "' ORDER BY t.type DESC , t.last_timestamp DESC " . $Sql->limit($Pagination->get_first_msg($CONFIG_FORUM['pagination_topic'], 'p'), $CONFIG_FORUM['pagination_topic']), __LINE__, __FILE__);
Pour $Member, dans la 3.0 ça a été remplacé par $User, voilà
FameLady93 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre FameLady93
- Inscrit le : 07/02/2011
Avec les permissions (auth) d'une catégorie de Forum ?
Car moi et les JOIN dans les requêtes SQL sa fait 2
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Code PHP :
$User->check_auth($data, $bit)
FameLady93 Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre FameLady93
- Inscrit le : 07/02/2011
Pourtant j'ai vue la documentation
Pour ceux que sa intéresse.
Code PHP :
// Début Forum, Les 5 derniers sujets $title_menu = 'Les 5 derniers sujets'; $len_title = strlen($title_menu) - 2; $Template->assign_block_vars('menu_navigation_forum', array( 'TITLE_MENU_FORUM_' => $title_menu, 'ID_FORUM_' => 'forum', 'DEPTH_FORUM_' => 0, 'ABSOLUTE_URL_FORUM_' => PATH_TO_ROOT . '/forum/index.php', 'TITLE_FORUM_' => 'Forum', )); $nbr_good_topic = 0; $limite_debut = 0; $limite_fin = 1; while ($nbr_good_topic < 5) { $result = $Sql->query_while("SELECT * FROM " . PREFIX . "forum_topics ORDER BY last_timestamp DESC " . $Sql->limit($limite_debut, $limite_fin), __LINE__, __FILE__); $row = $Sql->fetch_assoc($result); $result_auth_cat = $Sql->query_while("SELECT auth FROM " . PREFIX . "forum_cats WHERE id = '" . $row['idcat'] . "' ", __LINE__, __FILE__); $row_auth_cat = $Sql->fetch_assoc($result_auth_cat); $data_array_auth = unserialize($row_auth_cat['auth']); if ( $User->check_auth($data_array_auth, 0x01) ) { $row_title = $row['title']; $Template->assign_block_vars('elements_forum', array( 'URL_IMG_FORUM' => PATH_TO_ROOT . '/forum/forum_mini.png', 'ABSOLUTE_URL_FORUM' => PATH_TO_ROOT . '/forum/topic.php?id=' . $row['id'], 'TITLE_FORUM' => (strlen($row_title) > $len_title) ? substr($row_title, 0, $len_title) . '...' : $row_title, 'SUB_TITLE_FORUM' => $row_title, 'DATE_FORUM' => gmdate_format('d/m/Y', $row['last_timestamp']), )); $nbr_good_topic++; } $limite_debut++; $limite_fin++; } // Fin Forum, Les 5 derniers sujets
Merci encore ReidLos
Édité par FameLady93 Le 26/02/2011 à 14h52
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie