public function createFromJson($json) { // 1. Parse JSON $decoded = json_decode($json); if ($decoded !== null) { if ($this->validateJson($decoded)) { $this->packagenumber = $decoded->package->number; $tags = $this->getPreparedTags($decoded->tags_format, $decoded->tags); // Populate Config overwrite defaults Config::$glsbox_label_beginx = intval($decoded->pdf->beginx); // zero is the default anyway Config::$glsbox_label_beginy = intval($decoded->pdf->beginy); $format = resempty($decoded, array('pdf', 'format'), 'A4', Primitive::STR); if (in_array($format, array('A4', 'A5'))) { Config::$glsbox_label_papersize = $format; } Config::$filename_prefix = resempty($decoded, array('pdf', 'prefix'), "", Primitive::STR); $mode = resempty($decoded, 'mode', 'business', Primitive::STR); if (in_array($mode, array('business', 'express'))) { Config::$mode = $mode; } $glsService = null; if (Config::$mode == "express") { $glsService = new Gls_Unibox_Model_Label_Gls_Express(); } else { $glsService = new Gls_Unibox_Model_Label_Gls_Business(); } $glsService->importValues($tags); $ready_tags = $glsService->getData(); $gls_unibox_label_pdf = new Gls_Unibox_Model_Pdf_Label(); $pdf = $gls_unibox_label_pdf->createLabel($ready_tags); $this->content = $pdf->render(); return true; } else { array_push($this->errors, new GCError("Error: Validation of input parameters did not succeed.")); } } else { array_push($this->errors, new GCError("Error: Decoding of the JSON-Input failed - invalid JSON.")); } return false; }