nummer van aantal CGBlog if loops tonen

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Post Reply
flmm
Forum Members
Forum Members
Posts: 41
Joined: Wed Mar 24, 2010 1:12 pm

nummer van aantal CGBlog if loops tonen

Post by flmm »

Ik heb in CGBlog een samenvatting template gemaakt en wil tonen hoeveel entries aan de if statement voldoen.

Code nu:
{foreach from=$items item=entry}
{if $entry->Utrecht == '1'}
code
{/if}
{/foreach}

Nu kan ik wel het aantal foreach weergeven met

{if $smarty.foreach.entry.last}
({$smarty.foreach.entry.total})
{/if}

maar is wil graag het aantal in Utrecht weergeven. Dus zou niet de foreach moeten tellen, maar het aantal if entries.

Is hier misschien ook een Smarty code voor?

l flink gezocht op Google, maar niks bruikbaars kunnen vinden op de foreach na.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: nummer van aantal CGBlog if loops tonen

Post by velden »

Lijkt me niet dat je dat uit de variabele zelf kunt halen vooraf. Uiteraard wel als je klaar bent met de foreach loop. Kwestie van teller aanmaken en telkens met één ophogen.

Code: Select all

{assign var='count' value=0}
{foreach...
...
{if ...
  {$count = $count+1}
...
{/if}
...
flmm
Forum Members
Forum Members
Posts: 41
Joined: Wed Mar 24, 2010 1:12 pm

Re: nummer van aantal CGBlog if loops tonen

Post by flmm »

Op die manier krijg je toch een lijst zoals?

item 1
item 2
item 3
item 4

Daarvoor gebruik ik nu altijd {counter}

Wat ik wil is alleen 4 tonen om het totaal aantal items weer te geven.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: nummer van aantal CGBlog if loops tonen

Post by velden »

Dit is natuurlijk een beetje basis programmeren:

Code: Select all

{assign var='count' value=0}
{foreach...
...
{if ...
  {$count = $count+1}
...
{/if}
{/foreach}
Totaal aantal items in Utrecht: {$count}
...
Beter zou zijn als de module zelf al een soort van filter zou ondersteunen. In principe is deze methode vrij inefficient om enkel een getal 'uit te lezen'.

Overiges zijn er modules met filter-mogelijkheid. Dus afhankelijk van wat je aan het maken bent zou je dat nog kunnen overwegen. CGBlog ken ik overigens niet. Ik zou verwachten dat die ook zoiets heeft in verband met het gebruik van keywords/tags wat gebruikelijk lijkt te zijn in blogs.

Je module kan waarschijnlijk veel sneller en efficienter (achter de schermen via een sql query) de resultaten filteren. Maar als het niet is ingebouwd, dan houdt het op.
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: nummer van aantal CGBlog if loops tonen

Post by Rolf »

En zo?

Code: Select all

{assign var='count' value=0}
{foreach...
  {$count = $count+1}
{/foreach}

<p>Totaal aantal items in Utrecht: {$count}</p>

{foreach...
  -- normale template --
{/foreach}

ps. Uhm kun je ook niet zoiets doen als $items|count? ff zoeken...
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: nummer van aantal CGBlog if loops tonen

Post by velden »

Rolf wrote:En zo?

Code: Select all

{assign var='count' value=0}
{foreach...
  {$count = $count+1}
{/foreach}

<p>Totaal aantal items in Utrecht: {$count}</p>

{foreach...
  -- normale template --
{/foreach}

ps. Uhm kun je ook niet zoiets doen als $items|count? ff zoeken...
Nee, er was nog een voorwaarde voor de teller: moet een property de waarde 'Utrecht' hebben. Vandaar mijn opmerking over filtering. Rolf, jij gebruikt deze blog module toch? Dan weet jij vast wel of dat niet met een soort van tag ofzo zou kunnen.
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: nummer van aantal CGBlog if loops tonen

Post by Rolf »

Met {$items|@count} in de summary template kun je het aantal tonen en
{CGBlog category='utrecht'} gebruik je om te filteren??
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
flmm
Forum Members
Forum Members
Posts: 41
Joined: Wed Mar 24, 2010 1:12 pm

Re: nummer van aantal CGBlog if loops tonen

Post by flmm »

Bedankt voor alle hulp.

Utrecht is nu geen categorie maar een checkbox. {if $entry->Utrecht == '1'}

Ik kijk dus binnen de foreach of Utrecht is aangeklikt en die worden getoond.

Als ik het aantal items dan opvraag dan zegt ie bijv. 25 terwijl er maar 5 in Utrecht zijn.

Ik dacht dat er misschien ook een tag was die het aantal loops telt en weergeeft. Dan kan ik die in een aparte samenvatting template aanroepen om het aantal op te halen.

bijv.
{foreach from=$items item=entry}
{if $entry->Utrecht == '1'}
{$entry->Utrecht == '1'|@count} // even verzonnen als voorbeeld :)
{/if}
{/foreach}
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: nummer van aantal CGBlog if loops tonen

Post by velden »

Ik heb volgens mij toch duidelijk een voorbeeld gegeven, maar zal het nog een keer doen met jouw code:

Code: Select all

{assign var='count' value=0}
{foreach from=$items item=entry}
{if $entry->Utrecht == '1'}
{$count = $count+1}
{/if}
{/foreach}
{$count}
De werking van for(each) loops en if statements vallen naar mijn mening wel onder de benodigde basis-kennis.

EDIT:
Als het ook maar enigszins mogelijk is, overweeg dan om i.p.v. de checkbox gebruik te maken van categorien. Dat is véél efficienter waarschijnlijk.
flmm
Forum Members
Forum Members
Posts: 41
Joined: Wed Mar 24, 2010 1:12 pm

Re: nummer van aantal CGBlog if loops tonen

Post by flmm »

Bedankt voor het voorbeeld. Had de laatste {$count} gemist :(.

De categorieën werk ik normaal mee maar die werden nu voor wat anders gebruikt. Vandaar de checkboxes.

Sorry dat mijn basis-kennis niet op orde is. Dacht dat het forum er voor was om geholpen te worden als je met iets zit. Hoe simpel het misschien voor iemand, die de basis-kennis wel op orde heeft, is. Na zoeken op forum, smarty site en Google leek me dit de juiste plaats om de vraag te stellen.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: nummer van aantal CGBlog if loops tonen

Post by velden »

Natuurlijk is daar dit forum voor. Ik zeg het meer om aan te geven dat je deze kennis wel nodig hebt om de templates in CMSMS naar je eigen wensen te kunnen aanpassen.

Alle summary templates zijn gebaseerd op een foreach loop en if-statements worden ook zeer veel gebruikt (o.a. in Menu Manager templates).

Probeer het vooral ook te begrijpen wat er in de voorbeeld-templates gebeurt.
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: nummer van aantal CGBlog if loops tonen

Post by Rolf »

Toch leuk om terug te lezen nu je de gezichten kent :)
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
flmm
Forum Members
Forum Members
Posts: 41
Joined: Wed Mar 24, 2010 1:12 pm

Re: nummer van aantal CGBlog if loops tonen

Post by flmm »

Zeker :). Heb hier een visitekaartje met de achternaam Velden voor me liggen. Wie zou dat zijn ::) .

De site waar de teller destijds in gebruikt is: http://www.stormloop.nl/
Zodra de pagina waar die in zit er weer opstaat zal ik die ter referentie toevoegen. Per provincie werden de aangemelde verenigingen geteld en getoond in tab.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: nummer van aantal CGBlog if loops tonen

Post by velden »

flmm wrote:Zeker :). Heb hier een visitekaartje met de achternaam Velden voor me liggen. Wie zou dat zijn ::) .

De site waar de teller destijds in gebruikt is: http://www.stormloop.nl/
Zodra de pagina waar die in zit er weer opstaat zal ik die ter referentie toevoegen. Per provincie werden de aangemelde verenigingen geteld en getoond in tab.

Uhhh, it wasn't me ;D

Ik heb me zeker vergist in de 'aanwezige basiskennis', te snel conclusie getrokken destijds. Ben onder de indruk van de dingen die je me hebt laten zien.

Hopelijk zien we je vaker op het forum, misschien eerder voor antwoorden dan voor vragen :)
Post Reply

Return to “Dutch - Nederlands”