Problem gelöst, hat wohl nicht funktioniert wegen Tippfehler ...
Beschreibe das kurz, weil dies die Funktionalität doch wesentlich erhöht. Vielleicht hilft das jemand anderem auch mal weiter.
Ziel: Adressetiketten direkt aus dem Backend in eine PDF-Datei drucken
Kleine Erweiterung angelegt: zlabel
config.php
Code:
$GLOBALS['BE_MOD']['accounts']['member']['create'] = array('zlabel', 'create');
autoload.php generiert:
Code:
//Register the namespaces
ClassLoader::addNamespaces(array
(
'Phinetwork',
));
//Register the classes
ClassLoader::addClasses(array
(
'Phinetwork\zlabel' => 'system/modules/zlabel/zlabel.php',
));
in /dca Datei tl_member.php angelegt:
Code:
//Add a global operation to tl_member
$GLOBALS['TL_DCA']['tl_member']['list']['global_operations']['create'] = array
(
'label' => &$GLOBALS['TL_LANG']['tl_member']['create'],
'icon' => 'pickfile.gif',
'href' => 'key=create'
);
in /languages/de eine Datei tl_member.php angelegt:
Code:
//give translation to global action
$GLOBALS['TL_LANG']['tl_member']['create'] = array('Etiketten', 'Etiketten drucken');
Im Modulordner eine Datei zlabel.php angelegt
Code:
// build an export to labels from tl_member
namespace Phinetwork;
//Class zlabel: provides methods to handle label printer
class zlabel extends \Backend
{
public function create()
{
// Include library mPDF muss als Erweiterung installiert sein
require_once TL_ROOT . '/system/modules/mPDF/vendor/mPDF/mpdf.php';
// Create new PDF document
$pdf=new \mPDF('','A4','12pt','opensanscond',5,5,10,10,0,0);
$pdf->SetCreator( PDF_CREATOR );
$pdf->SetAuthor( PDF_AUTHOR );
//remove default header/footer
$pdf->SetHeader();
$pdf->SetFooter();
//initialize document and add a page
$pdf->AddPage();
//binde spezielles Stylesheet ein
$stylesheet= file_get_contents(TL_ROOT . 'files/css/pdfstyle.css');
$pdf->writeHTML($stylesheet, 1);
//retrieve data from database and put all data in a va
$result = $this->Database->prepare('SELECT id,lastname,firstname,street,postal,city,country,mailmerger from tl_member ORDER by lastname,firstname')->execute();
while($result->next()){
$cont.='<div style="float:left;width:54mm;height:35.5mm;padding:4mm 6mm 0 6mm;clear:none;line-height:4.5mm;">
<div style="width:54mm;height:5mm;border-bottom:#e30000 thin solid;margin:0 0 2mm 0;font-size:8pt;"><div style="float:left;width:40mm">Company Street postal Code City</div></div>
<div style="width:54mm;">'.$result->firstname.' '.$result->lastname.'</div>';
$cont.= '<div>'.$result->street.'</div><div>'.$result->postal.' '.$result->city.'</div>';
}
//write $cont into pdf
$pdf->writeHTML($cont);
//produce PDF and make it available as download
$pdf->Output('etiketten.pdf', 'D');
Ausgabe der Etiketten auf dem Etikettenbogen ist mit einfachem Floaten der einzelnen Etiketten gelöst. Voraussetzung ist die installierte Erweiterung mPDF
Gruss Markus