fclety Posted August 9, 2013 Share Posted August 9, 2013 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 ! fclety. Link to comment Share on other sites More sharing options...
Prestaspirit Posted August 9, 2013 Share Posted August 9, 2013 Bonjour, Vous êtes sur qu'elle version de prestashop? Vous êtes sur que le cache smarty n'est pas activé et que la compilation est forcé? Le dossier cache est bien accessible en écriture? Franck Link to comment Share on other sites More sharing options...
fclety Posted August 9, 2013 Author Share Posted August 9, 2013 (edited) 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 August 9, 2013 by fclety (see edit history) Link to comment Share on other sites More sharing options...
Prestaspirit Posted August 9, 2013 Share Posted August 9, 2013 Juste après votre foreach vous n'avez pas de if et pourtant vous avez des elseif plus loin, ça doit être la que ça bug. Link to comment Share on other sites More sharing options...
Gregory Roussac Posted August 10, 2013 Share Posted August 10, 2013 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 More sharing options...
fclety Posted August 12, 2013 Author Share Posted August 12, 2013 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 More sharing options...
Gregory Roussac Posted August 12, 2013 Share Posted August 12, 2013 Vous avez une balise smarty mal fermée probablement un {if} Il n'y pas d'erreur ligne 194 du thème, essayez de le mettre à jour et/ou comparer par rapport à ce template dans http://addons.presta...mplate-145.html Cordialement Link to comment Share on other sites More sharing options...
fclety Posted August 12, 2013 Author Share Posted August 12, 2013 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now