. */ namespace OCA\SideMenu\Controller; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\DataDownloadResponse; use OCP\AppFramework\Http\Response; use OCP\IConfig; use OCP\IRequest; class CssController extends Controller { /** @var \OCP\IConfig */ protected $config; /** * @param string $appName * @param IRequest $request * @param IConfig $config */ public function __construct($appName, IRequest $request, IConfig $config) { parent::__construct($appName, $request); $this->config = $config; } /** * @NoAdminRequired * @NoCSRFRequired * @PublicPage * * @return Response */ public function stylesheet() { $parameters = [ '--side-menu-background-color' => $this->config->getAppValue('side_menu', 'background-color', '#333333'), '--side-menu-current-app-background-color' => $this->config->getAppValue('side_menu', 'current-app-background-color', '#444444'), '--side-menu-text-color' => $this->config->getAppValue('side_menu', 'text-color', '#FFFFFF'), '--side-menu-opener' => $this->config->getAppValue('side_menu', 'opener', 'side-menu-opener'), ]; $css = ''; foreach ($parameters as $key => $value) { if ($key === '--side-menu-opener') { $value = sprintf("url('../img/%s.svg')", $value); } $css.= sprintf('%s: %s;', $key, $value); } $css = sprintf(':root { %s }', $css); return new DataDownloadResponse($css, 'stylesheet', 'text/css'); } }