X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/effc03e99e8a455932884dccf1195287f87d09a3..refs/pull/5676/head:/app/App/helpers.php diff --git a/app/App/helpers.php b/app/App/helpers.php index af6dbcfc3..2305c2d72 100644 --- a/app/App/helpers.php +++ b/app/App/helpers.php @@ -1,6 +1,8 @@ can($permission); } @@ -70,7 +67,7 @@ function userCanOnAny(string $action, string $entityClass = ''): bool * * @return mixed|SettingService */ -function setting(string $key = null, $default = null) +function setting(?string $key = null, mixed $default = null): mixed { $settingService = app()->make(SettingService::class); @@ -88,43 +85,10 @@ function setting(string $key = null, $default = null) */ function theme_path(string $path = ''): ?string { - $theme = config('view.theme'); - + $theme = Theme::getTheme(); if (!$theme) { return null; } return base_path('themes/' . $theme . ($path ? DIRECTORY_SEPARATOR . $path : $path)); } - -/** - * Generate a URL with multiple parameters for sorting purposes. - * Works out the logic to set the correct sorting direction - * Discards empty parameters and allows overriding. - */ -function sortUrl(string $path, array $data, array $overrideData = []): string -{ - $queryStringSections = []; - $queryData = array_merge($data, $overrideData); - - // Change sorting direction is already sorted on current attribute - if (isset($overrideData['sort']) && $overrideData['sort'] === $data['sort']) { - $queryData['order'] = ($data['order'] === 'asc') ? 'desc' : 'asc'; - } elseif (isset($overrideData['sort'])) { - $queryData['order'] = 'asc'; - } - - foreach ($queryData as $name => $value) { - $trimmedVal = trim($value); - if ($trimmedVal === '') { - continue; - } - $queryStringSections[] = urlencode($name) . '=' . urlencode($trimmedVal); - } - - if (count($queryStringSections) === 0) { - return url($path); - } - - return url($path . '?' . implode('&', $queryStringSections)); -}