Avatar billede koldkaffeernederen Nybegynder
17. januar 2012 - 14:45 Der er 13 kommentarer og
1 løsning

Sortering af FOREACH

Jeg har følgende:

{assign var="empty" value="true"}
<ul class="browseListing">
    {foreach from = $browseItems item = browseItem name=browseItems}
        {if $browseItem.count > 0}
            {assign var="empty" value="false"}
            <li><a class='brByCategoryLink'  href="{$GLOBALS.site_url}/browse-by-category/{$browseItem.url|escape:"url"}/">[[Property_JobCategory!{$browseItem.caption|truncate:22:"...":true}]] <span class="blue">({$browseItem.count})</span></a></li>
            {if $smarty.foreach.browseItems.iteration is div by $columns}</ul><ul class="browseListing">{/if}
        {/if}
    {/foreach}       
    {if $empty == "true"}
        <li>[[There are no listings with requested parameters in the system.]]</li>
    {/if}
</ul>


og vil gerne sortere efter $browseItem.count så dem med flest "counts" kommer først.

Er der en der kan gennemskue hvordan?
Avatar billede jakobdo Ekspert
17. januar 2012 - 14:51 #1
Det der er da ikke "php".
Snakker vi ikke et template system?
Avatar billede olebole Juniormester
17. januar 2012 - 15:28 #2
<ole>

Jo, det er vist noget proprietær Smarty syntaks. Jeg troede faktisk slet ikke, Smarty blev brugt mere. For nogle år siden lød det altid "Smart developers don't use Smarty", fordi det performede så ekstremt dårligt.

/mvh
</bole>
Avatar billede jakobdo Ekspert
17. januar 2012 - 15:33 #3
Et bud må vel være at sortere dit array, inden du smider det til Smarty eller hvad template system du nu bruger.
Avatar billede koldkaffeernederen Nybegynder
17. januar 2012 - 16:30 #4
i har sikkert begge to ret - Men pt har jeg hvad jeg har....

Kan det løses i Smarty koden?
Avatar billede olebole Juniormester
17. januar 2012 - 16:37 #5
Det har som sagt ikke noget med PHP at gøre, så det skal man bruge Smarty for at kunne svare på. Men har du tjekket, hvad dokumentationen siger om emnet?
Avatar billede koldkaffeernederen Nybegynder
17. januar 2012 - 16:41 #6
jeg har ikke nærstuderet dokumentationen 100% men gjort et ærligt forsøg på at finde ud af det selv.
Skal spørgsmålet over i en anden kategori?
Avatar billede olebole Juniormester
17. januar 2012 - 16:46 #7
Nej, jeg tror ikke, der er kategorier, der dækker emnet bedre.

Kan du ikke bruge #3? I så fald: Hvorfor ikke?
Avatar billede koldkaffeernederen Nybegynder
17. januar 2012 - 17:48 #8
jeg kan ikke finde hvor arrayet dannes til at starte med
Avatar billede olebole Juniormester
17. januar 2012 - 18:01 #9
Så er det svært at hjælpe  =)
Avatar billede koldkaffeernederen Nybegynder
17. januar 2012 - 18:52 #10
ahhh - endelig! Fandt et "sort by" plugin til Smarty og fik implementeret det i templaten.

{foreach from = $browseItems|@sortby:"-count" item = browseItem name=browseItems} 

"-" sorterer omvendt rækkefølge.


Tak til jeg begge.
Avatar billede olebole Juniormester
17. januar 2012 - 19:01 #11
Selvtak - men overvej at finde et mere tidssvarende templatestystem. Jeg googlede lige hurtigt på Smarty's performance, og det ser stadig lige katastrofalt ud. Der findes ikke et system, der kører langsommere og bruger mere hukommelse
Avatar billede koldkaffeernederen Nybegynder
17. januar 2012 - 20:20 #12
har du et par forslag?
Avatar billede olebole Juniormester
17. januar 2012 - 21:00 #13
Det kommer anpå, til hvad og hvordan det skal bruges. Mon ikke du kan benytte et alm. CMS/blog-system ... Joomla, WordPress, el.lign.?
Avatar billede koldkaffeernederen Nybegynder
18. januar 2012 - 08:42 #14
nahh, det var ikke lige det jeg mente. Men tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester