fix template renderer
This commit is contained in:
parent
35f6048a37
commit
4e91c42910
@ -21,7 +21,9 @@ use OxidEsales\Eshop\Core\UtilsView;
|
|||||||
use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory;
|
use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory;
|
||||||
use OxidEsales\EshopCommunity\Internal\Framework\Module\Facade\ModuleSettingServiceInterface;
|
use OxidEsales\EshopCommunity\Internal\Framework\Module\Facade\ModuleSettingServiceInterface;
|
||||||
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateEngineInterface;
|
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateEngineInterface;
|
||||||
|
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateRenderer;
|
||||||
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateRendererBridgeInterface;
|
use OxidEsales\EshopCommunity\Internal\Framework\Templating\TemplateRendererBridgeInterface;
|
||||||
|
use OxidEsales\Smarty\SmartyEngine;
|
||||||
use OxidEsales\Twig\Resolver\TemplateChain\TemplateNotInChainException;
|
use OxidEsales\Twig\Resolver\TemplateChain\TemplateNotInChainException;
|
||||||
use Psr\Container\ContainerExceptionInterface;
|
use Psr\Container\ContainerExceptionInterface;
|
||||||
use Psr\Container\NotFoundExceptionInterface;
|
use Psr\Container\NotFoundExceptionInterface;
|
||||||
@ -43,38 +45,9 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
|||||||
|
|
||||||
public $filenameExtension = 'pdf';
|
public $filenameExtension = 'pdf';
|
||||||
|
|
||||||
/** @var TemplateEngineInterface */
|
|
||||||
public $oTemplateEngine;
|
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
public $filename;
|
public $filename;
|
||||||
|
|
||||||
/**
|
|
||||||
* pdfDocumentsGeneric constructor.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
|
|
||||||
$this->oTemplateEngine = $this->d3GetTemplateEngine();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function d3GetTemplateEngine() :TemplateEngineInterface
|
|
||||||
{
|
|
||||||
$renderer = $this->d3GetTemplateRendererBridge()->getTemplateRenderer();
|
|
||||||
return $renderer->getTemplateEngine();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @throws ContainerExceptionInterface
|
|
||||||
* @throws NotFoundExceptionInterface
|
|
||||||
*/
|
|
||||||
public function d3GetTemplateRendererBridge(): TemplateRendererBridgeInterface
|
|
||||||
{
|
|
||||||
return ContainerFactory::getInstance()->getContainer()
|
|
||||||
->get(TemplateRendererBridgeInterface::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function runPreAction()
|
public function runPreAction()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -96,10 +69,10 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
|||||||
$oPdf->setTestIsImage(false);
|
$oPdf->setTestIsImage(false);
|
||||||
$htmlContent = $this->getHTMLContent($iSelLang);
|
$htmlContent = $this->getHTMLContent($iSelLang);
|
||||||
$oPdf->writeHTML($htmlContent);
|
$oPdf->writeHTML($htmlContent);
|
||||||
$oPdf->pdf->SetAuthor(Registry::getConfig()->getActiveShop()->getFieldData('oxname'));
|
$oPdf->pdf->setAuthor( Registry::getConfig()->getActiveShop()->getFieldData( 'oxname'));
|
||||||
$oPdf->pdf->SetTitle(Registry::getLang()->translateString($this->getTitleIdent()));
|
$oPdf->pdf->setTitle( Registry::getLang()->translateString( $this->getTitleIdent()));
|
||||||
$oPdf->pdf->SetCreator('D³ PDF Documents for OXID eShop');
|
$oPdf->pdf->setCreator( 'D³ PDF Documents for OXID eShop');
|
||||||
$oPdf->pdf->SetSubject(NULL);
|
$oPdf->pdf->setSubject( NULL);
|
||||||
return $this->output($oPdf, $sFilename, $target, $htmlContent);
|
return $this->output($oPdf, $sFilename, $target, $htmlContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,15 +142,17 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
|||||||
/**
|
/**
|
||||||
* @param int $iSelLang
|
* @param int $iSelLang
|
||||||
*/
|
*/
|
||||||
public function setTemplateEngineVars(int $iSelLang)
|
public function getTemplateEngineVars(int $iSelLang): array
|
||||||
{
|
{
|
||||||
unset($iSelLang);
|
unset($iSelLang);
|
||||||
|
|
||||||
$this->oTemplateEngine->addGlobal('config', Registry::getConfig());
|
return [
|
||||||
$this->oTemplateEngine->addGlobal('oViewConf', Registry::getConfig()->getActiveView()->getViewConfig());
|
'config' => Registry::getConfig(),
|
||||||
$this->oTemplateEngine->addGlobal('shop', Registry::getConfig()->getActiveShop());
|
'oViewConf' => Registry::getConfig()->getActiveView()->getViewConfig(),
|
||||||
$this->oTemplateEngine->addGlobal('lang', Registry::getLang());
|
'shop' => Registry::getConfig()->getActiveShop(),
|
||||||
$this->oTemplateEngine->addGlobal('document', $this);
|
'lang' => Registry::getLang(),
|
||||||
|
'document' => $this
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -196,10 +171,11 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
|||||||
$currTplLang = $lang->getTplLanguage();
|
$currTplLang = $lang->getTplLanguage();
|
||||||
$lang->setTplLanguage($iSelLang);
|
$lang->setTplLanguage($iSelLang);
|
||||||
|
|
||||||
$this->setTemplateEngineVars($iSelLang);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$content = $this->oTemplateEngine->render($this->getTemplate(), $this->d3GetTemplateEngine()->getGlobals());
|
$content = $this->getTemplateRenderer()->renderTemplate(
|
||||||
|
$this->getTemplate(),
|
||||||
|
$this->getTemplateEngineVars($iSelLang)
|
||||||
|
);
|
||||||
} catch (Error|TemplateNotInChainException $error) {
|
} catch (Error|TemplateNotInChainException $error) {
|
||||||
|
|
||||||
//Registry::getLogger()->error(dumpVar(__METHOD__." ".__LINE__), [$error->getFile()]);
|
//Registry::getLogger()->error(dumpVar(__METHOD__." ".__LINE__), [$error->getFile()]);
|
||||||
@ -214,6 +190,13 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
|||||||
return $content;
|
return $content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function getTemplateRenderer(): TemplateRenderer
|
||||||
|
{
|
||||||
|
return ContainerFactory::getInstance()->getContainer()
|
||||||
|
->get(TemplateRendererBridgeInterface::class)
|
||||||
|
->getTemplateRenderer();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* arguments for Html2Pdf class constructor
|
* arguments for Html2Pdf class constructor
|
||||||
* - $orientation = 'P',
|
* - $orientation = 'P',
|
||||||
|
@ -57,19 +57,22 @@ abstract class pdfdocumentsOrder extends pdfdocumentsGeneric implements orderInt
|
|||||||
* @param int $iSelLang
|
* @param int $iSelLang
|
||||||
* @throws InvalidArgumentException
|
* @throws InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function setTemplateEngineVars($iSelLang)
|
public function getTemplateEngineVars($iSelLang): array
|
||||||
{
|
{
|
||||||
parent::setTemplateEngineVars($iSelLang);
|
|
||||||
|
|
||||||
$this->oTemplateEngine->addGlobal('order', $this->getOrder());
|
|
||||||
|
|
||||||
$oUser = oxNew(User::Class);
|
$oUser = oxNew(User::Class);
|
||||||
$oUser->load($this->getOrder()->getFieldData('oxuserid'));
|
$oUser->load($this->getOrder()->getFieldData('oxuserid'));
|
||||||
$this->oTemplateEngine->addGlobal('user', $oUser);
|
|
||||||
|
|
||||||
$oPayment = oxNew(Payment::class);
|
$oPayment = oxNew(Payment::class);
|
||||||
$oPayment->loadInLang($iSelLang, $this->getOrder()->getFieldData('oxpaymenttype'));
|
$oPayment->loadInLang($iSelLang, $this->getOrder()->getFieldData('oxpaymenttype'));
|
||||||
$this->oTemplateEngine->addGlobal('payment', $oPayment);
|
|
||||||
|
return array_merge(
|
||||||
|
parent::getTemplateEngineVars($iSelLang),
|
||||||
|
[
|
||||||
|
'order' => $this->getOrder(),
|
||||||
|
'user' => $oUser,
|
||||||
|
'payment' => $oPayment
|
||||||
|
]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user