Jump to content

PHP 7.4 : correction de bug en mode debug (variable NULL)


Recommended Posts

Posted (edited)

Bonjour,

Il me reste quelques pages avec des erreurs 500 en mode debug uniquement & sous PHP 7.4 (aucun problème sous PHP 7.3) avec un thème custom (pas d'assistance possible) et PS 1.7.8.11.

J'ai identifié la source du problème (concernant les pages "catégorie") : si et uniquement si il n'y a pas d'image de "couverture de la catégorie", alors j'ai un avertissement en mode debug "ContextErrorException ; Notice: Trying to access array offset on value of type NULL".

Voici le passage concerné dans mon fichier "microdata-jsonld.tpl" :

{elseif $page.page_name === 'category' && isset($category) && $category.image.large.url}

J'ai modifié le code de cette façon, l'erreur faisant référence à microdata-jsonld.tpl à disparu :

{elseif $page.page_name === 'category' && isset($category) && isset($category.image.large.url)}

Il reste maintenant la deuxième référence qui pointe maintenant sur le fichier "category-header.tpl", voici mon fichier "category-header.tpl" actuellement :

    {if ($category.description || $category.image.large.url) && $listing.pagination.items_shown_from == 1}
        <div class="d-flex">
            <!--{if $category.description}
                <div id="category-description" class="text-muted">{$category.description nofilter}</div>
            {/if}-->
            {if $category.image.large.url}
                <div class="category-cover">
                    <img src="{$category.image.large.url}" class="lazyload" alt="{if !empty($category.image.legend)}{$category.image.legend}{else}{$category.name}{/if}">
                </div>
            {/if}
        </div>
    {/if}

J'ai modifié le code comme suit, à priori cela semble ok, pouvez-vous me dire si la modification est correcte ? :

    {if ($category.description || isset($category.image.large.url)) && $listing.pagination.items_shown_from == 1}
        <div class="d-flex">
            <!--{if $category.description}
                <div id="category-description" class="text-muted">{$category.description nofilter}</div>
            {/if}-->
            {if isset($category.image.large.url)}
                <div class="category-cover">
                    <img src="{$category.image.large.url}" class="lazyload" alt="{if !empty($category.image.legend)}{$category.image.legend}{else}{$category.name}{/if}">
                </div>
            {/if}
        </div>
    {/if}


--> Reste donc une dernière erreur sur mes pages catégories qui ont des sous-catégories : ContextErrorException
Notice: Undefined index: subcategory_custom, avec une mention dans le fichier 
"category.tpl" :

    <div id="subcategories">
        <p class="subcategory-heading">{l s='Sous-catégories'}</p>
        <ul class="clearfix">
          {foreach from=$subcategories item=subcategory}
          <li>
                <a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'html':'UTF-8'}" title="{$subcategory.name|escape:'html':'UTF-8'}" class="img">
         	  	 <img class="img-fluid lazyloaded replace-2x" src="{$subcategory.image.bySize.subcategory_custom.url}" alt="{$subcategory.name|escape:'html':'UTF-8'}"  />
       		  </a>
                <h5><a class="subcategory-name" href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'html':'UTF-8'}">{$subcategory.name|truncate:25:'...'|escape:'html':'UTF-8'}</a></h5>    
          </li>
          {/foreach}
         </ul>
    </div>

Modifications apportées :

	{if isset($subcategories)}
	<!-- Subcategories -->
    <div id="subcategories">
        <p class="subcategory-heading">{l s='Sous-catégories'}</p>
        <ul class="clearfix">
          {foreach from=$subcategories item=subcategory}
			<li>
				<div class="subcategory-image">
					<a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'html':'UTF-8'}" title="{$subcategory.name|escape:'html':'UTF-8'}" class="img">
						{if $subcategory.id_image}
							<img class="replace-2x" src="{$link->getCatImageLink($subcategory.link_rewrite, $subcategory.id_image, 'category_default')|escape:'html':'UTF-8'}" alt="{$subcategory.name|escape:'html':'UTF-8'}"/>
                        {else}
                            <img class="replace-2x" src="{$img_cat_dir}{$lang_iso}-default-category_default.jpg" alt="{$subcategory.name|escape:'html':'UTF-8'}"/>
                        {/if}
                            </a>
					<h5><a class="subcategory-name" href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'html':'UTF-8'}">{$subcategory.name|truncate:25:'...'|escape:'html':'UTF-8'}</a></h5>
                </div> 
			</li>
          {/foreach}
         </ul>
    </div>
	{/if}

EDIT : j'ai apporté des modifications qui semblent régler les problèmes.
Merci de poster un message si mes corrections ne sont pas bonnes, ca pourrait peut-être servir à d'autres personne.

Merci !

Edited by gouna (see edit history)
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...