Page 1 of 1

Pagine personalizzate per l'utente

Posted: Sun Jul 20, 2008 2:06 pm
by protempore
ok... ho usato "Custom Content" e la cosa è semplice e perfetta...

solo che adesso io vorrei poter togliere da menu i riferimenti alle pagine a cui l'utente non può accedere senza dover necessariamente vedersi restituito il messaggio: "non hai i permessi per accedere..."

Ora, io ho messo "priv_" come prefisso delle pagine visibili solo con "login"... con un "excludeprefix" le tolgo dalla visione pubblica... ma come faccio, dopo il login dell'utente, a fargli vedere le pagine del gruppo X a cui l'utente appartiene e non quelle del gruppo Y a cui l'utente non appartiene?

grazie

Re: Pagine personalizzate per l'utente

Posted: Sun Jul 20, 2008 5:47 pm
by alby
protempore wrote: ok... ho usato "Custom Content" e la cosa è semplice e perfetta...

solo che adesso io vorrei poter togliere da menu i riferimenti alle pagine a cui l'utente non può accedere senza dover necessariamente vedersi restituito il messaggio: "non hai i permessi per accedere..."

Ora, io ho messo "priv_" come prefisso delle pagine visibili solo con "login"... con un "excludeprefix" le tolgo dalla visione pubblica... ma come faccio, dopo il login dell'utente, a fargli vedere le pagine del gruppo X a cui l'utente appartiene e non quelle del gruppo Y a cui l'utente non appartiene?
Da inserire la corretta sintassi (che non posso controllare dalle vacanze!) con menu con priv_x_nome e priv_y_nome

{if $customcontent_x}
  {menu ecludeprefix=priv_y_} 
{elseif $customcontent_y}
  {menu ecludeprefix=priv_x_} 
{else}
  {menu ecludeprefix=priv_} 
{/if}

Alby

Re: Pagine personalizzate per l'utente

Posted: Mon Jul 21, 2008 6:57 am
by protempore
alby wrote: Da inserire la corretta sintassi (che non posso controllare dalle vacanze!) con menu con priv_x_nome e priv_y_nome

{if $customcontent_x}
  {menu ecludeprefix=priv_y_} 
{elseif $customcontent_y}
  {menu ecludeprefix=priv_x_} 
{else}
  {menu ecludeprefix=priv_} 
{/if}

Alby
grazie Alby,
ma mi sono accorto che non mi basta... nel senso che l'utente, nel mio caso, può appartenere a più di un gruppo e quindi deve poter accedere a menu composti in modo più complesso...

Ho risolto... credo... modificando così il template del menu:

Code: Select all

{if $count > 0}
	<div id="menuwrapper">
	<ul id="primary-nav">
	{foreach from=$nodelist item=node}
		{if $node->depth > $node->prevdepth}
			{repeat string="<ul>" times=$node->depth-$node->prevdepth}
		{elseif $node->depth < $node->prevdepth}
			{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}</li>
		{elseif $node->index > 0}</li>
		{/if}
		
		{if $node->alias|truncate:11:"":true!='priv_infer_' and 
			$node->alias|truncate:11:"":true!='priv_fisio_' and 
			$node->alias|truncate:11:"":true!='priv_turis_' and 
			$node->alias|truncate:11:"":true!='priv_infor_' and 
			$node->alias|truncate:11:"":true!='priv_elett_'}

			{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
				<li class="menuactive menuparent"><a class="menuactive menuparent" 
			{elseif $node->current == true}
				<li class="menuactive"><a class="menuactive" 
			{elseif $node->haschildren == true}
				<li class="menuparent"><a class="menuparent" 
			{elseif $node->type == 'sectionheader'}
				<li class="sectionheader"><span> {$node->menutext} </span>
			{elseif $node->type == 'separator'}
				<li style="list-style-type: none;"> <hr class="separator" />
			{else}
				<li><a 
			{/if}
			{if $node->type != 'sectionheader' and $node->type != 'separator'}href="{$node->url}" 
				{if $node->accesskey != ''}accesskey="{$node->accesskey}" {/if}
				{if $node->tabindex != ''}tabindex="{$node->tabindex}" {/if}
				{if $node->titleattribute != ''}title="{$node->titleattribute}"{/if}
				{if $node->target ne ""} target="{$node->target}"{/if}>
					<dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
			{elseif $node->type == 'sectionheader'}
				><dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
			{/if}
		
		{else}
			{foreach from=$ccuser->groups() item=area}
				{if $area=='Infermieristica' and $node->alias|truncate:11:"":true=='priv_infer_'}
					{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
						<li class="menuactive menuparent"><a class="menuactive menuparent" 
					{elseif $node->current == true}
						<li class="menuactive"><a class="menuactive" 
					{elseif $node->haschildren == true}
						<li class="menuparent"><a class="menuparent" 
					{elseif $node->type == 'sectionheader'}
						<li class="sectionheader"><span> {$node->menutext} </span>
					{elseif $node->type == 'separator'}
						<li style="list-style-type: none;"> <hr class="separator" />
					{else}
						<li><a 
					{/if}
					{if $node->type != 'sectionheader' and $node->type != 'separator'}href="{$node->url}" 
						{if $node->accesskey != ''}accesskey="{$node->accesskey}" {/if}
						{if $node->tabindex != ''}tabindex="{$node->tabindex}" {/if}
						{if $node->titleattribute != ''}title="{$node->titleattribute}"{/if}
						{if $node->target ne ""} target="{$node->target}"{/if}>
							<dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
					{elseif $node->type == 'sectionheader'}
							><dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
					{/if}

				{elseif $area=='Fisioterapia' and $node->alias|truncate:11:"":true=='priv_fisio_'}
					{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
						<li class="menuactive menuparent"><a class="menuactive menuparent" 
					{elseif $node->current == true}
						<li class="menuactive"><a class="menuactive" 
					{elseif $node->haschildren == true}
						<li class="menuparent"><a class="menuparent" 
					{elseif $node->type == 'sectionheader'}
						<li class="sectionheader"><span> {$node->menutext} </span>
					{elseif $node->type == 'separator'}
						<li style="list-style-type: none;"> <hr class="separator" />
					{else}
						<li><a 
					{/if}
					{if $node->type != 'sectionheader' and $node->type != 'separator'}href="{$node->url}" 
						{if $node->accesskey != ''}accesskey="{$node->accesskey}" {/if}
						{if $node->tabindex != ''}tabindex="{$node->tabindex}" {/if}
						{if $node->titleattribute != ''}title="{$node->titleattribute}"{/if}
						{if $node->target ne ""} target="{$node->target}"{/if}>
							<dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
					{elseif $node->type == 'sectionheader'}
							><dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
					{/if}

				{elseif $area=='Turismo' and $node->alias|truncate:11:"":true=='priv_turis_'}
					{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
						<li class="menuactive menuparent"><a class="menuactive menuparent" 
					{elseif $node->current == true}
						<li class="menuactive"><a class="menuactive" 
					{elseif $node->haschildren == true}
						<li class="menuparent"><a class="menuparent" 
					{elseif $node->type == 'sectionheader'}
						<li class="sectionheader"><span> {$node->menutext} </span>
					{elseif $node->type == 'separator'}
						<li style="list-style-type: none;"> <hr class="separator" />
					{else}
						<li><a 
					{/if}
					{if $node->type != 'sectionheader' and $node->type != 'separator'}href="{$node->url}" 
						{if $node->accesskey != ''}accesskey="{$node->accesskey}" {/if}
						{if $node->tabindex != ''}tabindex="{$node->tabindex}" {/if}
						{if $node->titleattribute != ''}title="{$node->titleattribute}"{/if}
						{if $node->target ne ""} target="{$node->target}"{/if}>
							<dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
					{elseif $node->type == 'sectionheader'}
							><dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
					{/if}

				{elseif $area=='Elettronica' and $node->alias|truncate:11:"":true=='priv_elett_'}
					{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
						<li class="menuactive menuparent"><a class="menuactive menuparent" 
					{elseif $node->current == true}
						<li class="menuactive"><a class="menuactive" 
					{elseif $node->haschildren == true}
						<li class="menuparent"><a class="menuparent" 
					{elseif $node->type == 'sectionheader'}
						<li class="sectionheader"><span> {$node->menutext} </span>
					{elseif $node->type == 'separator'}
						<li style="list-style-type: none;"> <hr class="separator" />
					{else}
						<li><a 
					{/if}
					{if $node->type != 'sectionheader' and $node->type != 'separator'}href="{$node->url}" 
						{if $node->accesskey != ''}accesskey="{$node->accesskey}" {/if}
						{if $node->tabindex != ''}tabindex="{$node->tabindex}" {/if}
						{if $node->titleattribute != ''}title="{$node->titleattribute}"{/if}
						{if $node->target ne ""} target="{$node->target}"{/if}>
							<dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
					{elseif $node->type == 'sectionheader'}
							><dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
					{/if}

				{elseif $area=='Informatica' and $node->alias|truncate:11:"":true=='priv_infor_'}
					{if $node->parent == true or ($node->current == true and $node->haschildren == true)}
						<li class="menuactive menuparent"><a class="menuactive menuparent" 
					{elseif $node->current == true}
						<li class="menuactive"><a class="menuactive" 
					{elseif $node->haschildren == true}
						<li class="menuparent"><a class="menuparent" 
					{elseif $node->type == 'sectionheader'}
						<li class="sectionheader"><span> {$node->menutext} </span>
					{elseif $node->type == 'separator'}
						<li style="list-style-type: none;"> <hr class="separator" />
					{else}
						<li><a 
					{/if}
					{if $node->type != 'sectionheader' and $node->type != 'separator'}href="{$node->url}" 
						{if $node->accesskey != ''}accesskey="{$node->accesskey}" {/if}
						{if $node->tabindex != ''}tabindex="{$node->tabindex}" {/if}
						{if $node->titleattribute != ''}title="{$node->titleattribute}"{/if}
						{if $node->target ne ""} target="{$node->target}"{/if}>
							<dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
					{elseif $node->type == 'sectionheader'}
							><dfn>{$node->hierarchy}: </dfn>{$node->menutext}</a>
					{/if}
				{/if}
			{/foreach}
		{/if}

	{/foreach}
	{repeat string="</li></ul>" times=$node->depth-1}</li></ul>
	<div class="clearb"></div>
	</div>
{/if}
praticamente funziona, ma la domanda è: “ho fatto un'accrocchio che poteva essere evitato"?
;)