[opgelost] Div toevoegen tussen producten overzicht

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

User avatar
timdebuurman
Power Poster
Power Poster
Posts: 891
Joined: Sun Nov 06, 2011 8:15 pm

[opgelost] Div toevoegen tussen producten overzicht

Post by timdebuurman »

Hoi,

Graag wil ik in het productenoverzicht (summary) om een aantal rijen met producten een div met inhoud plaatsen. Ook nog dat iedere div een andere inhoud/tekst heeft en te stijlen is.

Dus bijvoorbeeld 4 rijen met 4 producten naast elkaar.
Dan een balk, met daarin tekst (in dit geval bijvoorbeeld: "Dit is maar een deel van onze collectie)

Dan weer 4 rijen met producten en dan weer en balk met weer een andere tekst.

Iemand een idee hoe dat zou kunnen?
In de product summary sjabloon?

gr Tim
Last edited by timdebuurman on Thu Jan 08, 2015 6:45 pm, edited 1 time in total.
NextDoorMedia - Online Marketing Partner
https://www.nextdoormedia.nl
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: Div toevoegen tussen producten overzicht

Post by velden »

Dat is mogelijk met
(http://www.smarty.net/docs/en/language. ... .iteration)

(niet getest, variabele namen kloppen niet denk ik)

Code: Select all

{foreach from=$products item=item}
  {$item}
  ...

  {if $item@iteration is div by 4 and not $item@last}
    <div>Custom text</div>
  {/if}
{foreach}
Maar dit zou wel telkens dezelfde 'Custom text' geven na elke 4 producten. Als je dat niet wilt moet je wat meer spelen met de condities.
User avatar
timdebuurman
Power Poster
Power Poster
Posts: 891
Joined: Sun Nov 06, 2011 8:15 pm

Re: Div toevoegen tussen producten overzicht

Post by timdebuurman »

Hoi Velden,

Bedankt voor het meedenken.

Zou ik niet een extra veld kunnen maken met tekst en dan die aanroepen tussen de div?

Is misschien niet zo'n mooie oplossing, omdat het tekstveld bij de meeste producten dan niet gebruikt zal worden..

Nog andere ideeën hiervoor?
NextDoorMedia - Online Marketing Partner
https://www.nextdoormedia.nl
pedes
Power Poster
Power Poster
Posts: 840
Joined: Tue Jan 27, 2009 11:47 am

Re: Div toevoegen tussen producten overzicht

Post by pedes »

not related
Last edited by pedes on Sat Dec 27, 2014 11:42 pm, edited 1 time in total.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: Div toevoegen tussen producten overzicht

Post by velden »

timdebuurman wrote:Hoi Velden,

Bedankt voor het meedenken.

Zou ik niet een extra veld kunnen maken met tekst en dan die aanroepen tussen de div?

Is misschien niet zo'n mooie oplossing, omdat het tekstveld bij de meeste producten dan niet gebruikt zal worden..

Nog andere ideeën hiervoor?
Het is niet handig om dat als extra veld in Products op te nemen. Eerder dan als Global Content Block.
janvl
Power Poster
Power Poster
Posts: 972
Joined: Wed Aug 13, 2008 10:57 am

Re: Div toevoegen tussen producten overzicht

Post by janvl »

Wanneer je binnen de for each lus (product summary) een extra lus met een tellertje zet dan kun je automatisch na iedere 3 of 4 produkten een global contentblock tonen wat je met een andere teller ook nog zou kunnen sturen of random misschien.
Ongeveer zo.

foreach item in items
for x = 1 to 3
show product
/for
{global contentblock}
/foreach

Groet
Jan
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: Div toevoegen tussen producten overzicht

Post by velden »

Ik denk dat het probleem van 'om de 4 producten' wel is getackled:

janvl wrote:foreach item in items
for x = 1 to 3
show product
/for
{global contentblock}
/foreach
Jan
Dit gaat niet werken. Je kunt niet andere producten tonen dan het product (item) waar je mee bezig bent in de buitenste loop.
janvl
Power Poster
Power Poster
Posts: 972
Joined: Wed Aug 13, 2008 10:57 am

Re: Div toevoegen tussen producten overzicht

Post by janvl »

Klopt, zo gaat 't wel

assign x=1
for each item in items
show product
x= x + 1
If x=3
global content block
assign x=1
/endif
/foreach

het gaat natuurlijk om de logica om na 3 (of 4) produkten een
block (div) te tonen.
Wie met smarty "programmeert" kan zelf de details invullen en ik ken Tim die kan dat.

Groet,
Jan
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: Div toevoegen tussen producten overzicht

Post by velden »

janvl wrote:Klopt, zo gaat 't wel

assign x=1
for each item in items
show product
x= x + 1
If x=3
global content block
assign x=1
/endif
/foreach

het gaat natuurlijk om de logica om na 3 (of 4) produkten een
block (div) te tonen.
Nog steeds niet helemaal wat Tim vroeg: "om de 4 blokken een tekst"

EDIT: zie nu dat het in de vraag om 4 rijen van 4 producten gaat. Dan vervang je de 4 dus door 16.

Ten eerste zal jouw voorbeeld om de 2 products een tekst tonen.
Ten tweede, waarom extra variabelen inzetten als dat allemaal niet nodig is?

Code: Select all

Dit doet precies wat Tim vraagt, is efficient en behoorlijk leesbaar:
{foreach from=$products item=item}
  {$item}
  ...

  {if $item@iteration is div by 4}
    <div>Custom text</div>
  {/if}
{foreach}

'and not $item@last' had ik er zelf maar bij verzonnen om dat het nogal knullig is om de tekst: "En we verkopen ook:" te plaatsen als er vervolgens geen items weer worden getoond:

{if $item@iteration is div by 4 and not $item@last}

{if $item@iteration is div by 4} is hetzelfde als {if $item@iteration % 4 == 0 }
Dat laatste zul je ook in andere programmeertalen tegen komen, maar is voor een 'leek' wat minder leesbaar dan 'is div by 4' denk ik. % staat overigens voor modulo operator.
janvl
Power Poster
Power Poster
Posts: 972
Joined: Wed Aug 13, 2008 10:57 am

Re: Div toevoegen tussen producten overzicht

Post by janvl »

Is al OK,

ik hoop dat Tim hier goed mee geholpen is, daar gaat het per slot om.

Wat verwacht je?
Goed gedaan jochie . . .?

Volgende keer neem ik wat meer tijd en ben wat nauwkeuriger, beloofd!

Met vriendelijke groeten,
Jan
User avatar
timdebuurman
Power Poster
Power Poster
Posts: 891
Joined: Sun Nov 06, 2011 8:15 pm

Re: Div toevoegen tussen producten overzicht

Post by timdebuurman »

Hoi Jan en Velden,

Ik denk dat mijn smarty-vaardigheden iets overschat worden.
Ik kom er vaak wel uit, maar is toch altijd wel een tijdje zoeken...

Als ik nu 3 soorten tekst heb en die in 3 global_content blokken zet.
En ik wil dat deze om de beurt getoond worden, om de 16 producten.

Hoe zou ik dat in de gegeven code kunnen verwerken?

Code: Select all

{foreach from=$products item=item}
  {$item}
  ...

  {if $item@iteration is div by 16 and not $item@last}
    {global_content name="tekst1"}

deze dan wisselen met tekst2 en tekst3....?

  {/if}
{foreach}
NextDoorMedia - Online Marketing Partner
https://www.nextdoormedia.nl
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: Div toevoegen tussen producten overzicht

Post by velden »

Probeer eens:

Code: Select all

{$i=1}
{foreach from=$products item=item}
  {$item}
  ...

  {if $item@iteration is div by 16 and not $item@last}
    {global_content name="tekst{cycle values="1,2,3"}"}

deze dan wisselen met tekst2 en tekst3....?

  {/if}
{foreach}
User avatar
timdebuurman
Power Poster
Power Poster
Posts: 891
Joined: Sun Nov 06, 2011 8:15 pm

Re: Div toevoegen tussen producten overzicht

Post by timdebuurman »

Hoi Velden,

Bedankt voor het meedenken.
Ik moet de productmodule nog installeren bij dit project en ga het dan testen.

Nu heb ik nog een dingetje...:

Stel nu dat ik de div op een kleiner beeldscherm (tablet of mobiele telefoon) niet om de 16, maar om de 10 producten wil tonen.

Of vraag ik nu iets onmogelijks..?
NextDoorMedia - Online Marketing Partner
https://www.nextdoormedia.nl
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3497
Joined: Mon Nov 28, 2011 9:29 am

Re: Div toevoegen tussen producten overzicht

Post by velden »

timdebuurman wrote: Nu heb ik nog een dingetje...:

Stel nu dat ik de div op een kleiner beeldscherm (tablet of mobiele telefoon) niet om de 16, maar om de 10 producten wil tonen.

Of vraag ik nu iets onmogelijks..?
Dat kan enkel als je server-side device detectie gebruikt, en dat zul je waarschijnlijk niet doen.

Waarschijnlijk werk je met een responsive framework. Je zou dan op één of andere manier de logica in JS moeten zetten en afhankelijk van de 'breedte' andere variabelen gebruiken.

Dus:
De inhoud van de GCB's als variabelen aan JS meegeven vanuit het cmsms template.
Vervolgens met JS de betreffende div's met inhoud op de juiste plek invoegen. Vereist een beetje programmeerkennis en kennis van je framework.
janvl
Power Poster
Power Poster
Posts: 972
Joined: Wed Aug 13, 2008 10:57 am

Re: Div toevoegen tussen producten overzicht

Post by janvl »

Eenvoudiger zou zijn om voor de mobiele pagina's eigen pagina's en templates te gebruiken waar je dit dan in zet, dat bespaart je nieuw programmeerwerk dat je na de installatie weer moet beheren.

Een voorbeeldje kun je zien bij www.taxigerhard.at daar wordt voor een tablet/telefoon een paar eigen pagina's getoond.

Alles wat je nu met kunst en vliegwerk aan elkaar knoopt, moet je later weer zelf onderhouden.

Als je de logica voor de keuze van desktop vs tablet/telefoon wilt hebben stuur ik je die.

M.vr.gr.
Jan
Locked

Return to “Dutch - Nederlands”