X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FBadge%2FBAO%2FBadge.php;fp=CRM%2FBadge%2FFormat%2FBadge.php;h=1932bf26f20b406e81020a3484b8a823e9cf1229;hb=f4e94ab8985c89b245183773c67f4b3181b5e1fa;hp=47d482426a54efd4adad1f71190065432e689db3;hpb=42c62ec1d9dd8e34cb53a9afe4d912c87fede8a5;p=civicrm-core.git diff --git a/CRM/Badge/Format/Badge.php b/CRM/Badge/BAO/Badge.php similarity index 72% rename from CRM/Badge/Format/Badge.php rename to CRM/Badge/BAO/Badge.php index 47d482426a..1932bf26f2 100644 --- a/CRM/Badge/Format/Badge.php +++ b/CRM/Badge/BAO/Badge.php @@ -36,24 +36,7 @@ * * parent class for building name badges */ -class CRM_Badge_Format_Badge { - function printImage($img) { - $x = $this->pdf->GetAbsX(); - $y = $this->pdf->GetY(); - - $this->imgRes = 300; - - if ($img) { - $imgsize = getimagesize($img); - // mm - $f = $this->imgRes / 25.4; - $w = $imgsize[0] / $f; - $h = $imgsize[1] / $f; - $this->pdf->Image($img, $this->pdf->GetAbsX(), $this->pdf->GetY(), $w, $h, '', '', '', FALSE, 72, '', FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); - } - $this->pdf->SetXY($x, $y); - } - +class CRM_Badge_BAO_Badge { /** * This function is called to create name label pdf * @@ -63,7 +46,7 @@ class CRM_Badge_Format_Badge { * @return void * @access public */ - function createLabels(&$participants, &$layoutInfo) { + public function createLabels(&$participants, &$layoutInfo) { $this->pdf = new CRM_Utils_PDF_Label($layoutInfo['format'], 'mm'); $this->pdf->Open(); $this->pdf->setPrintHeader(FALSE); @@ -91,7 +74,8 @@ class CRM_Badge_Format_Badge { * @return array $formattedRow row with meta data */ static function formatLabel(&$row, &$layout) { - $formattedRow = array(); + $formattedRow = array('labelFormat' => $layout['label_format_name']); + if (CRM_Utils_Array::value('rowElements', $layout['data'])) { foreach($layout['data']['rowElements'] as $key => $element) { $formattedRow['token'][$key] = array( @@ -117,5 +101,62 @@ class CRM_Badge_Format_Badge { return $formattedRow; } + + public function generateLabel($formattedRow) { + switch ($formattedRow['labelFormat']) { + case 'Avery5395': + self::labelAvery5395($formattedRow); + break; + } + } + + public function labelAvery5395(&$formattedRow) { + $this->lMarginLogo = 20; + $this->tMarginName = 20; + + $x = $this->pdf->GetAbsX(); + $y = $this->pdf->GetY(); + + $this->printImage($formattedRow['image_1']); + + $this->pdf->SetLineStyle(array('width' => 0.1, 'cap' => 'round', 'join' => 'round', 'dash' => '2,2', 'color' => array(0, 0, 200))); + + $this->pdf->SetFontSize(9); + $this->pdf->MultiCell($this->pdf->width - $this->lMarginLogo, 0, $formattedRow['token'][1]['value'], $this->border, "L", 0, 1, $x + $this->lMarginLogo, $y); + + $this->pdf->SetFontSize(20); + $this->pdf->MultiCell($this->pdf->width, 10, $formattedRow['token'][2]['value'], $this->border, "C", 0, 1, $x, $y + $this->tMarginName); + $this->pdf->SetFontSize(15); + $this->pdf->MultiCell($this->pdf->width, 0, $formattedRow['token'][3]['value'], $this->border, "C", 0, 1, $x, $this->pdf->getY()); + + $this->pdf->SetFontSize(9); + $this->pdf->SetXY($x, $y + $this->pdf->height - 5); + $date = CRM_Utils_Date::customFormat($formattedRow['token'][4]['value'], "%e %b"); + $this->pdf->Cell($this->pdf->width, 0, $date, $this->border, 2, "R"); + } + + /** + * Helper function to print images + * @param string $img image url + * + * @return void + * @access public + */ + function printImage($img) { + $x = $this->pdf->GetAbsX(); + $y = $this->pdf->GetY(); + + $this->imgRes = 300; + + if ($img) { + $imgsize = getimagesize($img); + // mm + $f = $this->imgRes / 25.4; + $w = $imgsize[0] / $f; + $h = $imgsize[1] / $f; + $this->pdf->Image($img, $this->pdf->GetAbsX(), $this->pdf->GetY(), $w, $h, '', '', '', FALSE, 72, '', FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); + } + $this->pdf->SetXY($x, $y); + } }