Menu dans le subheader suivant membre connecté [Réglé]
tornero Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre tornero
- Inscrit le : 26/04/2009
J'ai créé un menu horizontal dans le subheader avec des sous-menus. Je veux gérer l'affichage des menus (et sous-menu) suivant les membres (admin, modérateur, membre groupe A, membre groupe B) connectés en passant par le code se trouvant dans le header.tpl; Quel est le code php à mettre? En y mettant "# IF C_USER_NOTCONNECTED #" je n'ai toujours pas différencier entre les catégories de membres.
Visiteur
Boosteur Inactif
Tu ne verras le différence que si tu n'es pas connecté... Cela me parait logique !
tornero Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre tornero
- Inscrit le : 26/04/2009
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Code TPL :
# IF C_USER_CONNECTED # | # ENDIF #
Code TPL :
# IF C_ADMIN_AUTH # | # ENDIF #
Code TPL :
# IF C_MODERATOR_AUTH # | # ENDIF #
Édité par ReidLos Le 27/12/2009 à 17h54
tornero Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre tornero
- Inscrit le : 26/04/2009
Code PHP :
$tpl->assign_vars(array( 'C_ADMIN_AUTH' => $User->check_level(ADMIN_LEVEL), 'C_MODERATOR_AUTH' => $User->check_level(MODERATOR_LEVEL), 'C_MEMBER_AUTH' => $User->check_level(MEMBER_LEVEL), 'C_GROUP_1' => $User->get_attribute('user_groups') == 1, 'C_GROUP_2' => $User->get_attribute('user_groups') == 2, 'C_UNREAD_CONTRIBUTION' => $contribution_number != 0, 'C_KNOWN_NUMBER_OF_UNREAD_CONTRIBUTION' => $contribution_number > 0, 'C_UNREAD_ALERT' => (bool)AdministratorAlertService::get_number_unread_alerts(), 'NUM_UNREAD_CONTRIBUTIONS' => $contribution_number, 'NUMBER_UNREAD_ALERTS' => AdministratorAlertService::get_number_unread_alerts(), 'IMG_PM' => $User->get_attribute('user_pm') > 0 ? 'new_pm.gif' : 'pm_mini.png', 'U_USER_PM' => TPL_PATH_TO_ROOT . '/member/pm' . url('.php?pm=' . $User->get_attribute('user_id'), '-' . $User->get_attribute('user_id') . '.php'), 'U_USER_ID' => url('.php?id=' . $User->get_attribute('user_id') . '&view=1', '-' . $User->get_attribute('user_id') . '.php?view=1'), 'U_DISCONNECT' => HOST . DIR . '/member/member.php?disconnect=true&token=' . $Session->get_token(), 'L_NBR_PM' => ($User->get_attribute('user_pm') > 0 ? ($User->get_attribute('user_pm') . ' ' . (($User->get_attribute('user_pm') > 1) ? $LANG['message_s'] : $LANG['message'])) : $LANG['private_messaging']), 'L_PROFIL' => $LANG['profile'], 'L_ADMIN_PANEL' => $LANG['admin_panel'], 'L_MODO_PANEL' => $LANG['modo_panel'], 'L_PRIVATE_PROFIL' => $LANG['my_private_profile'], 'L_DISCONNECT' => $LANG['disconnect'], 'L_CONTRIBUTION_PANEL' => $LANG['contribution_panel'] ));
ne serait-il pas possible de différencier entre les groupes?
Édité par Visiteur Le 28/12/2009 à 12h01
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Ensuite
Code PHP :
$Member->Get_attribute('user_groups')
Donne 1|2| Si groupe le membre est dans un groupe avec pour id 1 et 2
Donc ensuite tu utilise la fonction explode et tu pourra ensuite vérifier si tes valeurs elles sont présentes
Édité par ReidLos Le 27/12/2009 à 18h31
tornero Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre tornero
- Inscrit le : 26/04/2009
Code PHP :
134 <li><a href="../articles/articles.php?cat=2">Autres</a></li> 135 136 <?php 137 $Member->Get_attribute('user_groups'); 138 if (in_array('1', explode('|',$Member))) { ?> 139 <li><a href="../articles/articles.php?cat=3">Conseil municipal</a></li> 140 141 <?php } ?> 142 <li><a href="../articles/articles.php?cat=4">Commune</a></li>
Maintenant j'ai l'erreur:
Fatal error: Call to a member function Get_attribute() on a non-object in C:Program Fileswampwwwcachetpltpl_commune_header.php on line 137
Quelle erreur ai-je faite?
Edit Swan: Merci d'utiliser les balises adéquates
Édité par Visiteur Le 28/12/2009 à 12h01
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Tu ne peux pas mélanger le code php au code html...
Le système de templates est fait pour ca...
Ensuite ta fonction explode est fausse...
tu peux faire :
Code PHP :
il faut aussi apparament vider le cache...
Édité par ReidLos Le 27/12/2009 à 22h45
tornero Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre tornero
- Inscrit le : 26/04/2009
Dans header.php
Code PHP :
..... 28 if(defined('PHPBOOST')!==true) 29 { 30 exit; 31 } 32 global $Sql,$Template,$MENUS,$LANG,$THEME,$CONFIG,$Bench,$Session,$User,$Cache,$THEME_CONFIG,$CSS; 33 ...... 166 $member_connected=$User->check_level(MEMBER_LEVEL); 167 $Template->assign_vars(array( 168 'PATH_TO_ROOT'=>TPL_PATH_TO_ROOT, 169 'SID'=>SID, 170 'SERVER_NAME'=>$CONFIG['site_name'], 171 'SITE_NAME'=>$CONFIG['site_name'], 172 'TITLE'=>stripslashes(TITLE), 173 'SITE_DESCRIPTION'=>$CONFIG['site_desc'], 174 'SITE_KEYWORD'=>$CONFIG['site_keyword'], 175 'THEME'=>get_utheme(), 176 'LANG'=>get_ulang(), 177 'ALTERNATIVE_CSS'=>$alternative_css, 178 'C_ADMIN_AUTH'=>$User->check_level(ADMIN_LEVEL), 179 'C_MODERATOR_AUTH'=>$User->check_level(MODERATOR_LEVEL), 180 'C_USER_CONNECTED'=>$member_connected, 181 'C_USER_NOTCONNECTED'=>!$member_connected, 182 'C_BBCODE_TINYMCE_MODE'=>$User->get_attribute('user_editor')=='tinymce', 183 'L_XML_LANGUAGE'=>$LANG['xml_lang'], 184 'L_VISIT'=>$LANG['guest_s'], 185 'L_TODAY'=>$LANG['today'], 186 'L_REQUIRE_PSEUDO'=>$LANG['require_pseudo'], 187 'L_REQUIRE_PASSWORD'=>$LANG['require_password'] 188 )); 189 $membre=$User->get_attribute('user_groups'); 190 $membre_ex=explode('|', $membre); 191 if (in_array ("1", $membre_ex)) 192 { 193 $Template->assign_vars(array( 194 'C_GROUP_1'=>true 195 )); 196 } 197 if (in_array ("2", $membre_ex)) 198 { 199 $Template->assign_vars(array( 200 'C_GROUP_2'=>true 201 )); 202 } .....
dans le header.tpl, j'ai le code suivant:
Code HTML :
.......... 137 <li><a href="#">Informations</a> 138 <ul> 139 <li><a href="../articles/articles.php?cat=2">Autres</a></li> 140 141 # IF 'C_USER_CONNECTED' # 142 # IF 'C_ADMIN_AUTH' OR 'C_MODERATOR_AUTH' OR 'C_GROUP_1' # 143 <li><a href="../articles/articles.php?cat=3">Conseil municipal</a></li> 144 145 # ENDIF # 146 <li><a href="../articles/articles.php?cat=4">Commune</a></li> 147 </ul> 148 </li>
En connexion admin, il m'affiche le lien "Conseil municipal", en connexion groupe 1, alors qu'il devrait également me l'afficher, le lien n'existe pas. A mon avis, 'C_GROUP_1' n'est pas reconnu ou n'est pas true, mais pourquoi?
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
ca donne :
Code TPL :
..... 137 <li><a href="#">Informations</a> 138 <ul> 139 <li><a href="../articles/articles.php?cat=2">Autres</a></li> 140 141 # IF C_USER_CONNECTED # 142 # IF C_ADMIN_AUTH OR C_MODERATOR_AUTH OR C_GROUP_1 # 143 <li><a href="../articles/articles.php?cat=3">Conseil municipal</a></li> 144 145 # ENDIF # 146 <li><a href="../articles/articles.php?cat=4">Commune</a></li> 147 </ul> 148 </li>
Ensuite tu peux faire :
Je ne sais pas ce que tu veux réellement faire mais bon... voila la c'est mieux pour moi... si le modo est autorisé l'admin le sera forcément

Code TPL :
..... 137 <li><a href="#">Informations</a> 138 <ul> 139 <li><a href="../articles/articles.php?cat=2">Autres</a></li> 140 142 # IF C_MODERATOR_AUTH # # IF C_GROUP_1 # 143 <li><a href="../articles/articles.php?cat=3">Conseil municipal</a></li> 144 # ENDIF # 145 # ENDIF # 146 <li><a href="../articles/articles.php?cat=4">Commune</a></li> 147 </ul> 148 </li>
Édité par ReidLos Le 29/12/2009 à 00h52
tornero Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre tornero
- Inscrit le : 26/04/2009
Code TPL
Code HTML :
..... 137 <li><a href="#">Informations</a> 138 <ul> 139 <li><a href="../articles/articles.php?cat=2">Autres</a></li> 140 141 # IF C_MODERATOR_AUTH OR C_GROUP_1 # 142 <li><a href="../articles/articles.php?cat=3">Conseil municipal</a></li> 143 144 # ENDIF # 145 <li><a href="../articles/articles.php?cat=4">Commune</a></li> 146 </ul> 147 </li> .....
Il a naturellement fallu approprié le code PHP dans cachetpltpl_header.php de la façon suivante:
tpl_header.php
Code PHP :
..... 134 <li><a href="../articles/articles.php?cat=2">Autres</a></li> 135 136 <?php if ((isset($this->_var['C_MODERATOR_AUTH']) && this->_var['C_MODERATOR_AUTH']) || (isset($this->_var['C_GROUP_1']) && $this->_var['C_GROUP_1'])) { ?> 137 <li><a href="../articles/articles.php?cat=3">Conseil municipal</a></li> 138 139 <?php } ?> 140 <li><a href="../articles/articles.php?cat=4">Commune</a></li> .....
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie