ConfigurableOptions.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace ModulesGarden\Servers\ZimbraEmail\App\Services\ConfigurableOptions;
  3. use Exception;
  4. use ModulesGarden\Servers\ZimbraEmail\App\Services\ConfigurableOptions\Models\Option;
  5. /**
  6. * Description of ConfigurableOptions
  7. *
  8. * @author Mateusz Pawłowski <mateusz.pa@modulesgarden.com>
  9. */
  10. class ConfigurableOptions extends Abstracts\AbstractConfigurableOptions
  11. {
  12. /*
  13. * Create New Configurable Optoions group
  14. *
  15. * @throw \Exception
  16. */
  17. public function create()
  18. {
  19. if ($this->checkExistAssignedOptionsGroup())
  20. {
  21. throw new Exception('Configurable options already exist.');
  22. }
  23. $this->addGroup();
  24. $this->buildOptions();
  25. }
  26. /*
  27. * Save additional fields
  28. *
  29. *
  30. * Return true, if mmethod create a new configurable group;
  31. *
  32. * @return boolean $group;
  33. *
  34. */
  35. public function createOrUpdate()
  36. {
  37. $group = $this->addGroup();
  38. $this->buildOptions();
  39. return $group;
  40. }
  41. public function show()
  42. {
  43. return $this->showOptions();
  44. }
  45. /*
  46. * Add Option to group
  47. *
  48. * @param \ModulesGarden\Servers\ZimbraEmail\App\Service\ConfigurableOptions\Models\Option $option
  49. */
  50. public function addOption(Option $option)
  51. {
  52. $this->options[] = $option;
  53. return $this;
  54. }
  55. }