Berlin, 05.09.2010
Zoom : Impressum

Kulisch Software-Entwicklung

Kurz und knapp : Leistungen : Projekte : Kunden : Kontakt : Grüße

eZ Publish Entwicklung

Wie wäre es, wenn auf der Startseite einer Homepage die aktuellsten Events zu sehen sind? Ausgehend vom aktuellen Datum werden nur die Inhaltsobjekte verlinkt, die auf der Klasse Event basieren. In diesem Beispiel wird davon ausgegangen, dass sich die Events in einer Tiefe von 3 in der Inhaltsstruktur befinden: 2 : RootNode : Ebene 1 : Ebene 2 : Event(s). Auf der Frontpage sind nun bis zu 5 aktuelle Events aus dem ausgewählten Teilzweig der Inhaltsstruktur zu sehen, dessen oberste Ebene 1 nicht auf der Klasse twitter basiert.

frontpage.tpl
...
{def $RootNodeID = ezini( 'NodeSettings', 'RootNode', 'content.ini' ) }
{if eq($RootNodeID, $node.node_id)}
  <div class="class-folder">
    {def 
        $children = array()
        $timestamp = currentdate()|sum(mul(12, 3600))
    }
    {set $children=fetch( content, tree, hash( 'parent_node_id', $RootNodeID,
           'depth', 3, 
           'class_filter_type', 'include',  
           'class_filter_array', array( 'event' ),
           'attribute_filter', array( array( 'event/event_time', '>', $timestamp ) ),
           'sort_by', array( 'attribute', true(), 'event/event_time' ) ) )
    }
    <div class="content-view-children">
        {def $counter = 5}       
        {foreach $children as $child }
          {if eq($counter, 0)}{break}{/if}
          {if ne($child.parent.parent.class_identifier, 'twitter') }
      <a href={$child.url_alias|ezurl}>
            {$child.parent.parent.name|wash()}
            {if $child.data_map.title.has_content}
              {$child.data_map.title.content|wash()}
            {else}
              {$child.name|wash()}
            {/if}
      </a>
      <div> </div>
            {set $counter = dec($counter)}
          {/if}
        {/foreach}
    </div>
  </div>  
{/if}
...        

  • Template Entwicklung
  • Template Erweiterung
  • Extension Entwicklung