Wie erhalte ich die Geschäfts-ID des aktuellen Bereichsgeschäfts im Administrator?
Wenn ich beispielsweise das Dropdown-Feld in der oberen linken Ecke verwende und den Bereich in eine Geschäftsansicht ändere, wie würde ich die Geschäfts-ID der aktuell gespeicherten Geschäftsansicht erhalten ...
Global
-> Website
--> Store
---> Store View (This is currently the scope, how do I get this store's id?)
Wir arbeiten an einem Admin-Modul, das jemand anderes geschrieben hat. Es ist defekt. Der Fix für das Modul scheint einem Helfer die Store-ID des aktuell gespeicherten Stores zu übergeben.
0
, aber ich vermute, dass Sie hier nicht danach fragen. "Current Scoped Store" ist etwas vage.Antworten:
In a
Model
für Optionen in einer Dropdown-Liste können Sie die aktive Ebene mit dem folgenden Code abrufen:Dies gibt immer eine aktive Geschäfts-ID zurück.
quelle
strlen
Schecks? Liegt es daran, dass der Admin-Store 0 ist?app/code/core/Mage/Adminhtml
und sehen, was sich geändert hat. Sollte eine zu lange Liste nicht sein, wenn Sie Kommentare ignorieren (aus urheberrechtlichen Gründen)Es ist immer noch ein wenig unklar, wo genau Sie versuchen, diese Informationen im Administrator abzurufen. Ich gehe davon aus, dass dies während der Bearbeitung einer Anfrage für den
System -> Configuration
Abschnitt geschieht. Hoffentlich schickt Sie dies in die richtige RichtungWie bei allen Formularfeldern in Magento können Sie die Werte der Felder aus dem Anforderungsobjekt abrufen. So etwas tun (von einer Controller-Aktion)
Würde geben Sie die Feldwerte für die
section
,website
undstore
Elemente , die durch den Schalter - Elemente übergeben. Sie interessieren sich für dasstore
Element. Leider übergibt dieses Formular nicht die IDs des Geschäfts, sondern den Funktionscode des GeschäftsDies bedeutet, dass Sie den Funktionscode aufnehmen
$store
und verwenden müssen, um die Informationen des Geschäfts aus einercore/store
Modellsammlung abzurufen .quelle
Leider gibt es außer den Systemkonfigurationsseiten keine Standardmethode zum Hinzufügen von Bereichen zu Administrationsseiten. Wenn Sie es nur in der Systemkonfiguration benötigen, helfen Ihnen die vorherigen Antworten.
Wenn nicht, geschieht dies auf anderen Kernadministrationsseiten:
Produkt Management
Im Produktraster sowie auf der Produktbearbeitungsseite
store
befindet sich einfach ein URL-Parameter, der die Geschäfts-ID enthält (es gibt keinen "Website" -Bereich für Produkte). Es wird nicht zentral verarbeitet, sondern die Blöcke, die es benötigen, greifen direkt auf den Parameter zu. Zum Beispiel diese Methode im Produktraster:Kategorienverwaltung
Es ist dasselbe wie im Produktmanagement, nur dass Sie den URL-Parameter nicht in der Adressleiste des Browsers sehen, da die Formulare mit AJAX-Controller-Aktionen geladen sind.
Dies sind neben der mir bekannten Systemkonfiguration die einzigen Admin-Bereiche, in denen Sie den Bereich wechseln können. Wenn das benutzerdefinierte Administrationsmodul eine Ergänzung zur Katalogverwaltung darstellt, verwenden Sie den Store-Parameter wie oben. Wenn Sie diese als Beispiel nehmen, können Sie den Anforderungsparameter möglicherweise auf die gleiche Weise verwenden. Sehen Sie sich die HTTP-Anforderungen an, während Sie das Modul verwenden.
quelle
Dies ist - glaube ich - ein besserer Code. Sie können Ausnahmen (
try...catch
) behandeln, die in dieser Version ignoriert werden, um Fehler zu vermeiden, wenn der Parameter für die Anforderung eines Geschäfts oder einer Website nicht einem vorhandenen Geschäft oder einer Website entspricht.quelle