Forums / Setup & design / Counting in a loop and getting the value back

Counting in a loop and getting the value back

Author Message

J-A Eberhard

Friday 03 March 2006 1:37:15 am

Hi,
I'm using a customized version of ezsurvey and wrote an additional test to display a different message if the answer given was correct or wrong (a correct answer is identified by a result value higher than 10)
The 2 piece of template code work fine, displaying 'correct' or 'wrong'.
I need to add a counter to be able to show at the end of the page the total number of answers tested as 'correct'. How can I include a counter, and bring it's value back to the first piece of code?

{section var=question loop=$survey_questions}
<div class="block">
{survey_question_result_gui view=item question=$question result_id=$result_id metadata=$survey_metadata}
</div>
{/section}
{$question.question_number}. {$question.text|wash('xhtml')}<br />
{$question.result_id}

{let result=fetch('survey', 'multiple_choice_result_item', 
							hash( 'question', $question, 
							'metadata', $metadata, 
							'result_id', $result_id ))}
							
  
{section var=ans loop=$result}
	{if $ans['value']|ge( 10 )}
	    <font color="#008000">{"correct"|i18n("design/gdp")}</font>  
    {else}
	    <font color="#ff0000">{"wrong"|i18n("design/gdp")}</font>
	{/if}
	{section show=$ans['label']|wash('xhtml')|count_chars}{$ans['label']|wash('xhtml')}
	{/section}
	{delimiter}, {/delimiter}
{/section}

Thanks a lot for an hint. has this to do with the variable scope?

Open Source Solution Provider
Open-Net Ltd Switzerland
http://www.open-net.ch

Nabil Alimi

Thursday 09 March 2006 9:03:28 am

Hi J-A,

What about using a simple counter ?

This could work that way :

{$question.question_number}. {$question.text|wash('xhtml')}<br />


{$question.result_id}


 

{let result=fetch('survey', 'multiple_choice_result_item', 

                                                        hash( 'question', $question, 

                                                        'metadata', $metadata, 

                                                        'result_id', $result_id ))}


                                                        


  
<b>{def $counter=0}</b>

{section var=ans loop=$result}


        {if $ans['value']|ge( 10 )}

        <b>{* INCREMENTING THE COUNTER *}</b>
        {set scope=global $counter=inc( $counter )}

           <font color="#008000">{"correct"|i18n("design/gdp")}</font>  

   {else}


           <font color="#ff0000">{"wrong"|i18n("design/gdp")}</font>


        {/if}


        {section show=$ans['label']|wash('xhtml')|count_chars}{$ans['label']|wash('xhtml')}


        {/section}


        {delimiter}, {/delimiter}


{/section}

You have {$counter} correct(s) answers.

For example.

My blog : http://www.starnab.com/ezpublish / http://www.starnab.com/ / http://www.assiki-consulting.com
eZ Publish Freelance developper. Feel free to contact me +33 674 367 057
nabil at assiki d0t fr

J-A Eberhard

Monday 13 March 2006 12:46:56 pm

Thanks a lot.
I took another approach by rewriting the {section} into {foreach} loop to avoid the scope problem.

Open Source Solution Provider
Open-Net Ltd Switzerland
http://www.open-net.ch

eZ debug

Timing: Jan 18 2025 16:21:12
Script start
Timing: Jan 18 2025 16:21:12
Module start 'content'
Timing: Jan 18 2025 16:21:13
Module end 'content'
Timing: Jan 18 2025 16:21:13
Script end

Main resources:

Total runtime0.6343 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.0067 588.9609180.8125
Module start 'content' 0.00680.4974 769.7734557.0391
Module end 'content' 0.50420.1301 1,326.8125337.0547
Script end 0.6343  1,663.8672 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00390.6112210.0002
Check MTime0.00160.2460210.0001
Mysql Total
Database connection0.00070.111810.0007
Mysqli_queries0.568289.57421940.0029
Looping result0.00180.28981920.0000
Template Total0.610296.220.3051
Template load0.00170.272020.0009
Template processing0.608595.924920.3042
Template load and register function0.00010.015010.0001
states
state_id_array0.00070.114610.0007
state_identifier_array0.00060.095420.0003
Override
Cache load0.00140.2246220.0001
Sytem overhead
Fetch class attribute can translate value0.00190.292830.0006
Fetch class attribute name0.00150.234250.0003
XML
Image XML parsing0.00130.205330.0004
class_abstraction
Instantiating content class attribute0.00000.001660.0000
General
dbfile0.00210.3350320.0001
String conversion0.00000.000830.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/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
3content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
2content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
5content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
2content/datatype/view/ezxmltags/literal.tpl<No override>extension/community/design/standard/templates/content/datatype/view/ezxmltags/literal.tplEdit templateOverride template
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 17
 Number of unique templates used: 7

Time used to render debug report: 0.0001 secs