Большинство форумов Magento Report, создающих форумы, блоги, учебные пособия и т. Д., Похоже, сосредоточены на том, чтобы взять существующий отчет Magento и либо скопировать, либо расширить его. Большинство из них - это сетки, которые ссылаются на определенный набор данных, и все они включают в себя стандартные фильтры, т. Е. От / до даты и периода (плюс дополнительные фильтры в некоторых отчетах).
Однако, как представляется, существует очень мало информации о том, как создать полностью настраиваемый отчет с настраиваемыми фильтрами.
Например, клиент хотел бы получить отчет с двумя настраиваемыми фильтрами, который отчитывается только по двум простым агрегированным показателям.
magento-1.9
reports
jonadams51
источник
источник
Ответы:
Прежде всего, вам нужно сгенерировать пользовательский модуль, создать следующие файлы:
Определите свой модуль в /app/etc/modules/Mycompany_Mymodule.xml :
Заполните файл макета, который обновит представление администратора (я всегда делаю это сначала, потому что я не хочу об этом забывать). /app/design/adminhtml/default/default/layout/mymodule.xml
Создайте файл конфигурации с этим содержимым /app/code/local/Mycompany/Mymodule/etc/config.xml :
Здесь мы определяем контроллер, доступ к меню и разрешения, модель, блоки и помощник.
Создайте сетку и укажите все столбцы /app/code/local/Mycompany/Mymodule/Block/adminhtml/Mymodule/Grid.php :
Этот файл наиболее понятен, но я дам вам несколько советов о конкретных строках:
// эта строка указывает модель для использования для получения данных.
Для следующего шага создайте блок контейнера сетки /app/code/local/Mycompany/Mymodule/Block/adminhtml/Mymodule.php :
Здесь мы добавляем эту строку, чтобы удалить кнопку добавления: // Это должно быть всегда после
parent::__construct();
строки.$this->_removeButton('add');
Создайте контейнер блока /app/code/local/Mycompany/Mymodule/Block/Mymodule.php :
Создайте контроллер /app/code/local/Mycompany/Mymodule/controllers/Adminhtml/MymoduleController.php :
Затем пустой помощник /app/code/local/Mycompany/Mymodule/Helper/Data.php :
И, наконец, мы создадим модель, которая будет приносить данные /app/code/local/Mycompany/Mymodule/Model/Mymodule.php :
Это пользовательская модель, которая получает данные из основных моделей Magento, здесь вы можете определить любую модель или, если у вас уже есть свои собственные БД / таблицы, вы можете получить из них данные отчета. // эта строка сбрасывает исходный запрос, который приходит по умолчанию.
$this->_reset();
Я попытался добавить все эти файлы, но как только я нажал на новый пункт меню отчета, появилась пустая страница.
источник
Просто переименуйте папку
adminhtml
дляAdminhtml
согласно ниже пути:Приложение / код / местные / моякомп / MyModule / Block / adminhtml / Mymodule.php
источник