Wie kann ich dem Kundenauftragsraster ordnungsgemäß zusätzliche Spalten hinzufügen?
7
Gibt es eine Möglichkeit (oder mehrere Möglichkeiten), zusätzliche Spalten zum Kundenauftragsraster hinzuzufügen, das im Administrationsbereich angezeigt wird?
Ich denke, die Frage könnte etwas zu weit gefasst sein, da je nachdem, welche zusätzliche Spalte Sie anzeigen möchten, die Lösung anders aussehen würde, da für eine möglicherweise eine Verknüpfung erforderlich ist und eine andere die Informationen direkt aus der Tabelle sales_order_grid übernehmen kann. Es wäre auch gut, wenn Sie darlegen würden, was für Sie richtig bedeutet. Für mich könnte es alles bedeuten, den Kern nicht zu hacken, nicht neu zu schreiben und die neuen Spalten filterbar zu machen.
Kristof bei Fooman
Antworten:
5
Ich würde es sauber machen.
Ich würde beobachten core_collection_abstract_load_beforeund adminhtml_block_html_beforeEreignisse.
In der ersten würde ich hinzufügen joinAttribute(), joinField()und join()in der Sammlung und in der zweiten würde ich addColumn()zum Block.
Lassen Sie mich wissen, wenn weitere Details erforderlich sind.
Sie würden alle Sammlungsladungen verbrauchen? Warum nicht einfach beobachten Mage_Sales_Model_Resource_Order_Grid_Collection?
Benmarks
Entschuldigung, ich denke nur weiter nach. Überlegen Sie sich eine Lösung, um ein Admin-Grid zu ändern.
user487772
1
Wenn Sie ein benutzerdefiniertes Modul haben, das Spalten hinzufügen muss, ist dies wahrscheinlich nicht für Sie, aber zum Hinzufügen der Zahlungsmethode oder etwas zum Raster funktioniert dies einwandfrei:
https://github.com/mage-eag/mage-enhanced -admin-Gitter
Sie erweitern möchten Mage_Adminhtml_Block_Sales_Order_Gridin app/code/local/Module/Adminhtml/Block/Sales/Order, außer Kraft setzen , die Funktion _prepareColumns()und Verwendung $this->addColumn. Wenn Sie die Auflistung ändern müssen, um die SQL für die verwendete Auflistung zu ändern, überschreiben Sie sie _prepareCollection()und rufen Sie sie aufMage::getResourceModel($this->_getCollectionClass())->getSelect()->joinLeft(...)
Geben Sie für beide Funktionen das Ergebnis von
Mage_Adminhtml_Block_Widget_Grid::_prepareCollection()oder
Mage_Adminhtml_Block_Widget_Grid::_prepareColumns()anstelle des übergeordneten Elements zurück, oder Ihre Änderungen werden mit dem ursprünglichen Verhalten von überschrieben Mage_Adminhtml_Block_Sales_Order_Grid.
Antworten:
Ich würde es sauber machen.
Ich würde beobachten
core_collection_abstract_load_before
undadminhtml_block_html_before
Ereignisse.In der ersten würde ich hinzufügen
joinAttribute()
,joinField()
undjoin()
in der Sammlung und in der zweiten würde ichaddColumn()
zum Block.Lassen Sie mich wissen, wenn weitere Details erforderlich sind.
quelle
Mage_Sales_Model_Resource_Order_Grid_Collection
?Wenn Sie ein benutzerdefiniertes Modul haben, das Spalten hinzufügen muss, ist dies wahrscheinlich nicht für Sie, aber zum Hinzufügen der Zahlungsmethode oder etwas zum Raster funktioniert dies einwandfrei: https://github.com/mage-eag/mage-enhanced -admin-Gitter
quelle
Sie erweitern möchten
Mage_Adminhtml_Block_Sales_Order_Grid
inapp/code/local/Module/Adminhtml/Block/Sales/Order
, außer Kraft setzen , die Funktion_prepareColumns()
und Verwendung$this->addColumn
. Wenn Sie die Auflistung ändern müssen, um die SQL für die verwendete Auflistung zu ändern, überschreiben Sie sie_prepareCollection()
und rufen Sie sie aufMage::getResourceModel($this->_getCollectionClass())->getSelect()->joinLeft(...)
quelle