Page 1 of 1

LISE category alias

Posted: Mon Oct 23, 2017 4:23 pm
by timdebuurman
Hoi,

Ik heb in LISE de alias van de categorieën nodig, om deze als classes toe te voegen aan items.

De standaard code in het voorbeeld voor het tonen van de categorie namen (dus niet de alias) is dit:

Code: Select all

{foreach from=$item->fielddefs item=fielddef}
	
			{*
				Categories were moved to field definitions.
				If you need Categories, create new Field definition with alias "category"
				and Categories will be available again.
			*}
	
			{if $fielddef.type == 'Categories' && ($fielddef.value != '')}
	
			{* use LISELoader plugin if you need Category information in default module action templates *}
			{LISELoader item='category' force_array=1 value=$fielddef.value assign='cats'}
	
			<!-- categories -->
			<div class="item-category">
				Category: {$cats|implode:','}
			</div>
			<!-- categories //-->
			{/if}
{/foreach}
Het lukte mij maar niet om de aliassen van de categorieën als output te krijgen.
Uiteindelijk is het wel gelukt, maar ik verwacht dat het vele malen simpeler had gekund en ik ben dan ook benieuwd of iemand een betere oplossing heeft.

Wat ik nu uiteindelijk gedaan heb is dit:

Code: Select all

	{foreach from=$items item=item}
	
	<a class="{strip}{foreach from=$item->fielddefs item=fielddef}
			{if $fielddef.type == 'Categories' && ($fielddef.value != '')}
			{LISELoader item='category' force_array=1 value=$fielddef.value assign='cats'}
				{foreach from=$cats item=catitem}{$catitem->alias} {/foreach}
			{/if}
                        {/foreach}{/strip}" href="{$item->url}">
    <span>{$item->title}</span></a>

	{/foreach}
gr Tim

Re: LISE category alias

Posted: Tue Oct 24, 2017 7:32 am
by velden
Op zich is je aanpak niet verkeerd maar inderdaad veel te inefficient.

De foreach loop door fielddefs wordt in een voorbeeld template gebruikt. Aangezien de ontwikkelaar vooraf niet weet hoe jij je velden gaat noemen moet dat met een foreach loop.

Maar jij weet wél hoe het veld heet (bijvoorbeeld 'categorie'):

Code: Select all

{LISELoader item='category' force_array=1 value=$item->fielddefs['categorie'].value assign='cats'}
<a class="{foreach from=$cats item=catitem}{$catitem->alias}
 {/foreach}" href="{$item->url}"><span>{$item->title}</span></a>
Bovenstaande code heb ik niet getest overigens.

Re: LISE category alias

Posted: Fri Oct 27, 2017 11:08 am
by timdebuurman
Hoi Velden,

Werkt perfect, bedankt!

Re: LISE category alias

Posted: Fri Dec 22, 2017 11:15 am
by deactivated010521
Had ook zoiets nodig maar dan uit een andere LISE instance:

Code: Select all

{foreach from=$items item='item'}

   {* verwijzing naar andere LISE instance *}
  {LISELoader item='category' identifier='category_id' instance='LISEBerichten' value=$item->fielddefs.category.value assign='cats'}
  (cats) category_alias: {$cats->alias}

  -- of --
   {* eigen instance *}
  {LISELoader item='category' force_array=1 value=$item->fielddefs.category.value assign='xcats'}
  (xcats) category_alias: {$xcats[$item->fielddefs.category.value]->alias}

{/foreach}