Shopware Knowledgebase

Shopware Labs

Der Bereich Shopware Labs ist die Plattform für alle Entwickler. Hier findet man technische Dokumentationen und zahlreiche Tipps und Tricks rund um das Thema Programmieren. In dieser Rubrik stellen außerdem die Entwickler der shopware AG neue und experimentelle Lösungsansätze vor. Neue Funktionen, die in dieser Rubrik bereitgestellt werden, sind teilweise auch für zukünftige Releases geplant. Die Funktionen können dann ohne Programmierkenntnisse zukünftig direkt im Shopware Backend konfiguriert werden oder werden über Plugins bereitgestellt. Informationen über neue, geplante Funktionen finden Sie in unserer Roadmap.

Bitte beachten Sie, dass die hier bereitgestellten Lösungsansätze nicht offiziell supportet werden und nur eingebaut werden sollten, sofern Sie über das entsprechende, technische Wissen verfügen.

Shopware 3.5.0 Preview-Version ab dem 01.10.

0 Kommentare

Inhaltsverzeichnis

Vorwort

Der Release-Candidate wird ab dem 01.10.2010 auf Anfrage bereitgestellt und soll es Partnern und Agenturen ermöglichen, sich vorab mit den neuen Funktionen und technischen Änderungen zu beschäftigen. Falls Sie Zugriff auf eine Testumgebung erhalten möchten, benutzen Sie bitte das Anmeldeformular unter http://www.shopware.de/shopware.php?sViewport=support&sFid=42

Konkrete Projekte sollten noch nicht auf Basis der Preview-Version umgesetzt werden, da es durchaus noch Änderungen an der Codebasis und den Templates geben kann.

Das Technology-Preview entsprich noch nicht der finalen Version, folgende Punkte werden bis zum Release am 18.10. noch umgesetzt:

  • Dokumentation Quellcode
  • Entfernen nicht mehr benötigter Dateien
  • Bugfixing & Feature-Implementierung
  • Browser-Tests / QA
  • Datenbank Query-Cache und allgemeine Performance Optimierungen
  • Plugin-Manager / Plugin-Konfiguration
  • Applikationskonfiguration über YAML-Datei
  • Test / QA Multishops
  • Externe Zahlungssysteme
  • Penetrationstests (XSS / XSRF)

Bitte berücksichtigen Sie dies bei Ihren Tests!

Falls Sie Fehler oder Ungereimtheiten finden, informieren Sie uns bitte kurz im 3.5.0 Forum oder per Mail an info@shopware.de Vielen Dank!

Aktuelle Version

Release Candidate - Veröffentlichung ab dem 01.10.2010

Nächste Version

Finale Version - 18.10.210

Weiterführende Artikel

Allgemeine FAQ

Ich habe Fragen zum Release Candidate, die dieses Dokument nicht beantwortet

Wenden Sie sich bei allen Fragen rund um die Preview-Version an info@shopware.de, wir werden diesen Wiki-Artikel dann ggf. erweitern.

Natürlich können Sie Ihre Fragen auch gerne in unserem Forum stellen. Zum Forum

Inwiefern eignet sich der Release-Candidate für den Produktivbetrieb?

Garnicht. Es handelt sich hier um ein Technology-Preview, welches nicht für den Produktivbetrieb bestimmt ist. Das Preview dient dazu, dass Sie sich mit der neuen Technologie-Basis vertraut machen können, Einfluss auf die Struktur der neuen Template-Basis nehmen können und ggf. größere Projekte, die in den nächsten Wochen anstehen, bereits teilweise auf der neuen Basis umsetzen können.

In der verbleibenden Zeit bis zum finalen Release, wird das Produkt noch einer umfangreichen QA unterzogen. Es ist daher mehr als wahrscheinlich, dass es noch Template & Code-Änderungen geben wird.

Worauf soll ich beim Testen der Preview-Version besonders achten?

In erster Linie interessiert uns Ihre fachliche Meinung zur neuen Template-Basis und technischen Architektur. Da sollten Sie insbesondere auf die Konsistenz der Struktur (Dateibenennung / Logik / Benennung Boxen / Bausteine) achten und uns hier alle Dinge, die Sie stören, mitteilen.

In zweiter Instanz sind uns natürlich Bug-Reportings und auch Kompatibilitätsprüfungen zu bestehenden Erweiterungen / Templates von Ihnen wichtig.

Wir freuen uns an dieser Stelle uneingeschränkt auf jegliches Lob und Kritik von Ihnen.

Wo kann ich Bugs oder Vorschläge melden?

Benutzen Sie hierzu einfach die Mailadresse "beta@shopware.de"

Welche Lizenzen sind in der Preview freigeschaltet?

In der Preview-Version sind derzeit alle Module freigeschaltet, wenn Sie nur den Funktionsumfang der Community Edition testen wollen, deaktivieren Sie einfach unter Einstellungen > Lizenzen die kommerziellen Module.

Welche Dateien sind verschlüsselt?

Verschlüsselt sind nur die Sourcen der Zusatzmodule und der generelle Code zur Lizenzprüfung.

Feature FAQ

Wo liegen die Schwerpunkte bei 3.5.0?

In dieser Version geht es uns hauptsächlich um die technische Migration auf das neue Enlight-Framework und die Umstellung der Systemkomponenten auf Komponenten aus dem Zend-Framework. Darüber hinaus führen wir mit 3.5.0 unser neues Template-System ein, welches viele neue Möglichkeiten bietet und eine updatesichere und erweiterbare Template-Ausgangsbasis für alle zukünftigen Projekte bereitstellt.

Welche Komponenten sind final?

Fertigstellungsgrad in %

Variablen: Komponente Fertigstellungsgrad Kommentar
Template-Basis 99 % Struktur / HTML / Smarty-Code
CSS-Code / Layout 99 % Hier werden in der finalen Version noch einige optische Korrekturen stattfinden
Umstellung Viewports > Controller 100 % Siehe Liste Controller
Plugin-System Storefront 90 % -
Plugin-System Backend 85 % -
Features 75 % Siehe Roadmap 3.5.0
Bugfixes 100 % Siehe Roadmap 3.5.0

Bereits integrierte Features

  • Neue Template-Basis
  • Umstellung auf Smarty 3
  • Kompatibitätsschicht zur alten Templatebasis
    • Kann einfach über shopware.php?sTpl=0 / ID = Verzeichnis getestet werden
  • Ajax Login / Warenkorb / Registrierung
  • Umstellung auf jQuery
  • Neues Textbaustein-System
  • Währungsformatierung (Zend_Currency)
  • Datumsformatierung (Zend_Date)
  • Umstellung von adoDB auf PDO / Zend-DB
    • Kompatibel zur bestehenden adoDB-Syntax
  • Umstellung von adoDB-Sessions auf Zend-Session
  • Zentraler Front-Controller (ersetzt shopware.php)
    • Funktionsprinzip wie Zend Framework, Router, Dispatcher, Dispatch-Loop, Controller, View
  • Umstellung vieler Viewports auf die neue Controller-Basis (z.B. Registrierung)
  • Integration Storefront-Plugins (siehe z.B. Verzeichnis engine\Shopware\Plugins)
  • Exception-Handler
  • Neues Debug-Plugin (Standardmäßig aktiv)
  • Zentrale Caching Komponente (Ersetzt alten DB-Cache)
    • Konfigurierbares Backend / Filecache / Memcache usw.
  • Indizierung Suche / SEO per Cronjob
  • Refaktorierung Newsletter
  • Refaktorierung Belegerstellung
  • Refaktorierung Cronjobs
  • Refaktorierung Produkt-Exporte
  • Import / Export Umstellung auf PDO
  • Integration API als Plugin
  • Kompatiblitätsprüfung PHP 5.3

Fehlende / Fehlerhafte Funktionen

  • Test / QA Multishop-Handling
  • Abschließen der Feature-Integration (Siehe Roadmap)
  • Finalisierung Plugin-Manager
  • Erstellung von Layout-Varianten
  • Technische Dokumentation
  • Finalisierung Payment-Schnittstellen

Bugs

Da es sich bei dem Release-Candidate nicht um die finale Version handelt, ist es sehr wahrscheinlich das die ein oder andere Funktion noch nicht korrekt arbeitet. Wenn Ihnen hier etwas auffällt, was verdächtig nach einem Bug aussieht, bitten wir um kurzes Feedback.

Was kommt noch bis zum finalen Release ?

Von uns vorgesehen
Die hier vorgestellten Funktionen werden mit hoher Wahrscheinlichkeit integriert. Indem Sie die Tickets priorisieren, sorgen Sie dafür, dass diese schneller umgesetzt werden und eine höhere Priorität in der Entwicklung haben. Übrigens: Ergänzungen können Sie jederzeit über die Kommentarfunktion vornehmen.
Ticket-Bezeichnung Voraussetzung
Ajax Login / Ajax Warenkorb
13.08.2010 Community Vorschlag

Standard / Neue Template-Basis

Bestellung aus dem Backend für nicht aktive Artikel
05.02.2010 Community Vorschlag

Standard / Core

E-Mail Adressen im Kontakt Formular
05.08.2010 Community Vorschlag

Standard / Core

Erweiterung Versand von eMail-Anhängen
29.01.2010 (ID: #2646)

Standard / Core

Facebook Implementierung
11.06.2010 Community Vorschlag

Standard / Core

Gutschein Eingabe im Warenkorb
11.05.2010 Community Vorschlag

Standard / Neue Template-Basis

Instant Messenger verbessern
06.05.2010 Community Vorschlag

Standard / Core

Interne Textfelder bei Bestellungen und Kunden
29.04.2010 Community Vorschlag

Standard / Core

Komplettes Template-Redesign mit vielen Usability-Verbesserungen
13.08.2010 Community Vorschlag

Standard / Neue Template-Basis

Kopieren / mehrfach Zuordnung von Aktionen
29.01.2010 (ID: #2633)

Standard / Core

Kundengruppen-Check: Artikel nur einblenden für eingeloggte Kunden
26.03.2010 Community Vorschlag

Standard / Kundengruppen

Neue Template-Basis
13.08.2010 Community Vorschlag

One-Page-Checkout
13.08.2010 Community Vorschlag

Standard / Neue Template-Basis

PDF-Belegerstellung Kundenkommentar hinzufügen
01.04.2010 Community Vorschlag

Standard / Core

Plugin-Manager
13.08.2010 Community Vorschlag

Standard / Core

Standardverfügbarkeit neue SEO-Engine
12.07.2010 (ID: #3076)

Standard / Core

Standardverfügbarkeit Premium-Versandkostenmodul
13.08.2010 Community Vorschlag

Standard / Core

Template Vererbung in PDF-Erstellung
26.03.2010 Community Vorschlag

Standard / Neue Template-Basis

Verkaufen von Gutscheinen
11.04.2010 Community Vorschlag

Premium-Funktion / Wartungsvertrag

Wartungsmodus mit Fehlercode
21.05.2010 Community Vorschlag

Standard / Core

Zahlungsart in der Bestellung nachträglich änderbar
09.04.2010 Community Vorschlag

Standard / Core

Zusätzliche Artikeldaten auf Rechnung
15.03.2010 Community Vorschlag

Standard / Neue Template-Basis

Melden Sie sich bitte im Shopware Account an, um einen Vorschlag einzureichen.

Legende

  • Standard / Core - Diese Funktion steht standardmäßig unabhängig von Zusatzmodulen & Wartungsverträgen zur Verfügung
  • Standard / Neue Template-Basis - Diese Funktion wird nur mit der neuen Templatebasis kompatibel sein.
  • Standard / %Modul% - Diese Funktion steht standardmäßig in Kombination mit dem vermerkten Modul zur Verfügung
  • Premium-Funktion / Wartungsvertrag - Diese Funktion ist Wartungskunden vorbehalten

Technische FAQ

Neue Syntax

Info Alt Neu
Db-Zugriff $this->sSYSTEM->sDB_CONNECTION->Methode() Shopware()->Db()->Methode()
User-Parameter $this->sSYSTEM->_GET["A"] $this->request()->A
- Alternativ $this->sSYSTEM->_GET["A"] $this->request->getParam["A"]
- Alternativ $this->sSYSTEM->_GET["A"] Shopware()->System()->_GET["A]
Session $this->sSYSTEM->_SESSION["A"] Shopware()->Session()->A
Mail-Templates $this->sSYSTEM->sCONFIG["sTEMPLATES"]["key"] Shopware()->Config()->Templates->Key
Config $this->sSYSTEM->sCONFIG["A"] Shopware()->Config()->A
Smarty-Assign $this->sSYSTEM->sSMARTY->assign("key","value") $this->View()->key = value;
Modul-Zugriff $this->sSYSTEM->sMODULES["sARTICLES"]->Methode() Shopware()->Modules()->Articles->Methode()

Informationen zum neuen Controller-System

Mit Shopware 3.5.0 werden sowohl die alten Viewports, als auch die neue Controller-Basis ausgeliefert. Sofern der 3.0.5 Kompatibilitätsmodus aktiviert ist, werden weiterhin die alten Viewports zur Ansteuerung der Templates verwendet. Damit haben Sie eine funktionierende Übergangslösung und müssen die Templates nicht zwangsläufig anpassen. Der Nachteil ist, dass sich viele zukünftige Plugins in diesem Zusammenhang nicht verwenden lassen, da hier Funktionen aus den neuen Templates / Controllern verwendet werden. Perspektivisch sollten daher alle Templates auf die neue Basis umgestellt werden. Hierzu werden wir nach Release natürlich weitere Dokumentationen und Infos bereitstellen.

Die alten Viewports liegen weiterhin im Verzeichnis /engine/core/class/viewports, wohingegen die neuen Controller im Verzeichnis /engine/Shopware/Controllers/Frontend zu finden sind.

Weitere Vorteile die sich durch das neue Controller-System ergeben:

  • Konsistente Verknüpfung zwischen Route / Controller-Datei und Template-Datei
    • z.B. verweist die Route shopware.php/Checkout/Cart auf den Controller Shopware\Controllers\Frontend\Checkout.php und die Methode CartAction
    • Analog dazu liegt das verwendete Template unter Default\Frontend\Checkout\Cart.tpl
  • Komplette Unterstützung der neuen Plugin-Struktur (Events / Vererbung etc.)
  • Zugriff auf alle Enlight und Zend-Framework Komponenten
  • Caching der Controller-Daten
  • Modernere Code-Basis (Kleinere Funktionen, Vorbereitet für Unit-Tests)

Aktueller Stand der Controller-/Viewport-Umstellung

Fertig konvertierte Viewports

Viewport Controller Action
s_admin.php Controllers\Frontend\Account.php Account\Index
s_login.php Controllers\Frontend\Account.php Account\Login
s_logout.php Controllers\Frontend\Account.php Account\Logout
s_ajax.php Controllers\Frontend\Compare.php Compare\Index
s_basket.php Controllers\Frontend\Checkout.php Checkout\Cart
s_campaign.php Controllers\Frontend\Campaign.php In Bearbeitung
s_captcha.php Controllers\Frontend\Captcha.php In Bearbeitung
s_content.php Controllers\Frontend\Content.php In Bearbeitung
s_cat.php Controllers\Frontend\Listing.php Listing\Index
s_custom.php Controllers\Frontend\Custom.php In Bearbeitung
s_detail.php Controllers\Frontend\Detail.php In Bearbeitung
s_newsletter.php Controllers\Frontend\Newsletter.php Werden kombiniert
s_newsletterListing.php Controllers\Frontend\Newsletter.php Werden kombiniert
s_note.php Controllers\Frontend\Node.php In Bearbeitung
s_register1.php Controllers\Frontend\Register.php Register\Index (OnePage)
s_register2.php Controllers\Frontend\Register.php Register\Index (OnePage)
s_register2shipping.php Controllers\Frontend\Register.php Register\Index (OnePage)
s_register3.php Controllers\Frontend\Register.php Register\Index (OnePage)
s_registerFC.php Controllers\Frontend\Register.php Register\Index (OnePage)
s_password.php Controllers\Frontend\Account.php Account\LostPassword
s_sale.php Controllers\Frontend\Checkout.php Checkout\Confirm
s_search.php Controllers\Frontend\Search.php Werden kombiniert
s_searchFuzzy.php Controllers\Frontend\Search.php Werden kombiniert
s_sitemap.php Controllers\Frontend\Sitemap.php In Bearbeitung
s_support.php Controllers\Frontend\Support.php In Bearbeitung
s_tellafriend.php Controllers\Frontend\TellAFriend.php In Bearbeitung
s_ticket.php Controllers\Frontend\Ticket.php Werden kombiniert
s_ticketdirect.php Controllers\Frontend\Ticket.php Werden kombiniert
s_ticketview.php Controllers\Frontend\Ticket.php Werden kombiniert

Neue Controller (Ohne äquivalenten Viewport)

Vorher Controller-Name Status
Nicht vorhanden Controllers\Frontend\Error.php Anzeige von Fehlern / Exceptions
myCore.php\sStart() Controllers\Frontend\Index.php Startseiten-Controller
Nicht vorhanden Controllers\Frontend\Checkout\Cart\Ajax Ajax-Warenkorb
core\php\sAjaxSearch.php Controllers\Frontend\Search.php\AjaxSearch Ajax-Suche
Viewp. s_sale.php Controllers\Frontend\Checkout.php\Finished Bestellabschluss-Seite

Nicht konvertierte Viewports Einige Viewports werden keinen äquivalenten Controller erhalten, da diese in der neuen Version so nicht mehr benötigt werden.

Variablen: Viewport Controller-Name
s_cheaper.php - Nicht mehr benötigt
s_crossselling.php - Nicht mehr benötigt
s_hanseatic_fail.php - Wird entfernt
s_hanseatic_iframe.php - Wird entfernt
s_hanseatic_success.php - Wird entfernt
s_heidelpay_fail.php Controllers\Frontend\Heidelpay.php Bleibt erhalten, wird später als Erweiterung neu umgesetzt
s_heidelpay_iframe.php Controllers\Frontend\Heidelpay.php Bleibt erhalten, wird später als Erweiterung neu umgesetzt
s_heidelpay_success.php Controllers\Frontend\Heidelpay.php Bleibt erhalten, wird später als Erweiterung neu umgesetzt
s_moneybookers_fail.php - Bleibt erhalten, wird später als Erweiterung neu umgesetzt
s_moneybookers_iframe.php - Bleibt erhalten, wird später als Erweiterung neu umgesetzt
s_moneybookers_success.php - Bleibt erhalten, wird später als Erweiterung neu umgesetzt
s_orders.php - Wird entfernt
s_paypalexpressAPIError.php - Bleibt erhalten, wird später als Erweiterung neu umgesetzt
s_paypalexpressGA.php - Bleibt erhalten, wird später als Erweiterung neu umgesetzt
s_paypalexpressGAReg.php - Bleibt erhalten, wird später als Erweiterung neu umgesetzt
s_paypalexpressSale.php - Bleibt erhalten, wird später als Erweiterung neu umgesetzt
s_paypalexpressTXNPending.php - Bleibt erhalten, wird später als Erweiterung neu umgesetzt
s_rma.php - Nicht mehr benötigt

Deprecated Funktionen / Module

Mit 3.5.0 werden einige Bestandteile der Software als "deprecated" definiert. Das bedeutet, dass sich diese Komponenten mit 4.0 grundlegend verändern werden und die API an diesen Stellen wahrscheinlich modifiziert werden wird.

Natürlich werden wir auch den Migrationsprozess 3.5 zu 4.0 möglichst schmerzfrei gestalten, für die Storefront-API wird es also auf jeden Fall einen Kompatiblitätslayer geben.

Zu den neuen Backend-Modulen finden Sie unten weitere Informationen.

Storefront Core-Klassen (z.B. sArticles)

Mit 4.0 werden die Core-Klassen größtenteils in Models ausgelagert und insgesamt refaktoriert.

Maßnahmen:

  • Komplexe Funktionen vereinfachen
  • Redundanzen entfernen
  • Funktionsbenennung und Parameter optimieren
  • Direkten Zugriff auf Request-Variablen aus den Funktionen heraus unterbinden

Backend-Module

Alle neuen Backend-Module werden nach dem gleichen Schema entwickelt und gepflegt, wie die neuen Storefront-Komponentem. Einige Bereiche des Backends wurden bereits in 3.5 umgestellt.

Liste der bereits umgestellten Komponenten:

  • Authentifizierung / Backend - Startdatei index.php
  • Belegerstellung
  • Module wie z.B. Textbaustein-Verwaltung und Cache leeren

Eine vollständige Übersicht finden Sie unter Shopware\Controllers\Backend

Die "alten" Backend-Module liegen unter engine\backend\modules und werden nach und nach auf die neue Code-Basis konvertiert.

Maßnahmen:

  • Umstellung auf Enlight / OOP-Basis
  • Verwendung von Templates
  • Verwendung von PDO
  • Integration Textbausteine / Blöcke

Falls Sie Anpassungen an bestehenden / alten Modulen vornehmen wollen, gibt es folgende Möglichkeiten:

  • Sie führen Ihre Änderungen direkt in den Modulen durch

(Das ist kein Problem, da der Shopware-Update-Assistent diese Änderungen erkennt und Routinen zum Merging gegenüber nachfolgenden Versionen besitzt)

  • Sie verwenden den Backend-Redirect Layer und installieren Kopien Ihrer angepassten Module

(Das sollte der bevorzugte Weg sein)

  • Sie sprechen uns an. Viele Backend-Module werden nun Step by Step auf die neue Basis konvertiert, so

dass es durchaus sein kann, das wir Ihnen für Ihre Anpassungen bereits ein aktualisiertes Backend-Plugin bereitstellen können!

Dokumentation Plugin-System

Im Augenblick gibt es noch keine fertige Dokumentation zum neuen Plugin-System. Einen Überblick über die neue Syntax erhalten Sie aber in unserem 3.5.0 Preview.

Zum Preview

Einführung / Tutorials

Verzeichnis-Struktur

Wo befinden sich die neuen Templates im Filesystem?

Frontend:

  • Hauptverzeichnis: \templates\_default\frontend\
  • Struktur / Index: \templates\_default\frontend\index\index.tpl
  • CSS / Javascript: unter _default\frontend\_resources

Backend:

  • Hauptverzeichnis: \templates\_default\backend\
  • Struktur / Index: \templates\_default\backend\index\index.tpl
  • CSS / Javascript: unter _default\backend\_resources

Wo liegen die Standard-Plugins?

Die Core-Plugins liegen im Verzeichnis engine\Shopware\Plugins\Default. Die Verzeichnisse Community und Local sind für Ihre eigenen Anpassungen reserviert. Community für Plugins aus dem CommunityStore und Local für selbstentwickelte Erweiterungen.

Wo befinden sich die Controller?

Die Controller befinden sich im Verzeichnis engine\Shopware\Controllers\Frontend|Backend

Alle Controller leiten sich von der Klasse Enlight_Controller_Action ab.

Aufbau Controller-Klassenname: Shopware_Controllers_Frontend_Custom

Der Klassenname definiert gleichzeitig den Speicherort der Datei im Filesystem.

Falls mit setTemplate() kein abweichendes Template definiert wurde, verrät der Controller / Methodenname zusätzlich, wo das Template im Dateisystem liegt.

Der Controller Custom mit der Action index, hat also eine korrespondierende Template-Datei im Verzeichnis _default/frontend/custom/index.tpl

Was sind Viewports ?

Die Viewports sind im Prinzip die Controller der Shopware Vorgänger-Versionen. Diese befinden sich nach wie vor aus Kompatibilitätsgründen in jeder Installation und werden bei der Verwendung der alten Template-Basis automatisch aktiv!

Verzeichnis: engine/core/class/viewports

Wo liegen die Frontend-Core-Klassen

engine/core/class

Technischer Einstieg

Wie teste ich den Kompatiblitätslayer?

Die alte Template-Basis von Shopware hatte numerische Keys als Verzeichnisnamen. So lag das Standard-Template z.B. unter \templates\0\de.

Sie können das alte Template aktivieren, indem Sie es in den Subshop-Einstellungen auswählen. Auf diese Weise können Sie z.B. Ihre bestehenden, angepassten Templates in Verbindung mit 3.5 testen.

Wie ist ein Plugin grundsätzlich aufgebaut ?

Jedes Plugin hat zunächst einmal eine zentrale Runtime-Datei, die "Bootstrap.php" heißt. In dieser Datei gibt es jeweils eine "init" Methode, die definiert, was das Plugin macht. In der finalen Version von 3.5 wird es noch zusätzliche Standard-Methoden geben, die die Meta-Daten des Plugins liefern und sich um Installation / Deinstallation kümmern.

Ein guter Überblick über das Plugin-System gibt das Plugin "Recommendation", dieses befindet sich im Verzeichnis Plugins\Default\Frontend\Recommendation

In der Preview-Version fehlen bei diesem Plugin noch die Konfigurationsmöglichkeiten, das beim Code-Review berücksichtigen.

Die Erweiterung nutzt folgende Funktionen aus dem Plugin-System von Shopware:

  • Es wird gezeigt, wie sich ein Plugin in einen bestehenden Controller integriert

(In diesem Fall den Detail-Controller, Enlight_Controller_Action_PostDispatch_Frontend_Detail)

  • Es wird ein neuer Controller definiert und in das System eingebunden
  • Es werden verschiedene Template-Blöcke im System erweitert, um die Recommendations auf der Startseite und der Detailseite einzubinden.

Gerade letzteres ist ziemlich interessant. Über

 
$view->extendsTemplate('frontend/plugins/recommendation/blocks_index.tpl');
 

definiert das Plugin, dass es Teile des Templates modifizieren möchte und übergibt zu diesem Zweck den Pfad zum passenden Rewrite-Template.

Das Template zum modifizieren der Blöcke sieht dann z.B. so aus:

 
{block name='frontend_index_header_javascript_inline' prepend}
 
	jQuery(document).ready(function($) {
		$('.slider').ajaxSlider('ajax', {
			'url': '{url controller=recommendation action=bought article=$sArticle.articleID}',
			'title': 'Kunden kauften auch:',
			'headline': true,
			'navigation': false,
			'scrollSpeed': 800,
			'rotateSpeed': 3000,
			'rotate': false,
			'containerCSS': {
				'marginBottom': '20px'
			}
			});
 
		$('.slider2').ajaxSlider('ajax', {
			'url': '{url controller=recommendation action=viewed article=$sArticle.articleID}',
			'title': 'Kunden haben sich ebenfalls angesehen:',
			'headline': true,
			'navigation': false,
			'scrollSpeed': 800,
			'rotateSpeed': 3000,
			'rotate': false,
			'containerCSS': {
				'marginBottom': '20px'
			}
		});
 
	});
{/block}
 
 
{block name="frontend_detail_index_tabs" append}
<div class="slider"></div>
<div class="slider2"></div>
{/block}
 

Das bedeutet, das man zentral in einer Template-Datei, beliebige Template-Blöcke überschreiben und erweitern kann. Dadurch werden die Änderungen, die ein Plugin am Template vornimmt, zentralisiert.

Wie kann auf die alten Shopware-Ressourcen zugegriffen werden ?

Alle Calls an alte Funktionen / Variablen werden automatisch erkannt und auf die neuen Komponenten umgeschrieben.

Für adoDB und PHPMailer gibt es jeweils einen Layer, der die alte Syntax auf das neue Objekt überträgt.

Dokumentation Template-Basis

Die Template-Dokumentation ist noch in Arbeit, Basis-Informationen erhalten Sie im 3.5.0 Preview.

Zum Preview

Testen der Firebug-Extension

Downloaden Sie die FirePHP für Firebug unter http://www.firephp.org/. Anschließend erhalten Sie Debug-Ausgaben direkt in der Konsole!

Artikel-PDF erstellen

Artikel bewerten

Waren diese Informationen hilfreich? Ja Nein


Kommentare:

Artikel kommentieren


Die mit einem * markierten Felder sind Pflichtfelder.

Weitere interessante Artikel:

Bezeichnung:
Rating:
Klicks:
Datum:
7 Punkte
5224
07.03.2011
7 Punkte
5457
27.04.2011
7 Punkte
4916
28.02.2011

Bestell-Nr.: SW1393

Lieferzeit ca. 5 Tage

€ 1,00

Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*

€ 1,00

Preise inkl. gesetzlicher
MwSt. + Versandkosten*

Kategorien: