Oxid Eshop , offiziell als Oxid Esales bekannt, ist eine leistungsstarke und skalierbare E -Commerce -Standardplattform, die für jedes Segment des Online -Geschäfts optimiert ist. Als Entwickler, der die meisten meiner 9-zu-5-Aufgaben mit Oxid ausgab, stellte ich fest, dass dieses E-Commerce-System extrem einfach anpassen und auszudehnen ist.
Wenn Sie neu in Oxid sind oder nach einer einfachen, aber effektiven Plattform für Ihr eigenes Online -Geschäft suchen, empfehle ich Ihnen, die Serie von Matthew Setter auf Oxid Esales zu lesen, die eine Standardimplementierung entwickelt hat, um loszulegen, um loszulegen mit Oxidsystem.
In diesem zweiteiligen Tutorial werden wir eine neue Oxidmodulverlängerung erstellen, dieunendlich scrolling in die Artikelliste anstelle einer herkömmlichen Pagination implementiert. Während dieses Artikels versuche ich, meine persönlichen Erfahrungen zu teilen, die Ihnen helfen können, Ihren Arbeitsprozess zu beschleunigen, wenn Sie später auf eine Oxidentwicklung stoßen.
Hier ist was Sie erreichen werden.Der gesamte Quellcode wird am Ende der Serie verfügbar sein.
Die Tutorials behandeln die folgenden Bereiche:
Teil 2:
OxidmodulordnerstrukturHINWEIS: Ich gehe davon aus, dass Sie einige Arbeitserfahrungen mit Oxid -Eshop haben (wenn nicht, siehe Matthews Artikel, der oben verlinkt ist). Somit wird es für grundlegende Oxidkonzepte nicht viel Erklärung geben.
aho_infinitescroll/ | |--- controllers/ | |-- aho_infinite_alist.php # A new controller that extends alist.php | |--- out/ | |--admin/ | |--en/ | |-- aho_infinitescroll_lang.php # Back-end English text. | |--de/ | |-- aho_infinitescroll_lang.php # Back-end Deustch text. | | |--css/ | |--> infinitescroll.css # Style for infinite scrolling elements. | | |--img/ | |--> ajax-loader.gif # image indicates the loading status. | |--js/ | |--- translations/ | |--de/ | |--> aho_infinitescroll_lang.php # Front-end Deustch text. | |--en/ | |--> aho_infinitescroll_lang.php # Front-end English text. | |--- views/ | |-- page/ | |-- list/ | |--> aho_infinitescroll_list.tpl # new template file. | |--- metadata.php # Define extension name, classes and other infos. |--- picture.jpg # A thumbnail for the module's functionality.
Hinweis:Die beste Praxis, ein neues Modul zu benennen, besteht darin, den Namen des Anbieters/Entwicklers/der Gruppe und der Funktionalität des Moduls zu kombinieren. Es hilft, den Anbieter und die Funktionalität des neuen Moduls für die Teamzusammenarbeit sofort zu enthüllen.
Somit kann die Formel wie folgt sein:
Lieferantenname Unterstrich Funktionalität
d.h.
- Lieferantenname kann entweder durch den Entwicklernamen oder den Gruppennamen ersetzt werden. Es liegt an dir.
Arbeiten mit metadata.php
Bitte öffnen Sie die Datei metadata.php und fügen Sie die folgenden Codezeilen hinzu:
<span><span><?php </span></span><span> </span><span><span>$sMetadataVersion = '1.0'; # Define version of this file </span></span><span> </span><span><span>// An array to store modules' details </span></span><span><span>$aModule = array </span></span><span><span>( </span></span><span> <span>'id' => 'aho_infinitescroll', </span></span><span> <span>'title' => '[AHO] Infinite Scrolling List', </span></span><span> <span>'description' => 'Infinite Scrolling for article list', </span></span><span> <span>'thumbnail' => 'picture.jpg', </span></span><span> <span>'version' => '1.0.0', </span></span><span> <span>'author' => 'Tuan Anh Ho', </span></span><span> <span>'url' => '', </span></span><span> <span>'email' => 'anhhothai@gmail.com' </span></span><span><span>);</span></span>
aho_infinitescroll/ | |--- controllers/ | |-- aho_infinite_alist.php # A new controller that extends alist.php | |--- out/ | |--admin/ | |--en/ | |-- aho_infinitescroll_lang.php # Back-end English text. | |--de/ | |-- aho_infinitescroll_lang.php # Back-end Deustch text. | | |--css/ | |--> infinitescroll.css # Style for infinite scrolling elements. | | |--img/ | |--> ajax-loader.gif # image indicates the loading status. | |--js/ | |--- translations/ | |--de/ | |--> aho_infinitescroll_lang.php # Front-end Deustch text. | |--en/ | |--> aho_infinitescroll_lang.php # Front-end English text. | |--- views/ | |-- page/ | |-- list/ | |--> aho_infinitescroll_list.tpl # new template file. | |--- metadata.php # Define extension name, classes and other infos. |--- picture.jpg # A thumbnail for the module's functionality.
Der Wertverlängerung gibt eine bestimmte Kern-/Controller -Klasse an, von der das neue Modul erweitert wird. In diesem Fall wird es alist.php sein, das sich an/oxid/application/controller/.
Die Wertvorlagen sind ein Array, in dem alle registrierten Vorlagen des neuen Moduls gespeichert sind. Es wird empfohlen, dass wir dieselbe Ordnerstruktur der ersetzt werden, um die Zusammenarbeit mit der Teamzusammenstellung zu ersetzen. Bitte beachten Sie, dass beide Elemente und Werte von Vorlagen die Dateinamenweiterung einschließen müssen .tpl
Hinweis:
- Die richtige Möglichkeit, eine neue Vorlage zu benennen d.h.
- Wir lassen die neue Vorlagendatei momentan leer und setzen die Datei metadata.php fort. Bitte geben Sie ein Array mit dem Namen "Einstellungen" direkt nach den Elementvorlagen ein:
Die Werteinstellungen sind ein Ort, um alle Konfigurationsoptionen eines neuen Moduls zu registrieren. Gruppe hat immer den Wert mit der ID des Moduls.
<span><span><?php </span></span><span> </span><span><span>$sMetadataVersion = '1.0'; # Define version of this file </span></span><span> </span><span><span>// An array to store modules' details </span></span><span><span>$aModule = array </span></span><span><span>( </span></span><span> <span>'id' => 'aho_infinitescroll', </span></span><span> <span>'title' => '[AHO] Infinite Scrolling List', </span></span><span> <span>'description' => 'Infinite Scrolling for article list', </span></span><span> <span>'thumbnail' => 'picture.jpg', </span></span><span> <span>'version' => '1.0.0', </span></span><span> <span>'author' => 'Tuan Anh Ho', </span></span><span> <span>'url' => '', </span></span><span> <span>'email' => 'anhhothai@gmail.com' </span></span><span><span>);</span></span>
Zeile
festlegen und ihn bis zum Ende verwenden.Da wir das Modul zum ersten Mal aktivieren, wird diese Einstellung in zwei Tabellen oxconfig
undoxmodul (Tabelle oxconfig) und oxcfgmodul (Tabelle oxconfigdisplay) mit dem Wertmodul: AHO_InfinitesCroll. Dies ist sehr praktisch, da es automatisch passiert. Sie können diesem Online -Dokument der Erweiterungsmetadaten folgen, um mehr über andere mögliche Argumente zu lesen.
Als nächstes schauen wir uns die Back-End-Übersetzungen an.Im letzten Abschnitt haben wir die Einstellungen für das neue Modul hinzugefügt. Jetzt ist es Zeit, mit seiner Übersetzung zu arbeiten.
Bitte öffnen Sie die Datei AHO_Infinitescroll/out/admin/en/aho_infinitescroll_lang.phpand Fügen Sie die folgenden Zeilen hinzu.
syntax So addieren Übersetzungen für eine Konfigurationsoption Shop_module _ Setting_Column_Name.
<span>'extend' => array( </span> <span>'alist' => 'aho_infinitescroll/controllers/aho_infinitescroll_alist' </span> <span>), </span> <span>'templates' => array( </span> <span>'aho_infinitescroll_list.tpl' </span> <span>=> 'aho_infinitescroll/views/page/list/aho_infinitescroll_list.tpl' </span> <span>)</span>
Bitte öffnen Sie aho_infinitescroll/Controller/aho_infinite_alist.php und fügen Sie die folgenden Zeilen hinzu:
aho_infinitescroll/ | |--- controllers/ | |-- aho_infinite_alist.php # A new controller that extends alist.php | |--- out/ | |--admin/ | |--en/ | |-- aho_infinitescroll_lang.php # Back-end English text. | |--de/ | |-- aho_infinitescroll_lang.php # Back-end Deustch text. | | |--css/ | |--> infinitescroll.css # Style for infinite scrolling elements. | | |--img/ | |--> ajax-loader.gif # image indicates the loading status. | |--js/ | |--- translations/ | |--de/ | |--> aho_infinitescroll_lang.php # Front-end Deustch text. | |--en/ | |--> aho_infinitescroll_lang.php # Front-end English text. | |--- views/ | |-- page/ | |-- list/ | |--> aho_infinitescroll_list.tpl # new template file. | |--- metadata.php # Define extension name, classes and other infos. |--- picture.jpg # A thumbnail for the module's functionality.
Dieser neue Controller macht nur ein paar Dinge:
Ändern Sie den Wert von $ _Sthistemplate in aho_infinitescroll.tpl, den wir in metadata.php definiert haben: Bitte beachten Sie, dass wir hier nur den Vorlagennamen angeben müssen. Daher sollte der Vorlagenname eindeutig sein. Es hilft dem System, die richtige Vorlage schnell zu finden.
Der Funktionsrender tut nichts anderes, als nur den neuen Vorlagennamen zurückzugeben.
Die Funktion GetViewTypelist gibt den Wert der Datenspalte SinfiniteCrollListType zurück, die in metadata.php definiert ist. Die Vorlage aho_infinitescroll.tpl verwendet diesen Wert, um festzustellen, welcher Ansichtstyp für die Artikelliste angewendet wird.
Sie können beachten, dass der Name der erweiterten Klasse aho_infinitescroll_alist_parent ist. Die Formel ist der Modul -Controller -Name _ Parent.
<span><span><?php </span></span><span> </span><span><span>$sMetadataVersion = '1.0'; # Define version of this file </span></span><span> </span><span><span>// An array to store modules' details </span></span><span><span>$aModule = array </span></span><span><span>( </span></span><span> <span>'id' => 'aho_infinitescroll', </span></span><span> <span>'title' => '[AHO] Infinite Scrolling List', </span></span><span> <span>'description' => 'Infinite Scrolling for article list', </span></span><span> <span>'thumbnail' => 'picture.jpg', </span></span><span> <span>'version' => '1.0.0', </span></span><span> <span>'author' => 'Tuan Anh Ho', </span></span><span> <span>'url' => '', </span></span><span> <span>'email' => 'anhhothai@gmail.com' </span></span><span><span>);</span></span>
Die obige Zeile hilft auszudrucken, welche Kernklasse in der aktuellen Ansicht verwendet wird. Wenn Sie die Kernklasse erkennen möchten, die AJAX -Anfragen ausführt, benötigen Sie ein wenig mehr Aufwand mit Chromedev -Tools.
Bisher haben wir die schrittweise Back-End-Implementierung durchlaufen, um eine neue Modulerweiterung zu entwickeln. Im Moment können wir das Modul aktivieren, um zu sehen, was wir im Administration Dashboard haben werden. Wenn Probleme auftreten, können Sie Ihren Kommentar hier hinterlassen. Ich werde mein Bestes geben, um dir zu helfen.
Der nächste Teil wird in Details zur wesentlichen Front-End-Implementierung eingehen, die aus der Anpassung der Vorlage und dem Hinzufügen von JavaScript für den Workflow für das unendliche Scrollen besteht.
Das obige ist der detaillierte Inhalt vonErstellen Sie eine unendliche Schriftrollenliste für Oxid Eshop - Grundlagen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!