Page 1 of 1

CGfeedback comment summary werkt niet na upgrade 2.1.5

Posted: Sun Dec 11, 2016 9:45 pm
by Loupol
Vandaag heb ik de upgrade naar 2.1.5 uitgevoerd. Indrukwekkend hoe smooth dat allemaal verlopen is. Alles werkt perfect op nu nog één ding na ::)

Voor CGfeedback: [CGfeedback is versie 1.8]
Ik had een Products samenvattingssjabloon gebouwd die er voor zorgt dat op de homepage de laatste drie reacties per product item in een aparte box worden getoond. Dat werkte perfect in versie 1.12.1
Met de overgang naar 2.1.5 werkt het sjabloon niet meer en wordt op de homepage nu een leeg blok getoond.

De code die ik in de template voor dat blok gebruik is deze:

Code: Select all

<div class='box'>
{foreach from=$items item='entry'}
  {$feedback="{CGFeedback key1='Products' key2=$entry->id
   action='summary' pagelimit="3"}"}
  {foreach from=$comments item='one'}
        {$titel="{if $one.key3 == $entry->product_name}  
                       <a href='{$entry->detail_url}'><span class='titt'>
                       {$entry->product_name}</span></a>
                       {$feedback}                      
                     {/if}"}
  {/foreach} 
 {if isset($titel)}
    {$titel}      
 {/if}
{/foreach}
</div>
In de code hierboven is een mix van de foreach loop voor de products module en een foreach loop van de cgfeedback module. Ik heb ergens iets gelezen over global content en wijzigingen in SMARTY 3.0, maar ik kan niet vinden hoe ik de bovenstaande code zou moeten wijzigen om het weer wel te laten werken op de homepage.

Ik heb gemerkt dat de foreach loop voor Products wel werkt, want als ik

Code: Select all

{$entry->product_name}
direct achter de eerste foreach tag plaats, worden alle productnamen getoond.

iemand een idee?

Alvast bedankt!

Cees

Re: CGfeedback comment summary werkt niet na upgrade 2.1.5

Posted: Sun Dec 11, 2016 9:47 pm
by Rolf
In ieder geval

Code: Select all

pagelimit='3'
single quotes

Re: CGfeedback comment summary werkt niet na upgrade 2.1.5

Posted: Sun Dec 11, 2016 9:50 pm
by Rolf

Code: Select all

{if isset($titel)}
    {$titel}      
 {/if}
moet in de comments foreach worden opgenomen

Re: CGfeedback comment summary werkt niet na upgrade 2.1.5

Posted: Sun Dec 11, 2016 10:00 pm
by Loupol
Rolf wrote:

Code: Select all

{if isset($titel)}
    {$titel}      
 {/if}
moet in de comments foreach worden opgenomen
Is dat dan wezenlijk veranderd in 2.1.5, want precies deze template heeft perfect gewerkt in 1.12.1?

Ik zou verwachten dat als ik dat stukje code in de comments foreach opneem er telkens bij ieder comment die titel string wordt getoond.
Ik heb het geprobeerd en het maakt ook geen verschil, het blok blijft leeg. Overigens heb ik ook de dubbele quotes vervangen voor de enkele.

Velden schreef iets over "global dingetje" en ik heb al lang zitten "turen" naar de uitleg daarover, maar ik snap niet goed hoe ik $comments beschikbaar moet maken in mijn template.

Zie ik iets over het hoofd?

Mvg. Cees

Re: CGfeedback comment summary werkt niet na upgrade 2.1.5

Posted: Sun Dec 11, 2016 10:07 pm
by Rolf
Nee, binnen een en dezelfde module template zul je geen last van scope problemen hebben.
Ik zal morgen even kijken op een groot scherm, nu vanaf m'n smartphone werkt dat toch niet echt...

Re: CGfeedback comment summary werkt niet na upgrade 2.1.5

Posted: Mon Dec 12, 2016 8:45 am
by Rolf
Probeer dit eens in het Products samenvattingsjabloon:

Code: Select all

<div class="box">
{foreach from=$items item='entry'}

    {$feedback = "{CGFeedback key1='Products' key2=$entry->id action='summary' pagelimit='3'}"}

    {if isset($comments)}
        <a href="{$entry->detail_url}">
           <span class="titt">{$entry->product_name}</span>
        </a> 
        {$feedback}    
    {/if}              

{/foreach}
</div>

Re: CGfeedback comment summary werkt niet na upgrade 2.1.5

Posted: Mon Dec 12, 2016 3:24 pm
by Loupol
Rolf wrote:Probeer dit eens in het Products samenvattingsjabloon:

Code: Select all

<div class="box">
{foreach from=$items item='entry'}

    {$feedback = "{CGFeedback key1='Products' key2=$entry->id action='summary' pagelimit='3'}"}

    {if isset($comments)}
        <a href="{$entry->detail_url}">
           <span class="titt">{$entry->product_name}</span>
        </a> 
        {$feedback}    
    {/if}              

{/foreach}
</div>
Bijna, ik heb er nu dit (zie onder) van gemaakt en nu werkt het weer helemaal goed!
Je kan het zien werken op: http://bakeliettest.loupol4design.nl
Wederom bedankt voor je hulp!

groet,
Cees

Code: Select all

<div class='box'>
{foreach from=$items item='entry'}
  {$feedback = "{CGFeedback key1='Products' key2=$entry->id action='summary' pagelimit='3'}"}
   {if $feedback != ""}        
        <a href='{$entry->detail_url}'><span class='titt'>{$entry->product_name}</span></a>
                      {$feedback}                      
                    {/if}
     
{/foreach}
</div>

Re: CGfeedback comment summary werkt niet na upgrade 2.1.5

Posted: Mon Dec 12, 2016 4:38 pm
by Rolf
Mooi!! Code technisch ziet het er ook heel wat beter uit! :)

Klein puntje van advies: het gebruik van enkele en dubbele quotes.

- in HTML gebruik je normaal gesproken alleen "
- In Smarty/PHP gebruik je in principe ', behalve als de inhoud uitgevoerd moet worden dan ".

Je krijgt dan:

Code: Select all

<div class="box">
{foreach from=$items item='entry'}
  {$feedback = "{CGFeedback key1='Products' key2=$entry->id action='summary' pagelimit='3'}"}
  {if $feedback != ''}       
    <a href="{$entry->detail_url}"><span class="titt">{$entry->product_name}</span></a>
    {$feedback}                     
  {/if}
{/foreach}
</div>
Werking is er in dit geval niet anders om hoor, maar het verwerken kost de server minder (micromanagement...)

Belangrijker is m.i. dat je een bepaalde strategie (lees: netheid) aanhoudt, waardoor je problemen met code kunt voorkomen! Als je dat structureel doet nml. dan wordt de code veel gemakkelijker te lezen en zie je fouten sneller.

Groet, Rolf

Re: CGfeedback comment summary werkt niet na upgrade 2.1.5

Posted: Mon Dec 12, 2016 5:11 pm
by Loupol
Rolf wrote:Mooi!! Code technisch ziet het er ook heel wat beter uit! :)

Klein puntje van advies: het gebruik van enkele en dubbele quotes.

- in HTML gebruik je normaal gesproken alleen "
- In Smarty/PHP gebruik je in principe ', behalve als de inhoud uitgevoerd moet worden dan ".

Je krijgt dan:

Code: Select all

<div class="box">
{foreach from=$items item='entry'}
  {$feedback = "{CGFeedback key1='Products' key2=$entry->id action='summary' pagelimit='3'}"}
  {if $feedback != ''}       
    <a href="{$entry->detail_url}"><span class="titt">{$entry->product_name}</span></a>
    {$feedback}                     
  {/if}
{/foreach}
</div>
Werking is er in dit geval niet anders om hoor, maar het verwerken kost de server minder (micromanagement...)

Belangrijker is m.i. dat je een bepaalde strategie (lees: netheid) aanhoudt, waardoor je problemen met code kunt voorkomen! Als je dat structureel doet nml. dan wordt de code veel gemakkelijker te lezen en zie je fouten sneller.

Groet, Rolf
Bedankt Rolf, ik heb het direct aangepast. Goeie tips, ik zal er proberen op te letten, scheelt misschien veel zoekwerk in de toekomst ;)

Groet, Cees

Re: CGfeedback comment summary werkt niet na upgrade 2.1.5

Posted: Mon Dec 12, 2016 9:36 pm
by velden
Ik denk zelfs - niet getest - dat je de double quotes om {CGFeedback...} weg kunnen.
Smarty zorgt hier al voor het uitvoeren/evalueren.