manifest.json.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup UnaCore UNA Core
  7. * @{
  8. */
  9. define('BX_MANIFEST', true);
  10. require_once('./inc/header.inc.php');
  11. $aContent = [
  12. 'name' => '',
  13. 'short_name' => '',
  14. 'description' => getParam('sys_pwa_manifest_description'),
  15. 'orientation' => 'portrait',
  16. 'start_url' => parse_url(BX_DOL_URL_ROOT, PHP_URL_PATH),
  17. 'display' => 'standalone',
  18. 'scope' => '/',
  19. 'background_color' => getParam('sys_pwa_manifest_background_color'),
  20. 'theme_color' => getParam('sys_pwa_manifest_theme_color'),
  21. 'gcm_sender_id' => isLogged() ? '482941778795' : ''
  22. ];
  23. $aContent['name'] = ($sName = getParam('sys_pwa_manifest_name')) != '' ? $sName : parse_url(BX_DOL_URL_ROOT, PHP_URL_HOST);
  24. $aContent['short_name'] = ($sShortName = getParam('sys_pwa_manifest_short_name')) != '' ? $sShortName : $aContent['name'];
  25. foreach($aContent as $sKey => $sValue)
  26. if(empty($sValue))
  27. unset($aContent[$sKey]);
  28. $aAdi = [];
  29. /*
  30. * Apple device icons
  31. */
  32. if(($iId = (int)getParam('sys_site_icon_apple')) != 0) {
  33. $oTranscoder = BxDolTranscoderImage::getObjectInstance(BX_DOL_TRANSCODER_OBJ_ICON_APPLE);
  34. $sSizes = '180x180';
  35. if(($aTranscoderParams = $oTranscoder->getFilterParams('Resize')) !== false)
  36. $sSizes = $aTranscoderParams['w'] . 'x' . $aTranscoderParams['h'];
  37. $aAdi[] = [
  38. 'src' => $oTranscoder->getFileUrl($iId),
  39. 'type' => $oTranscoder->getFileMimeType($iId),
  40. 'sizes' => $sSizes
  41. ];
  42. }
  43. /*
  44. * Android device icons
  45. */
  46. if(($iId = (int)getParam('sys_site_icon_android')) != 0) {
  47. $oTranscoder = BxDolTranscoderImage::getObjectInstance(BX_DOL_TRANSCODER_OBJ_ICON_ANDROID);
  48. $sSizes = '192x192';
  49. if(($aTranscoderParams = $oTranscoder->getFilterParams('Resize')) !== false)
  50. $sSizes = $aTranscoderParams['w'] . 'x' . $aTranscoderParams['h'];
  51. $aAdi[] = [
  52. 'src' => $oTranscoder->getFileUrl($iId),
  53. 'type' => $oTranscoder->getFileMimeType($iId),
  54. 'sizes' => $sSizes
  55. ];
  56. }
  57. if(($iId = (int)getParam('sys_site_icon_android_splash')) != 0) {
  58. $oTranscoder = BxDolTranscoderImage::getObjectInstance(BX_DOL_TRANSCODER_OBJ_ICON_ANDROID_SPLASH);
  59. $sSizes = '512x512';
  60. if(($aTranscoderParams = $oTranscoder->getFilterParams('Resize')) !== false)
  61. $sSizes = $aTranscoderParams['w'] . 'x' . $aTranscoderParams['h'];
  62. $aAdi[] = [
  63. 'src' => $oTranscoder->getFileUrl($iId),
  64. 'type' => $oTranscoder->getFileMimeType($iId),
  65. 'sizes' => $sSizes
  66. ];
  67. }
  68. if(!empty($aAdi) && is_array($aAdi))
  69. $aContent['icons'] = $aAdi;
  70. header("Content-Type: application/json");
  71. header("X-Robots-Tag: none");
  72. echo json_encode($aContent);
  73. ?>