Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Autoriser du contenu en fonction des groupes de FEU
#4

Merci JLV, c'est un honneur!
puisque c'est ça, j'en ai un autre.
C'est une déclinaison de celui-ci pour menu.
L'utilisateur renseigne dans la zone extra3 les groupes autorisés à voir la page dans le menu.
J'ai appelé ma balise visible_menu, donc, dans le gabarit du menu, il faut mettre {visible_menu groupes=$node->extra3}
Code :
//************************************************************************
//use to authorize a page to appear in the admin menu
//parameters:
// take parameter from the extra3 of the page that containthe groups auhorized to see the content (separate with comma)
//you must put this tag in the gabarit of your menu
//************************************************************************
global $gCms;
$gn=array();
$grps=$params['groupes'];
$autho=false;
print_r($node);
//we assume that there is something in extra3.
if($grps == '') {
$gCms->smarty->assign('autho', false);
return;
}

$feusers = $gCms->modules['FrontEndUsers']['object'];

//* we verify that user is logged in
if($uid = $feusers->LoggedInId()) {

//* if groupes parameter equal *, that mean that no matter the group.
if($grps == '*') {
$gCms->smarty->assign('autho', true);
return;
}

//* we retrieve the groups of the user
$groupes=$feusers->GetMemberGroupsArray($uid);
//* the goupes are registered in an array
    foreach( $groupes as $grp )  {
     $gn[] = $feusers->GetGroupName($grp['groupid']);
        }
//* we retrieve the authorized groups for this page in an array.
$auth=(explode(',',$grps));

//* we search if there is intersection bettween the two groups
$intersec=array_intersect($auth, $gn);

//* the user is authorized if we find an intersection
if(count($intersec) > 0) {
$gCms->smarty->assign('autho', true);
return;
}
}
$gCms->smarty->assign('autho', false);

et le gabarit de mon menu :

Code :
{* administration menu: call to visible_menu tag with extra3 parameter *}
{if $count > 0}
<ul>
{foreach from=$nodelist item=node name="menu"}
{visible_menu groupes=$node->extra3}
{if $autho}
<li><a href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if} class="menu_admin">{$node->menutext}</a></li>
{/if}
{/foreach}
<li>{cms_module module=FEUajaxplorer}</li>
</ul>
{/if}

{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)