58
Björn Teßmann, Astrid Zanier xt:Commerce VEYTON 4

xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

Björn Teßmann, Astrid Zanier

xt:Commerce VEYTON 4

786.book Seite 1 Freitag, 5. Februar 2010 10:29 10

Page 2: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

Auf einen Blick

1 Einführung .......................................................................... 11

2 xt:Commerce Shopsoftware ............................................... 19

3 VEYTON installieren ........................................................... 31

4 Erste Schritte ...................................................................... 63

5 Konfigurationseinstellungen .............................................. 77

6 Design anpassen und Templates entwickeln ..................... 171

7 Module und Funktionen entwickeln .................................. 251

8 Mit anderen Programmen zusammenarbeiten ................... 333

9 Zusatzmodule ..................................................................... 401

A Featureliste xt:Commerce VEYTON 4.0 Enterprise ............ 439

B EULA ................................................................................... 453

C Variablen und Templates für den Export ............................ 459

D CD-ROM und VEYTON-Testversion ................................... 469

786.book Seite 3 Freitag, 5. Februar 2010 10:29 10

Page 3: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

5

Inhalt

»Der Unternehmer sieht Chancen, die andere nicht sehen. Er überwindet die Angst vor dem Neuen.«– Branco Weiss 11

1 Einführung .............................................................................. 11

1.1 Einordnung von VEYTON .......................................................... 111.2 Zielgruppe des Buches ............................................................... 131.3 Aufbau des Buches .................................................................... 131.4 Informationsquellen ................................................................... 161.5 Danksagung der Autoren ........................................................... 18

Kaufshops verfügen in der Regel über ein breites Spektrum an Funktionen und bedienen auch Händler mit höheren Anforderungen.– E-Commerce-Leitfaden 19

2 xt:Commerce Shopsoftware ................................................... 19

2.1 Entwicklung ............................................................................... 192.2 Funktionsumfang ....................................................................... 202.3 Systemvoraussetzungen ............................................................. 222.4 Lizenz ........................................................................................ 23

2.4.1 xt:Commerce EULA ..................................................... 232.4.2 Open Source ist nicht kostenlos .................................. 252.4.3 Lizenzmodell ............................................................... 27

2.5 Community und Hilfequellen ..................................................... 28

»Kleine Taten, die man ausführt, sind besser als große, die man plant.«– George C. Marshall 31

3 VEYTON installieren ............................................................... 31

3.1 Anwendungsumgebung auswählen und einrichten .................... 313.1.1 Lokale Anwendungsumgebung für Windows

mit XAMPP ................................................................. 333.1.2 Lokale Anwendungsumgebung für Linux

mit XAMPP ................................................................. 373.1.3 Lokale Anwendungsumgebung für MAC OS X

mit MAMP .................................................................. 413.1.4 Installation auf einem Webserver ................................ 44

3.2 Vorbereitungen ......................................................................... 463.2.1 Datenbank .................................................................. 463.2.2 Download der Software .............................................. 473.2.3 Upload ........................................................................ 48

3.3 Installationsroutine .................................................................... 493.4 Fehlerbehebung bei der Installation ........................................... 54

3.4.1 Probleme mit Strato .................................................... 553.4.2 Probleme mit DomainFactory ..................................... 563.4.3 Probleme mit lokalen Anwendungsumgebungen.......... 56

786.book Seite 5 Freitag, 5. Februar 2010 10:29 10

Page 4: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

Inhalt

6

3.5 Eine lokale Installation auf einen Webserver übertragen ............ 563.6 Migration von Shops – Migrationstool xtMigration .................... 60

»Auch der erste Schritt gehört zum Wege.«– Arthur Schnitzler 63

4 Erste Schritte .......................................................................... 63

4.1 Szenario ..................................................................................... 634.2 Grundeinstellungen ................................................................... 644.3 Mandanteneinstellungen ........................................................... 664.4 E-Mail-Einstellungen ................................................................. 694.5 Versand und Zahlungsweise ....................................................... 704.6 Produkte einstellen .................................................................... 724.7 Der Kunde bestellt .................................................................... 74

Denken Sie stets daran, Abläufe in Ihrem Webshop möglichst effizient und kundenfreundlich zu gestalten, denn er ist Ihr Aushängeschild. 77

5 Konfigurationseinstellungen .................................................. 77

5.1 Administrationsbereich .............................................................. 775.2 Grundkonfiguration ................................................................... 79

5.2.1 Mandanten ................................................................. 795.2.2 Steuersätze einrichten ................................................. 825.2.3 Zahlungsmodule und Versandkosten ........................... 83

5.3 Globale Einstellungen ................................................................ 865.3.1 Systemstatus ............................................................... 865.3.2 Konfiguration .............................................................. 895.3.3 Administrationsrechte ................................................. 92

5.4 Sprachkonfiguration ................................................................... 945.5 Produktkatalogmanagement ...................................................... 96

5.5.1 Kategoriestruktur ........................................................ 965.5.2 Kategorien .................................................................. 975.5.3 Produkte ..................................................................... 100

5.6 Verkaufsförderung ..................................................................... 1175.6.1 Cross-Selling ............................................................... 1175.6.2 Automatisches Cross-Selling ........................................ 1195.6.3 Bestseller Products ...................................................... 1205.6.4 Upcoming Products .................................................... 1215.6.5 Bewertungen .............................................................. 1225.6.6 Kupons/Gutscheine .................................................... 123

5.7 Import/Export ............................................................................ 1265.8 Export-Manager ........................................................................ 1295.9 Kundenverwaltung .................................................................... 136

5.9.1 Kunden ....................................................................... 1365.9.2 Kundengruppen .......................................................... 137

786.book Seite 6 Freitag, 5. Februar 2010 10:29 10

Page 5: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

Inhalt

7

5.10 Verkaufsabwicklung ................................................................... 1415.10.1 Kundenadresse ........................................................... 1425.10.2 Versandeinstellungen .................................................. 1435.10.3 Zahlungsmittel – Grundmodule ................................... 1475.10.4 Bestellungen bearbeiten .............................................. 149

5.11 Informationsverwaltung ............................................................. 1515.12 E-Mail-Manager ........................................................................ 1535.13 Bild- und Datenmanagement ..................................................... 155

5.13.1 Unterkategorien anlegen und bearbeiten .................... 1565.13.2 Bild- und Datenkategorien .......................................... 1575.13.3 Dateitypen .................................................................. 1605.13.4 Bildtypen .................................................................... 160

5.14 Zusätzliche Funktionalitäten ...................................................... 1625.14.1 Kampagnen ................................................................ 1625.14.2 Staffelpreise ................................................................ 1635.14.3 Sonderpreise ............................................................... 1665.14.4 Tagcloud ..................................................................... 1685.14.5 Widerrufsbelehrung .................................................... 1685.14.6 Datenschutzerklärung ................................................. 169

»Design is not just what it looks like and feels like. Design is how it works.«– Steve Jobs 171

6 Design anpassen und Templates entwickeln ......................... 171

6.1 Smarty-Template-Engine ........................................................... 1736.1.1 Was ist Smarty? .......................................................... 1736.1.2 Einführungsbeispiel für Smarty .................................... 1766.1.3 Grundlegende Syntax und Variablen ........................... 1776.1.4 Variablenmodifikatoren ............................................... 1856.1.5 Zusätzliche Smarty-Funktionen ................................... 187

6.2 VEYTON-Templates ................................................................... 1876.2.1 Buttons ....................................................................... 1876.2.2 Bilder .......................................................................... 1906.2.3 Template-Struktur ....................................................... 1926.2.4 Templates überladen ................................................... 1956.2.5 Hierarchie der Pluginvorlagendateien .......................... 1966.2.6 index.html .................................................................. 1976.2.7 Boxen ......................................................................... 2066.2.8 HTML-Vorlagen für Module und Seiten ...................... 2106.2.9 Ausgabe der Inhalte des Content-Managers ................ 2186.2.10 Modifikationen mittels CSS ......................................... 2216.2.11 Anwendungsbeispiele ................................................. 230

786.book Seite 7 Freitag, 5. Februar 2010 10:29 10

Page 6: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

Inhalt

8

6.3 YAML für xt:Commerce VEYTON ............................................... 2386.3.1 Was ist YAML? ........................................................... 2396.3.2 Installation .................................................................. 2416.3.3 Besonderheiten .......................................................... 242

»One of my most productive days was throwing away 1,000 lines of code.«– Ken Thompson 251

7 Module und Funktionen entwickeln ...................................... 251

7.1 Grundlagen ................................................................................ 2517.1.1 Wie funktionieren Plugins? ......................................... 2527.1.2 Aufbau eines Plugins ................................................... 2537.1.3 XML-Installationsdatei ................................................ 2547.1.4 Pluginentwicklung – bestehende Objekte nutzen ......... 2627.1.5 Sprachen ..................................................................... 2657.1.6 Templates ................................................................... 265

7.2 Shopbereich erweitern ............................................................... 2667.2.1 Eigene Seiten (Pages) .................................................. 2667.2.2 Template-Ausgabe unterdrücken ................................ 2707.2.3 Realisierung von Boxen ............................................... 270

7.3 Administrationsbereich erweitern .............................................. 2777.3.1 Wie funktioniert das? .................................................. 2787.3.2 Grundgerüst einer Adminklasse ................................... 2787.3.3 Dropdown-Ressourcen ............................................... 2867.3.4 Adminmenü ................................................................ 290

7.4 Wichtige Hookpoints ................................................................. 2957.5 Beispielplugin – Product-Tagging ............................................... 297

7.5.1 Vorbereitung .............................................................. 2987.5.2 Struktur für Datenbank ............................................... 2987.5.3 Teil 1 – Shopseitige Eingabe ........................................ 3047.5.4 Teil 2 – Administrationsinterface ................................. 3147.5.5 Teil 3 – Produktliste im Admin erweitern .................... 3197.5.6 Teil 4 – Box mit Tagcloud und Page mit

relevanten Artikeln integrieren .................................... 325

»E-Commerce ohne hohe Automatisierung ist wie Autofahrenmit angezogener Handbremse – viel Rauch bei wenig Tempo.«– SoftENGINE 333

8 Mit anderen Programmen zusammenarbeiten ...................... 333

8.1 Content-Management-Systeme (CMS) ....................................... 3338.1.1 Export der Produktdaten in VEYTON .......................... 3348.1.2 Integration in TYPO3 .................................................. 335

8.2 Zahlungsabwicklung .................................................................. 3388.2.1 PayPal ......................................................................... 338

786.book Seite 8 Freitag, 5. Februar 2010 10:29 10

Page 7: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

Inhalt

9

8.2.2 Moneybookers ............................................................ 3418.2.3 Sofortüberweisung ...................................................... 3458.2.4 Saferpay ...................................................................... 3498.2.5 iclear ........................................................................... 353

8.3 Warenwirtschaft ........................................................................ 3568.3.1 VARIO FAKTURA ........................................................ 3568.3.2 BüroWARE .................................................................. 3638.3.3 Büro Plus NexT ........................................................... 3678.3.4 AFS-Software .............................................................. 3738.3.5 DATEV ........................................................................ 3788.3.6 actindo ....................................................................... 383

8.4 Web 2.0-Anwendungen ............................................................ 3898.4.1 Verlinkung von Produkten .......................................... 3918.4.2 Verlinkung des Shops .................................................. 395

»Der Auftritt eines weit überlegenen Konkurrenten in der Branche ist ein Mandat für einen, sich zu ändern. Mit dem fortzufahren, was bisher doch gut funktioniert hat, nützt dann nichts mehr.«– Dr. Andrew S. Grove 401

9 Zusatzmodule ......................................................................... 401

9.1 Multishop .................................................................................. 4019.2 Bonitätsabfrage .......................................................................... 4039.3 Altersverifikation ....................................................................... 4059.4 Cliplister .................................................................................... 4079.5 econda GmbH ........................................................................... 410

9.5.1 xt:Commerce und econda: eine erfolgreiche Partnerschaft .................................... 410

9.5.2 econda Shop Monitor ................................................. 4109.5.3 Integration des econda Shop Monitor ......................... 4149.5.4 econda Online Opinion ............................................... 4189.5.5 econda Test Suite ........................................................ 420

9.6 Google Analytics ........................................................................ 4229.6.1 Integration .................................................................. 4229.6.2 Auswertung ................................................................ 425

9.7 Blog ........................................................................................... 429

437

Anhang ....................................................................................... 437

A Featureliste xt:Commerce VEYTON 4.0 Enterprise ................................ 439A.1 Systemvoraussetzungen ............................................................. 439A.2 Systemweite Basisfeatures ......................................................... 440A.3 SEO-Funktionen ........................................................................ 441A.4 Mandantensystem ..................................................................... 442A.5 Templatesystem ......................................................................... 443

786.book Seite 9 Freitag, 5. Februar 2010 10:29 10

Page 8: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

Inhalt

10

A.6 Plugin-System ............................................................................ 443A.7 Produktkatalog .......................................................................... 447A.8 Export-Manager ........................................................................ 449A.9 Versandkostenberechnung ......................................................... 450A.10 Kundenverwaltung .................................................................... 451

B EULA .................................................................................................. 453C Variablen und Templates für den Export ............................................... 459

C.1 Variablen für den Export von Produkten .................................... 459C.2 Variablen für den Export von Bestellungen ................................ 461C.3 Export-Feeds ............................................................................. 464

D CD-ROM und VEYTON-Testversion ..................................................... 469

Index .......................................................................................................... 471

786.book Seite 10 Freitag, 5. Februar 2010 10:29 10

Page 9: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

11

»Der Unternehmer sieht Chancen, die andere nicht sehen. Er überwindet die Angst vor dem Neuen.«– Branco Weiss

1 Einführung

Der Markt für Softwarelösungen im Bereich E-Commerce hat gerade für die Ziel-gruppe kleine und mittlere Shops in den letzten zwei Jahren eine große Dynamikentwickelt. Neue Open-Source-Lösungen wurden veröffentlicht, und auchbekannte kommerzielle Lösungen legten ihren Quellcode offen und entwickeltenihre Produkte weiter. Auch das weitverbreitete xt:Commerce wurde mit der Ver-sion xt:Commerce VEYTON 4.0 weiterentwickelt, das Inhalt dieses Buches ist.Bevor wir Ihnen den Umgang und die Arbeit mit VEYTON 4.0 erklären, möchtenwir Ihnen in diesem einleitenden Kapitel einige grundlegende Dinge und Kon-ventionen erklären und einen Überblick über dieses Buch geben.

1.1 Einordnung von VEYTON

Im Bereich der Shopsoftware sind die Grenzen in den letzten Jahren klar abge-steckt gewesen. Im Bereich der Open-Source-Lösungen ist im deutschen Sprach-raum vor allem xt:Commerce verbreitet. Auch osCommerce, Zen-Cart oder diverseErweiterungen für die populärsten Content-Management-Systeme (CMS) wieJoomla VirtueMart oder die TYPO3-commerce-Erweiterung sind für kleinere undmittlere Shops verwendet worden. Verbreitung in diesem Bereich fanden aucheinige kommerzielle Lösungen wie OXID oder xanario.

Neue Projekte im Bereich E-Commerce wie die US-amerikanische EntwicklungMagento, aber auch das französische Projekt PrestaShop brachten eine neueDynamik in diesen Markt und ließen die Erwartungen und Anforderungen undsomit auch den Druck auf die Entwickler der bekannten, viel benutzten, abervielleicht schon etwas angestaubten Shopsysteme steigen, ihre Programme eben-falls weiterzuentwickeln.

Gerade im Bereich der Flexibilität, Wartbarkeit und Erweiterbarkeit wird sicht-bar, dass die gewachsenen Community-Projekte xt:Commerce bis Version 3 bzw.

786.book Seite 11 Freitag, 5. Februar 2010 10:29 10

Page 10: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

12

Einführung1

osCommerce einige Schwächen in der Architektur offenbaren, die zu Beginn die-ser Projekte aber noch nicht absehbar waren. Zusätzliche Funktionen können nurdirekt im Kernquellcode programmiert werden, sodass das System kaum nochwartbar ist, sobald eine gewisse Anzahl an Änderungen oder eingebauten Modu-len vorhanden ist. Jeder Anwender, der schon einmal versucht hat, mehr als vieroder fünf Module in beispielsweise die Produktinformationsseite einzubauen,wird wissen, wovon wir sprechen. Grundlegende Änderungen waren also drin-gend notwendig.

Während OXID seine Software mit einer Grundfunktionalität in Version 4 unterGPL-Lizenz stellte, wurde von den xt:Commerce-Entwicklern der umgekehrteWeg gewählt und eine Neuentwicklung unter einer eigenen Endnutzerlizenz ver-öffentlicht, und wenige Teile des Programms wurden verschlüsselt. Details zurLizenz und Verschlüsselung erfahren Sie in Kapitel 2, »xt:Commerce Shopsoft-ware«. Dennoch ist der Quellcode größtenteils offen und somit für Anpassungs-programmierung geeignet. Im Fokus der Entwicklung waren vor allem die soge-nannten Enterprise-Kunden. Funktionen wie beispielsweise Multishopfähigkeitund Pluginsystem belegen diese Vorgehensweise. Um der gestiegenen Nachfragenach Support nachzukommen, ist der von den Vorgängern bekannte forenba-sierte Support eingestellt und durch ein Ticketsystem ersetzt worden. Das Forumwird unter dem Motto »Nutzer helfen Nutzern« weiter betrieben.

Abbildung 1.1 VEYTON nach der Installation

786.book Seite 12 Freitag, 5. Februar 2010 10:29 10

Page 11: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

13

Aufbau des Buches 1.3

Mit der neuen Software xt:Commerce VEYTON 4 wurde ein Programm veröffent-licht, das auf einer modernen, objektorientierten, flexiblen Architektur basiert.Für die kundenorientierte Anpassung des Systems steht neben dem bereits ausxt:Commerce 3 bekannten Template-System auf Basis der Smarty TemplateEngine ein Pluginsystem mit Hookpoints-Konzept zur Verfügung, sodass indivi-duelle Anpassungen sauber möglich sind, sofern die Entwickler die Konventio-nen beachten. Es ist davon auszugehen, dass eine Vielzahl von zusätzlichenModulen und Templates in Zukunft zur Verfügung stehen werden.

1.2 Zielgruppe des Buches

Unser Buch richtet sich an alle, die mit dem xt:Commerce VEYTON einen Online-shop betreiben, administrieren, anpassen und erweitern wollen, also sowohl Shop-betreiber als auch Dienstleister, Entwickler und Designer. Wir haben es als umfas-sendes Nutzer- und Entwicklerhandbuch konzipiert. Es werden konkrete technischeLösungen für den Betrieb eines Shops auf VEYTON vorgestellt und bewusst Fragenaus dem Bereich Marketing ausgeblendet, aber dennoch werden Hilfsmittelbeschrieben, die beim Marketing hilfreich sind. Weiterhin zeigen wir Ihnen, wie Siemithilfe zusätzlicher Programme, die mit VEYTON zusammenarbeiten, ihreGeschäftsprozesse optimieren und somit Zeit, Arbeit und Geld sparen können.

Im ersten Teil des Buches werden vor allem Shopbetreiber und deren Mitarbeiterangesprochen, aber auch Entwickler, die von einem anderen System zu VEYTONwechseln oder zum ersten Mal mit einer Shopsoftware arbeiten. Wir erklären imersten Teil grundsätzliche Funktionen und Einstellungen. Mit diesem Wissen wirdes Ihnen möglich sein, einen Shop zu installieren, einzurichten und zu betreiben.

Mit dem daran anschließenden Teil möchten wir vor allem Entwickler und ambi-tionierte Shopbetreiber ansprechen, die den Shop über seine Standardfunktio-nen und -layouts hinaus anpassen möchten. Für Designer lohnt sich ein Blick indas Kapitel 6, »Design anpassen und Templates entwickeln«.

Im letzten Teil sollen noch zusätzliche Funktionen, Plugins und Module vorge-stellt werden, die Aufgabenstellungen lösen, die oft von Shopbetreibern gestelltwerden. Auch in diesem Teil des Buches sind alle Lesergruppen angesprochen.

1.3 Aufbau des Buches

Grundsätzlich steigt der Schwierigkeitsgrad des Buches zunächst von Kapitel zuKapitel. Während Sie in den Kapiteln 2 bis 5 ohne größere Programmierkennt-

786.book Seite 13 Freitag, 5. Februar 2010 10:29 10

Page 12: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

14

Einführung1

nisse auskommen, werden Sie vor allem in Kapitel 6 und 7 am besten folgen kön-nen, wenn Sie Kenntnisse in HTML, CSS und PHP haben. Für die darauf folgen-den Kapitel 8 und 9 sind Grundkenntnisse in diesen Sprachen hilfreich, damit Siedie Hintergründe nachvollziehen bzw. bei auftretenden Problemen selbst aufFehlersuche gehen können. Die Beherrschung der Programmiersprachen ist abernicht grundsätzlich erforderlich.

Wir haben uns als Ziel gesetzt, Ihnen folgendes Wissen in den einzelnen Kapitelnzu vermitteln:

In Kapitel 2, »xt:Commerce Shopsoftware«, möchten wir Ihnen das Shopsysteman sich vorstellen. Wir werden dabei auf Geschichte und Lizenzbedingungensowie Systemvoraussetzungen eingehen, um Ihnen zu zeigen, was VEYTON imAuslieferungszustand kann bzw. nicht kann.

Mit Kapitel 3, »VEYTON installieren«, bekommen Sie von uns eine detaillierteInstallationsanleitung, sodass Sie VEYTON auf Ihrem Server installieren können.Wir zeigen Ihnen Fallstricke bei der Installation sowie Lösungen für möglicheProbleme. Im letzten Schritt geben wir Ihnen Hilfen, wie Sie Ihre Daten ausxt:Commerce 3 in VEYTON migrieren.

Wie Sie einen Shop auf Basis von VEYTON grundsätzlich einrichten, zeigen wirIhnen in Kapitel 4, »Erste Schritte«, anhand einer einfachen Basiskonfiguration.

Abbildung 1.2 Administrationsoberfläche

In Kapitel 5, »Konfigurationseinstellungen«, steht die Einrichtung eines Shopsgemäß Ihren Bedürfnissen im Mittelpunkt. Dieses umfangreiche Kapitel zeigtIhnen, wie Sie Herr über die vielen Funktionen und Einstellungsmöglichkeiten

786.book Seite 14 Freitag, 5. Februar 2010 10:29 10

Page 13: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

15

Aufbau des Buches 1.3

werden, wie Sie Ihre Produktdaten pflegen, Ihre Kunden verwalten, Zahlungs-mittel und Versandkosten einrichten und vieles mehr.

Um Ihren Shop individueller zu gestalten, damit er sich von anderen Shopsabgrenzt und sein Wiedererkennungswert erhöht wird, ist es erforderlich, demShop ein neues Layout zu geben. Wie Sie dafür am besten vorgehen, zeigen wirIhnen in Kapitel 6, »Design anpassen und Templates entwickeln«.

Sollten Sie spezielle Anforderungen an den Shop haben, die noch nicht im Shopenthalten sind, müssen Sie VEYTON selbst anpassen. Wie Sie dazu richtig zusätz-liche Plugins erstellen und diese in den Shop integrieren und gleichzeitig dieUpdate-Fähigkeit des Shops wahren, werden wir Ihnen in Kapitel 7, »Moduleund Funktionen entwickeln«, zeigen.

Oft ist es erforderlich, dass Ihr Shop mit anderen Anwendungen interagieren solloder muss, beispielsweise mit einem Warenwirtschaftsprogramm oder einemZahlungsmittelanbieter. Auch Preissuchmaschinen oder Anwendungen, die imWeb 2.0 anzusiedeln sind, können mit Ihrem Shop Daten austauschen. Die Mög-lichkeiten der Integration anderer Anwendungen zeigen wir Ihnen in Kapitel 8,»Mit anderen Programmen zusammenarbeiten«.

Abbildung 1.3 Warenwirtschaft BüroWARE® xt:Commerce

786.book Seite 15 Freitag, 5. Februar 2010 10:29 10

Page 14: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

16

Einführung1

In Kapitel 9, »Zusatzmodule«, sind weitere Module des Shops Thema, die entwe-der zusätzlich erworben werden können oder bereits mitgeliefert werden. DieseModule benötigen Sie, wenn Ihre Anforderungen über den Funktionsumfang derStandardinstallation hinausgehen. VEYTON besitzt bereits einen umfassendenFunktionsumfang, und daher ist es möglich, bei entsprechender Lizenz mehrereShops aus einer Verwaltungsoberfläche zu betreiben. Die Einrichtung solch einerMultishoplösung zeigen wir Ihnen beispielsweise in diesem Kapitel.

Abbildung 1.4 Multishoplösung

1.4 Informationsquellen

Erste Anlaufstelle für Informationen rund um VEYTON ist natürlich die Seite derEntwickler www.xt-commerce.com. Dort bekommen Sie eine Demo-Version desShops, können Lizenzen erwerben, erhalten Support sowie autorisierte Zusatz-module und Templates.

Es gibt auch unter http://www.xt-commerce.com/blog/ einen Blog, auf dem die Ent-wickler Neuigkeiten, Plugins und aktuelle Informationen zur Software veröffent-lichen. Das Forum von xt:Commerce wird, wie eingangs bereits erwähnt, weiterbetrieben. Das öffentliche Forum, auch zu xt:Commerce 3, wird aber inzwischenvon den Entwicklern lediglich betreut, moderiert und zur Verfügung gestellt,aktiver Support durch die Entwickler findet nicht mehr statt.

786.book Seite 16 Freitag, 5. Februar 2010 10:29 10

Page 15: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

17

Informationsquellen 1.4

Abbildung 1.5 Entwicklerseite »xt-commerce.com«

Hilfreiche Informationen rund um das YAML-Template für VEYTON, das Sie imKapitel für die Template-Gestaltung kennenlernen werden, finden Sie auf derSeite www.zs-ecommerce.com. Weiterführende Informationen über das CSS/(X)HTML Framework YAML sowie ein entsprechendes Forum finden Sie unterwww.yaml.de sowie im Buch »CSS-Layouts« von Dirk Jesse, das ebenfalls beiGalileo Press erschienen ist.

786.book Seite 17 Freitag, 5. Februar 2010 10:29 10

Page 16: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

18

Einführung1

1.5 Danksagung der Autoren

Dieses Buch konnte nur mit der Hilfe vieler Personen realisiert werden, die inverschiedenen Bereichen uns Autoren stets zur Seite standen und somit direktund indirekt zum Erscheinen dieses Buches beigetragen haben.

Unser besonderer Dank gilt unserem Lektor Stephan Mattescheck, der vielGeduld und Verständnis im Laufe der Entstehung dieses Buches hatte, sowie demganzen Team von Galileo Press für die Unterstützung. Weiterhin danken wirunseren Kollegen bei der xt:Commerce GmbH und der Zerosoftware GbR, dieuns den Rücken freigehalten haben. Außerdem gilt unser Dank unseren Familienund Freunden, die ab und an etwas zu kurz gekommen sind. Abschließendbedanken wir uns beim Geschäftsführer der xt:Commerce GmbH, Mario Zanier,für die kooperative und enge Zusammenarbeit.

Astrid Zanier Björn Teßmann

786.book Seite 18 Freitag, 5. Februar 2010 10:29 10

Page 17: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

171

»Design is not just what it looks like and feels like. Design is how it works.«– Steve Jobs

6 Design anpassen und Templates entwickeln

Nachdem Sie mithilfe der vorherigen Kapitel Ihren Shop eingerichtet haben, istes Ihnen nun möglich, Produkte zu verkaufen. Allerdings sieht Ihr Shop noch auswie jede beliebige neue Shopinstallation auch, und er unterscheidet sich bis aufdie Produktbilder und Texte nicht von anderen Shops, die xt:Commerce VEY-TON benutzen und das Standard-Template verwenden.

Abbildung 6.1 VEYTON Standard-Template »xt_default«

786.book Seite 171 Freitag, 5. Februar 2010 10:29 10

Page 18: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

172

Design anpassen und Templates entwickeln6

Für das Design des Frontends sind Vorlagendateien verantwortlich, die zusam-mengefasst als Template bezeichnet werden und im gleichnamigen Ordner vonVEYTON gespeichert sind.

Natürlich ist jeder Shopbetreiber bemüht, seinen Shop einzigartig zu machenund von der breiten Masse abzuheben. Der Shop soll sich von der Konkurrenzunterscheiden, und durch Verwendung der eigenen Corporate Identity soll einWiedererkennungswert geschaffen werden. Neben der Programmierung vonneuen Modulen, worauf wir später zu sprechen kommen, ist die Anpassung desDesigns ein Mittel, den Shop individuell zu gestalten.

Sollte es Ihnen darum gehen, dass Ihnen das Standard-Template xt_default nichtgefällt, haben Sie auch die Möglichkeit, aus einer Vielzahl von Templates zu wäh-len, die Sie im xt:Commerce-Shop erwerben können. Möglicherweise dienenIhnen diese auch als Ausgangsbasis für eigene Anpassungen. Diese Templates las-sen sich schnell und einfach installieren. Eine entsprechende Anleitung liegt denTemplates jeweils bei.

Abbildung 6.2 VEYTON-Template-Shop

Das Template xt_default ist eine solide Grundlage für einen Shop. Es ist weitest-gehend standardkonform im Sinne der HTML- und CSS-Standards des W3C,basiert auf CSS, und es werden keine Tabellen für Layoutzwecke verwendet. Wir

786.book Seite 172 Freitag, 5. Februar 2010 10:29 10

Page 19: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

173

Smarty-Template-Engine 6.1

vermeiden es bewusst, das Wort tabellenfrei zu verwenden, denn an Stellen, inder eine Tabelle sinnvoll erscheint, z.B. beim Warenkorb, ist durchaus die Ver-wendung von HTML-Tabellen angebracht.

Möchten Sie aber wirklich etwas optisch Einzigartiges, ist es erforderlich, eineigenes Template zu entwickeln. Deshalb geben wir Ihnen einen Überblick überdie verwendeten Hilfsmittel zur Erstellung von VEYTON-Templates, erläuternIhnen die Struktur und Konzepte und geben Ihnen Hilfestellungen für die Anpas-sung des Templates.

Für dieses Kapitel müssen Sie ein wenig Rüstzeug mitbringen. Sie sollten Grund-kenntnisse in HTML und CSS haben. Kenntnisse in der Programmiersprache PHPsind hilfreich, um einige Hintergründe und Konzepte besser nachvollziehen zukönnen, sie sind aber nicht zwingend erforderlich. Sofern Sie nicht allzu kom-plexe Änderungen vorhaben, werden Sie nur HTML und CSS brauchen.

Zunächst werden wir auf die Smarty-Template-Engine eingehen, auf der die VEY-TON-Templates basieren. Anschließend werden wir Struktur und Anpassungs-möglichkeiten der Templates erläutern. Zu guter Letzt möchten wir Ihnen nocheine alternative Ausgangsbasis für selbst entwickelte Templates vorstellen. DieseAlternative könnte für Entwickler eine interessante Option sein, da sie auf deminzwischen bekannten und von vielen Entwicklern geschätzten HTML/CSS-Framework YAML basiert.

6.1 Smarty-Template-Engine

Bevor wir Ihnen das Template an sich vorstellen, ist es uns wichtig, Ihnen vorherdie Smarty-Template-Engine zu erläutern und Ihnen zu zeigen, wo die Vorteile inderen Verwendung liegen.

6.1.1 Was ist Smarty?

Aus vielen Foren und Kundengesprächen wissen wir, dass viele Shopbetreibervor Anpassungen im Template zurückschrecken. Die häufigste Antwort, wennwir nach dem Grund dafür fragen, ist, dass sie keine Kenntnisse von PHP haben.Smarty macht es aber möglich, dass Sie sich diese auch nicht zwingend aneignenmüssen. Natürlich ist ein Grundwissen in den Bereichen PHP und Programmie-rung im Allgemeinen sehr hilfreich im Umgang mit Smarty, aber es ist keinesfallsvon elementarer Bedeutung.

786.book Seite 173 Freitag, 5. Februar 2010 10:29 10

Page 20: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

174

Design anpassen und Templates entwickeln6

Abbildung 6.3 Smarty-Projektseite

Smarty ist eine quelloffene Template-Engine als PHP-Bibliothek. Es ist sozusageneine Klasse, die PHP um die Möglichkeit erweitert, die Ausgabe der Daten unab-hängig von deren Erzeugung zu pflegen und zu bearbeiten. Eine Template-Engine sorgt demnach dafür, dass die eigentliche Programmlogik, also im Fallvon VEYTON der PHP-Quellcode, und Ausgabe/Design getrennt voneinanderbearbeitet werden können.

Wenn Sie einige Grundprinzipien von Smarty verinnerlicht haben, werden Siefeststellen, wie hilfreich diese Erweiterung ist. Über Smarty gibt es bei Program-mierern verschiedene Meinungen, sowohl positive als auch negative. In unserenAugen ist es wichtig, dass VEYTON überhaupt eine Template-Engine besitzt, wasbei einigen ähnlichen Systemen nicht unbedingt der Fall ist. Neben der bereitserwähnten Trennung von Logik und Ausgabe/Design gibt es auch noch andereVorteile, die eine Nutzung von Smarty mit sich bringt:

786.book Seite 174 Freitag, 5. Februar 2010 10:29 10

Page 21: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

175

Smarty-Template-Engine 6.1

� Code und Layout können von verschiedenen Personen (beispielsweise Pro-grammierern und Grafikern) gleichzeitig bearbeitet werden.

� Sowohl PHP-Code als auch HTML-Code bleiben übersichtlich.

� Der Code ist wiederverwendbar. Sie müssen für dieselbe Anwendung miteinem anderen Layout nur den HTML-Code ändern.

� Mehrsprachigkeit kann einfacher realisiert werden.

� Smarty hat eigene Funktionen zur Ausgabe der Daten und eine eigene Fehler-behandlung.

� Designer können keine Fehler oder Sicherheitslücken in der Programmierlo-gik auslösen.

Smarty wurde für den professionellen Einsatz optimiert und enthält eine ArtCompiler, der die Ausgabe der Smarty-Templates vorbereitet und in einem Cachespeichert. Dadurch wird die Ausgabe stark beschleunigt.

Abbildung 6.4 Deutsche Smarty-Dokumentation

In der Literatur wird Smarty, wie wir finden, oft stiefmütterlich behandelt undgerade nur so weit erklärt, wie es nötig ist. Da VEYTON viele Konzepte und Funk-tionen von Smarty nutzt, gerade im Vergleich zum Vorgänger xt:Commerce 3,und wir diese Funktionen auch für Ihre eigene Arbeit für sinnvoll erachten,

786.book Seite 175 Freitag, 5. Februar 2010 10:29 10

Page 22: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

176

Design anpassen und Templates entwickeln6

möchten wir hier etwas detaillierter auf Smarty eingehen. Wir legen dabei aberden Schwerpunkt auf die Anwendung, da die Installation und die Einrichtungvon Smarty bereits mit der Installation von VEYTON abgeschlossen sind.

Es gibt sowohl eine brauchbare deutsche als auch eine englische Dokumentationauf der Projektseite www.smarty.net, wobei wir Ihnen raten, bei entsprechendenSprachkenntnissen die englischsprachige Dokumentation zu verwenden, weildort noch einige weitere zusätzliche Informationen zu finden sind, die bei derdeutschen Übersetzung anscheinend verloren gegangen sind. Sie können die Do-kumentation auch im PDF-Format herunterladen und als Handbuch ausdrucken.

Zunächst möchten wir Ihnen die graue Theorie anhand eines kleinen Beispiels inder Anwendung veranschaulichen.

6.1.2 Einführungsbeispiel für Smarty

Am Beispiel einer einfachen Zeichenkette auf der Produktinformationsseitemöchten wir Ihnen zeigen, wie diese Zeichenkette mit Smarty am Bildschirm aus-gegeben wird. Die Template-Datei für die Produktinformationsseite finden Sie,ausgehend vom Wurzelverzeichnis Ihres Shops, in der Datei /templates/xt_default/xtCore/product/product.html. Welche Vorlagen Sie in welchem Ordner fin-den, zeigen wir Ihnen detailliert in Abschnitt 6.2.2, »Bilder«.

Öffnen Sie die Datei product.html, dort finden Sie gleich in der ersten Spalte fol-genden Eintrag: <h1>{$products_name}</h1>. Der Ausdruck {$products_name}ist eine sogenannte Smarty-Variable, also ein Platzhalter, in dem der Produkt-name gespeichert ist. Neben der Variablen sehen Sie noch weitere Elemente, diedurch {} umschlossen werden. Genau wie die Smarty-Variablen erklären wirIhnen diese im nächsten Abschnitt.

Aufgrund der durchgängigen Objektorientierung von VEYTON erfolgt die Zuwei-sung von Smarty-Variablen mithilfe einer Funktion. Grundsätzlich und verein-facht erfolgt die Zuweisung durch den Aufruf der Methode assign eines Smarty-Objekts. Als erstes Attribut wird dabei der Name der Variablen, also im Beispielproducts_name, übergeben und als zweiter Wert der Wert, der beispielsweise ausder Datenbank kommt. Der Quellcode könnte dann in etwa so aussehen:

$smarty->assign('products_name',($product->data['products_name']));

Listing 6.1 Zuweisen einer Smarty-Variablen

786.book Seite 176 Freitag, 5. Februar 2010 10:29 10

Page 23: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

177

Smarty-Template-Engine 6.1

Abbildung 6.5 Quellcode der »product.html«

Um die Variable dann im Template auszugeben, muss an der Stelle, an der derProduktname erscheinen soll, die Variable durch {$products_name} aufgerufenwerden.

Dadurch kann der Designer diese Vorlagendatei anpassen und umgestalten, ohnedass er in der Programmlogik Änderungen machen muss. Der Programmierermuss ihm nur die Variable {$products_name} zur Verfügung stellen.

Aus diesem Abschnitt sollten Sie mitnehmen, dass mithilfe von Smarty im PHP-Quellcode Variable definiert werden, die Sie dann in die HTML-Vorlagen einset-zen können. Welche Variablen Ihnen zur Verfügung stehen und wo Sie die Vor-lagen dazu finden, werden wir Ihnen im weiteren Verlauf des Kapitels erklären.

6.1.3 Grundlegende Syntax und Variablen

Die größten Irritationen bei der Bearbeitung von VEYTON-Templates tretenunserer Meinung nach durch die Syntax von Smarty auf. Viele Nutzer kennen dieAuszeichnungs- und Beschreibungsprogrammiersprachen HTML und CSS undkönnen somit diesen Teil von HTML-Vorlagen verstehen, wissen aber mit denAnweisungen von Smarty nichts anzufangen. Wenn Sie einmal die Grundsyntaxkennengelernt haben, werden Sie sehen, dass kein »großer Zauber« dahinter-steckt, deshalb möchten wir Ihnen die Syntax von Smarty zunächst erläutern.

786.book Seite 177 Freitag, 5. Februar 2010 10:29 10

Page 24: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

178

Design anpassen und Templates entwickeln6

In der Regel werden die sogenannten Smarty-Tags in Dateien geschrieben, die imWesentlichen HTML-Dateien entsprechen. Ein Smarty-Tag beginnt, sofern wiebei VEYTON die Standardeinstellung genutzt wird, mit einer { und endet miteiner }. Innerhalb dieser Tags können verschiedene Inhalte und Funktionen vor-kommen, die wir Ihnen anschließend vorstellen möchten. Einer dieser Inhaltekönnen Smarty-Variable sein.

Smarty-Variable

Der gebräuchlichste Smarty-Tag ist vermutlich die Variable, die wir Ihnen im Bei-spiel bereits gezeigt haben. Diese Variablen werden im Quellcode mit Wertenbelegt und können dann entsprechend in die Vorlagen eingefügt werden. Bei derAusgabe des Textes werden diese Werte mit den tatsächlichen Informationenausgegeben. Diese Variablen können zum einen ganz einfache Variablen wie{$products_name} sein. Es gibt zum anderen aber auch mehrdimensionale Vari-ablen, die sogenannten Arrays, sowie Systemvariablen.

Eine mehrdimensionale Variable finden Sie beispielsweise, wenn Sie eine Vari-able für ein Produkt haben und diese weitere Informationen wie Preis, Name undBeschreibungstext hat. Diese Werte werden folgendermaßen aufgerufen:

{$product.name}

Listing 6.2 Aufruf einer mehrdimensionalen Variablen

Die einzelnen Werte können auch mithilfe von Smarty-Schleifen durchlaufen wer-den, wie wir Ihnen später noch zeigen werden. Eine Anwendung dafür finden Siebei der Auflistung der Produkte oder Unterkategorien einer Oberkategorie. Injeder Kategorie gibt es eine mehrdimensionale Variable mit allen Produkten undderen Eigenschaften und Informationen. Bei der Ausgabe wird jedes Produkt ein-mal durchlaufen, und dessen Informationen werden dabei ausgegeben.

Ein weiterer Sonderfall sind die reservierten Smarty-Systemvariablen, die Umge-bungsinformationen enthalten. Programmierer können mit deren Hilfe auf die PHP-Systemvariablen sowie auf die Umgebungsvariablen und Konstanten zugreifen.

Smarty-Variable bestimmen

Damit Sie die Templates nach Ihren Wünschen gestalten können, müssen Sie wissen,welche Variablen Sie überhaupt verwenden können. Zu einem können Sie natürlichin die Vorlagendateien schauen, welche Variablen benutzt werden, und diese ent-sprechend in der Vorlage anwenden. Manchmal gibt es aber auch Variablen, dieIhnen zwar zur Verfügung stehen, die aber noch nicht in der Vorlage genutzt werden.

786.book Seite 178 Freitag, 5. Februar 2010 10:29 10

Page 25: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

179

Smarty-Template-Engine 6.1

Abbildung 6.6 Smarty-Debug-Konsole

Ein sehr gutes Hilfsmittel zur Ermittlung der zur Verfügung stehenden Variablen istdie Debug-Konsole von Smarty. Sie rufen diese auf, indem Sie in die Vorlage, für dieSie die Variablen bestimmen wollen, das Tag {debug} einfügen. Rufen Sie im Brow-ser die Seite auf, die die Vorlage benutzt, öffnet sich ein Popup mit den entspre-chenden Smarty-Variablen, wie Sie in Abbildung 6.6 sehen. Möglicherweise wirddas Popup von einem Popup-Blocker blockiert, dann müssten Sie diesen für dieseSeite deaktivieren.

In der linken Spalte sehen Sie die Variablennamen, die Sie in der Vorlage einfügen,auf der rechten Seite sehen Sie den aktuellen Wert.

786.book Seite 179 Freitag, 5. Februar 2010 10:29 10

Page 26: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

180

Design anpassen und Templates entwickeln6

Smarty-Kommentare

Um Kommentare in die Vorlagen einzufügen oder auch um Inhalte auszukom-mentieren, gibt es die Möglichkeit, die Kommentarsyntax von Smarty zu verwen-den. Die Nutzung dieser Kommentare hat den Vorteil, dass die auskommentier-ten Inhalte nicht im Quelltext des Browsers ausgegeben werden. Im Gegensatzdazu erscheinen Kommentare im Quelltext, wenn Sie die Kommentarsyntax vonHTML nutzen.

Kommentare werden mithilfe der Smarty-Kommentarsyntax durch {* *} einge-schlossen, also beispielsweise:

{* Dies ist ein Kommentar *}

Listing 6.3 Smarty-Kommentar definieren

Sie können mithilfe dieser Funktion schnell Inhalte und Variable ausblenden.Möchten Sie sich auf der Produktinformationsseite die Beschreibung nicht anzei-gen lassen, fügen Sie einfach am Ende nach bzw. vor den geschweiften Klam-mern ein * ein, das könnte so aussehen:

{*$products_description*}

Listing 6.4 Einfaches Auskommentieren von Smarty-Variablen

Smarty-Parsing umgehen

In manchen Fällen ist es erforderlich, innerhalb der Vorlagen das Auswerten desQuellcodes durch Smarty zu verhindern, beispielsweise wenn die geschweiftenKlammern für andere Zwecke benötigt werden als für die Smarty-Syntax.Geschweifte Klammern werden unter anderem bei JavaScript-Funktionen oderCSS-Anweisungen verwendet. Schreiben Sie diese ohne Weiteres in die Vorlage,werden Sie zwangsläufig eine Fehlermeldung erhalten, da Smarty versucht, diegeschweiften Klammern als Beginn einer Variablen oder einer Funktion auszu-werten. Sie umgehen das mithilfe des literal-Befehls, der sich so anwendenlässt:

<style type="text/css">

{literal}

.meineKlasse {

border: 3px #000 solid;

}

{/literal}

</style>

Listing 6.5 Smarty-Parsing umgehen

786.book Seite 180 Freitag, 5. Februar 2010 10:29 10

Page 27: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

181

Smarty-Template-Engine 6.1

Dieses Beispiel dient nur zur Veranschaulichung, wie Sie geschweifte Klammernin den Vorlagen verwenden und das Smarty-Parsing umgehen können. Natürlichist uns bewusst, dass CSS extern eingebunden werden sollte oder im Kopf derHTML-Datei und dass dort sonst nichts anderes stehen sollte.

Kontrollstrukturen

Mit den Kontrollstrukturen können Sie Bedingungen für die Ausgabe von Quell-code formulieren. Es ist somit möglich, zu überprüfen, ob eine Variable einenbestimmten Wert hat oder aber auch ob sie gar keinen Wert hat. Kontrollstruk-turen beginnen immer mit einem if, gefolgt von einem Operator, also »istgleich«, »ist ungleich« »ist größer als«, und daran anschließend dem zu verglei-chenden Wert. Welche Operatoren zur Verfügung stehen, können Sie in derTabelle 6.1 sehen.

Wenn Sie überprüfen wollen, ob die Produktbeschreibung leer ist, könnte dasfolgendermaßen aussehen:

{if $products_description != ''}

<div class="prodDesc">{$products_description}</div>

{else}

Keine Produktbeschreibung vorhanden

{/if}

Listing 6.6 Beispiel für eine »if«-Abfrage

Operator Bedeutung

== ist gleich

!= ist ungleich

> größer als

< kleiner als

>= größer oder gleich

<= kleiner oder gleich

=== identisch

! Negation

% Modulo

Tabelle 6.1 Operatoren für Smarty (Auswahl)

786.book Seite 181 Freitag, 5. Februar 2010 10:29 10

Page 28: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

182

Design anpassen und Templates entwickeln6

Zunächst wird die Produktbeschreibung mit dem Operator != dahingehend über-prüft, ob sie einen Wert hat (der Operator != bedeutet ungleich). Sollte dieseBedingung wahr sein, wird die Beschreibung in einem div-Container mit derKlasse prodDesc ausgegeben. Würden Sie diese Überprüfung nicht vornehmen,würde der div-Container leer sein und möglicherweise einen ungewollten Zeilen-umbruch erzeugen, und der Code wäre nicht mehr valid. Anschließend wird mit{else} ein Verhalten festgelegt, wenn der Wert tatsächlich leer ist. Im Beispielwäre dies also einfach ein Text, der besagt, dass keine Produktbeschreibungvorhanden ist. Sie müssen aber nicht zwingend ein alternatives Verhalten mit{else} festlegen. Unbedingt erforderlich ist in diesem Fall dann allerdings wie-der das {/if} am Ende.

Schleifen

Wie bereits bei den Variablen erwähnt, besteht mit Smarty die Möglichkeit,mehrdimensionale Array auch mithilfe von Schleifen zu durchlaufen, das heißt,dass jeder Wert der entsprechenden Variablen einmal aufgerufen wird und dieentsprechenden Informationen des aktuellen Elements zur Ausgabe zur Verfü-gung stehen.

Als Beispiel soll Ihnen an dieser Stelle die Seite zur Auflistung der Unterkatego-rien einer Kategorie dienen, die oft als categorie listing bezeichnet wird. Sie fin-den die Vorlage dafür unter /templates/xt_default/xtCore/pages/categorie_listing/categorie_listing.html.

Abbildung 6.7 Auflistung von Unterkategorien

In dieser Datei finden Sie folgenden Code:

<p>

{foreach name=aussen item=module_data from=$categorie_listing}

<a href="{$module_data.categories_link}">{$module_data.categories_name}</a>,

{/foreach}

</p>

Listing 6.7 Vorlage für die Auflistung der Unterkategorien

786.book Seite 182 Freitag, 5. Februar 2010 10:29 10

Page 29: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

183

Smarty-Template-Engine 6.1

Mit foreach wird die Funktion bestimmt. Das Attribut name legt den Namen derSchleife fest, der für zusätzliche Funktionen genutzt wird, die wir Ihnen im wei-teren Verlauf des Kapitels noch zeigen werden. Mit item wird ein Variablennamefestgelegt, mit dem Sie innerhalb der Schleife auf die einzelnen Elemente zugrei-fen können. Als Letztes wird mit from die Variable angegeben, in der die Katego-rien mit ihren zusätzlichen Informationen gespeichert sind. In der Variablen$categorie_listing sind alle Unterkategorien gespeichert, inklusive Kategorie-name und Link zur Kategorie.

In dem Bereich bis zu {/foreach} können Sie jetzt den Quelltext schreiben, dersich für jede Kategorie wiederholt. Im Beispiel wird ein Link mit dem Kategorie-namen als Linktext erzeugt. Der Link wird durch die Variable {$module_data.categories_link} beschrieben, der Kategoriename mit {$module_data.categories_name}. Wie Sie sehen können, setzen sich die Variablennamen ausdem angegebenen Namen unter item und der entsprechenden Variable zusam-men. Wie wir Ihnen bereits gezeigt haben, lassen sich auch weitere Informatio-nen einfügen, so könnten Sie sich beispielsweise mit {$module_data.categories_description} die Kategoriebeschreibung der Unterkategorien ausgeben lassen.Weitere mögliche Variablen finden Sie in der Smarty-Debug-Konsole, wie inAbbildung 6.8 abgebildet.

Weiterhin besteht die Möglichkeit, bestimmte Informationen innerhalb derSchleifen zu bestimmen und zu verwenden. Mithilfe von {$smarty.foreach.NAME.iteration} können Sie bestimmen, in welchem Schleifendurchlauf Sie sichgerade befinden, wobei Sie für NAME den Namen eingeben müssen, den Sie beider Definition der Schleife angegeben haben, im Beispiel demnach {$smarty.foreach.aussen.iteration}. Es wird der Wert des aktuellen Schleifendurchlaufszurückgegeben, beginnend mit 1. Fragen Sie mit {$smarty.foreach.aussen.index} die Werte ab, wird bei 0 begonnen. Eine einfache Anwendung für dasBeispiel wäre in Verbindung mit den Kontrollstrukturen aus dem vorherigenAbschnitt das Einfügen eines Umbruchs nach drei Kategorien:

{if $smarty.foreach.aussen.iteration == 3}<br />{/if}

Listing 6.8 Beispiel für »iteration«

Weiterhin können Sie mit {$smarty.foreach.aussen.first} oder {$smarty.foreach.aussen.last} überprüfen, ob Sie im ersten bzw. im letzten Durchlaufder Schleife sind. Sollten Sie diese Funktion in einer anderen Schleife verwen-den, müssen Sie aussen gegen den Namen der Schleife tauschen, die Sie bei derDefinition verwendet haben bzw. die vom Programmierer verwendet wurde. AlsWert wird entsprechend true oder false zurückgegeben.

786.book Seite 183 Freitag, 5. Februar 2010 10:29 10

Page 30: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

184

Design anpassen und Templates entwickeln6

Abbildung 6.8 Mögliche Variable zur Ausgabe

Eine gute Anwendung dafür finden Sie wieder in der Kategorieauflistung,schauen Sie sich noch einmal den Quellcode genauer an:

<p>{foreach name=aussen item=module_data from=$categorie_listing}<a href="{$module_data.categories_link}">{$module_data.categories_name}</a>,{/foreach}</p>

Listing 6.9 Vorlage für die Auflistung der Unterkategorien

So wie der Quellcode jetzt ist, wird auch beim letzten Durchlauf der Schleife einKomma eingefügt. Möchten Sie dieses letzte Komma nicht haben, können Sie dasGanze so modifizieren:

786.book Seite 184 Freitag, 5. Februar 2010 10:29 10

Page 31: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

185

Smarty-Template-Engine 6.1

{foreach name=aussen item=module_data from=$categorie_listing}

<a href="{$module_data.categories_link}">{$module_data.categories_name}</a>{if $smarty.foreach.aussen.last != true}, {/if}

{/foreach}

Listing 6.10 Anpassung der Vorlage für die Auflistung der Unterkategorien

Diese Modifikation überprüft bei jedem Durchlauf, ob es der letzte Durchlauf ist.Ist das nicht der Fall, wird das Komma gesetzt. Wenn Sie als Letztes noch amEnde einen Punkt setzen wollen, könnten Sie mit {else} das Ganze noch erwei-tern:

{foreach name=aussen item=module_data from=$categorie_listing}

<a href="{$module_data.categories_link}">{$module_data.categories_name}</a>{if $smarty.foreach.aussen.last != true}, {else}.{/if}

{/foreach}

Listing 6.11 Beispiel für die Verwendung von »last«

Als Letztes wäre noch total zu nennen, diese Variable gibt Ihnen die gesamteAnzahl an Schleifendurchläufen zurück.

Mit diesen Schleifenfunktionen haben Sie ein umfangreiches Werkzeug zur Ver-fügung, um innerhalb der Schleifen verschiedene Darstellungsmöglichkeiten zurealisieren. Sie können beispielsweise spezielle Klassen für das erste oder letzteElement definieren und diese Klasse dann mit CSS formatieren. Wenn Sie dieseFunktionen in der Smarty-Dokumentation nachschlagen, werden Sie feststellen,dass dies eine der Stellen ist, bei denen die englische Ausgabe um einiges aus-führlicher ist als die deutsche.

6.1.4 Variablenmodifikatoren

Eine nützliche Funktion von Smarty sind die Variablenmodifikatoren, mit derenHilfe Sie die Werte der Variablen vor der Ausgabe modifizieren können. Die Syn-tax für die Modifikatoren ist immer gleich. Sie fügen ein | (Pipe-Zeichen) an dieVariable. Die Modifikatoren können mittels Parameter beeinflusst werden, Para-meter werden mit einem : von dem Modifikatorennamen getrennt.

Möchten Sie beispielsweise die Produktbeschreibung auf 50 Zeichen begrenzen,müssen Sie die Ausgabe auf der Vorlagenseite folgendermaßen anpassen:

{$PRODUCTS_DESCRIPTION|truncate:50:""}

Listing 6.12 Produktbeschreibung auf 50 Zeichen begrenzen

786.book Seite 185 Freitag, 5. Februar 2010 10:29 10

Page 32: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

186

Design anpassen und Templates entwickeln6

Ein Anwendungsfeld dafür ist beispielsweise, wenn Sie auf der Produktüber-sichtsseite (product_listing-Modul) eine Art Teaser, aus Gründen der Übersicht-lichkeit allerdings nicht die komplette Produktbeschreibung anzeigen lassenmöchten. Lässt man den letzten Parameter "" weg, werden drei Punkte an dasEnde der gekürzten Zeichenkette gesetzt.

Eine weitere interessante Funktion von Smarty ist replace. Mit dieser Funktionist es Ihnen möglich, eine Smarty-Variable nach einer Zeichenkette zu durchsu-chen und durch eine andere Zeichenkette zu ersetzen. Angenommen, Sie möch-ten nach jedem Punkt in der Produktbeschreibung einen HTML-Zeilenumbrucheinfügen, müssen Sie die Variable etwas modifizieren:

{$PRODUCTS_DESCRIPTION|replace:".":".<br />"}

Listing 6.13 Anwendung von »replace«

Sie können replace nutzen, um Wörter bzw. Zeichenketten zu entfernen, zu ersetzenoder zu erweitern. Möchten Sie beispielsweise in einer Zeichenkette, die in der Vari-ablen {$price} gespeichert ist, das Wort nur fett darstellen können, lautet der Variab-lenaufruf {$price|replace: "nur":"<strong>nur</strong>"}. Möchten Sie hinge-gen das nur entfernen, lautet der Aufruf {$price|replace:"nur":""}.

Einen Überblick über einige Modifikatoren liefert Ihnen die Tabelle 6.2.

Hinweis zu »truncate«

Achten Sie bei der Verwendung von truncate darauf, dass in der Variablen, diegekürzt werden soll, kein HTML enthalten ist. Zu einem werden die HTML-Tags zurBestimmung der Stelle für das Begrenzen der Zeichenkette mit eingerechnet, zumanderen werden möglicherweise geöffnete HTML-Tags nicht mehr geschlossen.Dadurch ist Ihr Quellcode nicht mehr valid, und es kann zu Darstellungs- und Forma-tierungsfehlern kommen.

Modifikator Beschreibung

capitalize Anfangsbuchstaben jedes Wortes werden großgeschrieben.

count_characters Gibt die Anzahl der Buchstaben einer Variablen zurück.

count_words Gibt die Anzahl der Wörter zurück.

date_format Formatiert ein Datum.

lower Alle Zeichen der Variablen werden kleingeschrieben.

replace Ersetzt eine Zeichenkette gegen eine andere.

Tabelle 6.2 Smarty-Modifikatoren (Auswahl)

786.book Seite 186 Freitag, 5. Februar 2010 10:29 10

Page 33: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

187

VEYTON-Templates 6.2

6.1.5 Zusätzliche Smarty-Funktionen

Smarty besitzt auch eine Schnittstelle, die es erlaubt, eigene Funktionen undModifikatoren zu erstellen. Die Entwickler von VEYTON haben genau das getanund Smarty weitere Funktionen hinzugefügt. Leider sind diese Funktionen ver-schlüsselt, und die Attribute der Funktionen lassen sich derzeit nur durch Beob-achtung im Template erkennen. Einige dieser Funktionen wie img, box odercontent werden im weiteren Verlauf des Kapitels vorgestellt.

Mit entsprechenden Programmierkenntnissen in PHP können Sie Smarty umweitere Funktionen erweitern und weitere Modifikatoren und Funktionen pro-grammieren. Die Erweiterungsprogrammierung im Detail zu erklären würde indiesem Buch zu weit führen. Interessierte Entwickler finden in der Smarty-Doku-mentation dazu eine umfassende Darstellung.

6.2 VEYTON-Templates

Nachdem wir Ihnen Smarty als Grundlage erklärt haben, möchten wir Ihnen jetztdas Template-Konzept erläutern und dabei insbesondere auf dessen Struktur ein-gehen, um Ihnen ein Gefühl dafür zu geben, welche Funktionen und Inhalte Siemodifizieren können und wie Sie diese finden. Anschließend gehen wir auf denHTML-Quellcode ein. HTML mit den entsprechenden Tags und deren Klassenund IDs sind Voraussetzung, um das Template mithilfe von CSS optisch umzuge-stalten. Die Gestaltung mit CSS wird im Anschluss daran erklärt.

6.2.1 Buttons

Damit Sie nicht für jede verwendete Sprache und jeden Button-Text einen sepa-raten Button erstellen müssen, kann VEYTON aus Grafikvorlagen die Buttons mitden entsprechenden Texten aus der Sprachverwaltung selbst erzeugen. Sie müs-sen lediglich zwei Grafiken zur Verfügung stellen und die entsprechenden Texte

strip Mehrfache Leerzeichen, Zeilenumbrüche und Tabulatoren wer-den durch Leerzeichen oder alternative Zeichenketten ersetzt.

strip_tags Entfernt HTML-Tags aus einer Variablen.

truncate Kürzt eine Zeichenkette.

upper Alle Zeichen werden großgeschrieben.

Modifikator Beschreibung

Tabelle 6.2 Smarty-Modifikatoren (Auswahl) (Forts.)

786.book Seite 187 Freitag, 5. Februar 2010 10:29 10

Page 34: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

251

»One of my most productive days was throwing away 1,000 lines of code.«– Ken Thompson

7 Module und Funktionen entwickeln

Bevor Sie dieses Kapitel lesen, möchten wir Sie darauf aufmerksam machen, dasshier Kenntnisse und Erfahrungen im Bereich objektorientierter Programmierungmit PHP5 vorausgesetzt werden. Bringen Sie diese Voraussetzungen nicht mit,empfehlen wir Ihnen, sich zuvor erst einmal in dieses Thema einzuarbeiten.

In diesem Kapitel möchten wir Ihnen anhand eines Beispiels näher erläutern, wieSie eigene Module und Anpassungen für VEYTON entwickeln bzw. vornehmenkönnen. Beginnen werden wir mit den Grundlagen, wie Plugins funktionierenund welchen Aufbau sie besitzen. Daran anschließend werden wir auf die Instal-lationsdatei und die eigentliche Pluginentwicklung eingehen. Ein weiteres wich-tiges Thema, das wir behandeln werden, ist die Erweiterung des Administrati-onsbereichs. Als vorletzten Punkt werden wir noch die wichtigsten Hookpointsfür die Pluginentwicklung anführen.

Abschließend zeigen wir Ihnen, wie Sie die zuvor erörterte Theorie in einem Bei-spiel für Product-Tagging praktisch umsetzen können.

7.1 Grundlagen

Mit xt:Commerce VEYTON 4 wurde erstmals ein vollständiges Pluginkonzept indie xt:Commerce-Shoplösung integriert, das nicht nur für Standarderweiterun-gen verwendet werden kann, sondern ebenfalls dazu genutzt wird, um eigeneÄnderungen am Shop schnell und vor allem updatesicher durchzuführen.

Der große Vorteil, den Ihnen diese Software bietet, besteht darin, dass Sie jeder-zeit die Möglichkeit haben, den Kern des Shopsystems unabhängig updaten oderupgraden zu können und neue Funktionen per Knopfdruck im System verfügbarzu machen. In der alten xt:Commerce Version 3 musste dies noch durch manuel-les Editieren der Systemdateien vollzogen werden, was den Nachteil hatte, dass

786.book Seite 251 Freitag, 5. Februar 2010 10:29 10

Page 35: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

252

Module und Funktionen entwickeln7

ein Update des Shops nicht ohne Überprüfung aller geänderten Dateien durchge-führt werden konnte.

In VEYTON 4 sind in der Programmierung von Individualanpassungen sowie beider Zuschaltung und Implementierung von Plugins keine Manipulationen amQuellcode mehr nötig. Plugins und Erweiterungen lassen sich in Sekunden-schnelle installieren, aktivieren, einstellen und genauso schnell wieder restlosaus dem Shopsystem entfernen.

Es sind in der Grundversion von VEYTON 4 bereits sämtliche Plugins enthalten,die einen professionellen Shopbetrieb ermöglichen, sowie Zusatzfeatures wie dieAnbindung an externe Anbieter wie Cliplister, Google Analytics, PayPal, Money-bookers, CleverReach und viele mehr.

Zusammengefasst folgen hier die wichtigsten Vorteile des Pluginsystems:

� Der Systemcore bleibt unberührt von Modulen bzw. Plugins.

� Es sind keine Änderungen am Shopcode mehr erforderlich, um ein Moduleinzubauen.

� Der Shopcode ist jederzeit aktualisierbar, ohne wie früher Anpassungen imCode wiederholen zu müssen.

� Plugins sind sofort und ohne Rückstände per Knopfdruck deinstallierbar.

� Plugins sind mit Rechtesystem und Mandanten gekoppelt.

� Plugins können gezielt für Subshops aktiviert werden und können natürlichauch für jeden Mandanten unterschiedliche Einstellungen aufweisen.

7.1.1 Wie funktionieren Plugins?

Hookpoints sind sogenannte Einstiegspunkte in den Systemcode, bei dem einCode ausgeführt werden kann.

Das System macht an sich nichts anderes, als PHP-Code genau an dieser Stelleauszuführen, und zwar so, als hätten Sie den zusätzlichen Code selbst an dieseStelle kopiert. Die Erweiterung über dieses System hat somit den großen Vorteil,dass Sie den Systemcode schnell und einfach erweitern können, ohne eine Dateiselbst anzufassen und auch ohne dass sich die Datei selbst verändert.

Im PHP-Code sieht ein Hookpoint folgendermaßen aus:

($plugin_code = $xtPlugin->PluginCode('javascript.php:bottom')) ? eval($plugin_code) : false;

Listing 7.1 Beispiel für einen Hookpoint

786.book Seite 252 Freitag, 5. Februar 2010 10:29 10

Page 36: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

253

Grundlagen 7.1

Relevant für Ihre Programmierung ist hierbei die Bezeichnung des Hookpointsinnerhalb der Klammern, in unserem Beispiel wäre dies javascript.php:bottom.

Den Hookpoint javascript.php:bottom finden Sie z.B. in der Datei xtCore/java-script.php. Er ermöglicht das Laden von eigenen JavaScript-Files.

Um in diesem Fall eine eigene JavaScript-Datei in VEYTON zu integrieren, kön-nen Sie folgenden Code an dieser Stelle ausführen lassen:

echo '<script type="text/javascript" src="'._SYSTEM_BASE_URL . _SRV_WEB.'plugins/main_plugin/javascript/plugin.js"></script>';

Listing 7.2 Einfügen einer JavaScript-Datei über einen Hookpoint

Anstatt dass Sie diesen Code nun direkt in die Datei kopieren müssen, wird die-ser mithilfe eines Plugins und dessen XML-Datei im System registriert und ausge-führt:

<code>

<hook>javascript.php:bottom</hook>

<phpcode><![CDATA[

echo '<script type="text/javascript" src="'._SYSTEM_BASE_URL . _SRV_WEB.'plugins/main_plugin/javascript/plugin.js"></script>';

]]>

</phpcode>

<order>1</order>

<active>1</active>

</code>

Listing 7.3 Ausführen eines Hookpoints

Mehr als 1.000 Hookpoints sind in xt:Commerce VEYTON bereits eingebaut undstehen Ihnen somit für einfache und schnelle Erweiterungen des Systems zurVerfügung.

7.1.2 Aufbau eines Plugins

Ein Plugin besteht prinzipiell aus einem Unterverzeichnis in plugins/ und mussmindestens eine .xml-Datei für die Installation besitzen, weitere Ordner bzw.Dateien sind optional.

In Tabelle 7.1 führen wir auf, wie die Dateistruktur eines Plugins aussieht undwelchen Zweck die Dateien erfüllen.

786.book Seite 253 Freitag, 5. Februar 2010 10:29 10

Page 37: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

254

Module und Funktionen entwickeln7

Beispielsweise würde es ausreichen, ein Plugin namens test_plugin mit folgendenOrdnern und Dateien zu erstellen:

� plugins/test_plugin/

� plugins/test_plugin/installer

� plugins/test_plugin/installer/test_plugin.xml

7.1.3 XML-Installationsdatei

Da die XML-Datei des Plugins von besonderer Bedeutung ist, werden wir nunetwas detaillierter auf sie eingehen. Über die XML-Datei wird nämlich ein Pluginautomatisch installiert, und alle notwendigen Parameter bzw. Konfigurationenwerden vom xt:Commerce VEYTON-Pluginsystem automatisch erzeugt.

Diesen Vorgang, wie ihn Abbildung 7.1 zeigt, sehen Sie bei der Installation einesPlugins.

Ordner/Datei Zweck Benötigt

plugin_name/installer/ Beinhaltet die XML-Dateien für die Installation eines Plugins.

ja

plugin_name/installer/plugin_name.xml Zentrale XML-Datei des Plug-ins. Beinhaltet alle Informatio-nen für die Installation und wird vom System bei der Installation abgearbeitet.

ja

plugin_name/classes/ PHP-Klassen eines Plugins nein

plugin_name/images/ Bilder für Frontend und Backend

nein

plugin_name/templates/ Smarty-Templates für Pages nein

plugin_name/templates/boxes Smarty-Templates für Boxen nein

plugin_name/pages/ PHP-Dateien für Pages nein

plugin_name/css/ CSS-Dateien eines Plugins nein

plugin_name/javascript/ JavaScript-Dateien/libraries nein

plugin_name/boxes/ PHP-Dateien für Boxen nein

plugin_name/callback/class.callback.php Callback-Datei für Zahlungs-systeme

nein

Tabelle 7.1 Dateistruktur eines Plugins

786.book Seite 254 Freitag, 5. Februar 2010 10:29 10

Page 38: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

255

Grundlagen 7.1

Abbildung 7.1 Installation eines Plugins über den Administrationsbereich

Mit dieser zentralen Datei können Sie Datenbankstrukturen erzeugen oder ver-ändern, Konfigurationsinterfaces für das Plugin automatisch generieren lassen,neue Sprachvariablen hinzufügen und bestehende Funktionen im Shop erwei-tern oder auch komplett verändern.

Der Aufbau einer Plugin-XML-Datei sieht wie folgt aus:

<xtcommerceplugin>

/**

title = Name des Plugins (wird Adminbereich angezeigt)

*/

<title>Mein Test-Plugin</title>

/**

version = Angezeigt Version des Plugins im Adminbereich

*/

<version>1.0.0</version>

/**

code = Plugincode, Systembezeichnung des Plugins (z.B. plg_testplugin), code ist zugleich auch die Vorgabe für den Verzeichnisnamen des Plugins und den Namen der Installationsdatei. z.B. plg_testplugin/installer/plg_testplugin.xml

*/

<code>plugin_code</code>

786.book Seite 255 Freitag, 5. Februar 2010 10:29 10

Page 39: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

256

Module und Funktionen entwickeln7

/**

url = URL des Pluginherstellers (wird im Adminbereich angezeigt)*/

<url>http://www.xt-commerce.com</url>

/**

icon = Logo des Plugins, liegend im Plugin-Verzeichnis images/ (wird im Adminbereich angezeigt)

*/

<icon>logo.gif</icon>

/**

type = Klasse eines Plugins für die Sortierung im Adminbereich. Mögliche Klassen sind z.B. payment, shipping, marketing, erp etc. Die Wahl der Klasse ist frei.

*/

<type>Plugin Klasse/Type</type>

/**

Block für die Überprüfung von Schreibrechten auf Dateien/Ordner bei der Installation eines Plugins

*/

<permission_check />

/**

Anweisungen, welche bei Installation ausgeführt werden (z.B. Anlegen von Tabellen)

*/

<sql_install />

/**

Anweisungen, welche bei der Installation ausgeführt werden

*/

<sql_uninstall />

/**

Block zur Erzeugung von Konfigurationseinstellungen eines Plugins

*/

<configuration/>

786.book Seite 256 Freitag, 5. Februar 2010 10:29 10

Page 40: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

257

Grundlagen 7.1

/**

Block zum Anlegen von Text-Phrasen

*/

<language_content/>

/**

Block für Code-Fragmente zur Ausführung in Hookpoints

*/

<plugin_code/>

</xtcommerceplugin>

Listing 7.4 Aufbau einer Plugin-XML-Datei

Anschließend gehen wir nun näher auf die fünf angegebenen Teile des XML-Auf-baus der Installationsdatei ein und werden auch jeweils ein Beispiel zur Umset-zung geben.

Block permission_check

Mithilfe des Blocks permission_check kann bei der Installation eines Pluginsgeprüft werden, ob bestimmte Dateien oder auch Ordner vom System beschreib-bar sind.

Sobald eine der angegebenen Ressourcen nicht beschreibbar ist, wird die Instal-lation des Plugins abgebrochen, und dem Benutzer wird angezeigt, welche Ord-ner bzw. Dateien noch Schreibrechte benötigen. Die folgenden Zeilen zeigeneinen beispielhaften Aufbau des permission_check-Blocks:

<permission_check>

<resource>plugins/mein_uplugin/tmp/logdatei.txt</resource>

<resource>plugins/mein_uplugin/tmp/images</resource>

</permission_check>

Listing 7.5 Block permission_check

Block sql_install/uninstall

Die zwei Blöcke sql_install und sql_uninstall können dafür genutzt werden,eigene Datenbanktabellen anzulegen oder auch bestehende Tabellen zur Erweite-rung neuer Felder zu erzeugen. Der Inhalt dieser beiden Blöcke wird als PHPgeparst, das heißt, es kann auch beliebiger PHP-Code ausgeführt werden. DieInhalte aus sql_install werden bei der Installation und die aus sql_uninstallbei der Deinstallation des Plugins ausgeführt.

786.book Seite 257 Freitag, 5. Februar 2010 10:29 10

Page 41: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

258

Module und Funktionen entwickeln7

Für das fehlerfreie Hinzufügen bzw. Entfernen neuer Felder in bestehende bzw.aus bestehenden Tabellen steht folgende Funktion zur Verfügung:

$this->_FieldExists('feldname','name_der_tabelle');

Bei Vorhandensein des Feldes wird true zurückgegeben und wenn es nicht vor-handen ist, false, beides boolean.

Als Beispiel erzeugen wir das Feld allow_newsletter INT(0) in der Kunden-tabelle und entfernen dieses auch wieder bei der Deinstallation. Bei beiden Ak-tionen überprüfen wir auch, ob das Feld existiert, um einen SQL-Fehler zu ver-meiden:

<db_install><![CDATA[

// überprüfen, ob Datenbank-Feld noch nicht vorhanden ist

if (!$this->_FieldExists('allow_newsletter',TABLE_CUSTOMERS))

$db->Execute("ALTER TABLE ".TABLE_CUSTOMERS." ADD `allow_newsletter` INT( 1 ) NOT NULL DEFAULT '0';");

]]></db_install>

<db_uninstall><![CDATA[

// überprüfen, ob Datenbank-Feld vorhanden

if ($this->_FieldExists('allow_newsletter',TABLE_CUSTOMERS))

$db->Execute("ALTER TABLE ".TABLE_CUSTOMERS." DROP `allow_newsletter`");

]]></db_uninstall>

Listing 7.6 Block sql install/uninstall

Block configuration

Der Block configuration erzeugt automatisch eine Konfigurationsmaske für IhrPlugin, die dem Shopbetreiber unter Plugin Bearbeiten angezeigt wird.

Als Entwickler können Sie somit einfach und schnell Eingabemasken für die Kon-figuration des Plugins erstellen und diese bei Bedarf auch schon bei der Installa-tion mit Standardwerten befüllen.

Der Aufbau des Tags sieht wie folgt aus:

<configuration>

/**

config-Block, kann mehrfach in <configuration> vorkommen

*/

<config>

786.book Seite 258 Freitag, 5. Februar 2010 10:29 10

Page 42: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

259

Grundlagen 7.1

/**Variable, welche angelegt werden soll (php define)Bitte wählen Sie einen eindeutigen Namen, Plugin-keys können nur einmal definiert werden.*/<key>PLUGIN_CONF_KEY</key>

/**Default-Wert des Feldes nach Installation des Plugins*/<value>DEFAULT WERT</value>

/**Darstellung des Feldes*/

<type>FELD ART (textfield, dropdown, textarea)</type>

/**Muss angeben werden, wenn type = Dropdown.Bei anderen Feldtypen kann URL-Tag komplett entfernt werden.*/<url>Dropdown Source</url>

<de> <title>FELDNAME (deutsch)</title> </de> <en> <title>FELDNAME (englisch)</title> </en></config></configuration>

Listing 7.7 Block configuration

Mögliche Feldtypen für den Parameter <type> sind in Tabelle 7.2 dargestellt.

Feldtyp Erklärung

Textarea mehrzeiliges Textfeld

Textfield einzeiliges Eingabefeld (Standard)

Status Checkbox

Dropdown Dropdown-Feld mit Werten, die über die Dropdown-Source (URL) geladen werden

Tabelle 7.2 Feldtypen für »<type>«

786.book Seite 259 Freitag, 5. Februar 2010 10:29 10

Page 43: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

260

Module und Funktionen entwickeln7

Block language_content

Im Block language_content können Sie Sprachvariable erzeugen, die Sie in IhrenPlugins und auch in Templates verwenden können. Dadurch können Sie auch IhrPlugin für mehrsprachige Systeme zur Verfügung stellen.

Dieser Block kann weiter dazu genutzt werden, um ein Plugin zu erstellen, dasnur aus Sprachvariablen besteht, um Ihren Shop mit eigenen Texten persönlicherzu gestalten und dennoch sicher für Updates zu machen.

Der Vorteil gegenüber der manuellen Anlage von Sprachvariablen über denAdministrationsbereich liegt bei der Lösung über ein Plugin auch in der Update-sicherheit und Übersichtlichkeit Ihrer Anpassungen. Hier sehen Sie ein Beispielfür den Aufbau:

<language_content>

/**

phrase-Block, kann mehrfach in <language_content> vorkommen

*/

<phrase>

/**

Geben sie hier eine eindeutige Bezeichnung Ihrer Phrase an.

Beachten Sie, dass ein Phrasen-Key nur einmal pro Sprache vorkommen darf. Wählen Sie daher am besten Bezeichnungen, die auch Ihren Pluginnamen beinhalten.

*/

<key>MEIN_PLUGIN_PHRASE_TITEL</key>

/**

Sprachbereich für die Verwendung

store = Verwendung im Frontend

admin = Verwendung im Backend

both = Variable für Front- sowie Backend

*/

Tipps zur Verwendung

PLUGIN_CONF_KEY kann direkt in PHP-Dateien als PHP-Konstante verwendet wer-den (z.B. echo PLUGIN_CONF_KEY;). In Templates können die Variablen über dasSmarty-Objekt angesprochen werden, z.B.:

{if $smarty.const.PLUGIN_CONF_KEY eq 'true'}

Hello World

{/if}

786.book Seite 260 Freitag, 5. Februar 2010 10:29 10

Page 44: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

261

Grundlagen 7.1

<class>store</class>

<de>

<value>Ihre Phrase (Deutsch)</value>

</de>

<en>

<value>Your Phrase (English)</value>

</en>

</phrase>

</language_content>

Listing 7.8 Beispiel zum Block language_content

Eine so angelegte Phrase können Sie in jedem beliebigen HTML-Template überden Befehl {txt key=MEIN_PLUGIN_PHRASE_TITEL} ausgeben lassen. In PHP-Codeist diese ebenfalls als Konstante verfügbar.

Bei der Verwendung in Templates über den txt-Tag wird auch automatisch dierichtige Bezeichnung der jeweiligen Sprache geladen.

Block plugin_code

Im Block plugin_code wird schlussendlich definiert, welche Anweisungen (PHP-Code) an welcher Stelle im System ausgeführt werden sollen.

Für die Erweiterung des Systems ist dies der wichtigste Abschnitt, da Sie hierbestehenden Code im System erweitern und funktionelle Änderungen realisierenkönnen.

Dadurch dass Sie damit beliebigen PHP-Code ausführen können, sind die Mög-lichkeiten vielfältig.

Der Aufbau dieses Blocks sieht wie folgt aus:

<plugin_code>

<code>

<hook>HOOKPOINT NAME</hook>

<phpcode><![CDATA[

// meine PHP Anweisungen

echo 'Hello World';

]]></phpcode>

<order>1</order>

<active>1</active>

786.book Seite 261 Freitag, 5. Februar 2010 10:29 10

Page 45: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

262

Module und Funktionen entwickeln7

</code>

</plugin_code>

Listing 7.9 Beispiel zum Block plugin_content

Im Parameter <hook> wird der HOOKPOINT NAME angegeben. Dies ist die Bezeich-nung des Hookpoints, in dem der Code ausgeführt werden soll. Zum Beispielwäre dies bei einem Hookpoint im System

($plugin_code = $xtPlugin->PluginCode('CLASS.CART.PHP:_REFRESH_TOP')) ? eval($plugin_code) : false;

der Eintrag <hook>class.cart.php:_refresh_top</hook> in der XML-Datei.

7.1.4 Pluginentwicklung – bestehende Objekte nutzen

Im Folgenden werden wir die Pluginentwicklung, insbesondere die Datenbank-verbindung (Inserts und Updates) sowie die Erzeugung von Links, näher ken-nenlernen.

Datenbankverbindung

xt:Commerce VEYTON verwendet die ADOdb Datenbank-Library für die Verbin-dung zur Datenbank. Eine detaillierte Funktionsdokumentation und auch wei-tere Beispiele für die korrekte Syntax für diese Datenbankbibliothek finden Sieunter http://phplens.com/phpeverywhere/adodb_german.

Shop- und adminseitig steht das Objekt $db mit der aktuellen Datenbankverbin-dung zur Verfügung.

Sie können SQL-Befehle mit $db->Execute(query) an die Datenbank senden, undim Erfolgsfall wird ein Datensatzobjekt zurückgegeben.

Hier folgt ein Beispiel einer einfachen Abfrage:

$rs = $db->Execute("SELECT * FROM ".TABLE_CUSTOMERS);

if ($rs === false) return false;

Um INSERTS und UPDATES zu vereinfachen, steht Ihnen auch die Funktion$db->AutoExecute zur Verfügung.

Mithilfe von $db->AutoExecute können Sie ein Array mit Daten übergeben,anstatt die ganze Query zu definieren, und die Funktion führt den INSERT- oderden UPDATE-Befehl durch.

786.book Seite 262 Freitag, 5. Februar 2010 10:29 10

Page 46: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

263

Grundlagen 7.1

Ein Beispiel für INSERT ist:

$data_array = array():

$data_array['name'] = 'Max Muster';

$data_array['alter'] = '31';

$db->AutoExecute('tabellenname',$data_array);

Listing 7.10 Beispiel für ein Datenbank-Insert

Ein Beispiel für UPDATE eines Datensatzes sieht folgendermaßen aus:

$data_array = array():

$data_array['name'] = 'Max Muster';

$data_array['alter'] = '31';

$db->AutoExecute('tabellenname',$data_array,'UPDATE',"kunden_id=20");

Listing 7.11 Beispiel für ein Datenbank-Update

Die Abfrage von Datensätzen aus der Datenbank gestaltet sich ebenso einfach.Das Beispiel für die Datenabfrage aller Kunden mit shop_id=1 könnte wie folgtaussehen:

$rs = $db->Execute("SELECT * FROM ".TABLE_CUSTOMERS." WHERE shop_id=1");

$kunden = array();

while(!$rs->EOF) {

$kunden[]=$rs->fields;

$rs->MoveNext();

}

Listing 7.12 Datenbankabfrage aller Kunden mit einer bestimmten shop_id

Mit while(!$rs->EOF) wird die Schleife so lange durchlaufen, bis der letzteDatensatz erreicht ist.

$rs->fields enthält jeweils ein Array mit dem aktuellen Datensatz.

Wichtig

Hierbei muss $rs->MoveNext(); verwendet werden, da ansonsten nicht zum nächs-ten Datensatz gesprungen und die Schleife endlos ausgeführt wird.

786.book Seite 263 Freitag, 5. Februar 2010 10:29 10

Page 47: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

264

Module und Funktionen entwickeln7

Weitere nützliche ADOdb-Funktionen

� Anzahl der Datensätze:

Die Anzahl der Datensätze im Ergebnis kann mit $rs->RecordCount(); ermit-telt werden:

$rs = $db->Execute("SELECT * FROM ".TABLE_CUSTOMERS." WHERE shop_id=1");$anzahl_kunden = $rs->RecordCount();

Listing 7.13 Datenbankabfrage über die Anzahl der Datensätze

� Letzte auto_increment ID:

$rs->Insert_ID() ist dann von Nutzen, wenn Sie für die weitere Verarbeitungdie ID benötigen, die für Ihren neuen Datensatz vergeben wurde.

Hier sehen Sie ein entsprechendes Beispiel dafür:

$data_array = array():$data_array['name'] = 'Max Muster';$data_array['alter'] = '31';$db->AutoExecute('tabellenname',$data_array);

$neue_kunden_id = $rs->Insert_ID();

Listing 7.14 Beispiel für auto_increment ID

Erzeugen von Links

Um interne Links zu erzeugen, steht uns das Objekt $xtLink zur Verfügung:

$link = $xtLink->_link($data);

Im Array $data können folgende Werte übergeben werden:

� Der Parameter page muss zwingend übergeben werden.

� Der Parameter paction wird in der erzeugten URL als page_action ausgege-ben.

� Über den params-Parameter können weitere GET-Parameter an den erzeugtenLink angehängt werden.

Tipp

Wenn Sie nur die Daten in einem Array benötigen, kann hierfür auch die getArray()-Funktion genutzt werden. Damit können Sie auf eine zusätzliche while-Schleife ver-zichten:

$rs = $db->Execute("SELECT * FROM ".TABLE_CUSTOMERS." WHERE shop_id=1");

$kunden = $rs->getArray();

786.book Seite 264 Freitag, 5. Februar 2010 10:29 10

Page 48: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

265

Grundlagen 7.1

� Der Parameter conn legt fest, ob der Link über HTTP oder HTTPS erfolgen soll.Wenn Sie bei Ihrem Mandanten SSL aktiviert haben, wird unter Verwendungvon conn=SSL ein HTTPS-Link erzeugt. Sollte SSL deaktiviert sein, wird auchunter Verwendung von conn=SSL ein normaler HTTP-Link erzeugt.

Als Beispiel folgt nun ein SSL-Link auf page customers mit page_action login(Kunden-Loginseite):

$link = $xtLink->_link(array('page'=>'customers','paction'=>'login','conn'=>'SSL'));

Durch obigen Befehl wird folgender Link erzeugt: https://www.example.com/index.php?page=customers&page_action=login.

Hier folgt ein Beispiellink auf eine Produktseite mit Produkt-ID als zusätzlichemParameter:

$link = $xtLink->_link(array('page'=>'product','params'=>'info=5'));

Der dazu erzeugte Link sieht folgendermaßen aus: http://www.example.com/index.php?page=product&info=5. Neben der Funktion, einen einfachen Link zuerzeugen, bietet die Klasse zudem die Möglichkeit, eine Weiterleitung auf einenLink durchzuführen. Ein Beispiel für eine Weiterleitung auf eine andere Seite zei-gen die nächsten beiden Zeilen:

$link = $xtLink->_link(array('page'=>'404'));

$xtLink->_redirect($link);

Der so erzeugte Link lautet http://www.example.com/index.php?page=404.

7.1.5 Sprachen

Systemweit steht Ihnen das Objekt $language zur Verfügung, über $language->code können Sie die aktuelle Sprache des Kunden abfragen.

7.1.6 Templates

Wie wir schon aus dem vorherigem Kapitel wissen, nutzt das xt:Commerce-Sys-tem shopseitig die Smarty-Template-Engine. Im xt:Commerce VEYTON-Frame-work steht dafür die Template-Klasse zur Verfügung.

Hinweis

Wichtig bei der Integration einer Weiterleitung ist, dass vor der Weiterleitung imCode keinerlei Ausgabe an den Browser erfolgt (z.B. mit echo();).

786.book Seite 265 Freitag, 5. Februar 2010 10:29 10

Page 49: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

266

Module und Funktionen entwickeln7

Um die Verwendung von Smarty weiter zu vereinfachen, wurde in xt:Commerceeine Wrapper-Klasse für diese Funktion integriert, die eine komplette Template-Zuweisung über eine Zeile Code ermöglicht:

$template = new Template();

$html = $template->getTemplate('plg_tagging_list', '/'._SRV_WEB_CORE.'pages/product_listing/product_listing_v1.html', $tpl_data);

Listing 7.15 Beispiel zur Templatezuweisung in VEYTON

Allein dieser Block würde ausreichen, um das Template product_listing_v1.htmlzu laden und diesem Template alle Variablen innerhalb von $tpl_data als ein-zelne Variablen zuzuweisen. Die Funktion gibt Ihnen das komplett fertig geren-derte HTML-Template zurück.

7.2 Shopbereich erweitern

Neben dem Verändern von bestehenden Funktionen über Plugins haben Sie dar-über hinaus die Möglichkeit, auch komplett neue Funktionen schnell und sauberzu realisieren, ohne im System selbst Veränderungen vornehmen zu müssen.

Prinzipiell bietet xt:Commerce VEYTON dazu zwei verschiedene Erweiterungs-möglichkeiten: Boxen und Pages.

� Boxen dienen dazu, um einfache Ausgaben in beliebigen bestehenden Temp-lates zu realisieren. Zum Beispiel kann ein Formular mittels einer Box reali-siert werden, die den Inhalt an eine eigene Page sendet, die wiederum die Ver-arbeitung der übermittelten Daten übernimmt.

� Pages nutzt man dazu, um richtige Teilbereiche zu erstellen. Zum Beispielkann ein FAQ-Modul als Page realisiert werden, die dann über index.php?page=faq erreichbar ist.

7.2.1 Eigene Seiten (Pages)

Pages sind einzelne Seiten in xt:Commerce, die direkt über die URL und auchüber einen {page} tag in jedem Template geladen werden können.

Als Beispiel möchten wir ein kleines hello_world-Plugin erstellen und einehello_world-Page integrieren, die schlicht den Satz Hallo Welt, ich bin eineSeite im Content-Bereich des Systems ausgibt, wenn die Seite hello_world auf-gerufen wird.

786.book Seite 266 Freitag, 5. Februar 2010 10:29 10

Page 50: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

471

Index

.htaccess 55_getParams 290_myindex_0 77_set Funktion 3163D Secure 351

A

Ablaufdatum 167actindo 383, 446

Anbindung 386Business-Cockpit 386Komplettlösung 384Module 385plattformunabhängig 384SaaS 383Schnittstellenkonfiguration 387Webshop Connector 387

AddThis 391Attribute 399

Admin Benutzer 94Admin Rechte 93Admingruppen 93Admininterface 314Administrationsbereich 54, 277Administrationsbereich erweitern

Grundgerüst 278ADOdb Datenbank-Library 262, 440

Funktionen 264AdWords 426AFS-Software 373, 446

Adressen 374Artikelverwaltung 375Auswertung 375, 377Cross-Selling 375Funktionalität 374Funktionen 374Kalkulation 375Schnittstelle 377Synchronisierungsprogramm 377Vorgangsbearbeitung 376Vorgangsfortführung 376Warengruppen 375

Afterbuy 446AGB 65

AJAX-Framework Ext JS 277AliPay 444Altersverifikation 405, 447Altersverifikation � sofortident.deAnalytics 422Angebotspreis 167Anwendungsumgebung 31

umziehen 56Anzahl der Datensätze 264Apache 32API-Benutzerdaten 339Artikel anlegen

Artikelbeschreibung 105Artikelname 104Bestand 103EAN 103Gewicht 103Kurzbeschreibung 105Lagerampel 103Lieferzeit 103Meta-Beschreibung 105Meta-Schlüsselwörter 105Meta-Titel 105Startseite 108Steuerklasse 104verschieben 108weitere Kategorien 108weitere Suchbegriffe 105

Artikel � ProdukteArtikelattribute 110Artikeleigenschaften 109, 113Artikelnummer 103Attribute

Konfiguration 393Auktion 446Auswahlboxen 285Auto-Cross-Selling 445

B

Backend-Formulare 290Banktransfer 444Barrierefreiheit 239Benutzerkonten 90Bestehende Objekte 262

786.book Seite 471 Freitag, 5. Februar 2010 10:29 10

Page 51: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

472

Index

Bestseller Products 120Bewertungen 122Bewertungen � KundenbewertungBewertungen � ReviewsBild- und Datenkategorien 157Bild- und Datenmanagement 155

Image Processing 162Bilder 190Bildtypen 160, 191Block language_content 260Block plugin_content 261Blog 429

Beschreibung 430Gast-Kommentare 429Integration 434Kategorie 430Kommentare 432Kommentare freischalten 429Mandantenkonfiguration 429Nachrichtenanzahl 430Nachrichtenerstellung 431Titel 430

BlogintegrationBox 434Navigation 434Startseite 434

Bonitätsabfrage 403, 405Bonitätsprüfung 447Box 201, 206, 266, 270

anordnen 206anpassen 208ausblenden 202CSS 226Pluginbox 271Systembox 271YAML 247

Brotkrumenpfad 201Browser 426Browser-Bugs 240Brutto Admin 92Büro Plus NexT 367

Adressverwaltung 367Artikelstamm 367Finanz- und Anlagenbuchhaltung 368Funktionen 367Funktionsumfang 367Kategorien 368Lagerverwaltung 367Lohnbuchhaltung 368

mehrsprachig 369Schnittstellen 368, 370ShopSync 370Skalierbarkeit 372Synchronisation 372Vorgangsverwaltung 367Zahlungswesen 368

BüroWARE 363Funktionen 365internetbasiertes ERP 363Komplettsystem 365Module 363Schnittstellen 366xt:Commerce 446

Button 187

C

Campaign Tracking 445categorie listing 182Celebros Qwiser 446Checkout 194Checkout � KassenprozessCheckout-Prozess 141Checkout-Prozess � VerkaufsabwicklungChinesisch 440CleverReach 445Cliplister 407, 445

Indizierung 408LiveConnect 407Player 408Webinterface 409

Closed Source 25CMS 333CMS � Content-Management-SystemeConditional Comments 234, 246Conditional Commons 193config.php 60configuration 258Confixx 46conn 265Content 66Content-Blöcke 219, 234Content-Management-Systeme 333Content-Manager 66, 203, 218, 234

Content 151Content-Blöcke 151, 153

Controlling 410, 446Copyright 206, 225

786.book Seite 472 Freitag, 5. Februar 2010 10:29 10

Page 52: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

473

Index

Copyright-Removal 24Creditpass 447creditPass 403

Modul 404Cross-Selling 109, 117, 445

automatisches Cross-Selling 119manuelles Cross-Selling 117

CSS 187, 221Curl 439Customers discounts 445

D

Dashboard 78Dateianhänge 114Dateiberechtigung 50Datei-Import 157, 158Dateitypen 160Datei-Upload 157

Art 92Dateiverwaltung 158Datenbank 53

umziehen 57Datenbankbibliothek 262Datenbankstruktur 255, 298Datenbanktabellen 257Datenbankverbindung 262Datenschutzerklärung 169DATEV 378

Anbindungen 382Auftragsbearbeitung 379Auftragsmanager 379Ausblick 383Bestellwesen 381Datanorm 382Datenmodell 382Erweitungsmodule 380Fremdwährung 381Funktionsumfang 379Grundmodul 379Intrastat 382Kasse 382Mehrlager 381Provision 382Seriennummer 381Stückliste 381

Deutsch 440Digitale Waren � Download-ProdukteDigitalen Waren 113

Digitaler Artikel 104DomainFactory 56Download-Produkte 113

freie Downloads 113kostenpflichtige Downloads 113

Download-Produkte � Digitale WarenDresdner Bank Cetelem 445Dropdown 286Dropdown-Ressourcen 288

E

E-Commerce 19econda 410, 446

Click Monitor 417Cross Sell 415Integration 414Kundenerfahrungen 412Online Opinion 418Shop Monitor 410, 412Test Suite 420

Editor 92HTML Editor 92Tiny MCE 92

Eigene Seiten 266Einfacher Dateiupload 157Einloggen in den Administrationsbereich

77Einstiegspunkte 252E-Mail-Einstellungen

Sendmail 90SMTP 90

E-Mail-Manager 153Absender 154Antwortmails 155Templates Special 154Weiterleitung 155

Endbenutzer-Lizenzvereinbarung 23Englisch 440Entwicklung 19epoq 445Erscheinungsdatum 167EULA 23Export 126Exportfeeds 464, 467

AdButler 464billiger.de 465ciao.de 465Google Base 464

786.book Seite 473 Freitag, 5. Februar 2010 10:29 10

Page 53: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

474

Index

Google Sitemap 465guenstiger.de 466preisroboter.de 467preissuchmaschine.de 466

Export-Manager 129, 334Artikel 131Bestellungen 132Body 130Footer 130Header 130Konfigurationsmöglichkeiten 132Sicherheitseinstellungen 131Sicherheitsfunktion 131zeitgesteuert 134

Ext JS Library 440

F

Facebook 389FactFinder 446Faktura-XP 446FashionLager 446Favicon 82Firebug 222Formulare 194Forum 12, 29Free Software Foundation 26Freie Downloads 158Freie Software 26Funktion _addTag() 310Funktion _copy 283Funktion _displayProductInfo() 307Funktion _getParams 314Funktion _getSearchIDs 282Funktion _setStatus 318Funktion _unset 317Funktion setPosition 314Funktionsumfang 20

G

GE Money Bank 445Gesamtbreite 230Globale Einstellungen 86

E-Mail-Einstellungen 90Lagerampel 86Performance 90Rechte 89Suchmaschinen 91

Systemstatus 86GNU GPL 26Gobale Einstellungen

Lager 91Google Analytics 422, 446Google Analytics � AnalyticsGrundgerüst

Funktion _get 279Funktion _getParams 282Funktion _set 280Funktion _setStatus 281Funktion _unset 281

Grundpreis 108Gutscheine 123

einmal einlösbare Gutscheine 124Festwertgutscheine 124mit gleichem Code 123Rabattkupons 124

Gutscheine � Kupons

H

Handbuch 28Hauptkategorie 96Hauptnavigation 78Herstellerlogo 117Herstellerverwaltung 115

Logo 117Name 117Produktzuordnung 117

Hilfequellen 28Hookpoints 13, 21, 252, 444

Bezeichnung 253Hosting 31, 32, 46, 91HTML 187

I

iclear 353Bestellstatus 354Bezahlmöglichkeiten 353hängende Warenkörbe 354Installation 355Kaufprozess 353Plugin 354Schnittstelle 354Treuhandsystem 353

iclear.de 445Image Processing 157

786.book Seite 474 Freitag, 5. Februar 2010 10:29 10

Page 54: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

475

Index

Implementierte Libraries 440Import 126, 158Import/Export 126

Export-Aufruf 127Import Vorlage 129Import-Aufruf 127Primärschlüssel 129Primary Key 126sprachabhängig 127

Import/Export � ExportImport/Export � ImportImpressum 65index.html 192, 197

für YAML 242Individualanpassungen 252Informationsverwaltung 151

Content-Formular 152Content-Manager 151Content-Position 152

Installation 31Fehlerbehebung 54lokal 32Webserver 32, 44

Installationsroutine 49, 53Invoice 444IonCube Loader 32, 52, 439

Webserver 44XAMPP für Linux 39XAMPP für Windows 36

Ipayment 444

J

Japanisch 440JavaScript 397Joomla 239jQuery 193, 440

K

Kampagnen 162Kampagnenverwaltung 162Kassenprozess 194Katalogmanagement

Kategorien 97Kategorie anlegen 99

Artikelsortierung 99Artikelsortierung Reihenfolge 99Berechtigungen 99

Bild 98Meta-Beschreibung 99Meta-Schlüsselwörter 99Meta-Titel 99Status 99Template 100

Kategoriebaum 96Kategoriebaum � Produktkatalogmanage-

mentKategorieebenen 227Kategorielisting 178, 182, 194, 246, 249Kategorien 227

Kategorie anlegen 98Neue Unterkategorie 97

Kategorien � StrukturKategoriezuweisung 109Knowledge Base 28Konfigurationsinterfaces 255Konfigurationsmaske 258Konsumentenkredit 445Kostenpflichtige Downloads 158Kunden 136

Adresse 137Bestellungen 137Kundengruppen 137

Kundenadresse 142Kundendetails 142

Kundenbewertung 122Kundenbewertung � BewertungenKundenbewertung � ReviewsKundendetails � KundenadresseKundengruppen 109

Maximalbestellwert 139Mindestbestellwert 139Preisanzeige 139Preisoptionen 141Rechte 140Staffelpreise 139

Kundengruppensteuerung 441Kundenverwaltung 136Kupons 123Kupons � Gutscheine

L

LagerampelLagerbestand 86Lieferzeit 86

Lagerampel � Lieferzeitanzeige

786.book Seite 475 Freitag, 5. Februar 2010 10:29 10

Page 55: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

476

Index

Lagerverwaltung 92Lastschrift 444Layer-Menü 248Lexware 446Lieferzeitanzeige 92Linkerzeugung 264Linux 37Literal 180, 397Lizenz 48Lizenzdatei 49Lizenzmodell 27Lizenzschlüssel 48Lizenzsystem 28localhost 32, 35

M

MAC OS X 41Finder 41

MAMP 32, 41MAMP PRO 43Port 41

Mandant 79, 401–403Artikellisting 81E-Mail-Einstellungen 81Kommastellen 80Lagerverwaltung 80Mein Shop 79Metatags 82Shoplogo 79Standardkundengruppe 79Template 79Umsatzsteuerverfiikation 80

Mandanteneinstellungen 66Mandantenfähig 27Mandantenshops 441, 443Mandantensystem 27, 442Mandantensystem � MultishopMarketing 445Master 110Master-Artikel 103Master-Artikelnummer 103Media Gallery 113, 155Mehrsprachige Systeme 260memory_limit 42Mengengrenze 164Mention 446Meta-Tags 442Migration 60

Migration � xtMigrationMOD REWRITE 442mod_rewrite 35, 39Modulentwicklung

Grundlagen 251unabhängiges Updaten 251

Moneybookers 341, 444Bestellstatus 343eWallet 341Quick Checkout 341

mpay24 444Multi-Datei-Upload 157Multilingualität 20, 440Multishop 16, 401Multishopfunktionalität 20Multishopkonzept 401MySQL 46MySQL-Dumper 57

N

Nachnahme 149Navigation 201Navigationsleiste 78Navision 446Netto-Admin 92Nord-Navigation 290NuSOAP 440Nutzungsrecht 24

O

Ogone 444Onlinehandbuch 28Open Flash Chart 440Open Source 11, 25Open-Source-Initiative 25Ordnerstruktur 303OSI � Open Source Initiative

P

paction 264page 264Pages 266Pages � Eigene SeitenPangora Sales Tracking 446params 264

786.book Seite 476 Freitag, 5. Februar 2010 10:29 10

Page 56: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

477

Index

Payguard 445Payment Extension 445PayPal 338, 444

Auth Error 340Bestellstatus 339Kompatibilitätsmodus 341Testmodus 340

permission_check 257PHP 5 55php.ini 36, 40, 42, 43, 52PhpCaptcha 440PHP-Ext 440PHPMailer 440phpMyAdmin 46pixi 446Plesk 46Plugin

Dateistruktur 253Google Analytics 423

Pluginaufbau 253Plugin-Funktionen 444Pluginkonzept 20, 251Plugins 15, 195Pluginschnittstelle 21Pluginsystem 252, 254Pluginvorlagen 195Port 56PostIdent 405Preisstaffelungen 441Prepayment 444Price Inquiry 445Primary Key � Import/Exportproduct_listing 186Product-Tagging 297Produktbewertungen 445Produkte 100

Artikel anlegen 102Artikeleigenschaften 102Artikelübersicht 101Cross-Selling 102Dateianhänge 102Kategoriezuweisung 101Preisstaffeln 102Sonderangebotsgestaltung 102

Produktinformationsseite 211, 213Produktkatalogmanagement 96

Kategoriestruktur 96Produktlisting 178, 191, 210, 212, 246

Q

Quelloffen 25Quenta/Qpay 444Quick Checkout 341

R

RechnungKauf auf 149, 449

RechteBlacklist 89Kundengruppencheck 89Whitelist 89

Register Globals 52Reseller 29Resellervertrag 24Reviews 122

S

Saferpay 349, 445Integration 351

Sage Office Line 446Sandbox 340Sandbox � PayPalSantander Bank 445SAP B1 446Schlagwortwolke 168Schnittstelle � iclearSEO-Funktionen 21Seriennummern 104

Mindestmenge 114Seriennummernverwaltung 114Shopbereich erweitern 266Sicherheitseinstellungen � Export-ManagerSLA-Supportpakete 29Slave 110Smarty 173, 440

Arrays 178Debug-Konsole 179, 183Dokumentation 176Funktionen 187Kommentare 180Kontrollstrukturen 181Modifikatoren 185Operatoren 181Schleifen 182

786.book Seite 477 Freitag, 5. Februar 2010 10:29 10

Page 57: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

478

Index

Syntax 177Variable 178

Social Bookmarks 218, 390, 445sofortident.de 405, 447

Installation 406Integration 407Schnittstelle 406

sofortüberweisung.de 345, 444Sonderpreise 109, 166Spanisch 440Sprache

exportieren 94importieren 95Sprachtexte 95

Sprachen 265, 440Sprachkonfiguration 94Sprachtexte 95Sprachvariablen 260sql_install/uninstall 257

Rückgabewert 258Staffelpreise 109, 163Standardtemplate 92Statistik 422Steuereinstellungen 64, 82

Standardeinstellung 83Steuerklassen 64Steuersatz 64Storemanager 442Strato 55Struktur 96stylesheet.css 223stylesheets.css 245Suche

tracken 425Suchmaschinen

Mod Rewrite 91SUMA URLs 91Support 16SysCP 46Systemanforderungen 22Systemstatus

Bestellstatus 88Lagerampel 86Lieferstatus 86Steuerzone 88Verpackungseinheiten 87

T

Tagcloud 168Tagcloud � SchlagwortwolkeTaiwanesisch 440Template-Ausgabe unterdrücken 270Templatefunktionen 443Template-Hook 304Templates 79, 153, 171, 268, 435

Artikelinfo 107Artikellisting 107Artikeloptionen 107Hierarchie 197installieren 64Liste der Slave-Artikel 107Struktur 192überladen 195

Template-Zuweisung 266Thumbnails 191Tracking 424, 446Twitter 389

Account 395Tweets 398Widget 395

TYPO3 31, 239, 333TYPOlight 239

U

UA-Code 423Ubuntu 37Umrechnungsfaktor 108UOS 445Upcoming Modul 121Upcoming Products 121Upload 48UTF-8 55

V

VARIODatenaustausch 361Funktionen 362Kategorieverwaltung 359

VARIO FAKTURA 356Adressen 357, 359Anbindung 360Artikel 356, 358

786.book Seite 478 Freitag, 5. Februar 2010 10:29 10

Page 58: xt:Commerce VEYTON 4 - Amazon S3€¦ · 6.2.8 HTML-Vorlagen für Module und Seiten ..... 210 6.2.9 Ausgabe der ... ventionen erklären und einen Überblick über dieses Buch geben

479

Index

Belege 359Einkaufs- und Verkaufsbelege 357Exportplugin 362Replikation 361

Verbindungsdaten 53Verkaufsabwicklung 141

Kundenadresse 142Verkaufsabwicklung � Checkout-ProzessVerpackungseinheit 108Versandart 144Versandeinstellungen 143Versandkosten � VersandeinstellungenVersandkostentabelle 147Versandkosten-Template 146Versandregel 146Videos 407Vorauskasse 444Vorkasse 149Vorlagen

checkout 212pages 210Plugins 213

W

Warenkorb 207Warenkorbbox 226Warenwirtschaft 356Warenwirtschaftssoftware 356Wasserzeichen 162Web 2.0 389Webserver 44West-Navigation 290Widerrufsbelehrung 65, 168Widerrufsbelehrung � WiderrufsrechtWiderrufsrecht 66, 169

Wirecard 444Wordpress 239

X

XAMPP 32Linux 37Port 34Windows 33

XML 333XML Library 440XML-Datei

Aufbau 255XML-Installationsdatei 254, 268, 275xt:Commerce 3 31, 60xt_Blog � Blogxt_campaigntracking 162xt_default 172xtInstaller 49xtMigration 60

Y

YAML 17, 173, 238

Z

Zahlungsart 339Zahlungsgebühr 84Zahlungsmodule 83Zahlungssysteme 444, 445Zahlungsweise 147

Erstellung von Gebühren 85Gebühr 84

Zeichensatz 55ZEND Optimizer 38

786.book Seite 479 Freitag, 5. Februar 2010 10:29 10