Autor Thema: Sammelthread: Funktionen aus Demoshops in bestehende Shops einbauen  (Gelesen 5167 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Hallo,

Beim Einbau von Funktionen aus Demoshops kann man - auch als erfahrener SP-user - leicht mal was übersehen.
Um dann nicht erst lange in den jeweiligen Scripten suchen zu müssen, möchte ich hier kurze step by step Einbauanleitungen geben.

Damit das nicht unübersichtlich wird, Fragen dazu bitte in einem neuen Thread stellen.
(in diesem können nur Moderatoren oder Admins schreiben)

Tipp: bauen Sie die Funktionen zuerst mit den Original-Dateien ein und testen Sie es mit LiveView.
erst wenn alles funktioniert, die Dateien an die eigenen Bedürfnisse anpassen.

Wichtig: bevor Sie irgendwelche Änderungen am Shop-Projekt machen: vorher IMMER eine Sicherungskopie anlegen!

Linkback: https://www.shoppilot.net/pf/index.php?topic=1283.0
« Letzte Änderung: August 17, 2009, 10:05:58 von dobra »
mfG
dobra

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
"zuletzt gesehene Artikel" (Styleshop)
« Antwort #1 am: August 17, 2009, 09:58:16 »
Hallo,

aus gegebenem Anlass (private Frage wie das geht) hier mal eine kurze Anleitung, wie man die "zuletzt gesehene Artikel" Funktion aus dem neuen Styleshop in ein bestehendes Projekt einbaut.

1) benötigt werden die Dateien
  • last_seen_reg.ipl (zu finden im scripts Ordner)
  • last_seen.ipl
  • last_seen.txt (beide im ebedded Ordner)

2) hat man in seinem Projekt die Ordner "scripts" und "embedded", einfach die 3 neuen Dateien in die jeweiligen Ordner kopieren.
ansonsten vorher diese beiden Ordner anlegen.

3) um die Scripte einzubinden, auf allen Detailseiten <!--spmacro:include(scripts/last_seen_reg.ipl)-->
und auf allen Seiten, auf denen die Anzeige der zuletzt gesehenen Artikel ausgegeben werden soll <!--spmacro:include(embedded/last_seen.ipl)-->
in den Headbereich schreiben.
man kann das  <!--spmacro:include(embedded/last_seen.ipl)-->  auch in die stdall.ipl schreiben, dann ist das Script automatisch auf ALLEN Seiten verfügbar und man braucht sich nicht mehr darum kümmern  ;)

4) jetzt kann auf jeder beliebigen Seite mit   __last_seen::show__   die Anzeige ausgegeben werden.

txt-Datei gegebenenfalls anpassen.

Sollten die Bilder zu groß sein, hier noch ein Script, mit dem man die Bilder in beliebige Größe scalieren kann:
<!--spmacro:module(img)
# Größe Artikelbilder verändern
sub show {
   my $index = $_[0];
   my $anzahl = $_[1];
   my $path = $ssp::catalog_abs;
   my $itemid = ssp::get_var_article('itemid',$index);
   if ($index <= $anzahl) {
      my $pic = ssp::get_var_article('iimage',$index);   my $seite = ssp::get_var_article('ipagenr', $index);

      main::mprint('<a href="__img::link__"><img border="1px solid black" width="27px" src="' . $path . '/' . $pic . '"></a>');
   }
}

sub link {
my $index = shift;
my $anzahl = shift;
if ($index <= $anzahl) {
my $seite = ssp::get_var_article('ipagenr', $index);
my $itemid = ssp::get_var_article('itemid', $index);
main::mprint(qq|__xxpath__?showd$seite!0,$ssp::xxsession,$itemid|);
}
return "noinc";
}
-->
hier width=... wird die gewünschte Breite (oder Höhe) eingestellt.

in der txt-Datei   __simage__  mit  __img::show__  ersetzen.
die Bilder sind jetzt exakt so gross wie man sie haben will - MIT Link zur Detailseite wie bei  __simage__

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
"Artikel sortieren" (Styleshop)
« Antwort #2 am: August 17, 2009, 10:26:12 »
notwendige Schritte:

  • sort.ipl (im Ordner "scripts") in Ihr Projekt kopieren
    sollte der Ordner "scripts" noch nicht vorhanden sein, diesen vorher anlegen
  • aus der stdall.ipl Datei das  
    <!--spmacro:module(Callback)
    sub AddSQLCondition { ...

    Script in Ihre stdall.ipl kopieren
  • in alle Vorlagen wo die Sortierung angezeigt werden soll im head-Bereich
    <!--spmacro:include(scripts/sort.ipl)-->
    hinzufügen
  • die css-Klassen
    /* Element für Spaltensortierung */
    .sorter  {text-align: left; border: none;}
    .sorter #sort_asc {font-weight: bold;
       background:transparent url(../images/other/sort_up.gif) no-repeat scroll right center;
       padding-right:20px;
       }
    .sorter #sort_desc {font-weight: bold;
       background:transparent url(../images/other/sort_down.gif) no-repeat scroll right center;
       padding-right:20px;
       }
    .sorter #sort_inactive {font-weight: bold;
       background:transparent url(../images/other/sort_inactive.gif) no-repeat scroll right center;
       padding-right:20px;
       }

    in Ihre css-Datei eintragen
  • die icons sort_inactive.gif, sort_down.gif und sort_up.gif aus dem Ordner "images" -> "other" in Ihr Projekt kopieren
    Die Bider können auch in einen anderen Ordner abgelegt werden - dann müssen allerdings die Pfade in der css-Datei angepasst werden.
  • sort.ipl und die Icons im WC in die Liste "Dateien hinzufügen" eintragen
  • für die Ausgabe an der Stelle wo die Sortierungslinks angezeigt werden sollen
    __sort::itemid__ für Artikelnummer
    __sort::descr__ für Beschreibung
    __sort::price__ für Preis
    und - wenn gewünscht - __sort::off__ für Sortierung aufheben
    einfügen

Die Formatierungen, Icons, Texte usw. können natürlich angepasst werden.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Artikelbeschriftung und eigene Bilder uploaden (Konfiguratorshop)
« Antwort #3 am: August 17, 2009, 16:50:06 »
um die Funktion "Artikel beschriften", "Farbe wählen" und "eigenes Bild uploaden" wie bei den Mouspads im Konfiguratorshop sind folgende Schritte nötig:

1)  falls noch keine stdplacecart.ipl existiert diese anlegen und in die Liste "Dateien hinzufügen" eintragen.
2) diesen Code in die stdplacecart.ipl kopieren
<!--spmacro:module(form)
## POST-Daten auslesen
my $item = ssp::get_var_form('paditemid');
if (length($item) && ($item ne ssp::undefined)) {
my $padline = main::qform(ssp::get_var_form('PADLINE'));
my $red = int(ssp::get_var_form('padcolor_red'));
my $green = int(ssp::get_var_form('padcolor_green'));
my $blue = int(ssp::get_var_form('padcolor_blue'));
        my $image = main::qform(ssp::get_var_form("PADIMAGE"));

## Bereichsprüfung
if ($red > 255) { $red = 255; }
if ($red < 0) { $red = 0; }
if ($green > 255) { $green = 255; }
if ($green < 0) { $green = 0; }
if ($blue > 255) { $blue = 255; }
if ($blue < 0) { $blue = 0; }

## In Form #rrggbb bringen
my $color = sprintf("#%02x%02x%02x", $red, $green, $blue);
if ($item) {
$main::FORM{"PADLINE__$item"} = $padline;
$main::FORM{"PADCOLOR__$item"} = $color;
            $main::FORM{"PADIMAGE__$item"} = $image;
}
}
-->

3) die imageupload.ipl Datei aus dem Konfiguratorshop (im Ordner "scripts") in Ihr Projekt in den selben Ordner kopieren (falls noch nicht vorhanden - vorher anlegen) und in "Dateien hinzufügen" eintragen.

4) im WC 3 benutzerdefinierte Felder bei Auftrag -> Positionen anlegen
    PADLINE, PADCOLOR und PADIMAGES

5) eine HTML-Vorlage (Detail-Seite) für Artikel mit dieser Funktion erstellen.
    Die Seite kann wie jede andere Detailseite aufgebaut sein, aber DIESE Teile müssen enthalten sein:

<!--spmacro:pagetype(1)-->
<form method="post" action="__xformcart__">
<input type="hidden" name="paditemid" value="__artnr__">


--- hier Ihr normaler Inhalt ---

+ zusätzlich

      <script type="text/javascript">
      function showPreview() {
         var red = window.document.getElementById('padcolor_red').value;
         var green = window.document.getElementById('padcolor_green').value;
         var blue = window.document.getElementById('padcolor_blue').value;
         red = parseInt(red);
         green = parseInt(green);
         blue = parseInt(blue);
         if (red > 255) { red = 255; }
         if (red < 0) { red = 0; }
         if (green > 255) { green = 255; }
         if (green < 0) { green = 0; }
         if (blue > 255) { blue = 255; }
         if (blue < 0) { blue = 0; }
         window.document.getElementById('padcolor_preview').style.backgroundColor = "rgb("+red+","+green+","+blue+")";
      }
      </script>
      <table>
      <tr>
         <td>Beschriftung</td>
         <td>
            <input name="PADLINE" id="PADLINE" type="text" size="45" maxlength="250">
         </td>
      </tr>
      <tr>
         <td valign="top">Textfarbe&nbsp;</td>
         <td>
            Rot&nbsp;<input name="padcolor_red" id="padcolor_red"  type="text" size="3" maxlength="3" value="0" onChange="javascript:showPreview();">
            Gr&uuml;n&nbsp;<input name="padcolor_green" id="padcolor_green"  type="text" size="3" maxlength="3" value="0" onChange="javascript:showPreview();">
            Blau&nbsp;<input name="padcolor_blue" id="padcolor_blue" value="0" type="text" size="3" maxlength="3"  onChange="javascript:showPreview();">
            Farb-Vorschau&nbsp;<input type="text" id="padcolor_preview" style="border:1px solid gray; background-color:black;" size="3" readonly>
            <br>
            <i>Hinweis: Tragen Sie jeweils Zahlen zwischen 0 und 255 ein.</i>
         </td>
      </tr>
      </table>

   <!-- *** Bildupload bereitstellen *** -->
   <!--spmacro:include(scripts/imageupload.ipl)-->
   <div class="innercontent">
      <!--    PADIMAGE heisst das benutzerdefinierte Feld für Bestellpositionen,
            in dem die eingetragenen Bilder gespeichert werden -->
      <input type="hidden" name="PADIMAGE" value="__imageupload::printImage__">
      __imageupload::printdetailpage_registeredonly__
   </div>
   <!-- *** Ende: Bildupload bereitstellen *** -->


</form>

unbedingt nötig ist auch entweder __anzkaufen__ oder ein entsprechendes hidden input!

6) ein weitere HTML-Vorlage "p_addimage.html" anlegen.
Hier kommt dieser HTML-Teil hinein:
   <!--spmacro:include(scripts/imageupload.ipl)-->
   __imageupload::printuploadpage__


7) eine Info-Seite anlegen
    Titel: Bildupload
     Vorlage: die zuvor erstellte p_addimage.html

8 )  in der Warenkorbvorlage und allen folgenden Seiten (Bestelldatenvorlage, Mails an Händler und Kunden)
      <!--spmacro:include(scripts/bestellposition.ipl)--> in den head-Bereich eintragen

9) zur Ausgabe im WK
   <!-- *** Ausgabe Zusatzdaten für personalisierbare Artikel *** -->
   __bestellposition::printBenutzerdefinierteFelder_Bearbeitbar__
   <!-- *** Ende: Ausgabe Zusatzdaten für personalisierbare Artikel *** -->

und in den Bestelldatenvorlagen und Mails
__bestellposition::printBenutzerdefinierteFelder__
im Loopitemteil vor <!--spmacro:enditem--> einfügen.

10) DB neu anlegen (lokal und online)

Wenn alles korrekt funktioniert noch die HTML-Teile in den Scrips an Ihre Seite anpassen.

P.S.: Wie man die den Verkauf von Meterware einbaut, ist hier nachzulesen




exclamation
Sammelthread: Vorlagen für IBOLister Plus

Begonnen von ahe

4 Antworten
22015 Aufrufe
Letzter Beitrag August 31, 2007, 12:14:27
von ahe
xx
Facebook Funktionen in ShopPilot integrieren

Begonnen von dobra

1 Antworten
4420 Aufrufe
Letzter Beitrag Juli 05, 2010, 10:02:49
von jg
xx
Kabelkonfigurator in bestehenden Shop einbauen

Begonnen von dobra

2 Antworten
4074 Aufrufe
Letzter Beitrag Juni 25, 2007, 14:29:03
von dobra
lamp
zuletzt gesehene Artikel aus Demoshop in bestehendes Projekt einbauen

Begonnen von dobra

0 Antworten
2926 Aufrufe
Letzter Beitrag März 22, 2009, 14:21:07
von dobra