Forums / Install & configuration / How can I do loops in templates?

How can I do loops in templates?

Author Message

Adolfo Barragán

Friday 24 January 2003 9:39:58 am

I've created a calendar and I've separated logic from presentation, so I receive a multidimensional array. Each item is a week wich is again an array with seven items (one for each day). Each day item is an array with two items: the day number and the object id. I want use this object id for a URI like {concat('content/full', $objectId)|ezurl}.

I try a loop in template but print nothing. Furthermore, I don't know create and manipulate variables and loops in "template language" (documentation please).

I need translate the following php code to "template language".
Can help me?

$weeks = $Result['weeks'];
print "<table>";
foreach( $weeks as $week )
{
print "<tr>";
for ($i = 0; $i < 7; $i++)
{
$day = $week[$i][0];
$objectId = $week[$i][1];

// the following sentence is mixed php and template code
$dayLink = {concat('content/full/', $objectId)|ezurl)}

if ($objectId == false)
{
print "<td>$day</td>";
} else {
print "<td><a href=\"" . &dayLink ">\"$day</a></td>";
}
}
print "</tr>";
}
print "</table>";

Thanks in advance.
Adolfo Barragán

Jan Borsodi

Sunday 26 January 2003 2:31:02 am

> I've created a calendar and I've separated logic from
> presentation, so I receive a multidimensional array. Each
> item is a week wich is again an array with seven items (one
> for each day). Each day item is an array with two items: the
> day number and the object id. I want use this object id for
> a URI like {concat('content/full', $objectId)|ezurl}.
>
> I try a loop in template but print nothing. Furthermore, I
> don't know create and manipulate variables and loops in
> "template language" (documentation please).
>
> I need translate the following php code to "template
> language".
> Can help me?
>
> $weeks = $Result['weeks'];
> print "<table>";
> foreach( $weeks as $week )
> {
> print "<tr>";
> for ($i = 0; $i < 7; $i++)
> {
> $day = $week[$i][0];
> $objectId = $week[$i][1];
>
> // the following sentence is mixed php and template
> code
> $dayLink = {concat('content/full/', $objectId)|ezurl)}
>
> if ($objectId == false)
> {
> print "<td>$day</td>";
> } else {
> print "<td><a href=\"" .
> &dayLink
> ">\"$day</a></td>";
> }
> }
> print "</tr>";
> }
> print "</table>";
>
> Thanks in advance.
> Adolfo Barragán

Try this:
{section name=Week loop=$weeks}
<tr>
{section name=Day loop=7}
{let day=$Week:item[$Week:Day:index][0]
objectId=$Week:item[$Week:Day:index][1]}
<td>
{section show=$Week:Day:objectId}
<a href={concat('content/full/', $Week:Day:objectId)|ezurl}>{$Week:Day:day}</a>
{section-else}
{$Week:Day:day}
{/section}
</td>
{/let}
{/section}
</tr>
{/section}

--
Amos

Documentation: http://ez.no/ez_publish/documentation
FAQ: http://ez.no/ez_publish/documentation/faq

Adolfo Barragán

Monday 27 January 2003 8:12:47 am

> Try this:
> ...

Thanks you. It's ok.

Regards
Adolfo Barragán

eZ debug

Timing: Jan 18 2025 15:16:41
Script start
Timing: Jan 18 2025 15:16:41
Module start 'content'
Timing: Jan 18 2025 15:16:42
Module end 'content'
Timing: Jan 18 2025 15:16:42
Script end

Main resources:

Total runtime0.6795 sec
Peak memory usage4,096.0000 KB
Database Queries194

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0080 587.8281180.8281
Module start 'content' 0.00800.5278 768.6563558.4063
Module end 'content' 0.53590.1436 1,327.0625336.7500
Script end 0.6795  1,663.8125 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00380.5531210.0002
Check MTime0.00140.2007210.0001
Mysql Total
Database connection0.00100.140210.0010
Mysqli_queries0.578285.08631940.0030
Looping result0.00190.27981920.0000
Template Total0.650895.820.3254
Template load0.00240.358920.0012
Template processing0.648395.408520.3242
Template load and register function0.00010.021610.0001
states
state_id_array0.00130.194610.0013
state_identifier_array0.00110.163420.0006
Override
Cache load0.00200.28701000.0000
Sytem overhead
Fetch class attribute can translate value0.00130.195430.0004
Fetch class attribute name0.00100.146640.0002
XML
Image XML parsing0.00100.142830.0003
class_abstraction
Instantiating content class attribute0.00000.001540.0000
General
dbfile0.00981.4449280.0004
String conversion0.00000.001230.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
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
3content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
9content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
8content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
1content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 23
 Number of unique templates used: 6

Time used to render debug report: 0.0001 secs