BaseSection.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\Core\UI\Widget\Forms\Sections;
  3. use \ThurData\Servers\KerioEmail\Core\UI\Builder\BaseContainer;
  4. /**
  5. * Base Form Section controler
  6. *
  7. * @autor ThurData <info@thrudata.ch>
  8. */
  9. class BaseSection extends BaseContainer
  10. {
  11. use \ThurData\Servers\KerioEmail\Core\UI\Traits\Fields;
  12. use \ThurData\Servers\KerioEmail\Core\UI\Traits\Sections;
  13. use \ThurData\Servers\KerioEmail\Core\UI\Traits\Buttons;
  14. use \ThurData\Servers\KerioEmail\Core\UI\Traits\Section;
  15. protected $id = 'baseSection';
  16. protected $name = 'baseSection';
  17. protected $initialized = false;
  18. public function loadDataToForm(&$dataProvider)
  19. {
  20. foreach($this->fields as &$field)
  21. {
  22. $field->setValue($dataProvider->getValueById($field->getId()));
  23. $avValues = $dataProvider->getAvailableValuesById($field->getId());
  24. if ($avValues && method_exists($field, 'setAvailableValues'))
  25. {
  26. $field->setAvailableValues($avValues);
  27. }
  28. }
  29. foreach ($this->sections as &$section)
  30. {
  31. $section->loadDataToForm($dataProvider);
  32. }
  33. }
  34. public function loadDataToFormByName(&$dataProvider)
  35. {
  36. foreach ($this->fields as &$field)
  37. {
  38. $field->setValue($dataProvider->getValueByName($field->getName()));
  39. if ($dataProvider->isDisabledById($field->getId()))
  40. {
  41. $field->disableField();
  42. }
  43. }
  44. foreach ($this->sections as &$section)
  45. {
  46. $section->loadDataToFormByName($dataProvider);
  47. }
  48. }
  49. }