configuration.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. namespace MGModule\DNSManager2\models\whmcs\product;
  3. use MGModule\DNSManager2 as main;
  4. /**
  5. * Description of configuration
  6. *
  7. * @author Michal Czech <michael@modulesgarden.com>
  8. */
  9. class configuration {
  10. private $_productID;
  11. private $_configuration;
  12. /**
  13. * @var array
  14. */
  15. private static $_configurationArray;
  16. static function setDefaultConfigurationArray($configurationArray){
  17. self::$_configurationArray = $configurationArray;
  18. }
  19. function __construct($productID,array $params = array()) {
  20. if(empty($productID))
  21. {
  22. throw new main\mgLibs\exceptions\system('Provide Product ID at first');
  23. }
  24. $this->_productID = $productID;
  25. if(!isset($params['configoption1']))
  26. {
  27. $fields = array();
  28. for($i=1;$i<25;$i++)
  29. {
  30. $fields['configoption'.$i] = 'configoption'.$i;
  31. }
  32. $params = main\mgLibs\MySQL\query::select($fields, 'tblproducts',array(
  33. 'id' => $productID
  34. ))->fetch();
  35. }
  36. if(empty(self::$_configurationArray))
  37. {
  38. $mainConfig = main\mgLibs\process\mainInstance::I()->configuration();
  39. if(method_exists($mainConfig, 'getServerWHMCSConfig'))
  40. {
  41. $config = $mainConfig->getServerWHMCSConfig();
  42. if(is_array($config))
  43. {
  44. self::$_configurationArray = $config;
  45. }
  46. }
  47. }
  48. if(is_array(self::$_configurationArray) && !empty(self::$_configurationArray))
  49. {
  50. $i = 1;
  51. foreach(self::$_configurationArray as $name)
  52. {
  53. $this->_configuration[$name] = $params['configoption'.$i];
  54. $i++;
  55. }
  56. }
  57. else
  58. {
  59. for($i=1;$i<25;$i++)
  60. {
  61. $this->_configuration[$i] = $params['configoption'.$i];
  62. }
  63. }
  64. }
  65. function setConfigurationArray(array $configurationArray = array()){
  66. if(empty($configurationArray))
  67. {
  68. $configurationArray = self::$_configurationArray;
  69. }
  70. $i = 1;
  71. foreach($configurationArray as $name)
  72. {
  73. if(isset($this->_configuration[$i]))
  74. {
  75. $this->_configuration[$name] = $this->_configuration[$i];
  76. unset($this->_configuration[$i]);
  77. }
  78. $i++;
  79. }
  80. }
  81. function __set($name, $value) {
  82. $this->_configuration[$name] = $value;
  83. }
  84. function __get($name) {
  85. return $this->_configuration[$name];
  86. }
  87. function __isset($name) {
  88. return isset($this->_configuration[$name]);
  89. }
  90. function save(){
  91. $params = array();
  92. if(self::$_configurationArray)
  93. {
  94. $i = 1;
  95. foreach (self::$_configurationArray as $name)
  96. {
  97. $params['configoption'.$i] = $this->_configuration[$name];
  98. $i++;
  99. }
  100. }
  101. else
  102. {
  103. for($i=1;$i<25;$i++)
  104. {
  105. $params['configoption'.$i] = $this->_configuration[$i];
  106. $i++;
  107. }
  108. }
  109. main\mgLibs\MySQL\query::update('tblproducts', $params, array(
  110. 'id' => $this->_productID
  111. ));
  112. }
  113. }