Jump to content

Uncaught exception 'SmartyCompilerException'


Recommended Posts

Bonjour à tous,

Je vous explique la situation : suite à un crash serveur, nous avons dû migrer notre boutique de serveur (Windows server 2008 > Linux CentOS).

Après avoir tant bien que mal récupérer la base de données, et avoir ré-upload le site, nous avons sur certaines pages ce type d'erreur :

 

Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "/var/www/vhosts/mainsenmousse.com/httpdocs/modules/blockcategories/category-tree-branch.tpl" on line 41 "</ul>" unclosed {else} tag' in /var/www/vhosts/mainsenmousse.com/httpdocs/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php:431 Stack trace: #0 /var/www/vhosts/mainsenmousse.com/httpdocs/tools/smarty/sysplugins/smarty_internal_compilebase.php(141): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unclosed {else}...') #1 /var/www/vhosts/mainsenmousse.com/httpdocs/tools/smarty/sysplugins/smarty_internal_compile_foreach.php(206): Smarty_Internal_CompileBase->_close_tag(Array) #2 /var/www/vhosts/mainsenmousse.com/httpdocs/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php(284): Smarty_Internal_Compile_Foreachclose->compile(Array, Object(Smarty_Internal_SmartyTemplateCompiler), Array, NULL, NULL) #3 /var/www/vhosts/mainsenmousse.com/httpdocs/tools/smarty/sysplugins/smarty_interna in /var/www/vhosts/mainsenmousse.com/httpdocs/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 431

 

Le problème étant que, dans authentification.tpl, la boucle foreach est bien fermée :

 

{foreach from=$dlv_all_fields item=field_name}[/font][/color]
[color=#000000][font=verdana, geneva, lucida,]{elseif $field_name eq "vat_number"}
<div id="vat_number" style="display:none;">
<p class="text">
<label for="vat_number">{l s='VAT number'}</label>
<input type="text" class="text" name="vat_number" value="{if isset($smarty.post.vat_number)}{$smarty.post.vat_number}{/if}" />
</p>
</div>
{elseif $field_name eq "address1"}
<p class="required text">
<label for="address1">{l s='Address'} <sup>*</sup></label>
<input type="text" class="text" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}">
</p>
{elseif $field_name eq "postcode"}
<p class="required postcode text">
<label for="postcode">{l s='Zip / Postal Code'} <sup>*</sup></label>
<input type="text" class="text" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" onblur="$('#postcode').val($('#postcode').val().toUpperCase());">
</p>
{elseif $field_name eq "city"}
<p class="required text">
<label for="city">{l s='City'} <sup>*</sup></label>
<input type="text" class="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{/if}">
</p>
<!--
if customer hasn't update his layout address, country has to be verified
but it's deprecated
-->
{elseif $field_name eq "Country:name" || $field_name eq "country"}
<p class="required select">
<label for="id_country">{l s='Country'} <sup>*</sup></label>
<select name="id_country" id="id_country">
<option value="">-</option>
{foreach from=$countries item=v}
<option value="{$v.id_country}" {if ($sl_country == $v.id_country)} selected="selected"{/if}>{$v.name|escape:'htmlall':'UTF-8'}</option>
{/foreach}
</select>
</p>
{elseif $field_name eq "State:name"}
{assign var='stateExist' value=true}[/font][/color]
[color=#000000][font=verdana, geneva, lucida,]<p class="required id_state select">
<label for="id_state">{l s='State'} <sup>*</sup></label>
<select name="id_state" id="id_state">
<option value="">-</option>
</select>
</p>
{elseif $field_name eq "phone"}
<p class="required text">
<label for="phone">{l s='Phone'} <sup>*</sup></label>
<input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}">
</p>
{/if}
{/foreach}

 

Je suis désolé pour l'indentation, mais vous pouvez voir que le foreach est bien fermé.. Pour + de lisibilité : http://codepad.org/YmFlkMHO

 

J'ai également le même type d'erreur sur d'autres pages. J'ai du mal à comprendre comment d'un serveur à l'autre il peut y avoir une erreur de syntaxe, le site fonctionnant parfaitement auparavant.. Je penche donc plutôt pour une erreur de configuration serveur (version de Smarty etc.. ?).

 

Je vous remercie de m'avoir lu, je continue à chercher en attendant vos réponses icon_smile.gif !

 

fclety.

Link to comment
Share on other sites

Version de Prestashop: 1.4.7.

Dans le bloc smarty :

Forcer la compilation > oui

Cache > non

Dans CCC : les quatres premières checkbox > Conserver le fonctionnement classique

En bas, cache > Utiliser le cache > non

 

Je vous remercie de prendre le temps de m'aider..

 

Concernant le dossier cache, nous n'avons effectué aucun chmod au sein du ftp, mais je peux vérifier, quel est le path de ce dossier ?

 

J'essaierai d'être le + présent possible dans le courant du week-end.

Edited by fclety (see edit history)
Link to comment
Share on other sites

Hello,

 

Pourquoi authentification.tpl?

 

L'erreur parle de

/var/www/vhosts/mainsenmousse.com/httpdocs/modules/blockcategories/category-tree-branch.tpl, pourquoi ne pas verifier ce fichier et le reuploader depuis une version stable ?

 

Désolé ce n'est pas un bug de la solution, je déplace votre post.

 

Cordialement

Link to comment
Share on other sites

Pas de problème pour le déplacement du post, je n'ai pas été assez attentif..

 

Au temps pour moi, j'ai copié la mauvaise erreur.. Celle sur category tree branch a été résolu.

 

Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "/var/www/vhosts/mainsenmousse.com/httpdocs/themes/prestashop_new/authentication.tpl" on line 194 "<div id="vat_number" style="display:none;">" unclosed {foreach} tag' in /var/www/vhosts/mainsenmousse.com/httpdocs/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php:431 Stack trace: #0 /var/www/vhosts/mainsenmousse.com/httpdocs/tools/smarty/sysplugins/smarty_internal_compilebase.php(141): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unclosed {forea...') #1 /var/www/vhosts/mainsenmousse.com/httpdocs/tools/smarty/sysplugins/smarty_internal_compile_if.php(98): Smarty_Internal_CompileBase->_close_tag(Array) #2 /var/www/vhosts/mainsenmousse.com/httpdocs/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php(284): Smarty_Internal_Compile_Elseif->compile(Array, Object(Smarty_Internal_SmartyTemplateCompiler), Array, NULL, NULL) #3 /var/www/vhosts/mainsenmousse.com/httpd in /var/www/vhosts/mainsenmousse.com/httpdocs/tools/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 431

Link to comment
Share on other sites

J'ai effectivement upload le fichier à partir d'une installation standard de prestashop, tout fonctionne désormais.. Des modifications ont dû être effectuées sans que j'en sois informé..

 

Merci à tous, je vous souhaite une bonne journée :) !

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...