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: Bug in /includes/modules/product_listing.php

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Bug in /includes/modules/product_listing.php
    am: 30. Juni 2013, 15:37:07
    In Version 1.06 rev 4642 gibt es einen Bug in /includes/modules/product_listing.php.
    In der Version 1.06 rev 4356 gab es noch folgende Einschränkung in ca. Zeile 51:
    Code: PHP  [Auswählen]
    if (xtc_db_num_rows($category_query, true)>0) {
        $category = xtc_db_fetch_array($category_query, true);

    Diese wurde in rev 4642 entfernt, sodaß dort nur noch steht:
    Code: PHP  [Auswählen]
    $category = xtc_db_fetch_array($category_query, true);

    Das bedeutet wenn ich über das Suchfeld eine Suche vornehme und das array $category leer bzw. gar nicht vorhanden ist, ein Fehler ausgeworfen wird:

    Code: PHP  [Auswählen]
    Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /XXX/XXX/XXX/XXX.de/includes/modules/product_listing.php on line 94

    Zur Kontrolle,
    Zeile 92 in rev 4642:
    Code: PHP  [Auswählen]
    if (!array_key_exists('listing_template', $category) || $category['listing_template'] == '' || $category['listing_template'] == 'default') {

    Gruß,
    noRiddle

    *NACHTRAG*
    Im Demo-Shop scheint das Problem bereits behoben zu sein.

    *NACHTRAG II*
    Alternativ zu der if-clause kann die Zeile 92 so gestaltet werden:
    Code: PHP  [Auswählen]
    if ((isset($category) || !array_key_exists('listing_template', $category)) || $category['listing_template'] == '' || $category['listing_template'] == 'default') {


    Linkback: https://www.modified-shop.org/forum/index.php?topic=26787.0

    Koala

    • Frisch an Board
    • Beiträge: 69
    Re: Bug in /includes/modules/product_listing.php
    Antwort #1 am: 30. Juni 2013, 15:44:06
    Was zu ändern ist, damit die Suche funktioniert, hab ich hier beschrieben:
    modified eCommerce Shopsoftware 1.06 rev 4642 veröffentlicht

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: Bug in /includes/modules/product_listing.php
    Antwort #2 am: 30. Juni 2013, 15:47:52
    Ah, okay, kannte ich nicht.
    Dann haben wir jetzt schon drei Lösungen ;-) .

    Gruß,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Bug in /includes/modules/product_listing.php
    Antwort #3 am: 01. Juli 2013, 09:42:53
    Das wurde in r4644 bereits korrigiert.

    Suche in "/includes/modules/product_listing.php":

    Code: PHP  [Auswählen]
      if (!array_key_exists('listing_template', $category) || $category['listing_template'] == '' || $category['listing_template'] == 'default') {

    und ersetze mit:

    Code: PHP  [Auswählen]
      if (!isset($category['listing_template']) || $category['listing_template'] == '' || $category['listing_template'] == 'default') {

    Grüße

    Torsten

    Koala

    • Frisch an Board
    • Beiträge: 69
    Re: Bug in /includes/modules/product_listing.php
    Antwort #4 am: 01. Juli 2013, 09:50:34
    Code: PHP  [Auswählen]
    !isset($category['listing_template']) || $category['listing_template'] == ''

    läßt sich zusammenfassen zu:
    Code: PHP  [Auswählen]
    empty($category['listing_template'])

    da empty auf Inhalt und auf gesetzt prüft.

    http://php.net/manual/de/function.empty.php

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.868
    • Geschlecht:
    Re: Bug in /includes/modules/product_listing.php
    Antwort #5 am: 01. Juli 2013, 10:18:02
    Das wurde in r4644 bereits korrigiert.

    Suche in "/includes/modules/product_listing.php":

    Code: PHP  [Auswählen]
      if (!array_key_exists('listing_template', $category) || $category['listing_template'] == '' || $category['listing_template'] == 'default') {

    und ersetze mit:

    Code: PHP  [Auswählen]
      if (!isset($category['listing_template']) || $category['listing_template'] == '' || $category['listing_template'] == 'default') {

    Grüße

    Torsten

    das ist halt immer das Blöde daran, dass die Changesets nichts mehr einsehbar sind. Dieser Fehler wurde bereits vor ca. 2-3 Monaten gemeldet, und ist scheinbar auch bereits gefixt worden. Nur leider wurde dies
    a) nicht kommuniziert und
    b) da er nicht einsehbar ist, kann man das selber auch nicht fixen und schleppt diesen Fehler dauernd mit sich herum

    Dieser Fehler ist auch ein Grund, warum ich bis jetzt noch immer nicht auf die rev4642 gewechselt hatte, denn mit Fehlern mag ich keine neuere Version einsetzen. Und das ist dann die Krux an der Sache:
    ein paar wichtige Verbesserungen sind enthalten (z.B. Ust-ID Prüfung), aber wegen kleinerer Fehler, die eigentlich gefixt sind, kann man dennoch nicht ohne schlechtes Gewissen updaten!

    Hier muss meiner Meinung nach wirklich nochmals genauer überlegt werden, wie man das besser kommunizieren kann/soll.
    -> Ansonsten muss halt gleich nochmal ein Fixpaket nachgelegt werden oder sonstetwas.

    Grüße
    Dominik

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Bug in /includes/modules/product_listing.php
    Antwort #6 am: 01. Juli 2013, 11:32:38
    Code: PHP  [Auswählen]
    !isset($category['listing_template']) || $category['listing_template'] == ''

    läßt sich zusammenfassen zu:
    Code: PHP  [Auswählen]
    empty($category['listing_template'])

    da empty auf Inhalt und auf gesetzt prüft.

    http://php.net/manual/de/function.empty.php

    Danke für den Hinweis. :thx:

    Ich habe das mal in r4991 übernommen.

    Grüße

    Torsten

    piru

    • Fördermitglied
    • Beiträge: 1.263
    • Geschlecht:
    Re: Bug in /includes/modules/product_listing.php
    Antwort #7 am: 01. Juli 2013, 12:51:48
    Hier muss meiner Meinung nach wirklich nochmals genauer überlegt werden, wie man das besser kommunizieren kann/soll.
    -> Ansonsten muss halt gleich nochmal ein Fixpaket nachgelegt werden oder sonstetwas.
    Sollte nicht in BUGFIXES modified 1.6 ergänzt werden?

    Gruß piru

    fishnet

    • Fördermitglied
    • Beiträge: 4.821
    • Geschlecht:
    Re: Bug in /includes/modules/product_listing.php
    Antwort #8 am: 30. Juli 2013, 16:51:59
    [...]
    Danke für den Hinweis. :thx:
    Ich habe das mal in r4991 übernommen.
    [...]
    Ganz im Ernst, ich frage mich, was wir mit solchen Aussagen anfangen sollen ?
    Wenn die Changesets nicht mehr einsehbar sind, kann man diese Kommunikation dann auch noch weglassen, darauf kommts dann nicht mehr an.  :no-sad:

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.868
    • Geschlecht:
    Re: Bug in /includes/modules/product_listing.php
    Antwort #9 am: 30. Juli 2013, 17:17:26
    tja, das ist wie gesagt auch mein Problem. "Kleine Probleme" die bei einer neuen Revision enthalten sind, aber nach Auffindung des Fehlers umgehend behoben werden können, können dann von den Nutzern aber nicht übernommen werden  :-I

    Und dann kann man von der neuen Revision nicht profitieren, da sie evtl. garnicht produktiv eingesetzt werden kann, weil 1-2 kleine Fehler nicht selber von Hand gefixt werden können.

    Und somit bleibt einem dann nur über auf der älteren Version zu bleiben - mehr als Kontraproduktiv, da man dann selber auch nicht zum auffinden von Fehlern beitragen kann. Dadurch gerät die Entwicklung meines Erachtens mehr und mehr ins Stocken...

    Grüße
    Dominik

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Bug in /includes/modules/product_listing.php
    Antwort #10 am: 30. Juli 2013, 22:13:48
    [...]
    Danke für den Hinweis. :thx:
    Ich habe das mal in r4991 übernommen.
    [...]
    Ganz im Ernst, ich frage mich, was wir mit solchen Aussagen anfangen sollen ?
    Wenn die Changesets nicht mehr einsehbar sind, kann man diese Kommunikation dann auch noch weglassen, darauf kommts dann nicht mehr an.  :no-sad:

    Ich fühle mich ein wenig vereimert... Wenn du schon den entscheidenden Teil im Zitat weg lässt, dann nimm ihn wenigstens vorher mal wahr!

    Wer lesen kann und so... :motz:

    Also hier nochmal der komplette Inhalt, mit dem es auch dem nicht so versierten klar sein sollte, was sich hinter r4991 verbirgt.

    Code: PHP  [Auswählen]
    !isset($category['listing_template']) || $category['listing_template'] == ''

    läßt sich zusammenfassen zu:
    Code: PHP  [Auswählen]
    empty($category['listing_template'])

    da empty auf Inhalt und auf gesetzt prüft.

    http://php.net/manual/de/function.empty.php

    Danke für den Hinweis. :thx:

    Ich habe das mal in r4991 übernommen.
    [...]

    Und damit ist das Thema dann auch erledigt.

    :close:

    Grüße

    Torsten
    2 Antworten
    1961 Aufrufe
    17. November 2010, 17:23:30 von Boris
    4 Antworten
    2681 Aufrufe
    17. Februar 2014, 18:22:18 von ShopNix
    10 Antworten
    2421 Aufrufe
    22. November 2017, 13:30:58 von web28