Magento nur-lese-und versteckte Attribute eines Produktes
Ich würde gerne einige Magento Produkt-Attribute, sind nicht editierbar aus admin-interface und einige, die nicht sichtbar überhaupt in diese Schnittstelle (als eine Methode der Speicherung einige persistente Informationen über ein Produkt, dass sollte nicht sein angesehen von menschlichen Nutzern.. es ist der einzige Weg, dies zu tun, dass ich denken kann, andere Vorschläge sind willkommen).
Also meine Frage ist: müssen alle Magento-Attribute werden sichtbar und editierbar aus admin-interface? Wenn nicht, wie kann man Sie auf schreibgeschützt oder versteckt?
Mir aufgefallen, dass im admin-interface gibt es einige nur-Lesen-Felder, so muss es möglich sein, das zu tun dieses eine oder andere Weise. Nach der Suche stackoverflow für diesen, fand ich eine mögliche Lösung mit JavaScript, aber ich möchte nicht gehen diesen Weg, wenn es überhaupt möglich ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
OK, es sieht aus wie es getan werden kann, nachdem alle. Nach dem hinzufügen eines Beobachters für die
catalog_product_load_after
Veranstaltung, dielockAttribute
Methode derMage_Catalog_Model_Abstract
Klasse kann verwendet werden, um ein Produkt-Attribut "nur Lesen". Hier ist der code, der für die observer-Methode:Da die
catalog_product_load_after
- Ereignis wird ausgelöst für jeder Produkt geladen, werden die Attribute in der geliefertenlock_attributes
Methode sind gesperrt, nachdem jedes Produkt geladen. Dies könnte zu unerwarteten Ergebnissen führen: es ist nicht möglich, ändern Sie den Wert der Attribute in derlock_attributes
Methode ohne explizit zu entsperren.Anstatt die
catalog_product_load_after
Ereignis, genügt es, fügen Sie einen Beobachter für diecatalog_product_edit_action
- Ereignis: dieses Ereignis wird nur ausgelöst, wenn die Bearbeitung eines Produktes in das admin-interface.Ich denke, Aad Mathijssen und Epikur kombiniert die beste Antwort auf die Frage, mit ein wenig Aufklärung. Als Bvd weist darauf hin,
catalog_product_load_after
aufgerufen wird, nachdem jedes Produkt geladen und das bedeutet, dass auf der FrontEnd-als auch!Wenn wir suchen, um zu schützen, die Attribut-Felder nur in der admin-panels,
catalog_product_edit_action
ist die passende Wahl.Ihre
etc/config.xml
wird dann so etwas wie dieses:Nein, ich denke, es ist nicht möglich, aus dem attribute-manager.
Eine einfache quick and dirty Lösung wäre das verwenden von css zum ausblenden der input und label.
Entwickelt ich genau eine solche Erweiterung, die funktioniert für Produkte, Kategorien und CMS-Seiten. Sie müssen nur definieren, einige Regeln und wählen Sie die Attribute, die Sie wollen, um zu zeigen, wie read-only.
Erweiterung URL: https://www.bubbleshop.net/magento-admin-readonly.html
Mithilfe dieser thread und einige mehr Graben um; die lockAttribute Methode ist eine abstrakte Klasse, was bedeutet, dass es möglich ist, auch auf Kategorie-Attribute als gut. Ich fing die 'catalog_category_load_after" Beobachter und verwendet Sie zum sperren der gewünschten Kategorie-Attribute:
Ich bin mir nicht sicher, ob das der richtige Beobachter zu verwenden, aber es funktioniert.
Also ja, es ist möglich, die Sperre der Kategorie Attribute oder readonly.