Forums / Setup & design / foreach delimiter behaviour ezp4

foreach delimiter behaviour ezp4

Author Message

Dan Mansfield

Wednesday 04 February 2009 12:51:02 pm

I have an array:

{def $relations=fetch('content','related_objects',hash(object_id,$child.contentobject_id))  }

I want to loop through and show just those items that have the class_identifier I want.

{foreach $relations as $prod}
                {if $prod.class_identifier|eq('application')}
                {skip}
                {/if}
<a href={$prod.main_node.url_alias|ezurl}>{$prod.main_node.name|wash()}</a>
{delimiter}, {/delimiter}
{/foreach}

The problem occurs when it displays on the page as putting the delimiter in after the last entry. I thought the

 {skip} 

would stop that from occurring.

Am I missing a trick here or is there a better way to accomplish this?

André R.

Wednesday 04 February 2009 2:31:44 pm

Tried {continue} ìnstead of {skip}?

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Dan Mansfield

Wednesday 04 February 2009 2:47:22 pm

yes, {continue} puts lots of delimiters in as expected.

if the array has say (prod, prod, application, application)

then it will show prod, prod, as the output

if it has (prod, prod)

then it will show prod, prod

 

André R.

Thursday 05 February 2009 12:32:22 am

ok, we'll one way would be to:

{foreach $relations as $prod}
    {if $prod.class_identifier|eq('application')}
        {skip}
    {/if}
    <a href={$prod.main_node.url_alias|ezurl}>{$prod.main_node.name|wash()}</a>
    {delimiter}{if $prod.class_identifier|ne('application')}, {/if}{/delimiter}
{/foreach}

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Hans Melis

Thursday 05 February 2009 12:49:00 am

What is your exact eZ Publish version? There have been a few issues regarding {skip} and delimiters in 4.0.0, but they should be fixed in 4.0.1 (well, they are in our case).

Hans
http://blog.hansmelis.be

Dan Mansfield

Thursday 05 February 2009 12:57:46 am

Version: 4.0.1 (4.0.1)
SVN revision: 19785

Dan Mansfield

Thursday 05 February 2009 1:02:06 am

André,
Your 'fix' worked.
Should I report an issue that the {skip} didn't work as anticipated?

André R.

Thursday 05 February 2009 1:09:01 am

yes please.

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Pascal France

Thursday 08 October 2009 3:17:52 am

Hi,

I have the same problem than Dan (with eZP 4.2.0): the delimiter occurs after the last option.

This is my code:

{def $list_enfants=fetch( content, list, hash( parent_node_id, $node.node_id))}

{foreach $list_enfants as $enfant}

     {def $liste_des_id_selectionnes=$enfant.data_map.mes_selections.content}
     {foreach $enfant.data_map.intervention.class_content.options as $option}
           {if $liste_des_id_selectionnes|contains( $option.id )|not}
                 {skip}
            {else}
                  {$option.name|wash( xhtml )}
            {/if}
            {delimiter} - {/delimiter}
     {/foreach}
{/foreach}
{/def}

I have tried the solution proposed by André but it doesn't works. In any case, I get:

option 1 - option 2 - option 3 -

Pascal

Ce qui embellit le désert c'est qu'il cache un puits... quelque part... (A. de Saint-Exupéry) - http://luxpopuli.fr/eZ-Publish

eZ debug

Timing: Jan 30 2025 21:18:14
Script start
Timing: Jan 30 2025 21:18:14
Module start 'content'
Timing: Jan 30 2025 21:18:14
Module end 'content'
Timing: Jan 30 2025 21:18:14
Script end

Main resources:

Total runtime0.1829 sec
Peak memory usage8,192.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0061 587.9531370.2891
Module start 'content' 0.00610.0117 958.24221,013.6563
Module end 'content' 0.01780.1651 1,971.89843,902.2422
Script end 0.1829  5,874.1406 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00412.2611200.0002
Check MTime0.00130.6960200.0001
Mysql Total
Database connection0.00060.332910.0006
Mysqli_queries0.100154.72711410.0007
Looping result0.00110.60281390.0000
Template Total0.164790.010.1647
Template load0.00070.394710.0007
Template processing0.163989.624810.1639
Override
Cache load0.00050.285510.0005
Sytem overhead
Fetch class attribute can translate value0.00160.861610.0016
XML
Image XML parsing0.00020.132310.0002
General
dbfile0.00633.4218200.0003
String conversion0.00000.002730.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs