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: Bootstrap4 für Shop 2.x - freies responsive Template

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    [...]
    @Hanspeter:
    Wieder einmal danke für deine Unterstützung.
    Die Installation des Templates habe ich nun schon so oft gemacht und noch nie hatte ich bei der Klassenerweiterung ein Problem.
    Ich werde das beobachten.
    [...]

    Also ich habe zwei Testshops und habe in beiden das Problem welches mhase gepostet hat auch festgestellt, ausserdem kann ich den Fehler, indem ich das Systemmodul "Bootstrap 4 Template-Manager" deinstalliere dann in Module -> Klassenerweiterungen Module zum Reiter product gehe und anschliessend das Systemmodul "Bootstrap 4 Template-Manager" wieder installiere, reproduzieren.

    Meiner Meinung nach müsste man in der Datei admin/includes/modules/system/bs4_tpl_manager.php folgenden Code

    Code: PHP  [Auswählen]
            // Eintrag Template Manager in Tabelle configuration
            // Klassenerweiterungsmodul "product" - "checkifnewproduct" wird mitinstalliert - wird benötigt für die Prüfung, ob ein Produkt neu ist
            if(!xtc_db_query("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_BS4_TPL_MANAGER_STATUS', 'true',  '6', '1', 'xtc_cfg_select_option(array(\'true\', \'false\'), ', now())")
            || !xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_PRODUCT_BS4_CHECKIFNEWPRODUCT_STATUS', 'true','6', '1','xtc_cfg_select_option(array(\'true\', \'false\'), ', now())")
            || !xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_PRODUCT_BS4_CHECKIFNEWPRODUCT_SORT_ORDER', '10','6', '2', now())")
            )
            {
                $install = false;
            }

    mit diesem Code ersetzen

    Code: PHP  [Auswählen]
        // Eintrag Template Manager in Tabelle configuration
        // Klassenerweiterungsmodul "product" - "checkifnewproduct" wird mitinstalliert - wird benötigt für die Prüfung, ob ein Produkt neu ist
        if(!xtc_db_query("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_BS4_TPL_MANAGER_STATUS', 'true',  '6', '1', 'xtc_cfg_select_option(array(\'true\', \'false\'), ', now())")
        || !xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_PRODUCT_BS4_CHECKIFNEWPRODUCT_STATUS', 'true','6', '1','xtc_cfg_select_option(array(\'true\', \'false\'), ', now())")
        || !xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_PRODUCT_BS4_CHECKIFNEWPRODUCT_SORT_ORDER', '10','6', '2', now())")
        )
        {
            $install = false;
        } else {
          if (defined('MODULE_PRODUCT_INSTALLED')) {
            $installed = [];
            if (MODULE_PRODUCT_INSTALLED != '') $installed = explode(';', MODULE_PRODUCT_INSTALLED);
            if (!in_array('bs4_checkifnewproduct.php', $installed)) {
              $installed[] = 'bs4_checkifnewproduct.php';
              xtc_db_query("UPDATE ".TABLE_CONFIGURATION." SET configuration_value = '" . implode(';', $installed) . "', last_modified = now() where configuration_key = 'MODULE_PRODUCT_INSTALLED'");
            }
          } else {
            xtc_db_query("INSERT INTO ".TABLE_CONFIGURATION." (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) VALUES ('MODULE_PRODUCT_INSTALLED', 'bs4_checkifnewproduct.php', '6', '0', now())");
          }
        }

    und folgenden Code

    Code: PHP  [Auswählen]
                case $x > 2:
                    xtc_db_query("DELETE FROM " . TABLE_CONFIGURATION . " WHERE configuration_key in ('" . implode("', '", $this->keys()) . "')");
                    // Klassenerweiterungsmodul wird zeitgleich deinstalliert
                    xtc_db_query("DELETE FROM " . TABLE_CONFIGURATION . " WHERE configuration_key LIKE 'MODULE_PRODUCT_BS4_CHECKIFNEWPRODUCT_%'");
                    $messageStack->add_session(MODULE_BS4_TPL_MANAGER_INSTALL_TABLE_ENTRY_REMOVED.TABLE_CONFIGURATION, 'success');

    mit diesem Code ersetzen,

    Code: PHP  [Auswählen]
          case $x > 2:
            xtc_db_query("DELETE FROM " . TABLE_CONFIGURATION . " WHERE configuration_key in ('" . implode("', '", $this->keys()) . "')");
            // Klassenerweiterungsmodul (bs4_checkifnewproduct.php) wird zeitgleich deinstalliert
            xtc_db_query("DELETE FROM " . TABLE_CONFIGURATION . " WHERE configuration_key LIKE 'MODULE_PRODUCT_BS4_CHECKIFNEWPRODUCT_%'");
            if (defined('MODULE_PRODUCT_INSTALLED')) {
              $installed = [];
              if (MODULE_PRODUCT_INSTALLED != '') $installed = explode(';', MODULE_PRODUCT_INSTALLED);    
              if (($key = array_search('bs4_checkifnewproduct.php', $installed)) !== false) {
                unset($installed[$key]);
                xtc_db_query("UPDATE ".TABLE_CONFIGURATION." SET configuration_value = '" . implode(';', $installed) . "', last_modified = now() where configuration_key = 'MODULE_PRODUCT_INSTALLED'");
              }
            }                                                
            $messageStack->add_session(MODULE_BS4_TPL_MANAGER_INSTALL_TABLE_ENTRY_REMOVED.TABLE_CONFIGURATION, 'success');

    damit der configuration_key MODULE_PRODUCT_INSTALLED in der Tabell configuration  bei der Installation des Systemmoduls "Bootstrap 4 Template-Managerr" den Wert "bs4_checkifnewproduct.php" erhält bzw. bei der Deinstallation des Systemmoduls "Bootstrap 4 Template-Manager" der Wert "bs4_checkifnewproduct.php" entfernt wird.

    Gruss
    Hanspeter
    Trade Republic - Provisionsfrei Aktien handeln

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Hanspeter,
    du hast wieder einmal recht, werde ich ändern.
    Frage mich nur, warum das bei mir problemlos funktionierte.

    Gruß Karl

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Hallo Karl, keine Ursache.

    Nachtrag zu meiner Antwort #645:
    Ich habe vergessen die Erklärung dafür zu liefern, warum das reine Anklicken des Reiters "product" in Module -> Klassenerweiterungen Module reicht um das Problem des fehlenden Eintrags von "bs4_checkifnewproduct.php" in der Tabelle configuration in der Zeile mit dem configuration_key MODULE_PRODUCT_INSTALLED zu beheben. Der Grund dafür liegt in der Datei admin/modules.php ab ca. Zeile 468 an folgender Codesequenz,

    Code: PHP  [Auswählen]
                      ksort($installed_modules);
                      if ($module_key) {
                        $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = '" . $module_key . "'");
                        if (xtc_db_num_rows($check_query)) {
                          $check = xtc_db_fetch_array($check_query);
                          if ($check['configuration_value'] != implode(';', $installed_modules)) {
                            xtc_db_query("update " . TABLE_CONFIGURATION . " set configuration_value = '" . implode(';', $installed_modules) . "', last_modified = now() where configuration_key = '" . $module_key . "'");
                          }
                        } else {
                          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ( '" . $module_key . "', '" . implode(';', $installed_modules) . "','6', '0', now())");
                        }
                      }

    welche bei jedem Aufruf der Datei admin/modules.php, also auch beim Anklicken des Reiters "product" in Module -> Klassenerweiterungen Module, durchgeführt wird.

    Gruss
    Hanspeter

    Jossi

    • Fördermitglied
    • Beiträge: 140
    Hallo, ich hab da nochmal ein kleines Rätsel!

    Betr.: Unterkategorie-Images werden unterschiedlich groß dargestellt.

    Mir ist etwas merkwürdiges aufgefallen, und zwar werden die Unterkategorie-Images in der Regel in Thumbnail-Größe (bei mir 50x50 px) dargestellt.

    In wenigen Fällen sind diese aber auf eine Größe von 240x240 px gezerrt (was sehr unschön aussieht).

    Einzige Unterschiede, die mir aufgefallen sind:
    1. Die zu große Darstellung besteht bei Unterkategorien einer Unterkategorie (3. Ebene), während die korrekten (kleinen) Darstellungen jeweils auf Unterkategorien (2. Ebene) funktionieren. Glaube kaum, dass es damit zu tun hat, wollte es aber zumindest angemerkt haben.

    2. Bei den zu groß gezerrten Unterkategorie-Bildern gibt es auch etwas Text (bei den anderen nicht). Kann es etwa damit zu tun haben?
    Ich habe schon versucht, den Text zu löschen, die Darstellung der Kategorie-Bilder hat sich dadurch aber nicht geändert.

    Wenn ich versuchsweise zum modified_responsive Template wechsele, wird alles korrekt (klein) dargestellt, daher glaube ich, dass es mit dem Bootstrap4 Template zu tun haben muss und man mir hier weiter helfen kann.

    Beispiel-Link korrekte Darstellung (klein):
    https://www.onlineshopasia.com/index.php?cPath=224_94

    Beispiel-Link unschöne Darstellung (groß gezerrt):
    https://www.onlineshopasia.com/index.php?cPath=230_157_159

    Gruß,
    Jossi

    Andre Kern

    • Fördermitglied
    • Beiträge: 426
    Guten Morgen,

    wenn Du in der Datei /templates/dein_Template/module/categorie_listing/categorie_listing.html folgende Zeile
    Code: PHP  [Auswählen]
    {if isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != ''}<img class="{if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')}col-4 {/if}img-fluid float-left p-2 mb-2 mr-4" src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME|onlytext}" />{/if}
    mit
    Code: PHP  [Auswählen]
              {if isset($CATEGORIES_IMAGE) && $CATEGORIES_IMAGE != ''}<img class="img-fluid float-left p-2 mb-2 mr-4" src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME|onlytext}" />{/if}
    ersetzt, sollte es gehen.

    Dann musst Du nur schauen, ob das dir auf allen Bildschirmgrößen gefällt. Imageprocessing hast Du schon laufen lassen?

    LG
    Andre

    Andre Kern

    • Fördermitglied
    • Beiträge: 426
    *Nachtrag* Vergiss das mit dem Imageprocessing^^ Wirkt sich ja nur auf die Produktbilder aus..

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Jossi,
    sorry, mit so kleinen Kategoriebildern hatte ich nicht gerechnet.

    Sobald eine Kategoriebeschreibung existiert wird dem Bild ein Drittel des verfügbaren Platzes (CSS-Klasse "col-4" von gesamt "col-12") überlassen.
    Das führt in deinem Fall zu dieser skalierten Ansicht.

    Andre hat dein Problem zum Teil schon richtig beantwortet, nur musst du die selbe Stelle auch in der Datei templates/bootstrap4/module/product_listing/product_listing_v1.html ändern.

    Gruß Karl

    Jossi

    • Fördermitglied
    • Beiträge: 140
    Super, das war ja ziemlich einfach. Hat wunderbar geklappt!

    Also nur in
    /templates/bootstrap4/module/categorie_listing/categorie_listing.html

    und in
    /templates/bootstrap4/module/product_listing/product_listing_v1.html

    folgenden Teil löschen:

    {if (isset($CATEGORIES_DESCRIPTION) && $CATEGORIES_DESCRIPTION != '')}col-4 {/if}

    Vielen Dank für die schnelle Hilfe an ApK und Karl!  :thx:

    endlendt

    • Neu im Forum
    • Beiträge: 2
    bs4.css

       }
       .listingbox {
          margin: 0 auto;
          max-width: auto;
       }

    sieht besser aus

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.743
    • Geschlecht:
    "auto" ist kein erlaubter Wert für max-width.
    Und was soll das überhaupt bringen ?

    Gruß,
    noRiddle

    ND

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Hallo zusammen!

    ich möchte das Superfish / Megamenu gerne mit Kategorie Bildern ergänzen. Leider finde ich den richtigen Ansatzpunkt (Datei) nicht.

    Bin für jeden Tipp dankbar!

    Gruß ND

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo ND,
    in der Datei templates/bootstrap4/source/inc/xtc_show_categorie.inc.php wird ein HTML-String für das Standardmenü von Modified erzeugt.
    Dieser String wird auch für das responive Menü benutzt.
    Für breite Bildschirmen wird das responsive Menü per Javascript verändert und als Superfishmenü angezeigt.

    JS-Dateien:
    preparemenu.min.js
    prepbigmenu.min.js
    extra/default.js.php

    Gruß Karl

    Azrael

    • Neu im Forum
    • Beiträge: 32
    Hallo,

    das Template ist wirklich klasse, allerdings habe ich noch das Problem, dass ich den Backendmanager nicht finden kann.
    Ich habe die ZIP-Datei bei mir lokal entpackt und nach der Datei bs4_tpl_manager.php gesucht, aber nichts dazu gefunden. Ist diese eventuell aus dem Paket rausgeflogen oder übersehe ich hier etwas?

    Gruss
    Azrael

    Andre Kern

    • Fördermitglied
    • Beiträge: 426
    Hallo,

    hast Du mal geschaut ob in Deinem Adminkonto die Rechte dafür gesetzt sind?

    LG
    Andre

    Karl1

    • Experte
    • Beiträge: 1.805
    Hallo Azrael,
    hast du das Systemmodul installiert?

    Auszug aus der Datei info.txt
    Zitat
    Installation:
    ...
    Zur Nutzung des Template Managers im Adminbereich Module->System Module den "Bootstrap 4 Template Manager" installieren.

    Gruß Karl
    1266 Antworten
    408358 Aufrufe
    12. Dezember 2023, 07:46:30 von Karl1
    135 Antworten
    5938 Aufrufe
    28. April 2024, 21:40:12 von xzillen
    1228 Antworten
    637723 Aufrufe
    11. März 2020, 16:11:33 von Baschtl
    1 Antworten
    3130 Aufrufe
    24. April 2018, 09:36:44 von lukass