Open Journal Systems  3.3.0
IssueEntryForm.inc.php
1 <?php
16 use \PKP\components\forms\FormComponent;
17 use \PKP\components\forms\FieldOptions;
18 use \PKP\components\forms\FieldSelect;
19 use \PKP\components\forms\FieldText;
20 use \PKP\components\forms\FieldUploadImage;
21 use \APP\components\forms\FieldSelectIssue;
22 
23 define('FORM_ISSUE_ENTRY', 'issueEntry');
24 
28 
30  public $method = 'PUT';
31 
42  public function __construct($action, $locales, $publication, $publicationContext, $baseUrl, $temporaryFileApiUrl) {
43  $this->action = $action;
44  $this->locales = $locales;
45 
46  // Issue options
47  $issueOptions = [['value' => '', 'label' => '']];
48  $unpublishedIterator = \Services::get('issue')->getMany([
49  'contextId' => $publicationContext->getId(),
50  'isPublished' => false,
51  ]);
52  if (count($unpublishedIterator)) {
53  $issueOptions[] = ['value' => '', 'label' => '--- ' . __('editor.issues.futureIssues') . ' ---'];
54  foreach ($unpublishedIterator as $issue) {
55  $issueOptions[] = [
56  'value' => (int) $issue->getId(),
57  'label' => $issue->getIssueIdentification(),
58  ];
59  }
60  }
61  $publishedIterator = \Services::get('issue')->getMany([
62  'contextId' => $publicationContext->getId(),
63  'isPublished' => true,
64  ]);
65  if (count($publishedIterator)) {
66  $issueOptions[] = ['value' => '', 'label' => '--- ' . __('editor.issues.backIssues') . ' ---'];
67  foreach ($publishedIterator as $issue) {
68  $issueOptions[] = [
69  'value' => (int) $issue->getId(),
70  'label' => $issue->getIssueIdentification(),
71  ];
72  }
73  }
74 
75  // Section options
76  $sections = \Services::get('section')->getSectionList($publicationContext->getId());
77  $sectionOptions = [];
78  foreach ($sections as $section) {
79  $sectionOptions[] = [
80  'label' => (($section['group'])? __('publication.inactiveSection', ['section' => $section['title']]) : $section['title']),
81  'value' => (int) $section['id'],
82  ];
83  }
84 
85  $this->addField(new FieldSelectIssue('issueId', [
86  'label' => __('issue.issue'),
87  'options' => $issueOptions,
88  'publicationStatus' => $publication->getData('status'),
89  'value' => $publication->getData('issueId') ? $publication->getData('issueId') : 0,
90  ]))
91  ->addField(new FieldSelect('sectionId', [
92  'label' => __('section.section'),
93  'options' => $sectionOptions,
94  'value' => (int) $publication->getData('sectionId'),
95  ]));
96 
97  // Categories
98  $categoryOptions = [];
99  $categoryDao = \DAORegistry::getDAO('CategoryDAO'); /* @var $categoryDao CategoryDAO */
100  $categories = $categoryDao->getByContextId($publicationContext->getId())->toAssociativeArray();
101  foreach ($categories as $category) {
102  $label = $category->getLocalizedTitle();
103  if ($category->getParentId()) {
104  $label = $categories[$category->getParentId()]->getLocalizedTitle() . ' > ' . $label;
105  }
106  $categoryOptions[] = [
107  'value' => (int) $category->getId(),
108  'label' => $label,
109  ];
110  }
111  if (!empty($categoryOptions)) {
112  $this->addField(new FieldOptions('categoryIds', [
113  'label' => __('submission.submit.placement.categories'),
114  'value' => (array) $publication->getData('categoryIds'),
115  'options' => $categoryOptions,
116  ]));
117  }
118 
119  $this->addField(new FieldUploadImage('coverImage', [
120  'label' => __('editor.article.coverImage'),
121  'value' => $publication->getData('coverImage'),
122  'isMultilingual' => true,
123  'baseUrl' => $baseUrl,
124  'options' => [
125  'url' => $temporaryFileApiUrl,
126  ],
127  ]))
128  ->addField(new FieldText('pages', [
129  'label' => __('editor.issues.pages'),
130  'value' => $publication->getData('pages'),
131  ]))
132  ->addField(new FieldText('urlPath', [
133  'label' => __('publication.urlPath'),
134  'description' => __('publication.urlPath.description'),
135  'value' => $publication->getData('urlPath'),
136  ]))
137  ->addField(new FieldText('datePublished', [
138  'label' => __('publication.datePublished'),
139  'description' => __('publication.datePublished.description'),
140  'value' => $publication->getData('datePublished'),
141  'size' => 'small',
142  ]));
143  }
144 }
APP\components\forms\publication\IssueEntryForm
Definition: IssueEntryForm.inc.php:25
PKP\components\forms\FieldOptions
Definition: FieldOptions.inc.php:15
PKP\components\forms\FieldText
Definition: FieldText.inc.php:15
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PKP\components\forms\FormComponent\$action
$action
Definition: FormComponent.inc.php:37
PKP\components\forms\FormComponent
Definition: FormComponent.inc.php:20
APP\components\forms\FieldSelectIssue
Definition: FieldSelectIssue.inc.php:17
APP\components\forms\publication\IssueEntryForm\__construct
__construct($action, $locales, $publication, $publicationContext, $baseUrl, $temporaryFileApiUrl)
Definition: IssueEntryForm.inc.php:42
APP\components\forms\publication\FORM_ISSUE_ENTRY
const FORM_ISSUE_ENTRY
Definition: IssueEntryForm.inc.php:23
APP\components\forms\publication\IssueEntryForm\$method
$method
Definition: IssueEntryForm.inc.php:30
APP\components\forms\publication\IssueEntryForm\$id
$id
Definition: IssueEntryForm.inc.php:27
PKP\components\forms\FormComponent\addField
addField($field, $position=[])
Definition: FormComponent.inc.php:94
PKP\components\forms\FormComponent\$locales
$locales
Definition: FormComponent.inc.php:43
PKP\components\forms\FieldSelect
Definition: FieldSelect.inc.php:15
APP\components\forms\publication
Definition: AssignToIssueForm.inc.php:14
PKP\components\forms\FieldUploadImage
Definition: FieldUploadImage.inc.php:15
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49