Jump to content
xt:Commerce Community Forum

Zufallsprodukte auf der Startseite


spoorn

Recommended Posts

So habe mich mal reingekniet und mal eine eigene Lösung entwickelt. Ich weiss zwar nicht wie man das ganze auf Modulbasis löst, aber auf Boxbasis ist es auch machbar:

In der Headerdatei


includes/header.php

erstellen wir einen neue Smarty-Variable, die uns zurückgibt ob es sich um die Startseite handelt. Unter der Zeile

$smarty->assign('navtrail',$breadcrumb->trail(' » '));

fügen wir unsere neue Zeile ein:

$smarty->assign('startside',$category_depth=='top'?1:0);

In der Index-Datei fragen wir ab, ob es sich bei der aktuellen Seite um die Startseite handel Als Aktion auf die Abfrage wird entweder die Startseitenbox angezeigt, oder der ganz normale Maincontent.

{if $startside==1}

    {$box_startseite}

{else}

    {$main_content}

{/if}

Die Box muss natürlich vorher erstellt werden. Diese besteht in der Regel aus der HTML-Vorlage und dem passenden PHP-Code. Dazu kann eine vorhandene Box unter neuem Namen kopiert werden. Dazu bietet sich die Box Bestseller an. Hier sind alle Funktionen bereits vorhanden. Mit weniig aufwand kann diese angepasst werden. Der HTML-Code liegt in:

/templaes/mein.design/boxes/box_vorlage.html

Der PHP-Code liegt in:

/templaes/mein.design/source/boxes/box_script.php

In der PHP-Datei ändert man nun noch die Zuweisung des Box-Names in den, den man in der Index-Datei verwendet hat, also '$box_startseite', den Variablennamen lässt man gleich.

$smarty->assign('box_startseite', $variablennamen);

Zusätzzlich muss die Vorlage-Datei noch richtig verlinkt werden mit

$box_name = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_vorlage.html');

Nun muss die Box nur noch geladen werden. Dazu muss in der der Datei

/templaes/mein.design/source/boxes.php

noch die neue Box gelistet werden mit

include(DIR_WS_BOXES . 'box_script.php');

Zufallsartikel erzeugt man in einer SQL-Abfrage mit

select * from Tabelle 

where bedingung

order by RAND() LIMIT Anzahl

Ich hoffe das hilft weiter, bitte Feedback.

Gruss

Spoorn

www.ibbb.eu

Link to comment
Share on other sites

Nach etwas testen scheint es ein kleines Problem zu geben. Seiten ohne Kategorie oder Content-Nummer werden als Startseite erkannt. Ich sehe keinen Sinn darin, jede einzelne Seite abzufragen.

Gibt es eine andere Möglichkeit festzustellen, wann man auf der Titelseite ist?

Problem ist gelösst!

Link to comment
Share on other sites

Hallo,

ich habe so ähnliche Problem und würde mich sehr freuen, wenn ihr mir helfen könnt.

Und zwar möchte ich auf mein Startseite von allen Kategorien die neuesten Artikeln anzeigen.

Wie muss ich vorgehen oder was muss da machen ???

Kann mir jemand dabei Helfen ???

Oder kann mir jemand wenigstens das richtige SQL Lösung dazu sagen ???

MfG

Devran

Link to comment
Share on other sites

Lösungsansatz ist der gleiche wie oben beschrieben, nur das die Sortierung nicht nach Zufall erfolgt, sondern nach dem Datum.


select * from Tabelle

order by Datum desc Limit Anzahl

Im konkreten Fall wäre das dann:

select distinct

p.products_id,

p.products_image,

p.products_price,

p.products_tax_class_id,

pd.products_short_description,

pd.products_name from ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd

where p.products_status = '1'

".$group_check."

and p.products_image <> '' 

and p.products_id = pd.products_id ".$fsk_lock."

and pd.language_id = '".(int) $_SESSION['languages_id']."'

order by p.products_date_added desc LIMIT 5 ;

Das ganze machst du dann für jede Kategorie.

Bitte Feedback.

Gruss

Spoorn

www.ibbb.eu

Link to comment
Share on other sites

  • 1 month later...

Hallo Devran, um anderen Leuten zu helfen wäre es sinnvoll, wenn Du Deine Lösung posten würdest! DAS nennt man Community ;-)

(Hätte auch Interesse ;-))

Hallo,

ja gern nur es ist jetzt echt kompliziert euch die lösung zu erklären.

So einfach ist bzw. war es nicht zu lösen.

Denn ich habe nicht nur die MySQL Abfrage geändert sondern auch an einigen Dateien entsprechendes Quelltext.

Habe es erweitert und dazu bräuchte man in PHP programmier kenntnisse.

MfG

Devran

Link to comment
Share on other sites

Also keine "Einbauanleitung" möglich wie etwa:

Öffne Datei xyz

Suche nach (...code...) ungefähr in Zeile Z

Füge davor/danach ein (...code...)

Schade.

Und vielleicht noch die Info was das Modul dann wirklich bewirkt (sprich was von den Wünschen wurde umgesetzt).

Nagut .. dann eben nicht

Link to comment
Share on other sites

Ein fertiges random Modul gibt es für sehr wenig Geld zum Kaufen. Google benutzen, da man hier ja keine Werbung machen darf. Habe es im Einsatz und läuft perfekt. Damit es auf der ersten Seite läuft, sind auch DB-Änderungen notwendig. Kleiner Tipp für die Suche: ich habe als Suchbegriff happy hour modul xtc eingegeben. Anbieter ?????layout???? LG Conny

Link to comment
Share on other sites

Danke Conny.

Habe jetzt auch eine kostenfrei Möglickeit mit Einbauanleitung gefunden:

http://www.xt-commerce.com/forum/showthread.php?t=34907

Nicht irritieren lassen ... es ist zwar ein "New Products" Modul. Aber es hat den Vorteil, dass es immer eine zufällige Auswahl aus den neuen Produkten des Katalogs wählt, ohne dass man sie für die Startseite assignen muß.

Ich habe das jetzt so gelöst, dass ich unter Gültigkeit für neue Produkte in den Standardeinstellungen 365 Tage eingetragen habe. Damit sind dann alle Produkte des letzten Jahres im Pool für die Zufallansicht ;-)

Link to comment
Share on other sites

Hallo c-cool,

welche Shop-Version hast Du ? Das Modul whats_new ist ja bereits Bestandteil der Shop-Version 3.0.4 sp 2 und aufwärts. Ist eine Box die man wie Du beschrieben hast im Admin steuern kann.

Das was ich meinte ist jedoch ein random auf der Startseite. Hier werden aus allen in der DB vorhandenen Produkte eine Auswahl (auch sehr alte, schon vergessene Produkte) auf der Sartseite immer wieder neu angezeigt. Auch hier kann man die Produktanzahl im Admin frei definieren.

LG

Conny

Link to comment
Share on other sites

  • 4 weeks later...

Zufallsartikel auf der Startseite für sp2.1

includes/modules/new_products.php

suche dir die zeile ca. 36 und änder die sql abfrage in

QUELLTEXT

$new_products_query = "SELECT * FROM

".TABLE_PRODUCTS." p,

".TABLE_PRODUCTS_DESCRIPTION." pd WHERE

p.products_id=pd.products_id and

p.products_status = '1'

".$group_check."

".$fsk_lock."

and p.products_status = '1' and pd.language_id = '".(int) $_SESSION['languages_id']."'

order by RAND() ASC limit ".MAX_DISPLAY_NEW_PRODUCTS;

} else {

zu sehen unter http://www.laptop-cover-design.de

Link to comment
Share on other sites

@Conny das erwähnte Modul "whats new" (keine Box, link ist oben) ermöglicht es zufällige Produkte auf der Startseite im normalen main-Bereich anzuzeigen. (bloß der Name "whats-new" ist ein wenig verwirrend .. aber klappt)

meine Shopversion ist die 3.0.4SP2.1 :):D

Wie das? Kannst Du eine Beschreibung anfügen?
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...