Da wir die zuletzt ausgeführte Abfrage in der Variablen $ last_query gespeichert haben, können Sie diese verwenden, um die zuletzt ausgeführte Abfrage zu drucken.
Hinweis: Der obige Code funktioniert nur, wenn Ihr Modell appModel erweitert, da wir die Funktion in app_model.php definiert haben
So drucken Sie alle ausgeführten Abfragen:
Schreiben Sie den folgenden Code in das Modell, um alle Abfragen anzuzeigen, die im Code ausgeführt wurden:
In Opencart gibt es eine Funktion zum automatischen Senden von Bestell-E-Mails an den Administrator, die wir nach der Bestellung an den Kunden senden.
Für Opencart 2.2
Führen Sie die folgenden Schritte aus, um das Senden von Bestell-E-Mails an den Administrator zu automatisieren:
Öffnen Sie das Admin-Panel und gehen Sie zu System -> Einstellung. Auf dieser Seite sehen Sie einen Store-Eintrag.
Öffnen Sie einen Shop im Bearbeitungsmodus, indem Sie auf das Bearbeitungssymbol klicken.
Öffne das “Option“Tabieren Sie und suchen Sie nach”Benachrichtigungsmail für neue Bestellungen” im Checkout-Bereich. Wählen Sie das ‘Ja‘ Optionsfeld und speichern.
Siehe unten Screenshots
Hinweis: Funktion Bestellhistorie hinzufügen() in der Datei catalog/model/checkout/order.php wird verwendet, um Mail an Mail an den Administrator zu senden. Wenn Sie Änderungen an der E-Mail vornehmen möchten, können Sie diese Funktion ausführen. Suchen nach ‘if ($this->config->get(‘config_order_mail’)) {‘ um den Code zu finden, um eine E-Mail an den Administrator zu senden.
Für Opencart 2.3
Führen Sie die folgenden Schritte aus, um das Senden von Bestell-E-Mails an den Administrator zu automatisieren:
Öffnen Sie das Admin-Panel und gehen Sie zu System -> Einstellung. Auf dieser Seite sehen Sie einen Store-Eintrag.
Öffnen Sie einen Shop im Bearbeitungsmodus, indem Sie auf das Bearbeitungssymbol klicken.
Öffne das ‘E-mail‘ Tab und suchen Sie nach “Benachrichtigungsmail” in dem “E-Mail-Benachrichtigungen” Abschnitt. Markieren Sie das Kontrollkästchen ‘Bestellungen‘ und speichern.
Siehe unten Screenshots
Hinweis: Function addOrderHistory() in catalog/model/checkout/order.php Datei wird verwendet, um E-Mail an E-Mail an den Administrator zu senden. Wenn Sie Änderungen an der E-Mail vornehmen möchten, können Sie diese Funktion ausführen. Suchen nach ‘if (in_array(‘order’, (array)$this->config->get(‘config_mail_alert’))) {‘ um den Code zu finden, um eine E-Mail an den Administrator zu senden.
Schlussendlich:
Um die Funktionalität Ihres OpenCart-Shops zu verbessern, bietet Knowband eine große Auswahl an kostenlosen und kostenpflichtigen OpenCart-Erweiterungen. Mit einer Vielzahl von Funktionen, die in diesen Modulen verfügbar sind, kann der Store-Administrator sein Geschäft einfach starten, entwickeln und ausbauen. Um mehr über die Funktionen und Merkmale von OpenCart-Modulen zu erfahren, können Sie uns gerne unter support@Knowband.com erreichen.
Nachdem Sie diesen Blog gelesen haben, können Sie alle Produkte anzeigen, wenn die Suche leer ist.
Problem Statement
Wenn der Benutzer derzeit in Opencart nach einer Zeichenfolge mit der Suchfunktion sucht, werden keine Produkte zurückgegeben, wenn kein Suchprodukt in der Datenbank gefunden wurde. Wir möchten, dass alle Produkte zurückgegeben werden, wenn die Suche leer ist.
Code-Implementierung
Um dies zu erreichen, müssen wir einige Änderungen an der Modellfunktion vornehmen, die wir zum Abrufen von Produkten aus der Datenbank anhand des eingegebenen Suchbegriffs verwenden. Hier nehmen wir Änderungen vor getProducts () ?function of model Katalog / Modell / Katalog / Produkt.php da wir diese Funktion verwenden, um Ergebnisse auf Basis des Suchbegriffs anzuzeigen.
Hinweis: Sie können dieselben Änderungen in der Modellfunktion vornehmen, mit der Sie Produkte abrufen. Hier ist der Code, den wir im Modell hinzugefügt haben:
/ * Überprüft, ob das Ergebnis leer ist (betroffene Zeilen 0) der Abfrage, die ausgeführt wird, um Daten anhand des Suchbegriffs abzurufen. * Wenn ja, dann neue Abfrage hinzugefügt, um neu hinzugefügte Produkte abzurufen und gleich auszuführen. * Auf diese Weise zeigen wir unsere neuen Produkte auf der Suchseite an, anstatt eine leere Seite anzuzeigen. * / if ($ query-> num_rows == 0) {$ sql = "SELECT DISTINCT p.product_id FROM". DB_PREFIX. "Produkt p LEFT JOIN". DB_PREFIX. "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN". DB_PREFIX. "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' UND p.date_available <= NOW () AND p2s.store_id = '". (int) $ this-> config-> get ('config_store_id'). "'GROUP BY p.product_id ORDER BY p.product_id DESC LIMIT 20"; $ query = $ this-> db-> query ($ sql); }
Fügen Sie diesen Code unmittelbar nach der Ausführung der Hauptabfrage oder direkt nach der Zeile ein ($ query = $ this-> db-> query ($ sql)). In diesem Code haben wir zunächst die Anzahl der betroffenen Zeilen durch die Hauptabfrage (zum Abrufen von Daten anhand des Suchbegriffs) überprüft. Wenn die betroffene Zeile 0 ist ($ query-> num_rows == 0) fügte dann unsere Abfrage hinzu, um neue hinzugefügte Produkte abzurufen. Auf diese Weise zeigen wir unsere neuen Produkte auf der Suchseite an, anstatt eine leere Seite anzuzeigen.
Hinweis: Hier haben wir eine Anfrage geschrieben, um neu hinzugefügte Produkte aus der Datenbank abzurufen, wenn die Suche leer ist. Sie können auch eine Abfrage hinzufügen, um Sonder- oder Bestsellerprodukte entsprechend Ihrer Anforderung abzurufen.
Zusammenfassung
Nachdem Sie die folgenden Änderungen in der Modelldatei vorgenommen haben, werden neu hinzugefügte Produkte angezeigt, wenn die Suche leer ist.
Nach dem Lesen dieses Blogs können Sie Produkte aus der Opencart-Datenbank auf der Grundlage von Parametern abrufen, die von der URL übergeben werden.
Anforderung
Die neuesten Produkte müssen auf der Grundlage der übergebenen Parameter in der URL angezeigt werden. Mit diesem Parameter müssen wir entscheiden, ob wir spezielle Produkte anzeigen müssen oder nicht.
Code-Implementierung
Um dies umzusetzen, müssen wir Änderungen an Controller und Modell vornehmen. Im Controller haben wir die Bedingung zum Übergeben von Parametern hinzugefügt, und im Modell nehmen wir entsprechend dem übergebenen Parameter Änderungen in der Abfrage vor. Um den Zustand zu behandeln, den wir verwenden show_special Parameter im Code. Unten ist der Code, den wir im Controller hinzufügen müssen (Katalog / Controller / Erweiterung / Modul / latest.php):
/ * Überprüfung des show_special-Schlüssels im get-Parameter * Dieser Schlüssel ($ show_special) wird zum bedingten Abrufen von Daten aus der Datenbank verwendet. * dh wenn $ show_special = 1 dann Produkte anzeigt, die speziell sind * $ show_special = 0, dann Produkte anzeigen, die nicht speziell sind * else * Alle Produkte anzeigen, unabhängig von speziellen * / if (isset ($ this-> request-> get [' show_special '])) {// Übergabe des Werts in Variable, wenn in der URL $ show_special = $ this-> request-> get [' show_special '] angegeben; } else {// Andernfalls wird ein leerer String übergeben. $ show_special = ''; } // Erstellen einer Variablen, die an das Modell übergeben werden soll $ filter_data = array ('start' => ($ page - 1) * $ limit, 'limit' => $ limit, 'show_special' => $ show_special); // Aufruf einer Modellfunktion zum Abrufen von Daten aus der Datenbank gemäß den im Array filter_data übergebenen Daten. $ results = $ this-> model_catalog_product-> getProductLatest ($ filter_data);
In diesem Code haben wir zuerst überprüft, ob 'show_special'Parameter ist in der URL festgelegt oder nicht. Wenn ja, dann setze den Wert des Parameters in einer Variablen $ show_special und wenn nein, dann Variable als leer setzen. Dann haben wir ein Array erstellt ($ default_data) mit den Werten, für die wir Produkte aus der Datenbank abrufen müssen. Dann haben wir die Modellfunktion aufgerufen getProductLatest () neueste Produkte entsprechend der übergebenen Variablen abrufen ($ filter_data) in der Funktion. Hier ist die Funktion, die wir in model hinzufügen müssen (Katalog / Modell / Katalog / Produkt):
public function getProductLatest ($ data = array ()) {// Parameter für $ join und $ condition setzen, um Daten von speziellen Produkten abzurufen, wenn ($ data ['show_special'] == '1') {$ join = "LEFT JOIN" . DB_PREFIX. "product_special ps ON (ps.product_id = p.product_id)"; $ condition = "AND ps.customer_group_id = '". (int) $ this-> config-> get ('config_customer_group_id'). "'AND ((ps.date_start =' 0000-00-00 ') ODER ps.date_start <JETZT ()) AND (ps.date_end =' 0000-00-00 'ODER ps.date_end> JETZT () ODER ps.date_end = '0001-01-01')) "; } // Einstellung der Parameter $ join und $ condition, um Daten von Produkten abzurufen, die nicht spezifiziert sind elseif ($ data ['show_special'] == '0') {$ join = "LEFT JOIN". DB_PREFIX. "product_special ps ON (ps.product_id = p.product_id)"; $ condition = "AND ps.product_id ist NULL"; } else {// Einstellung von $ join- und $ condition-Parametern zum Abrufen von Daten aller Produkte unabhängig von speziellen $ join = ''; $ condition = ''; } // Abfrage zum Abrufen von Produktdaten aus der Datenbank. Hinzufügen von $ join- und $ condition-Parametern in der Abfrage, um Daten entsprechend abzurufen. $ Sql = "SELECT DISTINCT p.product_id FROM". DB_PREFIX. "Produkt p LEFT JOIN". DB_PREFIX. "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN". DB_PREFIX. "product_to_store p2s ON (p.product_id = p2s.product_id) $ join WHERE p.status = '1' UND p.date_available <= NOW () AND p2s.store_id = '". (int) $ this-> config-> get ('config_store_id'). "'$ condition GROUP BY p.product_id ORDER BY p.product_id DESC"; // Grenzwert in Abfrage setzen, wenn LIMIT vom Controller übergeben wird. if (isset ($ data ['start']) || isset ($ data ['limit'])) {if ($ data ['start'] <0) {$ data ['start'] = 0; } if ($ data ['limit'] <1) {$ data ['limit'] = 20; } $ sql. = "LIMIT". (int) $ data ['start']. ",". (int) $ data ['limit']; } $ product_data = array (); // Abfrage ausführen $ query = $ this-> db-> query ($ sql); // Schleife zum Festlegen abgerufener Daten in der Variablen, die im Controller übergeben werden sollen. foreach ($ query-> lines as $ result) {$ product_data [$ result ['product_id']] = $ this-> getProduct ($ result ['product_id']); } // Liefert Produktdaten an den Controller. Rückgabe von $ product_data; }
Im Modell haben wir Variablen gesetzt $ join und $ Bedingung auf der Grundlage der folgenden drei Bedingungen:
Wenn show_special 1 ist: In diesem Fall haben wir nur Produkte angezeigt, die speziell sind. Da in opencart die Daten von Spezialprodukten in der oc_product_special-Tabelle gespeichert sind, haben wir den Join der oc_product-Tabelle mit der oc_product_secial-Tabelle hinzugefügt, um nur Daten von Spezialprodukten abzurufen.
Wenn show_special 0 ist: In diesem Fall haben wir Produkte angezeigt, die nicht als besonders gekennzeichnet sind. Um also Produkte zu finden, die nicht besonders sind, müssen wir Produkte abrufen, die sich in einer speziellen Tabelle befinden, aber in der oc_product_special-Tabelle. Dazu haben wir den LEFT-Join der oc_product-Tabelle mit der oc_product_secial-Tabelle hinzugefügt und die Bedingung "ps.product_id IS NULL" hinzugefügt.
Wenn show_special nicht 0 und 1 ist: In diesem Fall müssen wir alle Produkte abrufen, ob sie speziell sind oder nicht. Deshalb haben wir Daten direkt aus der oc_product-Tabelle abgerufen.
Nachdem wir alle drei möglichen Bedingungen hinzugefügt haben, haben wir eine Abfrage geschrieben und ausgeführt. Dann haben wir alle abgerufenen Daten in gesetzt $ product_data Array und geben Sie das gleiche an den Controller zurück.
Hinweis: um die neuesten Produkte abzurufen, haben wir in der Abfrage 'Order by product_id DESC' verwendet. Wenn Sie Daten von Produkten abrufen möchten, die in den letzten Tagen hinzugefügt wurden, können Sie in der WHERE-Klausel eine weitere Bedingung hinzufügen, z. B. date_added> 'any date'.
Zusammenfassung
Nach dem oben beschriebenen Verfahren können Sie die neuesten Spezialprodukte auf der Grundlage der übergebenen Parameter für Spezialprodukte in der URL abrufen.
Dieses Dokument gibt eine Vorstellung davon, wie man SEO-freundliche URLs in Opencart (Version 2.x) erstellt. Außerdem wird erläutert, wie Sie die Opencart-Funktion anpassen, um andere SEO-URLs als Standardseiten (Produktseite, Kategorieseite usw.) zu erstellen. In diesem Dokument wird auch erläutert, wie URLs per 301-Weiterleitung von der alten URL auf die neue URL umgeleitet und URLs gelöscht werden. Der Hauptzweck dieses Dokuments besteht darin, zu lernen, wie man SEO-freundliche URLs in Opencart (Version 2.x) und URL-Weiterleitungen erstellt, um unser SEO-Ranking bei Google aufrechtzuerhalten. SEO-freundliche URLs sind gut gestaltete URLs, die sowohl Menschen als auch Suchmaschinen einen leicht verständlichen Hinweis darauf geben, worum es auf der Zielseite gehen wird.
Standardschritt in Opencart zum Aktivieren der SEO-URL
In Opencart gibt es Einstellungen, die wir über das Admin-Panel verwalten müssen, um SEO-freundliche URLs zu aktivieren.
Im Folgenden sind die Schritte zum Aktivieren aufgeführt:
Öffnen Sie das Admin-Panel. Gehen Sie zu System > Einstellung. Klicken Sie dann auf der Seite mit dem Store-Eintrag auf die Schaltfläche Bearbeiten, die dem Store entspricht.
Öffnen Sie auf der Seite „Systemeinstellungen bearbeiten“ die Registerkarte „Server“.
Auf dem Server wählt die Registerkarte das Optionsfeld „Ja“ aus, das „SEO-URL verwenden“ entspricht, und klickt dann auf die Schaltfläche „Speichern“.
Auf diese Weise kann der Administrator SEO-URLs verwenden.
Um die SEO-URL einer beliebigen Produktseite zu speichern, gehen Sie im Admin-Bereich zu Katalog > Produkte. Klicken Sie auf die Bearbeiten-Schaltfläche, die dem Produktnamen entspricht. Klicken Sie auf der Seite „Produkt bearbeiten“ auf „Daten und Zahlen‘ Registerkarte. Auf der Registerkarte Daten gibt es eine Option für ‘SEO Schlüsselwort‘. Geben Sie die SEO-URL des Produkts ein und speichern Sie dann. Siehe unten Bildschirm:
Kategorie Seite
Um die SEO-URL einer beliebigen Kategorieseite zu speichern, gehen Sie im Admin-Bereich zu Katalog > Kategorien. Klicken Sie auf die Schaltfläche Bearbeiten, die der Kategorie entspricht. Klicken Sie auf der Seite „Kategorie bearbeiten“ auf „Daten und Zahlen‘ Registerkarte. Auf der Registerkarte Daten gibt es eine Option für ‘SEO-URL“. Geben Sie die SEO-URL der Kategorie ein und speichern Sie dann. Siehe unten Bildschirm:
Hersteller Seite
Um die SEO-URL einer beliebigen Herstellerseite zu speichern, gehen Sie im Admin-Bereich zu Katalog > Hersteller. Klicken Sie auf die Schaltfläche Bearbeiten, die dem Hersteller entspricht. Auf der Seite Hersteller bearbeiten gibt es eine Option für ‘SEO-URL“. Geben Sie die SEO-URL des Herstellers ein und speichern Sie dann.
Um die SEO-URL einer beliebigen Informationsseite zu speichern, gehen Sie im Admin-Bereich zu Katalog > Informationen. Klicken Sie auf die Schaltfläche Bearbeiten, die der Informationsseite entspricht. Beim Bearbeiten klickt die Informationsseite auf die Registerkarte „Daten“. In der Registerkarte Daten gibt es eine Option für “SEO-URL”. Geben Sie die SEO-URL der Informationsseite ein und speichern Sie dann.
Siehe unten Bildschirm:
Hinweis: Der Administrator kann auch die SEO-URL speichern, während er ein neues Produkt, eine neue Kategorie, einen Hersteller und eine Informationsseite hinzufügt. Wenn der Administrator eine SEO-URL für benutzerdefinierte Seiten erstellen möchte, muss er/sie entsprechende Änderungen vornehmen (unten im selben Dokument erklärt).
Technischer Ablauf für URLs
Wenn der Benutzer in Opencart (Version 2.x) auf eine beliebige URL (SEO oder Nicht-SEO) klickt, ruft es die Controller-Datei seo_url.php auf, die sich unter catalogue/controller/startup befindet. Diese Datei wird aufgerufen, um die SEO-URL zu finden.
Hinweis:�Die SEO-URL jeder Seite wird in der Tabelle „url_alias“ in der Datenbank gespeichert. Wenn der Kunde auf eine Nicht-SEO-URL trifft, ruft er die Datei seo_url.php auf. In dieser Datei gibt es Code, der die SEO-URL der Nicht-SEO-URL in der Spalte „Schlüsselwort“ der Tabelle „url_alias“ durchsucht, die der Spalte „Abfrage“ entspricht
url_alias-Tabelle in der Datenbank
url_alias-Tabelle wird verwendet, um SEO-URLs aller Seiten zu speichern. Standardmäßig gibt es die folgenden 3 Spalten in der Tabelle:
url_alias_id: Primärschlüssel der Tabelle.
Abfrage: enthält die ID verschiedener Seiten wie product_id, category_id und andere Seiten.
Schlüsselwort: enthält das SEO-URL-Schlüsselwort der entsprechenden Seite
SEO-URL-Erstellung für andere als Standardseiten
Wenn der Administrator Zielseiten erstellt hat und eine SEO-URL für die Seite bereitstellen möchte. Dazu muss zunächst ein Eintrag der Seite in der url_alias-Tabelle erfolgen.
Beispiel 1:
Wenn der Administrator die Zielseite „Sport“ erstellt hat, muss er einen Eintrag in der Tabelle url_alias wie folgt vornehmen:
In Abfragespalte: sport_id=1
In der Keyword-Spalte: Sport
Der Administrator muss auch Änderungen in der Controller-Datei seo_url.php für sport_id vornehmen. Der Administrator muss eine Bedingung für sport_id hinzufügen, die der von product_id und category_id entspricht. Wenn der Administrator nun die URL „host/index.php?route=product/landing_page&sport_id=1“ eingibt, sucht der Code nach dem SEO-Schlüsselwort in der url_alias-Tabelle, die sport_id=1 entspricht, und liefert dann die URL „host/sports“.
Beispiel 2:
In diesem Beispiel erstellen wir eine SEO-URL für die Blog-Seite. Dazu müssen wir eine Bedingung in der Controller-Datei hinzufügen und einen Eintrag in der url_alias-Tabelle entsprechend der blog_id vornehmen: Siehe unten Screenshot der Datei seo_url.php:
Wenn der Administrator in Opencart neue SEO-URLs erstellen und 301 (permanente Umleitung) oder 302 (temporäre Umleitung) auf eine neue URL umleiten möchte, muss der Administrator die folgenden Änderungen in der Controller-Datei und der url_alias-Tabelle vornehmen.
Erstellen Sie eine neue Spalte old_keyword in der Tabelle url_alias vom Typ „varchar‘.
Handel-Bedingung in der Controller-Datei, um in der Spalte old_keyword zu suchen, wenn der Benutzer nach einer alten URL sucht.
Beispiel: Um von der alten URL des ‘Geschäftsbedingungen‘ Seite auf die neue URL. Wenn der Admin eine Informationsseite von der alten URL auf die neue umleiten möchte, muss er einen Eintrag in der url_alias-Tabelle vornehmen. Siehe den folgenden Screenshot:
das alte Schlüsselwort lautet: shop/terms-conditions.html
neues Stichwort: Hilfe/AGB
Änderungen der Controller-Datei: In seo_url.php muss der Controller-Administrator Bedingungen handhaben, wenn die eingegebene URL nicht in der Keyword-Spalte gefunden wurde. Das erste System sucht nach der eingegebenen URL in der Schlüsselwortspalte. Wenn es nicht gefunden wird, wird in der Spalte old_keyword gesucht. Wenn gefunden, wird auf die entsprechende neue URL umgeleitet. Bitte beachten Sie den folgenden Screenshot:
URL-Umleitungen in Opencart für gelöschte Seiten
Wenn der Administrator die URL gelöschter Kategorien, Produkte oder anderer Seiten auf die Startseite umleiten möchte, kann er entsprechende Änderungen in der Controller-Datei vornehmen.
Beispiel: Hier werden wir 301-URLs gelöschter Kategorien umleiten. Schritte zum Umleiten von URLs gelöschter Kategorien:
Erstellen Sie eine Datei und definieren Sie ein Array mit dem Schlüssel als URL der gelöschten Kategorie und dem Wert als URL, zu der der Administrator umleiten möchte. Sehen Sie sich den folgenden Screenshot an, um eine Reihe gelöschter Kategorien zu erstellen.
��� Hinweis: Hier haben wir einen leeren Wert definiert, weil wir gelöschte Kategorie-URLs auf die Startseite umleiten möchten
Fügen Sie eine Bedingung im seo_url.php-Controller hinzu, um von der gelöschten Kategorie-URL auf die neue URL umzuleiten.
In diesen Code haben wir zuerst eine Datei mit URLs gelöschter Kategorien eingefügt und dann überprüft, ob die eingegebene URL im definierten Array ist oder nicht. Wenn ja, dann auf eine neue URL umgeleitet, sonst auf die nicht gefundene Seite umgeleitet.
Schlussendlich:
Eine Vielzahl von OpenCart-Modulen und -Erweiterungen, sowohl kostenlos als auch kostenpflichtig, sind unter verfügbar Wissensband um den Betrieb Ihres Geschäfts anzukurbeln. Um mehr über die OpenCart-Plattformen, die verfügbaren Module oder die mit der Plattform verbundenen Funktionen zu erfahren, senden Sie uns bitte eine E-Mail an support@Knowband.com.
Die Reaktionen sind im Vergleich zu den einfachen Like- und Dislike-Buttons ausdrucksstärker. Mithilfe von Reaktionen kann der Benutzer seine Gedanken leicht ausdrücken, da Emoticons im Grunde eine Möglichkeit sind, Emotionen zu zeigen. Auf der anderen Seite, wenn wir Like- und Dislike-Buttons verwenden, kann der Benutzer nicht die genaue Emotion zeigen. Mithilfe von Emoticons können wir unsere Website für den Benutzer ausdrucksstärker gestalten.
Ziele des Blogs
In diesem Blog finden Sie eine einfache und schnelle Möglichkeit, die Reaktionsfunktionalität zu implementieren. Nachdem Sie den Blog durchgegangen sind, können Sie ein Reaktionssystem für Ihre Website erstellen, das dem Like-Button von Facebook entspricht.
Arbeiten
Es wird einen Like-Button und den Rest der Reaktions-Buttons geben. Wenn der Like-Button fokussiert ist, werden die Reaktions-Buttons angezeigt. JQuery wird verwendet, um die Taps auf die Reaktionsschaltflächen zu handhaben. Beim Tippen auf die Reaktionsschaltfläche wird eine Ajax-Anforderung an die Seite like.php gesendet. Die Logik zum Speichern/Aktualisieren von Daten in der Datenbank kann auf der Handler-Seite geschrieben werden. Wenn Sie erneut auf den Reaktionstext tippen, wird die Reaktion rückgängig gemacht und dieses Mal senden wir Ajax auf der Seite undo_like.php. Alle Funktionen zum Ein-/Ausblenden der Reaktionsschaltflächen und Animationen werden über JavaScript und CSS hinzugefügt.
Erstellen der HTML-Struktur
Bevor wir an der Logik arbeiten, müssen wir das Layout erstellen. HTML für das Layout folgt –
Facebook-Reaktionen Facebook-Reaktionen Wie Knowband und 4.3.0 andere
Stil hinzufügen
Wir verwenden zwei CSS-Dateien (style.css und response.css), um Stile auf der Seite hinzuzufügen.
Hinweis: Sie finden die CSS-Dateien im vollständigen Projektaufbau.
Funktionalität hinzufügen
Sobald unser Layout fertig ist, können wir an den Funktionalitäten arbeiten. Zuerst behandeln wir die Taps auf den Like- und Reaction-Buttons. Dafür verwenden wir jQuery und fügen die Click-Events hinzu. Der Code zum Hinzufügen der Klickereignisse ist unten angegeben –
// Hinzufügen des Klick-Ereignisses, sobald das Dokument fertig ist $(document).ready(function () { // Hinzufügen des Klick-Ereignisses auf Reaktionsschaltfläche unter Verwendung des Klassennamens $(.emoji").on("click ", function () { // like click // Hier schreiben wir den Code, der beim Antippen des Reaktionsbuttons ausgeführt wird }); });
Im Fokus der Reaktionsschaltfläche senden wir die Ajax-Anfrage auf der PHP-Seite. Die Ajax-Anfrage ist unten angegeben –
// Senden einer Ajax-Anfrage in der Handler-Seite (like.php), um die Datenbankoperationen auszuführen $.ajax({ type: "POST", url: "php/like.php", data: "", success: function (response) { // Dieser Code wird ausgeführt, nachdem Ajax erfolgreich war } })
Dann müssen wir eine Handler-Seite erstellen. Dies kann eine einfache PHP-Datei sein.
Hinweis: Der Benutzer kann Datenbankänderungen in der Handler-Datei gemäß den Anforderungen vornehmen. Was auch immer in dieser Datei zurückgegeben/gedruckt wird, wird an die Ajax-Anfrage zurückgegeben und wir können das Layout entsprechend aktualisieren. Hier haben wir den Code zum Aktualisieren des Layouts hinzugefügt, um die aktuell gespeicherte Reaktion anzuzeigen. Der vollständige Code der Datei “reaction.js” folgt –
$(document).ready(function () { $(.emoji).on("click", function () { // Hier erhalten wir die Reaktion, die mit dem in main definierten data-reaction-Attribut angetippt wird page var data_reaction = $(this).attr("data-reaction"); // Ajax-Request in Handler-Seite senden, um die Datenbankoperationen auszuführen $.ajax({ type: "POST", url: "php/like.php ", data: "data_reaction=" + data_reaction, success: function (response) { // Dieser Code wird ausgeführt, nachdem Ajax erfolgreich war $(".like-details").html("You, Knowband and 10k other") ; $(".reaction-btn-emo").removeClass().addClass('reaction-btn-emo').addClass('like-btn-' + data_reaction.toLowerCase()); $(.reaction- btn-text").text(data_reaction).removeClass().addClass('reaction-btn-text').addClass('reaction-btn-text-' + data_reaction.toLowerCase()).addClass("active") ; if (data_reaction == "Gefällt mir") $(".like-emo").html(' '); sonst $(".like-emo").html(' '); } }) }); $(".reaction-btn-text").on("click", function () { // wie Klick rückgängig machen if ($(this).hasClass("active")) { // Ajax-Request in Handler-Seite senden um die Datenbankoperationen auszuführen $.ajax({ type: "POST", url: "php/undo_like.php", data: "", success: function (response) { // Handle wenn Ajax erfolgreich ist $(". reaktion-btn-text").text("Gefällt mir").removeClass().addClass('reaktion-btn-text'); $(".reaktion-btn-emo").removeClass().addClass('reaktion -btn-emo').addClass("like-btn-default"); $(".like-emo").html(' '); $(".like-details").html("Knowband und 1k andere"); } }) } }) });
Zusammenfassung
Sie können das vollständige Projekt von der folgenden Stelle herunterladen –
In diesem Tutorial haben wir die Datenbankverbindung und -operationen nicht behandelt, da die Datenbanklogik je nach Ihren Anforderungen unterschiedlich sein kann. Mit Hilfe dieses Projekts können Sie ganz einfach die Reaktionsfunktionalität wie bei Facebook in Ihre Webseite implementieren.