You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
2.0KB

  1. <?php
  2. namespace common\logic\Setting\SettingDetails\Admin;
  3. use common\logic\Setting\SettingDefinition;
  4. use common\logic\Setting\SettingDetails\Admin\General\AdministratorEmailAdminSetting;
  5. use common\logic\Setting\SettingDetails\Admin\General\AdministratorPhoneNumberAdminSetting;
  6. use common\logic\Setting\SettingDetails\Admin\General\ForumFlarumUrlAdminSetting;
  7. class AdminSettingDefinition extends SettingDefinition
  8. {
  9. const SECTION_GENERAL = 'general';
  10. const SUBSECTION_GENERAL = 'general.main';
  11. public function getSettingDetails(): array
  12. {
  13. return [
  14. self::SECTION_GENERAL => [
  15. self::SUBSECTION_GENERAL => [
  16. new AdministratorEmailAdminSetting(),
  17. new AdministratorPhoneNumberAdminSetting(),
  18. new ForumFlarumUrlAdminSetting(),
  19. ]
  20. ],
  21. ];
  22. }
  23. public function getSectionLabels(): array
  24. {
  25. return [
  26. self::SECTION_GENERAL => 'General',
  27. self::SUBSECTION_GENERAL => 'General',
  28. ];
  29. }
  30. public function getSectionsArray(): array
  31. {
  32. $sectionsArray = [];
  33. foreach($this->getSettingDetails() as $sectionName => $subsectionsArray) {
  34. $sectionsArray[] = [
  35. 'name' => $sectionName,
  36. 'nameDisplay' => $this->getSectionLabelBySectionName($sectionName),
  37. ];
  38. }
  39. return $sectionsArray;
  40. }
  41. public function getSettingDetailsFlat(): array
  42. {
  43. $settingDetailsFlatArray = [];
  44. foreach($this->getSettingDetails() as $sectionsArray) {
  45. foreach($sectionsArray as $subsectionsArray) {
  46. foreach($subsectionsArray as $settingDetail) {
  47. $settingDetailsFlatArray[] = $settingDetail;
  48. }
  49. }
  50. }
  51. return $settingDetailsFlatArray;
  52. }
  53. public function getSectionLabelBySectionName(string $sectionName): string
  54. {
  55. return $this->getSectionLabels()[$sectionName];
  56. }
  57. }