Większość Magento Zgłoś budowy fora, blogi, tutoriale itp wszystkie zdają się skupiać na podjęcie istniejący raport Magento i albo kopiowania lub przedłużenia go. Większość z nich to siatki, które prowadzą do określonego zestawu danych, a wszystkie zawierają standardowe filtry, tj. Od / do daty i okresu (plus dodatkowe filtry w niektórych raportach).
Wydaje się jednak, że niewiele jest informacji na temat tworzenia całkowicie niestandardowego raportu z niestandardowymi filtrami.
Na przykład klient chciałby raportu z dwoma niestandardowymi filtrami, który raportuje tylko dwa proste zbiorcze dane.
magento-1.9
reports
jonadams51
źródło
źródło
Odpowiedzi:
Przede wszystkim musisz wygenerować moduł niestandardowy, utwórz następujące pliki:
Zdefiniuj swój moduł na /app/etc/modules/Mycompany_Mymodule.xml :
Uzupełnij plik układu, który zaktualizuje widok administratora (zawsze robię to pierwszy, ponieważ nie chcę go zapomnieć). /app/design/adminhtml/default/default/layout/mymodule.xml
Utwórz plik konfiguracyjny z tą zawartością /app/code/local/Mycompany/Mymodule/etc/config.xml :
Tutaj definiujemy kontroler, dostęp do menu i uprawnienia, model, bloki i pomocnika.
Utwórz siatkę i określ wszystkie kolumny /app/code/local/Mycompany/Mymodule/Block/adminhtml/Mymodule/Grid.php :
Ten plik jest najczystszy, ale dam ci kilka wskazówek na temat określonych linii:
// ta linia wskazuje model używany do uzyskania danych.
W następnym kroku utwórz blok kontenera siatki /app/code/local/Mycompany/Mymodule/Block/adminhtml/Mymodule.php :
Tutaj dodajemy tę linię, aby usunąć przycisk dodawania: // Musi być zawsze za
parent::__construct();
linią.$this->_removeButton('add');
Utwórz kontener bloków /app/code/local/Mycompany/Mymodule/Block/Mymodule.php :
Utwórz kontroler /app/code/local/Mycompany/Mymodule/controllers/Adminhtml/MymoduleController.php :
Następnie pusty pomocnik /app/code/local/Mycompany/Mymodule/Helper/Data.php :
A na koniec tworzymy model, który przyniesie dane /app/code/local/Mycompany/Mymodule/Model/Mymodule.php :
Jest to model niestandardowy, który pobiera dane z podstawowych modeli Magento, tutaj możesz zdefiniować dowolny model lub jeśli masz już własną DB / tabele , możesz uzyskać z niego dane raportu. // ten wiersz resetuje oryginalne zapytanie, które jest domyślnie ustawione.
$this->_reset();
Próbowałem dodać wszystkie te pliki, ale po kliknięciu nowego elementu menu raportu pojawia się pusta strona.
źródło
Po prostu zmień nazwę folderu
adminhtml
naAdminhtml
zgodnie z poniższą ścieżką:app / code / local / Mycompany / Mymodule / Block / adminhtml / Mymodule.php
źródło