Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:

Autor Thema: ANLEITUNG: Hersteller in Slider auf Startseite anzeigen (für Template tpl_modified)  (Gelesen 8186 mal)

Offline Daniel140581

  • Neu im Forum
  • *
  • Beiträge: 25
    • Teile Beitrag
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

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.038
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
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

Offline kgd

  • Experte
  • *****
  • Beiträge: 1.623
    • Teile Beitrag
    • https://www.karsta.de
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

Offline Markus

  • modified Team
  • *****
  • Beiträge: 933
  • Geschlecht: Männlich
    • Teile Beitrag
    • http://www.rehm-neuss.de
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.]

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.038
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
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

Offline Markus

  • modified Team
  • *****
  • Beiträge: 933
  • Geschlecht: Männlich
    • Teile Beitrag
    • http://www.rehm-neuss.de
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

Offline Daniel140581

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

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

Offline Daniel140581

  • Neu im Forum
  • *
  • Beiträge: 25
    • Teile Beitrag
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?

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.038
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
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

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.038
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
@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

Offline Markus

  • modified Team
  • *****
  • Beiträge: 933
  • Geschlecht: Männlich
    • Teile Beitrag
    • http://www.rehm-neuss.de
@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

Offline noRiddle

  • Experte
  • *****
  • Beiträge: 10.038
  • Geschlecht: Männlich
    • Teile Beitrag
    • Webdesign Bonn - Köln
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

Offline longchuan

  • Viel Schreiber
  • *****
  • Beiträge: 633
  • Geschlecht: Männlich
    • Teile Beitrag
    • https://www.kubotanshop.at
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

Offline Markus

  • modified Team
  • *****
  • Beiträge: 933
  • Geschlecht: Männlich
    • Teile Beitrag
    • http://www.rehm-neuss.de
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

Offline longchuan

  • Viel Schreiber
  • *****
  • Beiträge: 633
  • Geschlecht: Männlich
    • Teile Beitrag
    • https://www.kubotanshop.at
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


Teile per facebook Teile per linkedin Teile per twitter

 


             
anything