Wie zu entfernen oder zu ändern addSuccess Nachricht in Magento?
Beispielsweise die folgende Aktion wird eine Nachricht, die in die Seite eingefügt:
-Wenn addtocart-button geklickt wird, wird eine Meldung angezeigt, sagen, das Produkt Hinzugefügt wurde, erfolgreich oder nicht.
Der code ist in app/code/core/Mage/Checkout/controllers/CartControllers.php
$message = $this->__('%s was added to your shopping cart.', Mage::helper('core')->escapeHtml($product->getName()));
$this->_getSession()->addSuccess($message);
-Wenn ein Produkt-review eingereicht wird, wird es eine Meldung, dass die Kritik angenommen wurde für die moderation.
Der code ist in app/code/core/Mage/Review/controllers/ProductController.php
$session->addSuccess($this->__('Your review has been accepted for moderation.'));
Die beiden oben genannten sind nur Beispiele, es gibt mehr andere, ähnliche Nachrichten, die Anzeige auf bestimmte Aktionen.
Ich weiß, wie um es zu überschreiben, ändern oder entfernen die Nachricht. Für die addtocart Meldung, es kann auch ausgeschaltet werden, indem Sie auf der Admin-Panel.
Ich glaube, es gibt einen besseren Weg, um zu ändern, diese Nachrichten als ein Modul erstellen und überschreiben Sie die Funktion nur für das ändern der Nachricht bzw. entfernen Sie es.
Kennt jemand irgendwelche besseren Möglichkeiten, zu ändern oder zu entfernen, die addSuccess Nachrichten?
Wie können wir das ändern oder entfernen, die diese Nachrichten nach addSuccess () - Funktion ist schon aufgerufen und die Nachrichten werden Hinzugefügt?
InformationsquelleAutor s-hunter | 2013-09-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Natürlich gibt es einen besseren Weg ;D
Werfen Sie einen Blick in Ihre
app/locale/en_US
Ordner (oder welche Sprache Sie Bearbeiten möchten). Dort finden Sie eine Reihe von CSV-Dateien mit den übersetzungen.Jedes mal, wenn Sie sehen
echo $this->_('Something Here');
es bedeutet, dass es eine übersetzung in diese CSV-Dateien. Dies hängt von den aktuellen Namensraum, so dass bei Check-out werden Nachrichten, die Sie wollen, um zu sehen, inMage_Checkout.csv
ersten.Öffnen Sie mit Ihrem bevorzugten text-editor und suchen Sie nach etwas wie dies:
%s was added to your shopping cart.,%s was added to your shopping cart.
Ändern Sie nun die Zeile NACH dem Komma zu, was Sie möchten, es zu sein:
%s was added to your shopping cart.,We just added %s to your cart!
Alternativ können Sie auch stellen Sie es frei, indem nur alles nach dem Komma:
%s was added to your shopping cart.,
Den
%s
bezeichnet die variable, die als zweiter parameter übergeben wird in der_()
Funktion.Naja, das würde abhängen, können Sie in der Lage sein, um es zu entfernen mit Javascript/JQuery (prüfen, ob es leer ist, und falls ja, entfernen Sie das UL-element), oder Sie können ändern, die CSS um zu dem Punkt, wo es nicht zeigen. Andere als die beiden anderen Lösungen haben Sie zu greifen, zu Bearbeiten Vorlage oder code-Dateien.
Wenn ich immer noch auf css, dann kann ich mithilfe von css zu verbergen, ohne die Sprache zu ändern, Datei, Vorlage-Datei oder die code-Dateien. So, es geht zurück zu den ursprünglichen Fragen, welche der folgenden ist eine bessere Lösung für diese Aufgabe: 1. überschreiben Sie die Funktion in php controller-Datei. 2. ändern Sie die Sprachdatei und dann mit Hilfe von css ausblenden der leeren ul-element. 3. Benutzer nur css. 4. Gibt es andere bessere Möglichkeiten, dies zu tun
Die Klasse Nachricht ist für andere Dinge als gut, wenn Sie es komplett verbirgt, dann werden Sie nicht sehen, alle Nachrichten, die die Klasse verwenden. Außer diesen Lösungen können Sie die Vorlage Bearbeiten .phtml-Dateien, um zu verhindern, dass die Nachricht nicht auszugeben, Sie brauchen nicht zu berühren alle Klassen.
Wenn ich die Klasse ändern, ich muss nur die Funktion überschreiben, erzeugt diese Meldung. Andere Nachrichten können noch gezeigt werden, weil nicht jedes pop-up-Meldungen generiert werden, die von dieser Funktion dieser Klasse. Wenn zu ändern .phtml-Datei, dies wird verhindern, dass andere Meldungen angezeigt werden, da diese .phtml verwendet wird, um mehr als eine übergeordnete template-Dateien.
InformationsquelleAutor Jason
Dies sollte entfernen Sie alle Erfolgs-oder Fehlermeldungen aus Ihrer Sitzung.
Genauer gesagt, können Sie verwenden Sie den folgenden entfernen von Nachrichten aus
core
undcustomer
Sitzung jeweils:InformationsquelleAutor Mukesh Chapagain
@S-hunter hat gesagt, das obige Zitat, kann einer sagen wo sich die Einstellung um es zu deaktivieren.
InformationsquelleAutor Arun Karnawat