BuildUrlExtended.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\Helpers;
  3. use function ThurData\Servers\KerioEmail\Core\Helper\di;
  4. use ThurData\Servers\KerioEmail\Core\UI\Traits\RequestObjectHandler;
  5. use ThurData\Servers\KerioEmail\Core\Helper\BuildUrl;
  6. /**
  7. *
  8. * Extended BuildUrl class, allow to create url for provisioning
  9. *
  10. * Created by PhpStorm.
  11. * User: Tomasz Bielecki ( tomasz.bi@thurdata.com )
  12. * Date: 03.10.19
  13. * Time: 14:53
  14. * Class BuildUrlExtended
  15. */
  16. class BuildUrlExtended extends BuildUrl
  17. {
  18. const FILE_URI = 'clientarea.php';
  19. use RequestObjectHandler;
  20. /**
  21. * @param $controller
  22. * @return string
  23. */
  24. public static function getProvisioningUrl($controller = 'home', $isModParam = true, $isAParam = true, $action = null)
  25. {
  26. /**
  27. * uri params
  28. */
  29. $urlData = [
  30. 'action' => 'productdetails',
  31. 'id' => di('request')->get('id'),
  32. ];
  33. if($controller)
  34. {
  35. $urlData['mg-page'] = $controller;
  36. }
  37. if($isModParam)
  38. {
  39. $urlData['modop'] = 'custom';
  40. }
  41. if($isAParam)
  42. {
  43. $urlData['a'] = 'management';
  44. }
  45. if($action)
  46. {
  47. $urlData['mg-action'] = $action;
  48. }
  49. /**
  50. * build uri
  51. */
  52. $url = BuildUrlExtended::FILE_URI.'?'.http_build_query($urlData);
  53. /**
  54. * get base URL
  55. */
  56. $baseUrl = self::baseUrl();
  57. /**
  58. * build full url
  59. */
  60. $url = $baseUrl . $url;
  61. return $url;
  62. }
  63. /**
  64. * @return string
  65. */
  66. private static function baseUrl()
  67. {
  68. $protocol = 'https';
  69. if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on')
  70. {
  71. $protocol = 'http';
  72. }
  73. $host = $_SERVER['HTTP_HOST'];
  74. $surfix = $_SERVER['PHP_SELF'];
  75. $surfix = explode('/', $surfix);
  76. array_pop($surfix);
  77. $surfix = implode('/', $surfix);
  78. return "{$protocol}://{$host}{$surfix}/";
  79. }
  80. }