Managed Server
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Template Probleme mit Php 8

    je_web

    • Mitglied
    • Beiträge: 201
    • Geschlecht:
    Template Probleme mit Php 8
    am: 25. Januar 2024, 19:55:45
    Hallo zusammen,

    ich versuche gerade meinen Shop für php 8 tauglich zu machen. Aktuell läuft der Shop auf 7.4 in der Version 2.7.2. Für das Update 3.0.2 muss ich aber zunächst auf php8.

    Soweit läuft auch alles mit dem aktuellen Template und php8, außer eine kleine Sache:

    Sobald ich versuche die Produkseite eines Produktes in einer Unterkategorie aufzurufen erhalte ich zwar den Inhalt, aber ohne Template und css Styles. D.h. ich erhalte den Produkt-Inhalt mit bildern in einer ungestylten Version.
    Dabei spielt es keine Rolle ob ich den Server auf php 8.0, 8.1 oder 8.2 laufen lasse.

    Interessanterweise funktioniert das Template auch bei Produkten die auf der Startseite angezeigt werden oder in der Kategorieebene 1 liegen. Ebenso funktioniert das Template in der ersten Unterkategorie (bei mir gibt es catid 2 und dann geht es dort weiter mit 2-3, 2-4 und 2-5). In diesem Fall funktionieren die Produkte in Kategorie 2-3 und alle weiteren Produkte in 2-4 und 2-5 nicht. Hat jemand eine Idee, wo ich suchen könnte?

    Wenn ich ein anderes Template wähle, z.B. Product-Info Tabs (das nicht angepasst wurde) dann geht das auch in den weiteren Unterkategorien. Der Error-Log zeigt nichts zu diesem Problem an.

    Danke und Grüße
    Jens

    Linkback: https://www.modified-shop.org/forum/index.php?topic=43260.0
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware

    Timm

    • Fördermitglied
    • Beiträge: 6.260
    Re: Template Probleme mit Php 8
    Antwort #1 am: 26. Januar 2024, 00:02:06
    Moin

    Ich werde dir vermutlich nicht direkt helfen können...

    Scheinbar führt die geänderte "Vorlage für Artikeldetails" zum Problem. Du meinst also mit "wenn ich ein anderes Template wähle" nicht ein anderes Template sondern nur die Artikeldetailvorlage.

    Dann schreib hier doch mal warum und was in der Artikeldetailvorlage geändert wurde. Am besten die Datei hier in Codetags posten.

    Du testest in 2.0.7.2, oder? Gibt es im log warnings dazu? Hast du in /export/ die Datei _error.reporting.all?

    Gruß Timm

    je_web

    • Mitglied
    • Beiträge: 201
    • Geschlecht:
    Re: Template Probleme mit Php 8
    Antwort #2 am: 26. Januar 2024, 08:10:43
    Guten Morgen,

    die Datei  /export/ die Datei _error.reporting.all ist 0KB also leer.

    Meine product_info_v1.html sieht so aus:

    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="product_info"}
    {config_load file="lang_`$language`.custom"}
    {config_load file="lang_`$language`.section" section="product_info"}
    {if $error_message != ''}<div class="alert alert-danger">{$error_message}</div>{/if}

    <div id="product_info">
            <section class="py-1" id="productdetail">
                    <div class="my-2">
                      {$FORM_ACTION}
                            <div class="row gx-4 gx-lg-5">
                                    <div class="col md-6">
              {if $PRODUCTS_IMAGE != ''}
                  <a class="cbimages" data-toggle="lightbox" data-gallery="example-gallery" title="{$PRODUCTS_NAME|onlytext}" href="{$PRODUCTS_IMAGE|replace:"info_images":"popup_images"}">
                    <img class="card-img-top mb-5 mb-md-0" src="{$PRODUCTS_IMAGE}" alt="{$PRODUCTS_NAME|onlytext}" />
                  </a>
                <small class="zoomtext">{#zoomtext#}</small>
             {/if}
                                    </div>
                                    <div class="col-md-6">
                                            {if $PRODUCTS_MODEL != ''}<div class="small mb-1">{$PRODUCTS_MODEL}</div>{/if}
                                            <h1 class="display-5 fw-bolder">{if $PRODUCTS_HEADING_TITLE != ''}{$PRODUCTS_HEADING_TITLE}{else}{$PRODUCTS_NAME}{/if}</h1>
                                            <div class="fs-5 mb-1">
                                                    <span>
                                                            {foreach name=inner item=price_data from=$PRODUCTS_PRICE_ARRAY}
                                                                    {include file="module/includes/price_info.html"}
                                                            {/foreach}
                                                    </span><br>
                                                    <small>{$PRODUCTS_TAX_INFO}{if $PRODUCTS_SHIPPING_LINK}{$PRODUCTS_SHIPPING_LINK}{/if}</small><br>
                                            {if $PRODUCTS_QUANTITY > 0}
                                                            {if $PRODUCTS_QUANTITY > 3}
                                                            <small class="text-success">{#text_in_stock#}</small><br>
                                                            {else}
                                                            <small class="text-warning">{#text_few_stock#}</small><br>
                                                            {/if}
                                                    {if $SHIPPING_NAME}<small>{#text_shippingtime#} {$SHIPPING_NAME_LINK}</small>{/if}
                                            {else}
                                                    <small class="text-danger">{#text_out_of_stock#}</small>
                                            {/if}
                                            </div>
                                            {if isset($MODULE_product_options) && $MODULE_product_options != ''}
                                            <div class="bg-custom mb-2">
                                                    {$MODULE_product_options}
                                            </div>
                                            {/if}
                                            {if $ADD_CART_BUTTON != '' && $PRODUCTS_QUANTITY > 0}
                                            <div class="bg-custom py-2 mb-1">
                                                    <div class="row">
                                                            <div class="col-3 mb-1">{$ADD_QTY|replace:'input':'input class="form-control form-control"'}</div>
                                                            <div class="col-9">
                                                                    {$ADD_CART_BUTTON|replace:'btn ':'form-control btn '}
                                                            </div>
                                                    </div>
                                            </div>
                                            {/if}
                                            <div class="mt-5 alert alert-info">
                                                    <span>{#warning_text#}</span>
                                            </div>
                                    </div>
                            </div>
                      {$FORM_END}
                    </div>
                    <div class="my-5">
                            <div class="col-12">
                                    {if $PRODUCTS_DESCRIPTION != ''}<h4>{#products_desc#}</h4>
                                    <div>{$PRODUCTS_DESCRIPTION}</div>{/if}
                            </div>
                    </div>
            </div>
        {if $PRODUCTS_IMAGE != '' && $more_images|@count > 0}
        <div class="mb-5">
          <div>
            <h4>{#more_pictures#}</h4>
         </div>
          <div class="row">
              {foreach item=more_images_data from=$more_images}
              <div class="col-6 col-md-3">
                <a class="" data-toggle="lightbox" data-gallery="example-gallery" title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}">
                  <img class="img-fluid unveil" src="{$tpl_path}css/images/loading.gif" data-src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" /></a>
                <noscript><a title="{$PRODUCTS_NAME|onlytext}" href="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"popup_images"}">
                  <img class="img-fluid" src="{$more_images_data.PRODUCTS_IMAGE|replace:"info_images":"thumbnail_images"}" alt="{$PRODUCTS_NAME|onlytext}" /></a></noscript>
              </div>                          
              {/foreach}
              <br class="clearfix" />
              </div>
            </div>
            {/if}
            {if $MODULE_products_media != ''}
            <div class="mb-5">
              <div>
                    <h4 id="media">{#products_media#}</h4>
              </div>
              <div class="row">
                    {$MODULE_products_media}
              </div>
            </div>
            {/if}
            </div>
            </section>
    </div>
    <script type="application/ld+json">
            {
              "@context": "https://schema.org",
              "@type": "Product",
              "description": "{$PRODUCTS_DESCRIPTION|strip_tags:false}",
              "name": "{$PRODUCTS_NAME}",
              "image": "{$PRODUCTS_IMAGE}",
              "offers": {
                    "@type": "Offer",
                    "availability": {if $PRODUCTS_QUANTITY <= 0 && $smarty.const.STOCK_CHECK == 'true'}"http://schema.org/OutOfStock"{else}"http://schema.org/InStock"{/if},
                    "price": "{$price_data.PRODUCTS_PRICE_PLAIN}",
                    "priceCurrency": "{$smarty.session.currency}"
              }
            }
    </script>
     

    Ich hab die Befürchtung das in irgendeinem Source File im Template was schief läuft, was unter php7.4 noch funktioniert.

    Timm

    • Fördermitglied
    • Beiträge: 6.260
    Re: Template Probleme mit Php 8
    Antwort #3 am: 26. Januar 2024, 09:16:05
    Moin

    Die _error.reporting.all ist immer 0kb groß. Die ist nur dafür da, dem Shop zu sagen, dass er alle Fehlermeldungen loggen soll. Das ist ok.

    Um welches Template handelt es sich? Wenn es kein Standardtemplate ist, dann poste mal noch die unveränderte product_info_v1.html.

    Gruß Timm

    je_web

    • Mitglied
    • Beiträge: 201
    • Geschlecht:
    Re: Template Probleme mit Php 8
    Antwort #4 am: 26. Januar 2024, 10:09:00
    Das oben ist die product_info_v1.html.
    In dieser Form läuft sie seit ca. 1,5 Jahren. Mit 2.7.2 und php 7.4.3

    Das Template basiert auf dem bootstrap4-horizontal von fishnet (https://www.modified-shop.org/forum/index.php?topic=40199.0)

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Template Probleme mit Php 8
    Antwort #5 am: 26. Januar 2024, 10:25:53
    Entferne mal testweise das JavaScript (unten) aus der Datei und schau, ob es dann funktioniert. Sollte dies der Fall sein, muss dieses wahrscheinlich in einen LITERAL-Tag eingeschlossen oder (besser:) in einer Extradatei in /templates/TEMPLATE/javascript/extra/ positioniert werden.

    je_web

    • Mitglied
    • Beiträge: 201
    • Geschlecht:
    Re: Template Probleme mit Php 8
    Antwort #6 am: 26. Januar 2024, 11:07:18
    Entferne mal testweise das JavaScript (unten) aus der Datei und schau, ob es dann funktioniert.

    Nein, leider nicht.

    Ich glaube ich hab den Fehler gefunden:
    Das hier
    Code: PHP  [Auswählen]
    {if $PRODUCTS_IMAGE != '' && $more_images|@count > 0}
    Scheint nicht zu funktionieren, denn das Problem verschwindet wenn mehr als 1 Produktbild angelegt ist.

    Ich hab jetzt durch
    Code: PHP  [Auswählen]
    {if $PRODUCTS_IMAGE != '' && isset($more_images) && count($more_images) > 0}
    ersetzt, jetzt funktioniert es.
    36 Antworten
    9959 Aufrufe
    14. September 2010, 22:28:47 von online.geschenke.welt
    26 Antworten
    9566 Aufrufe
    01. März 2010, 11:01:02 von Tomcraft
    31 Antworten
    15646 Aufrufe
    30. Dezember 2014, 09:53:29 von Fabrizio