Merge pull request #4734 from nextcloud/allow-specifying-logo-mimetype
Add function to request SVG or regular fallback image
This commit is contained in:
commit
5213c56197
5 changed files with 33 additions and 15 deletions
|
@ -129,9 +129,10 @@ class ThemingDefaults extends \OC_Defaults {
|
|||
/**
|
||||
* Themed logo url
|
||||
*
|
||||
* @param bool $useSvg Whether to point to the SVG image or a fallback
|
||||
* @return string
|
||||
*/
|
||||
public function getLogo() {
|
||||
public function getLogo($useSvg = true) {
|
||||
$logo = $this->config->getAppValue('theming', 'logoMime', false);
|
||||
|
||||
$logoExists = true;
|
||||
|
@ -144,7 +145,12 @@ class ThemingDefaults extends \OC_Defaults {
|
|||
$cacheBusterCounter = $this->config->getAppValue('theming', 'cachebuster', '0');
|
||||
|
||||
if(!$logo || !$logoExists) {
|
||||
return $this->urlGenerator->imagePath('core','logo.svg') . '?v=' . $cacheBusterCounter;
|
||||
if($useSvg) {
|
||||
$logo = $this->urlGenerator->imagePath('core', 'logo.svg');
|
||||
} else {
|
||||
$logo = $this->urlGenerator->imagePath('core', 'logo.png');
|
||||
}
|
||||
return $logo . '?v=' . $cacheBusterCounter;
|
||||
}
|
||||
|
||||
return $this->urlGenerator->linkToRoute('theming.Theming.getLogo') . '?v=' . $cacheBusterCounter;
|
||||
|
|
|
@ -431,7 +431,7 @@ class ThemingDefaultsTest extends TestCase {
|
|||
$this->assertEquals('custom-background?v=0', $this->template->getBackground());
|
||||
}
|
||||
|
||||
public function testGetLogoDefault() {
|
||||
private function getLogoHelper($withName, $useSvg) {
|
||||
$this->appData->expects($this->once())
|
||||
->method('getFolder')
|
||||
->willThrowException(new NotFoundException());
|
||||
|
@ -452,9 +452,17 @@ class ThemingDefaultsTest extends TestCase {
|
|||
->willThrowException(new \Exception());
|
||||
$this->urlGenerator->expects($this->once())
|
||||
->method('imagePath')
|
||||
->with('core', 'logo.svg')
|
||||
->with('core', $withName)
|
||||
->willReturn('core-logo');
|
||||
$this->assertEquals('core-logo?v=0', $this->template->getLogo());
|
||||
$this->assertEquals('core-logo?v=0', $this->template->getLogo($useSvg));
|
||||
}
|
||||
|
||||
public function testGetLogoDefaultWithSvg() {
|
||||
$this->getLogoHelper('logo.svg', true);
|
||||
}
|
||||
|
||||
public function testGetLogoDefaultWithoutSvg() {
|
||||
$this->getLogoHelper('logo.png', false);
|
||||
}
|
||||
|
||||
public function testGetLogoCustom() {
|
||||
|
|
|
@ -357,7 +357,7 @@ EOF;
|
|||
}
|
||||
$this->headerAdded = true;
|
||||
|
||||
$logoUrl = $this->urlGenerator->getAbsoluteURL($this->themingDefaults->getLogo());
|
||||
$logoUrl = $this->urlGenerator->getAbsoluteURL($this->themingDefaults->getLogo(false));
|
||||
$this->htmlBody .= vsprintf($this->header, [$this->themingDefaults->getColorPrimary(), $logoUrl, $this->themingDefaults->getName()]);
|
||||
}
|
||||
|
||||
|
|
|
@ -47,9 +47,8 @@ class OC_Defaults {
|
|||
private $defaultSlogan;
|
||||
private $defaultLogoClaim;
|
||||
private $defaultColorPrimary;
|
||||
private $defaultLogoUrl;
|
||||
|
||||
function __construct() {
|
||||
public function __construct() {
|
||||
$this->l = \OC::$server->getL10N('lib');
|
||||
|
||||
$this->defaultEntity = 'Nextcloud'; /* e.g. company name, used for footers and copyright notices */
|
||||
|
@ -65,8 +64,6 @@ class OC_Defaults {
|
|||
$this->defaultSlogan = $this->l->t('a safe home for all your data');
|
||||
$this->defaultLogoClaim = '';
|
||||
$this->defaultColorPrimary = '#0082c9';
|
||||
$this->defaultLogoUrl = \OC::$server->getURLGenerator()->imagePath('core','logo.svg');
|
||||
$this->defaultLogoUrl .= '?v=' . hash('sha1', implode('.', \OCP\Util::getVersion()));
|
||||
|
||||
$themePath = OC::$SERVERROOT . '/themes/' . OC_Util::getTheme() . '/defaults.php';
|
||||
if (file_exists($themePath)) {
|
||||
|
@ -307,13 +304,19 @@ class OC_Defaults {
|
|||
/**
|
||||
* Themed logo url
|
||||
*
|
||||
* @param bool $useSvg Whether to point to the SVG image or a fallback
|
||||
* @return string
|
||||
*/
|
||||
public function getLogo() {
|
||||
public function getLogo($useSvg = true) {
|
||||
if ($this->themeExist('getLogo')) {
|
||||
return $this->theme->getLogo();
|
||||
return $this->theme->getLogo($useSvg);
|
||||
}
|
||||
|
||||
return $this->defaultLogoUrl;
|
||||
if($useSvg) {
|
||||
$logo = \OC::$server->getURLGenerator()->imagePath('core', 'logo.svg');
|
||||
} else {
|
||||
$logo = \OC::$server->getURLGenerator()->imagePath('core', 'logo.png');
|
||||
}
|
||||
return $logo . '?v=' . hash('sha1', implode('.', \OCP\Util::getVersion()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -178,11 +178,12 @@ class Defaults {
|
|||
/**
|
||||
* Themed logo url
|
||||
*
|
||||
* @param bool $useSvg Whether to point to the SVG image or a fallback
|
||||
* @return string
|
||||
* @since 12.0.0
|
||||
*/
|
||||
public function getLogo() {
|
||||
return $this->defaults->getLogo();
|
||||
public function getLogo($useSvg = true) {
|
||||
return $this->defaults->getLogo($useSvg);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue