rechtstexte für onlineshop
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: ANLEITUNG: Hersteller in Slider auf Startseite anzeigen (für Template tpl_modified)

    Daniel140581

    • Neu im Forum
    • Beiträge: 25
    Hallo zusammen,

    hoffe mir kann jmd fix helfen. Ich würde gerne die Hersteller auf der Startseite in einem Slider anzeigen lassen.

    Kann mir wer sagen, wie ich das anstelle??? Danke Euch.

    Gruß
    Daniel

    [EDIT Tomcraft 07.10.2016: Hier geht es direkt zur Anleitung von Markus.]

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

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.739
    • Geschlecht:
    Habe ich vor einiger Zeit mal gebaut, kannst du z.B. hier sehen.
    Ist mittels einer Box und ein wenig Javascript realisiert worden.
    Jedes Icon ist, wenn vorhanden, auf die im Backend eingegebene Hersteller-URL verlinkt und ansonsten auf die Seite im Shop mit allen Artikeln des Herstellers.
    Der Slider kann auch automatisch laufen.

    Gruß,
    noRiddle

    karsta.de

    • Experte
    • Beiträge: 3.077
    Habe das vor kurzem in einen V2 Shop eingebaut, zu sehen hier (ganz unten).
    Es werden alle Hersteller gelistet, für die Artikel im Webshop sind. Wurde für den Hesteller kein Bild hinterlegt, wird er als Text-Link angezeigt.

    BG kgd

    Markus

    • modified Team
    • Beiträge: 1.367
    • Geschlecht:
    Hi Daniel,

    so einfach mit mal "einstellen" wird das nichts. Ein bischen aufwändiger wirds schon.

    Das ganze ist für das Standardtemplate tpl_modified. Angezeigt werden 5 Herstellerbilder nebeneinander ... und auch nur die wo ein Herstellerbild vorhanden ist.
    Die Anzahl kann über das Javascript konfiguriert werden und das Aussehen über die CSS.

    Als erstes die beiden Datein in der Anlage hochladen.

    box_manufacturers_carousel.html -> templates/tpl_modified/boxes/
    manufacturers_carousel.php -> templates/source/boxes/

    Jetzt müssen noch ein paar Dateien editiert werden:

    templates/tpl_modified/source/boxex.php
    suche:

    Code: PHP  [Auswählen]
    // -----------------------------------------------------------------------------------------
    //      always visible
    // -----------------------------------------------------------------------------------------

    darüber einfügen:

    Code: PHP  [Auswählen]
    // -----------------------------------------------------------------------------------------
    //      Nur Startseite
    // -----------------------------------------------------------------------------------------
      if(strpos($PHP_SELF, 'index')!==false && !isset($_GET['cPath']) && !isset($_GET['manufacturers_id'])){
        require_once(DIR_FS_BOXES . 'manufacturers_carousel.php');
      }

    templates/tpl_modified/javascript/general_bottom.js.php
    suche:

    Code: PHP  [Auswählen]
        $('.bxcarousel_slider').bxSlider({
          adaptiveHeight: false,
          mode: 'fade',
          auto: true,
          speed: 2000,
          pause: 6000
        });

    darunter einfügen:

    Code: PHP  [Auswählen]
        $('.bxcarousel_manufacturers').bxSlider({
          minSlides: 2,
          maxSlides: 5,
          pager: true,
          slideWidth: 134,
          slideMargin: 15
        });

    templates/tpl_modified/stylesheet.css
    ganz ans Ende einfügen:

    Code: CSS  [Auswählen]
    /* START carousel manufacturer box */
    .manufacturers_carousel {
      padding: 20px 0 10px 0;
    }
    ul.bxcarousel_manufacturers li {
      float:left;
      width:134px;
      background:#fff;
      display:block;
      overflow:hidden;
    }
    ul.bxcarousel_manufacturers li .mc_box {
      padding: 15px 5px 5px 5px;
    }
    ul.bxcarousel_manufacturers li .mc_box .mc_image {
      position:relative;
      display:block;
      height:113px;
      overflow:hidden;
    }
    ul.bxcarousel_manufacturers li .mc_box .mc_image img {
      position: absolute;
      right: 0;
      top: 0;
      bottom: 0;
      left: 0;
      display: block;
      margin: auto;
      max-height: 110px;
    }
    ul.bxcarousel_manufacturers li .mc_box a {
      color:#333;
    }
    ul.bxcarousel_manufacturers li .mc_box a:hover {
      text-decoration:none;
      color:#776cab;
    }
    .manufacturers_carousel .bx-wrapper .bx-pager,
    .manufacturers_carousel .bx-wrapper .bx-controls-auto {
      bottom: -22px;
    }
    /* END carousel manufacturer box */

    templates/tpl_modified/index.html
    suche:

    Code: PHP  [Auswählen]
          {if isset($BANNER)}<div class="content_banner cf">{$BANNER}</div>{/if}
          {if isset($main_content)}{$main_content}{/if}

    danach einfügen:

    Code: PHP  [Auswählen]
    {if isset($box_MANUFACTURERS_CAROUSEL)}{$box_MANUFACTURERS_CAROUSEL}{/if}

    Das sollte es gewesen sein. Ggf. noch den Templatecache leeren.

    Markus

    P.S. Wer zuviele Hersteller hat kann natürlich auch noch die SQL dahingehend optimieren ein LIMIT zu setzen und damit die dann immer "durchgemischt" werden noch ein order by RAND() einfügen.

    P.P.S: Paket nochmal aktualisiert .. es war noch ein Fehler in der php-Datei

    [EDIT Tomcraft 07.10.2016: Anleitung in Beitrag 1 verlinkt.]

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.739
    • Geschlecht:
    Jau, so ähnlich habe ich's auch gemacht.
    Wofür ist der JOIN auf TABLE_PRODUCTS, Markus ?

    Ich würde noch eine Random-Reihenfolge der Anzeige einbauen.
    Meine Query sähe so aus:
    Code: PHP  [Auswählen]
    $manufacturers_query = xtDBquery("SELECT DISTINCT m.manufacturers_id,
                                                      m.manufacturers_name,
                                                      m.manufacturers_image,
                                                      mi.manufacturers_url,
                                                      FLOOR(1 + RAND() * x.m_id) 'rand_result'
                                                 FROM "
    .TABLE_MANUFACTURERS." m,
                                                      "
    .TABLE_MANUFACTURERS_INFO." mi,
                                                      (SELECT MAX(t.manufacturers_id) - 1 'm_id'
                                                 FROM "
    .TABLE_MANUFACTURERS_INFO." t) x
                                                WHERE m.manufacturers_id = mi.manufacturers_id
                                                  AND languages_id = '"
    .(int) $_SESSION['languages_id']."'
                                             ORDER BY rand_result
                                    "
    );

            while ($manufacturers = xtc_db_fetch_array($manufacturers_query, true)) {
            $Output[] = array(
                'name' => $manufacturers['manufacturers_name'],
                'link' => xtc_href_link(FILENAME_DEFAULT, xtc_manufacturer_link($manufacturers['manufacturers_id'],$manufacturers['manufacturers_name'])),
                'xurl' => $manufacturers['manufacturers_url'],
                'image' => is_file(DIR_WS_IMAGES.$manufacturers['manufacturers_image']) ? DIR_WS_IMAGES.$manufacturers['manufacturers_image'] : false
            );
        }

            if ($Output) {
                    $box_smarty->assign('BOX_CONTENT', $Output);
            }

    Dann kann man auch noch wahlweise verlinken wie in meiner ersten Antwort beschrieben.

    Gruß,
    noRiddle

    Markus

    • modified Team
    • Beiträge: 1.367
    • Geschlecht:
    Hi ...

    ich habs jetzt gleich richtig umgebaut.
    Der JOIN war schon richtig .. nur die Abfrage hat gefehlt :-) (sch**** copy & paste)
    Jetzt kommen auch nur noch Hersteller die zugeordnete Produkte haben.

    Herstellerbild wird jetzt noch zusätzlich abgefragt ob es auch existiert.

    Den Cache habe ich raus da wir den für eine Random Anzeige nicht brauchen können und das Limit wird jetzt einfach im Adminbereich gesetzt. MAX_DISPLAY_BESTSELLERS

    Und last but not least ist der HTML Code jetzt auch da wo er hingehört .. in der html-Datei.

    Jetzt sollte es auf jeden Fall passen. Das Downloadpaket ist aktualisiert.

    Markus

    Daniel140581

    • Neu im Forum
    • Beiträge: 25
    danke jungs,

    ich werde mir das gleich direkt mal anschauen und einbauen. toi toi toi!

    Daniel140581

    • Neu im Forum
    • Beiträge: 25
    funktioniert echt super. klasse. danke.

    geht das ganze jetzt auch noch ein wenig automatisiert markus??? das das ganze automatisch läuft und man nicht klicken muss?

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.739
    • Geschlecht:
    Ich bin mal so frei zu antworten.
    Hier ist ein Beispiel des bxSliders mit autorun. Danch reicht ein auto: true im Aufruf des Sliders.

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.739
    • Geschlecht:
    @Markus
    Was macht denn das genau ?, habe ich noch nie gesehen und verstehe es auch nicht.
    Code: SQL  [Auswählen]
    ORDER BY MD5(CONCAT(m.manufacturers_id, CURRENT_TIMESTAMP))

    Verstehe was MD5 und concat() machen, klar, aber der Sinn und die Wirkung ?

    Gruß,
    noRiddle

    Markus

    • modified Team
    • Beiträge: 1.367
    • Geschlecht:
    @noRiddle

    bin ich ehrlich genug zu sagen dass ich auch ein "order by rand" eingesetzt hätte. Laut Gerhard ist das aber so wohl deutlich schneller wie ein order by rand :-)

    Markus

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.739
    • Geschlecht:
    Klar "order by rand" ist lahm wenn es viele Einträge gibt.
    Aber ich verstehe
    Code: SQL  [Auswählen]
    ORDER BY MD5(CONCAT(m.manufacturers_id, CURRENT_TIMESTAMP))
    trotzdem nicht.

    Was passiert denn bei einer Query im Microbereich, ist da pro Record aus dem SELECT der CURRENT_TIMESTAMP immer um ein paar Microsekunden höher ?
    Nur dann kann ich mir eine Randomness vorstellen.

    Schau mal wie ich es in Antwort #4 geschrieben habe.
    Sieht zwar kompliziert aus ist aber sau-schnell und sehr random ;-).
    Habe ich mir allerdings auch nicht selbst ausgedacht, Stackoverflow war mein Freund ;-) und es erschien mir plausibel.
    Nach einem Test welcher mittels dieser Random-Routine, sogar von einer fremden Datenbank, Bildnamen ausliest und die Bilder dann darstellt, war ich, auch gerade wegen einer komplexeren WHERE-clause und zwei LEFT JOINs, überzeugt von der Schnellligkeit.

    Gruß,
    noRiddle

    longchuan

    • Viel Schreiber
    • Beiträge: 647
    • Geschlecht:
    Hallo habe es in einem Testshop eingebaut.
    Shop 2.0 mit Template tpl
    6 Hersteller angelegt
    leider läuft der slider nicht
    auch sind die Button nicht sichtbar.
    hat jemand einen Tip
    www.yourgames.at

    Markus

    • modified Team
    • Beiträge: 1.367
    • Geschlecht:
    Hi

    sieht doch alles richtig aus.
    Haben alle 6 Hersteller ein Herstellerbild?
    Wenn du nur 3 oder auch 6 Hersteller hast gibts keine Scrollbuttons .. die kommen erst ab dem 7. Hersteller.

    Markus

    longchuan

    • Viel Schreiber
    • Beiträge: 647
    • Geschlecht:
    Hallo Markus
    Ich habe 7 Hersteller mit Namen und Bildern Angelegt.
    Auch Artikel mit Herstellern verlinkt aber die Slideshow  funktioniert trotdem nicht.
    Irgendetwas mach ich falsch?
    Was kann es sein?
    Danke
    139 Antworten
    58013 Aufrufe
    16. April 2016, 20:40:22 von Sven_Voet
    24 Antworten
    8979 Aufrufe
    19. Mai 2016, 10:56:37 von Bonsai
               
    anything