Es scheint, als hätten sie keine Dokumentation außer einigen API-Aufrufen in ihren offiziellen Foren. Ich habe Erfahrung mit dem Zend-Framework und dem CodeIgniter-Framework. Kann mir ein OpenCart-Meister den besten Weg empfehlen, es zu lernen und in kürzester Zeit zu meistern? Ich muss bald ein großes Projekt damit machen.
98
Antworten:
OpenCart 1.5.X Entwickler-Kurzanleitung für Anfänger
Dieses Handbuch richtet sich an Entwickler, die bereits mit PHP, OOP und der MVC-Architektur vertraut sind
Im Folgenden sehen Sie Beispiele für die Katalogseite des Warenkorbs. Die Administratorseite ist in ihrer Funktion identisch, mit Ausnahme der Ansichten, die im entsprechenden Abschnitt angegeben sind
Bibliotheken verstehen
Auf alle Bibliotheksfunktionen kann über Controller, Modell und Ansichten zugegriffen werden
$this->library_name
. All dies finden Sie im/system/library/
Ordner. Um beispielsweise auf die Produkte des aktuellen Warenkorbs zuzugreifen, müssen Sie dieCart
Klasse verwenden, die sich in befindet/system/library/cart.php
und auf die zugegriffen werden kann$this->cart->getProducts()
Häufig verwendete Gegenstände
customer.php
- Kundenbezogene Funktionenuser.php
- Benutzerbezogene Admin-Funktionencart.php
- Wagenbezogene Funktionenconfig.php
- Alle Einstellungen werden daraus geladenurl.php
- Funktionen zur URL-GenerierungGrundlegendes zum Routenparameter
Das OpenCart-Framework stützt sich auf den
route=aaa/bbb/ccc
Parameter in der Abfragezeichenfolge, um zu wissen, was geladen werden soll, und ist die grundlegende Funktion, um die Dateien zu finden, die Sie für jede Seite bearbeiten müssen. Die meisten Routen verwenden eigentlich nur dieaaa/bbb
Teile, die als zwei Teile angesehen werden sollten, einige enthalten jedoch drei Teile.aaa/bbb/ccc
Der erste Teilaaa
bezieht sich im Allgemeinen auf den Ordner in einem generischen Ordner wie dem Controller oder den Vorlagenordnern. Der zweite Teil bezieht sich normalerweise auf den Dateinamen ohne die relevante.php
oder.tpl
Erweiterung. Der dritte Teil wird im folgenden Abschnitt "Grundlegendes zu Controllern" erläutertSprachen verstehen
Sprachen werden im
/catalog/language/
Ordner imyour-language
Unterordner gespeichert . In diesem Fall werden allgemeine Textwerte, die auf verschiedenen Seiten verwendet werden, in deryour-language.php
Datei im Ordner gespeichert. Für die englische Sprache auf der Katalogseite finden Sie die Werte incatalog/language/english/english.php
. Für einen bestimmten Seitentext benötigen Sie denroute
für die Seite (Dies ist im Allgemeinen der Fall, aber nicht immer, da Sie eine beliebige Sprachdatei angeben können). Auf der Suchseite befindet sich beispielsweise die Routeproduct/search
, und daher befindet sich der sprachspezifische Text für diese Seite incatalog/language/english/product/search.php
(Beachten Sie, dass der Name und der Unterordner der Datei mit der Route übereinstimmen, der die Route folgt.php
.Um die Sprache in einen Controller zu laden, verwenden Sie
Anschließend können Sie die Sprachbibliotheksfunktion verwenden
get
, um bestimmte Sprachtexte abzurufen, zDie Sprachvariablen werden in der Sprachdatei mithilfe einer speziellen Variablen zugewiesen, bei der
$_
es sich um ein Array von Schlüsseln und Textwerten handelt. In deinem/catalog/language/english/product/search.php
solltest du etwas ähnliches findenDie Werte in der globalen Sprachdatei
english/english.php
werden automatisch geladen und können ohne die$this->language->load
Methode verwendet werdenController verstehen
Controller werden basierend auf dem geladen
route
und sind ziemlich einfach zu verstehen. Controller befinden sich im/catalog/controller/
Ordner. Im letzten Beispiel befindet sich der Controller für die Suchseite in/product/search.php
diesem Ordner. Beachten Sie erneut, dass die Route.php
verwendet wird , der gefolgt wird.Wenn Sie die Controller-Datei öffnen, wird ein Pascal Case-Klassenname angezeigt, der die
Controller
Klasse erweitertControllerProductSearch
. Dies ist wiederumController
routenspezifisch , gefolgt vom Namen des Unterordners und des Dateinamens, ohne dass die Erweiterung groß geschrieben wird. Die Großschreibung ist eigentlich nicht erforderlich, wird jedoch zur besseren Lesbarkeit empfohlen. Es ist erwähnenswert, dass Klassennamen keine anderen Werte aus dem Unterordner und Dateinamen als Buchstaben und Zahlen übernehmen. Unterstriche werden entfernt.Innerhalb der Klasse befinden sich die Methoden. Methoden in der deklarierten Klasse
public
können über die Route ausgeführt werden -private
nicht. Standardmäßig wird bei einer zweiteiligen Standardroute (aaa/bbb
oben) eine Standardmethodeindex()
aufgerufen. Wenn der dritte Teil einer Route (ccc
oben) verwendet wird, wird diese Methode stattdessen ausgeführt. Lädt beispielsweiseaccount/return/insert
die/catalog/controller/account/return.php
Datei und die Klasse und versucht, dieinsert
Methode aufzurufenModelle verstehen
Modelle in OpenCart befinden sich im
/catalog/model/
Ordner und sind nach Funktion und nicht nach Route gruppiert. Daher müssen Sie sie über in Ihren Controller ladenDadurch wird die Datei in den
xxx
aufgerufenen Unterordner geladenyyy.php
. Es kann dann über das Objekt verwendet werdenund wie bei Controllern können Sie nur deren
public
Methoden aufrufen . Um beispielsweise die Größe eines Bildes zu ändern, verwenden Sie dastool/image
Modell und rufen seineresize
Methode wie folgt aufGrundlegendes zur Variablenzuweisung in Ansichten des Controllers
Um Werte von der Steuerung an die Ansicht zu übergeben, müssen Sie lediglich Ihre Daten der
$this->data
Variablen zuweisen , bei der es sich im Wesentlichen um ein Array von Schlüssel => Wertepaaren handelt. Als BeispielDer Zugriff in einer Ansicht ist ein wenig verständlich, wenn Sie mit der Methode extract () vertraut sind, mit der jeder Schlüssel in eine Variable konvertiert wird. So wird der
example_var
Schlüssel$example_var
als solcher in der Ansicht und kann als solcher darauf zugegriffen werden.Themen verstehen
Themen sind nur für die Katalogseite verfügbar und bestehen im Wesentlichen aus einem Ordner mit Vorlagen, Stylesheets und Themenbildern. Themenordner werden im
/catalog/view/theme/
Ordner abgelegt, gefolgt vom Namen des Themas. Der Ordnername ist mit Ausnahme desdefault
Ordners nicht von BedeutungDie Admin-Seite verwendet
/admin/view/template/
(Überspringen des/theme/theme-name/
Pfads, da keine unterschiedlichen Themen zulässig sind)Vorlagendateien befinden sich in a
template
Ordner innerhalb des Themenordners. Sollte eine Vorlage für das aktuell ausgewählte Thema nicht verfügbar sein, wird stattdessen die Vorlage des Standardordners als Fallback verwendet. Dies bedeutet, dass Themen mit sehr wenigen Dateien erstellt werden können und dennoch voll funktionsfähig sind. Es reduziert auch Codeduplizierungen und Probleme, wenn Upgrades durchgeführt werdenAnsichten verstehen (Vorlagen)
Wie bei Sprache und Modellen beziehen sich die Ansichtsdateien im Allgemeinen auf die Route, müssen jedoch überhaupt nicht vorhanden sein. Vorlagen auf der Katalogseite werden normalerweise in gefunden,
/catalog/view/theme/your-theme/template/
sofern sie nicht vorhanden sind. In diesem Fall werden die Vorlagen des Standardthemas verwendet. Für unser Beispiel auf der Suchseite oben lautet die Dateiproduct/search.tpl
. Für Routen mit drei Teilen gilt dies im Allgemeinen,aaa/bbb_ccc.tpl
obwohl es keine fest festgelegten Regeln gibt. Im Administrator folgen die meisten Seiten diesem Beispiel, mit der Ausnahme, dass Seiten, auf denen Elemente wie die Produktlistenseite aufgelistet sind,catalog/product_list.tpl
und das Produktbearbeitungsformular vorhanden sindcatalog/product_form.tpl
. Auch diese sind nicht festgelegt, sondern ein Standard für den Standardwagen.Die Vorlagendatei ist in der Tat nur eine andere PHP-Datei, aber mit der Erweiterung .tpl und wird tatsächlich in der Controller-Datei ausgeführt. Daher können alle Dinge, die Sie in einem Controller codieren können, in einer Vorlagendatei ausgeführt werden (obwohl dies nicht empfohlen wird, es sei denn, dies ist absolut erforderlich notwendig)
Grundlegendes zum Datenbankobjekt
Abfragen werden mit ausgeführt
DB_PREFIX
Wie der Name schon sagt, handelt es sich um eine Konstante, die das Datenbankpräfix enthält, falls vorhanden$result
gibt ein Objekt fürSELECT
Abfragen zurück, das einige Eigenschaften enthält$result->row
enthält die Daten der ersten Zeile, wenn eines oder mehrere als assoziatives Array zurückgegeben werden$result->rows
enthält eine Reihe von Zeilenergebnissen, ideal zum Durchlaufen von foreach$result->num_rows
enthält die Anzahl der zurückgegebenen ErgebnisseEs gibt auch einige zusätzliche Methoden für das
$this->db
Objekt$this->db->escape()
verwendet mysql_real_escape_string () für den übergebenen Wert$this->db->countAffected
Gibt die Anzahl der von einerUPDATE
Abfrage betroffenen Zeilen usw. zurück$this->db->getLastId()
Gibt die letzte automatische Inkrement-ID mit mysql_insert_id () zurück.Reservierte Variablen verstehen
OpenCart hat Variablen Verwendung anstelle des Standard vorgegeben
$_GET
,$_POST
,$_SESSION
,$_COOKIE
,$_FILES
,$_REQUEST
und$_SERVER
$_SESSION
wird bearbeitet, indem$this->session->data
Daten ein assoziatives Array sind, das das nachahmt$_SESSION
Auf alle anderen kann mit zugegriffen werden
$this->request
und sie wurden "gereinigt", um den aktivierten / deaktivierten magischen Anführungszeichen zu entsprechen$_GET
wird$this->request->get
$_POST
wird$this->request->post
$_COOKIE
wird$this->request->cookie
$_FILES
wird$this->request->files
$_REQUEST
wird$this->request->request
$_SERVER
wird$this->request->server
Zusammenfassung
Obwohl das oben Genannte kein kugelsicherer Leitfaden für Entwickler ist, wird er hoffentlich als guter Ausgangspunkt für diejenigen dienen, die anfangen
quelle
Globale Bibliotheksmethoden: Grundlegende Funktionen der OpenCart-Bibliothek mit ihren Funktionen. Die meisten dieser Funktionen können von überall im Katalog oder in den Administratorordnern (Controller, Modelle, Ansichten) aufgerufen werden.
quelle
Es gibt eine OpenCart Wiki-Website mit Dokumentation für Anfänger. Folgen Sie den unten angegebenen URLs für weitere Details:
http://wiki.opencarthelp.com/doku.php?id=starthttp://wiki.opencarthelp.com/doku.php?id=methods_referenceINTERNET ARCHIVE Links
http://web.archive.org/web/20160305131349/http://wiki.opencarthelp.com/doku.php?id=start http://web.archive.org/web/20160305131349/http://wiki .opencarthelp.com / doku.php? id = Methodenreferenz
ZB Methodenreferenz enthält Details für:
Es befinden sich noch einige Seiten im Aufbau, aber es wird hilfreich sein.
[Aktualisieren]
Ab Januar 2018 ist die Domain opencarhelp.com nicht mehr verfügbar.
quelle
Obwohl dieses Thema bereits mehrfach beantwortet wurde, möchte ich aufgrund meiner Erfahrung einen anderen Ansatz zur Beherrschung von OpenCart anbieten.
Lernen durch Tun
Wenn Sie Ihr eigenes OpenCart-Framework mit einer Handvoll Dateien von Grund auf neu erstellen, können Sie verstehen, wie alles zusammengesetzt ist. Ich werde die Dateistruktur von OpenCart für Sie nachahmen.
Erstellen Sie eine Datei
index.php
1. Registrierung
Opencart verwendet das Registrierungsmuster, um alle Instanzen geladener Klassen aufzulisten. Es ist das Herz Ihrer OpenCart-App. Das Registrierungsobjekt wird dann an jede Kategorie, jedes Modell und jede Bibliothek weitergegeben, um schnell auf andere Objekte zugreifen zu können.
Erstellen Sie eine Datei mit Pfad
/system/engine/registry.php
in deinem
index.php
2. Ausgabe
Fügen wir nun eine Ausgabe hinzu, die in Zukunft unser HTML sein wird. Schließlich besteht die ganze Idee darin, eine Textzeichenfolge an den Browser zu senden.
Erstelle Datei
system/library/response.php
und in deinem
index.php
3. Controller
Stellen Sie sich Controller als Seiten vor. Sie definieren, was dem Client angezeigt wird: Text, HTML, JSON, Download oder sogar ein Bild. Im Moment wollen wir nur eine Seite, die Text sendet.
Wir werden einen Controller für die
home
Seite erstellen .Fügen Sie eine Datei mit Pfad hinzu
catalog/controller/common/home.php
und bearbeiten Sie Ihre
index.php
4. Router
Wir wollen nicht, dass Controller fest codiert werden, richtig. Wir werden einen Parameter
route
aus der URL-Adresse verwenden, um unserem Einkaufswagen mitzuteilen, welcher Controller geladen werden soll.Erstellen Sie eine Datei mit Pfad
system/library/request.php
Erstellen Sie die Router-Klasse, die für die Initialisierung der Controller-Datei basierend auf der Route verantwortlich ist (mit anderen Worten: Rufen Sie den Controller dynamisch auf).
Laden Sie es in Ihre
index.php
Dieser Beitrag ist bereits zu lang, aber ich hoffe, er vermittelt ein grundlegendes Verständnis des MVC-Musters in OpenCart.
Schauen Sie sich auch mein Youtube https://www.youtube.com/dreamvention und mein Blog https://dreamvention.com/blog an. Ich werde dort weitere Tipps und Tutorials für euch veröffentlichen!
quelle
PHP ist eine ziemlich große Sprache mit über 5000 integrierten Funktionen. Eine Strategie zum Erlernen einer neuen Plattform besteht darin, zu ermitteln, welche Funktionen am häufigsten verwendet werden, und einige Zeit damit zu verbringen, diese sehr gut kennenzulernen.
Ich habe einige Abfragen zum OpenCart-Quellcode ausgeführt und die 10 am häufigsten verwendeten Funktionen sind:
Alle hier aufgeführten 52 sowie Linux-Bash-Befehle, die Sie in jeder Codebasis verwenden können, um häufig verwendete Funktionen zu identifizieren: https://www.antropy.co.uk/blog/efficient-learning-for-new-opencart-developers/
quelle
Diese Wiedergabeliste für YouTube-Videos kann auch hilfreich sein, um OpenCart-Entwickler Gurus zu werden:
OpenCart Videos Tutorials
MVCL-Muster, Codefluss und Anforderung und Antwort in OpenCart Zeigt MVCL-Muster, Codefluss und Anforderung und Antwort in OpenCart an. Sie beschreiben den Fluss wie im Bild unten:
Opencart-Modul installieren, konfigurieren und deinstallieren Es werden drei Möglichkeiten zum Hochladen von Modulen sowie zum Installieren, Konfigurieren und Deinstallieren des OpenCart 3-Moduls / der OpenCart 3-Erweiterung gezeigt.
Layouts und Position in Opencart 3 Es beschreibt die OpenCart 3-Layouts und -Positionen. Es wird gezeigt, wie benutzerdefinierte Layouts für verschiedene Seiten angezeigt werden, und es werden Beispiele für Kategorieseiten gegeben. Wir zeigen das unterschiedliche Layout für eine andere Kategorie.
Ereignisübersicht von Opencart Sie erfahren, was Ereignisse in OpenCart sind, wie sie funktionieren und was sie so nützlich macht.
Opencart-API-Dokumentation für Entwickler Dieses Video zeigt, wie Sie eine benutzerdefinierte Opencart-API verwenden und erstellen
Sobald Sie diese Videos sehen, können Sie mit dem Codieren beginnen :)
quelle