Jump to content

Problème Smarty - Sysplugins


Recommended Posts

Bonjour,

 

Je rencontre actuellement un problème qui m'arrache les cheveux ..

 

Nous avons développé une petite fonctionnalité sur les caractéristiques et celle-ci s'affiche correctement en local mais crash une fois en ligne avec comme erreur:

 

"Warning: array_diff(): Argument #1 is not an array in /home/facemylohr/www/tools/smarty/sysplugins/smarty_internal_templatebase.php(157) : eval()'d code on line 523"

 

Je vous invite à regarder les pièces jointes (une en local et l'autre en ligne).

 

D'avance merci pour votre aide.

 

 

Cordialement,

post-1106258-0-79807700-1483533176_thumb.png

post-1106258-0-84647700-1483533177_thumb.png

Link to comment
Share on other sites

Ta sympathie est très démonstrative Doekia.

 

Voici le code.


<section class="page-product-box">
	
	{if !in_array(80, $categories)}
	
	{if isset($features_by_key.9.value) or isset($features_by_key.10.value) or isset($features_by_key.11.value)}
		<h3 {if isset($features_by_key.9.value) && $features_by_key.9.value != '#F9F9F9'} style="color:{$features_by_key.9.value};" {/if}>{l s='Monture'} :</h3>
		<ul class="data-sheet">
			{if isset($features_by_key.9.value)}
			<li>
				<strong>{$features_by_key.9.name} : </strong> <div class="color" style="background:{$features_by_key.9.value};"></div>
			</li>
			{/if}
			{if isset($features_by_key.10.value)}
			<li>
				<strong>{$features_by_key.10.name} : </strong> {$features_by_key.10.value}
			</li>
			{/if}
			{if isset($features_by_key.11.value)}
			<li>
				<strong>{$features_by_key.11.name} : </strong> {$features_by_key.11.value}
			</li>
			{/if}
		</ul>
	{/if}
	
	{if isset($features_by_key.12.value) or isset($features_by_key.13.value) or isset($features_by_key.14.value) or isset($features_by_key.15.value) or isset($features_by_key.16.value)}
		<h3 {if isset($features_by_key.9.value) && $features_by_key.9.value != '#F9F9F9'} style="color:{$features_by_key.9.value};" {/if}>{l s='Verres'} :</h3>
		<ul class="data-sheet">
			{if isset($features_by_key.12.value)}
			<li>
				<strong>{$features_by_key.12.name} : </strong> <div class="color {if isset($features_by_key.16.value) && $features_by_key.16.value=='Miroir'}mirror{/if} {if isset($features_by_key.16.value) && $features_by_key.16.value=='Dégradé'}gradient{/if}" style="background:{$features_by_key.12.value};"></div>
			</li>
			{/if}
			{if isset($features_by_key.13.value)}
			<li>
				<strong>{$features_by_key.13.name} : </strong> {$features_by_key.13.value}
			</li>
			{/if}
			{if isset($features_by_key.14.value)}
			<li>
				<strong>{$features_by_key.14.name} : </strong> {$features_by_key.14.value}
			</li>
			{/if}
			{if isset($features_by_key.15.value)}
			<li>
				<strong>{$features_by_key.15.name} : </strong> {$features_by_key.15.value}
			</li>
			{/if}
			{if isset($features_by_key.16.value)}
			<li>
				<strong>{$features_by_key.16.name} : </strong> {$features_by_key.16.value}
			</li>
			{/if}
		</ul>
	{/if}
	
	{if isset($features_by_key.18.value) or isset($features_by_key.19.value)}
		<h3 {if isset($features_by_key.9.value) && $features_by_key.9.value != '#F9F9F9'} style="color:{$features_by_key.9.value};" {/if}>{l s='Tailles'} :</h3>
		<ul class="data-sheet">
			{if isset($features_by_key.18.value)}
			<li>
				<strong>{$features_by_key.18.name} : </strong> {$features_by_key.18.value}
			</li>
			{/if}
			{if isset($features_by_key.19.value)}
			<li>
				<strong>{$features_by_key.19.name} : </strong> {$features_by_key.19.value}
			</li>
			{/if}
		</ul>
	{/if}
	
	{/if}
	
</section>




		{$custom_display = [9,10,11,12,13,14,15,16,18,19]}
		{assign var="features_keys" value=$features_by_key|array_keys}
		{assign var="other_features" value=$features_keys|array_diff:$custom_display}

		{if isset($other_features) && $other_features}
			<!-- Data sheet -->
			<section class="page-product-box">
				<ul class="table-data-sheet">
					{foreach from=$features_by_key item=feature key=key}
						{if in_array($key, $other_features)}
							<li class="{cycle values="odd,even"}">
								{if isset($feature.value)}
									<strong>{$feature.name|escape:'html':'UTF-8'} :</strong> {$feature.value|escape:'html':'UTF-8'}
								{/if}
							</li>
						{/if}
					{/foreach}
				</ul>
			</section>
			<!--end Data sheet -->
		{/if}

		{if isset($product) && $product->description}
			<!-- More info -->
			<section class="page-product-box">
				<!-- full description -->
				<div  class="rte">{$product->description}</div>
			</section>
			<!--end  More info -->
		{/if}
Link to comment
Share on other sites

Ma symphatie ?!? Je vais faire comme si je n'avais rien lu, va.

 

Encadre ton bloc 

		{$custom_display = [9,10,11,12,13,14,15,16,18,19]}
		{assign var="features_keys" value=$features_by_key|array_keys}
		{assign var="other_features" value=$features_keys|array_diff:$custom_display}

avec {if !empty($features_by_keys))} ... {/if}

 

Un code qui reproduit exactement ta liste d'erreur est ceci. Dans lequel $a n'est pas déclaré.

~$ php -r 'print_r(array_diff(array_keys($a),array(1)));'

PHP Notice:  Undefined variable: a in Command line code on line 1
PHP Warning:  array_keys() expects parameter 1 to be array, null given in Command line code on line 1
PHP Warning:  array_diff(): Argument #1 is not an array in Command line code on line 1
Link to comment
Share on other sites

  • 3 weeks later...

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