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 KommentareInhaltsverzeichnis
- 1 Vorwort
- 1.1 Aktuelle Version
- 1.2 Nächste Version
- 1.3 Weiterführende Artikel
- 1.4 Allgemeine FAQ
- 1.4.1 Ich habe Fragen zum Release Candidate, die dieses Dokument nicht beantwortet
- 1.4.2 Inwiefern eignet sich der Release-Candidate für den Produktivbetrieb?
- 1.4.3 Worauf soll ich beim Testen der Preview-Version besonders achten?
- 1.4.4 Wo kann ich Bugs oder Vorschläge melden?
- 1.4.5 Welche Lizenzen sind in der Preview freigeschaltet?
- 1.4.6 Welche Dateien sind verschlüsselt?
- 1.5 Feature FAQ
- 1.5.1 Wo liegen die Schwerpunkte bei 3.5.0?
- 1.5.2 Welche Komponenten sind final?
- 1.5.3 Bereits integrierte Features
- 1.5.4 Fehlende / Fehlerhafte Funktionen
- 1.5.5 Bugs
- 1.5.6 Was kommt noch bis zum finalen Release ?
- 1.6 Technische FAQ
- 1.6.1 Neue Syntax
- 1.6.2 Informationen zum neuen Controller-System
- 1.6.2.1 Aktueller Stand der Controller-/Viewport-Umstellung
- 1.6.3 Deprecated Funktionen / Module
- 1.6.3.1 Storefront Core-Klassen (z.B. sArticles)
- 1.6.3.2 Backend-Module
- 1.6.4 Dokumentation Plugin-System
- 1.7 Einführung / Tutorials
- 1.7.1 Verzeichnis-Struktur
- 1.7.1.1 Wo befinden sich die neuen Templates im Filesystem?
- 1.7.1.2 Wo liegen die Standard-Plugins?
- 1.7.1.3 Wo befinden sich die Controller?
- 1.7.1.4 Was sind Viewports ?
- 1.7.1.5 Wo liegen die Frontend-Core-Klassen
- 1.7.2 Technischer Einstieg
- 1.7.2.1 Wie teste ich den Kompatiblitätslayer?
- 1.7.2.2 Wie ist ein Plugin grundsätzlich aufgebaut ?
- 1.7.2.3 Wie kann auf die alten Shopware-Ressourcen zugegriffen werden ?
- 1.7.3 Dokumentation Template-Basis
- 1.7.4 Testen der Firebug-Extension
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 ?
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.
13.08.2010 Community Vorschlag
Standard / Neue Template-Basis
05.02.2010 Community Vorschlag
Standard / Core
05.08.2010 Community Vorschlag
Standard / Core
29.01.2010 (ID: #2646)
Standard / Core
11.06.2010 Community Vorschlag
Standard / Core
11.05.2010 Community Vorschlag
Standard / Neue Template-Basis
06.05.2010 Community Vorschlag
Standard / Core
29.04.2010 Community Vorschlag
Standard / Core
13.08.2010 Community Vorschlag
Standard / Neue Template-Basis
29.01.2010 (ID: #2633)
Standard / Core
26.03.2010 Community Vorschlag
Standard / Kundengruppen
13.08.2010 Community Vorschlag
13.08.2010 Community Vorschlag
Standard / Neue Template-Basis
01.04.2010 Community Vorschlag
Standard / Core
13.08.2010 Community Vorschlag
Standard / Core
12.07.2010 (ID: #3076)
Standard / Core
13.08.2010 Community Vorschlag
Standard / Core
26.03.2010 Community Vorschlag
Standard / Neue Template-Basis
11.04.2010 Community Vorschlag
Premium-Funktion / Wartungsvertrag
21.05.2010 Community Vorschlag
Standard / Core
09.04.2010 Community Vorschlag
Standard / Core
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.
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.
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
Kommentare:
Artikel kommentieren
Weitere interessante Artikel:
Bestell-Nr.: SW1393
Lieferzeit ca. 5 Tage
Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*
Preise inkl. gesetzlicher
MwSt. + Versandkosten*
Kategorien: