Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 04. Dezember 2016 16:21

pWorker
probiert CMS/ms aus
Registriert: 20. Oktober 2016
Beiträge: 78

Dynamisch & einfach | foreach Schleifen sortieren

Ja moin,

man merkt ja eigentlich immer erst was es so für Probleme geben kann, wenn die dann auftauchen... Folgendes Problem schaute also mal vorbei:

Die Felder bei CGUser Directory lassen sich nur bis zu einem gewissen Grad sortieren  (z.B. UserDetailView.tpl), da zunächst die festen Variablen abgefragt werden und dann die custom fields durch die foreach Schleife verarbeitet werden. Die Customfields können in dieser Logik also nicht variable ausgetausch werden. Handelte es sich bei den Customfields um Optionsfelder, deren Optionstext auch Sonderzeichen enthielt, z.B. "Verkehr & Mehr" und sich deshalb von seinem Optionswert (Verkehr & Mehr = veme) unterschied, so steht am Ende nur der value (hier veme) als Smartyvariable zur Verfügung (Aber man will da ja "Verkehr & Mehr" stehen haben...).

Deshalb also how-to-sort-foreach:
Das capture captured jedes Item unter dem {$propname}.

{* properties *}
  {foreach from=$oneuser.properties item='onepropvalue' key='propname'}
     
    
{if $properties.$propname.type == 6}       
{* image *}

      {capture assign=$propname} <img src="{$file_location}/{$onepropvalue}" width="100"/>{/capture}
    
{elseif isset($properties.$propname.opts)}       
{* dropdown/multiselect/radiobtns *}

      {capture assign=$propname} {$properties.$propname.opts.$onepropvalue}{/capture}
    {else}
     {capture assign=$propname}  {$onepropvalue}{/capture}
    {/if}

  {/foreach}

Hinterher kann man dann die einzelnen Werte über die Feldnamen als Variable abfragen (z.B. {$branche_auswahl}).
Damit man die Variablen verwenden kann, muss man natürlich die foreach Schleife vorher aufgerufen haben.

MfG

Beitrag geändert von pWorker (04. Dezember 2016 16:27)

Offline