Ich habe ein Hook gesetzt, um bei der generierten PDF eine Variable zu übergeben. Bisher geht es. Und aus einem mir nicht erdenklichen Grund, wird dieser nicht mehr angesprungen.
Für mich ist der Code eigentlich richtig.
$this->subscribeEvent( 'Shopware_Components_Document::assignValues::after', 'AssignBarcodeValues'
);
public function AssignBarcodeValues(Enlight_Hook_HookArgs $args)
{
$doc = $args->getSubject();
$variables = $args->getSubject()->_order->__toArray();
$Config = Shopware()->Plugins()->Frontend()->MDPlugin()->Config();
$height = $Config->height;
$codingType = $Config->codingType;
$imageType = $Config->imageType;
$size = $Config->size;
$imagesrc= ($imageType !="HTML") ? "data:image/".strtolower($imageType).";base64,":"";
//install via composer
//composer require picqer/php-barcode-generator
$barcodeFunction = 'Picqer\Barcode\BarcodeGenerator'.$imageType;
$generator = new $barcodeFunction;
//public function getBarcode($code, $type, $widthFactor = 2, $totalHeight = 30)
/**
* generating barcode only for articles
*/
$barcode =array();
foreach ($variables['Order']['_positions'] as $key => $data){
if($data['articleID'] != '0')
{
$barcode[$key]= $imagesrc.base64_encode($generator->getBarcode($data['articleordernumber'].'/'.$variables['Order']['ordernumber'], constant("{$barcodeFunction}::{$codingType}"),$size,$height));
}
}
$doc->_view->assign('Barcode', $barcode);
//unset ($variables);
}
In einem anderen entwickelten Plugin wird dieser Hook gesetzt und funktioniert.
$this->subscribeEvent(
'Shopware_Components_Document::assignValues::after',
'onAssignValues'
);
Aber beide kommen sich ja nicht in die Quere. Solange kein Wert an 3. Stelle angegeben wird, werden diese in der Reihenfolge ausgeführt, wie Sie installiert sind.
Oder sehe ich das falsch, weil das eine geht und das andere nicht ?
Installiert ist Shopware 5.2.9