sections = $sections; if (count($this->sections) > 1) { $this->addSectionsField(); } } protected function addSectionsField(): void { $this->addField(new FieldOptions('sectionId', [ 'type' => 'radio', 'label' => __('section.section'), 'description' => __('author.submit.journalSectionDescription'), 'options' => $this->getSectionOptions(), 'isRequired' => true, 'value' => $this->publication->getData('sectionId'), ])); foreach ($this->sections as $section) { if (!trim(PKPString::html2text($section->getLocalizedPolicy()))) { continue; } $this->addField(new FieldHTML('sectionDescription' . $section->getId(), [ 'label' => $section->getLocalizedTitle(), 'description' => $section->getLocalizedPolicy(), 'showWhen' => ['sectionId', $section->getId()], ])); } } /** * Convert sections to options prop for a FieldOption */ protected function getSectionOptions(): array { $options = []; foreach ($this->sections as $section) { $options[] = [ 'value' => $section->getId(), 'label' => $section->getLocalizedTitle(), ]; } return $options; } }