Jump to content

MESSAGE D'ERREUR Warning: Illegal string offset 'is_catalog'


Recommended Posts

Bonjour

Sur mon prestashop 1.7 avec le thème Akira, à la suite d'une mise à jour de module (sendinblue et mollie), le site s'est mis à planter au moment où je suis connecté à mon compte client et clique sur le bouton "commander".

ça renvoie ce message :

ContextErrorException

Warning: Illegal string offset 'is_catalog'

in e0094dc4e3570d217bb3aa0754295dd1f476aebd_2.file.account.tpl.php line 149

at content_6400b61e7967c2_56982522(object(SmartyDevTemplate))

in smarty_template_resource_base.php line 123

etc.

Dans le fichier en question, voici la ligne 149 :

    <?php if (!$_smarty_tpl->tpl_vars['configuration']->value['is_catalog']) {?>
                            <a class="sb-item" href="<?php echo htmlspecialchars($_smarty_tpl->tpl_vars['urls']->value['pages']['history'], ENT_QUOTES, 'UTF-8');?>

Le site est en maintenance et j'ai désinstallé sendinblue et mollie...

 

Quelqu'un aurait-il une idée de la provenance de l'erreur et de comment la résoudre ?

Merci d'avance :rolleyes:

screenshot-www.universzerodechet.com-2023.03.02-16_57_13.png

Link to comment
Share on other sites

La le problème vient plutôt du module nrthemecustomizer.

Le fait d'avoir installé les autres modules ça a vidé le cache.

A priori ca voudrait dire que {$value} n'est pas un tableau mais un string il faudrait donc contrôler que c'est bien un tableau avant d'essayer de lui extraire un index.

A corriger dans le fichier account.tpl de votre thème.

Link to comment
Share on other sites

ok merci.

Quote

A corriger dans le fichier account.tpl de votre thème.

Dans le fichier account.tpl, il y a ça (quand je cherche "is_catalog"), mais je ne comprends pas ce qu'il y a à modifier :       

     {if !$configuration.is_catalog}
                            <a class="sb-item" href="{$urls.pages.history}" title="{l s='Order history and details' d='Shop.Theme.Customeraccount'}">
                                <i class="las la-calendar"></i>
                                <span>
                                    {l s='Order history and details' d='Shop.Theme.Customeraccount'}
                                </span>
                            </a>
                        {/if}
                        {if !$configuration.is_catalog}
                            <a class="sb-item" href="{$urls.pages.order_slip}" title="{l s='Credit slips' d='Shop.Theme.Customeraccount'}">
                                <i class="las la-receipt"></i>
                                <span>
                                    {l s='Credit slips' d='Shop.Theme.Customeraccount'}
                                </span>
                            </a>
                        {/if}
                        {if $configuration.voucher_enabled && !$configuration.is_catalog}
                            <a class="sb-item" href="{$urls.pages.discount}" title="{l s='Vouchers' d='Shop.Theme.Customeraccount'}">
                                <i class="las la-tags"></i>
                                <span>
                                    {l s='Vouchers' d='Shop.Theme.Customeraccount'}
                                </span>
                            </a>
                        {/if}
                        {if $configuration.return_enabled && !$configuration.is_catalog}
                            <a class="sb-item" href="{$urls.pages.order_follow}" title="{l s='Merchandise returns' d='Shop.Theme.Customeraccount'}">
                                <i class="las la-reply"></i>
                                <span>
                                    {l s='Merchandise returns' d='Shop.Theme.Customeraccount'}
                                </span>
                            </a>
                        {/if}

 

Link to comment
Share on other sites

enfin non, pas c'est tout.

Il y a 2 endroits et aussi les 2 suivants

{if isset($configuration.voucher_enabled) && !isset($configuration.is_catalog)}
{if isset($configuration.return_enabled) && !isset($configuration.is_catalog)}

En fait ce code est moisi, le plus simple c'est ça: 

{if !isset($configuration.is_catalog)}
	<a class="sb-item" href="{$urls.pages.history}" title="{l s='Order history and details' d='Shop.Theme.Customeraccount'}">
		<i class="las la-calendar"></i>
		<span>
			{l s='Order history and details' d='Shop.Theme.Customeraccount'}
		</span>
	</a>
	<a class="sb-item" href="{$urls.pages.order_slip}" title="{l s='Credit slips' d='Shop.Theme.Customeraccount'}">
		<i class="las la-receipt"></i>
		<span>
			{l s='Credit slips' d='Shop.Theme.Customeraccount'}
		</span>
	</a>
	{if isset($configuration.voucher_enabled)}
		<a class="sb-item" href="{$urls.pages.discount}" title="{l s='Vouchers' d='Shop.Theme.Customeraccount'}">
			<i class="las la-tags"></i>
			<span>
				{l s='Vouchers' d='Shop.Theme.Customeraccount'}
			</span>
		</a>
	{/if}
	{if isset($configuration.return_enabled)}
		<a class="sb-item" href="{$urls.pages.order_follow}" title="{l s='Merchandise returns' d='Shop.Theme.Customeraccount'}">
			<i class="las la-reply"></i>
			<span>
				{l s='Merchandise returns' d='Shop.Theme.Customeraccount'}
			</span>
		</a>
	{/if}
{/if}

 

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