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)

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Um das Projekt aktuell zu halten, habe ich ein Repository bei Github erstellt:

    https://github.com/demo-modules/css_product_attribut_lagerampel/releases

    Folgende Änderungen sind in der downloadbaren Version 1.1.1 soeben mit eingeflossen:

    Dann leg im Ordner /templates/tpl_modified_responsive/javascript/extra/ eine PHP-Datei mit folgendem Inhalt ab:

    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: traffic_light.js.php (path: /templates/tpl_modified_responsive/javascript/extra/)
       
       CSS Produkt- & Attributlagerampel v1.1 (2023-06-06)
     
       Authors:
       -------------------
         awids (www.awids.de)
         web28 (www.rpa-com.de)
         noRiddle (www.revilonetz.de)
         
       -----------------------------------------------------------------------------------------*/


    if (strstr($PHP_SELF, FILENAME_PRODUCT_INFO )) {
    ?>
       <script>
        /*<![CDATA[*/
         with(document.documentElement){className += \'js\'}
         if ((\'ontouchstart\' in document.documentElement)) {document.documentElement.className += \' touch\';} else {document.documentElement.className += \' no-touch\';}
        /*]]>*/
       </script>

       <script>
       $(function() {
         var $osl = $(\'.touch .options_selection label\');
         $osl.click(function() {
           var $this = $(this);
           $(\'.nr-tooltip\', this).animate({\'right\':\'30%\', \'opacity\':1}, 200, function() {
           $this.parent().siblings().find(\'.nr-tooltip\').css({\'right\':\'90%\',\'opacity\':\'0\'});
           });
         });
       });
       </script>
    <?php
    }
    ?>

    Vollständigkeitshalber hänge ich das aktuelle Release hier noch einmal mit an.

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

    bumerang24

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

    ich stelle jetzt mal die unwissende Frage direkt die Frage an dich, da du das Modul ja als letztes angepasst hast.

    Folgendes Szenario:
    Lagerbestand mit Attribut ist eins, eingestellt ist auch in der Attribut Verwaltung ein Stück, Ampel zeigt rot.

    Die Konfig der Ampel noch als Bild, sollte meiner Meinung nach aber so passen.
    Sitzt das Problem wie immer vor dem PC, oder hat die Ampel doch evtl. eine Funktion, die nicht stimmt?
    Version der Ampel, die aus deinem Post, Shop 2.0.7.2 Rev, die letzte mit PHP 8.1

    Danke für eine Antwort.

    Grüße

    Guido

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Um das Projekt aktuell zu halten, habe ich ein Repository bei Github erstellt:

    https://github.com/demo-modules/css_product_attribut_lagerampel/releases

    Folgende Änderungen sind in der downloadbaren Version 1.1.1 soeben mit eingeflossen:

    Dann leg im Ordner /templates/tpl_modified_responsive/javascript/extra/ eine PHP-Datei mit folgendem Inhalt ab:

    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: traffic_light.js.php (path: /templates/tpl_modified_responsive/javascript/extra/)
       
       CSS Produkt- & Attributlagerampel v1.1 (2023-06-06)
     
       Authors:
       -------------------
         awids (www.awids.de)
         web28 (www.rpa-com.de)
         noRiddle (www.revilonetz.de)
         
       -----------------------------------------------------------------------------------------*/


    if (strstr($PHP_SELF, FILENAME_PRODUCT_INFO )) {
    ?>
       <script>
        /*<![CDATA[*/
         with(document.documentElement){className += \'js\'}
         if ((\'ontouchstart\' in document.documentElement)) {document.documentElement.className += \' touch\';} else {document.documentElement.className += \' no-touch\';}
        /*]]>*/
       </script>

       <script>
       $(function() {
         var $osl = $(\'.touch .options_selection label\');
         $osl.click(function() {
           var $this = $(this);
           $(\'.nr-tooltip\', this).animate({\'right\':\'30%\', \'opacity\':1}, 200, function() {
           $this.parent().siblings().find(\'.nr-tooltip\').css({\'right\':\'90%\',\'opacity\':\'0\'});
           });
         });
       });
       </script>
    <?php
    }
    ?>

    Vollständigkeitshalber hänge ich das aktuelle Release hier noch einmal mit an.

    Wo kommen denn diese Backslashes vor den Singel Quotes im Javascript her ?
    Funktioniert das etwa so ?

    Gruß,
    noRiddle

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Funktioniert so, aber kann ich auch gerne entfernen. Das ist der Code, den ich damals 1:1 so von dir übernommen hatte.

    @bumerang24
    Hatte noch keine Zeit, mir das weiter anzuschauen. Hole ich aber zeitnah nach und berichte dann.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Ich soll Backslashes vor den Single-Quotes gehabt haben  :-O
    Echt jetzt ?, wo ?

    Spaß beiseite:
    Wüsste nicht wo die herkommen sollten, bewußt setzen würde ich sie nicht, da sie hier unsinnig sind.

    Gruß,
    noRiddle

    bumerang24

    • Fördermitglied
    • Beiträge: 189
    • Geschlecht:

    @bumerang24
    Hatte noch keine Zeit, mir das weiter anzuschauen. Hole ich aber zeitnah nach und berichte dann.

    Hallo Awids,
    alles klar, danke ist nicht eilig, will es halt nur wissen.
    Ich kann es ja problemlos ausschalten, bis eine Antwort oder Lösung verfügbar ist.

    Grüße

    Guido

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Ich denke der Fehler liegt in der Smarty-Datei function.traffic_light.php.
    Code: PHP  [Auswählen]
          if ($stock <= MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL) {
              ...
          }
          elseif ($stock >= MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL && $stock < MODULE_TRAFFIC_LIGHTS_STOCK_GREEN) {
              ...

    Das im elseif > und nicht >=  lauten.

    Gruß,
    noRiddle

    bumerang24

    • Fördermitglied
    • Beiträge: 189
    • Geschlecht:
    Hallo No Ridle,

    meinst du den Bereich der Zeilen 80- 94?

    Code: PHP  [Auswählen]
       if ($stock < MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL) {
              $stock_txt = MODULE_TRAFFIC_LIGHTS_QTY_RED. ($show_qty ? ' '. $stock : '');
              $stock_info = str_replace(array('tl green-tl','tl yell-tl','stock-txt','#stock_title#'),array('tl zero-tl','tl zero-tl','red-txt',$stock_txt),$stock_info);
              $html .= str_replace(array('#stock_title#','#stock_info#'),array($stock_txt,$stock_info),$stock_title);
          }
          elseif ($stock >= MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL && $stock < MODULE_TRAFFIC_LIGHTS_STOCK_GREEN) {
              $stock_txt = MODULE_TRAFFIC_LIGHTS_QTY_YELL . ($show_qty ? ' '. $stock : '');
              $stock_info = str_replace(array('tl green-tl','stock-txt','tl red-tl','#stock_title#'),array('tl zero-tl','yell-txt','tl zero-tl',$stock_txt),$stock_info);
              $html .= str_replace(array('#stock_title#','#stock_info#'),array($stock_txt,$stock_info),$stock_title);
          }
          elseif ($stock >= MODULE_TRAFFIC_LIGHTS_STOCK_GREEN) {
              $stock_txt = MODULE_TRAFFIC_LIGHTS_QTY_GREEN. ($show_qty ? ' '. $stock : '');
              $stock_info = str_replace(array('stock-txt','tl yell-tl','tl red-tl','#stock_title#'),array('green-txt','tl zero-tl','tl zero-tl',$stock_txt),$stock_info);
              $html .= str_replace(array('#stock_title#','#stock_info#'),array($stock_txt,$stock_info),$stock_title);
          }

    Der sieht in der Original Datei so aus.

    Die Zeilen wiederholen sich ja dreimal:
    erste Zeile immer so: >= und die Zeile darunter dann nur das =

    Ich habe von PHP Codes eigentlich erst mal null ahnung, versuche es zu verstehen...
    Aber für mich sieht es in der Wiederholung gleich aus...
    Grüße

    Guido

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Das ist nicht der Code der letzten Version die awids  gepostet hat.
    Egal.
    Wenn du in deinem Code
    aus diesem
    Code: PHP  [Auswählen]
    if ($stock < MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL) {

    das machst
    Code: PHP  [Auswählen]
    if ($stock <= MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL) {

    und aus
    Code: PHP  [Auswählen]
    elseif ($stock >= MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL && $stock < MODULE_TRAFFIC_LIGHTS_STOCK_GREEN) {

    das
    Code: PHP  [Auswählen]
    elseif ($stock > MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL && $stock < MODULE_TRAFFIC_LIGHTS_STOCK_GREEN) {

    müsste das Modul reagieren wie du erwartest.

    Gruß,
    noRiddle

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Ja, noRiddle (richtige Schreibweisen bei Namen zu beachten, ist auch eine Form des Respekts!) hat recht.

    Bei größeren Abständen in den jeweiligen Spannen fällt der Fehler nicht sofort auf, aber bei so kleinen Spannen schon.

    Der Code muss so aussehen:

    Code: PHP  [Auswählen]
          if ($stock <= MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL) {
              ...
          } elseif ($stock > MODULE_TRAFFIC_LIGHTS_STOCK_RED_YELL && $stock < MODULE_TRAFFIC_LIGHTS_STOCK_GREEN) {
              ...
          } elseif ($stock >= MODULE_TRAFFIC_LIGHTS_STOCK_GREEN) {
              ...
          }

    Bei Github habe ich es gerade angepasst und hänge hier das neue Paket mit an.

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

    bumerang24

    • Fördermitglied
    • Beiträge: 189
    • Geschlecht:
    Vielen Dank euch beiden, die Änderung ist auf der Einbau Liste und wird heute Abend verarbeitet.

    Grüße

    Guido :thx:

    bumerang24

    • Fördermitglied
    • Beiträge: 189
    • Geschlecht:
    Also die Herren,

    jetzt habe ich euch zu früh gelobt, der Shop zeigt immer noch 1 Artikel und die rote Ampel, aber im Bestand und bei den Attributen ist ein Stück eingestellt, die Ampel ist eingestellt auf eins = Gelb.

    Also habt ihr das Problem irgendwie wohl nicht gelöst, nur geändert, aber leider ohne den gewünschten Erfolg.
    Ihr könnt es euch gerne live ansehen, falls ihr wollt.

    Vielen Dank noch mal für einen Tipp, den auch ein Dummy versteht.
    Ich habe die neue Version1.12 heruntergeladen, vorher hatte ich ebenfalls bereits die aktuelle Version heruntergeladen, und die Aussage von NoRidle kam das ist nicht die aktuelle Datei, aber was nun?  Ist der Downloadlink jeweils falsch? Kann ich mir nicht vorstellen. Mein Firefox saugt das runter, was hinter dem Link steht, sage ich mal so.

    Ist nicht böse gemeint,

    Grüße

    Guido

    Noch ein Nachtrag:

    in der _ Instalation Datei steht noch folgendes:

       # TEMPLATE-DATEIEN

       a) Produktdetailseite / Productinfo

          Öffnen Sie die folgenden Dateien:

          /templates/tpl_modified/module/product_info/product_info_tabs_v1.html
          /templates/tpl_modified/module/product_info/product_info_v1.html
          /templates/tpl_modified/module/product_info/product_info_x_accordion_v1.html

    In der Shoproot ist aber nur mehr das Template tpl_modified_responsive

    Ich habe die Dateien im Template tpl_modified_responsive, da ich dies verwende. Ich denke, das ist so richtig, und nur die Anleitung nie aktualisiert worden.

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Hatte einen Fehler in der Logik, weil ich im Hinterstübchen davon ausging, dass sich der Minimum-Wert auf die rote Ampel bezieht. (Korrekt wäre die gelbe Ampel gewesen.) Aber die Logik habe ich jetzt bereinigt und die Ampel auch in meinem Testshop getestet.

    Changelog v1.2.0
    Zitat
    • Templatenamen in Anleitung angepasst
    • JavaScript: Backslashes vor Single Quotes entfernt
    • Logik in Ampelsteuerung korrigiert
    • Version auf 1.2.0 angehoben

    bumerang24

    • Fördermitglied
    • Beiträge: 189
    • Geschlecht:
    :close:

    Jetzt bin ich Happy,
    Danke awids

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Ich ging von Karls Implementation in seinem Bootstrap-Template aus. Da steht
    "Geben Sie hier den Minimum-Wert für die gelbe Ampel ein. Dieser Wert und alle Werte darunter werden mit einer roten Ampel versehen. Standard: 0"
    und dann wäre es richtig wie wir es vorher geschrieben haben.

    Gruß,
    noRiddle
    2 Antworten
    3629 Aufrufe
    06. August 2013, 08:31:32 von Hetfield
    4 Antworten
    1254 Aufrufe
    08. Oktober 2019, 11:18:45 von Timm