Par.php 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. namespace MGModule\DNSManager2\mgLibs\custom\manager;
  3. use MGModule\DNSManager2 as main;
  4. use MGModule\DNSManager2\mgLibs\MySQL\query;
  5. use MGModule\DNSManager2\models\custom\zone\ZoneTypeEnum;
  6. use MGModule\DNSManager2\models\custom\package\item\PackageItemTypeEnum;
  7. use MGModule\DNSManager2\mgLibs\custom\manager\GlobalSettingHelper;
  8. use MGModule\DNSManager2\models\custom\globalsetting\GlobalSettingEnum;
  9. class Par {
  10. public static function getServices($userid) {
  11. return query::query("SELECT CONCAT('#', tblhosting.id, ' ', tblproductgroups.name, ' - ', tblproducts.name) AS group_name, tblhosting.domain as domain,
  12. dns_manager2_package.name as package_name,
  13. :type `type`, tblhosting.id AS relid
  14. FROM tblhosting
  15. INNER JOIN tblproducts ON tblproducts.id = tblhosting.packageid
  16. INNER JOIN tblproductgroups ON tblproductgroups.id = tblproducts.gid
  17. LEFT JOIN dns_manager2_packageitem ON dns_manager2_packageitem.relid = tblproducts.id
  18. AND dns_manager2_packageitem.type = :type2
  19. LEFT JOIN dns_manager2_package ON dns_manager2_package.id = dns_manager2_packageitem.packageid
  20. WHERE tblhosting.domainstatus IN ('Active')
  21. AND tblhosting.userid = :clientid ", array(
  22. 'type' => PackageItemTypeEnum::PRODUCT,
  23. 'type2' => PackageItemTypeEnum::PRODUCT,
  24. 'clientid' => $userid)
  25. )->fetchAll();
  26. }
  27. public static function getDomains($userid) {
  28. return query::query("SELECT CONCAT('#', tbldomains.id, ' ', tbldomains.domain) AS group_name, tbldomains.domain as domain,
  29. dns_manager2_package.name as package_name,
  30. :type `type`, tbldomains.id AS relid
  31. FROM tbldomains
  32. LEFT JOIN dns_manager2_packageitem ON dns_manager2_packageitem.relid = (SELECT tbldomainpricing.id FROM tbldomainpricing,tbldomains WHERE tbldomainpricing.extension = SUBSTRING(tbldomains.domain, LOCATE('.', tbldomains.domain)) LIMIT 1)
  33. AND dns_manager2_packageitem.type = :type2
  34. LEFT JOIN dns_manager2_package ON dns_manager2_package.id = dns_manager2_packageitem.packageid
  35. WHERE tbldomains.status IN ('Active')
  36. AND tbldomains.userid = :clientid", array(
  37. 'type' => PackageItemTypeEnum::DOMAIN,
  38. 'type2' => PackageItemTypeEnum::DOMAIN,
  39. 'clientid' => $userid)
  40. )->fetchAll();
  41. //dns_manager2_packageitem ON dns_manager2_packageitem.relid = SUBSTRING(tbldomains.domain, LOCATE('.', tbldomains.domain))
  42. }
  43. public static function getAddons($userid) {
  44. return query::query("SELECT CONCAT('#', tblhostingaddons.id, ' ', tbladdons.name) AS group_name, tblhosting.domain as domain,
  45. dns_manager2_package.name as package_name,
  46. :type `type`, tblhostingaddons.id AS relid
  47. FROM tblhostingaddons
  48. INNER JOIN tbladdons ON tbladdons.id = tblhostingaddons.addonid
  49. INNER JOIN tblhosting ON tblhosting.id = tblhostingaddons.hostingid
  50. LEFT JOIN dns_manager2_packageitem ON dns_manager2_packageitem.relid = tbladdons.id
  51. AND dns_manager2_packageitem.type = :type2
  52. LEFT JOIN dns_manager2_package ON dns_manager2_package.id = dns_manager2_packageitem.packageid
  53. WHERE tblhostingaddons.status IN ('Active')
  54. AND tblhosting.userid = :clientid", array(
  55. 'type' => ZoneTypeEnum::ADDON,
  56. 'type2' => ZoneTypeEnum::ADDON,
  57. 'clientid' => $userid)
  58. )->fetchAll();
  59. }
  60. public static function getSortedArray($userid)
  61. {
  62. $first = self::getServices($userid);
  63. $second = self::getDomains($userid);
  64. if(GlobalSettingHelper::getSetting(GlobalSettingEnum::IMPORT_PRIORITY) == 1) // jsut swap
  65. {
  66. $tmp = $first;
  67. $first = $second;
  68. $second=$tmp;
  69. unset($tmp);
  70. }
  71. $arr = array_merge($first, $second, self::getAddons($userid));
  72. usort($arr, function($a, $b) {
  73. if($a['package_name'] == $b['package_name']) return 0;
  74. if(empty($a['package_name'])) return 1;
  75. if(empty($b['package_name'])) return -1;
  76. return strcmp($a['package_name'], $b['package_name']);
  77. });
  78. return $arr;
  79. }
  80. }