mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Merge pull request #4219 from Striffly/fix/company-logo
Fix logo upload, keep png alpha
This commit is contained in:
commit
946b1d6396
@ -39,13 +39,16 @@ class UploadAvatar implements ShouldQueue
|
|||||||
{
|
{
|
||||||
|
|
||||||
//make dir
|
//make dir
|
||||||
Storage::makeDirectory('public/'.$this->directory, 0775);
|
Storage::makeDirectory($this->directory, 0775);
|
||||||
|
|
||||||
$tmp_file = sha1(time()).'.png';
|
$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($path);
|
||||||
info($tmp_file);
|
info($tmp_file);
|
||||||
|
@ -125,7 +125,7 @@ class Design extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'p', 'content' => $variable];
|
$elements[] = ['element' => 'p', 'content' => $variable, 'show_empty' => false];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $elements;
|
return $elements;
|
||||||
@ -138,7 +138,7 @@ class Design extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'p', 'content' => $variable];
|
$elements[] = ['element' => 'p', 'content' => $variable, 'show_empty' => false];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $elements;
|
return $elements;
|
||||||
@ -151,7 +151,7 @@ class Design extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'p', 'content' => $variable];
|
$elements[] = ['element' => 'p', 'content' => $variable, 'show_empty' => false];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $elements;
|
return $elements;
|
||||||
|
@ -56,6 +56,10 @@ class PdfMaker
|
|||||||
|
|
||||||
public function build()
|
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'])) {
|
if (isset($this->data['template'])) {
|
||||||
$this->updateElementProperties($this->data['template']);
|
$this->updateElementProperties($this->data['template']);
|
||||||
}
|
}
|
||||||
|
@ -117,8 +117,12 @@ trait PdfMakerUtilities
|
|||||||
// <my-tag /> => true
|
// <my-tag /> => true
|
||||||
// <my-tag> => false
|
// <my-tag> => false
|
||||||
|
|
||||||
if (isset($child['content'])) {
|
if (isset($child['content'])) {
|
||||||
$contains_html = preg_match("/\/[a-z]*>/i", $child['content'],$m) != 0;
|
if (isset($child['is_empty']) && $child['is_empty'] === true) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$contains_html = preg_match("/\/[a-z]*>/i", $child['content'], $m) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($contains_html) {
|
if ($contains_html) {
|
||||||
@ -319,4 +323,27 @@ trait PdfMakerUtilities
|
|||||||
$this->document->getElementById('repeat-footer')->appendChild($clone);
|
$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 === ' ') {
|
||||||
|
$child['is_empty'] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($child['elements'])) {
|
||||||
|
$this->getEmptyChildrens($child['elements'], $variables);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user