У меня есть report.phtml, который я создаю для создания PDF-файла и отправляю его по электронной почте каждый месяц.
Я пытаюсь автоматизировать процесс с Magento Cronjob.
Я знаю, что Magento имеет встроенную функцию обработки cronjobs, но это решение включает модель. Я пытался отобразить отчет в модели, но ничего не получаю.
class MyModule_Model_Report extends Mage_Core_Model_Abstract { public function generateReport() { $content = $this->getLayout()->createBlock( 'Mage_Core_Block_Template', 'mymodule.report', array( 'template' => 'mymodule/report/report.phtml', ) )->toHtml(); // nothing returns as we can't render layouts in model mail('test@test.com', 'monthly report', $content);// for now just testing email // rest of the PDF generation and emailing script } }
Конфигурация mymodule config.xml
<config> ... <crontab> <jobs> <namespace_module> <schedule> <cron_expr>0,15,30,45 * * * *</cron_expr> </schedule> <run> <model>mymodule/Report:generateReport</model> </run> </namespace_module> </jobs> </crontab> ... </config>
Если я создаю контроллер и поставлю выше функцию generateReport, он отлично работает.
class MyModule_ReportController extends Mage_Core_Controller_Front_Action { public function generateReportAction() { $content = $this->getLayout()->createBlock( 'Mage_Core_Block_Template', 'mymodule.report', array( 'template' => 'mymodule/report/report.phtml', ) )->toHtml(); // it returns the report.phtml contents mail('test@test.com', 'monthly report', $content); // for now just testing email // rest of the PDF generation and emailing script } }
Может кто-нибудь, пожалуйста, назовите меня, как я могу создать cronjob в таком сценарии.
Заранее спасибо!