Jump to content

Problème suite à cache vidé


Recommended Posts

Bonjour,

Suite à l'installation d'un module qui me permet de vider mon cache , mon site s'est mis à avoir des problèmes j'ai l'impression que tout le css est parti.

Voici le message d'erreur.

FATAL ERROR: UNCAUGHT EXCEPTION 'SMARTYCOMPILEREXCEPTION' WITH MESSAGE 'SYNTAX ERROR IN TEMPLATE "/HOMEPAGES/5/D311436622/HTDOCS/MODULES/PRODUCTCOMMENTS//PRODUCTCOMMENTS.TPL" ON LINE 140 "{/IF}" UNCLOSED {IF} TAG' IN /HOMEPAGES/5/D311436622/HTDOCS/TOOLS/SMARTY/SYSPLUGINS/SMARTY_INTERNAL_TEMPLATECOMPILERBASE.PHP:431 STACK TRACE: #0 /HOMEPAGES/5/D311436622/HTDOCS/TOOLS/SMARTY/SYSPLUGINS/SMARTY_INTERNAL_SMARTYTEMPLATECOMPILER.PHP(64): SMARTY_INTERNAL_TEMPLATECOMPILERBASE->TRIGGER_TEMPLATE_ERROR('UNCLOSED {IF} T...') #1 /HOMEPAGES/5/D311436622/HTDOCS/TOOLS/SMARTY/SYSPLUGINS/SMARTY_INTERNAL_TEMPLATECOMPILERBASE.PHP(82): SMARTY_INTERNAL_SMARTYTEMPLATECOMPILER->DOCOMPILE('{*?* 2007-2011 ...') #2 /HOMEPAGES/5/D311436622/HTDOCS/TOOLS/SMARTY/SYSPLUGINS/SMARTY_INTERNAL_TEMPLATE.PHP(261): SMARTY_INTERNAL_TEMPLATECOMPILERBASE->COMPILETEMPLATE(OBJECT(SMARTY_INTERNAL_TEMPLATE)) #3 /HOMEPAGES/5/D311436622/HTDOCS/TOOLS/SMARTY/SYSPLUGINS/SMARTY_INTERNAL_TEMPLATE.PHP(423): SMARTY_INTERNAL_TEMPLATE->COMPILETEMPLATESOURCE() #4 /HOMEPAGES/5/D IN/HOMEPAGES/5/D311436622/HTDOCS/TOOLS/SMARTY/SYSPLUGINS/SMARTY_INTERNAL_TEMPLATECOMPILERBASE.PHPON LINE 431

 

Help me please

Link to comment
Share on other sites

Déjà, pourquoi installer un module quand Prestashop le propose nativement depuis les 1.5?

 

Lorsque vous ne videz pas le cache, aucune des modification effectuées sur les tpl ne seront prises en considération.

Si vous le videz, les templates sont recompilés... quand tout va bien.

 

Dans votre cas, vous avez du modifier le template productcomments.tpl et vous avez supprimé une balise fermante {/if} donc smarty se plante comme une bouze  et est incapable d'afficher quoi que ce soit :(

  • Like 1
Link to comment
Share on other sites

Bah justement le problème c'est que je suis sur une version ancienne prestashop 1.4.3.

<div id="idTab5">
<script type="text/javascript" src="{$module_dir}js/jquery.rating.pack.js"></script>
<script type="text/javascript">
$(function(){literal}[spam-filter]/literal} $('input[@type=radio].star').rating(); {literal[spam-filter]{/literal});
$(function(){literal}[spam-filter]/literal}
$('.auto-submit-star').rating({literal}[spam-filter]/literal}
callback: function(value, link){literal}[spam-filter]/literal}
{literal[spam-filter]{/literal}
{literal[spam-filter]{/literal});
{literal[spam-filter]{/literal});
 
//close  comment form
function closeCommentForm(){ldelim}
$('#sendComment').slideUp('fast');
$('input#addCommentButton').fadeIn('slow');
{rdelim}
</script>
{if $comments}
<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
{if $criterions|@count > 0}
{if $criterions|@count > 0}
<span class="hidden" itemprop="reviewCount">{$comments|@count}</span>
<span class="hidden" itemprop="ratingValue">{$averageTotal|round}</span>
<h2>{l s='Average grade' mod='productcomments'}</h2>
<div style="float: left">
{l s='Average' mod='productcomments'}:<br />
{section loop=6 step=1 start=1 name=average}
<input class="auto-submit-star" disabled="disabled" type="radio" name="average" {if $averageTotal|round neq 0 and $smarty.section.average.index eq $averageTotal|round}checked="checked"{/if} />
{/section}
</div>
<div style="float: left; margin-left: 40px; width: 400px">
{foreach from=$criterions item=c}
<div style="float: left; margin-left: 20px; margin-bottom: 10px;">
{$c.name|escape:'html':'UTF-8'}<br />
{section loop=6 step=1 start=1 name=average}
<input class="auto-submit-star" disabled="disabled" type="radio" name="{$c.name|escape:'html':'UTF-8'}_{$smarty.section.average.index}" value="{$smarty.section.average.index}" {if isset($averages[$c.id_product_comment_criterion]) AND $averages[$c.id_product_comment_criterion]|round neq 0 AND $smarty.section.average.index eq $averages[$c.id_product_comment_criterion]|round}checked="checked"{/if} />
{/section}
</div>
{/foreach}
</div>
{/if}
<div class="clear table_block">
<table class="std" style="width: 100%">
<thead>
<tr>
<th class="first_item" style="width:80px;">{l s='From' mod='productcomments'}</th>
<th class="item">{l s='Title' mod='productcomments'}</th>
<th class="item">{l s='Comment' mod='productcomments'}</th>
</tr>
</thead>
<tbody>
{foreach from=$comments item=comment}
{if $comment.content}
<tr>
<td style="vertical-align:top">
{dateFormat date=$comment.date_add|escape:'html':'UTF-8' full=0}
{$comment.customer_name|escape:'html':'UTF-8'}.
</td>
<td style="vertical-align:top">
{$comment.title}
</td>
<td style="vertical-align: top">
{$comment.content|escape:'html':'UTF-8'|nl2br}
</td>
</tr>
{/if}
{/foreach}
</tbody>
</table>
</div>
</div>
{else}
<p class="align_center">{l s='No customer comments for the moment.' mod='productcomments'}</p>
{/if}
 
{if $too_early == true}
<p class="align_center">{l s='You should wait' mod='productcomments'} {$delay} {l s='second(s) before posting a new comment' mod='productcomments'}</p>
{elseif $cookie->isLogged() == true || $allow_guests == true}
<p class="align_center"><input style="margin:auto;" class="button_large" type="button" id="addCommentButton" value="{l s='Add a comment' mod='productcomments'}" onclick="$('#sendComment').slideDown('slow');$(this).slideUp('slow');" /></p>
<form action="{$action_url}" method="post" class="std" id="sendComment" style="display:none;">
<fieldset>
<p class="align_right"><a href="javascript:closeCommentForm()">X</a></p>
<p class="bold">{l s='Add a comment' mod='productcomments'}</p>
{if $criterions|@count > 0}
<table border="0" cellspacing="0" cellpadding="0">
{section loop=$criterions name=i start=0 step=1}
<tr>
<td>    </td>
<td>
<input type="hidden" name="id_product_comment_criterion_{$smarty.section.i.iteration}" value="{$criterions.id_product_comment_criterion|intval}" />
{$criterions.name|escape:'html':'UTF-8'}
</td>
<td>    </td>
<td>
<input class="star" type="radio" name="{$smarty.section.i.iteration}_grade" id="{$smarty.section.i.iteration}_grade" value="1" />
<input class="star" type="radio" name="{$smarty.section.i.iteration}_grade" value="2" />
<input class="star" type="radio" name="{$smarty.section.i.iteration}_grade" value="3" checked="checked" />
<input class="star" type="radio" name="{$smarty.section.i.iteration}_grade" value="4" />
<input class="star" type="radio" name="{$smarty.section.i.iteration}_grade" value="5" />
</td>
</tr>
{/section}
</table>
{/if}
{if $allow_guests == true && $cookie->isLogged() == false}<p><label for="customer_name">{l s='Your name:' mod='productcomments'}</label><input type="text" name="customer_name" id="customer_name" /></p>{/if}
<p><label for="comment_title">{l s='Title:' mod='productcomments'}</label><input type="text" name="title" id="comment_title" /></p>
<p><label for="content">{l s='Comment:' mod='productcomments'}</label><textarea cols="46" rows="5" name="content" id="content"></textarea></p>
<p class="submit">
<input class="button" name="submitMessage" value="{l s='Send' mod='productcomments'}" type="submit" />
</p>
</form>
{else}
<p class="align_center">{l s='Only registered users can post a new comment.' mod='productcomments'}</p>
{/if}
 
Voici les donées de mon fichier tpl . Je suis au bout du rouleau
Link to comment
Share on other sites

J'ai réglé le problème précédent néanmoins j'ai un problème que je n'arrive pas à résoudre http://lecomptoirdescomposites.com/fr/gelcoat-finition/34-gelcoat-de-finition.html  comme vous pouvez voir en suivant mon lien tout mes blocs sont en dessous de la description de mes produits , je ne sais pas pourquoi. Si quelqu'un peut m'expliquer comment je fais pour mettre un lien sur mon logo qui redirige vers ma page d'accueil , Merci beaucoup

Link to comment
Share on other sites

Déjà, on commence par dire merci, c'est la moindre des choses.

 

Pour votre second problème, vous avez inclus la colonne de droite dans la colonne centrale, donc forcément...

 

Je pense qu'avant de bidouiller les tpl, il faut commencer par réfléchir. Si vous supprimez un mur porteur dans la maison, il ne faudra pas se demander pourquoi elle s'effondre.

 

Un lien sur un logo ou une image, cela s'appelle une valise a: <a href="http://maboutique.com><src="url_du_logo" /></a>

  • Like 1
Link to comment
Share on other sites

je vous pris de m'excuser . En effet je n'avais pas remarqué  que je n'avais pas dit merci. Néanmoins je vous remercie pour le temps que vous m'avez accorder. Comme je vous avais dit précédemment je n'ai bidouiller le fichier TPL c'est en vidant le cache que tout ces problèmes ont apparu. 

Link to comment
Share on other sites

Bonjour,

 

C´est pas pour rien qu´on conseille de dupliquer son site afin d´avoir une version de développement pour faire ses tests.

 

Ce n´est pas une question de budget, on peut créer un sous-domaine sur son hébergement, ou prendre un hébergement soit gratuit (site-host), soit payant en tarif mutualisé, si l´on souhaite séparer les deux : boutique active et site de test sur un autre serveur.

 

Mais en aucun cas faire des essais modules sur un site de vente en ligne, c´est de l´irresponsabilité.

 

En cas de problème, vous le mettez en vrac et ça le décrédibilise. 

 

Dans votre cas, et puisque vous refusez de prendre en compte les corrections qu´on a pourtant eut la gentillesse de vous donner.

 

Le meilleur conseil que je puisse vous donner et de supprimer ce dernier module que vous avez ajouté et qui ne sert à rien même sur une 1.4

 

Puisqu´il suffit d´aller sur votre ftp, puis répertoire cache / smarty / compile, supprimer tous les fichiers SAUF : index.

 

Montre en main, ça prend 3 minutes, et encore je compte large.

 

Et de restaurer votre site en arrière, au lieu de le laisser en vrac en attendant la solution miracle, personne ne le fera à votre place.

 

Cordialement.

Link to comment
Share on other sites

Ok...

 

Il y a forcément eu des modifications du fichier tpl, la ligne dupliquée  {if $criterions|@count > 0} n'est pas arrivée là par magie.

 

Tant que le cache n'était pas vidé, vous ne les voyez pas car elles n'étaient pas prises en compte.

Cela peut remonter à quelques mois.

 

Au moment du vidage du cache, Prestashop a été obligé de re-compiler à partir des templates (tpl) existants.  Et si le code n'est pas conforme, l'affichage qui en résulte ne l'est pas non plus :(

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...