ConfigurableOptionsConfig.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxCloudVps\Packages\WhmcsService\Traits;
  3. use ModulesGarden\Servers\ProxmoxCloudVps\Core\App\Packages\PackageManager;
  4. use ModulesGarden\Servers\ProxmoxCloudVps\Packages\WhmcsService\Config\Enum;
  5. use ModulesGarden\Servers\ProxmoxCloudVps\Packages\WhmcsService\Config\PackageConfiguration;
  6. trait ConfigurableOptionsConfig
  7. {
  8. protected $configOptionsList = [];
  9. protected function loadConfigurableOptionsList()
  10. {
  11. if (!$this->configOptionsList)
  12. {
  13. $packageManager = new PackageManager();
  14. $config = $packageManager->getPackageConfiguration(PackageConfiguration::getPackageName());
  15. $appConfigInstance = $config->getAppConfigInstance();
  16. $this->configOptionsList = $appConfigInstance->getConfigurableOptionsList();
  17. }
  18. }
  19. public function trimConfigOptionName($name = null)
  20. {
  21. if (is_string($name) && trim($name) !== '' && stripos($name, '|') > 0)
  22. {
  23. $parts = explode('|', $name);
  24. return $parts[0];
  25. }
  26. return $name;
  27. }
  28. public function getConfigurableOptionConfigParams($optionName = null)
  29. {
  30. $this->loadConfigurableOptionsList();
  31. foreach ($this->configOptionsList as $optConfig)
  32. {
  33. if (!$optConfig|| !is_array($optConfig))
  34. {
  35. continue;
  36. }
  37. if ($optConfig[Enum::OPTION_NAME] === $optionName || $this->trimConfigOptionName($optConfig[Enum::OPTION_NAME]) === $optionName )
  38. {
  39. return $optConfig;
  40. }
  41. }
  42. return false;
  43. }
  44. }