Shopsystem ShopPilot

ShopPilot => SSP - Shop Server Pages => Thema gestartet von: dobra am März 27, 2008, 13:41:47

Titel: fremdsprachige Listboxen für Subkatolog
Beitrag von: dobra am März 27, 2008, 13:41:47
Hallo,

Habe mal einen Prototyp für fremdsprachige Listboxen gebaut
(kann natürlich noch angepasst und beliebig erweitert werden)

Listbox nachbauen:
<!--spmacro:pagetype(1)-->  
<form method="post" action="__xformcart__">
<input type="hidden" name="listid" value="__artnr__">
...
...
</form>


Jetzt noch die notwendigen Scripte einbauen:

in stdall.ipl
<!--spmacro:include(scripts/bestellposition.ipl)-->

<!--spmacro:module(show)
## Nachgebaute Listbox-Funktion
sub mylistbox1 {
    my $index = shift;
    my $anzahl = shift;
   
    if ($index <= $anzahl) {
        my $list = ssp::get_var_article('MYLIST1', $index);
        my @listids = split(",", $list);

    if ($list !=0){
        my $out = qq|
<SELECT name="LISTE1" id="LISTE1" size="1">|;
            for (my $i = 1; $i < scalar(@listids); $i++) {
                $out .= qq|<OPTION value="$listids[$i]">$listids[$i]</OPTION>|;
            }
            $out .= qq|</SELECT>|;

        main::mprint($out);
    }
}
}
-->


bestellposition.ipl anlegen, (wird in stdall.ipl eingebunden, damit es automatisch auf allen Seiten verfügbar ist - nicht vergessen, diese Datei auch in die "Dateien hinzufügen" - Liste eintragen!)
<!--spmacro:module(bestellposition)

sub myliste1 {
    my $index = shift;
   
    my $anzahl = ssp::get_var_cart('anzahl',$index);
    my $artnr = ssp::get_var_cart('id',$index);
    my $id = ssp::get_var_cart('rawid',$index);
    my $txt = "";
   
    my $liste1 = ssp::get_var_cart("LISTE1",$index);
   
    $liste1 =~ s/\\//g;
   
    if ($liste1) {
        $txt = qq |$liste1|;
    }
   
    main::mprint $txt;
}
-->


stdplacecart.ipl (falls noch nicht vorhanden - anlegen)
<!--spmacro:module(form)
## POST-Daten auslesen
my $item = ssp::get_var_form('listid');
if (length($item) && ($item ne ssp::undefined)) {
my $list1 = main::qform(ssp::get_var_form('LISTE1'));
if ($item) {
$main::FORM{"LISTE1__$item"} = $list1;
}
}
-->


So, das war's schon fast
Jetz nur noch im WK und den Mailvorlagen ein __bestellposition::myliste1__  an den Stellen, an denen die Listboxauswahl angezeigt werden soll einfügen.

Die Listbox auf den Detailseiten bzw. die Zusatztexte im WK und Mail werden nur dann angezeigt, wenn für diesen Artikel auch ein Listboxeintrag in MYLIST1 vorhanden ist.

Auf diese Weise können beliebig viele nachgebaute Listboxen verwendet werden.
Titel: Re: fremdsprachige Listboxen für Subkatolog
Beitrag von: parimo am März 27, 2008, 15:41:38
Hallo dobra,

das ist ja super, vielen Dank !!  :)
Ich hatte schon befürchtet, ich müsste mich zu einem Programmier-Kurs anmelden, um den Shop vernünftig aufzubereiten.
Ich werde es dank deiner Anleitung am Wochenende ausprobieren, ob ich auch Listboxen bauen kann. Das wird sicher auch für viele andere Shoppilot-Händler nützlich sein, denn - wie gesagt - bisher habe ich noch keine elegante SPE-Umsetzung eines Mehrsprachenshops gesehen.

Viele Grüße
parimo
Titel: Re: fremdsprachige Listboxen für Subkatolog
Beitrag von: dobra am März 27, 2008, 15:51:30
Hallo nochmal

mit Genehmigung habe ich den Demoshop tabshop_ml in dem ich die Listbox eingebaut habe im Privatbereich zum download zur Verfügung gestellt, falls sich das jemand anschauen möchte - der Testartikel ist Mäuse -> Kugelmaus im englischen Subkatalog
http://www.shoppilot.net/pf/offtopic_privat/tabshopml_mit_uebersetzer_listbox-t1051.0.html;msg3896#msg3896 (http://www.shoppilot.net/pf/offtopic_privat/tabshopml_mit_uebersetzer_listbox-t1051.0.html;msg3896#msg3896)

ZitatIch hatte schon befürchtet, ich müsste mich zu einem Programmier-Kurs anmelden
Davon halte ich nicht viel  ;)
Mit "learning by doing" und ein wenig Hilfe von Support geht's viel einfacher und macht viiiieeeeeel mehr Spaß  :D