aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/legacy/OC_Defaults.php
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2020-04-01 20:44:29 +0200
committerChristoph Wurst <christoph@winzerhof-wurst.at>2020-04-07 08:48:00 +0200
commit1e086064f5b7ebf2d00d024874a1ecf4cf9d13b5 (patch)
treed723c19000a7971215e6fee12a468ffc9cf3c04f /lib/private/legacy/OC_Defaults.php
parent9895aff4d92a738ea3248a1c03442e83fab02643 (diff)
downloadnextcloud-server-1e086064f5b7ebf2d00d024874a1ecf4cf9d13b5.tar.gz
nextcloud-server-1e086064f5b7ebf2d00d024874a1ecf4cf9d13b5.zip
Move legacy classes from PSR0 to PSR4
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'lib/private/legacy/OC_Defaults.php')
-rw-r--r--lib/private/legacy/OC_Defaults.php334
1 files changed, 334 insertions, 0 deletions
diff --git a/lib/private/legacy/OC_Defaults.php b/lib/private/legacy/OC_Defaults.php
new file mode 100644
index 00000000000..73443adb031
--- /dev/null
+++ b/lib/private/legacy/OC_Defaults.php
@@ -0,0 +1,334 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016, ownCloud, Inc.
+ *
+ * @author Björn Schießle <bjoern@schiessle.org>
+ * @author Daniel Kesselberg <mail@danielkesselberg.de>
+ * @author Jan-Christoph Borchardt <hey@jancborchardt.net>
+ * @author Jörn Friedrich Dreyer <jfd@butonic.de>
+ * @author Julius Haertl <jus@bitgrid.net>
+ * @author Julius Härtl <jus@bitgrid.net>
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ * @author Markus Staab <markus.staab@redaxo.de>
+ * @author Michael Weimann <mail@michael-weimann.eu>
+ * @author Morris Jobke <hey@morrisjobke.de>
+ * @author Pascal de Bruijn <pmjdebruijn@pcode.nl>
+ * @author Robin Appelman <robin@icewind.nl>
+ * @author Robin McCorkell <robin@mccorkell.me.uk>
+ * @author Roeland Jago Douma <roeland@famdouma.nl>
+ * @author scolebrook <scolebrook@mac.com>
+ * @author Thomas Müller <thomas.mueller@tmit.eu>
+ * @author Volkan Gezer <volkangezer@gmail.com>
+ *
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+class OC_Defaults {
+
+ private $theme;
+
+ private $defaultEntity;
+ private $defaultName;
+ private $defaultTitle;
+ private $defaultBaseUrl;
+ private $defaultSyncClientUrl;
+ private $defaultiOSClientUrl;
+ private $defaultiTunesAppId;
+ private $defaultAndroidClientUrl;
+ private $defaultDocBaseUrl;
+ private $defaultDocVersion;
+ private $defaultSlogan;
+ private $defaultColorPrimary;
+ private $defaultTextColorPrimary;
+
+ public function __construct() {
+ $config = \OC::$server->getConfig();
+
+ $this->defaultEntity = 'Nextcloud'; /* e.g. company name, used for footers and copyright notices */
+ $this->defaultName = 'Nextcloud'; /* short name, used when referring to the software */
+ $this->defaultTitle = 'Nextcloud'; /* can be a longer name, for titles */
+ $this->defaultBaseUrl = 'https://nextcloud.com';
+ $this->defaultSyncClientUrl = $config->getSystemValue('customclient_desktop', 'https://nextcloud.com/install/#install-clients');
+ $this->defaultiOSClientUrl = $config->getSystemValue('customclient_ios', 'https://geo.itunes.apple.com/us/app/nextcloud/id1125420102?mt=8');
+ $this->defaultiTunesAppId = $config->getSystemValue('customclient_ios_appid', '1125420102');
+ $this->defaultAndroidClientUrl = $config->getSystemValue('customclient_android', 'https://play.google.com/store/apps/details?id=com.nextcloud.client');
+ $this->defaultDocBaseUrl = 'https://docs.nextcloud.com';
+ $this->defaultDocVersion = \OC_Util::getVersion()[0]; // used to generate doc links
+ $this->defaultColorPrimary = '#0082c9';
+ $this->defaultTextColorPrimary = '#ffffff';
+
+ $themePath = OC::$SERVERROOT . '/themes/' . OC_Util::getTheme() . '/defaults.php';
+ if (file_exists($themePath)) {
+ // prevent defaults.php from printing output
+ ob_start();
+ require_once $themePath;
+ ob_end_clean();
+ if (class_exists('OC_Theme')) {
+ $this->theme = new OC_Theme();
+ }
+ }
+ }
+
+ /**
+ * @param string $method
+ */
+ private function themeExist($method) {
+ if (isset($this->theme) && method_exists($this->theme, $method)) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Returns the base URL
+ * @return string URL
+ */
+ public function getBaseUrl() {
+ if ($this->themeExist('getBaseUrl')) {
+ return $this->theme->getBaseUrl();
+ } else {
+ return $this->defaultBaseUrl;
+ }
+ }
+
+ /**
+ * Returns the URL where the sync clients are listed
+ * @return string URL
+ */
+ public function getSyncClientUrl() {
+ if ($this->themeExist('getSyncClientUrl')) {
+ return $this->theme->getSyncClientUrl();
+ } else {
+ return $this->defaultSyncClientUrl;
+ }
+ }
+
+ /**
+ * Returns the URL to the App Store for the iOS Client
+ * @return string URL
+ */
+ public function getiOSClientUrl() {
+ if ($this->themeExist('getiOSClientUrl')) {
+ return $this->theme->getiOSClientUrl();
+ } else {
+ return $this->defaultiOSClientUrl;
+ }
+ }
+
+ /**
+ * Returns the AppId for the App Store for the iOS Client
+ * @return string AppId
+ */
+ public function getiTunesAppId() {
+ if ($this->themeExist('getiTunesAppId')) {
+ return $this->theme->getiTunesAppId();
+ } else {
+ return $this->defaultiTunesAppId;
+ }
+ }
+
+ /**
+ * Returns the URL to Google Play for the Android Client
+ * @return string URL
+ */
+ public function getAndroidClientUrl() {
+ if ($this->themeExist('getAndroidClientUrl')) {
+ return $this->theme->getAndroidClientUrl();
+ } else {
+ return $this->defaultAndroidClientUrl;
+ }
+ }
+
+ /**
+ * Returns the documentation URL
+ * @return string URL
+ */
+ public function getDocBaseUrl() {
+ if ($this->themeExist('getDocBaseUrl')) {
+ return $this->theme->getDocBaseUrl();
+ } else {
+ return $this->defaultDocBaseUrl;
+ }
+ }
+
+ /**
+ * Returns the title
+ * @return string title
+ */
+ public function getTitle() {
+ if ($this->themeExist('getTitle')) {
+ return $this->theme->getTitle();
+ } else {
+ return $this->defaultTitle;
+ }
+ }
+
+ /**
+ * Returns the short name of the software
+ * @return string title
+ */
+ public function getName() {
+ if ($this->themeExist('getName')) {
+ return $this->theme->getName();
+ } else {
+ return $this->defaultName;
+ }
+ }
+
+ /**
+ * Returns the short name of the software containing HTML strings
+ * @return string title
+ */
+ public function getHTMLName() {
+ if ($this->themeExist('getHTMLName')) {
+ return $this->theme->getHTMLName();
+ } else {
+ return $this->defaultName;
+ }
+ }
+
+ /**
+ * Returns entity (e.g. company name) - used for footer, copyright
+ * @return string entity name
+ */
+ public function getEntity() {
+ if ($this->themeExist('getEntity')) {
+ return $this->theme->getEntity();
+ } else {
+ return $this->defaultEntity;
+ }
+ }
+
+ /**
+ * Returns slogan
+ * @return string slogan
+ */
+ public function getSlogan() {
+ if ($this->themeExist('getSlogan')) {
+ return $this->theme->getSlogan();
+ } else {
+ if ($this->defaultSlogan === null) {
+ $l10n = \OC::$server->getL10N('lib');
+ $this->defaultSlogan = $l10n->t('a safe home for all your data');
+ }
+ return $this->defaultSlogan;
+ }
+ }
+
+ /**
+ * Returns logo claim
+ * @return string logo claim
+ * @deprecated 13.0.0
+ */
+ public function getLogoClaim() {
+ return '';
+ }
+
+ /**
+ * Returns short version of the footer
+ * @return string short footer
+ */
+ public function getShortFooter() {
+ if ($this->themeExist('getShortFooter')) {
+ $footer = $this->theme->getShortFooter();
+ } else {
+ $footer = '<a href="'. $this->getBaseUrl() . '" target="_blank"' .
+ ' rel="noreferrer noopener">' .$this->getEntity() . '</a>'.
+ ' – ' . $this->getSlogan();
+ }
+
+ return $footer;
+ }
+
+ /**
+ * Returns long version of the footer
+ * @return string long footer
+ */
+ public function getLongFooter() {
+ if ($this->themeExist('getLongFooter')) {
+ $footer = $this->theme->getLongFooter();
+ } else {
+ $footer = $this->getShortFooter();
+ }
+
+ return $footer;
+ }
+
+ /**
+ * @param string $key
+ * @return string URL to doc with key
+ */
+ public function buildDocLinkToKey($key) {
+ if ($this->themeExist('buildDocLinkToKey')) {
+ return $this->theme->buildDocLinkToKey($key);
+ }
+ return $this->getDocBaseUrl() . '/server/' . $this->defaultDocVersion . '/go.php?to=' . $key;
+ }
+
+ /**
+ * Returns primary color
+ * @return string
+ */
+ public function getColorPrimary() {
+
+ if ($this->themeExist('getColorPrimary')) {
+ return $this->theme->getColorPrimary();
+ }
+ if ($this->themeExist('getMailHeaderColor')) {
+ return $this->theme->getMailHeaderColor();
+ }
+ return $this->defaultColorPrimary;
+ }
+
+ /**
+ * @return array scss variables to overwrite
+ */
+ public function getScssVariables() {
+ if($this->themeExist('getScssVariables')) {
+ return $this->theme->getScssVariables();
+ }
+ return [];
+ }
+
+ public function shouldReplaceIcons() {
+ return false;
+ }
+
+ /**
+ * Themed logo url
+ *
+ * @param bool $useSvg Whether to point to the SVG image or a fallback
+ * @return string
+ */
+ public function getLogo($useSvg = true) {
+ if ($this->themeExist('getLogo')) {
+ return $this->theme->getLogo($useSvg);
+ }
+
+ if($useSvg) {
+ $logo = \OC::$server->getURLGenerator()->imagePath('core', 'logo/logo.svg');
+ } else {
+ $logo = \OC::$server->getURLGenerator()->imagePath('core', 'logo/logo.png');
+ }
+ return $logo . '?v=' . hash('sha1', implode('.', \OCP\Util::getVersion()));
+ }
+
+ public function getTextColorPrimary() {
+ if ($this->themeExist('getTextColorPrimary')) {
+ return $this->theme->getTextColorPrimary();
+ }
+ return $this->defaultTextColorPrimary;
+ }
+}