sort_by: published or attribute

eZ publish
05.06.2014

Die Challenge: Eine Liste soll zwei unterschiedliche Klassen ausgeben, die obendrein gemischt sortiert werden muss.

Die sort_by Option der fetch-Funktion ist für einfache Sortierung gedacht, versagt hier jedoch kläglich.

Der erste Teil, zwei unterschiedliche Klassen abfragen, ist noch Standard und problemlos:

'class_filter_type', 'include',
'class_filter_array',array('article','article_print')

sort by published

Das einfache sortieren nach Erstellungsdatum einer Node ist ebenfalls einfach:

'sort_by', array('published',false())

sort by attribute

Ebenso einfach ist die alternative Sortierung nach einem Attribut:

'sort_by', array('attribute',false,'article_print/date_release')

Die Herausforderung ist nun, die "published" Sortierung mit der "attribute" Sortierung zu kombinieren.

Nachdem ich nach langen Forschen, Recherchieren und Experimentieren auf keinen grünen Zweig gekommen bin, habe ich mich für eine anderen Lösung entschieden:

sort objects

Ich hole alle Nodes unsortiert und hole das Sortieren dann nach:

{def $children = array()}
{foreach $items as $item}
    {if $item.data_map.date_release.has_content}
        {set $children=$children|append(hash('date',$item.data_map.date_release.data_int,'ezobject',$item))}
    {else}
        {set $children=$children|append(hash('date',$item.object.published,'ezobject',$item))}
    {/if}
{/foreach}
{set $children=$children|rsort()}
comments powered by Disqus

NPD

V-Leute

Jetzt wird einiges klar: Die Polizei sichert nicht den Nazis das Recht auf Meinungsfreiheit, sondern sie schützt ihre Kollegen vom Verfassungsschutz.

Komisch, warum beruhigt mich das nicht, wenn der neue Bundesstaatsanwalt Harald Range behauptet, es gebe keine Hinweise auf eine Zusammenarbeit des Verfassungsschutzes mit den Zwickauern.

A ? B C D E F G H I J K L M N O P Q R S T U V W Z