Merge pull request #4219 from Striffly/fix/company-logo

Fix logo upload, keep png alpha
This commit is contained in:
David Bomba 2020-10-28 10:43:27 +11:00 committed by GitHub
commit 946b1d6396
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 10 deletions

View File

@ -39,13 +39,16 @@ class UploadAvatar implements ShouldQueue
{
//make dir
Storage::makeDirectory('public/'.$this->directory, 0775);
Storage::makeDirectory($this->directory, 0775);
$tmp_file = sha1(time()).'.png';
$file_png = imagepng(imagecreatefromstring(file_get_contents($this->file)), sys_get_temp_dir().'/'.$tmp_file);
$im = imagecreatefromstring(file_get_contents($this->file));
imagealphablending($im, false);
imagesavealpha($im, true);
$file_png = imagepng($im, sys_get_temp_dir().'/'.$tmp_file);
$path = Storage::putFile('public/'.$this->directory, new File(sys_get_temp_dir().'/'.$tmp_file));
$path = Storage::putFile($this->directory, new File(sys_get_temp_dir().'/'.$tmp_file));
info($path);
info($tmp_file);

View File

@ -125,7 +125,7 @@ class Design extends BaseDesign
$elements = [];
foreach ($variables as $variable) {
$elements[] = ['element' => 'p', 'content' => $variable];
$elements[] = ['element' => 'p', 'content' => $variable, 'show_empty' => false];
}
return $elements;
@ -138,7 +138,7 @@ class Design extends BaseDesign
$elements = [];
foreach ($variables as $variable) {
$elements[] = ['element' => 'p', 'content' => $variable];
$elements[] = ['element' => 'p', 'content' => $variable, 'show_empty' => false];
}
return $elements;
@ -151,7 +151,7 @@ class Design extends BaseDesign
$elements = [];
foreach ($variables as $variable) {
$elements[] = ['element' => 'p', 'content' => $variable];
$elements[] = ['element' => 'p', 'content' => $variable, 'show_empty' => false];
}
return $elements;
@ -170,7 +170,7 @@ class Design extends BaseDesign
foreach ($variables as $variable) {
$_variable = explode('.', $variable)[1];
$_customs = ['custom1', 'custom2', 'custom3', 'custom4'];
if (in_array($_variable, $_customs)) {
$elements[] = ['element' => 'tr', 'elements' => [
['element' => 'th', 'content' => $variable . '_label'],

View File

@ -56,6 +56,10 @@ class PdfMaker
public function build()
{
if (isset($this->data['template']) && isset($this->data['variables'])) {
$this->getEmptyElements($this->data['template'], $this->data['variables']);
}
if (isset($this->data['template'])) {
$this->updateElementProperties($this->data['template']);
}
@ -72,7 +76,7 @@ class PdfMaker
public function getCompiledHTML($final = false)
{
$html = $this->document->saveHTML();
return str_replace('%24', '$', $html);
}
}

View File

@ -117,8 +117,12 @@ trait PdfMakerUtilities
// <my-tag /> => true
// <my-tag> => false
if (isset($child['content'])) {
$contains_html = preg_match("/\/[a-z]*>/i", $child['content'],$m) != 0;
if (isset($child['content'])) {
if (isset($child['is_empty']) && $child['is_empty'] === true) {
continue;
}
$contains_html = preg_match("/\/[a-z]*>/i", $child['content'], $m) != 0;
}
if ($contains_html) {
@ -319,4 +323,27 @@ trait PdfMakerUtilities
$this->document->getElementById('repeat-footer')->appendChild($clone);
}
}
public function getEmptyElements(array &$elements, array $variables) {
foreach ($elements as &$element) {
if (isset($element['elements'])) {
$this->getEmptyChildrens($element['elements'], $variables);
}
}
}
public function getEmptyChildrens(array &$children, array $variables) {
foreach ($children as $key => &$child) {
if (isset($child['content']) && isset($child['show_empty']) && $child['show_empty'] === false) {
$value = strtr($child['content'], $variables['values']);
if ($value === '' || $value === '&nbsp;') {
$child['is_empty'] = true;
}
}
if (isset($child['elements'])) {
$this->getEmptyChildrens($child['elements'], $variables);
}
}
}
}