ПроблемаMagento шаблон электронной почты: Блок шаблон наследования сломанной
Когда я пытаюсь добавить блок в мой транзакционной шаблон электронной почты следующим образом:
{{block type='core/template' area='frontend' template='invent/baskettimer/email_items.phtml' record=$record}}
Я получаю следующее сообщение об ошибке, и ничего не получается.
CRIT (2): Not valid template file:frontend/base/default/template/invent/baskettimer/email_items.phtml
Устранение
- Обычно это предупреждение указывает на опечатке, разрывающая наследство, но у меня есть четыре раза проверил, и это должно работать.
- Затем я скопировал файл в базу и выполнил тест, и он отобразился правильно.
- Создайте настраиваемый блок и установите шаблон, отобразится одна и та же ошибка.
Теория
Мне кажется, наследование шаблонов сломано/не реализовано для электронной почты, поэтому она всегда ищет в базе, я не могу поставить свои шаблоны там, так что я не знаю, как назвать их ,
Возможные обходные
- Рендер блок в HTML затем отправить его в качестве переменной для визуализации, проблема с этим я посылаю электронную почту от уровня модели, и я с трудом предварительно отдавая блок, даже с помощью помощника.
- Извлеките данные, используя метод, не хотите этого делать, поскольку это сообщение/против MVC.
Любая помощь очень ценится.
обновление Bounty
Так что я проследили вниз проблему, это, вероятно, простое решение в настоящее время.
Проблема в том, что я вызываю ее из cronjob, не имеет правильного вида хранилища, довольно легко реплицировать подобную ситуацию, используя скрипт оболочки, а затем сменив _appCode на null.
<?php
require_once 'abstract.php';
class Mage_Shell_Shell extends Mage_Shell_Abstract
{
protected $_appCode = ''; // works - remove to not work
/**
* Run script
*
*/
public function run()
{
Mage::getModel('invent_baskettimer/email')->sendJob();
}
}
$shell = new Mage_Shell_Shell();
$shell->run();
Так в основном вопрос стал:
Как назвать block->toHtml()
независимо от точки зрения магазина?
Является 'invent' вашей теме? Попробуйте путь без темы: 'baskettimer/email_items.phtml' –
@SimonH Не изобретать папку в пределах настраиваемой темы. – input
Вы пытались установить свою тему явно с помощью '_theme = 'yourTheme''? '{{block type = 'core/template' area = 'frontend' template = 'invent/baskettimer/email_items.phtml' record = $ record _theme = 'yourTheme'}}' –