Open Monograph Press  3.3.0
CatalogEntryForm.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 \DAORegistry;
22 
23 define('FORM_CATALOG_ENTRY', 'catalogEntry');
24 
28 
30  public $method = 'PUT';
31 
42  public function __construct($action, $locales, $publication, $submission, $baseUrl, $temporaryFileApiUrl) {
43  $this->action = $action;
44  $this->successMessage = __('publication.catalogEntry.success');
45  $this->locales = $locales;
46 
47  // Series options
48  $seriesOptions = [['value' => '', 'label' => '']];
49  $result = DAORegistry::getDAO('SeriesDAO')->getByContextId($submission->getData('contextId'));
50  while (!$result->eof()) {
51  $series = $result->next();
52  $seriesOptions[] = [
53  'value' => (int) $series->getId(),
54  'label' => (($series->getIsInactive())? __('publication.inactiveSeries', ['series' => $series->getLocalizedTitle()]) : $series->getLocalizedTitle()),
55  ];
56  }
57 
58  $this->addField(new FieldText('datePublished', [
59  'label' => __('publication.datePublished'),
60  'value' => $publication->getData('datePublished'),
61  ]))
62  ->addField(new FieldSelect('seriesId', [
63  'label' => __('series.series'),
64  'value' => $publication->getData('seriesId'),
65  'options' => $seriesOptions,
66  ]))
67  ->addField(new FieldText('seriesPosition', [
68  'label' => __('submission.submit.seriesPosition'),
69  'description' => __('submission.submit.seriesPosition.description'),
70  'value' => $publication->getData('seriesPosition'),
71  ]));
72 
73  // Categories
74  $categoryOptions = [];
75  $categories = \DAORegistry::getDAO('CategoryDAO')->getByContextId($submission->getData('contextId'))->toAssociativeArray();
76  foreach ($categories as $category) {
77  $label = $category->getLocalizedTitle();
78  if ($category->getParentId()) {
79  $label = $categories[$category->getParentId()]->getLocalizedTitle() . ' > ' . $label;
80  }
81  $categoryOptions[] = [
82  'value' => (int) $category->getId(),
83  'label' => $label,
84  ];
85  }
86  if (!empty($categoryOptions)) {
87  $this->addField(new FieldOptions('categoryIds', [
88  'label' => __('submission.submit.placement.categories'),
89  'value' => (array) $publication->getData('categoryIds'),
90  'options' => $categoryOptions,
91  ]));
92  }
93 
94  $this->addField(new FieldText('urlPath', [
95  'label' => __('publication.urlPath'),
96  'description' => __('publication.urlPath.description'),
97  'value' => $publication->getData('urlPath'),
98  ]))
99  ->addField(new FieldUploadImage('coverImage', [
100  'label' => __('monograph.coverImage'),
101  'value' => $publication->getData('coverImage'),
102  'isMultilingual' => true,
103  'baseUrl' => $baseUrl,
104  'options' => [
105  'url' => $temporaryFileApiUrl,
106  ],
107  ]));
108  }
109 }
PKP\components\forms\FieldOptions
Definition: FieldOptions.inc.php:15
PKP\components\forms\FieldText
Definition: FieldText.inc.php:15
APP\components\forms\publication\CatalogEntryForm\$method
$method
Definition: CatalogEntryForm.inc.php:30
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PKP\components\forms\FormComponent\$action
$action
Definition: FormComponent.inc.php:37
APP\components\forms\publication\CatalogEntryForm\__construct
__construct($action, $locales, $publication, $submission, $baseUrl, $temporaryFileApiUrl)
Definition: CatalogEntryForm.inc.php:42
PKP\components\forms\FormComponent
Definition: FormComponent.inc.php:20
APP\components\forms\publication\CatalogEntryForm
Definition: CatalogEntryForm.inc.php:25
APP\components\forms\publication\FORM_CATALOG_ENTRY
const FORM_CATALOG_ENTRY
Definition: CatalogEntryForm.inc.php:23
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: CatalogEntryForm.inc.php:15
PKP\components\forms\FieldUploadImage
Definition: FieldUploadImage.inc.php:15
APP\components\forms\publication\CatalogEntryForm\$id
$id
Definition: CatalogEntryForm.inc.php:27