GX-Bug #63108 » ThemeFontFix.patch
| src/GXMainComponents/Services/System/Theme/Repositories/ThemeWriter.inc.php (date 1562002998000) | ||
|---|---|---|
| 248 | 248 |
$this->_copyCustomStylesDirectory($theme->getId(), $theme->getCustomStyles(), $destination); |
| 249 | 249 | |
| 250 | 250 |
$this->_copyThemeImagesDirectory($theme->getId(), $theme->getImages(), $destination); |
| 251 |
|
|
| 252 |
$this->_copyThemeFontsDirectory($theme->getId(), $theme->getFonts(), $destination); |
|
| 251 | 253 | |
| 252 | 254 |
$this->_copyStyleEditThemeDirectory($theme->getId(), $theme->getStyleEdit(), $destination); |
| 253 | 255 |
} |
| ... | ... | |
| 585 | 587 |
$sourcePath = $this->_getRelative($imagesDirectory->getRoot()); |
| 586 | 588 |
$destinationPath = $this->_getRelative($destination) . $this->_stringAfter($themeName, $sourcePath); |
| 587 | 589 | |
| 590 |
$sourceFile = $sourcePath . DIRECTORY_SEPARATOR . $file; |
|
| 591 |
$destinationFile = $destinationPath . DIRECTORY_SEPARATOR . $file; |
|
| 592 | ||
| 593 |
try {
|
|
| 594 |
$this->filesystem->copy($sourceFile, $destinationFile); |
|
| 595 |
} catch (FileExistsException $e) {
|
|
| 596 |
$this->filesystem->delete($destinationFile); |
|
| 597 |
$this->filesystem->copy($sourceFile, $destinationFile); |
|
| 598 |
} catch (FileNotFoundException $e) {
|
|
| 599 |
} |
|
| 600 |
} |
|
| 601 |
} |
|
| 602 |
} |
|
| 603 |
|
|
| 604 |
/** |
|
| 605 |
* @param ThemeId $themeId |
|
| 606 |
* @param $fontsDirectory |
|
| 607 |
* @param ThemeDirectoryRootInterface $destination |
|
| 608 |
* |
|
| 609 |
* @throws FileNotFoundException |
|
| 610 |
*/ |
|
| 611 |
protected function _copyThemeFontsDirectory( |
|
| 612 |
ThemeId $themeId, |
|
| 613 |
$fontsDirectory, |
|
| 614 |
ThemeDirectoryRootInterface $destination |
|
| 615 |
) {
|
|
| 616 |
if ($fontsDirectory instanceof ThemeDirectoryInterface) {
|
|
| 617 |
$childDirectories = $fontsDirectory->getChildren(); |
|
| 618 |
if ($childDirectories) {
|
|
| 619 |
foreach ($childDirectories as $childDirectory) {
|
|
| 620 |
$this->_copyThemeFontsDirectory($themeId, $childDirectory, $destination); |
|
| 621 |
} |
|
| 622 |
} |
|
| 623 |
|
|
| 624 |
foreach ($fontsDirectory->getFiles() as $file) {
|
|
| 625 |
$themeName = $themeId->getId(); |
|
| 626 |
$sourcePath = $this->_getRelative($fontsDirectory->getRoot()); |
|
| 627 |
$destinationPath = $this->_getRelative($destination) . $this->_stringAfter($themeName, $sourcePath); |
|
| 628 |
|
|
| 588 | 629 |
$sourceFile = $sourcePath . DIRECTORY_SEPARATOR . $file; |
| 589 | 630 |
$destinationFile = $destinationPath . DIRECTORY_SEPARATOR . $file; |
| 590 | ||
| 631 |
|
|
| 591 | 632 |
try {
|
| 592 | 633 |
$this->filesystem->copy($sourceFile, $destinationFile); |
| 593 | 634 |
} catch (FileExistsException $e) {
|
| src/GXMainComponents/Services/System/Theme/ValueObjects/Interfaces/ThemeDirectoriesInterface.inc.php (date 1562002880000) | ||
|---|---|---|
| 69 | 69 |
* @return \ThemeDirectory|null |
| 70 | 70 |
*/ |
| 71 | 71 |
public function getImages(); |
| 72 |
|
|
| 73 |
/** |
|
| 74 |
* Returns the fonts directory. |
|
| 75 |
* |
|
| 76 |
* @return \ThemeDirectory|null |
|
| 77 |
*/ |
|
| 78 |
public function getFonts(); |
|
| 72 | 79 | |
| 73 | 80 | |
| 74 | 81 |
/** |
| src/GXMainComponents/Services/System/Theme/ValueObjects/ThemeDirectories.inc.php (date 1562171451000) | ||
|---|---|---|
| 63 | 63 |
* @var ThemeDirectory|null |
| 64 | 64 |
*/ |
| 65 | 65 |
protected $images; |
| 66 |
|
|
| 67 |
/** |
|
| 68 |
* Fonts directory |
|
| 69 |
* |
|
| 70 |
* @var ThemeDirectory|null |
|
| 71 |
*/ |
|
| 72 |
protected $fonts; |
|
| 66 | 73 | |
| 67 | 74 |
/** |
| 68 | 75 |
* Custom HTML directory |
| ... | ... | |
| 106 | 113 |
$this->customStyles = $this->tryBuildThemeDirectory($root, 'styles' . DIRECTORY_SEPARATOR . 'custom'); |
| 107 | 114 | |
| 108 | 115 |
$this->images = $this->tryBuildThemeDirectory($root, 'images'); |
| 116 |
$this->fonts = $this->tryBuildThemeDirectory($root, 'fonts'); |
|
| 109 | 117 |
} |
| 110 | 118 | |
| 111 | 119 | |
| ... | ... | |
| 214 | 222 |
{
|
| 215 | 223 |
return $this->images; |
| 216 | 224 |
} |
| 225 |
|
|
| 226 |
/** |
|
| 227 |
* Returns the fonts directory. |
|
| 228 |
* |
|
| 229 |
* @return \ThemeDirectory|null |
|
| 230 |
*/ |
|
| 231 |
public function getFonts() |
|
| 232 |
{
|
|
| 233 |
return $this->fonts; |
|
| 234 |
} |
|
| 217 | 235 | |
| 218 | 236 | |
| 219 | 237 |
/** |
| src/GXMainComponents/Services/System/Theme/ValueObjects/Theme.inc.php (date 1562002855000) | ||
|---|---|---|
| 196 | 196 |
{
|
| 197 | 197 |
return $this->directories->getImages(); |
| 198 | 198 |
} |
| 199 |
|
|
| 200 |
/** |
|
| 201 |
* Returns the fonts directory. |
|
| 202 |
* |
|
| 203 |
* @return \ThemeDirectory|null |
|
| 204 |
*/ |
|
| 205 |
public function getFonts() |
|
| 206 |
{
|
|
| 207 |
return $this->directories->getFonts(); |
|
| 208 |
} |
|
| 199 | 209 | |
| 200 | 210 | |
| 201 | 211 |
/** |