Merge pull request #8315 from MrPetovan/task/8310-improve-manifest
Update manifest output with config/theme info
This commit is contained in:
commit
b6b567fc97
|
@ -257,4 +257,56 @@ class Theme
|
||||||
|
|
||||||
return 'view/theme/' . $theme . '/style.pcss' . (!empty($query_params) ? '?' . http_build_query($query_params) : '');
|
return 'view/theme/' . $theme . '/style.pcss' . (!empty($query_params) ? '?' . http_build_query($query_params) : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the background color of the provided theme if available.
|
||||||
|
*
|
||||||
|
* @param string $theme
|
||||||
|
* @param int|null $uid Current logged-in user id
|
||||||
|
* @return string|null
|
||||||
|
*/
|
||||||
|
public static function getBackgroundColor(string $theme, $uid = null)
|
||||||
|
{
|
||||||
|
$theme = Strings::sanitizeFilePathItem($theme);
|
||||||
|
|
||||||
|
$return = null;
|
||||||
|
|
||||||
|
// silently fail if theme was removed or if $theme is funky
|
||||||
|
if (file_exists("view/theme/$theme/theme.php")) {
|
||||||
|
include_once "view/theme/$theme/theme.php";
|
||||||
|
|
||||||
|
$func = "{$theme}_get_background_color";
|
||||||
|
if (function_exists($func)) {
|
||||||
|
$return = $func($uid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the theme color of the provided theme if available.
|
||||||
|
*
|
||||||
|
* @param string $theme
|
||||||
|
* @param int|null $uid Current logged-in user id
|
||||||
|
* @return string|null
|
||||||
|
*/
|
||||||
|
public static function getThemeColor(string $theme, int $uid = null)
|
||||||
|
{
|
||||||
|
$theme = Strings::sanitizeFilePathItem($theme);
|
||||||
|
|
||||||
|
$return = null;
|
||||||
|
|
||||||
|
// silently fail if theme was removed or if $theme is funky
|
||||||
|
if (file_exists("view/theme/$theme/theme.php")) {
|
||||||
|
include_once "view/theme/$theme/theme.php";
|
||||||
|
|
||||||
|
$func = "{$theme}_get_theme_color";
|
||||||
|
if (function_exists($func)) {
|
||||||
|
$return = $func($uid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
namespace Friendica\Module;
|
namespace Friendica\Module;
|
||||||
|
|
||||||
use Friendica\BaseModule;
|
use Friendica\BaseModule;
|
||||||
use Friendica\Core\Renderer;
|
use Friendica\Core;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
|
|
||||||
class Manifest extends BaseModule
|
class Manifest extends BaseModule
|
||||||
|
@ -31,22 +31,33 @@ class Manifest extends BaseModule
|
||||||
{
|
{
|
||||||
$config = DI::config();
|
$config = DI::config();
|
||||||
|
|
||||||
$tpl = Renderer::getMarkupTemplate('manifest.tpl');
|
$touch_icon = $config->get('system', 'touch_icon') ?: 'images/friendica-128.png';
|
||||||
|
|
||||||
header('Content-type: application/manifest+json');
|
$theme = DI::config()->get('system', 'theme');
|
||||||
|
|
||||||
$touch_icon = $config->get('system', 'touch_icon', 'images/friendica-128.png');
|
$manifest = [
|
||||||
if ($touch_icon == '') {
|
'name' => $config->get('config', 'sitename', 'Friendica'),
|
||||||
$touch_icon = 'images/friendica-128.png';
|
'start_url' => DI::baseUrl()->get(),
|
||||||
|
'display' => 'standalone',
|
||||||
|
'description' => $config->get('config', 'info', DI::l10n()->t('A Decentralized Social Network')),
|
||||||
|
'short_name' => 'Friendica',
|
||||||
|
'icons' => [
|
||||||
|
[
|
||||||
|
'src' => DI::baseUrl()->get() . '/' . $touch_icon,
|
||||||
|
'sizes' => '128x128',
|
||||||
|
'type' => 'image/png',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($background_color = Core\Theme::getBackgroundColor($theme)) {
|
||||||
|
$manifest['background_color'] = $background_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
$output = Renderer::replaceMacros($tpl, [
|
if ($theme_color = Core\Theme::getThemeColor($theme)) {
|
||||||
'$touch_icon' => $touch_icon,
|
$manifest['theme_color'] = $theme_color;
|
||||||
'$title' => $config->get('config', 'sitename', 'Friendica'),
|
}
|
||||||
]);
|
|
||||||
|
|
||||||
echo $output;
|
Core\System::jsonExit($manifest, 'application/manifest+json');
|
||||||
|
|
||||||
exit();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"name": "{{$title}}",
|
|
||||||
"start_url": "{{$baseurl}}",
|
|
||||||
"display": "standalone",
|
|
||||||
"description": "A Decentralized Social Network",
|
|
||||||
"icons": [{
|
|
||||||
"src": "{{$baseurl}}/{{$touch_icon}}"
|
|
||||||
}]
|
|
||||||
}
|
|
|
@ -98,3 +98,25 @@ $(document).ready(function() {
|
||||||
</script>
|
</script>
|
||||||
EOT;
|
EOT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int|null $uid
|
||||||
|
* @return null
|
||||||
|
* @see \Friendica\Core\Theme::getBackgroundColor()
|
||||||
|
* @TODO Implement this function
|
||||||
|
*/
|
||||||
|
function duepuntozero_get_background_color(int $uid = null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int|null $uid
|
||||||
|
* @return null
|
||||||
|
* @see \Friendica\Core\Theme::getThemeColor()
|
||||||
|
* @TODO Implement this function
|
||||||
|
*/
|
||||||
|
function duepuntozero_get_theme_color(int $uid = null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
|
@ -366,3 +366,51 @@ function frio_display_item(App $a, &$arr)
|
||||||
}
|
}
|
||||||
$arr['output']['subthread'] = $subthread;
|
$arr['output']['subthread'] = $subthread;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int|null $uid
|
||||||
|
* @return string
|
||||||
|
* @see \Friendica\Core\Theme::getBackgroundColor()
|
||||||
|
*/
|
||||||
|
function frio_get_background_color(int $uid = null)
|
||||||
|
{
|
||||||
|
$background_color = DI::config()->get('frio', 'background_color') ?: '#ededed';
|
||||||
|
|
||||||
|
if ($uid) {
|
||||||
|
$background_color = DI::pConfig()->get($uid, 'frio', 'background_color') ?: $background_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
$scheme = DI::config()->get('frio', 'scheme', DI::config()->get('frio', 'schema'));
|
||||||
|
$scheme = Strings::sanitizeFilePathItem($scheme);
|
||||||
|
|
||||||
|
if ($scheme && ($scheme != '---') && file_exists('view/theme/frio/scheme/' . $scheme . '.php')) {
|
||||||
|
$schemefile = 'view/theme/frio/scheme/' . $scheme . '.php';
|
||||||
|
require_once $schemefile;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $background_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int|null $uid
|
||||||
|
* @return string
|
||||||
|
* @see \Friendica\Core\Theme::getThemeColor()
|
||||||
|
*/
|
||||||
|
function frio_get_theme_color(int $uid = null)
|
||||||
|
{
|
||||||
|
$nav_bg = DI::config()->get('frio', 'nav_bg') ?: '#708fa0';
|
||||||
|
|
||||||
|
if ($uid) {
|
||||||
|
$nav_bg = DI::pConfig()->get($uid, 'frio', 'background_color') ?: $nav_bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
$scheme = DI::config()->get('frio', 'scheme', DI::config()->get('frio', 'schema'));
|
||||||
|
$scheme = Strings::sanitizeFilePathItem($scheme);
|
||||||
|
|
||||||
|
if ($scheme && ($scheme != '---') && file_exists('view/theme/frio/scheme/' . $scheme . '.php')) {
|
||||||
|
$schemefile = 'view/theme/frio/scheme/' . $scheme . '.php';
|
||||||
|
require_once $schemefile;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $nav_bg;
|
||||||
|
}
|
||||||
|
|
|
@ -14,3 +14,25 @@ function quattro_init(App $a) {
|
||||||
DI::page()['htmlhead'] .= '<script src="'.DI::baseUrl().'/view/theme/quattro/tinycon.min.js"></script>';
|
DI::page()['htmlhead'] .= '<script src="'.DI::baseUrl().'/view/theme/quattro/tinycon.min.js"></script>';
|
||||||
DI::page()['htmlhead'] .= '<script src="'.DI::baseUrl().'/view/theme/quattro/js/quattro.js"></script>';;
|
DI::page()['htmlhead'] .= '<script src="'.DI::baseUrl().'/view/theme/quattro/js/quattro.js"></script>';;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int|null $uid
|
||||||
|
* @return null
|
||||||
|
* @see \Friendica\Core\Theme::getBackgroundColor()
|
||||||
|
* @TODO Implement this function
|
||||||
|
*/
|
||||||
|
function quattro_get_background_color(int $uid = null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int|null $uid
|
||||||
|
* @return null
|
||||||
|
* @see \Friendica\Core\Theme::getThemeColor()
|
||||||
|
* @TODO Implement this function
|
||||||
|
*/
|
||||||
|
function quattro_get_theme_color(int $uid = null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
|
@ -93,3 +93,25 @@ if (! function_exists('_js_in_foot')) {
|
||||||
return DI::page()['bottom'] = Renderer::replaceMacros($tpl, $bottom);
|
return DI::page()['bottom'] = Renderer::replaceMacros($tpl, $bottom);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int|null $uid
|
||||||
|
* @return null
|
||||||
|
* @see \Friendica\Core\Theme::getBackgroundColor()
|
||||||
|
* @TODO Implement this function
|
||||||
|
*/
|
||||||
|
function smoothly_get_background_color(int $uid = null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int|null $uid
|
||||||
|
* @return null
|
||||||
|
* @see \Friendica\Core\Theme::getThemeColor()
|
||||||
|
* @TODO Implement this function
|
||||||
|
*/
|
||||||
|
function smoothly_get_theme_color(int $uid = null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
|
@ -364,3 +364,25 @@ function vier_community_info()
|
||||||
$tpl = Renderer::getMarkupTemplate('communityhome.tpl');
|
$tpl = Renderer::getMarkupTemplate('communityhome.tpl');
|
||||||
DI::page()['right_aside'] = Renderer::replaceMacros($tpl, $aside);
|
DI::page()['right_aside'] = Renderer::replaceMacros($tpl, $aside);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int|null $uid
|
||||||
|
* @return null
|
||||||
|
* @see \Friendica\Core\Theme::getBackgroundColor()
|
||||||
|
* @TODO Implement this function
|
||||||
|
*/
|
||||||
|
function vier_get_background_color(int $uid = null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int|null $uid
|
||||||
|
* @return null
|
||||||
|
* @see \Friendica\Core\Theme::getThemeColor()
|
||||||
|
* @TODO Implement this function
|
||||||
|
*/
|
||||||
|
function vier_get_theme_color(int $uid = null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user