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: MODUL: CSS Produkt- & Attributlagerampel v1.0 CE (ab Shopversion 2.x.x.x)

    bumerang24

    • Fördermitglied
    • Beiträge: 163
    • Geschlecht:
    Hallo noRiddle,

    ich habe ja konkret awids angesprochen, und auch geschrieben, seine letzte Änderung.
    Ich bin davon ausgegangen, die Frage sei so verständlich.
    Die Frage war ja auch nicht in einem Bootstrap Beitrag gestellt. Aber trotzdem Danke für deinen Hilfeversuch, das Modul ist bestimmt auch sehr ähnlich bei den beiden Templates.

    Schönen Abend / WE noch

    Guido

    bumerang24

    • Fördermitglied
    • Beiträge: 163
    • Geschlecht:
    Hallo die Herren,

    jetzt muss ich leider noch mal lästig werden.

    Das System wirft mir folgende notice  Log raus:
    Code: PHP  [Auswählen]
    [2023-06-19 00:18:37]   [notice]        [modified]      [pid:4130806]   NOTICE found for URL: /Kunststoff-Bumerangs/Fortgeschrittene/Renner-Glas-verstaerkt-Blau::36.html       {}      {}
    [2023-06-19 00:18:37]   [notice]        [modified]      [pid:4130806]   Undefined variable: html in File: /www/htdocs/w/XT-SHOP/templates/tpl_modified_responsive/smarty/function.traffic_light.php on Line: 37 {}      {}

    Ich weiss jetzt auch nicht genau, wie kritisch das ist, ob warning vor oder nach notice kommt, soweit bin ich noch nicht in den Shop System drinn.

    Dazu die originale Zeile 35 -44:
    Code: PHP  [Auswählen]
     if ($stock < MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL) {
              $stock_info = '<span class="traff-light"><strong>'.MODULE_TRAFFIC_LIGHTS_STOCK.':</strong> <span class="tl zero-tl"></span><span class="tl zero-tl"></span><span class="tl red-tl"></span><span class="nr-tooltip red-tl" aria-label="'.MODULE_TRAFFIC_LIGHTS_STOCK.'">'.MODULE_TRAFFIC_LIGHTS_QTY_RED.' | '.$stock.'</span></span>';
              $html .= $stock_info;
          } elseif ($stock >= MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL && $stock < MODULE_TRAFFIC_LIGHTS_STOCK_GREEN) {
              $stock_info = '<span class="traff-light"><strong>'.MODULE_TRAFFIC_LIGHTS_STOCK.':</strong> <span class="tl zero-tl"></span><span class="tl yell-tl"></span><span class="tl zero-tl"></span><span class="nr-tooltip yell-tl yell-txt" aria-label="'.MODULE_TRAFFIC_LIGHTS_STOCK.'">'.MODULE_TRAFFIC_LIGHTS_QTY_YELL.' | '.$stock.'</span></span>';
              $html .= $stock_info;
          } elseif ($stock >= MODULE_TRAFFIC_LIGHTS_STOCK_GREEN) {
              $stock_info = '<span class="traff-light"><strong>'.MODULE_TRAFFIC_LIGHTS_STOCK.':</strong> <span class="tl green-tl"></span><span class="tl zero-tl"></span><span class="tl zero-tl"></span><span class="nr-tooltip green-tl" aria-label="'.MODULE_TRAFFIC_LIGHTS_STOCK.'">'.MODULE_TRAFFIC_LIGHTS_QTY_GREEN.' | '.$stock.'</span></span>';
              $html .= $stock_info;
          }

    Der Error bezieht sich ja auf Undefined variable: html

    Jetzt die Frage, steht die Variable da falsch, kann die raus oder?

    Danke euch für eine weitere Info, die aber keine Eile hat.

    Grüße aus dem sonnigen Süden

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.736
    • Geschlecht:
    Notices sind erstmal nicht wichtig und sind ein niedriger Level des Loggings.
    Sie könnten in zukünftigen PHP-Versionen mal zu Warnings werden.

    Mit dem Punkt (= .) wird in PHP konkateniert*, das heißt Strings miteinander verbunden.
    In der monierten Zeile steht
    Code: PHP  [Auswählen]
    $html .= $stock_info;

    und das bedeutet, daß die Variable $html  vorher bereits existiert haben muß um etwas mit ihr zu verbinden.
    Diese Vor-Existenz fehlt.
    Definiere einfach über der Zeile 35 das:
    Code: PHP  [Auswählen]
    $html = '';

    Damit ist die Variable als leerer String definiert und es kann dann konkateniert werden.

    Gruß,
    noRiddle

    * konkatenieren
    = verketten, von lat. con = zusammen/mit und catena = Kette

    bumerang24

    • Fördermitglied
    • Beiträge: 163
    • Geschlecht:
    Hallo noRiddle,

    dein Code funktioniert theoretisch, blendet dann aber zugleich in der Detailbeschreibung die Ampel und die Bestandsanzeige aus, ist auch wieder etwas kontraproduktiv.

    Die Erklärung habe ich so verstanden, da war wirklich nett für nicht Programmierer gemacht.

    Evtl. gibt es ja noch einen anderen Lösungsansatz, der beides kann.

    Übrigens, ich habe aus deiner Beschreibung entnommen:  .= wird zu PHP, den Punkt hast du nicht gesetzt, aber ich habe es auch mit Punkt getestet, gleiches Ergebnis.

    Aber dennoch vielen Dank schon mal für den Versuch, und auch fast direkt nach meiner Frage bereits beantwortet. :cheers:

    Grüße

    Guido

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.736
    • Geschlecht:
    [...]
    Übrigens, ich habe aus deiner Beschreibung entnommen:  .= wird zu PHP, den Punkt hast du nicht gesetzt, aber ich habe es auch mit Punkt getestet, gleiches Ergebnis.
    [...]

    Ich kann dir nicht folgen, wo soll ich das gesagt haben ?

    Poste mal den kompletten Inhalt der betroffenen Datei.

    Gruß,
    noRiddle

    awids

    • Experte
    • Beiträge: 3.785
    • Geschlecht:
    Deine Aussagen sprechen eigentlich dafür, dass du noRiddle nicht wirklich zu 100% verstanden hast. Eine erste Definition von $html benötigt keinen Punkt!

    Die Definition von $html muss schon ziemlich am Anfang erfolgen. Wenn man diese vor/nach Zeile 35 einfügt, gilt sie in der Clause nur für Attribute. Also muss sie mindestens vor:

    Code: PHP  [Auswählen]
    if (constant('MODULE_TRAFFIC_LIGHTS_ATTRIBUTES') == 'true' && $modul == 'attributes') {

    eingefügt werden oder 2x definiert werden. Auf GIthub habe ich die Zeile bereits eingefügt. Vor einem neuen Release warte ich erst einmal ab, ob noch andere Dinge auffallen.

    bumerang24

    • Fördermitglied
    • Beiträge: 163
    • Geschlecht:
    Hallo Awids,

    vielen Dank, damit kann ich erst mal leben.
    Teste weiter, und ändere was noch kommt oder kommen soll, und ich lösche derzeit das ein oder andere Log, das passt schon.
    Ein Shop lebt in dem Bereich ja sowieso nur von den Weiterentwicklungen und Anpassungen, das mache ich schon lange genug mit, und finde es toll immer mal wieder was Neues zu lernen und zu probieren.
    Übrigens, ich bin weiterhin positiv beeindruckt, was der Shop alles hat und kann, es ist erst ein Teil ausgereizt. Und es läuft stabil und sicher im System. Das Grundsystem ist schon riesig, und trotzdem noch so viele interessante Erweiterungen, die auch super supportet werden.

    Danke

    Grüße

    Guido

    lithoverlag

    • Fördermitglied
    • Beiträge: 784
    • Geschlecht:
    Hallo Awids, Noriddle

    auf dem Weg zur Perfektion ist mir bei Artikelvarianten folgender Fehler noch aufgefallen. In der Lagerampel steht allen Anzeigen auf light, also ohne genaue Mengenangaben des Lagerbestandes.
    bei Artikel variationen wenn man mit der Maus auf den Artikel geht kommt von links eine Mitteilung mit dem Vermerk:  "wenige auf Lager | 3" also mit der exakten Angabe vom Artikelbestand was der Auswahl Lagerampel "text: Text-Lagerampel mit Lagerbeständen" obwohl ich gerne light haben möchte also nur die Lagerampel.
    BSP:   https://www.lithoshop.eu/Poolbillard/Handschuhe/Billardhandschuh-Pechauer-links-schwarz--19090.html

    Kann das jemand bestätigen und auf seiner/Ihrer SEite nachvollziehen? Ist also ein Modulfehler oder habe ich bei der Installation was vergessen?
    Danke Gruß
    Litho

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.736
    • Geschlecht:
    Das Modul hat awids  gebaut, er hat lediglich eine Idee von mir miteingebaut die ich in einem anderen Thread dargelegt habe.
    Ich kann nirgends eine Abfrage zu MODULE_TRAFFIC_LIGHTS_INFO_LIGHT finden muß ich sagen.
    Evtl. wurde es zwar ins System-Modul eingebaut, dann aber für die Smarty-Function vergessen einzubauen.

    Was mich allerdings wundert ist, daß, obwohl der verlinkte Artikel Attribute (Optionen) hat, die Ampel sowohl beim Artikel oben als auch bei den Attributen angezeigt wird. Wenn ich mich nicht völlig irre sollte die Ampel bei Artikeln mit Attributen lediglich bei den Attributen angezeigt werden. Anders macht es ja auch keinen Sinn.

    Dabei fällt mir noch eine Ungereimtheit auf.
    Im Listing werden Attribute, wenn vorhanden, ja nicht angezeigt, wenn man jedoch die Anzeige der Ampel im Listing aktiviert, kann ja lediglich der Haupt-Artikel-Lagerbestand berücksichtigt werden. Es macht also eigtl. wenig Sinn im Listing die Ampel anzeigen zu lassen wenn der Artikel Attribute hat. Das wird jedoch nirgends abgefragt.

    Ich vermute awids  hat noch eine im Vergleich zur hier eingestellten Community-Variante verbesserte Variante.
    Frag ihn doch mal danach.

    Gruß,
    noRiddle

    lithoverlag

    • Fördermitglied
    • Beiträge: 784
    • Geschlecht:
    Hallo,

    im Listing des Haupartikels werden alle Variationen addiert, Erst wenn man dann den Artikel aufruft kann es auch Variationen in rot oder gelb geben, wenn auch der Hauptartikel auf grün steht.
    Nur da dann keine Ampel anzuzeigen, sieht ja auch doof aus wenn für alle Einzelartikel im Listing was angezeigt wird. Also so wie das ist, ist das schon ok.

    Hallo Awids,
    hast Du noch eine besser Version? Soll dich auf Empfehlung von Noriddle mal fragen! Danke!
    Gruß
    Litho

    awids

    • Experte
    • Beiträge: 3.785
    • Geschlecht:
    Im Listing werden die Attribute addiert, das ist richtig und so soll es sein.

    Die sogenannte "bessere Version" hab ich damals bei einem vollständigen Datenverlust verloren. Die unterschied sich bis dato aber nur darin, dass die Ampel auch auf dem Merkzettel (/wishlist.php) und im Warenkorb (/shopping_cart.php) dargestellt wurde. Hatte noch weitere Ideen, die es aber nie ins Modul geschafft haben.

    Ich schaue mir am Wochenende mal an, warum die Light-Einstellung nicht das tut, was sie laut Beschreibung tun soll. Bin gerade so tief in der Shopware6-Materie verwurzelt, dass ich für den Switch auf modified Zeit und Ruhe brauche. Wahrscheinlich habe ich bei einem Update irgendeine Abfrage überschrieben.

    lithoverlag

    • Fördermitglied
    • Beiträge: 784
    • Geschlecht:
    Danke!

    awids

    • Experte
    • Beiträge: 3.785
    • Geschlecht:
    @lithoverlag
    Anbei eine neue Version, in welcher 2 neue Schalter dazu gekommen sind. Der erste Schalter schaltet das Flow-In mit der Bestandsinfo komplett ab und damit auch das dadurch unnötig gewordene JavaScript, der zweite Schalter nur den dort angezeigten Lagerbestand.

    [EDIT Tomcraft 27.08.2023: Modul in Beitrag 1 aktualisiert.]

    lithoverlag

    • Fördermitglied
    • Beiträge: 784
    • Geschlecht:
    vielen Dank! bei mir sieht es im Frontend einwandfrei aus.
    im Backend (Admin warning log) spulen sich ein paar warnings auf.

    Code: PHP  [Auswählen]
    [2023-08-28 11:24:18] [warning] [modified] [pid:3621900] WARNING found for URL: /admin/module_export.php?set=system {} {}
    [2023-08-28 11:24:18] [warning] [modified] [pid:3621900] Undefined property: traffic_lights::$sort_order in File: /.../.../.../.../admin/module_export.php on Line: 380 {} {}
    [2023-08-28 11:24:18] [warning] [modified] [pid:3621900] WARNING found for URL: /.../module_export.php?set=system {} {}
    [2023-08-28 11:24:18] [warning] [modified] [pid:3621900] Undefined property: traffic_lights::$sort_order in File: /.../.../.../.../admin/module_export.php on Line: 381 {} {}

    Gruß Litho

    P.S: NACHTRAG: Nach dem Update von MODUL: Produkterinnerung für modified eCommerce Shopsoftware schreibt sich im Moment nicht weiter in die Logfiles,

    awids

    • Experte
    • Beiträge: 3.785
    • Geschlecht:
    Danke für die Rückmeldung. Schaue ich mir noch einmal an, sofern notwendig. (s. Absatz 2) Denke mal, es liegt am Fehlen einer Sortierung ($sort_order) in der Moduldatei, wobei diese an dieser Stelle unnötig ist. Denn ansonsten taucht der Begriff nur noch in den Datenbank-Installationseinträgen auf, wo der Wert aber durch eine Sortierungsnummer bedient wird.

    Hängt dein Nachtrag mit diesem Modul zusammen? Sprich: Seit das andere Modul geupdatet wurde, läuft auch die Lagerampel Logfrei?
    2 Antworten
    3558 Aufrufe
    06. August 2013, 08:31:32 von Hetfield
    2 Antworten
    2597 Aufrufe
    23. Oktober 2014, 09:40:07 von MHammer